=================================================================== RCS file: /home/cvs/OpenXM_contrib2/asir2000/lib/weight,v retrieving revision 1.1 retrieving revision 1.10 diff -u -p -r1.1 -r1.10 --- OpenXM_contrib2/asir2000/lib/weight 2003/10/15 07:06:02 1.1 +++ OpenXM_contrib2/asir2000/lib/weight 2003/11/27 11:25:00 1.10 @@ -1,6 +1,149 @@ -#include load("solve")$ +load("gr")$ +def nonzerovec(A){ + + for(I=0;IB ? -1:0))$ +} + +def worder(A,B){ + return (A[0]B[0] ? -1:0))$ +} + +def bsort(A){ + + K=size(A)[0]-1$ + while(K>=0){ + J=-1$ + for(I=1;I<=K;I++) + if(A[I-1][0]0){ + TMP=perm(I-1,P,TMP)$ + for(J=I-1;J>=0;J--){ + T=P[I]$ + P[I]=P[J]$ + P[J]=T$ + TMP=perm(I-1,P,TMP)$ + T=P[I]$ + P[I]=P[J]$ + P[J]=T$ + } + + return TMP$ + } + else{ + for(TMP0=[],K=0;KB[I]) - return -1$ + for(P=1,I=0;IED) - continue$ - for(K=ST;K<=ED;K++){ - NormMat[I][J]=NormMat[I][J]+ - extmat(ExpMat,OneMat,ExpMatColNum,ExtMatColNum,K,I)* - extmat(ExpMat,OneMat,ExpMatColNum,ExtMatColNum,K,J)$ + VarsList=[]$ + for(I=0;IED) - continue$ +} - for(K=ST;K<=ED;K++){ - NormMat[I][ExtMatColNum-1]=NormMat[I][ExtMatColNum-1]+ - extmat(ExpMat,OneMat,ExpMatColNum,ExtMatColNum,K,I)* - extmat(ExpMat,OneMat,ExpMatColNum,ExtMatColNum,K,ExtMatColNum-1)$ - } +def leastsq(NormMat,ExpMat,Vars,FLAG){ + + RET=[]$ + + ExpMatRowNum=size(ExpMat)[0]$ + ExpMatColNum=size(ExpMat[0])[0]$ + + if(NormMat==0){ + NormMat=newmat(ExpMatColNum,ExpMatColNum)$ + + for(I=0;I