packages feed

kempe-0.1.0.0: lib/gaussian.kmp

; Gaussian integers

type Gaussian { Gaussian Int Int }

unGaussian : Gaussian -- Int Int
           =: [
    { case
        | Gaussian ->
    }
]

grp : a b c -- b a c
    =: [ dip(swap) ]

; perhaps unimpressive but I use this to test sizing
add : Gaussian Gaussian -- Gaussian
    =: [ dip(unGaussian) unGaussian grp + dip(+) Gaussian ]

conjugate : Gaussian -- Gaussian
          =: [ unGaussian ~ Gaussian ]

%foreign kabi add
%foreign kabi conjugate