luna-generic

Algebraic traits and default numeric instances that define the generic foundation for LunaFlow math packages.

math
algebra
interface
Download zip
Author
Version
0.3.3
License
Apache-2.0
Last updated
2 months ago
Downloads
5K

#Luna-Generic

AddGroup

pub(open) trait AddGroup : AddMonoid + Neg {
}

AddMonoid

pub(open) trait AddMonoid : Add + Zero {
}

Conjugate

pub(open) trait Conjugate {
conjugate(Self) -> Self
}

Inverse

pub(open) trait Inverse {
inv(Self) -> Self
}

impl Inverse for Int
impl Inverse for Float
impl Inverse for Double

MulGroup

pub(open) trait MulGroup : MulMonoid + Inverse {
}

MulMonoid

pub(open) trait MulMonoid : Mul + One {
}

Num

pub(open) trait Num : Ring {
abs(Self) -> Self
signum(Self) -> Self
}

impl Num for Int
impl Num for Float
impl Num for Double

One

pub(open) trait One {
one() -> Self
}

impl One for Int
impl One for Float
impl One for Double

Ring

pub(open) trait Ring : Semiring + Neg {
}

Semiring

pub(open) trait Semiring : AddMonoid + MulMonoid {
}

Zero

pub(open) trait Zero {
zero() -> Self
}

impl Zero for Int
impl Zero for Float
impl Zero for Double

Powered by MoonBit

Site sourceReport issuePackagesBuild queueSkillsStatistics

© 2026 mooncakes.io