=================================================================== RCS file: /home/cvs/OpenXM_contrib2/asir2000/lib/weight,v retrieving revision 1.21 retrieving revision 1.37 diff -u -p -r1.21 -r1.37 --- OpenXM_contrib2/asir2000/lib/weight 2004/01/07 08:15:16 1.21 +++ OpenXM_contrib2/asir2000/lib/weight 2004/05/17 12:03:17 1.37 @@ -4,7 +4,6 @@ load("gr")$ #define EPS 1E-6 #define TINY 1E-20 #define MAX_ITER 100 -#define ROUND_THRESHOLD 0.4 def rotate(A,I,J,K,L,C,S){ @@ -112,23 +111,97 @@ def jacobi(N,A,W){ return 1; } -def nonzerovec(A){ +def interval2value(A,Vars){ - for(I=0;I2){ + print("bug")$ + return []$ + } + else if(length(B)==0){ + if(fop(A)==0) + return [Vars,1]$ + else + return []$ + } + else if(length(B)==1){ + + C=fargs(B[0])$ + D=vars(C)$ + E=solve(C,D)$ + + if(fop(B[0])==15) + return [Vars,E[0][1]+1]$ + else if(fop(B[0])==11) + return [Vars,E[0][1]-1]$ + else if(fop(B[0])==8) + return [Vars,E[0][1]]$ + else + return []$ + } + else{ + + C=fargs(B[0])$ + D=vars(C)$ + E=solve(C,D)$ + + C=fargs(B[1])$ + D=vars(C)$ + F=solve(C,D)$ + + return [Vars,(E[0][1]+F[0][1])/2]$ + } + +} + +def fixpointmain(F,Vars){ + + RET=[]$ + for(I=length(Vars)-1;I>=1;I--){ + + for(H=[],J=0;J 0$ } + else if (FLAG==1) + for(F=@true,I=0;I < N; I++ ) { F = F @&& A[I] @< 0$ } + + return fixpointmain(F,Vars)$ +} + def junban(A,B){ return (AB ? -1:0))$ } -def worder(A,B){ - return (A[0]B[0] ? -1:0))$ -} - def bsort(A){ K=size(A)[0]-1$ @@ -146,101 +219,23 @@ def bsort(A){ return A$ } -def perm(I,P,TMP){ +def wsort(A,B,C,ID){ - if(I>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$ - } + D=newvect(length(B))$ + for(I=0;I