Sign in

    luna-generic

    General abstraction and structures for Luna Project

    math
    algebra
    Download zip
    Author
    Version
    0.2.0-beta-1
    License
    Apache-2.0
    Last updated
    last year
    Downloads
    6K

    No dependencies

    #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