aboutsummaryrefslogtreecommitdiff
path: root/src/algebra
diff options
context:
space:
mode:
authordos-reis <gdr@axiomatics.org>2010-06-21 03:14:17 +0000
committerdos-reis <gdr@axiomatics.org>2010-06-21 03:14:17 +0000
commit640d839b4de4d0daf0dde00ba08eab6d264160ad (patch)
tree3b5565cbc731bd2455a13c72a9a9c539f3088310 /src/algebra
parentbf21f6c3c98ea62bbd952ecd2382b63f4cd370bb (diff)
downloadopen-axiom-640d839b4de4d0daf0dde00ba08eab6d264160ad.tar.gz
* algebra/sgcf.spad.pamphlet (SymmetricGroupCombinatoricFunctions)
[listYoungTableaus]: Fix thinko. Don't use lattice in its own initialization before it is defined.
Diffstat (limited to 'src/algebra')
-rw-r--r--src/algebra/d01routine.spad.pamphlet6
-rw-r--r--src/algebra/d01transform.spad.pamphlet2
-rw-r--r--src/algebra/forttyp.spad.pamphlet1
-rw-r--r--src/algebra/intfact.spad.pamphlet18
-rw-r--r--src/algebra/mts.spad.pamphlet79
-rw-r--r--src/algebra/multsqfr.spad.pamphlet3
-rw-r--r--src/algebra/naalgc.spad.pamphlet4
-rw-r--r--src/algebra/newpoly.spad.pamphlet18
-rw-r--r--src/algebra/permgrps.spad.pamphlet12
-rw-r--r--src/algebra/pfo.spad.pamphlet7
-rw-r--r--src/algebra/pgcd.spad.pamphlet5
-rw-r--r--src/algebra/sgcf.spad.pamphlet15
-rw-r--r--src/algebra/strap/BOOLEAN.lsp1
-rw-r--r--src/algebra/strap/CHAR.lsp1
-rw-r--r--src/algebra/strap/DFLOAT.lsp1
-rw-r--r--src/algebra/strap/ILIST.lsp1
-rw-r--r--src/algebra/strap/INT.lsp1
-rw-r--r--src/algebra/strap/ISTRING.lsp1
-rw-r--r--src/algebra/strap/LIST.lsp1
-rw-r--r--src/algebra/strap/NNI.lsp1
-rw-r--r--src/algebra/strap/OUTFORM.lsp1
-rw-r--r--src/algebra/strap/PI.lsp1
-rw-r--r--src/algebra/strap/SINT.lsp1
-rw-r--r--src/algebra/strap/SYMBOL.lsp1
-rw-r--r--src/algebra/strap/VECTOR.lsp1
-rw-r--r--src/algebra/syssolp.spad.pamphlet5
26 files changed, 103 insertions, 85 deletions
diff --git a/src/algebra/d01routine.spad.pamphlet b/src/algebra/d01routine.spad.pamphlet
index ee7b45fa..66dbccf8 100644
--- a/src/algebra/d01routine.spad.pamphlet
+++ b/src/algebra/d01routine.spad.pamphlet
@@ -456,8 +456,6 @@ d01anfAnnaType(): NumericalIntegrationCategory == Result add
ext:Result := empty()$Result
weight:Union(Record(op:BOP,w:DF),"failed") :=
exprHasWeightCosWXorSinWX(args)
- weight case "failed" =>
- [0.0,"d01anf: A suitable weight has not been found", ext]
weight case Record(op:BOP,w:DF) =>
wany := coerce(weight)$AnyFunctions1(Record(op:BOP,w:DF))
ex:Record(key:S,entry:Any) := [d01anfextra@S,wany]
@@ -466,6 +464,7 @@ d01anfAnnaType(): NumericalIntegrationCategory == Result add
string(args.var)$S ")"
[getMeasure(R,d01anf@S)$RT,
"d01anf: The expression has a suitable weight:- " ws, ext]
+ [0.0,"d01anf: A suitable weight has not been found", ext]
numericalIntegration(args:NIA,hints:Result) ==
a:INT
@@ -529,8 +528,6 @@ d01asfAnnaType(): NumericalIntegrationCategory == Result add
[0.0,"d01asf is not a suitable routine for infinite integrals",ext]
weight: Union(Record(op:BOP,w:DF),"failed") :=
exprHasWeightCosWXorSinWX(args)
- weight case "failed" =>
- [0.0,"d01asf: A suitable weight has not been found", ext]
weight case Record(op:BOP,w:DF) =>
wany := coerce(weight)$AnyFunctions1(Record(op:BOP,w:DF))
ex:Record(key:S,entry:Any) := [d01asfextra@S,wany]
@@ -539,6 +536,7 @@ d01asfAnnaType(): NumericalIntegrationCategory == Result add
string(args.var)$S ")"
[getMeasure(R,d01asf@S)$RT,
"d01asf: A suitable weight has been found:- " ws, ext]
+ [0.0,"d01asf: A suitable weight has not been found", ext]
numericalIntegration(args:NIA,hints:Result) ==
i:INT
diff --git a/src/algebra/d01transform.spad.pamphlet b/src/algebra/d01transform.spad.pamphlet
index f1949db4..29cd588f 100644
--- a/src/algebra/d01transform.spad.pamphlet
+++ b/src/algebra/d01transform.spad.pamphlet
@@ -127,7 +127,6 @@ d01TransformFunctionType():NumericalIntegrationCategory == Result add
measure(R:RoutinesTable,args:NIA) ==
Range:=rangeIsFinite(args)
- Range case bothInfinite => split(1,args)
Range case upperInfinite =>
positive?(lo(args.range))$OCDF =>
transform(true,args)
@@ -136,6 +135,7 @@ d01TransformFunctionType():NumericalIntegrationCategory == Result add
negative?(hi(args.range))$OCDF =>
transform(false,args)
split(3,args)
+ split(1,args)
numericalIntegration(args:NIA,hints:Result) ==
mainResult:DF := mainAbserr:DF := 0$DF
diff --git a/src/algebra/forttyp.spad.pamphlet b/src/algebra/forttyp.spad.pamphlet
index c1800ccd..ca059628 100644
--- a/src/algebra/forttyp.spad.pamphlet
+++ b/src/algebra/forttyp.spad.pamphlet
@@ -130,6 +130,7 @@ FortranScalarType() : exports == implementation where
s = upperDoubleSymbol => ["double precision"]$Rep
s = doubleComplexSymbol => ["double complex"]$Rep
s = upperDoubleCOmplexSymbol => ["double complex"]$Rep
+ error "invalid as a Fortran Type"
coerce(s:String):$ ==
s = "real" => ["real"]$Rep
diff --git a/src/algebra/intfact.spad.pamphlet b/src/algebra/intfact.spad.pamphlet
index 8615cf7f..dc7629d1 100644
--- a/src/algebra/intfact.spad.pamphlet
+++ b/src/algebra/intfact.spad.pamphlet
@@ -151,8 +151,10 @@ IntegerPrimesPackage(I:IntegerNumberSystem): with
nm1 := n-1
q := (nm1) quo two
- k : NonNegativeInteger
- for k in 1.. while not odd? q repeat q := q quo two
+ k: NonNegativeInteger := 1
+ while not odd? q repeat
+ q := q quo two
+ k := k + 1
-- q = (n-1) quo 2**k for largest possible k
n < JaeschkeLimit =>
@@ -457,8 +459,10 @@ IntegerFactorizationPackage(I): Exports == Implementation where
if n<d*d then
if n>1 then ls := concat!(ls, ["prime",n,1]$FFE)
return makeFR(1, ls)
- m : Integer
- for m in 0.. while zero?(n rem d) repeat n := n quo d
+ m: Integer := 0
+ while zero?(n rem d) repeat
+ n := n quo d
+ m := m + 1
if m>0 then ls := concat!(ls, ["prime",d,convert m]$FFE)
d := d+s
@@ -496,8 +500,10 @@ IntegerFactorizationPackage(I): Exports == Implementation where
insert!(x+y,a,c)
insert!(x-y,a,c)
(d := PollardSmallFactor20 n) case I =>
- m' : NonNegativeInteger
- for m' in 0.. while zero?(n rem d) repeat n := n quo d
+ m': NonNegativeInteger := 0
+ while zero?(n rem d) repeat
+ n := n quo d
+ m' := m' + 1
insert!(d, a, m' * c)
if n > 1 then insert!(n, a, c)
-- an elliptic curve factorization attempt should be made here
diff --git a/src/algebra/mts.spad.pamphlet b/src/algebra/mts.spad.pamphlet
index 1f232c31..e83ae506 100644
--- a/src/algebra/mts.spad.pamphlet
+++ b/src/algebra/mts.spad.pamphlet
@@ -77,6 +77,10 @@ SparseMultivariateTaylorSeries(Coef,Var,SMP):_
Implementation ==> PS add
Rep := StS -- Below we use the fact that Rep of PS is Stream SMP.
+ -- FIXME: These come for free if assignment to Rep is removed.
+ rep(x: %): Rep == x pretend Rep
+ per(x: Rep): % == x pretend %
+
extend(x,n) == extend(x,n + 1)$Rep
complete x == complete(x)$Rep
@@ -187,43 +191,40 @@ SparseMultivariateTaylorSeries(Coef,Var,SMP):_
map(differentiate(#1,v),rst s)
if Coef has Algebra Fraction Integer then
-
- stream(x:%):Rep == x pretend Rep
-
- (x:%) ** (r:RN) == powern(r,stream x)$STT
- (r:RN) * (x:%) == map(r * #1, stream x)$ST2(SMP,SMP) pretend %
- (x:%) * (r:RN) == map(#1 * r,stream x )$ST2(SMP,SMP) pretend %
-
- exp x == exp(stream x)$STF
- log x == log(stream x)$STF
-
- sin x == sin(stream x)$STF
- cos x == cos(stream x)$STF
- tan x == tan(stream x)$STF
- cot x == cot(stream x)$STF
- sec x == sec(stream x)$STF
- csc x == csc(stream x)$STF
-
- asin x == asin(stream x)$STF
- acos x == acos(stream x)$STF
- atan x == atan(stream x)$STF
- acot x == acot(stream x)$STF
- asec x == asec(stream x)$STF
- acsc x == acsc(stream x)$STF
-
- sinh x == sinh(stream x)$STF
- cosh x == cosh(stream x)$STF
- tanh x == tanh(stream x)$STF
- coth x == coth(stream x)$STF
- sech x == sech(stream x)$STF
- csch x == csch(stream x)$STF
-
- asinh x == asinh(stream x)$STF
- acosh x == acosh(stream x)$STF
- atanh x == atanh(stream x)$STF
- acoth x == acoth(stream x)$STF
- asech x == asech(stream x)$STF
- acsch x == acsch(stream x)$STF
+ (x:%) ** (r:RN) == powern(r,rep x)$STT
+ (r:RN) * (x:%) == per map(r * #1, rep x)$ST2(SMP,SMP)
+ (x:%) * (r:RN) == per map(#1 * r,rep x )$ST2(SMP,SMP)
+
+ exp x == exp(rep x)$STF
+ log x == log(rep x)$STF
+
+ sin x == sin(rep x)$STF
+ cos x == cos(rep x)$STF
+ tan x == tan(rep x)$STF
+ cot x == cot(rep x)$STF
+ sec x == sec(rep x)$STF
+ csc x == csc(rep x)$STF
+
+ asin x == asin(rep x)$STF
+ acos x == acos(rep x)$STF
+ atan x == atan(rep x)$STF
+ acot x == acot(rep x)$STF
+ asec x == asec(rep x)$STF
+ acsc x == acsc(rep x)$STF
+
+ sinh x == sinh(rep x)$STF
+ cosh x == cosh(rep x)$STF
+ tanh x == tanh(rep x)$STF
+ coth x == coth(rep x)$STF
+ sech x == sech(rep x)$STF
+ csch x == csch(rep x)$STF
+
+ asinh x == asinh(rep x)$STF
+ acosh x == acosh(rep x)$STF
+ atanh x == atanh(rep x)$STF
+ acoth x == acoth(rep x)$STF
+ asech x == asech(rep x)$STF
+ acsch x == acsch(rep x)$STF
intsmp(v:Var,p: SMP): SMP ==
up := univariate(p,v)
@@ -272,9 +273,7 @@ SparseMultivariateTaylorSeries(Coef,Var,SMP):_
empty? l => (0$SMP) :: OUT
reduce("+",reverse! l)
if Coef has Field then
- stream(x:%):Rep == x pretend Rep
- SF2==> StreamFunctions2
- p:% / r:Coef ==(map(#1/$SMP r,stream p)$SF2(SMP,SMP))pretend %
+ p:% / r:Coef == per map(#1/$SMP r,rep p)$StreamFunctions2(SMP,SMP)
@
\section{domain TS TaylorSeries}
diff --git a/src/algebra/multsqfr.spad.pamphlet b/src/algebra/multsqfr.spad.pamphlet
index be6949f3..91637d86 100644
--- a/src/algebra/multsqfr.spad.pamphlet
+++ b/src/algebra/multsqfr.spad.pamphlet
@@ -267,7 +267,8 @@ MultivariateSquareFree (E,OV,R,P) : C == T where
ctf1:=ctf
lval1:=lval
d1:=d0
-
+ error "intChoose$MultivariateSquareFree: fell off loop without answer"
+
---- Choose the leading coefficient for the lifting ----
coefChoose(exp:Z,sqlead:Factored(P)) : P ==
diff --git a/src/algebra/naalgc.spad.pamphlet b/src/algebra/naalgc.spad.pamphlet
index b0d5b2d3..b68e779c 100644
--- a/src/algebra/naalgc.spad.pamphlet
+++ b/src/algebra/naalgc.spad.pamphlet
@@ -1022,7 +1022,7 @@ FramedNonAssociativeAlgebra(R:CommutativeRing): Category == _
listOfNumbers : List String := [STRINGIMAGE(q)$Lisp for q in 1..n]
symbolsForCoef : Vector Symbol :=
[concat("%", concat("x", i))::Symbol for i in listOfNumbers]
- xx : M P R
+ xx : M P R := new(1,n,0)
mo : P R
x : M P R := new(1,n,0)
for i in 1..n repeat
@@ -1055,7 +1055,7 @@ FramedNonAssociativeAlgebra(R:CommutativeRing): Category == _
listOfNumbers : List String := [STRINGIMAGE(q)$Lisp for q in 1..n]
symbolsForCoef : Vector Symbol :=
[concat("%", concat("x", i))::Symbol for i in listOfNumbers]
- xx : M P R
+ xx : M P R := new(1,n,0)
mo : P R
x : M P R := new(1,n,0)
for i in 1..n repeat
diff --git a/src/algebra/newpoly.spad.pamphlet b/src/algebra/newpoly.spad.pamphlet
index 23cd07b7..88fb5070 100644
--- a/src/algebra/newpoly.spad.pamphlet
+++ b/src/algebra/newpoly.spad.pamphlet
@@ -1029,13 +1029,9 @@ RecursivePolynomialCategory(R:Ring, E:OrderedAbelianMonoidSup, V:OrderedSet): Ca
if R has IntegralDomain
then
- if R has EuclideanDomain
- then
- exactQuo(r:R,s:R):R ==
- r quo$R s
- else
- exactQuo(r:R,s:R):R ==
- (r exquo$R s)::R
+ exactQuo(r:R,s:R):R ==
+ R has EuclideanDomain => r quo$R s
+ (r exquo$R s)::R
exactQuotient (p:$,r:R) ==
(p exquo$$ r)::$
@@ -1215,9 +1211,7 @@ RecursivePolynomialCategory(R:Ring, E:OrderedAbelianMonoidSup, V:OrderedSet): Ca
mpc2Z := MPolyCatFunctions2(Symbol,IES,IES,Z,R,PZ,PR)
mpc2Q := MPolyCatFunctions2(Symbol,IES,IES,Q,R,PQ,PR)
- ZToR (z:Z):R == coerce(z)@R
QToR (q:Q):R == coerce(q)@R
- PZToPR (pz:PZ):PR == map(ZToR,pz)$mpc2Z
PQToPR (pq:PQ):PR == map(QToR,pq)$mpc2Q
retract(pz:PZ) ==
@@ -1254,7 +1248,7 @@ RecursivePolynomialCategory(R:Ring, E:OrderedAbelianMonoidSup, V:OrderedSet): Ca
retractIfCan(pr)@Union($,"failed")
retractIfCan(pz:PZ) ==
- pr : PR := PZToPR(pz)
+ pr : PR := map(#1::R,pz)$mpc2Z
retractIfCan(pr)@Union($,"failed")
retract(pr:PR) ==
@@ -1298,8 +1292,6 @@ RecursivePolynomialCategory(R:Ring, E:OrderedAbelianMonoidSup, V:OrderedSet): Ca
then
mpc2Z := MPolyCatFunctions2(Symbol,IES,IES,Z,R,PZ,PR)
- ZToR (z:Z):R == coerce(z)@R
- PZToPR (pz:PZ):PR == map(ZToR,pz)$mpc2Z
retract(pz:PZ) ==
rif : Union($,"failed") := retractIfCan(pz)@Union($,"failed")
@@ -1323,7 +1315,7 @@ RecursivePolynomialCategory(R:Ring, E:OrderedAbelianMonoidSup, V:OrderedSet): Ca
localRetractIfCanPZ(pz)@Union($,"failed")
else
retractIfCan(pz:PZ) ==
- pr : PR := PZToPR(pz)
+ pr : PR := map(#1::R,pz)$mpc2Z
retractIfCan(pr)@Union($,"failed")
retract(pr:PR) ==
diff --git a/src/algebra/permgrps.spad.pamphlet b/src/algebra/permgrps.spad.pamphlet
index 98e2ab75..e5ae0b61 100644
--- a/src/algebra/permgrps.spad.pamphlet
+++ b/src/algebra/permgrps.spad.pamphlet
@@ -338,23 +338,27 @@ PermutationGroup(S:SetCategory): public == private where
xelt := times ( x , xelt )
if wordProblem then word := append ( wordlist.p , word )
ppt := x.ppt
+ [xelt,word]
bsgs1 (group:L V NNI,number1:NNI,words:L L NNI,maxLoops:I,gp:%,diff:I)_
: NNI ==
-- try to get a good approximation for the strong generators and base
ort: REC
k1: NNI
- i : NNI
- for i in number1..degree repeat
+ i: NNI := number1
+ while i <= degree repeat
ort := orbitWithSvc ( group , i )
k := ort.orb
k1 := # k
if k1 ~= 1 then leave
+ i := i + 1
gpsgs := nil()$(L V NNI)
words2 := nil()$(L L NNI)
gplength : NNI := #group
- jj: NNI
- for jj in 1..gplength repeat if (group.jj).i ~= i then leave
+ jj: NNI := 1
+ while jj <= gplength repeat
+ if (group.jj).i ~= i then leave
+ jj := jj + 1
for k in 1..gplength repeat
el2 := group.k
if el2.i ~= i then
diff --git a/src/algebra/pfo.spad.pamphlet b/src/algebra/pfo.spad.pamphlet
index 45b6ac45..970c8c98 100644
--- a/src/algebra/pfo.spad.pamphlet
+++ b/src/algebra/pfo.spad.pamphlet
@@ -385,10 +385,9 @@ PointsOfFiniteOrder(R0, F, UP, UPUP, R): Exports == Implementation where
map(UP22UP(#1,k)::QF,
p)$UnivariatePolynomialCategoryFunctions2(UP2, UP3, QF, UPUP)
- if R0 has GcdDomain then
- cmult(l:List SMP):SMP == lcm l
- else
- cmult(l:List SMP):SMP == */l
+ cmult(l:List SMP):SMP ==
+ R0 has GcdDomain => lcm l
+ */l
doubleDisc(f:UP3):Z ==
d := discriminant f
diff --git a/src/algebra/pgcd.spad.pamphlet b/src/algebra/pgcd.spad.pamphlet
index edbbccb0..f06e27af 100644
--- a/src/algebra/pgcd.spad.pamphlet
+++ b/src/algebra/pgcd.spad.pamphlet
@@ -304,8 +304,9 @@ PolynomialGcdPackage(E,OV,R,P):C == T where
listpol:=listpol.rest
nolift:Boolean:=true
uf: SUP
- for uf in listpol repeat
- --note uf and d not necessarily primitive
+ for fs in tails listpol while nolift repeat
+ uf := first fs
+ --note uf and d not necessarily primitive
degree gcd(uf,d) =0 => nolift:=false
nolift => ["notCoprime"]
f:SUPP:=([p1,p2]$List(SUPP)).(position(uf,listpol))
diff --git a/src/algebra/sgcf.spad.pamphlet b/src/algebra/sgcf.spad.pamphlet
index 72669658..20fdb544 100644
--- a/src/algebra/sgcf.spad.pamphlet
+++ b/src/algebra/sgcf.spad.pamphlet
@@ -212,11 +212,12 @@ SymmetricGroupCombinatoricFunctions(): public == private where
for t in 0..(m-2) repeat
s : I := 0
sOld: I
- y : I
- for y in 0..n repeat
+ y : I := 0
+ while y <= n repeat
sOld := s
s := s + numberOfImproperPartitions(n-y,m-t-1)
if s > k then leave
+ y := y + 1
l := append(l,list(y)$(L I))$(L I)
k := k - sOld
n := n - y
@@ -241,12 +242,13 @@ SymmetricGroupCombinatoricFunctions(): public == private where
s : I := 0
cm := cm - 1
sOld : I
- y : I
- for y in n..1 by -1 repeat --determination of the next son
+ y : I := n
+ while y >= 1 repeat --determination of the next son
sOld := s -- remember old s
-- this functions counts the number of elements in a subtree
s := s + numberOfImproperPartitionsInternal(n-y,m,cm)
if s > k then leave
+ y := y - 1
-- y is the next son, so put it into the pathlist "nonZero"
nonZeros := append(nonZeros,list(y)$(L I))$(L I)
k := k - sOld --updating
@@ -270,9 +272,10 @@ SymmetricGroupCombinatoricFunctions(): public == private where
mm : I := k
s : I := m
for t in 0..(m-1) repeat
- y : Integer
- for y in (s-1)..(n+1) repeat
+ y : Integer := s-1
+ while y <= (n+1) repeat
if binomial$ICF (y,s) > mm then leave
+ y := y + 1
l := append (l,list(y-1)$(L I))
mm := mm - binomial$ICF (y-1,s)
s := s-1
diff --git a/src/algebra/strap/BOOLEAN.lsp b/src/algebra/strap/BOOLEAN.lsp
index f1f08c88..0bc201fd 100644
--- a/src/algebra/strap/BOOLEAN.lsp
+++ b/src/algebra/strap/BOOLEAN.lsp
@@ -165,6 +165,7 @@
(COND ((NOT #0#) (HREM |$ConstructorCache| '|Boolean|)))))))))
(DEFUN |Boolean;| ()
+ (DECLARE (SPECIAL |$ConstructorCache|))
(LET ((|dv$| (LIST '|Boolean|)) ($ (|newShell| 39))
(|pv$| (|buildPredVector| 0 0 NIL)))
(DECLARE (SPECIAL |$ConstructorCache|))
diff --git a/src/algebra/strap/CHAR.lsp b/src/algebra/strap/CHAR.lsp
index 54208bca..5e2860e4 100644
--- a/src/algebra/strap/CHAR.lsp
+++ b/src/algebra/strap/CHAR.lsp
@@ -200,6 +200,7 @@
(COND ((NOT #0#) (HREM |$ConstructorCache| '|Character|)))))))))
(DEFUN |Character;| ()
+ (DECLARE (SPECIAL |$ConstructorCache|))
(LET ((|dv$| (LIST '|Character|)) ($ (|newShell| 58))
(|pv$| (|buildPredVector| 0 0 NIL)))
(DECLARE (SPECIAL |$ConstructorCache|))
diff --git a/src/algebra/strap/DFLOAT.lsp b/src/algebra/strap/DFLOAT.lsp
index 6b061736..7c1748b2 100644
--- a/src/algebra/strap/DFLOAT.lsp
+++ b/src/algebra/strap/DFLOAT.lsp
@@ -885,6 +885,7 @@
((NOT #0#) (HREM |$ConstructorCache| '|DoubleFloat|)))))))))
(DEFUN |DoubleFloat;| ()
+ (DECLARE (SPECIAL |$ConstructorCache|))
(LET ((|dv$| (LIST '|DoubleFloat|)) ($ (|newShell| 164))
(|pv$| (|buildPredVector| 0 0 NIL)))
(DECLARE (SPECIAL |$ConstructorCache|))
diff --git a/src/algebra/strap/ILIST.lsp b/src/algebra/strap/ILIST.lsp
index 820134e2..73d2a356 100644
--- a/src/algebra/strap/ILIST.lsp
+++ b/src/algebra/strap/ILIST.lsp
@@ -440,6 +440,7 @@
((NOT #2#) (HREM |$ConstructorCache| '|IndexedList|)))))))))
(DEFUN |IndexedList;| (|#1| |#2|)
+ (DECLARE (SPECIAL |$ConstructorCache|))
(LET* ((|dv$1| (|devaluate| |#1|)) (|dv$2| (|devaluate| |#2|))
(|dv$| (LIST '|IndexedList| |dv$1| |dv$2|))
($ (|newShell| 86))
diff --git a/src/algebra/strap/INT.lsp b/src/algebra/strap/INT.lsp
index 919f0c16..c9b9f9ec 100644
--- a/src/algebra/strap/INT.lsp
+++ b/src/algebra/strap/INT.lsp
@@ -527,6 +527,7 @@
(COND ((NOT #0#) (HREM |$ConstructorCache| '|Integer|)))))))))
(DEFUN |Integer;| ()
+ (DECLARE (SPECIAL |$ConstructorCache|))
(LET ((|dv$| (LIST '|Integer|)) ($ (|newShell| 141))
(|pv$| (|buildPredVector| 0 0 NIL)))
(DECLARE (SPECIAL |$ConstructorCache|))
diff --git a/src/algebra/strap/ISTRING.lsp b/src/algebra/strap/ISTRING.lsp
index 8f2a39fc..74393704 100644
--- a/src/algebra/strap/ISTRING.lsp
+++ b/src/algebra/strap/ISTRING.lsp
@@ -705,6 +705,7 @@
((NOT #1#) (HREM |$ConstructorCache| '|IndexedString|)))))))))
(DEFUN |IndexedString;| (|#1|)
+ (DECLARE (SPECIAL |$ConstructorCache|))
(LET* ((|dv$1| (|devaluate| |#1|))
(|dv$| (LIST '|IndexedString| |dv$1|)) ($ (|newShell| 100))
(|pv$| (|buildPredVector| 0 0
diff --git a/src/algebra/strap/LIST.lsp b/src/algebra/strap/LIST.lsp
index 3eec6e6d..87fdc8f1 100644
--- a/src/algebra/strap/LIST.lsp
+++ b/src/algebra/strap/LIST.lsp
@@ -196,6 +196,7 @@
(COND ((NOT #1#) (HREM |$ConstructorCache| '|List|)))))))))
(DEFUN |List;| (|#1|)
+ (DECLARE (SPECIAL |$ConstructorCache|))
(LET* ((|dv$1| (|devaluate| |#1|)) (|dv$| (LIST '|List| |dv$1|))
($ (|newShell| 70))
(|pv$| (|buildPredVector| 0 0
diff --git a/src/algebra/strap/NNI.lsp b/src/algebra/strap/NNI.lsp
index 5419507e..3f8551f1 100644
--- a/src/algebra/strap/NNI.lsp
+++ b/src/algebra/strap/NNI.lsp
@@ -60,6 +60,7 @@
(HREM |$ConstructorCache| '|NonNegativeInteger|)))))))))
(DEFUN |NonNegativeInteger;| ()
+ (DECLARE (SPECIAL |$ConstructorCache|))
(LET ((|dv$| (LIST '|NonNegativeInteger|)) ($ (|newShell| 22))
(|pv$| (|buildPredVector| 0 0 NIL)))
(DECLARE (SPECIAL |$ConstructorCache|))
diff --git a/src/algebra/strap/OUTFORM.lsp b/src/algebra/strap/OUTFORM.lsp
index 70ac70a6..8a5eca36 100644
--- a/src/algebra/strap/OUTFORM.lsp
+++ b/src/algebra/strap/OUTFORM.lsp
@@ -1016,6 +1016,7 @@
(COND ((NOT #0#) (HREM |$ConstructorCache| '|OutputForm|)))))))))
(DEFUN |OutputForm;| ()
+ (DECLARE (SPECIAL |$ConstructorCache|))
(LET ((|dv$| (LIST '|OutputForm|)) ($ (|newShell| 150))
(|pv$| (|buildPredVector| 0 0 NIL)))
(DECLARE (SPECIAL |$ConstructorCache|))
diff --git a/src/algebra/strap/PI.lsp b/src/algebra/strap/PI.lsp
index 000a27c9..fcf15cb5 100644
--- a/src/algebra/strap/PI.lsp
+++ b/src/algebra/strap/PI.lsp
@@ -21,6 +21,7 @@
((NOT #0#) (HREM |$ConstructorCache| '|PositiveInteger|)))))))))
(DEFUN |PositiveInteger;| ()
+ (DECLARE (SPECIAL |$ConstructorCache|))
(LET ((|dv$| (LIST '|PositiveInteger|)) ($ (|newShell| 16))
(|pv$| (|buildPredVector| 0 0 NIL)))
(DECLARE (SPECIAL |$ConstructorCache|))
diff --git a/src/algebra/strap/SINT.lsp b/src/algebra/strap/SINT.lsp
index c0ec6dbb..87d5720b 100644
--- a/src/algebra/strap/SINT.lsp
+++ b/src/algebra/strap/SINT.lsp
@@ -542,6 +542,7 @@
((NOT #0#) (HREM |$ConstructorCache| '|SingleInteger|)))))))))
(DEFUN |SingleInteger;| ()
+ (DECLARE (SPECIAL |$ConstructorCache|))
(LET ((|dv$| (LIST '|SingleInteger|)) ($ (|newShell| 116))
(|pv$| (|buildPredVector| 0 0 NIL)))
(DECLARE (SPECIAL |$ConstructorCache|))
diff --git a/src/algebra/strap/SYMBOL.lsp b/src/algebra/strap/SYMBOL.lsp
index a34479e4..c315c0c6 100644
--- a/src/algebra/strap/SYMBOL.lsp
+++ b/src/algebra/strap/SYMBOL.lsp
@@ -653,6 +653,7 @@
(COND ((NOT #0#) (HREM |$ConstructorCache| '|Symbol|)))))))))
(DEFUN |Symbol;| ()
+ (DECLARE (SPECIAL |$ConstructorCache|))
(LET ((|dv$| (LIST '|Symbol|)) ($ (|newShell| 165))
(|pv$| (|buildPredVector| 0 0 NIL)))
(DECLARE (SPECIAL |$ConstructorCache|))
diff --git a/src/algebra/strap/VECTOR.lsp b/src/algebra/strap/VECTOR.lsp
index 98d29103..560068d4 100644
--- a/src/algebra/strap/VECTOR.lsp
+++ b/src/algebra/strap/VECTOR.lsp
@@ -42,6 +42,7 @@
(COND ((NOT #1#) (HREM |$ConstructorCache| '|Vector|)))))))))
(DEFUN |Vector;| (|#1|)
+ (DECLARE (SPECIAL |$ConstructorCache|))
(LET* ((|dv$1| (|devaluate| |#1|)) (|dv$| (LIST '|Vector| |dv$1|))
($ (|newShell| 36))
(|pv$| (|buildPredVector| 0 0
diff --git a/src/algebra/syssolp.spad.pamphlet b/src/algebra/syssolp.spad.pamphlet
index 1561a89a..2d035d32 100644
--- a/src/algebra/syssolp.spad.pamphlet
+++ b/src/algebra/syssolp.spad.pamphlet
@@ -118,8 +118,9 @@ SystemSolvePackage(R): Cat == Cap where
z:=last lv
np:=numer makeP2F p
lx:=variables np
- x : SE
- for x in lv repeat if member?(x,lx) then leave x
+ x : SE
+ for x' in lv repeat
+ if member?(x',lx) then leave (x := x')
up:=univariate(np,x)
(degree up)=1 =>
equation(x::P(R)::F,-coefficient(up,0)/leadingCoefficient up)