/usr/share/axiom-20170501/src/algebra/CVMP.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 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 | )abbrev package CVMP CoerceVectorMatrixPackage
++ Author: J. Grabmeier
++ Date Created: 26 June 1991
++ Date Last Updated: 26 June 1991
++ Description:
++ CoerceVectorMatrixPackage is an unexposed, technical package
++ for data conversions
CoerceVectorMatrixPackage(R) : SIG == CODE where
R : CommutativeRing
M2P ==> MatrixCategoryFunctions2(R, Vector R, Vector R, Matrix R, _
Polynomial R, Vector Polynomial R, Vector Polynomial R, Matrix Polynomial R)
M2FP ==> MatrixCategoryFunctions2(R, Vector R, Vector R, Matrix R, _
Fraction Polynomial R, Vector Fraction Polynomial R, _
Vector Fraction Polynomial R, Matrix Fraction Polynomial R)
SIG ==> with
coerceP : Vector Matrix R -> Vector Matrix Polynomial R
++ coerceP(v) coerces a vector v with entries in \spadtype{Matrix R}
++ as vector over \spadtype{Matrix Polynomial R}
coerce : Vector Matrix R -> Vector Matrix Fraction Polynomial R
++ coerce(v) coerces a vector v with entries in \spadtype{Matrix R}
++ as vector over \spadtype{Matrix Fraction Polynomial R}
CODE ==> add
imbedFP : R -> Fraction Polynomial R
imbedFP r == (r:: Polynomial R) :: Fraction Polynomial R
imbedP : R -> Polynomial R
imbedP r == (r:: Polynomial R)
coerceP(g:Vector Matrix R) : Vector Matrix Polynomial R ==
m2 : Matrix Polynomial R
lim : List Matrix R := entries g
l: List Matrix Polynomial R := []
for m in lim repeat
m2 := map(imbedP,m)$M2P
l := cons(m2,l)
vector reverse l
coerce(g:Vector Matrix R) : Vector Matrix Fraction Polynomial R ==
m3 : Matrix Fraction Polynomial R
lim : List Matrix R := entries g
l: List Matrix Fraction Polynomial R := []
for m in lim repeat
m3 := map(imbedFP,m)$M2FP
l := cons(m3,l)
vector reverse l
|