noether-0.0.1: Math in Haskell.

Safe HaskellNone
LanguageHaskell2010

Noether.Algebra.Vector.Unboxed

Synopsis

Documentation

newtype UVector n v Source #

UVector n v ≅ v^n for Unbox types v.

Constructors

UVector (Vector v) 

Instances

(Unbox b, KnownNat n, ActsK k lr op a b s) => ActsK k lr op a (UVector n b) (ActsTagged UVectorLift s) Source #

Actions of a on b extend to actions of a on 'UVector n b'.

(Unbox v, KnownNat n, NeutralK k op v s) => NeutralK k op (UVector n v) (NeutralTagged UVectorLift s) Source #

Neutral elements for addition and multiplication.

(Unbox v, MagmaK k op v s) => MagmaK k op (UVector n v) (MagmaTagged UVectorLift s) Source #

Lifting addition and multiplication coordinatewise (Hadamard?)

(Unbox v, KnownNat n, CancellativeK k op v s) => CancellativeK k op (UVector n v) (CancellativeTagged UVectorLift s) Source #

Pointwise negation and inversion.

Note that v^n has (a lot of) nontrivial zerodivisors even if v does not. The zerodivisors are all elements with a zero(divisor) in some coordinate, e.g. (1,0) and (0,1) are zerodivisors in R^2.

(This corresponds to the idea that the Spec of a product ring is disconnected!)

(Unbox v, Show v) => Show (UVector n v) Source # 

Methods

showsPrec :: Int -> UVector n v -> ShowS #

show :: UVector n v -> String #

showList :: [UVector n v] -> ShowS #

type ActorLinearS BinaryNumeric BinaryNumeric BinaryNumeric lr Mul Add a Add (UVector n a) Source # 
type CompatibleS BinaryNumeric BinaryNumeric lr Mul Mul a (UVector n b) Source # 
type ActeeLinearS BinaryNumeric BinaryNumeric lr Mul a Add (UVector n a) Source # 
type ActsS BinaryNumeric lr Mul a (UVector n b) Source # 
type NeutralS BinaryNumeric op (UVector n a) Source # 
type MagmaS BinaryNumeric op (UVector n a) Source # 
type SemigroupS BinaryNumeric op (UVector n a) Source # 
type MonoidS BinaryNumeric op (UVector n a) Source # 
type CommutativeS BinaryNumeric op (UVector n a) Source # 
type CancellativeS BinaryNumeric Add (UVector n a) Source # 
type GroupS BinaryNumeric Add (UVector n a) Source # 
type AbelianGroupS BinaryNumeric Add (UVector n a) Source # 

g :: [UVector 10 Double] Source #

This is equal to > UVector [5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0,5.0]