/usr/share/axiom-20170501/src/algebra/CELL.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 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 | )abbrev domain CELL Cell
Cell(TheField) : SIG == CODE where
TheField : RealClosedField
ThePols ==> Polynomial(TheField)
O ==> OutputForm
B ==> Boolean
Z ==> Integer
N ==> NonNegativeInteger
BUP ==> SparseUnivariatePolynomial(TheField)
SCELL ==> SimpleCell(TheField,BUP)
SIG ==> CoercibleTo(O) with
samplePoint : % -> List(TheField)
dimension : % -> N
hasDimension? : (%,Symbol) -> B
makeCell : List(SCELL) -> %
makeCell : (SCELL,%) -> %
mainVariableOf : % -> Symbol
variablesOf : % -> List Symbol
projection : % -> Union(%,"failed")
CODE ==> add
Rep := List(SCELL)
coerce(c:%):O ==
paren [sc::O for sc in c]
projection(cell) ==
null cell => error "projection: should not appear"
r := rest(cell)
null r => "failed"
r
makeCell(l:List(SCELL)) == l
makeCell(scell,toAdd) == cons(scell,toAdd)
mainVariableOf(cell) ==
null(cell) =>
error "Should not appear"
variableOf(first(cell))
variablesOf(cell) ==
null(cell) => []
cons(mainVariableOf(cell),variablesOf(rest(cell)::%))
dimension(cell) ==
null(cell) => 0
hasDimension?(first(cell)) => 1+dimension(rest(cell))
dimension(rest(cell))
hasDimension?(cell,var) ==
null(cell) =>
error "Should not appear"
sc : SCELL := first(cell)
v := variableOf(sc)
v = var => hasDimension?(sc)
v < var => false
v > var => true
error "Caca Prout"
samplePoint(cell) ==
null(cell) => []
cons(samplePoint(first(cell)),samplePoint(rest(cell)))
|