//! This is a LINEar ALgebra library. //! //! Most stuff works with the traits `Float`, `Numeric` and `Primitive` in some combination. //! //! The combination `Float + Numeric` allows `f32`, `f64`, `Complex` and `Complex`, //! whereas `Float + Numeric + Primitive` would only allow `f32` and `f64`. //! This trick is used to prevent e.g. `Complex>`, as that would not make sense. //! //! There are no complex numbers with integral types, as these would be rather impractical //! when calculating basically anything. //! //! As a consequence the complex types `Complex` and `Complex` are also considered //! `Float` in our context. pub use self::traits::{Float, Numeric, Primitive}; #[cfg(feature = "matrix")] pub use self::types::{ColumnVector, GenericMatrix, Matrix, MatrixMut, RowVector, SquareMatrix, View, ViewMut}; #[cfg(feature = "angular")] pub use self::types::{Angular, Degree, Radiant}; #[cfg(feature = "complex")] pub use self::types::Complex; #[cfg(feature = "quaternion")] pub use self::types::Quaternion; mod traits; mod types;