1mod semiring;
10mod standard;
11
12#[cfg(feature = "tropical")]
13mod tropical;
14
15pub use semiring::{Algebra, Semiring};
16pub use standard::Standard;
17
18#[cfg(feature = "tropical")]
19pub use tropical::{MaxMul, MaxPlus, MinPlus};
20
21pub use num_complex::{Complex32, Complex64};
23
24pub trait Scalar:
26 Copy
27 + Clone
28 + Send
29 + Sync
30 + Default
31 + std::fmt::Debug
32 + 'static
33 + bytemuck::Pod
34 + std::ops::AddAssign
35{
36}
37
38impl Scalar for f32 {}
39impl Scalar for f64 {}
40impl Scalar for i32 {}
41impl Scalar for i64 {}
42impl Scalar for u32 {}
43impl Scalar for u64 {}
44impl Scalar for Complex32 {}
45impl Scalar for Complex64 {}