/usr/share/axiom-20170501/src/algebra/FRNAAF2.spad is in axiom-source 20170501-3.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 | )abbrev package FRNAAF2 FramedNonAssociativeAlgebraFunctions2
++ Author: Johannes Grabmeier
++ Date Created: 28 February 1992
++ Date Last Updated: 28 February 1992
++ Description:
++ FramedNonAssociativeAlgebraFunctions2 implements functions between
++ two framed non associative algebra domains defined over different rings.
++ The function map is used to coerce between algebras over different
++ domains having the same structural constants.
FramedNonAssociativeAlgebraFunctions2(AR,R,AS,S) : SIG == CODE where
R : CommutativeRing
S : CommutativeRing
AR : FramedNonAssociativeAlgebra R
AS : FramedNonAssociativeAlgebra S
V ==> Vector
SIG ==> with
map : (R -> S, AR) -> AS
++ map(f,u) maps f onto the coordinates of u to get an element
++ in \spad{AS} via identification of the basis of \spad{AR}
++ as beginning part of the basis of \spad{AS}.
CODE ==> add
map(fn : R -> S, u : AR): AS ==
rank()$AR > rank()$AS => error("map: ranks of algebras do not fit")
vr : V R := coordinates u
vs : V S := map(fn,vr)$VectorFunctions2(R,S)
rank()$AR = rank()$AS => represents(vs)$AS
ba := basis()$AS
represents(vs,[ba.i for i in 1..rank()$AR])
|