I just installed the latest silver version from
http://www.axiom-developer.org/axiom-website/download.html
on my ubuntu system and I tried to do some computation.
While axiom was working, after maybe 10-20 minutes, the
system crashed (very) badly, like just unplugging the power.
The same happened the second time I tried.
I didn't try a third time...
Computations involved computing a groebner basis for
174 equations with 25 variable: am I asking to much from the
system?
If needed, I can post the input file.
Please do so.
Martin
Here it is.
After reading it, you will end up with a variable called eqns which
contains a list of 174 equations in the variable %A,...,%Y.
The problem arises when executing
groebner(eqns)
Fabio
deglex : (PI,PI) -> List(List(INT))
deglex(n,h) ==
lista : List(List(INT)) := []
for i in 0..n^h-1 repeat
l : List(INT) := [1 for j in 1..h]
q := i
for j in h..1 by -1 repeat
r := divide(q,n).remainder
q := divide(q,n).quotient
l(j) := r+1
if q = 0 then break
lista := append(lista,[l])
lista
n2deglex : (PI,PI,PI) -> List(INT)
n2deglex(i,n,h) ==
if i > n^h then error("Numero troppo grande")
l : List(INT) := [1 for j in 1..h]
q := i-1
for j in h..1 by -1 repeat
r := divide(q,n).remainder
q := divide(q,n).quotient
l(j) := r+1
if q = 0 then break
l
deglex2n : (List(INT),PI,PI) -> PI
deglex2n(l,n,h) ==
if #l ~= h then error("La lista non ha la dimensione giusta")
i := 0
for j in h..1 by -1 repeat
c := l(j)-1
e : NNI := h-j
i := i+c*n^e
i := i+1
i
degrevlex : (PI,PI) -> List(List(INT))
degrevlex(n,h) ==
lista : List(List(INT)) := []
for i in 0..n^h-1 repeat
l : List(INT) := [1 for j in 1..h]
q := i
for j in 1..h repeat
r := divide(q,n).remainder
q := divide(q,n).quotient
l(j) := r+1
if q = 0 then break
lista := append(lista,[l])
lista
n2degrevlex : (PI,PI,PI) -> List(INT)
n2degrevlex(i,n,h) ==
if i > n^h then error("Numero troppo grande")
l : List(INT) := [1 for j in 1..h]
q := i-1
for j in 1..h repeat
r := divide(q,n).remainder
q := divide(q,n).quotient
l(j) := r+1
if q = 0 then break
l
degrevlex2n : (List(INT),PI,PI) -> PI
degrevlex2n(l,n,h) ==
if #l ~= h then error("La lista non ha la dimensione giusta")
i := 0
for j in 1..h repeat
c := l(j)-1
e : NNI := j-1
i := i+c*n^e
i := i+1
i
Sigma : (PI,PI,PI) -> INT
Sigma(n,h,j) ==
l := (j-1)*(n^h) + 1 + (1-n^(h+1))* wholePart((j-1)/n)
BasisChange : (NNI,NNI) -> Matrix(INT)
BasisChange(n,h) ==
m : Matrix(INT) := new(n^(h+1),n^(h+1),0)
for j in 1..n^(h+1) repeat
i := Sigma(n,h,j)
m(i,j) := 1
m
MFPI ==> Matrix(FRAC(POLY(INT)))
FPI ==> FRAC(POLY(INT))
cOk? : MFPI -> Boolean
cOk?(c) ==
if ~( square? c ) then return(false)
if ~( perfectSquare? (ncols c) ) then return(false)
true
bOk? : MFPI -> Boolean
bOk?(b) ==
if ( ncols(b) ~= nrows(b)^2 ) then return(false)
true
bcOk? : (MFPI,MFPI) -> Boolean
bcOk?(b,c) ==
if ~( cOk?(c) ) then return(false)
if ~( bOk?(b) ) then return(false)
if ( ncols(b) ~= nrows(c) ) then return(false)
true
BlockMatrix : (MFPI,NNI) -> MFPI
BlockMatrix(m,n) ==
r := nrows m
c := ncols m
mat : MFPI := new(n*r,n*c,0)
i : NNI
i := 0
while i < n repeat
setsubMatrix!(mat,1+i*r,1+i*c,m)
i := i+1
mat
B1 : MFPI -> MFPI
B1(b) ==
if ~( bOk?(b) ) then (error("Wrong input"))
BlockMatrix(b,nrows(b))
C1 : MFPI -> MFPI
C1(c) ==
if ~( cOk? c ) then (error("Wrong input"))
BlockMatrix(c,perfectSqrt (ncols c))
B2 : MFPI -> MFPI
B2(b) ==
if ~( bOk?(b) ) then (error("Wrong input"))
m1 : MFPI
m1 := inverse BasisChange(nrows(b),1)
m2 := BlockMatrix(b,nrows(b))
m3 := BasisChange(nrows(b),2)
m1*m2*m3
C2 : MFPI -> MFPI
C2(c) ==
if ~( cOk? c ) then (error("Wrong input"))
m1 : MFPI
m1 := inverse BasisChange(perfectSqrt (ncols c),2)
m2 := BlockMatrix(c,perfectSqrt (ncols c))
m3 := BasisChange(perfectSqrt (ncols c),2)
m1*m2*m3
YoungBaxter : MFPI -> MFPI
YoungBaxter(c) ==
if ~( cOk? c ) then (error("Wrong input"))
c1 := C1(c)
c2 := C2(c)
c1*c2*c1-c2*c1*c2
YoungBaxter? : MFPI -> Boolean
YoungBaxter?(c) ==
n : NNI := perfectSqrt(ncols(c))
zero : MFPI := new(n^3,n^3,0)
if ( YoungBaxter(c) = zero ) then return(true)
false
Hecke : (MFPI,FPI) -> MFPI
Hecke(c,p) ==
if ~( cOk? c ) then (error("Wrong input"))
uno : MFPI
uno := diagonalMatrix([1 for i in 1..nrows c])
(c+uno)*(c-p*uno)
Hecke? : (MFPI,FPI) -> Boolean
Hecke?(c,p) ==
zero : MFPI
zero := new((nrows c)^3,(nrows c)^3,0)
if ( Hecke(c,p) = zero ) then return(true)
false
Naturality1 : (MFPI,MFPI) -> MFPI
Naturality1(b,c) ==
if ~( bcOk?(b,c) ) then (error("Wrong input"))
b1 := B1(b)
b2 := B2(b)
c1 := C1(c)
c2 := C2(c)
c*b1 - b2*c1*c2
Naturality1? : (MFPI,MFPI) -> Boolean
Naturality1?(b,c) ==
zero : MFPI
zero := new((nrows b)^2,(nrows b)^3,0)
if ( Naturality1(b,c) = zero ) then return(true)
false
Naturality2 : (MFPI,MFPI) -> MFPI
Naturality2(b,c) ==
if ~( bcOk?(b,c) ) then (error("Wrong input"))
b1 := B1(b)
b2 := B2(b)
c1 := C1(c)
c2 := C2(c)
c*b2 - b1*c2*c1
Naturality2? : (MFPI,MFPI) -> Boolean
Naturality2?(b,c) ==
zero : MFPI
zero := new((nrows b)^2,(nrows b)^3,0)
if ( Naturality2(b,c) = zero ) then return(true)
false
Antisymmetric : (MFPI,MFPI) -> MFPI
Antisymmetric(b,c) ==
if ~( bcOk?(b,c) ) then (error("Wrong input"))
b*c + b
Antisymmetric? : (MFPI,MFPI) -> Boolean
Antisymmetric?(b,c) ==
zero : MFPI := new(nrows b,(nrows b)^2,0)
if Antisymmetric(b,c) = zero then return(true)
false
Jacobi : (MFPI,MFPI,FPI) -> MFPI
Jacobi(b,c,p) ==
if ~( bcOk?(b,c) ) then (error("Wrong input"))
uno : MFPI := diagonalMatrix([1 for i in 1..(nrows b)^3])
b1 := B1(b)
c1 := C1(c)
c2 := C2(c)
b*b1*((p^2)*uno-p*c2+c2*c1)
Jacobi? : (MFPI,MFPI,FPI) -> Boolean
Jacobi?(b,c,p) ==
zero : MFPI := new(nrows b,(nrows b)^3,0)
if Jacobi(b,c,p) = zero then return(true)
false
QuantumBinomial : (INT,INT) -> FPI
QuantumBinomial(n,i) ==
binomiale : FPI
if (n < 0) or (i > n) or (i < 0)
then error("parametri sbagliati")
if (i = 0) or (i = n) then return(1)
rigavecchia : LIST(FPI)
riganuova : LIST(FPI)
rigavecchia := [1]
for j in 1..n repeat
riganuova := [1]
k := 1
while k <= j-1 repeat
binomiale := elt(rigavecchia,k)+q^(k)*elt(rigavecchia,k+1)
riganuova := append(riganuova,[binomiale])
k := k+1
riganuova := append(riganuova,[1])
rigavecchia := riganuova
binomiale := elt(rigavecchia,i+1)
binomiale
QuantumBinomial : (NNI,NNI) -> FPI
QuantumBinomial(n,i) ==
binomiale : FPI
if (n < 0) or (i > n) or (i < 0)
then error("parametri sbagliati")
if (i = 0) or (i = n) then return(1)
if 2*i > n then i := n-i
rigavecchia : LIST(FPI)
riganuova : LIST(FPI)
rigavecchia := [1]
j := 1
while j <= i repeat
riganuova := [1]
k := 1
while k <= j-1 repeat
binomiale := elt(rigavecchia,k)+q^(k)*elt(rigavecchia,k+1)
riganuova := append(riganuova,[binomiale])
k := k+1
riganuova := append(riganuova,[1])
rigavecchia := riganuova
j := j+1
while j <= n-i repeat
riganuova := [1]
k := 1
while k <= i repeat
binomiale := elt(rigavecchia,k)+q^(k)*elt(rigavecchia,k+1)
riganuova := append(riganuova,[binomiale])
k := k+1
rigavecchia := riganuova
j := j+1
while j <= n repeat
riganuova := []
k := 1
while k <= n-j+1 repeat
++exp : NNI := k+n-j
exp : NNI := k+j+i-1-n
binomiale := elt(rigavecchia,k)+q^(exp)*elt(rigavecchia,k+1)
riganuova := append(riganuova,[binomiale])
k := k+1
rigavecchia := riganuova
j := j+1
binomiale
X : List(Symbol)
X :=
[%A,%B,%C,%D,%E,%F,%G,%H,%I,%J,%K,%L,%M,%N,%O,%P,%Q,%R,%S,%T,%U,%V,%W,%X,%Y,%Z]
q:=X(17)
CCC :
(Symbol,Symbol,Symbol,Symbol,Symbol,Symbol,Symbol,Symbol,Symbol,Symbol,Symbol,Symbol,Symbol,Symbol,Symbol,Symbol)
-> Matrix((FRAC(POLY(INT))))
CCC(%A,%B,%C,%D,%E,%F,%G,%H,%I,%J,%K,%L,%M,%N,%O,%P) ==
[[%A,%B,%C,%D],[%E,%F,%G,%H],[%I,%J,%K,%L],[%M,%N,%O,%P]]
c := CCC(%A,%B,%C,%D,%E,%F,%G,%H,%I,%J,%K,%L,%M,%N,%O,%P)
BBB : (Symbol,Symbol,Symbol,Symbol,Symbol,Symbol,Symbol,Symbol) ->
Matrix((FRAC(POLY(INT))))
BBB(%R,%S,%T,%U,%V,%W,%X,%Y) == [[%R,%S,%T,%U],[%V,%W,%X,%Y]]
b := BBB(%R,%S,%T,%U,%V,%W,%X,%Y)
m2l : Matrix(FRAC(POLY(INT))) -> List(FRAC(POLY(INT)))
m2l(m) ==
l : List(FRAC(POLY(INT))) := []
for i in 1..nrows(m) repeat
for j in 1..ncols(m) repeat
l := append(l,[m(i,j)])
l
eqns : List(FRAC(POLY(INT))) := [%B,%C,%D,%E,%I,%M]
eqns := append(eqns,m2l(YoungBaxter(c)))
eqns := append(eqns,m2l(Hecke(c,q)))
eqns := append(eqns,m2l(Naturality1(b,c)))
eqns := append(eqns,m2l(Naturality2(b,c)))
eqns := append(eqns,m2l(Antisymmetric(b,c)))
eqns := append(eqns,m2l(Jacobi(b,c,q)))
_______________________________________________
Axiom-developer mailing list
Axiom-developer@nongnu.org
http://lists.nongnu.org/mailman/listinfo/axiom-developer