Refs:
We need the Axiom LinearOperator library. fricas (1) -> )library CARTEN ARITY CMONAL CPROP CLOP CALEY Use the following macros for convenient notation fricas -- summation macro Σ(x, Type: Void
fricas -- list macro Ξ(f, Type: Void
fricas -- subscript and superscripts macro sb == subscript Type: Void
fricas macro sp == superscript Type: Void
𝐋 is the domain of 2-dimensional linear operators over the rational functions ℚ (Expression Integer), i.e. ratio of polynomials with integer coefficients. fricas dim:=2
Type: PositiveInteger?
fricas macro ℒ == List Type: Void
fricas macro ℂ == CaleyDickson Type: Void
fricas macro ℚ == Expression Integer Type: Void
fricas 𝐋 := ClosedLinearOperator(OVAR ['1,
Type: Type
fricas 𝐞:ℒ 𝐋 := basisOut()
fricas 𝐝:ℒ 𝐋 := basisIn()
fricas I:𝐋:=[1] -- identity for composition
fricas X:𝐋:=[2,
fricas V:𝐋:=ev(1) -- evaluation
fricas Λ:𝐋:=co(1) -- co-evaluation
fricas !:𝐋:=[-1] -- color change 1 -> 1*
fricas $:𝐋:=dagger ! -- 1* -> 1
fricas J:𝐋:=$/!
fricas test(!/$=I)
Type: Boolean
fricas equate(eq)==map((x, Type: Void
We want to be able to implement linear operators with two "colors" like the following: An example starting with Complex Algebra The basis consists of the real and imaginary units. We use complex multiplication to form the "multiplication table" as a matrix. Then the structure constants can be obtained by dividing each matrix entry by the list of basis vectors. Split-complex can be specified by Caley-Dickson parameter (q0 = -1) fricas --q:=1 -- split-complex q:=sp('i,
Type: Symbol
fricas QQ := ℂ(ℚ, Type: Type
Basis: Each B.i is a complex number fricas B:ℒ QQ := map(x +-> hyper x,
fricas -- Multiplication table: M:Matrix QQ := matrix Ξ(Ξ(B.i*B.j,
fricas -- Function to divide the matrix entries by a basis element S(y) == map(x +-> real real(x/y), Type: Void
fricas -- The result is a nested list ѕ :=map(S, fricas Compiling function S with type CaleyDickson(Expression(Integer),
Type: List(List(List(Expression(Integer))))
fricas -- structure constants form a tensor operator Y := Σ(Σ(Σ(ѕ(i)(k)(j)*𝐞.i*𝐝.j*($/𝐝.k),
fricas arity Y
fricas Y! := (I,
fricas matrix Ξ(Ξ((𝐞.i*𝐞.j)/Y!,
Multiplication of arbitrary quaternions and fricas a:=Σ(sb('a,
fricas b:=Σ(sb('b,
fricas (a,
Multiplication is Associative fricas test( ( Y! J ) / _ ( Y ) = _ ( I Y ) / _ ( Y! ) )
Type: Boolean
A scalar product is denoted by the (2,0)-tensor fricas U:=Σ(Σ(script('u,
fricas arity U
Definition 1We say that the scalar product is associative if the tensor equation holds: Y = Y U U In other words, if the (3,0)-tensor:
How should we color this? |