Cargo Features

feanor-math has no features set by default.

[dependencies]
feanor-math = { version = "2.3.0", features = ["generic_tests", "unstable-enable", "mpir", "parallel", "ndarray", "unrolled_strassen", "elementwrapper-caret-pow"] }
generic_tests

Enables the export of "generic tests", functions that test the set of axioms associated with a trait.

Enables serde_assert

unstable-enable

Makes all unstable items visible to outside crates

mpir

Try to link to the mpir library for arbitrary-precision integers, and make BigIntRing refer to it.

Enables bytemuck

Affects integer::BigIntRing, integer::BigIntRingBase, rings::mpir

parallel

Enables parallel computation in some underlying algorithms. Currently this applies only to F4.

Enables rayon

Affects parallel::potential_parallel_for_each

ndarray

Includes the matrix and tensor library ndarray, together with a (currently minimalistic) interface to matrices in this crate.

Enables ndarray ^0.15.6

unrolled_strassen

Uses macros to unroll all stages in the Strassen algorithm. Slightly improves performance at the cost of compilation time.

elementwrapper-caret-pow

Use the symbol ^ for exponentiation of RingElementWrapper. Note that this is an abuse of the Rust operator conventions, and in particular the binding strength of ^ is not correct. This is also why this is feature-gated and not enabled by default