noether-0.0.1: Math in Haskell.

Safe HaskellNone
LanguageHaskell2010

Noether.Algebra.Vector.Boxed

Synopsis

Documentation

newtype BVector n v Source #

BVector n v ≅ v^n.

Constructors

BVector (Vector v) 

Instances

ActsK k1 lr op a b s => ActsK k1 lr op a (BVector k n b) (ActsTagged BVectorLift s) Source #

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

Methods

actK :: Proxy lr a -> Proxy ActsE s -> Proxy Side op -> BVector k n b -> ActsTagged BVectorLift s -> ActsTagged BVectorLift s Source #

(KnownNat n, NeutralK k op v s) => NeutralK k op (BVector Nat n v) (NeutralTagged BVectorLift s) Source #

Neutral elements for addition and multiplication.

MagmaK k1 op v s => MagmaK k1 op (BVector k n v) (MagmaTagged BVectorLift s) Source #

Lifting addition and multiplication coordinatewise (Hadamard?)

CancellativeK k1 op v s => CancellativeK k1 op (BVector k n v) (CancellativeTagged BVectorLift 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!)

Show v => Show (BVector k n v) Source # 

Methods

showsPrec :: Int -> BVector k n v -> ShowS #

show :: BVector k n v -> String #

showList :: [BVector k n v] -> ShowS #

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

unsafeChangeDimension :: forall k l m n a. BVector m a -> BVector n a Source #