fast_linsolve/function with no arguments



> Fabrizio Caruso  writes:
>
>> (%i46) fast_linsolve([x=0,y=0],[x,y]);

> However, the good news is that the logical pathnames stuff in
> affine.lisp seems to work for CMUCL (which I gather is what you are
> using).  So you can just try
>
> (%i1) load("affine.lisp");

Except that this doesn't seem to work from within share/affine
itself...

Anyway, I just committed some changes to remedy a certain amount of
bit-rotting.  So with CVS Maxima and CMUCL, I now get

(%i1) load("affine.lisp");

;; Loading #P"/usr/src/maxima-pristine/share/affine/binary-cmucl/sloop.x86f".
;; Loading #P"/usr/src/maxima-pristine/share/affine/binary-cmucl/compat.x86f".
[...]
(%o1) 		   /usr/src/maxima/share/affine/affine.lisp
(%i2) display2d:false;

(%o2) false
(%i3) eqn:[-a*x+b*y+c*z=d,a*x-b*y+c*z=e,a*x+b*y-c*z=f];

(%o3) [c*z+b*y-a*x = d,c*z-b*y+a*x = e,-c*z+b*y+a*x = f]
(%i4) fast_linsolve(%,[x,y,z]);

Assuming entries of type ANY-MACSYMA
Starting to solve.  There are 3 equations with 3 unknowns occurring.
The value of (SP-TYPE-OF-ENTRIES SP-MAT) is ANY-MACSYMA
The dimension of the solution space is 0
(%o4) [x = (f+e)/(2*a),y = (f+d)/(2*b),z = (e+d)/(2*c)]
(%i5) eqn,%;

(%o5) [-(f+e)/2+(f+d)/2+(e+d)/2 = d,(f+e)/2-(f+d)/2+(e+d)/2 = e,
       (f+e)/2+(f+d)/2-(e+d)/2 = f]
(%i6) ratsimp(%);

(%o6) [d = d,e = e,f = f]

There are certainly more bit-rotting issues (on top of the original
bugs, that is), nevertheless I'd suggest you switch to CVS Maxima
since this is where things have a chance to be fixed (the more so
because your interest in `fast_linsolve' provides some motivation and
helps focusing the bug-fixing efforts).

Wolfgang