algebra-simple
Safe HaskellNone
LanguageHaskell2010

Numeric.Algebra.Space.Quartamodule

Description

Provides the Quartamodule typeclass.

Since: 0.1

Synopsis

Documentation

class (ASemigroup m, MSemiSpace m r, Quartaring r) => Quartamodule m r | m -> r Source #

Defines a Quartamodule over a Quartaring. For elements x, y of a Quartamodule M and r, s in a Quartaring R, we have the following laws:

(x .+. y) .* r === (x .* r) .+. (y .* r)
x .* (r .+. s) === (x .* r) .+. (x .* s)
x .* (r .*. s) === (x .* r) .* s
x .* one === x -- when R is a Demiring (has multiplicative identity)

Examples:

Expand
  • \( \mathbb{Z}^{\gt 1} \times \mathbb{Z}^{\gt 1} \), two-dimensional integers greater than one.
>>> :{
  -- Addition
  f1 :: (Quartamodule m r) => m -> m
  f1 m = m .+. m
:}
>>> f1 (8,4)
(16,8)
>>> :{
  -- Scalar multiplication
  f2 :: (Quartamodule m r, Num r) => m -> m
  f2 m = m .* 6
:}
>>> f2 (8,4)
(48,24)

Since: 0.1

Instances

Instances details
Quartaring r => Quartamodule (r, r) r Source #

Since: 0.1

Instance details

Defined in Numeric.Algebra.Space.Quartamodule

Quartaring r => Quartamodule (r, r, r) r Source #

Since: 0.1

Instance details

Defined in Numeric.Algebra.Space.Quartamodule

Quartaring r => Quartamodule (r, r, r, r) r Source #

Since: 0.1

Instance details

Defined in Numeric.Algebra.Space.Quartamodule

Quartaring r => Quartamodule (r, r, r, r, r) r Source #

Since: 0.1

Instance details

Defined in Numeric.Algebra.Space.Quartamodule

Quartaring r => Quartamodule (r, r, r, r, r, r) r Source #

Since: 0.1

Instance details

Defined in Numeric.Algebra.Space.Quartamodule

Quartaring r => Quartamodule (r, r, r, r, r, r, r) r Source #

Since: 0.1

Instance details

Defined in Numeric.Algebra.Space.Quartamodule

Quartaring r => Quartamodule (r, r, r, r, r, r, r, r) r Source #

Since: 0.1

Instance details

Defined in Numeric.Algebra.Space.Quartamodule

Quartaring r => Quartamodule (r, r, r, r, r, r, r, r, r) r Source #

Since: 0.1

Instance details

Defined in Numeric.Algebra.Space.Quartamodule