Hi, I am a system administrator. I am writing to ask if anyone can help me track down what appears to be bug in affine. What follows is rather lengthy, sorry, but it seemed better to provide fairly complete information first time out.
I installed Maxima on Red Hat Enterprise 5 using the .rpm at EPEL. This gives me (I'll put the == lines around output, which I hope makes it easier to distinguish from my text)
=================
Maxima 5.20.1 http://maxima.sourceforge.net
using Lisp SBCL 1.0.30
=================
I have a binary of unknown provenance called Affine.dat, statically linked version of maxima that automatically loads affine, and that crashes on current kernel/glibc.
=================
% ./Affine.dat
GCL (GNU Common Lisp) Version(2.3) Thu Feb 17 01:07:56 CST 2000
Licensed under GNU Library General Public License
Contains Enhancements by W. Schelter
Maxima 5.4 Sun Feb 13 14:25:12 CST 2000 (with enhancements by W. Schelter).
Licensed under the GNU Public License (see file COPYING)
=================
The old version runs out of memory when one of my researchers uses it, so I am trying to get things to run using a more recent version that will run on RHEL 5. When the old version is given the following commands
=================
declare_weights(x,1,y,1);
ALL_DOTSIMP_DENOMS:[];
r1:x.y+y.x;
set_up_dot_simplifications([r1],4);
y
n
n
n
[x,y];
fast_central_elements([x,y],2);
=================
it produces, eventually, this output:
=================
The variable $AA3 did not appear.
The variable $AA1 did not appear.
Thus we should add 2 to the dimension of the solution space.
Starting to solve. There are 0 equations with 0 unknowns occurring.
The dimension of the solution space is 0
AA3 (Y . Y) + AA1 (X . X)
(D7) [Y . Y, X . X]
=================
The current version seems to have some problems, but I poked around and found something on this list indicating that the following four commands need to be used to get some things to work.
=================
load(affine);
dotexptsimp:false;
dotscrules:true;
matrix_element_mult:".";
=================
After adding those to the head of the file containing the commands above, and discovering that the new version will not take the responses to the four questions posed by set_up_dot_simplificiations() -- I can enter them when prompted, and it continues fine -- I get comparable output from the new version. That seems to indicate that very basic functionality is present.
Moving up a little in complexity, though, I have these commands for the old version:
=================
declare(c,constant,d1,constant,d2,constant,d3,constant,e1,constant,e2,constant,e3,constant);
declare_weights(x,1,y,1,z,1,w,1);
all_dotsimp_denoms:[];
r1:y.z+z.y+c*x.x+d1*x.w+e1*w.w;
r2:z.x+x.z+c*y.y+d2*y.w+e2*w.w;
r3:x.y+y.x+c*z.z+d3*z.w+e3*w.w;
r4:x.w-w.x;
r5:y.w-w.y;
r6:z.w-w.z;
set_up_dot_simplifications([r1,r2,r3,r4,r5,r6],4);
[x,y,z,w];
fast_central_elements([x,y,z,w],2);
=================
which produces (edited) output like this:
=================
Thus we should add 10 to the dimension of the solution space.
Starting to solve. There are 0 equations with 0 unknowns occurring.
The dimension of the solution space is 0
AA10 (Y . z) + AA9 (Y . Y) + AA8 (Y . X) + AA7 (X . z) + AA6 (X . Y)
+ AA5 (X . X) + AA4 (w . z) + AA3 (w . Y) + AA2 (w . X) + AA1 (w . w)
Beginning to simplify:
AA10 (Y . z . X) + AA9 (Y . Y . X) + AA8 (Y . X . X) + AA7 (X . z . X)
- AA10 (X . Y . z) - AA9 (X . Y . Y) + (- AA8 + AA6) (X . Y . X)
- AA7 (X . X . z) - AA6 (X . X . Y) - AA4 (X . w . z) - AA3 (X . w . Y)
- AA2 (X . w . X) - AA1 (X . w . w) + AA4 (w . z . X) + AA3 (w . Y . X)
+ AA2 (w . X . X) + AA1 (w . w . X)
. . . .
The value of UNKNOWNS is ((MLIST) $AA2 $AA1)
Assuming entries of type RATIONAL
The variable $AA2 did not appear.
The variable $AA1 did not appear.
Thus we should add 2 to the dimension of the solution space.
Starting to solve. There are 0 equations with 0 unknowns occurring.
The dimension of the solution space is 0
4 3
- ((d2 AA2 C - d2 AA2 C) (Y . Y) + (- AA2 C + AA2) d3 (Y . X)
3 4
+ (- AA2 C + AA2) d3 (X . Y) + (AA2 C - AA2 C) d1 (X . X)
2 2 2 2 3
+ (AA2 d3 - d2 AA2 C d1) (w . z) + (- AA2 C d1 d3 + d2 AA2 C ) (w . Y)
2 3 2 2 3 2
+ (- d2 AA2 C d3 + AA2 C d1 ) (w . X) + (- d2 C d3 + C d1 ) AA1 (w . w))
2 3 2
/(d2 C d3 - C d1 )
4 3 3
(D13) [- ((C - C) d2 (Y . Y) + (- C + 1) d3 (Y . X) + (- C + 1) d3 (X . Y)
4 2 2
+ (C - C) d1 (X . X) + (d3 - C d1 d2) (w . z)
2 3 2 2 3 2
+ (- C d1 d3 + C d2 ) (w . Y) + (- C d2 d3 + C d1 ) (w . X))
2 3 2
/(C d2 d3 - C d1 ), w . w]
=================
and maxima exits normally.
However, when I run this, with the four-line addition noted above, i.e.,
=================
load(affine);
dotexptsimp:false;
dotscrules:true;
matrix_element_mult:".";
declare(c,constant,d1,constant,d2,constant,d3,constant,e1,constant,e2,constant,e3,constant);
declare_weights(x,1,y,1,z,1,w,1);
all_dotsimp_denoms:[];
r1:y.z+z.y+c*x.x+d1*x.w+e1*w.w;
r2:z.x+x.z+c*y.y+d2*y.w+e2*w.w;
r3:x.y+y.x+c*z.z+d3*z.w+e3*w.w;
r4:x.w-w.x;
r5:y.w-w.y;
r6:z.w-w.z;
set_up_dot_simplifications([r1,r2,r3,r4,r5,r6],4);
/* Answer y, n, n, n to the questions */
[x,y,z,w];
fast_central_elements([x,y,z,w],2);
=================
I get output that seems to indicate it is starting fine, but then throws an error:
=================
Thus we should add 10 to the dimension of the solution space.
Starting to solve. There are 0 equations with 0 unknowns occurring.
The dimension of the solution space is 0
aa10 (y . z) + aa9 (y . y) + aa8 (y . x) + aa7 (x . z) + aa6 (x . y)
+ aa5 (x . x) + aa4 (w . z) + aa3 (w . y) + aa2 (w . x) + aa1 (w . w)
Beginning to simplify:
aa10 (y . z . x) + aa9 (y . y . x) + aa8 (y . x . x) + aa7 (x . z . x)
- aa10 (x . y . z) - aa9 (x . y . y) + (- aa8 + aa6) (x . y . x)
- aa7 (x . x . z) - aa6 (x . x . y) - aa4 (x . w . z) - aa3 (x . w . y)
- aa2 (x . w . x) - aa1 (x . w . w) + aa4 (w . z . x) + aa3 (w . y . x)
+ aa2 (w . x . x) + aa1 (w . w . x)
The value of UNKNOWNS is ((MLIST) $AA10 $AA9 $AA8 $AA7 $AA6 $AA5 $AA4 $AA3 $AA2
$AA1)
Maxima encountered a Lisp error:
Index 9 out of bounds for (SIMPLE-VECTOR 9), should be nonnegative and <9.
Automatically continuing.
To enable the Lisp debugger set *debugger-hook* to nil.
=================
Can anyone shed light on why it thinks the index is out of bounds and what can be done about it?
Sorry for the length. I hope there is sufficient information for anyone who might care to help to replicate the problem. Please let me know if there are additional details I can provide.
Thanks, -- bennet
--
Bennet Fauber
Mathematics Department
University of Michigan