Skip to content

Repository files navigation

CompactBasisFunctions

Stable Docs Latest Docs License PkgEval Status Build Status Coverage DOI

This package provides a set of basis functions, mostly compactly supported, which are implemented as Continuum Arrays. Bases are accessed like arrays with continuous dimensions, e.g. as b[0.1, 2] to evaluate the second basis function in the point 0.1. Operations such as derivatives, inner products and mass matrices are implemented as Lazy Array operations, providing a high-level linear algebra interface. Functions in a basis are represented by a lazy multiplication of the basis and a vector of coefficients, which materializes only upon evaluation of the product.

References

If you use CompactBasisFunctions.jl in your work, please consider citing it by

@misc{Kraus:2020:CompactBasisFunctions,
  title={CompactBasisFunctions.jl: Compactly supported basis functions in Julia},
  author={Kraus, Michael},
  year={2020},
  howpublished={\url{https://github.com/JuliaGNI/CompactBasisFunctions.jl}},
  doi={10.5281/zenodo.4317806}
}

Development

Git hooks

Two hooks live in .githooks. They are not active in a fresh clonecore.hooksPath is local configuration and does not travel with a push — so enable them once per clone:

git config core.hooksPath .githooks

pre-commit acts on staged .jl files only, and exits immediately when a commit stages none, so a documentation- or workflow-only commit is not slowed down by it:

  • JuliaFormatter --check, honouring this repository's own .JuliaFormatter.tomlblocks the commit. Formatting is mechanical and always fixable.
  • fatou lint, when fatou is installed — advisory only, and deliberately so: its unused-import rule does not follow include, so it flags the load-bearing imports of every module file.
  • using <Package>, which catches a syntax error or a broken includeblocks.

pre-push runs the full test suite with --check-bounds=auto, but only when pushing to main or master; a topic branch is left to CI. It prints nothing for 10–30 minutes, which looks exactly like a network hang and is not one. If you do interrupt it, check for an orphaned Julia process that the killed hook left behind.

Either hook can be bypassed for a single command with --no-verify, for a change you know it does not apply to:

git commit --no-verify
git push --no-verify

The hooks are generated from one shared copy and are byte-identical across the related repositories, so edit them there rather than here — a local edit is silently undone by the next install.

About

Compactly supported basis functions in Julia

Resources

Stars

1 star

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages