From 640d839b4de4d0daf0dde00ba08eab6d264160ad Mon Sep 17 00:00:00 2001 From: dos-reis Date: Mon, 21 Jun 2010 03:14:17 +0000 Subject: * algebra/sgcf.spad.pamphlet (SymmetricGroupCombinatoricFunctions) [listYoungTableaus]: Fix thinko. Don't use lattice in its own initialization before it is defined. --- src/ChangeLog | 6 +++ src/algebra/d01routine.spad.pamphlet | 6 +-- src/algebra/d01transform.spad.pamphlet | 2 +- src/algebra/forttyp.spad.pamphlet | 1 + src/algebra/intfact.spad.pamphlet | 18 +++++--- src/algebra/mts.spad.pamphlet | 79 +++++++++++++++++----------------- src/algebra/multsqfr.spad.pamphlet | 3 +- src/algebra/naalgc.spad.pamphlet | 4 +- src/algebra/newpoly.spad.pamphlet | 18 +++----- src/algebra/permgrps.spad.pamphlet | 12 ++++-- src/algebra/pfo.spad.pamphlet | 7 ++- src/algebra/pgcd.spad.pamphlet | 5 ++- src/algebra/sgcf.spad.pamphlet | 15 ++++--- src/algebra/strap/BOOLEAN.lsp | 1 + src/algebra/strap/CHAR.lsp | 1 + src/algebra/strap/DFLOAT.lsp | 1 + src/algebra/strap/ILIST.lsp | 1 + src/algebra/strap/INT.lsp | 1 + src/algebra/strap/ISTRING.lsp | 1 + src/algebra/strap/LIST.lsp | 1 + src/algebra/strap/NNI.lsp | 1 + src/algebra/strap/OUTFORM.lsp | 1 + src/algebra/strap/PI.lsp | 1 + src/algebra/strap/SINT.lsp | 1 + src/algebra/strap/SYMBOL.lsp | 1 + src/algebra/strap/VECTOR.lsp | 1 + src/algebra/syssolp.spad.pamphlet | 5 ++- src/interp/nlib.lisp | 2 +- 28 files changed, 110 insertions(+), 86 deletions(-) (limited to 'src') diff --git a/src/ChangeLog b/src/ChangeLog index db1cc1ab..d08912ee 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,3 +1,9 @@ +2010-06-20 Gabriel Dos Reis + + * algebra/sgcf.spad.pamphlet (SymmetricGroupCombinatoricFunctions) + [listYoungTableaus]: Fix thinko. Don't use lattice in its own + initialization before it is defined. + 2010-06-20 Gabriel Dos Reis * interp/g-opt.boot (changeVariableDefinitionToStore): New. 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 n1 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) diff --git a/src/interp/nlib.lisp b/src/interp/nlib.lisp index a81d840b..c07c26f6 100644 --- a/src/interp/nlib.lisp +++ b/src/interp/nlib.lisp @@ -232,7 +232,7 @@ (ldate (and (probe-file lfile) (file-write-date lfile)))) (if ldate (if (and bdate (> bdate ldate)) nil - (progn (compile-lib-file lfile) (list bfile)))))) + (progn (|compileLispFile| lfile bfile) (list bfile)))))) #+:AKCL (defun spad-fixed-arg (fname ) -- cgit v1.2.3