=================================================================== RCS file: /home/cvs/OpenXM_contrib2/asir2000/builtin/array.c,v retrieving revision 1.44 retrieving revision 1.46 diff -u -p -r1.44 -r1.46 --- OpenXM_contrib2/asir2000/builtin/array.c 2005/01/12 10:38:07 1.44 +++ OpenXM_contrib2/asir2000/builtin/array.c 2005/02/08 18:06:05 1.46 @@ -45,7 +45,7 @@ * DEVELOPER SHALL HAVE NO LIABILITY IN CONNECTION WITH THE USE, * PERFORMANCE OR NON-PERFORMANCE OF THE SOFTWARE. * - * $OpenXM: OpenXM_contrib2/asir2000/builtin/array.c,v 1.43 2004/12/18 16:50:10 saito Exp $ + * $OpenXM: OpenXM_contrib2/asir2000/builtin/array.c,v 1.45 2005/01/23 14:03:47 noro Exp $ */ #include "ca.h" #include "base.h" @@ -158,7 +158,7 @@ int generic_comp_obj(Obj *a,Obj *b) } -void Pqsort(NODE arg,VECT *rp) +void Pqsort(NODE arg,LIST *rp) { VECT vect; NODE n,n1; @@ -205,9 +205,9 @@ void Pqsort(NODE arg,VECT *rp) for ( i = len - 1, n = 0; i >= 0; i-- ) { MKNODE(n1,a[i],n); n = n1; } - MKLIST((LIST)*rp,n); + MKLIST(*rp,n); }else { - *rp = vect; + *rp = (LIST)vect; } } @@ -832,11 +832,12 @@ void Pinvmat(NODE arg,LIST *rp) input : a row x col matrix A A[I] <-> A[I][0]*x_0+A[I][1]*x_1+... - output : [B,R,C] + output : [B,D,R,C] B : a rank(A) x col-rank(A) matrix + D : the denominator R : a vector of length rank(A) C : a vector of length col-rank(A) - B[I] <-> x_{R[I]}+B[I][0]x_{C[0]}+B[I][1]x_{C[1]}+... + B[I] <-> D*x_{R[I]}+B[I][0]x_{C[0]}+B[I][1]x_{C[1]}+... */ void Pgeneric_gauss_elim(NODE arg,LIST *rp)