Idris2Doc : Data.NumIdr.Interfaces

Data.NumIdr.Interfaces

(source)

Definitions

Field : Type->Type
  An interface synonym for types which form a field, such as `Double`.

Totality: total
Visibility: public export
interfaceFieldCmp : Type->Type
  An interface for number types which allow for LUP decomposition to be performed.

The function `abslt` is required for the internal decomposition algorithm.
An instance of this interface must satisfy:
* The relation `abslt` is a preorder.
* `0` is a minimum of `abslt`.

Parameters: a
Constraints: Eq a, Neg a, Fractional a
Constructor: 
MkFieldCmp

Methods:
abslt : a->a->Bool
  Compare the absolute values of two inputs.

Implementation: 
FieldCmpDouble
abslt : FieldCmpa=>a->a->Bool
  Compare the absolute values of two inputs.

Totality: total
Visibility: public export
WithEpsilon : (Nega, (Absa, Orda)) =>a->Eqa
Totality: total
Visibility: export
WithEpsilon : (Nega, (Fractionala, (Absa, Orda))) =>a->FieldCmpa
Totality: total
Visibility: export
interfaceMult : Type->Type->Type->Type
  A generalized multiplication/application operator. This interface is
necessary since the standard multiplication operator is homogenous.

All instances of this interface must collectively satisfy these axioms:
* 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.

Parameters: a, b, c
Constructor: 
MkMult

Methods:
(*.) : a->b->c
  A generalized multiplication/application operator for matrices and
vector transformations.

Fixity Declaration: infixl operator, level 9

Implementations:
Numa=>Mult (Scalara) (Scalara) (Scalara)
Numa=>Multa (Arraysa) (Arraysa)
Numa=>Mult (Arraysa) a (Arraysa)
Numa=>Mult (Matrixmna) (Vectorna) (Vectorma)
Numa=>Mult (Matrixmna) (Matrixnpa) (Matrixmpa)
Numa=>Mult (Matrixmna) (Pointna) (Pointma)
Numa=>Mult (Transformtyna) (Pointna) (Pointna)
Numa=>Mult (Transformtyna) (Vectorna) (Vectorna)
Numa=>Mult (Transformt1na) (Transformt2na) (Transform (transMultt1t2) na)
Mult (Permutationn) (Permutationn) (Permutationn)
(*.) : Multabc=>a->b->c
  A generalized multiplication/application operator for matrices and
vector transformations.

Totality: total
Visibility: public export
Fixity Declaration: infixl operator, level 9
Mult' : Type->Type
  A synonym for `Mult a a a`, or homogenous multiplication.

Totality: total
Visibility: public export
interfaceMultMonoid : Type->Type
  An interface for monoids using the `*.` operator.

An instance of this interface must satisfy:
* `x *. identity == x`
* `identity *. x == x`

Parameters: a
Constraints: Mult' a
Constructor: 
MkMultMonoid

Methods:
identity : a
  Construct an identity matrix or transformation.

NOTE: Creating an identity element for an `n`-dimensional transformation
usually requires `n` to be available at runtime.

Implementations:
Numa=>MultMonoid (Scalara)
Numa=>MultMonoid (Matrix'na)
Numa=>MultMonoid (Transformtyna)
MultMonoid (Permutationn)
identity : MultMonoida=>a
  Construct an identity matrix or transformation.

NOTE: Creating an identity element for an `n`-dimensional transformation
usually requires `n` to be available at runtime.

Totality: total
Visibility: public export
interfaceMultGroup : Type->Type
  An interface for groups using the `*.` operator.

An instance of this interface must satisfy:
* `x *. inverse x == identity`
* `inverse x *. x == identity`

Parameters: a
Constraints: MultMonoid a
Constructor: 
MkMultGroup

Methods:
inverse : a->a
  Calculate the inverse of the matrix or transformation.

WARNING: This function will not check if an inverse exists for the given
input, and will happily divide by zero or return results containing NaN.
To avoid this, use `tryInverse` instead.

Implementations:
Fractionala=>MultGroup (Scalara)
FieldCmpa=>MultGroup (Matrix'na)
FieldCmpa=>MultGroup (Transformtyna)
MultGroup (Permutationn)
inverse : MultGroupa=>a->a
  Calculate the inverse of the matrix or transformation.

WARNING: This function will not check if an inverse exists for the given
input, and will happily divide by zero or return results containing NaN.
To avoid this, use `tryInverse` instead.

Totality: total
Visibility: public export
power : MultMonoida=>Nat->a->a
  Raise a multiplicative value (e.g. a matrix or a transformation) to a natural
number power.

Totality: total
Visibility: public export
(^) : MultMonoida=>a->Nat->a
  Raise a multiplicative value (e.g. a matrix or a transformation) to a natural
number power.

This is the operator form of `power`.

Totality: total
Visibility: public export
Fixity Declaration: infixr operator, level 10