luna-generic

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

math
algebra
interface
moon add Luna-Flow/luna-generic@0.3.3
Download zip
Author
Version
0.3.3
License
Apache-2.0
Last updated
2 months ago
Downloads
5K
README

#Luna-Generic

#
AddGroup

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

#
AddMonoid

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

#
Conjugate

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

#
Field

pub(open) trait Field : Ring + Inverse + Div {
}

#
Inverse

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

impl Inverse for Float
impl Inverse for Double

#
MulGroup

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

#
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 + Sub {
}

#
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