Add constructors to interfaces
This commit is contained in:
parent
33f64c69d9
commit
09901977c2
|
@ -22,6 +22,7 @@ Field a = (Eq a, Neg a, Fractional a)
|
||||||
||| * `0` is a minimum of `abslt`.
|
||| * `0` is a minimum of `abslt`.
|
||||||
public export
|
public export
|
||||||
interface (Eq a, Neg a, Fractional a) => FieldCmp a where
|
interface (Eq a, Neg a, Fractional a) => FieldCmp a where
|
||||||
|
constructor MkFieldCmp
|
||||||
||| Compare the absolute values of two inputs.
|
||| Compare the absolute values of two inputs.
|
||||||
abslt : a -> a -> Bool
|
abslt : a -> a -> Bool
|
||||||
|
|
||||||
|
@ -46,6 +47,7 @@ infixr 10 ^
|
||||||
||| * If `x *. (y *. z)` is defined, then `(x *. y) *. z` is defined and equal.
|
||| * If `x *. (y *. z)` is defined, then `(x *. y) *. z` is defined and equal.
|
||||||
public export
|
public export
|
||||||
interface Mult a b c | a,b where
|
interface Mult a b c | a,b where
|
||||||
|
constructor MkMult
|
||||||
||| A generalized multiplication/application operator for matrices and
|
||| A generalized multiplication/application operator for matrices and
|
||||||
||| vector transformations.
|
||| vector transformations.
|
||||||
(*.) : a -> b -> c
|
(*.) : a -> b -> c
|
||||||
|
@ -63,6 +65,7 @@ Mult' a = Mult a a a
|
||||||
||| * `identity *. x == x`
|
||| * `identity *. x == x`
|
||||||
public export
|
public export
|
||||||
interface Mult' a => MultMonoid a where
|
interface Mult' a => MultMonoid a where
|
||||||
|
constructor MkMultMonoid
|
||||||
||| Construct an identity matrix or transformation.
|
||| Construct an identity matrix or transformation.
|
||||||
|||
|
|||
|
||||||
||| NOTE: Creating an identity element for an `n`-dimensional transformation
|
||| NOTE: Creating an identity element for an `n`-dimensional transformation
|
||||||
|
@ -76,6 +79,7 @@ interface Mult' a => MultMonoid a where
|
||||||
||| * `inverse x *. x == identity`
|
||| * `inverse x *. x == identity`
|
||||||
public export
|
public export
|
||||||
interface MultMonoid a => MultGroup a where
|
interface MultMonoid a => MultGroup a where
|
||||||
|
constructor MkMultGroup
|
||||||
||| Calculate the inverse of the matrix or transformation.
|
||| Calculate the inverse of the matrix or transformation.
|
||||||
||| WARNING: This function will not check if an inverse exists for the given
|
||| WARNING: This function will not check if an inverse exists for the given
|
||||||
||| input, and will happily return results containing NaN values. To avoid
|
||| input, and will happily return results containing NaN values. To avoid
|
||||||
|
|
Loading…
Reference in a new issue