1########################################################################### 2# 3# this file contains the entry corelg.SuperLie, which is used in forms.gi 4# 5# 6# 7 8corelg.SuperLie:=function(arg) 9 10 11local T, L, Lo, To, R, P, S, s, V, B, p, TT, i, j, g, K, f, g0, g1, k, l, D, U, KK1, KK2, KK3, KK4, BB, bb, N, CC, a, b, c, d, ww, K0, P0, H0, t, pos, makeCartInv, sp, rts, v, q, n, t0, h, F0, CartInt, fundr, allrts; 12 13q:= arg[1]; 14n:= arg[2]; 15t0:= arg[3]; 16h:= arg[4]; 17if Length(arg)=5 then 18 F0:= arg[5]; 19else 20 F0:= CF(4); 21fi; 22 23t:= ShallowCopy(t0); 24 25Lo:=SimpleLieAlgebra(q,n,Rationals); 26To:= StructureConstantsTable(Basis(Lo));; 27#T:=Sub3( a, n); 28#L:=LieAlgebraByStructureConstants( Rationals,T); 29R:= RootSystem(Lo); 30P:= PositiveRoots(R); 31S:= SimpleSystem(R); 32#C:= ChevalleyBasis(L); 33V:= VectorSpace(Rationals, S); 34B:= Basis(V, S); 35s:= Length(S);; 36p:= Length(P);; 37D:=[];; #set of alpha such that X=x-x 38U:=[];; #set of alpha such that X=x+x 39TT:=EmptySCTable( 2*p+s, Zero(F0), "antisymmetric" );; 40a:=0; 41b:=0; 42c:=0; 43d:=0; 44 45############################################################################################################################################# 46 47#cerchiamo di sistemare il vettore dei\Phi(alpha), ovvero tenere a mente le permutazioni 48#cioè in questo modo creo il vettore N con le radici permutate 49#mentre il vettore P ha quelle normali. 50 51K:=[]; 52 53for i in [1..s] do 54 Add(K, P[Position(P,P[OnPoints(i,h)])] ); 55od; 56#ho appena sistemato il vettore K con le permutazioni definite da h sul simple system 57 58############################################################################################################################################ 59 60#resta da sistemare il resto delle radici positive 61 62for i in [s+1..p] do 63 N:=P[1]*0; 64 CC:=Coefficients(B,P[i]); #mi scrivo i coefficienti di P[i] rispetto al simple System 65 for j in [1..s] do 66 N:=N+CC[j]*P[Position(P,K[j])]; #Calcolo la permutaziona associata a questa radice 67 od; 68 Add(K, P[Position(P,N)] ); 69od; 70 71#Vettore K con le immagini della prmutazione è a posto. 72 73############################################################################################################################################### 74 75#Sistemiamo il vettore dei segni, per ora l ho solo definito sul Simple System 76 77for i in [s+1..p] do 78 for j in [1..s] do 79 if (P[i]-P[j] in P ) then 80 f:=Position(P, P[i]-P[j]); #calcolo la posizione in P di P[i]-P[j] 81 g0:=Position(P,K[j]); #calcolo la posizione in P della permutazione di P[j] 82 g1:=Position(P, K[f]); #calcolo la posizione in P della permutazione di P[i]-P[j] 83 Add(t, t[j]*t[f]*To[g0][g1][2][1]*(To[j][f][2][1]^(-1))); 84 break; 85 fi; 86 od; 87od; 88 89 90############################################################################################################################################## 91 92#sistemiamo i prodotti [H,X] e [H,Y] 93 94for i in [1..s] do 95 for j in [1..p] do 96 if (Position(P,K[i]) > i) then #permutazione solo sugli h, quindi mi bastano i primi s 97 if ( Position(P,K[j]) > Position(P,P[j])) then 98a:=0; 99b:=0; 100c:=0; 101d:=0; 102 103if not ( IsEmpty(To[2*p+Position(P,P[i])][j][2]) =true) then 104 if not ( IsEmpty(To[2*p+Position(P,K[i])][j][2])=true ) then 105 106a:=a+To[2*p+Position(P,P[i])][j][2][1]; 107b:=b+To[2*p+Position(P,K[i])][j][2][1]; 108c:=c+To[2*p+Position(P,P[i])][Position(P,K[j])][2][1]; 109d:=d+To[2*p+Position(P,K[i])][Position(P,K[j])][2][1]; 110 111SetEntrySCTable( TT, 2*p+Position(P,P[i]), j,[ (a+b+c+d)/2, p+j ]); 112SetEntrySCTable( TT, 2*p+Position(P,P[i]), Position(P,K[j]),[ (a+b+c+d)/2, p+Position(P,K[j])]); 113SetEntrySCTable( TT, 2*p+Position(P,P[i]), p+j,[ -1*(a+b+c+d)/2, j] ); 114SetEntrySCTable( TT, 2*p+Position(P,P[i]), p+Position(P,K[j]),[ -1*(a+b+c+d)/2, Position(P,K[j])]); 115 116SetEntrySCTable( TT, 2*p+Position(P,K[i]), j, [-1*(a-b-c+d)/2, p+Position(P,K[j]) ]); 117SetEntrySCTable( TT, 2*p+Position(P,K[i]), Position(P,K[j]), [ (a-b-c+d)/2, p+j]); 118SetEntrySCTable( TT, 2*p+Position(P,K[i]), p+j, [ (a-b-c+d)/2, Position(P,K[j]) ]); 119SetEntrySCTable( TT, 2*p+Position(P,K[i]), p+Position(P,K[j]), [-1*(a-b-c+d)/2, j ]); 120 121 else 122 123a:=a+To[2*p+Position(P,P[i])][j][2][1]; 124#b:=b+To[2*p+Position(P,K[i])][j][2][1]; 125#c:=c+To[2*p+Position(P,P[i])][Position(P,K[j])][2][1]; 126d:=d+To[2*p+Position(P,K[i])][Position(P,K[j])][2][1]; 127 128SetEntrySCTable( TT, 2*p+Position(P,P[i]), j,[ (a+d)/2, p+j ]); 129SetEntrySCTable( TT, 2*p+Position(P,P[i]), Position(P,K[j]),[ (a+d)/2, p+Position(P,K[j])]); 130SetEntrySCTable( TT, 2*p+Position(P,P[i]), p+j,[ -1*(a+d)/2, j] ); 131SetEntrySCTable( TT, 2*p+Position(P,P[i]), p+Position(P,K[j]),[ -1*(a+d)/2, Position(P,K[j])]); 132 133SetEntrySCTable( TT, 2*p+Position(P,K[i]), j,[ -1*(a+d)/2, p+Position(P,K[j]) ]); 134SetEntrySCTable( TT, 2*p+Position(P,K[i]), Position(P,K[j]),[ (a+d)/2, p+j]); 135SetEntrySCTable( TT, 2*p+Position(P,K[i]), p+j,[ (a+d)/2, Position(P,K[j] )]); 136SetEntrySCTable( TT, 2*p+Position(P,K[i]), p+Position(P,K[j]),[ -1*(a+d)/2, j]) ; 137 138 fi; 139else 140 if not ( IsEmpty(To[2*p+Position(P,K[i])][j][2])=true ) then 141 142#a:=a+To[2*p+Position(P,P[i])][j][2][1]; 143b:=b+To[2*p+Position(P,K[i])][j][2][1]; 144c:=c+To[2*p+Position(P,P[i])][Position(P,K[j])][2][1]; 145#d:=d+To[2*p+Position(P,K[i])][Position(P,K[j])][2][1]; 146 147SetEntrySCTable( TT, 2*p+Position(P,P[i]), j,[ (b+c)/2, p+j ]); 148SetEntrySCTable( TT, 2*p+Position(P,P[i]), Position(P,K[j]),[ (b+c)/2, p+Position(P,K[j])]); 149SetEntrySCTable( TT, 2*p+Position(P,P[i]), p+j,[ -1*(b+c)/2, j ]); 150SetEntrySCTable( TT, 2*p+Position(P,P[i]), p+Position(P,K[j]),[ -1*(b+c)/2, Position(P,K[j])]); 151 152SetEntrySCTable( TT, 2*p+Position(P,K[i]), j,[ -1*(-b-c)/2, p+Position(P,K[j]) ]); 153SetEntrySCTable( TT, 2*p+Position(P,K[i]), Position(P,K[j]),[ (-b-c)/2, p+j]); 154SetEntrySCTable( TT, 2*p+Position(P,K[i]), p+j,[ (-b-c)/2, Position(P,K[j] )]); 155SetEntrySCTable( TT, 2*p+Position(P,K[i]), p+Position(P,K[j]),[ -1*(-b-c)/2, j]) ; 156 157 fi; 158 159fi; 160 161 else 162 if ( Position(P,K[j]) = Position(P,P[j])) then 163 164a:=0; 165b:=0; 166c:=0; 167d:=0; 168 169if not ( IsEmpty(To[2*p+Position(P,P[i])][j][2]) =true) then 170 if not ( IsEmpty(To[2*p+Position(P,K[i])][j][2])=true ) then 171 172a:=a+To[2*p+Position(P,P[i])][j][2][1]; 173c:=c+To[2*p+Position(P,K[i])][j][2][1]; 174 175SetEntrySCTable( TT, 2*p+Position(P,P[i]), j,[ (a+c), p+j]); 176SetEntrySCTable( TT, 2*p+Position(P,P[i]), p+j,[ -1*(a+c), j ]); 177 else 178a:=a+To[2*p+Position(P,P[i])][j][2][1]; 179 180SetEntrySCTable( TT, 2*p+Position(P,P[i]), j,[ a, p+j]); 181SetEntrySCTable( TT, 2*p+Position(P,P[i]), p+j,[ -1*a, j ]); 182 fi; 183else 184 if not ( IsEmpty(To[2*p+Position(P,K[i])][j][2])=true ) then 185 186c:=c+To[2*p+Position(P,K[i])][j][2][1]; 187 188SetEntrySCTable( TT, 2*p+Position(P,P[i]), j,[ c, p+j]); 189SetEntrySCTable( TT, 2*p+Position(P,P[i]), p+j,[ -1*c, j ]); 190 fi; 191fi; 192 193 fi; 194 fi; 195 else 196 if (Position(P,K[i]) = i) then #permutazione solo sugli h, quindi mi bastano i primi s 197 if ( Position(P,K[j]) > Position(P,P[j])) then 198a:=0; 199b:=0; 200c:=0; 201d:=0; 202 203if not ( IsEmpty(To[2*p+Position(P,P[i])][j][2]) =true) then 204 if not ( IsEmpty(To[2*p+Position(P,P[i])][Position(P,K[j])][2])=true ) then 205 206a:=a+To[2*p+Position(P,P[i])][j][2][1]; 207c:=c+To[2*p+Position(P,P[i])][Position(P,K[j])][2][1]; 208 209SetEntrySCTable( TT, 2*p+Position(P,P[i]), j,[ (a+c), p+j]); 210SetEntrySCTable( TT, 2*p+Position(P,P[i]), Position(P,K[j]),[ (a+c), p+Position(P,K[j])]); 211SetEntrySCTable( TT, 2*p+Position(P,P[i]), p+j,[ -1*(a+c), j ]); 212SetEntrySCTable( TT, 2*p+Position(P,P[i]), p+Position(P,K[j]),[ -1*(a+c), Position(P,K[j])]); 213 214 else 215 216a:=a+To[2*p+Position(P,P[i])][j][2][1]; 217 218SetEntrySCTable( TT, 2*p+Position(P,P[i]), j,[ a, p+j ]); 219SetEntrySCTable( TT, 2*p+Position(P,P[i]), Position(P,K[j]),[ a, p+Position(P,K[j])]); 220SetEntrySCTable( TT, 2*p+Position(P,P[i]), p+j,[ -1*a, j ]); 221SetEntrySCTable( TT, 2*p+Position(P,P[i]), p+Position(P,K[j]),[ -1*a, Position(P,K[j])]); 222 fi; 223 224else 225 if not ( IsEmpty(To[2*p+Position(P,P[i])][Position(P,K[j])][2]) =true ) then 226 227c:=c+To[2*p+Position(P,P[i])][Position(P,K[j])][2][1]; 228 229SetEntrySCTable( TT, 2*p+Position(P,P[i]), j,[ c, p+j ]); 230SetEntrySCTable( TT, 2*p+Position(P,P[i]), Position(P,K[j]),[ c, p+Position(P,K[j])]); 231SetEntrySCTable( TT, 2*p+Position(P,P[i]), p+j,[ -1*c, j ]); 232SetEntrySCTable( TT, 2*p+Position(P,P[i]), p+Position(P,K[j]),[ -1*c, Position(P,K[j])]); 233 234 fi; 235fi; 236 237 else 238 if ( Position(P,K[j]) = Position(P,P[j])) then 239a:=0; 240 241if not ( IsEmpty(To[2*p+Position(P,P[i])][j][2]) =true) then 242 243a:=a+To[2*p+Position(P,P[i])][j][2][1]; 244 245SetEntrySCTable( TT, 2*p+Position(P,P[i]), j,[2*a, p+j] ); 246SetEntrySCTable( TT, 2*p+Position(P,P[i]), p+j,[-2*a, j] ); 247fi; 248 249 fi; 250 fi; 251 fi; 252 fi; 253 od; 254od; 255 256 257####################################################################################################################################### 258##################################################################################################################################### 259 260#sistemiamo i prodotti [X,Y] con indici uguali 261 262 263for i in [1..p] do #alpha varia in P 264 if ( Position(P,K[i]) > Position(P, P[i]) ) then #alpha <phi_alpha 265 266KK1:=[]; #++ nessun problema 267KK2:=[]; #+- nessun problema 268KK3:=[]; #-+ occhio ai prodotti misti 269KK4:=[]; #-- occhio ai prodotti misti 270 271if (t[i]=1) then 272 273if (P[i]+K[i] in P) then 274if not ( IsEmpty( To[i][Position(P,K[i])][2] )= true ) then 275if ( t[Position(P, P[i]+K[i])] = 1 ) then 276 277if not ( (+1*To[i][Position(P, K[i])][2][1]+1*To[Position(P, K[i])][i][2][1]) = 0 ) then 278Add(KK1, (+1*To[i][Position(P, K[i])][2][1]+1*To[Position(P, K[i])][i][2][1])/2 ); #aggiungo il valore del prodotto relativo all'indice j 279Add(KK1, p+Position(P,P[i]+K[i])); #aggiungo la relativa posizione di j nella nuova base 280Add(KK4, +1*(+1*To[i][Position(P, K[i])][2][1]+1*To[Position(P, K[i])][i][2][1])/2 ); #aggiungo il valore del prodotto relativo all'indice j 281Add(KK4, p+Position(P,P[i]+K[i])); 282fi; 283 284else 285 286if not ( (-1*To[i][Position(P, K[i])][2][1]+1*To[Position(P, K[i])][i][2][1]) = 0 ) then 287Add(KK2, (-1*To[i][Position(P, K[i])][2][1]+1*To[Position(P, K[i])][i][2][1])/2 ); #aggiungo il valore del prodotto relativo all'indice j 288Add(KK2, p+Position(P,P[i]+K[i])); #aggiungo la relativa posizione di j nella nuova base 289Add(KK3, (+1*To[i][Position(P, K[i])][2][1]-1*To[Position(P, K[i])][i][2][1])/2 ); #aggiungo il valore del prodotto relativo all'indice j 290Add(KK3, p+Position(P,P[i]+K[i])); 291fi; 292 293fi; fi; fi; 294 295if not (IsEmpty( To[i][p+i][2]) = true) then 296 297for j in [1..s] do 298 for k in [1..Length(To[i][p+i][2])] do 299 if (2*p+j = To[i][p+i][1][k] ) then 300 301 if ( OnPoints(j,h) > j ) then 302 if (2*p+OnPoints(j,h) in To[i][p+i][1] ) then 303 304ww:=Position(To[i][p+i][1],2*p+OnPoints(j,h)); 305 306if not (To[i][p+i][2][k] = To[i][p+i][2][ww] ) then 307Add(KK1, +2*(To[i][p+i][2][k] + To[i][p+i][2][ww] )); #aggiungo il valore del prodotto relativo all'indice j 308Add(KK1, 2*p+j); #aggiungo la relativa posizione di j nella nuova base 309Add(KK2, -2*(To[i][p+i][2][k] - To[i][p+i][2][ww] )); #aggiungo il valore del prodotto relativo all'indice j 310Add(KK2, 2*p+Position(P,K[j])); #aggiungo la relativa posizione di j nella nuova base 311Add(KK3, -2*(To[i][p+i][2][k] - To[i][p+i][2][ww] )); #aggiungo il valore del prodotto relativo all'indice j 312Add(KK3, 2*p+Position(P,K[j])); 313Add(KK4, -2*(To[i][p+i][2][k] + To[i][p+i][2][ww] )); #aggiungo il valore del prodotto relativo all'indice j 314Add(KK4, 2*p+j); 315else 316Add(KK1, +2*(To[i][p+i][2][k] + To[i][p+i][2][ww] )); #aggiungo il valore del prodotto relativo all'indice j 317Add(KK1, 2*p+j); #aggiungo la relativa posizione di j nella nuova base 318Add(KK4, -2*(To[i][p+i][2][k] + To[i][p+i][2][ww] )); #aggiungo il valore del prodotto relativo all'indice j 319Add(KK4, 2*p+j); 320fi; 321 else 322Add(KK1, 2*To[i][p+i][2][k] ); #aggiungo il valore del prodotto relativo all'indice j 323Add(KK1, 2*p+j); #aggiungo la relativa posizione di j nella nuova base 324Add(KK2, -2*To[i][p+i][2][k] ); #aggiungo il valore del prodotto relativo all'indice j 325Add(KK2, 2*p+Position(P,K[j])); #aggiungo la relativa posizione di j nella nuova base 326Add(KK3, -2*To[i][p+i][2][k] ); #aggiungo il valore del prodotto relativo all'indice j 327Add(KK3, 2*p+Position(P,K[j])); 328Add(KK4, -2*To[i][p+i][2][k] ); #aggiungo il valore del prodotto relativo all'indice j 329Add(KK4, 2*p+j); 330 fi; 331 else 332 if ( OnPoints(j,h) = j ) then 333Add(KK1, +2*To[i][p+i][2][k] ); #aggiungo il valore del prodotto relativo all'indice j 334Add(KK1, 2*p+j); #aggiungo la relativa posizione di j nella nuova base 335Add(KK4, -2*To[i][p+i][2][k] ); #aggiungo il valore del prodotto relativo all'indice j 336Add(KK4, 2*p+j); 337 fi; 338 fi; 339 340fi; od; od; fi; 341 342 343else #t[i]=-1 344 345if not (IsEmpty( To[i][p+i][2]) = true) then 346 347for j in [1..s] do 348 for k in [1..Length(To[i][p+i][2])] do 349 if (2*p+j = To[i][p+i][1][k] ) then 350 351 if ( OnPoints(j,h) > j ) then 352 if (2*p+OnPoints(j,h) in To[i][p+i][1] ) then 353ww:=Position(To[i][p+i][1],2*p+OnPoints(j,h)); 354 355if not (To[i][p+i][2][k] = To[i][p+i][2][ww] ) then 356Add(KK1, +2*(To[i][p+i][2][k] + To[i][p+i][2][ww] )); #aggiungo il valore del prodotto relativo all'indice j 357Add(KK1, 2*p+j); #aggiungo la relativa posizione di j nella nuova base 358Add(KK2, -2*(To[i][p+i][2][k] - To[i][p+i][2][ww] )); #aggiungo il valore del prodotto relativo all'indice j 359Add(KK2, 2*p+Position(P,K[j])); #aggiungo la relativa posizione di j nella nuova base 360Add(KK3, -2*(To[i][p+i][2][k] - To[i][p+i][2][ww] )); #aggiungo il valore del prodotto relativo all'indice j 361Add(KK3, 2*p+Position(P,K[j])); 362Add(KK4, -2*(To[i][p+i][2][k] + To[i][p+i][2][ww] )); #aggiungo il valore del prodotto relativo all'indice j 363Add(KK4, 2*p+j); 364else 365Add(KK1, +2*(To[i][p+i][2][k] + To[i][p+i][2][ww] )); #aggiungo il valore del prodotto relativo all'indice j 366Add(KK1, 2*p+j); #aggiungo la relativa posizione di j nella nuova base 367Add(KK4, -2*(To[i][p+i][2][k] + To[i][p+i][2][ww] )); #aggiungo il valore del prodotto relativo all'indice j 368Add(KK4, 2*p+j); 369fi; 370 else 371Add(KK1, 2*To[i][p+i][2][k] ); #aggiungo il valore del prodotto relativo all'indice j 372Add(KK1, 2*p+j); #aggiungo la relativa posizione di j nella nuova base 373Add(KK2, -2*To[i][p+i][2][k] ); #aggiungo il valore del prodotto relativo all'indice j 374Add(KK2, 2*p+Position(P,K[j])); #aggiungo la relativa posizione di j nella nuova base 375Add(KK3, -2*To[i][p+i][2][k] ); #aggiungo il valore del prodotto relativo all'indice j 376Add(KK3, 2*p+Position(P,K[j])); 377Add(KK4, -2*To[i][p+i][2][k] ); #aggiungo il valore del prodotto relativo all'indice j 378Add(KK4, 2*p+j); 379 fi; 380 else 381 if ( OnPoints(j,h) = j ) then 382Add(KK1, +2*To[i][p+i][2][k] ); #aggiungo il valore del prodotto relativo all'indice j 383Add(KK1, 2*p+j); #aggiungo la relativa posizione di j nella nuova base 384Add(KK4, -2*To[i][p+i][2][k] ); #aggiungo il valore del prodotto relativo all'indice j 385Add(KK4, 2*p+j); 386 fi; 387 fi; 388 389fi; od; od; fi; 390 391if (P[i]+K[i] in P) then 392if not ( IsEmpty(To[i][Position(P,K[i])][2])= true ) then 393if ( t[Position(P, P[i]+K[i])] = 1 ) then 394 395if not ( (-1*To[i][Position(P, K[i])][2][1]-1*To[Position(P, K[i])][i][2][1]) = 0 ) then 396Add(KK1, (-1*To[i][Position(P, K[i])][2][1]-1*To[Position(P, K[i])][i][2][1])/2 ); #aggiungo il valore del prodotto relativo all'indice j 397Add(KK1, p+Position(P,P[i]+K[i])); #aggiungo la relativa posizione di j nella nuova base 398Add(KK4, (-1*To[i][Position(P, K[i])][2][1]-1*To[Position(P, K[i])][i][2][1])/2 ); #aggiungo il valore del prodotto relativo all'indice j 399Add(KK4, p+Position(P,P[i]+K[i])); 400fi; 401 402else 403if not ( (+1*To[i][Position(P, K[i])][2][1]-1*To[Position(P, K[i])][i][2][1]) = 0 ) then 404Add(KK2, (+1*To[i][Position(P, K[i])][2][1]-1*To[Position(P, K[i])][i][2][1])/2 ); #aggiungo il valore del prodotto relativo all'indice j 405Add(KK2, p+Position(P,P[i]+K[i])); #aggiungo la relativa posizione di j nella nuova base 406Add(KK3, (-1*To[i][Position(P, K[i])][2][1]+1*To[Position(P, K[i])][i][2][1])/2 ); #aggiungo il valore del prodotto relativo all'indice j 407Add(KK3, p+Position(P,P[i]+K[i])); 408fi; 409 410fi; fi; fi; 411 412fi; 413 414SetEntrySCTable( TT, i, p+i , KK1); 415SetEntrySCTable( TT, i, p+Position(P,K[i]) , KK2); 416SetEntrySCTable( TT, Position(P, K[i]), p+i , KK3); 417SetEntrySCTable( TT, Position(P, K[i]), p+Position(P, K[i]) , KK4); 418 419 else 420 if ( Position(P,K[i]) = Position(P, P[i]) ) then #alpha <phi_alpha 421 422KK1:=[]; #++ nessun problema 423 424for j in [1..s] do 425 for k in [1..Length(To[i][p+i][2])] do 426 if (2*p+j = To[i][p+i][1][k] ) then 427 428if (t[i]=1) then 429 430 if ( OnPoints(j,h) > j ) then 431 if (2*p+OnPoints(j,h) in To[i][p+i][1] ) then 432ww:=Position(To[i][p+i][1],2*p+OnPoints(j,h)); 433Add(KK1, +4*(To[i][p+i][2][k] + To[i][p+i][2][ww] ) ); #aggiungo il valore del prodotto relativo all'indice j 434Add(KK1, 2*p+j); #aggiungo la relativa posizione di j nella nuova base 435 else 436Add(KK1, +4*To[i][p+i][2][k] ); #aggiungo il valore del prodotto relativo all'indice j 437Add(KK1, 2*p+j); #aggiungo la relativa posizione di j nella nuova base 438 fi; 439 else 440 if ( OnPoints(j,h) = j ) then 441Add(KK1, +4*To[i][p+i][2][k] ); #aggiungo il valore del prodotto relativo all'indice j 442Add(KK1, 2*p+j); #aggiungo la relativa posizione di j nella nuova base 443 fi; 444 fi; 445 446else #t[i]=-1 447 448#KK1:=[]; #-- occhio ai prodotti misti 449 if ( OnPoints(j,h) > j ) then 450 if (2*p+OnPoints(j,h) in To[i][p+i][1] ) then 451ww:=Position(To[i][p+i][1],2*p+OnPoints(j,h)); 452Add(KK1, -4*(To[i][p+i][2][k] + To[i][p+i][2][ww] ) ); #aggiungo il valore del prodotto relativo all'indice j 453Add(KK1, 2*p+j); #aggiungo la relativa posizione di j nella nuova base 454 else 455Add(KK1, -4*To[i][p+i][2][k] ); #aggiungo il valore del prodotto relativo all'indice j 456Add(KK1, 2*p+j); 457 fi; 458 else 459 if ( OnPoints(j,h) = j ) then 460Add(KK1, -4*To[i][p+i][2][k] ); #aggiungo il valore del prodotto relativo all'indice j 461Add(KK1, 2*p+j); 462 fi; 463 fi; 464fi; 465 466 fi; 467 od; 468od; 469 470SetEntrySCTable( TT, i, p+i , KK1); 471 472 fi; 473 fi; 474od; 475##################################################################################################################### 476 477 478 479############################################################################################################################################## 480 481#Prodotti [X,X] con indici differenti 482 483 484for i in [1..p] do #variazione alpha per gli X 485 for j in [i+1..p] do #variazione beta >alpha per gli Y 486 if ( Position(P, K[i]) > Position(P,P[i]) ) then #alpha< phi_alpha (ragiono con gli X) 487 if ( p+Position(P, K[j]) > p+Position(P,P[j]) ) then # beta< phi_beta (ragiono con gli Y) 488 489KK1:=[]; # i p+j 490KK2:=[]; # i p+jbar 491KK3:=[]; # ibar p+j 492KK4:=[]; # ibar p+jbar 493 494if (t[i]=1) then 495if (t[j]=1) then 496 497if (P[i]+P[j] in P ) then #qui so che aplha+beta < phi_aplha+phi_beta quindi sono nel caso sicuro 498if not (IsEmpty(To[Position(P, P[i])][Position(P,P[j])][2])=true) then 499if (p+Position(P,K[j]+K[i]) > p+Position(P,P[j]+P[i])) then 500 501if (t[Position(P,P[j]+P[i] )] = 1) then 502Add(KK1, (+1*To[Position(P, P[i])][Position(P,P[j])][2][1]+1*To[Position(P, K[i])][Position(P,K[j])][2][1])/2); 503Add(KK1, Position(P, P[i]+P[j]) ); 504Add(KK2, (+1*To[Position(P, P[i])][Position(P,P[j])][2][1]+1*To[Position(P, K[i])][Position(P,K[j])][2][1])/2); 505Add(KK2, Position(P, K[i]+K[j]) ); 506Add(KK3, (+1*To[Position(P, P[i])][Position(P,P[j])][2][1]+1*To[Position(P, K[i])][Position(P,K[j])][2][1])/2); 507Add(KK3, Position(P, K[i]+K[j]) ); 508Add(KK4, -1*(+1*To[Position(P, P[i])][Position(P,P[j])][2][1]+1*To[Position(P, K[i])][Position(P,K[j])][2][1])/2); 509Add(KK4, Position(P, P[i]+P[j]) ); 510else 511Add(KK1, (+1*To[Position(P, P[i])][Position(P,P[j])][2][1]-1*To[Position(P, K[i])][Position(P,K[j])][2][1])/2); 512Add(KK1, Position(P, P[i]+P[j]) ); 513Add(KK2, (+1*To[Position(P, P[i])][Position(P,P[j])][2][1]-1*To[Position(P, K[i])][Position(P,K[j])][2][1])/2); 514Add(KK2, Position(P, K[i]+K[j]) ); 515Add(KK3, (+1*To[Position(P, P[i])][Position(P,P[j])][2][1]-1*To[Position(P, K[i])][Position(P,K[j])][2][1])/2); 516Add(KK3, Position(P, K[i]+K[j]) ); 517Add(KK4, -1*(+1*To[Position(P, P[i])][Position(P,P[j])][2][1]-1*To[Position(P, K[i])][Position(P,K[j])][2][1])/2); 518Add(KK4, Position(P, P[i]+P[j]) ); 519fi; 520else 521 if (p+Position(P,K[j]+K[i]) = p+Position(P,P[j]+P[i])) then 522 523if (t[Position(P,P[j]+P[i] )] = 1) then 524Add(KK1, (+1*To[Position(P, P[i])][Position(P,P[j])][2][1]+1*To[Position(P, K[i])][Position(P,K[j])][2][1])/2); 525Add(KK1, Position(P, P[i]+P[j]) ); 526Add(KK4, -1*(+1*To[Position(P, P[i])][Position(P,P[j])][2][1]+1*To[Position(P, K[i])][Position(P,K[j])][2][1])/2); 527Add(KK4, Position(P, P[i]+P[j]) ); 528else 529Add(KK2, (+1*To[Position(P, P[i])][Position(P,P[j])][2][1]-1*To[Position(P, K[i])][Position(P,K[j])][2][1])/2); 530Add(KK2, Position(P, K[i]+K[j]) ); 531Add(KK3, (+1*To[Position(P, P[i])][Position(P,P[j])][2][1]-1*To[Position(P, K[i])][Position(P,K[j])][2][1])/2); 532Add(KK3, Position(P, K[i]+K[j]) ); 533fi; 534 else #(p+Position(P,K[j]+K[i]) < p+Position(P,P[j]+P[i])) 535if (t[Position(P,P[j]+P[i] )] = 1) then 536Add(KK1, (+1*To[Position(P, P[i])][Position(P,P[j])][2][1]+1*To[Position(P, K[i])][Position(P,K[j])][2][1])/2); 537Add(KK1, Position(P, K[j]+K[i]) ); 538Add(KK2, -1*(+1*To[Position(P, P[i])][Position(P,P[j])][2][1]+1*To[Position(P, K[i])][Position(P,K[j])][2][1])/2); 539Add(KK2, Position(P, P[i]+P[j]) ); 540Add(KK3, -1*(+1*To[Position(P, P[i])][Position(P,P[j])][2][1]+1*To[Position(P, K[i])][Position(P,K[j])][2][1])/2); 541Add(KK3, Position(P, P[i]+P[j]) ); 542Add(KK4, -1*(+1*To[Position(P, P[i])][Position(P,P[j])][2][1]+1*To[Position(P, K[i])][Position(P,K[j])][2][1])/2); 543Add(KK4, Position(P,K[j]+K[i]) ); 544else 545Add(KK1, -1*(+1*To[Position(P, P[i])][Position(P,P[j])][2][1]-1*To[Position(P, K[i])][Position(P,K[j])][2][1])/2); 546Add(KK1, Position(P, K[j]+K[i]) ); 547Add(KK2, (+1*To[Position(P, P[i])][Position(P,P[j])][2][1]-1*To[Position(P, K[i])][Position(P,K[j])][2][1])/2); 548Add(KK2, Position(P, P[i]+P[j]) ); 549Add(KK3, (+1*To[Position(P, P[i])][Position(P,P[j])][2][1]-1*To[Position(P, K[i])][Position(P,K[j])][2][1])/2); 550Add(KK3, Position(P, P[i]+P[j]) ); 551Add(KK4, +1*(+1*To[Position(P, P[i])][Position(P,P[j])][2][1]-1*To[Position(P, K[i])][Position(P,K[j])][2][1])/2); 552Add(KK4, Position(P, K[j]+K[i]) ); 553fi; 554 fi; 555 556fi; 557fi; fi; 558 559####### 560############ 561############### 562 563if (P[j]-P[i] in P ) then 564if not (IsEmpty(To[Position(P, P[i])][p+Position(P,P[j])][2])=true) then 565if (p+Position(P,K[j]-K[i]) > p+Position(P,P[j]-P[i])) then 566 567if (t[Position(P,P[j]-P[i] )] = 1) then 568Add(KK1, (+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])/2); 569Add(KK1, Position(P, P[j]-P[i]) ); 570Add(KK2, (+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])/2); 571Add(KK2, Position(P, K[j]-K[i]) ); 572Add(KK3, (+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])/2); 573Add(KK3, Position(P, K[j]-K[i]) ); 574Add(KK4, -1*(+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])/2); 575Add(KK4, Position(P, P[j]-P[i]) ); 576else 577Add(KK1, (+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])/2); 578Add(KK1, Position(P, P[j]-P[i]) ); 579Add(KK2, (+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])/2); 580Add(KK2, Position(P, K[j]-K[i]) ); 581Add(KK3, (+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])/2); 582Add(KK3, Position(P, K[j]-K[i]) ); 583Add(KK4, -1*(+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])/2); 584Add(KK4, Position(P, P[j]-P[i]) ); 585fi; 586 587else 588 if (p+Position(P,K[j]-K[i]) = p+Position(P,P[j]-P[i])) then 589 590if (t[Position(P,P[j]-P[i] )] = 1) then 591Add(KK1, (+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])/2); 592Add(KK1, Position(P, P[j]-P[i]) ); 593Add(KK4, -1*(+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])/2); 594Add(KK4, Position(P, P[j]-P[i]) ); 595else 596Add(KK2, (+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])/2); 597Add(KK2, Position(P, K[j]-K[i]) ); 598Add(KK3, (+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])/2); 599Add(KK3, Position(P, K[j]-K[i]) ); 600fi; 601 else #(p+Position(P,K[j]+K[i]) < p+Position(P,P[j]+P[i])) 602 603if (t[Position(P,P[j]-P[i] )] = 1) then 604Add(KK1, (+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])/2); 605Add(KK1, Position(P, K[j]-K[i]) ); 606Add(KK2, -1*(+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])/2); 607Add(KK2, Position(P, P[j]-P[i]) ); 608Add(KK3, -1*(+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])/2); 609Add(KK3, Position(P, P[j]-P[i]) ); 610Add(KK4, -1*(+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])/2); 611Add(KK4, Position(P, K[j]-K[i]) ); 612else 613Add(KK1, -1*(+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])/2); 614Add(KK1, Position(P, K[j]-K[i]) ); 615Add(KK2, (+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])/2); 616Add(KK2, Position(P, P[j]-P[i]) ); 617Add(KK3, (+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])/2); 618Add(KK3, Position(P, P[j]-P[i]) ); 619Add(KK4, +1*(+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])/2); 620Add(KK4, Position(P, K[j]-K[i]) ); 621fi; 622 fi; 623 624fi; 625fi; fi; 626 627 628###### 629########## 630############# 631 632if (P[i]+K[j] in P ) then 633if not (IsEmpty(To[Position(P, P[i])][Position(P,K[j])][2])=true) then 634if (p+Position(P,K[i]+P[j]) > p+Position(P,P[i]+K[j])) then 635 636if (t[Position(P,P[i]+K[j] )] = 1) then 637Add(KK1, (+1*To[Position(P, P[i])][Position(P,K[j])][2][1]+1*To[Position(P, K[i])][Position(P,P[j])][2][1])/2); 638Add(KK1, Position(P, P[i]+K[j]) ); 639Add(KK2, (-1*To[Position(P, P[i])][Position(P,K[j])][2][1]-1*To[Position(P, K[i])][Position(P,P[j])][2][1])/2); 640Add(KK2, Position(P, K[i]+P[j]) ); 641Add(KK3, (+1*To[Position(P, P[i])][Position(P,K[j])][2][1]+1*To[Position(P, K[i])][Position(P,P[j])][2][1])/2); 642Add(KK3, Position(P, K[i]+P[j]) ); 643Add(KK4, -1*(-1*To[Position(P, P[i])][Position(P,K[j])][2][1]-1*To[Position(P, K[i])][Position(P,P[j])][2][1])/2); 644Add(KK4, Position(P, P[i]+K[j]) ); 645else 646Add(KK1, (+1*To[Position(P, P[i])][Position(P,K[j])][2][1]-1*To[Position(P, K[i])][Position(P,P[j])][2][1])/2); 647Add(KK1, Position(P, P[i]+K[j]) ); 648Add(KK2, (-1*To[Position(P, P[i])][Position(P,K[j])][2][1]+1*To[Position(P, K[i])][Position(P,P[j])][2][1])/2); 649Add(KK2, Position(P, K[i]+P[j]) ); 650Add(KK3, (+1*To[Position(P, P[i])][Position(P,K[j])][2][1]-1*To[Position(P, K[i])][Position(P,P[j])][2][1])/2); 651Add(KK3, Position(P, K[i]+P[j]) ); 652Add(KK4, -1*(-1*To[Position(P, P[i])][Position(P,K[j])][2][1]+1*To[Position(P, K[i])][Position(P,P[j])][2][1])/2); 653Add(KK4, Position(P, P[i]+K[j]) ); 654fi; 655else 656 if (p+Position(P,K[i]+P[j]) = p+Position(P,P[i]+K[j])) then 657 658if (t[Position(P,K[j]+P[i] )] = 1) then 659Add(KK1, (+1*To[Position(P, P[i])][Position(P,K[j])][2][1]+1*To[Position(P, K[i])][Position(P,P[j])][2][1])/2); 660Add(KK1, Position(P, P[i]+K[j]) ); 661Add(KK4, -1*(-1*To[Position(P, P[i])][Position(P,K[j])][2][1]-1*To[Position(P, K[i])][Position(P,P[j])][2][1])/2); 662Add(KK4, Position(P, P[i]+K[j]) ); 663else 664Add(KK2, (-1*To[Position(P, P[i])][Position(P,K[j])][2][1]+1*To[Position(P, K[i])][Position(P,P[j])][2][1])/2); 665Add(KK2, Position(P, K[i]+P[j]) ); 666Add(KK3, (+1*To[Position(P, P[i])][Position(P,K[j])][2][1]-1*To[Position(P, K[i])][Position(P,P[j])][2][1])/2); 667Add(KK3, Position(P, K[i]+P[j]) ); 668fi; 669 else #(p+Position(P,K[j]+K[i]) < p+Position(P,P[j]+P[i])) 670 671if (t[Position(P,P[i]+K[j] )] = 1) then 672Add(KK1, (+1*To[Position(P, P[i])][Position(P,K[j])][2][1]+1*To[Position(P, K[i])][Position(P,P[j])][2][1])/2); 673Add(KK1, Position(P, K[i]+P[j]) ); 674Add(KK2, -1*(-1*To[Position(P, P[i])][Position(P,K[j])][2][1]-1*To[Position(P, K[i])][Position(P,P[j])][2][1])/2); 675Add(KK2, Position(P, P[i]+K[j]) ); 676Add(KK3, -1*(+1*To[Position(P, P[i])][Position(P,K[j])][2][1]+1*To[Position(P, K[i])][Position(P,P[j])][2][1])/2); 677Add(KK3, Position(P, P[i]+K[j]) ); 678Add(KK4, -1*(-1*To[Position(P, P[i])][Position(P,K[j])][2][1]-1*To[Position(P, K[i])][Position(P,P[j])][2][1])/2); 679Add(KK4, Position(P, K[i]+P[j]) ); 680else 681Add(KK1, -1*(+1*To[Position(P, P[i])][Position(P,K[j])][2][1]-1*To[Position(P, K[i])][Position(P,P[j])][2][1])/2); 682Add(KK1, Position(P, K[i]+P[j]) ); 683Add(KK2, (-1*To[Position(P, P[i])][Position(P,K[j])][2][1]+1*To[Position(P, K[i])][Position(P,P[j])][2][1])/2); 684Add(KK2, Position(P, P[i]+K[j]) ); 685Add(KK3, (+1*To[Position(P, P[i])][Position(P,K[j])][2][1]-1*To[Position(P, K[i])][Position(P,P[j])][2][1])/2); 686Add(KK3, Position(P, P[i]+K[j]) ); 687Add(KK4, +1*(-1*To[Position(P, P[i])][Position(P,K[j])][2][1]+1*To[Position(P, K[i])][Position(P,P[j])][2][1])/2); 688Add(KK4, Position(P, K[i]+P[j]) ); 689fi; 690 fi; 691 692fi; 693fi; fi; 694 695###### 696########## 697############# 698 699 700if (K[j]-P[i] in P ) then 701if not (IsEmpty(To[Position(P, P[i])][p+Position(P,K[j])][2])=true) then 702if (p+Position(P,P[j]-K[i]) > p+Position(P,K[j]-P[i])) then 703 704if (t[Position(P,K[j]-P[i] )] = 1) then 705Add(KK1, (+1*To[Position(P, P[i])][p+Position(P,K[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,P[j])][2][1])/2); 706Add(KK1, Position(P, K[j]-P[i]) ); 707Add(KK2, (-1*To[Position(P, P[i])][p+Position(P,K[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,P[j])][2][1])/2); 708Add(KK2, Position(P, P[j]-K[i]) ); 709Add(KK3, (+1*To[Position(P, P[i])][p+Position(P,K[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,P[j])][2][1])/2); 710Add(KK3, Position(P, P[j]-K[i]) ); 711Add(KK4, -1*(-1*To[Position(P, P[i])][p+Position(P,K[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,P[j])][2][1])/2); 712Add(KK4, Position(P, K[j]-P[i]) ); 713else 714Add(KK1, (+1*To[Position(P, P[i])][p+Position(P,K[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,P[j])][2][1])/2); 715Add(KK1, Position(P, K[j]-P[i]) ); 716Add(KK2, (-1*To[Position(P, P[i])][p+Position(P,K[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,P[j])][2][1])/2); 717Add(KK2, Position(P, P[j]-K[i]) ); 718Add(KK3, (+1*To[Position(P, P[i])][p+Position(P,K[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,P[j])][2][1])/2); 719Add(KK3, Position(P, P[j]-K[i]) ); 720Add(KK4, -1*(-1*To[Position(P, P[i])][p+Position(P,K[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,P[j])][2][1])/2); 721Add(KK4, Position(P, K[j]-P[i]) ); 722fi; 723 724else 725 if (p+Position(P,P[j]-K[i]) = p+Position(P,K[j]-P[i])) then 726 727if (t[Position(P,K[j]-P[i] )] = 1) then 728Add(KK1, (+1*To[Position(P, P[i])][p+Position(P,K[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,P[j])][2][1])/2); 729Add(KK1, Position(P, K[j]-P[i]) ); 730Add(KK4, -1*(-1*To[Position(P, P[i])][p+Position(P,K[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,P[j])][2][1])/2); 731Add(KK4, Position(P, K[j]-P[i]) ); 732else 733Add(KK2, (-1*To[Position(P, P[i])][p+Position(P,K[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,P[j])][2][1])/2); 734Add(KK2, Position(P, P[j]-K[i]) ); 735Add(KK3, (+1*To[Position(P, P[i])][p+Position(P,K[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,P[j])][2][1])/2); 736Add(KK3, Position(P, P[j]-K[i]) ); 737fi; 738 else #(p+Position(P,K[j]+K[i]) < p+Position(P,P[j]+P[i])) 739 740if (t[Position(P,K[j]-P[i] )] = 1) then 741Add(KK1, (+1*To[Position(P, P[i])][p+Position(P,K[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,P[j])][2][1])/2); 742Add(KK1, Position(P, P[j]-K[i]) ); 743Add(KK2, -1*(-1*To[Position(P, P[i])][p+Position(P,K[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,P[j])][2][1])/2); 744Add(KK2, Position(P, K[j]-P[i]) ); 745Add(KK3, -1*(+1*To[Position(P, P[i])][p+Position(P,K[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,P[j])][2][1])/2); 746Add(KK3, Position(P, K[j]-P[i]) ); 747Add(KK4, -1*(-1*To[Position(P, P[i])][p+Position(P,K[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,P[j])][2][1])/2); 748Add(KK4, Position(P, P[j]-K[i]) ); 749else 750Add(KK1, -1*(+1*To[Position(P, P[i])][p+Position(P,K[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,P[j])][2][1])/2); 751Add(KK1, Position(P, P[j]-K[i]) ); 752Add(KK2, (-1*To[Position(P, P[i])][p+Position(P,K[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,P[j])][2][1])/2); 753Add(KK2, Position(P, K[j]-P[i]) ); 754Add(KK3, (+1*To[Position(P, P[i])][p+Position(P,K[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,P[j])][2][1])/2); 755Add(KK3, Position(P, K[j]-P[i]) ); 756Add(KK4, +1*(-1*To[Position(P, P[i])][p+Position(P,K[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,P[j])][2][1])/2); 757Add(KK4, Position(P, P[j]-K[i]) ); 758fi; 759 fi; 760 761fi; 762fi; fi; 763 764########### 765################## 766#################### 767 768 769 770else # ovvero t[j]=-1 771 772############### 773##################### 774######################### 775 776if (P[i]+P[j] in P ) then #qui so che aplha+beta < phi_aplha+phi_beta quindi sono nel caso sicuro 777if not (IsEmpty(To[Position(P, P[i])][Position(P,P[j])][2])=true) then 778if (p+Position(P,K[j]+K[i]) > p+Position(P,P[j]+P[i])) then 779 780if (t[Position(P,P[j]+P[i] )] = 1) then 781Add(KK1, (+1*To[Position(P, P[i])][Position(P,P[j])][2][1]-1*To[Position(P, K[i])][Position(P,K[j])][2][1])/2); 782Add(KK1, Position(P, P[i]+P[j]) ); 783Add(KK2, (+1*To[Position(P, P[i])][Position(P,P[j])][2][1]-1*To[Position(P, K[i])][Position(P,K[j])][2][1])/2); 784Add(KK2, Position(P, K[i]+K[j]) ); 785Add(KK3, (+1*To[Position(P, P[i])][Position(P,P[j])][2][1]-1*To[Position(P, K[i])][Position(P,K[j])][2][1])/2); 786Add(KK3, Position(P, K[i]+K[j]) ); 787Add(KK4, -1*(+1*To[Position(P, P[i])][Position(P,P[j])][2][1]-1*To[Position(P, K[i])][Position(P,K[j])][2][1])/2); 788Add(KK4, Position(P, P[i]+P[j]) ); 789else 790Add(KK1, (+1*To[Position(P, P[i])][Position(P,P[j])][2][1]+1*To[Position(P, K[i])][Position(P,K[j])][2][1])/2); 791Add(KK1, Position(P, P[i]+P[j]) ); 792Add(KK2, (+1*To[Position(P, P[i])][Position(P,P[j])][2][1]+1*To[Position(P, K[i])][Position(P,K[j])][2][1])/2); 793Add(KK2, Position(P, K[i]+K[j]) ); 794Add(KK3, (+1*To[Position(P, P[i])][Position(P,P[j])][2][1]+1*To[Position(P, K[i])][Position(P,K[j])][2][1])/2); 795Add(KK3, Position(P, K[i]+K[j]) ); 796Add(KK4, -1*(+1*To[Position(P, P[i])][Position(P,P[j])][2][1]+1*To[Position(P, K[i])][Position(P,K[j])][2][1])/2); 797Add(KK4, Position(P, P[i]+P[j]) ); 798fi; 799else 800 if (p+Position(P,K[j]+K[i]) = p+Position(P,P[j]+P[i])) then 801 802if (t[Position(P,P[j]+P[i] )] = 1) then 803Add(KK1, (+1*To[Position(P, P[i])][Position(P,P[j])][2][1]-1*To[Position(P, K[i])][Position(P,K[j])][2][1])/2); 804Add(KK1, Position(P, P[i]+P[j]) ); 805Add(KK4, -1*(+1*To[Position(P, P[i])][Position(P,P[j])][2][1]-1*To[Position(P, K[i])][Position(P,K[j])][2][1])/2); 806Add(KK4, Position(P, P[i]+P[j]) ); 807else 808Add(KK2, (+1*To[Position(P, P[i])][Position(P,P[j])][2][1]+1*To[Position(P, K[i])][Position(P,K[j])][2][1])/2); 809Add(KK2, Position(P, K[i]+K[j]) ); 810Add(KK3, (+1*To[Position(P, P[i])][Position(P,P[j])][2][1]+1*To[Position(P, K[i])][Position(P,K[j])][2][1])/2); 811Add(KK3, Position(P, K[i]+K[j]) ); 812fi; 813 else #(p+Position(P,K[j]+K[i]) < p+Position(P,P[j]+P[i])) 814 815if (t[Position(P,P[j]+P[i] )] = 1) then 816Add(KK1, (+1*To[Position(P, P[i])][Position(P,P[j])][2][1]-1*To[Position(P, K[i])][Position(P,K[j])][2][1])/2); 817Add(KK1, Position(P, K[j]+K[i]) ); 818Add(KK2, -1*(+1*To[Position(P, P[i])][Position(P,P[j])][2][1]-1*To[Position(P, K[i])][Position(P,K[j])][2][1])/2); 819Add(KK2, Position(P, P[i]+P[j]) ); 820Add(KK3, -1*(+1*To[Position(P, P[i])][Position(P,P[j])][2][1]-1*To[Position(P, K[i])][Position(P,K[j])][2][1])/2); 821Add(KK3, Position(P, P[i]+P[j]) ); 822Add(KK4, -1*(+1*To[Position(P, P[i])][Position(P,P[j])][2][1]-1*To[Position(P, K[i])][Position(P,K[j])][2][1])/2); 823Add(KK4, Position(P,K[j]+K[i]) ); 824else 825Add(KK1, -1*(+1*To[Position(P, P[i])][Position(P,P[j])][2][1]+1*To[Position(P, K[i])][Position(P,K[j])][2][1])/2); 826Add(KK1, Position(P, K[j]+K[i]) ); 827Add(KK2, (+1*To[Position(P, P[i])][Position(P,P[j])][2][1]+1*To[Position(P, K[i])][Position(P,K[j])][2][1])/2); 828Add(KK2, Position(P, P[i]+P[j]) ); 829Add(KK3, (+1*To[Position(P, P[i])][Position(P,P[j])][2][1]+1*To[Position(P, K[i])][Position(P,K[j])][2][1])/2); 830Add(KK3, Position(P, P[i]+P[j]) ); 831Add(KK4, +1*(+1*To[Position(P, P[i])][Position(P,P[j])][2][1]+1*To[Position(P, K[i])][Position(P,K[j])][2][1])/2); 832Add(KK4, Position(P, K[j]+K[i]) ); 833fi; 834 fi; 835 836fi; 837fi; fi; 838 839####### 840############ 841############### 842 843if (P[j]-P[i] in P ) then 844if not (IsEmpty(To[Position(P, P[i])][p+Position(P,P[j])][2])=true) then 845if (p+Position(P,K[j]-K[i]) > p+Position(P,P[j]-P[i])) then 846 847if (t[Position(P,P[j]-P[i] )] = 1) then 848Add(KK1, (+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])/2); 849Add(KK1, Position(P, P[j]-P[i]) ); 850Add(KK2, (+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])/2); 851Add(KK2, Position(P, K[j]-K[i]) ); 852Add(KK3, (+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])/2); 853Add(KK3, Position(P, K[j]-K[i]) ); 854Add(KK4, -1*(+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])/2); 855Add(KK4, Position(P, P[j]-P[i]) ); 856else 857Add(KK1, (+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])/2); 858Add(KK1, Position(P, P[j]-P[i]) ); 859Add(KK2, (+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])/2); 860Add(KK2, Position(P, K[j]-K[i]) ); 861Add(KK3, (+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])/2); 862Add(KK3, Position(P, K[j]-K[i]) ); 863Add(KK4, -1*(+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])/2); 864Add(KK4, Position(P, P[j]-P[i]) ); 865fi; 866else 867 if (p+Position(P,K[j]-K[i]) = p+Position(P,P[j]-P[i])) then 868 869if (t[Position(P,P[j]-P[i] )] = 1) then 870Add(KK1, (+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])/2); 871Add(KK1, Position(P, P[j]-P[i]) ); 872Add(KK4, -1*(+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])/2); 873Add(KK4, Position(P, P[j]-P[i]) ); 874else 875Add(KK2, (+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])/2); 876Add(KK2, Position(P, K[j]-K[i]) ); 877Add(KK3, (+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])/2); 878Add(KK3, Position(P, K[j]-K[i]) ); 879fi; 880 else #(p+Position(P,K[j]+K[i]) < p+Position(P,P[j]+P[i])) 881 882if (t[Position(P,P[j]-P[i] )] = 1) then 883Add(KK1, (+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])/2); 884Add(KK1, Position(P, K[j]-K[i]) ); 885Add(KK2, -1*(+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])/2); 886Add(KK2, Position(P, P[j]-P[i]) ); 887Add(KK3, -1*(+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])/2); 888Add(KK3, Position(P, P[j]-P[i]) ); 889Add(KK4, -1*(+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])/2); 890Add(KK4, Position(P, K[j]-K[i]) ); 891else 892Add(KK1, -1*(+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])/2); 893Add(KK1, Position(P, K[j]-K[i]) ); 894Add(KK2, (+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])/2); 895Add(KK2, Position(P, P[j]-P[i]) ); 896Add(KK3, (+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])/2); 897Add(KK3, Position(P, P[j]-P[i]) ); 898Add(KK4, +1*(+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])/2); 899Add(KK4, Position(P, K[j]-K[i]) ); 900fi; 901 fi; 902 903fi; 904fi; fi; 905 906###### 907########## 908############# 909 910if (P[i]+K[j] in P ) then 911if not (IsEmpty(To[Position(P, P[i])][Position(P,K[j])][2])=true) then 912if (p+Position(P,K[i]+P[j]) > p+Position(P,P[i]+K[j])) then 913 914if (t[Position(P,P[i]+K[j] )] = 1) then 915Add(KK1, (-1*To[Position(P, P[i])][Position(P,K[j])][2][1]+1*To[Position(P, K[i])][Position(P,P[j])][2][1])/2); 916Add(KK1, Position(P, P[i]+K[j]) ); 917Add(KK2, (+1*To[Position(P, P[i])][Position(P,K[j])][2][1]-1*To[Position(P, K[i])][Position(P,P[j])][2][1])/2); 918Add(KK2, Position(P, K[i]+P[j]) ); 919Add(KK3, (-1*To[Position(P, P[i])][Position(P,K[j])][2][1]+1*To[Position(P, K[i])][Position(P,P[j])][2][1])/2); 920Add(KK3, Position(P, K[i]+P[j]) ); 921Add(KK4, -1*(+1*To[Position(P, P[i])][Position(P,K[j])][2][1]-1*To[Position(P, K[i])][Position(P,P[j])][2][1])/2); 922Add(KK4, Position(P, P[i]+K[j]) ); 923else 924Add(KK1, (-1*To[Position(P, P[i])][Position(P,K[j])][2][1]-1*To[Position(P, K[i])][Position(P,P[j])][2][1])/2); 925Add(KK1, Position(P, P[i]+K[j]) ); 926Add(KK2, (+1*To[Position(P, P[i])][Position(P,K[j])][2][1]+1*To[Position(P, K[i])][Position(P,P[j])][2][1])/2); 927Add(KK2, Position(P, K[i]+P[j]) ); 928Add(KK3, (-1*To[Position(P, P[i])][Position(P,K[j])][2][1]-1*To[Position(P, K[i])][Position(P,P[j])][2][1])/2); 929Add(KK3, Position(P, K[i]+P[j]) ); 930Add(KK4, -1*(+1*To[Position(P, P[i])][Position(P,K[j])][2][1]+1*To[Position(P, K[i])][Position(P,P[j])][2][1])/2); 931Add(KK4, Position(P, P[i]+K[j]) ); 932fi; 933else 934 if (p+Position(P,K[i]+P[j]) = p+Position(P,P[i]+K[j])) then 935 936if (t[Position(P,K[j]+P[i] )] = 1) then 937Add(KK1, (-1*To[Position(P, P[i])][Position(P,K[j])][2][1]+1*To[Position(P, K[i])][Position(P,P[j])][2][1])/2); 938Add(KK1, Position(P, P[i]+K[j]) ); 939Add(KK4, -1*(+1*To[Position(P, P[i])][Position(P,K[j])][2][1]-1*To[Position(P, K[i])][Position(P,P[j])][2][1])/2); 940Add(KK4, Position(P, P[i]+K[j]) ); 941else 942Add(KK2, (+1*To[Position(P, P[i])][Position(P,K[j])][2][1]+1*To[Position(P, K[i])][Position(P,P[j])][2][1])/2); 943Add(KK2, Position(P, K[i]+P[j]) ); 944Add(KK3, (-1*To[Position(P, P[i])][Position(P,K[j])][2][1]-1*To[Position(P, K[i])][Position(P,P[j])][2][1])/2); 945Add(KK3, Position(P, K[i]+P[j]) ); 946fi; 947 else #(p+Position(P,K[j]+K[i]) < p+Position(P,P[j]+P[i])) 948 949if (t[Position(P,P[i]+K[j] )] = 1) then 950Add(KK1, (-1*To[Position(P, P[i])][Position(P,K[j])][2][1]+1*To[Position(P, K[i])][Position(P,P[j])][2][1])/2); 951Add(KK1, Position(P, K[i]+P[j]) ); 952Add(KK2, -1*(+1*To[Position(P, P[i])][Position(P,K[j])][2][1]-1*To[Position(P, K[i])][Position(P,P[j])][2][1])/2); 953Add(KK2, Position(P, P[i]+K[j]) ); 954Add(KK3, -1*(-1*To[Position(P, P[i])][Position(P,K[j])][2][1]+1*To[Position(P, K[i])][Position(P,P[j])][2][1])/2); 955Add(KK3, Position(P, P[i]+K[j]) ); 956Add(KK4, -1*(+1*To[Position(P, P[i])][Position(P,K[j])][2][1]-1*To[Position(P, K[i])][Position(P,P[j])][2][1])/2); 957Add(KK4, Position(P, K[i]+P[j]) ); 958else 959Add(KK1, -1*(-1*To[Position(P, P[i])][Position(P,K[j])][2][1]-1*To[Position(P, K[i])][Position(P,P[j])][2][1])/2); 960Add(KK1, Position(P, K[i]+P[j]) ); 961Add(KK2, (+1*To[Position(P, P[i])][Position(P,K[j])][2][1]+1*To[Position(P, K[i])][Position(P,P[j])][2][1])/2); 962Add(KK2, Position(P, P[i]+K[j]) ); 963Add(KK3, (-1*To[Position(P, P[i])][Position(P,K[j])][2][1]-1*To[Position(P, K[i])][Position(P,P[j])][2][1])/2); 964Add(KK3, Position(P, P[i]+K[j]) ); 965Add(KK4, +1*(+1*To[Position(P, P[i])][Position(P,K[j])][2][1]+1*To[Position(P, K[i])][Position(P,P[j])][2][1])/2); 966Add(KK4, Position(P, K[i]+P[j]) ); 967fi; 968 fi; 969 970fi; 971fi; fi; 972 973###### 974########## 975############# 976 977 978if (K[j]-P[i] in P ) then 979if not (IsEmpty(To[Position(P, P[i])][p+Position(P,K[j])][2])=true) then 980if (p+Position(P,P[j]-K[i]) > p+Position(P,K[j]-P[i])) then 981 982if (t[Position(P,K[j]-P[i] )] = 1) then 983Add(KK1, (-1*To[Position(P, P[i])][p+Position(P,K[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,P[j])][2][1])/2); 984Add(KK1, Position(P, K[j]-P[i]) ); 985Add(KK2, (+1*To[Position(P, P[i])][p+Position(P,K[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,P[j])][2][1])/2); 986Add(KK2, Position(P, P[j]-K[i]) ); 987Add(KK3, (-1*To[Position(P, P[i])][p+Position(P,K[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,P[j])][2][1])/2); 988Add(KK3, Position(P, P[j]-K[i]) ); 989Add(KK4, -1*(+1*To[Position(P, P[i])][p+Position(P,K[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,P[j])][2][1])/2); 990Add(KK4, Position(P, K[j]-P[i]) ); 991else 992Add(KK1, (-1*To[Position(P, P[i])][p+Position(P,K[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,P[j])][2][1])/2); 993Add(KK1, Position(P, K[j]-P[i]) ); 994Add(KK2, (+1*To[Position(P, P[i])][p+Position(P,K[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,P[j])][2][1])/2); 995Add(KK2, Position(P, P[j]-K[i]) ); 996Add(KK3, (-1*To[Position(P, P[i])][p+Position(P,K[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,P[j])][2][1])/2); 997Add(KK3, Position(P, P[j]-K[i]) ); 998Add(KK4, -1*(+1*To[Position(P, P[i])][p+Position(P,K[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,P[j])][2][1])/2); 999Add(KK4, Position(P, K[j]-P[i]) ); 1000fi; 1001else 1002 if (p+Position(P,P[j]-K[i]) = p+Position(P,K[j]-P[i])) then 1003 1004if (t[Position(P,K[j]-P[i] )] = 1) then 1005Add(KK1, (-1*To[Position(P, P[i])][p+Position(P,K[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,P[j])][2][1])/2); 1006Add(KK1, Position(P, K[j]-P[i]) ); 1007Add(KK4, -1*(+1*To[Position(P, P[i])][p+Position(P,K[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,P[j])][2][1])/2); 1008Add(KK4, Position(P, K[j]-P[i]) ); 1009else 1010Add(KK2, (+1*To[Position(P, P[i])][p+Position(P,K[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,P[j])][2][1])/2); 1011Add(KK2, Position(P, P[j]-K[i]) ); 1012Add(KK3, (-1*To[Position(P, P[i])][p+Position(P,K[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,P[j])][2][1])/2); 1013Add(KK3, Position(P, P[j]-K[i]) ); 1014fi; 1015 else #(p+Position(P,K[j]+K[i]) < p+Position(P,P[j]+P[i])) 1016 1017if (t[Position(P,K[j]-P[i] )] = 1) then 1018Add(KK1, (-1*To[Position(P, P[i])][p+Position(P,K[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,P[j])][2][1])/2); 1019Add(KK1, Position(P, P[j]-K[i]) ); 1020Add(KK2, -1*(+1*To[Position(P, P[i])][p+Position(P,K[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,P[j])][2][1])/2); 1021Add(KK2, Position(P, K[j]-P[i]) ); 1022Add(KK3, -1*(-1*To[Position(P, P[i])][p+Position(P,K[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,P[j])][2][1])/2); 1023Add(KK3, Position(P, K[j]-P[i]) ); 1024Add(KK4, -1*(+1*To[Position(P, P[i])][p+Position(P,K[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,P[j])][2][1])/2); 1025Add(KK4, Position(P, P[j]-K[i]) ); 1026 1027else 1028 1029Add(KK1, -1*(-1*To[Position(P, P[i])][p+Position(P,K[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,P[j])][2][1])/2); 1030Add(KK1, Position(P, P[j]-K[i]) ); 1031Add(KK2, (+1*To[Position(P, P[i])][p+Position(P,K[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,P[j])][2][1])/2); 1032Add(KK2, Position(P, K[j]-P[i]) ); 1033Add(KK3, (-1*To[Position(P, P[i])][p+Position(P,K[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,P[j])][2][1])/2); 1034Add(KK3, Position(P, K[j]-P[i]) ); 1035Add(KK4, +1*(+1*To[Position(P, P[i])][p+Position(P,K[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,P[j])][2][1])/2); 1036Add(KK4, Position(P, P[j]-K[i]) ); 1037 1038fi; 1039 fi; 1040 1041fi; 1042fi; fi; 1043 1044 1045 1046 1047fi; 1048 1049############## 1050##################### 1051########################à 1052 1053else #t[i]=-1 1054 1055if (t[j]=1) then 1056 1057 1058############### 1059##################### 1060######################### 1061 1062if (P[i]+P[j] in P ) then #qui so che aplha+beta < phi_aplha+phi_beta quindi sono nel caso sicuro 1063if not (IsEmpty(To[Position(P, P[i])][Position(P,P[j])][2])=true) then 1064if (p+Position(P,K[j]+K[i]) > p+Position(P,P[j]+P[i])) then 1065 1066if (t[Position(P,P[j]+P[i] )] = 1) then 1067 1068Add(KK1, (+1*To[Position(P, P[i])][Position(P,P[j])][2][1]-1*To[Position(P, K[i])][Position(P,K[j])][2][1])/2); 1069Add(KK1, Position(P, P[i]+P[j]) ); 1070Add(KK2, (+1*To[Position(P, P[i])][Position(P,P[j])][2][1]-1*To[Position(P, K[i])][Position(P,K[j])][2][1])/2); 1071Add(KK2, Position(P, K[i]+K[j]) ); 1072Add(KK3, (+1*To[Position(P, P[i])][Position(P,P[j])][2][1]-1*To[Position(P, K[i])][Position(P,K[j])][2][1])/2); 1073Add(KK3, Position(P, K[i]+K[j]) ); 1074Add(KK4, -1*(+1*To[Position(P, P[i])][Position(P,P[j])][2][1]-1*To[Position(P, K[i])][Position(P,K[j])][2][1])/2); 1075Add(KK4, Position(P, P[i]+P[j]) ); 1076 1077else 1078 1079Add(KK1, (+1*To[Position(P, P[i])][Position(P,P[j])][2][1]+1*To[Position(P, K[i])][Position(P,K[j])][2][1])/2); 1080Add(KK1, Position(P, P[i]+P[j]) ); 1081Add(KK2, (+1*To[Position(P, P[i])][Position(P,P[j])][2][1]+1*To[Position(P, K[i])][Position(P,K[j])][2][1])/2); 1082Add(KK2, Position(P, K[i]+K[j]) ); 1083Add(KK3, (+1*To[Position(P, P[i])][Position(P,P[j])][2][1]+1*To[Position(P, K[i])][Position(P,K[j])][2][1])/2); 1084Add(KK3, Position(P, K[i]+K[j]) ); 1085Add(KK4, -1*(+1*To[Position(P, P[i])][Position(P,P[j])][2][1]+1*To[Position(P, K[i])][Position(P,K[j])][2][1])/2); 1086Add(KK4, Position(P, P[i]+P[j]) ); 1087 1088fi; 1089 1090else 1091 if (p+Position(P,K[j]+K[i]) = p+Position(P,P[j]+P[i])) then 1092 1093if (t[Position(P,P[j]+P[i] )] = 1) then 1094 1095Add(KK1, (+1*To[Position(P, P[i])][Position(P,P[j])][2][1]-1*To[Position(P, K[i])][Position(P,K[j])][2][1])/2); 1096Add(KK1, Position(P, P[i]+P[j]) ); 1097Add(KK4, -1*(+1*To[Position(P, P[i])][Position(P,P[j])][2][1]-1*To[Position(P, K[i])][Position(P,K[j])][2][1])/2); 1098Add(KK4, Position(P, P[i]+P[j]) ); 1099 1100else 1101 1102Add(KK2, (+1*To[Position(P, P[i])][Position(P,P[j])][2][1]+1*To[Position(P, K[i])][Position(P,K[j])][2][1])/2); 1103Add(KK2, Position(P, K[i]+K[j]) ); 1104Add(KK3, (+1*To[Position(P, P[i])][Position(P,P[j])][2][1]+1*To[Position(P, K[i])][Position(P,K[j])][2][1])/2); 1105Add(KK3, Position(P, K[i]+K[j]) ); 1106 1107fi; 1108 else #(p+Position(P,K[j]+K[i]) < p+Position(P,P[j]+P[i])) 1109 1110if (t[Position(P,P[j]+P[i] )] = 1) then 1111 1112Add(KK1, (+1*To[Position(P, P[i])][Position(P,P[j])][2][1]-1*To[Position(P, K[i])][Position(P,K[j])][2][1])/2); 1113Add(KK1, Position(P, K[j]+K[i]) ); 1114Add(KK2, -1*(+1*To[Position(P, P[i])][Position(P,P[j])][2][1]-1*To[Position(P, K[i])][Position(P,K[j])][2][1])/2); 1115Add(KK2, Position(P, P[i]+P[j]) ); 1116Add(KK3, -1*(+1*To[Position(P, P[i])][Position(P,P[j])][2][1]-1*To[Position(P, K[i])][Position(P,K[j])][2][1])/2); 1117Add(KK3, Position(P, P[i]+P[j]) ); 1118Add(KK4, -1*(+1*To[Position(P, P[i])][Position(P,P[j])][2][1]-1*To[Position(P, K[i])][Position(P,K[j])][2][1])/2); 1119Add(KK4, Position(P,K[j]+K[i]) ); 1120 1121else 1122 1123Add(KK1, -1*(+1*To[Position(P, P[i])][Position(P,P[j])][2][1]+1*To[Position(P, K[i])][Position(P,K[j])][2][1])/2); 1124Add(KK1, Position(P, K[j]+K[i]) ); 1125Add(KK2, (+1*To[Position(P, P[i])][Position(P,P[j])][2][1]+1*To[Position(P, K[i])][Position(P,K[j])][2][1])/2); 1126Add(KK2, Position(P, P[i]+P[j]) ); 1127Add(KK3, (+1*To[Position(P, P[i])][Position(P,P[j])][2][1]+1*To[Position(P, K[i])][Position(P,K[j])][2][1])/2); 1128Add(KK3, Position(P, P[i]+P[j]) ); 1129Add(KK4, +1*(+1*To[Position(P, P[i])][Position(P,P[j])][2][1]+1*To[Position(P, K[i])][Position(P,K[j])][2][1])/2); 1130Add(KK4, Position(P, K[j]+K[i]) ); 1131 1132fi; 1133 fi; 1134 1135fi; 1136fi; fi; 1137 1138 1139 1140 1141 1142####### 1143############ 1144############### 1145 1146 1147 1148 1149 1150if (P[j]-P[i] in P ) then 1151if not (IsEmpty(To[Position(P, P[i])][p+Position(P,P[j])][2])=true) then 1152if (p+Position(P,K[j]-K[i]) > p+Position(P,P[j]-P[i])) then 1153 1154if (t[Position(P,P[j]-P[i] )] = 1) then 1155 1156Add(KK1, (+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])/2); 1157Add(KK1, Position(P, P[j]-P[i]) ); 1158Add(KK2, (+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])/2); 1159Add(KK2, Position(P, K[j]-K[i]) ); 1160Add(KK3, (+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])/2); 1161Add(KK3, Position(P, K[j]-K[i]) ); 1162Add(KK4, -1*(+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])/2); 1163Add(KK4, Position(P, P[j]-P[i]) ); 1164 1165else 1166 1167Add(KK1, (+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])/2); 1168Add(KK1, Position(P, P[j]-P[i]) ); 1169Add(KK2, (+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])/2); 1170Add(KK2, Position(P, K[j]-K[i]) ); 1171Add(KK3, (+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])/2); 1172Add(KK3, Position(P, K[j]-K[i]) ); 1173Add(KK4, -1*(+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])/2); 1174Add(KK4, Position(P, P[j]-P[i]) ); 1175 1176fi; 1177 1178else 1179 if (p+Position(P,K[j]-K[i]) = p+Position(P,P[j]-P[i])) then 1180 1181if (t[Position(P,P[j]-P[i] )] = 1) then 1182 1183Add(KK1, (+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])/2); 1184Add(KK1, Position(P, P[j]-P[i]) ); 1185Add(KK4, -1*(+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])/2); 1186Add(KK4, Position(P, P[j]-P[i]) ); 1187 1188else 1189 1190Add(KK2, (+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])/2); 1191Add(KK2, Position(P, K[j]-K[i]) ); 1192Add(KK3, (+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])/2); 1193Add(KK3, Position(P, K[j]-K[i]) ); 1194 1195fi; 1196 else #(p+Position(P,K[j]+K[i]) < p+Position(P,P[j]+P[i])) 1197 1198if (t[Position(P,P[j]-P[i] )] = 1) then 1199 1200Add(KK1, (+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])/2); 1201Add(KK1, Position(P, K[j]-K[i]) ); 1202Add(KK2, -1*(+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])/2); 1203Add(KK2, Position(P, P[j]-P[i]) ); 1204Add(KK3, -1*(+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])/2); 1205Add(KK3, Position(P, P[j]-P[i]) ); 1206Add(KK4, -1*(+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])/2); 1207Add(KK4, Position(P, K[j]-K[i]) ); 1208 1209else 1210 1211Add(KK1, -1*(+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])/2); 1212Add(KK1, Position(P, K[j]-K[i]) ); 1213Add(KK2, (+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])/2); 1214Add(KK2, Position(P, P[j]-P[i]) ); 1215Add(KK3, (+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])/2); 1216Add(KK3, Position(P, P[j]-P[i]) ); 1217Add(KK4, +1*(+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])/2); 1218Add(KK4, Position(P, K[j]-K[i]) ); 1219 1220fi; 1221 fi; 1222 1223fi; 1224fi; fi; 1225 1226 1227###### 1228########## 1229############# 1230 1231 1232if (P[i]+K[j] in P ) then 1233if not (IsEmpty(To[Position(P, P[i])][Position(P,K[j])][2])=true) then 1234if (p+Position(P,K[i]+P[j]) > p+Position(P,P[i]+K[j])) then 1235 1236if (t[Position(P,P[i]+K[j] )] = 1) then 1237 1238Add(KK1, (+1*To[Position(P, P[i])][Position(P,K[j])][2][1]-1*To[Position(P, K[i])][Position(P,P[j])][2][1])/2); 1239Add(KK1, Position(P, P[i]+K[j]) ); 1240Add(KK2, (-1*To[Position(P, P[i])][Position(P,K[j])][2][1]+1*To[Position(P, K[i])][Position(P,P[j])][2][1])/2); 1241Add(KK2, Position(P, K[i]+P[j]) ); 1242Add(KK3, (+1*To[Position(P, P[i])][Position(P,K[j])][2][1]-1*To[Position(P, K[i])][Position(P,P[j])][2][1])/2); 1243Add(KK3, Position(P, K[i]+P[j]) ); 1244Add(KK4, -1*(-1*To[Position(P, P[i])][Position(P,K[j])][2][1]+1*To[Position(P, K[i])][Position(P,P[j])][2][1])/2); 1245Add(KK4, Position(P, P[i]+K[j]) ); 1246 1247else 1248 1249Add(KK1, (+1*To[Position(P, P[i])][Position(P,K[j])][2][1]+1*To[Position(P, K[i])][Position(P,P[j])][2][1])/2); 1250Add(KK1, Position(P, P[i]+K[j]) ); 1251Add(KK2, (-1*To[Position(P, P[i])][Position(P,K[j])][2][1]-1*To[Position(P, K[i])][Position(P,P[j])][2][1])/2); 1252Add(KK2, Position(P, K[i]+P[j]) ); 1253Add(KK3, (+1*To[Position(P, P[i])][Position(P,K[j])][2][1]+1*To[Position(P, K[i])][Position(P,P[j])][2][1])/2); 1254Add(KK3, Position(P, K[i]+P[j]) ); 1255Add(KK4, -1*(-1*To[Position(P, P[i])][Position(P,K[j])][2][1]-1*To[Position(P, K[i])][Position(P,P[j])][2][1])/2); 1256Add(KK4, Position(P, P[i]+K[j]) ); 1257 1258fi; 1259 1260else 1261 if (p+Position(P,K[i]+P[j]) = p+Position(P,P[i]+K[j])) then 1262 1263if (t[Position(P,K[j]+P[i] )] = 1) then 1264 1265Add(KK1, (+1*To[Position(P, P[i])][Position(P,K[j])][2][1]-1*To[Position(P, K[i])][Position(P,P[j])][2][1])/2); 1266Add(KK1, Position(P, P[i]+K[j]) ); 1267Add(KK4, -1*(-1*To[Position(P, P[i])][Position(P,K[j])][2][1]+1*To[Position(P, K[i])][Position(P,P[j])][2][1])/2); 1268Add(KK4, Position(P, P[i]+K[j]) ); 1269 1270else 1271 1272Add(KK2, (-1*To[Position(P, P[i])][Position(P,K[j])][2][1]-1*To[Position(P, K[i])][Position(P,P[j])][2][1])/2); 1273Add(KK2, Position(P, K[i]+P[j]) ); 1274Add(KK3, (+1*To[Position(P, P[i])][Position(P,K[j])][2][1]+1*To[Position(P, K[i])][Position(P,P[j])][2][1])/2); 1275Add(KK3, Position(P, K[i]+P[j]) ); 1276 1277fi; 1278 else #(p+Position(P,K[j]+K[i]) < p+Position(P,P[j]+P[i])) 1279 1280if (t[Position(P,P[i]+K[j] )] = 1) then 1281 1282Add(KK1, (+1*To[Position(P, P[i])][Position(P,K[j])][2][1]-1*To[Position(P, K[i])][Position(P,P[j])][2][1])/2); 1283Add(KK1, Position(P, K[i]+P[j]) ); 1284Add(KK2, -1*(-1*To[Position(P, P[i])][Position(P,K[j])][2][1]+1*To[Position(P, K[i])][Position(P,P[j])][2][1])/2); 1285Add(KK2, Position(P, P[i]+K[j]) ); 1286Add(KK3, -1*(+1*To[Position(P, P[i])][Position(P,K[j])][2][1]-1*To[Position(P, K[i])][Position(P,P[j])][2][1])/2); 1287Add(KK3, Position(P, P[i]+K[j]) ); 1288Add(KK4, -1*(-1*To[Position(P, P[i])][Position(P,K[j])][2][1]+1*To[Position(P, K[i])][Position(P,P[j])][2][1])/2); 1289Add(KK4, Position(P, K[i]+P[j]) ); 1290 1291else 1292 1293Add(KK1, -1*(+1*To[Position(P, P[i])][Position(P,K[j])][2][1]+1*To[Position(P, K[i])][Position(P,P[j])][2][1])/2); 1294Add(KK1, Position(P, K[i]+P[j]) ); 1295Add(KK2, (-1*To[Position(P, P[i])][Position(P,K[j])][2][1]-1*To[Position(P, K[i])][Position(P,P[j])][2][1])/2); 1296Add(KK2, Position(P, P[i]+K[j]) ); 1297Add(KK3, (+1*To[Position(P, P[i])][Position(P,K[j])][2][1]+1*To[Position(P, K[i])][Position(P,P[j])][2][1])/2); 1298Add(KK3, Position(P, P[i]+K[j]) ); 1299Add(KK4, +1*(-1*To[Position(P, P[i])][Position(P,K[j])][2][1]-1*To[Position(P, K[i])][Position(P,P[j])][2][1])/2); 1300Add(KK4, Position(P, K[i]+P[j]) ); 1301 1302fi; 1303 fi; 1304 1305fi; 1306fi; fi; 1307 1308###### 1309########## 1310############# 1311 1312 1313if (K[j]-P[i] in P ) then 1314if not (IsEmpty(To[Position(P, P[i])][p+Position(P,K[j])][2])=true) then 1315if (p+Position(P,P[j]-K[i]) > p+Position(P,K[j]-P[i])) then 1316 1317if (t[Position(P,K[j]-P[i] )] = 1) then 1318 1319Add(KK1, (+1*To[Position(P, P[i])][p+Position(P,K[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,P[j])][2][1])/2); 1320Add(KK1, Position(P, K[j]-P[i]) ); 1321Add(KK2, (-1*To[Position(P, P[i])][p+Position(P,K[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,P[j])][2][1])/2); 1322Add(KK2, Position(P, P[j]-K[i]) ); 1323Add(KK3, (+1*To[Position(P, P[i])][p+Position(P,K[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,P[j])][2][1])/2); 1324Add(KK3, Position(P, P[j]-K[i]) ); 1325Add(KK4, -1*(-1*To[Position(P, P[i])][p+Position(P,K[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,P[j])][2][1])/2); 1326Add(KK4, Position(P, K[j]-P[i]) ); 1327 1328else 1329 1330Add(KK1, (+1*To[Position(P, P[i])][p+Position(P,K[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,P[j])][2][1])/2); 1331Add(KK1, Position(P, K[j]-P[i]) ); 1332Add(KK2, (-1*To[Position(P, P[i])][p+Position(P,K[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,P[j])][2][1])/2); 1333Add(KK2, Position(P, P[j]-K[i]) ); 1334Add(KK3, (+1*To[Position(P, P[i])][p+Position(P,K[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,P[j])][2][1])/2); 1335Add(KK3, Position(P, P[j]-K[i]) ); 1336Add(KK4, -1*(-1*To[Position(P, P[i])][p+Position(P,K[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,P[j])][2][1])/2); 1337Add(KK4, Position(P, K[j]-P[i]) ); 1338 1339fi; 1340 1341else 1342 if (p+Position(P,P[j]-K[i]) = p+Position(P,K[j]-P[i])) then 1343 1344if (t[Position(P,K[j]-P[i] )] = 1) then 1345 1346Add(KK1, (+1*To[Position(P, P[i])][p+Position(P,K[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,P[j])][2][1])/2); 1347Add(KK1, Position(P, K[j]-P[i]) ); 1348Add(KK4, -1*(-1*To[Position(P, P[i])][p+Position(P,K[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,P[j])][2][1])/2); 1349Add(KK4, Position(P, K[j]-P[i]) ); 1350 1351else 1352 1353Add(KK2, (-1*To[Position(P, P[i])][p+Position(P,K[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,P[j])][2][1])/2); 1354Add(KK2, Position(P, P[j]-K[i]) ); 1355Add(KK3, (+1*To[Position(P, P[i])][p+Position(P,K[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,P[j])][2][1])/2); 1356Add(KK3, Position(P, P[j]-K[i]) ); 1357 1358fi; 1359 else #(p+Position(P,K[j]+K[i]) < p+Position(P,P[j]+P[i])) 1360 1361if (t[Position(P,K[j]-P[i] )] = 1) then 1362 1363Add(KK1, (+1*To[Position(P, P[i])][p+Position(P,K[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,P[j])][2][1])/2); 1364Add(KK1, Position(P, P[j]-K[i]) ); 1365Add(KK2, -1*(-1*To[Position(P, P[i])][p+Position(P,K[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,P[j])][2][1])/2); 1366Add(KK2, Position(P, K[j]-P[i]) ); 1367Add(KK3, -1*(+1*To[Position(P, P[i])][p+Position(P,K[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,P[j])][2][1])/2); 1368Add(KK3, Position(P, K[j]-P[i]) ); 1369Add(KK4, -1*(-1*To[Position(P, P[i])][p+Position(P,K[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,P[j])][2][1])/2); 1370Add(KK4, Position(P, P[j]-K[i]) ); 1371 1372else 1373 1374Add(KK1, -1*(+1*To[Position(P, P[i])][p+Position(P,K[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,P[j])][2][1])/2); 1375Add(KK1, Position(P, P[j]-K[i]) ); 1376Add(KK2, (-1*To[Position(P, P[i])][p+Position(P,K[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,P[j])][2][1])/2); 1377Add(KK2, Position(P, K[j]-P[i]) ); 1378Add(KK3, (+1*To[Position(P, P[i])][p+Position(P,K[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,P[j])][2][1])/2); 1379Add(KK3, Position(P, K[j]-P[i]) ); 1380Add(KK4, +1*(-1*To[Position(P, P[i])][p+Position(P,K[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,P[j])][2][1])/2); 1381Add(KK4, Position(P, P[j]-K[i]) ); 1382 1383fi; 1384 fi; 1385 1386fi; 1387fi; fi; 1388 1389 1390 1391else #t[j]=-1 1392 1393 1394############### 1395##################### 1396######################### 1397 1398if (P[i]+P[j] in P ) then #qui so che aplha+beta < phi_aplha+phi_beta quindi sono nel caso sicuro 1399if not (IsEmpty(To[Position(P, P[i])][Position(P,P[j])][2])=true) then 1400if (p+Position(P,K[j]+K[i]) > p+Position(P,P[j]+P[i])) then 1401 1402if (t[Position(P,P[j]+P[i] )] = 1) then 1403 1404Add(KK1, (+1*To[Position(P, P[i])][Position(P,P[j])][2][1]+1*To[Position(P, K[i])][Position(P,K[j])][2][1])/2); 1405Add(KK1, Position(P, P[i]+P[j]) ); 1406Add(KK2, (+1*To[Position(P, P[i])][Position(P,P[j])][2][1]+1*To[Position(P, K[i])][Position(P,K[j])][2][1])/2); 1407Add(KK2, Position(P, K[i]+K[j]) ); 1408Add(KK3, (+1*To[Position(P, P[i])][Position(P,P[j])][2][1]+1*To[Position(P, K[i])][Position(P,K[j])][2][1])/2); 1409Add(KK3, Position(P, K[i]+K[j]) ); 1410Add(KK4, -1*(+1*To[Position(P, P[i])][Position(P,P[j])][2][1]+1*To[Position(P, K[i])][Position(P,K[j])][2][1])/2); 1411Add(KK4, Position(P, P[i]+P[j]) ); 1412 1413else 1414 1415Add(KK1, (+1*To[Position(P, P[i])][Position(P,P[j])][2][1]-1*To[Position(P, K[i])][Position(P,K[j])][2][1])/2); 1416Add(KK1, Position(P, P[i]+P[j]) ); 1417Add(KK2, (+1*To[Position(P, P[i])][Position(P,P[j])][2][1]-1*To[Position(P, K[i])][Position(P,K[j])][2][1])/2); 1418Add(KK2, Position(P, K[i]+K[j]) ); 1419Add(KK3, (+1*To[Position(P, P[i])][Position(P,P[j])][2][1]-1*To[Position(P, K[i])][Position(P,K[j])][2][1])/2); 1420Add(KK3, Position(P, K[i]+K[j]) ); 1421Add(KK4, -1*(+1*To[Position(P, P[i])][Position(P,P[j])][2][1]-1*To[Position(P, K[i])][Position(P,K[j])][2][1])/2); 1422Add(KK4, Position(P, P[i]+P[j]) ); 1423 1424fi; 1425 1426else 1427 if (p+Position(P,K[j]+K[i]) = p+Position(P,P[j]+P[i])) then 1428 1429if (t[Position(P,P[j]+P[i] )] = 1) then 1430 1431Add(KK1, (+1*To[Position(P, P[i])][Position(P,P[j])][2][1]+1*To[Position(P, K[i])][Position(P,K[j])][2][1])/2); 1432Add(KK1, Position(P, P[i]+P[j]) ); 1433Add(KK4, -1*(+1*To[Position(P, P[i])][Position(P,P[j])][2][1]+1*To[Position(P, K[i])][Position(P,K[j])][2][1])/2); 1434Add(KK4, Position(P, P[i]+P[j]) ); 1435 1436else 1437 1438Add(KK2, (+1*To[Position(P, P[i])][Position(P,P[j])][2][1]-1*To[Position(P, K[i])][Position(P,K[j])][2][1])/2); 1439Add(KK2, Position(P, K[i]+K[j]) ); 1440Add(KK3, (+1*To[Position(P, P[i])][Position(P,P[j])][2][1]-1*To[Position(P, K[i])][Position(P,K[j])][2][1])/2); 1441Add(KK3, Position(P, K[i]+K[j]) ); 1442 1443fi; 1444 else #(p+Position(P,K[j]+K[i]) < p+Position(P,P[j]+P[i])) 1445 1446if (t[Position(P,P[j]+P[i] )] = 1) then 1447 1448Add(KK1, (+1*To[Position(P, P[i])][Position(P,P[j])][2][1]+1*To[Position(P, K[i])][Position(P,K[j])][2][1])/2); 1449Add(KK1, Position(P, K[j]+K[i]) ); 1450Add(KK2, -1*(+1*To[Position(P, P[i])][Position(P,P[j])][2][1]+1*To[Position(P, K[i])][Position(P,K[j])][2][1])/2); 1451Add(KK2, Position(P, P[i]+P[j]) ); 1452Add(KK3, -1*(+1*To[Position(P, P[i])][Position(P,P[j])][2][1]+1*To[Position(P, K[i])][Position(P,K[j])][2][1])/2); 1453Add(KK3, Position(P, P[i]+P[j]) ); 1454Add(KK4, -1*(+1*To[Position(P, P[i])][Position(P,P[j])][2][1]+1*To[Position(P, K[i])][Position(P,K[j])][2][1])/2); 1455Add(KK4, Position(P,K[j]+K[i]) ); 1456 1457else 1458 1459Add(KK1, -1*(+1*To[Position(P, P[i])][Position(P,P[j])][2][1]-1*To[Position(P, K[i])][Position(P,K[j])][2][1])/2); 1460Add(KK1, Position(P, K[j]+K[i]) ); 1461Add(KK2, (+1*To[Position(P, P[i])][Position(P,P[j])][2][1]-1*To[Position(P, K[i])][Position(P,K[j])][2][1])/2); 1462Add(KK2, Position(P, P[i]+P[j]) ); 1463Add(KK3, (+1*To[Position(P, P[i])][Position(P,P[j])][2][1]-1*To[Position(P, K[i])][Position(P,K[j])][2][1])/2); 1464Add(KK3, Position(P, P[i]+P[j]) ); 1465Add(KK4, +1*(+1*To[Position(P, P[i])][Position(P,P[j])][2][1]-1*To[Position(P, K[i])][Position(P,K[j])][2][1])/2); 1466Add(KK4, Position(P, K[j]+K[i]) ); 1467 1468fi; 1469 fi; 1470 1471fi; 1472fi; fi; 1473 1474 1475 1476 1477 1478####### 1479############ 1480############### 1481 1482 1483if (P[j]-P[i] in P ) then 1484if not (IsEmpty(To[Position(P, P[i])][p+Position(P,P[j])][2])=true) then 1485if (p+Position(P,K[j]-K[i]) > p+Position(P,P[j]-P[i])) then 1486 1487if (t[Position(P,P[j]-P[i] )] = 1) then 1488 1489Add(KK1, (+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])/2); 1490Add(KK1, Position(P, P[j]-P[i]) ); 1491Add(KK2, (+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])/2); 1492Add(KK2, Position(P, K[j]-K[i]) ); 1493Add(KK3, (+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])/2); 1494Add(KK3, Position(P, K[j]-K[i]) ); 1495Add(KK4, -1*(+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])/2); 1496Add(KK4, Position(P, P[j]-P[i]) ); 1497 1498else 1499 1500Add(KK1, (+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])/2); 1501Add(KK1, Position(P, P[j]-P[i]) ); 1502Add(KK2, (+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])/2); 1503Add(KK2, Position(P, K[j]-K[i]) ); 1504Add(KK3, (+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])/2); 1505Add(KK3, Position(P, K[j]-K[i]) ); 1506Add(KK4, -1*(+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])/2); 1507Add(KK4, Position(P, P[j]-P[i]) ); 1508 1509fi; 1510 1511else 1512 if (p+Position(P,K[j]-K[i]) = p+Position(P,P[j]-P[i])) then 1513 1514if (t[Position(P,P[j]-P[i] )] = 1) then 1515 1516Add(KK1, (+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])/2); 1517Add(KK1, Position(P, P[j]-P[i]) ); 1518Add(KK4, -1*(+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])/2); 1519Add(KK4, Position(P, P[j]-P[i]) ); 1520 1521else 1522 1523Add(KK2, (+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])/2); 1524Add(KK2, Position(P, K[j]-K[i]) ); 1525Add(KK3, (+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])/2); 1526Add(KK3, Position(P, K[j]-K[i]) ); 1527 1528fi; 1529 else #(p+Position(P,K[j]+K[i]) < p+Position(P,P[j]+P[i])) 1530 1531if (t[Position(P,P[j]-P[i] )] = 1) then 1532 1533Add(KK1, (+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])/2); 1534Add(KK1, Position(P, K[j]-K[i]) ); 1535Add(KK2, -1*(+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])/2); 1536Add(KK2, Position(P, P[j]-P[i]) ); 1537Add(KK3, -1*(+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])/2); 1538Add(KK3, Position(P, P[j]-P[i]) ); 1539Add(KK4, -1*(+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])/2); 1540Add(KK4, Position(P, K[j]-K[i]) ); 1541 1542else 1543 1544Add(KK1, -1*(+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])/2); 1545Add(KK1, Position(P, K[j]-K[i]) ); 1546Add(KK2, (+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])/2); 1547Add(KK2, Position(P, P[j]-P[i]) ); 1548Add(KK3, (+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])/2); 1549Add(KK3, Position(P, P[j]-P[i]) ); 1550Add(KK4, +1*(+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])/2); 1551Add(KK4, Position(P, K[j]-K[i]) ); 1552 1553fi; 1554 fi; 1555 1556fi; 1557fi; fi; 1558 1559 1560###### 1561########## 1562############# 1563 1564 1565if (P[i]+K[j] in P ) then 1566if not (IsEmpty(To[Position(P, P[i])][Position(P,K[j])][2])=true) then 1567if (p+Position(P,K[i]+P[j]) > p+Position(P,P[i]+K[j])) then 1568 1569if (t[Position(P,P[i]+K[j] )] = 1) then 1570 1571Add(KK1, (-1*To[Position(P, P[i])][Position(P,K[j])][2][1]-1*To[Position(P, K[i])][Position(P,P[j])][2][1])/2); 1572Add(KK1, Position(P, P[i]+K[j]) ); 1573Add(KK2, (+1*To[Position(P, P[i])][Position(P,K[j])][2][1]+1*To[Position(P, K[i])][Position(P,P[j])][2][1])/2); 1574Add(KK2, Position(P, K[i]+P[j]) ); 1575Add(KK3, (-1*To[Position(P, P[i])][Position(P,K[j])][2][1]-1*To[Position(P, K[i])][Position(P,P[j])][2][1])/2); 1576Add(KK3, Position(P, K[i]+P[j]) ); 1577Add(KK4, -1*(+1*To[Position(P, P[i])][Position(P,K[j])][2][1]+1*To[Position(P, K[i])][Position(P,P[j])][2][1])/2); 1578Add(KK4, Position(P, P[i]+K[j]) ); 1579 1580else 1581 1582Add(KK1, (-1*To[Position(P, P[i])][Position(P,K[j])][2][1]+1*To[Position(P, K[i])][Position(P,P[j])][2][1])/2); 1583Add(KK1, Position(P, P[i]+K[j]) ); 1584Add(KK2, (+1*To[Position(P, P[i])][Position(P,K[j])][2][1]-1*To[Position(P, K[i])][Position(P,P[j])][2][1])/2); 1585Add(KK2, Position(P, K[i]+P[j]) ); 1586Add(KK3, (-1*To[Position(P, P[i])][Position(P,K[j])][2][1]+1*To[Position(P, K[i])][Position(P,P[j])][2][1])/2); 1587Add(KK3, Position(P, K[i]+P[j]) ); 1588Add(KK4, -1*(+1*To[Position(P, P[i])][Position(P,K[j])][2][1]-1*To[Position(P, K[i])][Position(P,P[j])][2][1])/2); 1589Add(KK4, Position(P, P[i]+K[j]) ); 1590 1591fi; 1592 1593else 1594 if (p+Position(P,K[i]+P[j]) = p+Position(P,P[i]+K[j])) then 1595 1596if (t[Position(P,K[j]+P[i] )] = 1) then 1597 1598Add(KK1, (-1*To[Position(P, P[i])][Position(P,K[j])][2][1]-1*To[Position(P, K[i])][Position(P,P[j])][2][1])/2); 1599Add(KK1, Position(P, P[i]+K[j]) ); 1600Add(KK4, -1*(+1*To[Position(P, P[i])][Position(P,K[j])][2][1]+1*To[Position(P, K[i])][Position(P,P[j])][2][1])/2); 1601Add(KK4, Position(P, P[i]+K[j]) ); 1602 1603else 1604 1605Add(KK2, (+1*To[Position(P, P[i])][Position(P,K[j])][2][1]-1*To[Position(P, K[i])][Position(P,P[j])][2][1])/2); 1606Add(KK2, Position(P, K[i]+P[j]) ); 1607Add(KK3, (-1*To[Position(P, P[i])][Position(P,K[j])][2][1]+1*To[Position(P, K[i])][Position(P,P[j])][2][1])/2); 1608Add(KK3, Position(P, K[i]+P[j]) ); 1609 1610fi; 1611 else #(p+Position(P,K[j]+K[i]) < p+Position(P,P[j]+P[i])) 1612 1613if (t[Position(P,P[i]+K[j] )] = 1) then 1614 1615Add(KK1, (-1*To[Position(P, P[i])][Position(P,K[j])][2][1]-1*To[Position(P, K[i])][Position(P,P[j])][2][1])/2); 1616Add(KK1, Position(P, K[i]+P[j]) ); 1617Add(KK2, -1*(+1*To[Position(P, P[i])][Position(P,K[j])][2][1]+1*To[Position(P, K[i])][Position(P,P[j])][2][1])/2); 1618Add(KK2, Position(P, P[i]+K[j]) ); 1619Add(KK3, -1*(-1*To[Position(P, P[i])][Position(P,K[j])][2][1]-1*To[Position(P, K[i])][Position(P,P[j])][2][1])/2); 1620Add(KK3, Position(P, P[i]+K[j]) ); 1621Add(KK4, -1*(+1*To[Position(P, P[i])][Position(P,K[j])][2][1]+1*To[Position(P, K[i])][Position(P,P[j])][2][1])/2); 1622Add(KK4, Position(P, K[i]+P[j]) ); 1623 1624else 1625 1626Add(KK1, -1*(-1*To[Position(P, P[i])][Position(P,K[j])][2][1]+1*To[Position(P, K[i])][Position(P,P[j])][2][1])/2); 1627Add(KK1, Position(P, K[i]+P[j]) ); 1628Add(KK2, (+1*To[Position(P, P[i])][Position(P,K[j])][2][1]-1*To[Position(P, K[i])][Position(P,P[j])][2][1])/2); 1629Add(KK2, Position(P, P[i]+K[j]) ); 1630Add(KK3, (-1*To[Position(P, P[i])][Position(P,K[j])][2][1]+1*To[Position(P, K[i])][Position(P,P[j])][2][1])/2); 1631Add(KK3, Position(P, P[i]+K[j]) ); 1632Add(KK4, +1*(+1*To[Position(P, P[i])][Position(P,K[j])][2][1]-1*To[Position(P, K[i])][Position(P,P[j])][2][1])/2); 1633Add(KK4, Position(P, K[i]+P[j]) ); 1634 1635fi; 1636 fi; 1637 1638fi; 1639fi; fi; 1640 1641###### 1642########## 1643############# 1644 1645 1646if (K[j]-P[i] in P ) then 1647if not (IsEmpty(To[Position(P, P[i])][p+Position(P,K[j])][2])=true) then 1648if (p+Position(P,P[j]-K[i]) > p+Position(P,K[j]-P[i])) then 1649 1650if (t[Position(P,K[j]-P[i] )] = 1) then 1651 1652Add(KK1, (-1*To[Position(P, P[i])][p+Position(P,K[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,P[j])][2][1])/2); 1653Add(KK1, Position(P, K[j]-P[i]) ); 1654Add(KK2, (+1*To[Position(P, P[i])][p+Position(P,K[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,P[j])][2][1])/2); 1655Add(KK2, Position(P, P[j]-K[i]) ); 1656Add(KK3, (-1*To[Position(P, P[i])][p+Position(P,K[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,P[j])][2][1])/2); 1657Add(KK3, Position(P, P[j]-K[i]) ); 1658Add(KK4, -1*(+1*To[Position(P, P[i])][p+Position(P,K[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,P[j])][2][1])/2); 1659Add(KK4, Position(P, K[j]-P[i]) ); 1660 1661else 1662 1663Add(KK1, (-1*To[Position(P, P[i])][p+Position(P,K[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,P[j])][2][1])/2); 1664Add(KK1, Position(P, K[j]-P[i]) ); 1665Add(KK2, (+1*To[Position(P, P[i])][p+Position(P,K[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,P[j])][2][1])/2); 1666Add(KK2, Position(P, P[j]-K[i]) ); 1667Add(KK3, (-1*To[Position(P, P[i])][p+Position(P,K[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,P[j])][2][1])/2); 1668Add(KK3, Position(P, P[j]-K[i]) ); 1669Add(KK4, -1*(+1*To[Position(P, P[i])][p+Position(P,K[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,P[j])][2][1])/2); 1670Add(KK4, Position(P, K[j]-P[i]) ); 1671 1672fi; 1673 1674else 1675 if (p+Position(P,P[j]-K[i]) = p+Position(P,K[j]-P[i])) then 1676 1677if (t[Position(P,K[j]-P[i] )] = 1) then 1678 1679Add(KK1, (-1*To[Position(P, P[i])][p+Position(P,K[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,P[j])][2][1])/2); 1680Add(KK1, Position(P, K[j]-P[i]) ); 1681Add(KK4, -1*(+1*To[Position(P, P[i])][p+Position(P,K[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,P[j])][2][1])/2); 1682Add(KK4, Position(P, K[j]-P[i]) ); 1683 1684else 1685 1686Add(KK2, (+1*To[Position(P, P[i])][p+Position(P,K[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,P[j])][2][1])/2); 1687Add(KK2, Position(P, P[j]-K[i]) ); 1688Add(KK3, (-1*To[Position(P, P[i])][p+Position(P,K[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,P[j])][2][1])/2); 1689Add(KK3, Position(P, P[j]-K[i]) ); 1690 1691fi; 1692 else #(p+Position(P,K[j]+K[i]) < p+Position(P,P[j]+P[i])) 1693 1694if (t[Position(P,K[j]-P[i] )] = 1) then 1695 1696Add(KK1, (-1*To[Position(P, P[i])][p+Position(P,K[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,P[j])][2][1])/2); 1697Add(KK1, Position(P, P[j]-K[i]) ); 1698Add(KK2, -1*(+1*To[Position(P, P[i])][p+Position(P,K[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,P[j])][2][1])/2); 1699Add(KK2, Position(P, K[j]-P[i]) ); 1700Add(KK3, -1*(-1*To[Position(P, P[i])][p+Position(P,K[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,P[j])][2][1])/2); 1701Add(KK3, Position(P, K[j]-P[i]) ); 1702Add(KK4, -1*(+1*To[Position(P, P[i])][p+Position(P,K[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,P[j])][2][1])/2); 1703Add(KK4, Position(P, P[j]-K[i]) ); 1704 1705else 1706 1707Add(KK1, -1*(-1*To[Position(P, P[i])][p+Position(P,K[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,P[j])][2][1])/2); 1708Add(KK1, Position(P, P[j]-K[i]) ); 1709Add(KK2, (+1*To[Position(P, P[i])][p+Position(P,K[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,P[j])][2][1])/2); 1710Add(KK2, Position(P, K[j]-P[i]) ); 1711Add(KK3, (-1*To[Position(P, P[i])][p+Position(P,K[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,P[j])][2][1])/2); 1712Add(KK3, Position(P, K[j]-P[i]) ); 1713Add(KK4, +1*(+1*To[Position(P, P[i])][p+Position(P,K[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,P[j])][2][1])/2); 1714Add(KK4, Position(P, P[j]-K[i]) ); 1715 1716fi; 1717 fi; 1718 1719fi; 1720fi; fi; 1721 1722 1723fi; fi; 1724 1725SetEntrySCTable( TT, i, j , KK1); 1726SetEntrySCTable( TT, i, Position(P, K[j]), KK2); 1727SetEntrySCTable( TT, Position(P,K[i]), j, KK3); 1728SetEntrySCTable( TT, Position(P,K[i]) ,Position(P, K[j]), KK4); 1729 1730else 1731 1732 if ( p+Position(P, K[j]) = p+Position(P,P[j]) ) then #beta = phi_beta 1733 1734KK1:=[]; 1735KK2:=[]; 1736 1737if (t[i]=1) then 1738if (t[j]=1) then 1739 1740if (P[i]+P[j] in P ) then #qui so che aplha+beta < phi_aplha+phi_beta quindi sono nel caso sicuro 1741if not (IsEmpty(To[Position(P, P[i])][Position(P,P[j])][2])=true) then 1742if (p+Position(P,K[j]+K[i]) > p+Position(P,P[j]+P[i])) then 1743 1744if (t[Position(P,P[j]+P[i] )] = 1) then 1745Add(KK1, (+1*To[Position(P, P[i])][Position(P,P[j])][2][1]+1*To[Position(P, K[i])][Position(P,K[j])][2][1])); 1746Add(KK1, Position(P, P[i]+P[j]) ); 1747Add(KK2, (+1*To[Position(P, P[i])][Position(P,P[j])][2][1]+1*To[Position(P, K[i])][Position(P,K[j])][2][1])); 1748Add(KK2, Position(P, K[i]+K[j]) ); 1749else 1750Add(KK1, (+1*To[Position(P, P[i])][Position(P,P[j])][2][1]-1*To[Position(P, K[i])][Position(P,K[j])][2][1])); 1751Add(KK1, Position(P, P[i]+P[j]) ); 1752Add(KK2, (+1*To[Position(P, P[i])][Position(P,P[j])][2][1]-1*To[Position(P, K[i])][Position(P,K[j])][2][1])); 1753Add(KK2, Position(P, K[i]+K[j]) ); 1754fi; 1755 1756else 1757 if (p+Position(P,K[j]+K[i]) = p+Position(P,P[j]+P[i])) then 1758if (t[Position(P,P[j]+P[i] )] = 1) then 1759Add(KK1, (+1*To[Position(P, P[i])][Position(P,P[j])][2][1]+1*To[Position(P, K[i])][Position(P,K[j])][2][1])); 1760Add(KK1, Position(P, P[i]+P[j]) ); 1761else 1762Add(KK2, (+1*To[Position(P, P[i])][Position(P,P[j])][2][1]-1*To[Position(P, K[i])][Position(P,K[j])][2][1])); 1763Add(KK2, Position(P, K[i]+K[j]) ); 1764fi; 1765 else #(p+Position(P,K[j]+K[i]) < p+Position(P,P[j]+P[i])) 1766 1767if (t[Position(P,P[j]+P[i] )] = 1) then 1768Add(KK1, (+1*To[Position(P, P[i])][Position(P,P[j])][2][1]+1*To[Position(P, K[i])][Position(P,K[j])][2][1])); 1769Add(KK1, Position(P, K[j]+K[i]) ); 1770Add(KK2, -1*(+1*To[Position(P, P[i])][Position(P,P[j])][2][1]+1*To[Position(P, K[i])][Position(P,K[j])][2][1])); 1771Add(KK2, Position(P, P[i]+P[j]) ); 1772else 1773Add(KK1, -1*(+1*To[Position(P, P[i])][Position(P,P[j])][2][1]-1*To[Position(P, K[i])][Position(P,K[j])][2][1])); 1774Add(KK1, Position(P, K[j]+K[i]) ); 1775Add(KK2, +1*(+1*To[Position(P, P[i])][Position(P,P[j])][2][1]-1*To[Position(P, K[i])][Position(P,K[j])][2][1])); 1776Add(KK2, Position(P, P[i]+P[j]) ); 1777fi; 1778 fi; 1779fi; 1780fi; fi; 1781 1782####### 1783############ 1784############### 1785 1786if (P[j]-P[i] in P ) then 1787if not (IsEmpty(To[Position(P, P[i])][p+Position(P,P[j])][2])=true) then 1788if (p+Position(P,K[j]-K[i]) > p+Position(P,P[j]-P[i])) then 1789 1790if (t[Position(P,P[j]-P[i] )] = 1) then 1791Add(KK1, (+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])); 1792Add(KK1, Position(P, P[j]-P[i]) ); 1793Add(KK2, (+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])); 1794Add(KK2, Position(P, K[j]-K[i]) ); 1795else 1796Add(KK1, (+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])); 1797Add(KK1, Position(P, P[j]-P[i]) ); 1798Add(KK2, (+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])); 1799Add(KK2, Position(P, K[j]-K[i]) ); 1800fi; 1801else 1802 if (p+Position(P,K[j]-K[i]) = p+Position(P,P[j]-P[i])) then 1803if (t[Position(P,P[j]-P[i] )] = 1) then 1804Add(KK1, (+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])); 1805Add(KK1, Position(P, P[j]-P[i]) ); 1806else 1807Add(KK2, (+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])); 1808Add(KK2, Position(P, K[j]-K[i]) ); 1809fi; 1810 else #(p+Position(P,K[j]+K[i]) < p+Position(P,P[j]+P[i])) 1811if (t[Position(P,P[j]-P[i] )] = 1) then 1812Add(KK1, (+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])); 1813Add(KK1, Position(P, K[j]-K[i]) ); 1814Add(KK2, -1*(+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])); 1815Add(KK2, Position(P, P[j]-P[i]) ); 1816else 1817Add(KK1, -1*(+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])); 1818Add(KK1, Position(P, K[j]-K[i]) ); 1819Add(KK2, (+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])); 1820Add(KK2, Position(P, P[j]-P[i]) ); 1821fi; 1822 fi; 1823fi; 1824fi; fi; 1825 1826########### 1827################## 1828#################### 1829 1830else #t[j]=-1 1831 1832if (P[i]+P[j] in P ) then #qui so che aplha+beta < phi_aplha+phi_beta quindi sono nel caso sicuro 1833if not (IsEmpty(To[Position(P, P[i])][Position(P,P[j])][2])=true) then 1834if (p+Position(P,K[j]+K[i]) > p+Position(P,P[j]+P[i])) then 1835if (t[Position(P,P[j]+P[i] )] = 1) then 1836Add(KK1, (+1*To[Position(P, P[i])][Position(P,P[j])][2][1]-1*To[Position(P, K[i])][Position(P,K[j])][2][1])); 1837Add(KK1, Position(P, K[j]+K[i]) ); 1838Add(KK2, -1*(+1*To[Position(P, P[i])][Position(P,P[j])][2][1]-1*To[Position(P, K[i])][Position(P,K[j])][2][1])); 1839Add(KK2, Position(P, P[i]+P[j]) ); 1840else 1841Add(KK1, (+1*To[Position(P, P[i])][Position(P,P[j])][2][1]+1*To[Position(P, K[i])][Position(P,K[j])][2][1])); 1842Add(KK1, Position(P, K[j]+K[i]) ); 1843Add(KK2, -1*(+1*To[Position(P, P[i])][Position(P,P[j])][2][1]+1*To[Position(P, K[i])][Position(P,K[j])][2][1])); 1844Add(KK2, Position(P, P[i]+P[j]) ); 1845fi; 1846else 1847 if (p+Position(P,K[j]+K[i]) = p+Position(P,P[j]+P[i])) then 1848if (t[Position(P,P[j]+P[i] )] = 1) then 1849Add(KK2, -1*(+1*To[Position(P, P[i])][Position(P,P[j])][2][1]-1*To[Position(P, K[i])][Position(P,K[j])][2][1])); 1850Add(KK2, Position(P, P[i]+P[j]) ); 1851else 1852Add(KK1, (+1*To[Position(P, P[i])][Position(P,P[j])][2][1]+1*To[Position(P, K[i])][Position(P,K[j])][2][1])); 1853Add(KK1, Position(P, K[j]+K[i]) ); 1854fi; 1855 else #(p+Position(P,K[j]+K[i]) < p+Position(P,P[j]+P[i])) 1856 1857if (t[Position(P,P[j]+P[i] )] = 1) then 1858Add(KK1, -1*(+1*To[Position(P, P[i])][Position(P,P[j])][2][1]-1*To[Position(P, K[i])][Position(P,K[j])][2][1])); 1859Add(KK1, Position(P, K[j]+K[i]) ); 1860Add(KK2, -1*(+1*To[Position(P, P[i])][Position(P,P[j])][2][1]-1*To[Position(P, K[i])][Position(P,K[j])][2][1])); 1861Add(KK2, Position(P, P[i]+P[j]) ); 1862else 1863Add(KK1, (+1*To[Position(P, P[i])][Position(P,P[j])][2][1]+1*To[Position(P, K[i])][Position(P,K[j])][2][1])); 1864Add(KK1, Position(P, P[i]+P[j]) ); 1865Add(KK2, +1*(+1*To[Position(P, P[i])][Position(P,P[j])][2][1]+1*To[Position(P, K[i])][Position(P,K[j])][2][1])); 1866Add(KK2, Position(P, K[j]+K[i]) ); 1867fi; 1868 fi; 1869fi; 1870fi; fi; 1871 1872####### 1873############ 1874############### 1875 1876if (P[j]-P[i] in P ) then 1877if not (IsEmpty(To[Position(P, P[i])][p+Position(P,P[j])][2])=true) then 1878if (p+Position(P,K[j]-K[i]) > p+Position(P,P[j]-P[i])) then 1879if (t[Position(P,P[j]-P[i] )] = 1) then 1880Add(KK1, (+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])); 1881Add(KK1, Position(P, K[j]-K[i]) ); 1882Add(KK2, -1*(+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])); 1883Add(KK2, Position(P, P[j]-P[i]) ); 1884else 1885Add(KK1, (+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])); 1886Add(KK1, Position(P, K[j]-K[i]) ); 1887Add(KK2, -1*(+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])); 1888Add(KK2, Position(P, P[j]-P[i]) ); 1889fi; 1890else 1891 if (p+Position(P,K[j]-K[i]) = p+Position(P,P[j]-P[i])) then 1892if (t[Position(P,P[j]-P[i] )] = 1) then 1893Add(KK2, -1*(+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])); 1894Add(KK2, Position(P, P[j]-P[i]) ); 1895else 1896Add(KK1, (+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])); 1897Add(KK1, Position(P, K[j]-K[i]) ); 1898fi; 1899 else #(p+Position(P,K[j]+K[i]) < p+Position(P,P[j]+P[i])) 1900if (t[Position(P,P[j]-P[i] )] = 1) then 1901Add(KK1, -1*(+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])); 1902Add(KK1, Position(P, P[j]-P[i]) ); 1903Add(KK2, -1*(+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])); 1904Add(KK2, Position(P, K[j]-K[i]) ); 1905else 1906Add(KK1, (+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])); 1907Add(KK1, Position(P, P[j]-P[i]) ); 1908Add(KK2, +1*(+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])); 1909Add(KK2, Position(P, K[j]-K[i]) ); 1910fi; 1911 fi; 1912fi; 1913fi; fi; 1914 1915fi; 1916 1917else #t[i]=-1 1918if (t[j]=1) then 1919 1920if (P[i]+P[j] in P ) then #qui so che aplha+beta < phi_aplha+phi_beta quindi sono nel caso sicuro 1921if not (IsEmpty(To[Position(P, P[i])][Position(P,P[j])][2])=true) then 1922if (p+Position(P,K[j]+K[i]) > p+Position(P,P[j]+P[i])) then 1923if (t[Position(P,P[j]+P[i] )] = 1) then 1924Add(KK1, (+1*To[Position(P, P[i])][Position(P,P[j])][2][1]-1*To[Position(P, K[i])][Position(P,K[j])][2][1])); 1925Add(KK1, Position(P, P[i]+P[j]) ); 1926Add(KK2, (+1*To[Position(P, P[i])][Position(P,P[j])][2][1]-1*To[Position(P, K[i])][Position(P,K[j])][2][1])); 1927Add(KK2, Position(P, K[i]+K[j]) ); 1928else 1929Add(KK1, (+1*To[Position(P, P[i])][Position(P,P[j])][2][1]+1*To[Position(P, K[i])][Position(P,K[j])][2][1])); 1930Add(KK1, Position(P, P[i]+P[j]) ); 1931Add(KK2, (+1*To[Position(P, P[i])][Position(P,P[j])][2][1]+1*To[Position(P, K[i])][Position(P,K[j])][2][1])); 1932Add(KK2, Position(P, K[i]+K[j]) ); 1933fi; 1934else 1935 if (p+Position(P,K[j]+K[i]) = p+Position(P,P[j]+P[i])) then 1936if (t[Position(P,P[j]+P[i] )] = 1) then 1937Add(KK1, (+1*To[Position(P, P[i])][Position(P,P[j])][2][1]-1*To[Position(P, K[i])][Position(P,K[j])][2][1])); 1938Add(KK1, Position(P, P[i]+P[j]) ); 1939else 1940Add(KK2, (+1*To[Position(P, P[i])][Position(P,P[j])][2][1]+1*To[Position(P, K[i])][Position(P,K[j])][2][1])); 1941Add(KK2, Position(P, K[i]+K[j]) ); 1942fi; 1943 else #(p+Position(P,K[j]+K[i]) < p+Position(P,P[j]+P[i])) 1944if (t[Position(P,P[j]+P[i] )] = 1) then 1945Add(KK1, (+1*To[Position(P, P[i])][Position(P,P[j])][2][1]-1*To[Position(P, K[i])][Position(P,K[j])][2][1])); 1946Add(KK1, Position(P, K[j]+K[i]) ); 1947Add(KK2, -1*(+1*To[Position(P, P[i])][Position(P,P[j])][2][1]-1*To[Position(P, K[i])][Position(P,K[j])][2][1])); 1948Add(KK2, Position(P, P[i]+P[j]) ); 1949else 1950Add(KK1, -1*(+1*To[Position(P, P[i])][Position(P,P[j])][2][1]+1*To[Position(P, K[i])][Position(P,K[j])][2][1])); 1951Add(KK1, Position(P, K[j]+K[i]) ); 1952Add(KK2, (+1*To[Position(P, P[i])][Position(P,P[j])][2][1]+1*To[Position(P, K[i])][Position(P,K[j])][2][1])); 1953Add(KK2, Position(P, P[i]+P[j]) ); 1954fi; 1955 fi; 1956fi; 1957fi; fi; 1958 1959####### 1960############ 1961############### 1962 1963if (P[j]-P[i] in P ) then 1964if not (IsEmpty(To[Position(P, P[i])][p+Position(P,P[j])][2])=true) then 1965if (p+Position(P,K[j]-K[i]) > p+Position(P,P[j]-P[i])) then 1966if (t[Position(P,P[j]-P[i] )] = 1) then 1967Add(KK1, (+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])); 1968Add(KK1, Position(P, P[j]-P[i]) ); 1969Add(KK2, (+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])); 1970Add(KK2, Position(P, K[j]-K[i]) ); 1971else 1972Add(KK1, (+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])); 1973Add(KK1, Position(P, P[j]-P[i]) ); 1974Add(KK2, (+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])); 1975Add(KK2, Position(P, K[j]-K[i]) ); 1976fi; 1977else 1978 if (p+Position(P,K[j]-K[i]) = p+Position(P,P[j]-P[i])) then 1979if (t[Position(P,P[j]-P[i] )] = 1) then 1980Add(KK1, (+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])); 1981Add(KK1, Position(P, P[j]-P[i]) ); 1982else 1983Add(KK2, (+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])); 1984Add(KK2, Position(P, K[j]-K[i]) ); 1985fi; 1986 else #(p+Position(P,K[j]+K[i]) < p+Position(P,P[j]+P[i])) 1987if (t[Position(P,P[j]-P[i] )] = 1) then 1988Add(KK1, (+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])); 1989Add(KK1, Position(P, K[j]-K[i]) ); 1990Add(KK2, -1*(+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])); 1991Add(KK2, Position(P, P[j]-P[i]) ); 1992else 1993Add(KK1, -1*(+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])); 1994Add(KK1, Position(P, K[j]-K[i]) ); 1995Add(KK2, (+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])); 1996Add(KK2, Position(P, P[j]-P[i]) ); 1997fi; 1998 fi; 1999fi; 2000fi; fi; 2001 2002########### 2003################## 2004#################### 2005 2006else #t[i]=t[j]=-1 2007 2008if (P[i]+P[j] in P ) then #qui so che aplha+beta < phi_aplha+phi_beta quindi sono nel caso sicuro 2009if not (IsEmpty(To[Position(P, P[i])][Position(P,P[j])][2])=true) then 2010if (p+Position(P,K[j]+K[i]) > p+Position(P,P[j]+P[i])) then 2011if (t[Position(P,P[j]+P[i] )] = 1) then 2012Add(KK1, (+1*To[Position(P, P[i])][Position(P,P[j])][2][1]+1*To[Position(P, K[i])][Position(P,K[j])][2][1])); 2013Add(KK1, Position(P, K[i]+K[j]) ); 2014Add(KK2, -1*(+1*To[Position(P, P[i])][Position(P,P[j])][2][1]+1*To[Position(P, K[i])][Position(P,K[j])][2][1])); 2015Add(KK2, Position(P, P[j]+P[i]) ); 2016else 2017Add(KK1, (+1*To[Position(P, P[i])][Position(P,P[j])][2][1]-1*To[Position(P, K[i])][Position(P,K[j])][2][1])); 2018Add(KK1, Position(P, K[i]+K[j]) ); 2019Add(KK2, -1*(+1*To[Position(P, P[i])][Position(P,P[j])][2][1]-1*To[Position(P, K[i])][Position(P,K[j])][2][1])); 2020Add(KK2, Position(P, P[j]+P[i]) ); 2021fi; 2022else 2023 if (p+Position(P,K[j]+K[i]) = p+Position(P,P[j]+P[i])) then 2024if (t[Position(P,P[j]+P[i] )] = 1) then 2025Add(KK2, -1*(+1*To[Position(P, P[i])][Position(P,P[j])][2][1]+1*To[Position(P, K[i])][Position(P,K[j])][2][1])); 2026Add(KK2, Position(P, P[j]+P[i]) ); 2027else 2028Add(KK1, (+1*To[Position(P, P[i])][Position(P,P[j])][2][1]-1*To[Position(P, K[i])][Position(P,K[j])][2][1])); 2029Add(KK1, Position(P, K[i]+K[j]) ); 2030fi; 2031 else #(p+Position(P,K[j]+K[i]) < p+Position(P,P[j]+P[i])) 2032if (t[Position(P,P[j]+P[i] )] = 1) then 2033Add(KK1, -1*(+1*To[Position(P, P[i])][Position(P,P[j])][2][1]+1*To[Position(P, K[i])][Position(P,K[j])][2][1])); 2034Add(KK1, Position(P, P[j]+P[i]) ); 2035Add(KK2, -1*(+1*To[Position(P, P[i])][Position(P,P[j])][2][1]+1*To[Position(P, K[i])][Position(P,K[j])][2][1])); 2036Add(KK2, Position(P, K[i]+K[j]) ); 2037else 2038Add(KK1, (+1*To[Position(P, P[i])][Position(P,P[j])][2][1]-1*To[Position(P, K[i])][Position(P,K[j])][2][1])); 2039Add(KK1, Position(P, P[j]+P[i]) ); 2040Add(KK2, +1*(+1*To[Position(P, P[i])][Position(P,P[j])][2][1]-1*To[Position(P, K[i])][Position(P,K[j])][2][1])); 2041Add(KK2, Position(P, K[i]+K[j]) ); 2042fi; 2043 fi; 2044fi; 2045fi; fi; 2046 2047####### 2048############ 2049############### 2050 2051if (P[j]-P[i] in P ) then 2052if not (IsEmpty(To[Position(P, P[i])][p+Position(P,P[j])][2])=true) then 2053if (p+Position(P,K[j]-K[i]) > p+Position(P,P[j]-P[i])) then 2054if (t[Position(P,P[j]-P[i] )] = 1) then 2055Add(KK1, (+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])); 2056Add(KK1, Position(P, K[j]-K[i]) ); 2057Add(KK2, -1*(+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])); 2058Add(KK2, Position(P, P[j]-P[i]) ); 2059else 2060Add(KK1, (+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])); 2061Add(KK1, Position(P, K[j]-K[i]) ); 2062Add(KK2, -1*(+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])); 2063Add(KK2, Position(P, P[j]-P[i]) ); 2064fi; 2065else 2066 if (p+Position(P,K[j]-K[i]) = p+Position(P,P[j]-P[i])) then 2067if (t[Position(P,P[j]-P[i] )] = 1) then 2068Add(KK2, -1*(+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])); 2069Add(KK2, Position(P, P[j]-P[i]) ); 2070else 2071Add(KK1, (+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])); 2072Add(KK1, Position(P, K[j]-K[i]) ); 2073fi; 2074 else #(p+Position(P,K[j]+K[i]) < p+Position(P,P[j]+P[i])) 2075if (t[Position(P,P[j]-P[i] )] = 1) then 2076Add(KK1, -1*(+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])); 2077Add(KK1, Position(P, P[j]-P[i]) ); 2078Add(KK2, -1*(+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])); 2079Add(KK2, Position(P, K[j]-K[i]) ); 2080else 2081Add(KK1, (+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])); 2082Add(KK1, Position(P, P[j]-P[i]) ); 2083Add(KK2, +1*(+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])); 2084Add(KK2, Position(P, K[j]-K[i]) ); 2085fi; 2086 fi; 2087fi; 2088fi; fi; 2089 2090fi; fi; 2091 2092SetEntrySCTable( TT, i, j , KK1); 2093SetEntrySCTable( TT, Position(P,K[i]), j, KK2); 2094 2095fi; 2096fi; 2097 2098else 2099 if ( p+Position(P, K[i]) = p+Position(P,P[i]) ) then #alpha< phi_alpha 2100 if ( p+Position(P, K[j]) > p+Position(P,P[j]) ) then #beta< phi_beta 2101 2102KK1:=[]; 2103KK2:=[]; 2104 2105if (t[i]=1) then 2106if (t[j]=1) then 2107 2108if (P[i]+P[j] in P ) then #qui so che aplha+beta < phi_aplha+phi_beta quindi sono nel caso sicuro 2109if not (IsEmpty(To[Position(P, P[i])][Position(P,P[j])][2])=true) then 2110if (p+Position(P,K[j]+K[i]) > p+Position(P,P[j]+P[i])) then 2111if (t[Position(P,P[j]+P[i] )] = 1) then 2112Add(KK1, (+1*To[Position(P, P[i])][Position(P,P[j])][2][1]+1*To[Position(P, K[i])][Position(P,K[j])][2][1])); 2113Add(KK1, Position(P, P[i]+P[j]) ); 2114Add(KK2, (+1*To[Position(P, P[i])][Position(P,P[j])][2][1]+1*To[Position(P, K[i])][Position(P,K[j])][2][1])); 2115Add(KK2, Position(P, K[i]+K[j]) ); 2116else 2117Add(KK1, (+1*To[Position(P, P[i])][Position(P,P[j])][2][1]-1*To[Position(P, K[i])][Position(P,K[j])][2][1])); 2118Add(KK1, Position(P, P[i]+P[j]) ); 2119Add(KK2, (+1*To[Position(P, P[i])][Position(P,P[j])][2][1]-1*To[Position(P, K[i])][Position(P,K[j])][2][1])); 2120Add(KK2, Position(P, K[i]+K[j]) ); 2121fi; 2122else 2123 if (p+Position(P,K[j]+K[i]) = p+Position(P,P[j]+P[i])) then 2124if (t[Position(P,P[j]+P[i] )] = 1) then 2125Add(KK1, (+1*To[Position(P, P[i])][Position(P,P[j])][2][1]+1*To[Position(P, K[i])][Position(P,K[j])][2][1])); 2126Add(KK1, Position(P, P[i]+P[j]) ); 2127else 2128Add(KK2, (+1*To[Position(P, P[i])][Position(P,P[j])][2][1]-1*To[Position(P, K[i])][Position(P,K[j])][2][1])); 2129Add(KK2, Position(P, K[i]+K[j]) ); 2130fi; 2131 else #(p+Position(P,K[j]+K[i]) < p+Position(P,P[j]+P[i])) 2132if (t[Position(P,P[j]+P[i] )] = 1) then 2133Add(KK1, (+1*To[Position(P, P[i])][Position(P,P[j])][2][1]+1*To[Position(P, K[i])][Position(P,K[j])][2][1])); 2134Add(KK1, Position(P, K[j]+K[i]) ); 2135Add(KK2, -1*(+1*To[Position(P, P[i])][Position(P,P[j])][2][1]+1*To[Position(P, K[i])][Position(P,K[j])][2][1])); 2136Add(KK2, Position(P, P[i]+P[j]) ); 2137else 2138Add(KK1, -1*(+1*To[Position(P, P[i])][Position(P,P[j])][2][1]-1*To[Position(P, K[i])][Position(P,K[j])][2][1])); 2139Add(KK1, Position(P, K[j]+K[i]) ); 2140Add(KK2, (+1*To[Position(P, P[i])][Position(P,P[j])][2][1]-1*To[Position(P, K[i])][Position(P,K[j])][2][1])); 2141Add(KK2, Position(P, P[i]+P[j]) ); 2142fi; 2143 fi; 2144fi; 2145fi; fi; 2146 2147####### 2148############ 2149############### 2150 2151if (P[j]-P[i] in P ) then 2152if not (IsEmpty(To[Position(P, P[i])][p+Position(P,P[j])][2])=true) then 2153if (p+Position(P,K[j]-K[i]) > p+Position(P,P[j]-P[i])) then 2154if (t[Position(P,P[j]-P[i] )] = 1) then 2155Add(KK1, (+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])); 2156Add(KK1, Position(P, P[j]-P[i]) ); 2157Add(KK2, (+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])); 2158Add(KK2, Position(P, K[j]-K[i]) ); 2159else 2160Add(KK1, (+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])); 2161Add(KK1, Position(P, P[j]-P[i]) ); 2162Add(KK2, (+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])); 2163Add(KK2, Position(P, K[j]-K[i]) ); 2164fi; 2165else 2166 if (p+Position(P,K[j]-K[i]) = p+Position(P,P[j]-P[i])) then 2167if (t[Position(P,P[j]-P[i] )] = 1) then 2168Add(KK1, (+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])); 2169Add(KK1, Position(P, P[j]-P[i]) ); 2170else 2171Add(KK2, (+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])); 2172Add(KK2, Position(P, K[j]-K[i]) ); 2173fi; 2174 else #(p+Position(P,K[j]+K[i]) < p+Position(P,P[j]+P[i])) 2175if (t[Position(P,P[j]-P[i] )] = 1) then 2176Add(KK1, (+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])); 2177Add(KK1, Position(P, K[j]-K[i]) ); 2178Add(KK2, -1*(+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])); 2179Add(KK2, Position(P, P[j]-P[i]) ); 2180else 2181Add(KK1, -1*(+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])); 2182Add(KK1, Position(P, K[j]-K[i]) ); 2183Add(KK2, (+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])); 2184Add(KK2, Position(P, P[j]-P[i]) ); 2185fi; 2186 fi; 2187fi; 2188fi; fi; 2189 2190 2191########### 2192################## 2193#################### 2194 2195else #t[j]=-1 2196 2197if (P[i]+P[j] in P ) then #qui so che aplha+beta < phi_aplha+phi_beta quindi sono nel caso sicuro 2198if not (IsEmpty(To[Position(P, P[i])][Position(P,P[j])][2])=true) then 2199if (p+Position(P,K[j]+K[i]) > p+Position(P,P[j]+P[i])) then 2200if (t[Position(P,P[j]+P[i] )] = 1) then 2201Add(KK1, (+1*To[Position(P, P[i])][Position(P,P[j])][2][1]-1*To[Position(P, K[i])][Position(P,K[j])][2][1])); 2202Add(KK1, Position(P, P[i]+P[j]) ); 2203Add(KK2, (+1*To[Position(P, P[i])][Position(P,P[j])][2][1]-1*To[Position(P, K[i])][Position(P,K[j])][2][1])); 2204Add(KK2, Position(P, K[i]+K[j]) ); 2205else 2206Add(KK1, (+1*To[Position(P, P[i])][Position(P,P[j])][2][1]+1*To[Position(P, K[i])][Position(P,K[j])][2][1])); 2207Add(KK1, Position(P, P[i]+P[j]) ); 2208Add(KK2, (+1*To[Position(P, P[i])][Position(P,P[j])][2][1]+1*To[Position(P, K[i])][Position(P,K[j])][2][1])); 2209Add(KK2, Position(P, K[i]+K[j]) ); 2210fi; 2211else 2212 if (p+Position(P,K[j]+K[i]) = p+Position(P,P[j]+P[i])) then 2213if (t[Position(P,P[j]+P[i] )] = 1) then 2214Add(KK1, (+1*To[Position(P, P[i])][Position(P,P[j])][2][1]-1*To[Position(P, K[i])][Position(P,K[j])][2][1])); 2215Add(KK1, Position(P, P[i]+P[j]) ); 2216else 2217Add(KK2, (+1*To[Position(P, P[i])][Position(P,P[j])][2][1]+1*To[Position(P, K[i])][Position(P,K[j])][2][1])); 2218Add(KK2, Position(P, K[i]+K[j]) ); 2219fi; 2220 else #(p+Position(P,K[j]+K[i]) < p+Position(P,P[j]+P[i])) 2221if (t[Position(P,P[j]+P[i] )] = 1) then 2222Add(KK1, (+1*To[Position(P, P[i])][Position(P,P[j])][2][1]-1*To[Position(P, K[i])][Position(P,K[j])][2][1])); 2223Add(KK1, Position(P, K[j]+K[i]) ); 2224Add(KK2, -1*(+1*To[Position(P, P[i])][Position(P,P[j])][2][1]-1*To[Position(P, K[i])][Position(P,K[j])][2][1])); 2225Add(KK2, Position(P, P[i]+P[j]) ); 2226else 2227Add(KK1, -1*(+1*To[Position(P, P[i])][Position(P,P[j])][2][1]+1*To[Position(P, K[i])][Position(P,K[j])][2][1])); 2228Add(KK1, Position(P, K[j]+K[i]) ); 2229Add(KK2, (+1*To[Position(P, P[i])][Position(P,P[j])][2][1]+1*To[Position(P, K[i])][Position(P,K[j])][2][1])); 2230Add(KK2, Position(P, P[i]+P[j]) ); 2231fi; 2232 fi; 2233fi; 2234fi; fi; 2235 2236####### 2237############ 2238############### 2239 2240if (P[j]-P[i] in P ) then 2241if not (IsEmpty(To[Position(P, P[i])][p+Position(P,P[j])][2])=true) then 2242if (p+Position(P,K[j]-K[i]) > p+Position(P,P[j]-P[i])) then 2243if (t[Position(P,P[j]-P[i] )] = 1) then 2244Add(KK1, (+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])); 2245Add(KK1, Position(P, P[j]-P[i]) ); 2246Add(KK2, (+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])); 2247Add(KK2, Position(P, K[j]-K[i]) ); 2248else 2249Add(KK1, (+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])); 2250Add(KK1, Position(P, P[j]-P[i]) ); 2251Add(KK2, (+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])); 2252Add(KK2, Position(P, K[j]-K[i]) ); 2253fi; 2254else 2255 if (p+Position(P,K[j]-K[i]) = p+Position(P,P[j]-P[i])) then 2256if (t[Position(P,P[j]-P[i] )] = 1) then 2257Add(KK1, (+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])); 2258Add(KK1, Position(P, P[j]-P[i]) ); 2259else 2260Add(KK2, (+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])); 2261Add(KK2, Position(P, K[j]-K[i]) ); 2262fi; 2263 else #(p+Position(P,K[j]+K[i]) < p+Position(P,P[j]+P[i])) 2264if (t[Position(P,P[j]-P[i] )] = 1) then 2265Add(KK1, (+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])); 2266Add(KK1, Position(P, K[j]-K[i]) ); 2267Add(KK2, -1*(+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])); 2268Add(KK2, Position(P, P[j]-P[i]) ); 2269else 2270Add(KK1, -1*(+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])); 2271Add(KK1, Position(P, K[j]-K[i]) ); 2272Add(KK2, (+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])); 2273Add(KK2, Position(P, P[j]-P[i]) ); 2274fi; 2275 fi; 2276fi; 2277fi; fi; 2278 2279########### 2280################## 2281#################### 2282fi; 2283 2284else #t[i]=1 2285if (t[j]=1) then 2286 2287if (P[i]+P[j] in P ) then #qui so che aplha+beta < phi_aplha+phi_beta quindi sono nel caso sicuro 2288if not (IsEmpty(To[Position(P, P[i])][Position(P,P[j])][2])=true) then 2289if (p+Position(P,K[j]+K[i]) > p+Position(P,P[j]+P[i])) then 2290if (t[Position(P,P[j]+P[i] )] = 1) then 2291Add(KK1, (+1*To[Position(P, P[i])][Position(P,P[j])][2][1]-1*To[Position(P, K[i])][Position(P,K[j])][2][1])); 2292Add(KK1, Position(P, K[j]+K[i]) ); 2293Add(KK2, -1*(+1*To[Position(P, P[i])][Position(P,P[j])][2][1]-1*To[Position(P, K[i])][Position(P,K[j])][2][1])); 2294Add(KK2, Position(P, P[i]+P[j]) ); 2295else 2296Add(KK1, (+1*To[Position(P, P[i])][Position(P,P[j])][2][1]+1*To[Position(P, K[i])][Position(P,K[j])][2][1])); 2297Add(KK1, Position(P, K[j]+K[i]) ); 2298Add(KK2, -1*(+1*To[Position(P, P[i])][Position(P,P[j])][2][1]+1*To[Position(P, K[i])][Position(P,K[j])][2][1])); 2299Add(KK2, Position(P, P[i]+P[j]) ); 2300fi; 2301else 2302 if (p+Position(P,K[j]+K[i]) = p+Position(P,P[j]+P[i])) then 2303if (t[Position(P,P[j]+P[i] )] = 1) then 2304Add(KK2, -1*(+1*To[Position(P, P[i])][Position(P,P[j])][2][1]-1*To[Position(P, K[i])][Position(P,K[j])][2][1])); 2305Add(KK2, Position(P, P[i]+P[j]) ); 2306else 2307Add(KK1, (+1*To[Position(P, P[i])][Position(P,P[j])][2][1]+1*To[Position(P, K[i])][Position(P,K[j])][2][1])); 2308Add(KK1, Position(P, K[j]+K[i]) ); 2309fi; 2310 else #(p+Position(P,K[j]+K[i]) < p+Position(P,P[j]+P[i])) 2311if (t[Position(P,P[j]+P[i] )] = 1) then 2312Add(KK1, -1*(+1*To[Position(P, P[i])][Position(P,P[j])][2][1]-1*To[Position(P, K[i])][Position(P,K[j])][2][1])); 2313Add(KK1, Position(P, K[j]+K[i]) ); 2314Add(KK2, -1*(+1*To[Position(P, P[i])][Position(P,P[j])][2][1]-1*To[Position(P, K[i])][Position(P,K[j])][2][1])); 2315Add(KK2, Position(P, P[i]+P[j]) ); 2316else 2317Add(KK1, (+1*To[Position(P, P[i])][Position(P,P[j])][2][1]+1*To[Position(P, K[i])][Position(P,K[j])][2][1])); 2318Add(KK1, Position(P, P[i]+P[j]) ); 2319Add(KK2, +1*(+1*To[Position(P, P[i])][Position(P,P[j])][2][1]+1*To[Position(P, K[i])][Position(P,K[j])][2][1])); 2320Add(KK2, Position(P, K[j]+K[i]) ); 2321fi; 2322 fi; 2323fi; 2324fi; fi; 2325 2326####### 2327############ 2328############### 2329 2330if (P[j]-P[i] in P ) then 2331if not (IsEmpty(To[Position(P, P[i])][p+Position(P,P[j])][2])=true) then 2332if (p+Position(P,K[j]-K[i]) > p+Position(P,P[j]-P[i])) then 2333if (t[Position(P,P[j]-P[i] )] = 1) then 2334Add(KK1, (+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])); 2335Add(KK1, Position(P, K[j]-K[i]) ); 2336Add(KK2, -1*(+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])); 2337Add(KK2, Position(P, P[j]-P[i]) ); 2338else 2339Add(KK1, (+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])); 2340Add(KK1, Position(P, K[j]-K[i]) ); 2341Add(KK2, -1*(+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])); 2342Add(KK2, Position(P, P[j]-P[i]) ); 2343fi; 2344else 2345 if (p+Position(P,K[j]-K[i]) = p+Position(P,P[j]-P[i])) then 2346if (t[Position(P,P[j]-P[i] )] = 1) then 2347Add(KK2, -1*(+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])); 2348Add(KK2, Position(P, P[j]-P[i]) ); 2349else 2350Add(KK1, (+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])); 2351Add(KK1, Position(P, K[j]-K[i]) ); 2352fi; 2353 else #(p+Position(P,K[j]+K[i]) < p+Position(P,P[j]+P[i])) 2354if (t[Position(P,P[j]-P[i] )] = 1) then 2355Add(KK1, -1*(+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])); 2356Add(KK1, Position(P, P[j]-P[i]) ); 2357Add(KK2, -1*(+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])); 2358Add(KK2, Position(P, K[j]-K[i]) ); 2359else 2360Add(KK1, (+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])); 2361Add(KK1, Position(P, P[j]-P[i]) ); 2362Add(KK2, +1*(+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])); 2363Add(KK2, Position(P, K[j]-K[i]) ); 2364fi; 2365 fi; 2366fi; 2367fi; fi; 2368 2369else 2370 2371if (P[i]+P[j] in P ) then #qui so che aplha+beta < phi_aplha+phi_beta quindi sono nel caso sicuro 2372if not (IsEmpty(To[Position(P, P[i])][Position(P,P[j])][2])=true) then 2373if (p+Position(P,K[j]+K[i]) > p+Position(P,P[j]+P[i])) then 2374if (t[Position(P,P[j]+P[i] )] = 1) then 2375Add(KK1, (+1*To[Position(P, P[i])][Position(P,P[j])][2][1]+1*To[Position(P, K[i])][Position(P,K[j])][2][1])); 2376Add(KK1, Position(P, K[i]+K[j]) ); 2377Add(KK2, -1*(+1*To[Position(P, P[i])][Position(P,P[j])][2][1]+1*To[Position(P, K[i])][Position(P,K[j])][2][1])); 2378Add(KK2, Position(P, P[j]+P[i]) ); 2379else 2380Add(KK1, (+1*To[Position(P, P[i])][Position(P,P[j])][2][1]-1*To[Position(P, K[i])][Position(P,K[j])][2][1])); 2381Add(KK1, Position(P, K[i]+K[j]) ); 2382Add(KK2, -1*(+1*To[Position(P, P[i])][Position(P,P[j])][2][1]-1*To[Position(P, K[i])][Position(P,K[j])][2][1])); 2383Add(KK2, Position(P, P[j]+P[i]) ); 2384fi; 2385else 2386 if (p+Position(P,K[j]+K[i]) = p+Position(P,P[j]+P[i])) then 2387if (t[Position(P,P[j]+P[i] )] = 1) then 2388Add(KK2, -1*(+1*To[Position(P, P[i])][Position(P,P[j])][2][1]+1*To[Position(P, K[i])][Position(P,K[j])][2][1])); 2389Add(KK2, Position(P, P[j]+P[i]) ); 2390else 2391Add(KK1, (+1*To[Position(P, P[i])][Position(P,P[j])][2][1]-1*To[Position(P, K[i])][Position(P,K[j])][2][1])); 2392Add(KK1, Position(P, K[i]+K[j]) ); 2393fi; 2394 else #(p+Position(P,K[j]+K[i]) < p+Position(P,P[j]+P[i])) 2395if (t[Position(P,P[j]+P[i] )] = 1) then 2396Add(KK1, -1*(+1*To[Position(P, P[i])][Position(P,P[j])][2][1]+1*To[Position(P, K[i])][Position(P,K[j])][2][1])); 2397Add(KK1, Position(P, P[j]+P[i]) ); 2398Add(KK2, -1*(+1*To[Position(P, P[i])][Position(P,P[j])][2][1]+1*To[Position(P, K[i])][Position(P,K[j])][2][1])); 2399Add(KK2, Position(P, K[i]+K[j]) ); 2400else 2401Add(KK1, (+1*To[Position(P, P[i])][Position(P,P[j])][2][1]-1*To[Position(P, K[i])][Position(P,K[j])][2][1])); 2402Add(KK1, Position(P, P[j]+P[i]) ); 2403Add(KK2, +1*(+1*To[Position(P, P[i])][Position(P,P[j])][2][1]-1*To[Position(P, K[i])][Position(P,K[j])][2][1])); 2404Add(KK2, Position(P, K[i]+K[j]) ); 2405fi; 2406 fi; 2407fi; 2408fi; fi; 2409 2410###### 2411############ 2412############### 2413 2414if (P[j]-P[i] in P ) then 2415if not (IsEmpty(To[Position(P, P[i])][p+Position(P,P[j])][2])=true) then 2416if (p+Position(P,K[j]-K[i]) > p+Position(P,P[j]-P[i])) then 2417if (t[Position(P,P[j]-P[i] )] = 1) then 2418Add(KK1, (+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])); 2419Add(KK1, Position(P, K[j]-K[i]) ); 2420Add(KK2, -1*(+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])); 2421Add(KK2, Position(P, P[j]-P[i]) ); 2422else 2423Add(KK1, (+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])); 2424Add(KK1, Position(P, K[j]-K[i]) ); 2425Add(KK2, -1*(+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])); 2426Add(KK2, Position(P, P[j]-P[i]) ); 2427fi; 2428else 2429 if (p+Position(P,K[j]-K[i]) = p+Position(P,P[j]-P[i])) then 2430if (t[Position(P,P[j]-P[i] )] = 1) then 2431Add(KK2, -1*(+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])); 2432Add(KK2, Position(P, P[j]-P[i]) ); 2433else 2434Add(KK1, (+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])); 2435Add(KK1, Position(P, K[j]-K[i]) ); 2436fi; 2437 else #(p+Position(P,K[j]+K[i]) < p+Position(P,P[j]+P[i])) 2438 2439if (t[Position(P,P[j]-P[i] )] = 1) then 2440Add(KK1, -1*(+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])); 2441Add(KK1, Position(P, P[j]-P[i]) ); 2442Add(KK2, -1*(+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])); 2443Add(KK2, Position(P, K[j]-K[i]) ); 2444else 2445Add(KK1, (+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])); 2446Add(KK1, Position(P, P[j]-P[i]) ); 2447Add(KK2, +1*(+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])); 2448Add(KK2, Position(P, K[j]-K[i]) ); 2449fi; 2450 fi; 2451fi; 2452fi; fi; 2453fi; 2454fi; 2455 2456SetEntrySCTable( TT, i, j , KK1); 2457SetEntrySCTable( TT, i, Position(P,K[j]), KK2); 2458 2459########################## 2460########################################### 2461################################################# 2462 2463 else 2464 if ( p+Position(P, K[j]) = p+Position(P,P[j]) ) then #beta = phi_beta 2465 2466KK1:=[]; 2467 2468if (t[i]=1) then 2469if (t[j]=1) then 2470 2471if (P[i]+P[j] in P ) then #qui so che aplha+beta < phi_aplha + phi_beta quindi sono nel caso sicuro 2472if not (IsEmpty(To[Position(P, P[i])][Position(P,P[j])][2])=true) then 2473if (t[Position(P,P[j]+P[i])]=1) then 2474Add(KK1, +2*To[Position(P, P[i])][Position(P,P[j])][2][1]); 2475Add(KK1, Position(P, P[i]+P[j]) ); 2476fi; fi; fi; 2477 2478if (P[j]-P[i] in P ) then 2479if not (IsEmpty(To[Position(P, P[i])][p+Position(P,P[j])][2])=true) then 2480if (t[Position(P,P[j]-P[i])]=1) then 2481if (p+Position(P,K[j]-K[i]) > p+Position(P,P[j]-P[i])) then 2482Add(KK1, +2*To[Position(P, P[i])][p+Position(P,P[j])][2][1]); 2483Add(KK1, Position(P, P[j]-P[i]) ); 2484else 2485 if (p+Position(P,K[j]-K[i]) = p+Position(P, P[j]-P[i])) then 2486Add(KK1, +2*To[Position(P, P[i])][p+Position(P,P[j])][2][1]); 2487Add(KK1, Position(P, P[j]-P[i]) ); 2488 else 2489Add(KK1, +2*To[Position(P, P[i])][p+Position(P,P[j])][2][1]); 2490Add(KK1, Position(P, K[j]-K[i]) ); 2491 fi; 2492fi; fi; fi; fi; 2493 2494SetEntrySCTable( TT, i, j , KK1); 2495 2496else 2497 2498if (P[i]+P[j] in P ) then #qui so che aplha+beta < phi_aplha+phi_beta quindi sono nel caso sicuro 2499if not (IsEmpty(To[Position(P, P[i])][Position(P,P[j])][2])=true) then 2500if (t[Position(P,P[j]+P[i])]=-1) then 2501Add(KK1, +2*To[Position(P, P[i])][Position(P,P[j])][2][1]); 2502Add(KK1, Position(P, P[i]+P[j]) ); 2503fi; fi; fi; 2504 2505if (P[j]-P[i] in P ) then 2506if not (IsEmpty(To[Position(P, P[i])][p+Position(P,P[j])][2])=true) then 2507if (t[Position(P,P[j]-P[i])]=-1) then 2508if (p+Position(P,K[j]-K[i]) > p+Position(P,P[j]-P[i])) then 2509Add(KK1, +2*To[Position(P, P[i])][p+Position(P,P[j])][2][1]); 2510Add(KK1, Position(P, P[j]-P[i]) ); 2511else 2512 if (p+Position(P,K[j]-K[i]) = p+Position(P, P[j]-P[i])) then 2513Add(KK1, +2*To[Position(P, P[i])][p+Position(P,P[j])][2][1]); 2514Add(KK1, Position(P, P[j]-P[i]) ); 2515 else 2516Add(KK1, +2*To[Position(P, P[i])][p+Position(P,P[j])][2][1]); 2517Add(KK1, Position(P, K[j]-K[i]) ); 2518 fi; 2519fi; fi; fi; fi; 2520SetEntrySCTable( TT, i, j , KK1); 2521fi; 2522 2523else 2524if (t[j]=1) then 2525 2526if (P[i]+P[j] in P ) then #qui so che aplha+beta < phi_aplha+phi_beta quindi sono nel caso sicuro 2527if not (IsEmpty(To[Position(P, P[i])][Position(P,P[j])][2])=true) then 2528if (t[Position(P,P[j]+P[i])]=-1) then 2529Add(KK1, +2*To[Position(P, P[i])][Position(P,P[j])][2][1]); 2530Add(KK1, Position(P, P[i]+P[j]) ); 2531fi; fi; fi; 2532 2533if (P[j]-P[i] in P ) then 2534if not (IsEmpty(To[Position(P, P[i])][p+Position(P,P[j])][2])=true) then 2535if (t[Position(P,P[j]-P[i])]=-1) then 2536if (p+Position(P,K[j]-K[i]) > p+Position(P,P[j]-P[i])) then 2537Add(KK1, +2*To[Position(P, P[i])][p+Position(P,P[j])][2][1]); 2538Add(KK1, Position(P, P[j]-P[i]) ); 2539else 2540 if (p+Position(P,K[j]-K[i]) = p+Position(P, P[j]-P[i])) then 2541Add(KK1, +2*To[Position(P, P[i])][p+Position(P,P[j])][2][1]); 2542Add(KK1, Position(P, P[j]-P[i]) ); 2543 else 2544Add(KK1, +2*To[Position(P, P[i])][p+Position(P,P[j])][2][1]); 2545Add(KK1, Position(P, K[j]-K[i]) ); 2546 fi; 2547fi; fi; fi; fi; 2548 2549SetEntrySCTable( TT, i, j , KK1); 2550 2551 2552else 2553 2554 2555if (P[i]+P[j] in P ) then #qui so che aplha+beta < phi_aplha+phi_beta quindi sono nel caso sicuro 2556if not (IsEmpty(To[Position(P, P[i])][Position(P,P[j])][2])=true) then 2557if (t[Position(P,P[j]+P[i])]=1) then 2558Add(KK1, -2*To[Position(P, P[i])][Position(P,P[j])][2][1]); 2559Add(KK1, Position(P, P[i]+P[j]) ); 2560fi; fi; fi; 2561 2562if (P[j]-P[i] in P ) then 2563if not (IsEmpty(To[Position(P, P[i])][p+Position(P,P[j])][2])=true) then 2564if (t[Position(P,P[j]-P[i])]=1) then 2565if (p+Position(P,K[j]-K[i]) > p+Position(P,P[j]-P[i])) then 2566Add(KK1, -2*To[Position(P, P[i])][p+Position(P,P[j])][2][1]); 2567Add(KK1, Position(P, P[j]-P[i]) ); 2568else 2569 if (p+Position(P,K[j]-K[i]) = p+Position(P, P[j]-P[i])) then 2570Add(KK1, -2*To[Position(P, P[i])][p+Position(P,P[j])][2][1]); 2571Add(KK1, Position(P, P[j]-P[i]) ); 2572 else 2573Add(KK1, -2*To[Position(P, P[i])][p+Position(P,P[j])][2][1]); 2574Add(KK1, Position(P, K[j]-K[i]) ); 2575 fi; 2576fi; fi; fi; fi; 2577 2578SetEntrySCTable( TT, i, j , KK1); 2579 2580fi; 2581fi; fi; fi; 2582fi; fi; 2583od; od; 2584 2585for i in [1..p] do #variazione alpha per gli X 2586 if ( Position(P, K[i]) > Position(P,P[i]) ) then #alpha< phi_alpha (ragiono con gli X) 2587KK1:=[]; 2588 2589if (t[i] = 1) then 2590 2591if (P[i]+K[i] in P ) then 2592if not (IsEmpty(To[i][Position(P,K[i])][2] ) = true ) then 2593if (t[Position(P, P[i]+K[i])]=-1) then 2594Add(KK1, -1*To[Position(P, P[i])][Position(P,K[i])][2][1]); 2595Add(KK1, Position(P, K[i]+P[i]) ); 2596fi; fi; fi; 2597 2598else 2599 2600if (P[i]+K[i] in P ) then 2601if not (IsEmpty(To[i][Position(P,K[i])][2] ) = true ) then 2602if (t[Position(P, P[i]+K[i])]=-1) then 2603Add(KK1, +1*To[Position(P, P[i])][Position(P,K[i])][2][1]); 2604Add(KK1, Position(P, K[i]+P[i]) ); 2605fi; fi; fi; 2606 2607fi; 2608 2609SetEntrySCTable( TT, i, Position(P,K[i]) , KK1); 2610 2611 fi; 2612od; 2613 2614 2615######################################################################################################### 2616########################################################################################################### 2617 2618 2619############################################################################################################################################# 2620################################################################################################################### 2621 2622#Prodotti [Y,Y] con indici differenti X>Y ovvero alpha > beta !!!!!!! 2623 2624 2625for i in [1..p-1] do #variazione alpha per gli X 2626 for j in [i+1..p] do #variazione beta < alpha per gli Y 2627 if ( Position(P, K[i]) > Position(P,P[i]) ) then #alpha< phi_alpha (ragiono con gli X) 2628 if ( p+Position(P, K[j]) > p+Position(P,P[j]) ) then # beta< phi_beta (ragiono con gli Y) 2629 2630KK1:=[]; # i p+j 2631KK2:=[]; # i p+jbar 2632KK3:=[]; # ibar p+j 2633KK4:=[]; # ibar p+jbar 2634 2635if (t[i]=1) then 2636if (t[j]=1) then 2637 2638if (P[i]+P[j] in P ) then #qui so che aplha+beta < phi_aplha+phi_beta quindi sono nel caso sicuro 2639if not (IsEmpty(To[Position(P, P[i])][Position(P,P[j])][2])=true) then 2640if (p+Position(P,K[j]+K[i]) > p+Position(P,P[j]+P[i])) then 2641 2642if (t[Position(P,P[j]+P[i] )] = 1) then 2643Add(KK1, (-1*To[Position(P, P[i])][Position(P,P[j])][2][1]-1*To[Position(P, K[i])][Position(P,K[j])][2][1])/2); 2644Add(KK1, Position(P, P[i]+P[j]) ); 2645Add(KK2, (-1*To[Position(P, P[i])][Position(P,P[j])][2][1]-1*To[Position(P, K[i])][Position(P,K[j])][2][1])/2); 2646Add(KK2, Position(P, K[i]+K[j]) ); 2647Add(KK3, (-1*To[Position(P, P[i])][Position(P,P[j])][2][1]-1*To[Position(P, K[i])][Position(P,K[j])][2][1])/2); 2648Add(KK3, Position(P, K[i]+K[j]) ); 2649Add(KK4, (+1*To[Position(P, P[i])][Position(P,P[j])][2][1]+1*To[Position(P, K[i])][Position(P,K[j])][2][1])/2); 2650Add(KK4, Position(P, P[i]+P[j]) ); 2651else 2652Add(KK1, (-1*To[Position(P, P[i])][Position(P,P[j])][2][1]+1*To[Position(P, K[i])][Position(P,K[j])][2][1])/2); 2653Add(KK1, Position(P, P[i]+P[j]) ); 2654Add(KK2, (-1*To[Position(P, P[i])][Position(P,P[j])][2][1]+1*To[Position(P, K[i])][Position(P,K[j])][2][1])/2); 2655Add(KK2, Position(P, K[i]+K[j]) ); 2656Add(KK3, (-1*To[Position(P, P[i])][Position(P,P[j])][2][1]+1*To[Position(P, K[i])][Position(P,K[j])][2][1])/2); 2657Add(KK3, Position(P, K[i]+K[j]) ); 2658Add(KK4, (+1*To[Position(P, P[i])][Position(P,P[j])][2][1]-1*To[Position(P, K[i])][Position(P,K[j])][2][1])/2); 2659Add(KK4, Position(P, P[i]+P[j]) ); 2660fi; 2661 2662else 2663 if (p+Position(P,K[j]+K[i]) = p+Position(P,P[j]+P[i])) then 2664 2665if (t[Position(P,P[j]+P[i] )] = 1) then 2666Add(KK1, (-1*To[Position(P, P[i])][Position(P,P[j])][2][1]-1*To[Position(P, K[i])][Position(P,K[j])][2][1])/2); 2667Add(KK1, Position(P, P[i]+P[j]) ); 2668Add(KK4, (+1*To[Position(P, P[i])][Position(P,P[j])][2][1]+1*To[Position(P, K[i])][Position(P,K[j])][2][1])/2); 2669Add(KK4, Position(P, P[i]+P[j]) ); 2670else 2671Add(KK2, (-1*To[Position(P, P[i])][Position(P,P[j])][2][1]+1*To[Position(P, K[i])][Position(P,K[j])][2][1])/2); 2672Add(KK2, Position(P, K[i]+K[j]) ); 2673Add(KK3, (-1*To[Position(P, P[i])][Position(P,P[j])][2][1]+1*To[Position(P, K[i])][Position(P,K[j])][2][1])/2); 2674Add(KK3, Position(P, K[i]+K[j]) ); 2675fi; 2676 else #(p+Position(P,K[j]+K[i]) < p+Position(P,P[j]+P[i])) 2677 2678if (t[Position(P,P[j]+P[i] )] = 1) then 2679Add(KK1, (-1*To[Position(P, P[i])][Position(P,P[j])][2][1]-1*To[Position(P, K[i])][Position(P,K[j])][2][1])/2); 2680Add(KK1, Position(P, K[j]+K[i]) ); 2681Add(KK2, -1*(-1*To[Position(P, P[i])][Position(P,P[j])][2][1]-1*To[Position(P, K[i])][Position(P,K[j])][2][1])/2); 2682Add(KK2, Position(P, P[i]+P[j]) ); 2683Add(KK3, -1*(-1*To[Position(P, P[i])][Position(P,P[j])][2][1]-1*To[Position(P, K[i])][Position(P,K[j])][2][1])/2); 2684Add(KK3, Position(P, P[i]+P[j]) ); 2685Add(KK4, (+1*To[Position(P, P[i])][Position(P,P[j])][2][1]+1*To[Position(P, K[i])][Position(P,K[j])][2][1])/2); 2686Add(KK4, Position(P,K[j]+K[i]) ); 2687else 2688Add(KK1, -1*(-1*To[Position(P, P[i])][Position(P,P[j])][2][1]+1*To[Position(P, K[i])][Position(P,K[j])][2][1])/2); 2689Add(KK1, Position(P, K[j]+K[i]) ); 2690Add(KK2, (-1*To[Position(P, P[i])][Position(P,P[j])][2][1]+1*To[Position(P, K[i])][Position(P,K[j])][2][1])/2); 2691Add(KK2, Position(P, P[i]+P[j]) ); 2692Add(KK3, (-1*To[Position(P, P[i])][Position(P,P[j])][2][1]+1*To[Position(P, K[i])][Position(P,K[j])][2][1])/2); 2693Add(KK3, Position(P, P[i]+P[j]) ); 2694Add(KK4, -1*(+1*To[Position(P, P[i])][Position(P,P[j])][2][1]-1*To[Position(P, K[i])][Position(P,K[j])][2][1])/2); 2695Add(KK4, Position(P, K[j]+K[i]) ); 2696fi; 2697 fi; 2698fi; 2699fi; fi; 2700 2701############ 2702 2703if (P[j]-P[i] in P ) then 2704if not (IsEmpty(To[p+Position(P, P[i])][Position(P,P[j])][2])=true) then 2705if (p+Position(P,K[j]-K[i]) > p+Position(P,P[j]-P[i])) then 2706 2707if (t[Position(P,P[j]-P[i] )] = 1) then 2708Add(KK1, (-1*To[p+Position(P, P[i])][Position(P,P[j])][2][1]-1*To[p+Position(P, K[i])][Position(P,K[j])][2][1])/2); 2709Add(KK1, Position(P, P[j]-P[i]) ); 2710Add(KK2, (-1*To[p+Position(P, P[i])][Position(P,P[j])][2][1]-1*To[p+Position(P, K[i])][Position(P,K[j])][2][1])/2); 2711Add(KK2, Position(P, K[j]-K[i]) ); 2712Add(KK3, (-1*To[p+Position(P, P[i])][Position(P,P[j])][2][1]-1*To[p+Position(P, K[i])][Position(P,K[j])][2][1])/2); 2713Add(KK3, Position(P, K[j]-K[i]) ); 2714Add(KK4, (+1*To[p+Position(P, P[i])][Position(P,P[j])][2][1]+1*To[p+Position(P, K[i])][Position(P,K[j])][2][1])/2); 2715Add(KK4, Position(P, P[j]-P[i]) ); 2716else 2717Add(KK1, (-1*To[p+Position(P, P[i])][Position(P,P[j])][2][1]+1*To[p+Position(P, K[i])][Position(P,K[j])][2][1])/2); 2718Add(KK1, Position(P, P[j]-P[i]) ); 2719Add(KK2, (-1*To[p+Position(P, P[i])][Position(P,P[j])][2][1]+1*To[p+Position(P, K[i])][Position(P,K[j])][2][1])/2); 2720Add(KK2, Position(P, K[j]-K[i]) ); 2721Add(KK3, (-1*To[p+Position(P, P[i])][Position(P,P[j])][2][1]+1*To[p+Position(P, K[i])][Position(P,K[j])][2][1])/2); 2722Add(KK3, Position(P, K[j]-K[i]) ); 2723Add(KK4, (+1*To[p+Position(P, P[i])][Position(P,P[j])][2][1]-1*To[p+Position(P, K[i])][Position(P,K[j])][2][1])/2); 2724Add(KK4, Position(P, P[j]-P[i]) ); 2725fi; 2726 2727else 2728 if (p+Position(P,K[j]-K[i]) = p+Position(P,P[j]-P[i])) then 2729 2730if (t[Position(P,P[j]-P[i] )] = 1) then 2731Add(KK1, (-1*To[p+Position(P, P[i])][Position(P,P[j])][2][1]-1*To[p+Position(P, K[i])][Position(P,K[j])][2][1])/2); 2732Add(KK1, Position(P, P[j]-P[i]) ); 2733Add(KK4, (+1*To[p+Position(P, P[i])][Position(P,P[j])][2][1]+1*To[p+Position(P, K[i])][Position(P,K[j])][2][1])/2); 2734Add(KK4, Position(P, P[j]-P[i]) ); 2735else 2736Add(KK2, (-1*To[p+Position(P, P[i])][Position(P,P[j])][2][1]+1*To[p+Position(P, K[i])][Position(P,K[j])][2][1])/2); 2737Add(KK2, Position(P, K[j]-K[i]) ); 2738Add(KK3, (-1*To[p+Position(P, P[i])][Position(P,P[j])][2][1]+1*To[p+Position(P, K[i])][Position(P,K[j])][2][1])/2); 2739Add(KK3, Position(P, K[j]-K[i]) ); 2740fi; 2741 else #(p+Position(P,K[j]+K[i]) < p+Position(P,P[j]+P[i])) 2742 2743if (t[Position(P,P[j]-P[i] )] = 1) then 2744Add(KK1, (-1*To[p+Position(P, P[i])][Position(P,P[j])][2][1]-1*To[p+Position(P, K[i])][Position(P,K[j])][2][1])/2); 2745Add(KK1, Position(P, K[j]-K[i]) ); 2746Add(KK2, -1*(-1*To[p+Position(P, P[i])][Position(P,P[j])][2][1]-1*To[p+Position(P, K[i])][Position(P,K[j])][2][1])/2); 2747Add(KK2, Position(P, P[j]-P[i]) ); 2748Add(KK3, -1*(-1*To[p+Position(P, P[i])][Position(P,P[j])][2][1]-1*To[p+Position(P, K[i])][Position(P,K[j])][2][1])/2); 2749Add(KK3, Position(P, P[j]-P[i]) ); 2750Add(KK4, (+1*To[p+Position(P, P[i])][Position(P,P[j])][2][1]+1*To[p+Position(P, K[i])][Position(P,K[j])][2][1])/2); 2751Add(KK4, Position(P, K[j]-K[i]) ); 2752else 2753Add(KK1, -1*(-1*To[p+Position(P, P[i])][Position(P,P[j])][2][1]+1*To[p+Position(P, K[i])][Position(P,K[j])][2][1])/2); 2754Add(KK1, Position(P, K[j]-K[i]) ); 2755Add(KK2, (-1*To[p+Position(P, P[i])][Position(P,P[j])][2][1]+1*To[p+Position(P, K[i])][Position(P,K[j])][2][1])/2); 2756Add(KK2, Position(P, P[j]-P[i]) ); 2757Add(KK3, (-1*To[p+Position(P, P[i])][Position(P,P[j])][2][1]+1*To[p+Position(P, K[i])][Position(P,K[j])][2][1])/2); 2758Add(KK3, Position(P, P[j]-P[i]) ); 2759Add(KK4, -1*(+1*To[p+Position(P, P[i])][Position(P,P[j])][2][1]-1*To[p+Position(P, K[i])][Position(P,K[j])][2][1])/2); 2760Add(KK4, Position(P, K[j]-K[i]) ); 2761fi; 2762 fi; 2763fi; 2764fi; fi; 2765 2766 2767########## 2768 2769if (P[i]+K[j] in P ) then 2770if not (IsEmpty(To[Position(P, P[i])][Position(P,K[j])][2])=true) then 2771if (p+Position(P,K[i]+P[j]) > p+Position(P,P[i]+K[j])) then 2772 2773if (t[Position(P,P[i]+K[j] )] = 1) then 2774Add(KK1, (-1*To[Position(P, P[i])][Position(P,K[j])][2][1]-1*To[Position(P, K[i])][Position(P,P[j])][2][1])/2); 2775Add(KK1, Position(P, P[i]+K[j]) ); 2776Add(KK2, (+1*To[Position(P, P[i])][Position(P,K[j])][2][1]+1*To[Position(P, K[i])][Position(P,P[j])][2][1])/2); 2777Add(KK2, Position(P, K[i]+P[j]) ); 2778Add(KK3, (-1*To[Position(P, P[i])][Position(P,K[j])][2][1]-1*To[Position(P, K[i])][Position(P,P[j])][2][1])/2); 2779Add(KK3, Position(P, K[i]+P[j]) ); 2780Add(KK4, +1*(-1*To[Position(P, P[i])][Position(P,K[j])][2][1]-1*To[Position(P, K[i])][Position(P,P[j])][2][1])/2); 2781Add(KK4, Position(P, P[i]+K[j]) ); 2782else 2783Add(KK1, (-1*To[Position(P, P[i])][Position(P,K[j])][2][1]+1*To[Position(P, K[i])][Position(P,P[j])][2][1])/2); 2784Add(KK1, Position(P, P[i]+K[j]) ); 2785Add(KK2, (+1*To[Position(P, P[i])][Position(P,K[j])][2][1]-1*To[Position(P, K[i])][Position(P,P[j])][2][1])/2); 2786Add(KK2, Position(P, K[i]+P[j]) ); 2787Add(KK3, (-1*To[Position(P, P[i])][Position(P,K[j])][2][1]+1*To[Position(P, K[i])][Position(P,P[j])][2][1])/2); 2788Add(KK3, Position(P, K[i]+P[j]) ); 2789Add(KK4, +1*(-1*To[Position(P, P[i])][Position(P,K[j])][2][1]+1*To[Position(P, K[i])][Position(P,P[j])][2][1])/2); 2790Add(KK4, Position(P, P[i]+K[j]) ); 2791fi; 2792else 2793 if (p+Position(P,K[i]+P[j]) = p+Position(P,P[i]+K[j])) then 2794 2795if (t[Position(P,K[j]+P[i] )] = 1) then 2796Add(KK1, (-1*To[Position(P, P[i])][Position(P,K[j])][2][1]-1*To[Position(P, K[i])][Position(P,P[j])][2][1])/2); 2797Add(KK1, Position(P, P[i]+K[j]) ); 2798Add(KK4, +1*(-1*To[Position(P, P[i])][Position(P,K[j])][2][1]-1*To[Position(P, K[i])][Position(P,P[j])][2][1])/2); 2799Add(KK4, Position(P, P[i]+K[j]) ); 2800else 2801Add(KK2, (+1*To[Position(P, P[i])][Position(P,K[j])][2][1]-1*To[Position(P, K[i])][Position(P,P[j])][2][1])/2); 2802Add(KK2, Position(P, K[i]+P[j]) ); 2803Add(KK3, (-1*To[Position(P, P[i])][Position(P,K[j])][2][1]+1*To[Position(P, K[i])][Position(P,P[j])][2][1])/2); 2804Add(KK3, Position(P, K[i]+P[j]) ); 2805fi; 2806 else #(p+Position(P,K[j]+K[i]) < p+Position(P,P[j]+P[i])) 2807 2808if (t[Position(P,P[i]+K[j] )] = 1) then 2809Add(KK1, (-1*To[Position(P, P[i])][Position(P,K[j])][2][1]-1*To[Position(P, K[i])][Position(P,P[j])][2][1])/2); 2810Add(KK1, Position(P, K[i]+P[j]) ); 2811Add(KK2, -1*(+1*To[Position(P, P[i])][Position(P,K[j])][2][1]+1*To[Position(P, K[i])][Position(P,P[j])][2][1])/2); 2812Add(KK2, Position(P, P[i]+K[j]) ); 2813Add(KK3, -1*(-1*To[Position(P, P[i])][Position(P,K[j])][2][1]-1*To[Position(P, K[i])][Position(P,P[j])][2][1])/2); 2814Add(KK3, Position(P, P[i]+K[j]) ); 2815Add(KK4, +1*(-1*To[Position(P, P[i])][Position(P,K[j])][2][1]-1*To[Position(P, K[i])][Position(P,P[j])][2][1])/2); 2816Add(KK4, Position(P, K[i]+P[j]) ); 2817else 2818Add(KK1, -1*(-1*To[Position(P, P[i])][Position(P,K[j])][2][1]+1*To[Position(P, K[i])][Position(P,P[j])][2][1])/2); 2819Add(KK1, Position(P, K[i]+P[j]) ); 2820Add(KK2, (+1*To[Position(P, P[i])][Position(P,K[j])][2][1]-1*To[Position(P, K[i])][Position(P,P[j])][2][1])/2); 2821Add(KK2, Position(P, P[i]+K[j]) ); 2822Add(KK3, (-1*To[Position(P, P[i])][Position(P,K[j])][2][1]+1*To[Position(P, K[i])][Position(P,P[j])][2][1])/2); 2823Add(KK3, Position(P, P[i]+K[j]) ); 2824Add(KK4, -1*(-1*To[Position(P, P[i])][Position(P,K[j])][2][1]+1*To[Position(P, K[i])][Position(P,P[j])][2][1])/2); 2825Add(KK4, Position(P, K[i]+P[j]) ); 2826fi; 2827 fi; 2828fi; 2829fi; fi; 2830 2831########## 2832 2833if (K[j]-P[i] in P ) then 2834if not (IsEmpty(To[p+Position(P, P[i])][Position(P,K[j])][2])=true) then 2835if (p+Position(P,P[j]-K[i]) > p+Position(P,K[j]-P[i])) then 2836 2837if (t[Position(P,K[j]-P[i] )] = 1) then 2838Add(KK1, (-1*To[p+Position(P, P[i])][Position(P,K[j])][2][1]-1*To[p+Position(P, K[i])][Position(P,P[j])][2][1])/2); 2839Add(KK1, Position(P, K[j]-P[i]) ); 2840Add(KK2, (+1*To[p+Position(P, P[i])][Position(P,K[j])][2][1]+1*To[p+Position(P, K[i])][Position(P,P[j])][2][1])/2); 2841Add(KK2, Position(P, P[j]-K[i]) ); 2842Add(KK3, (-1*To[p+Position(P, P[i])][Position(P,K[j])][2][1]-1*To[p+Position(P, K[i])][Position(P,P[j])][2][1])/2); 2843Add(KK3, Position(P, P[j]-K[i]) ); 2844Add(KK4, +1*(-1*To[p+Position(P, P[i])][Position(P,K[j])][2][1]-1*To[p+Position(P, K[i])][Position(P,P[j])][2][1])/2); 2845Add(KK4, Position(P, K[j]-P[i]) ); 2846else 2847Add(KK1, (-1*To[p+Position(P, P[i])][Position(P,K[j])][2][1]+1*To[p+Position(P, K[i])][Position(P,P[j])][2][1])/2); 2848Add(KK1, Position(P, K[j]-P[i]) ); 2849Add(KK2, (+1*To[p+Position(P, P[i])][Position(P,K[j])][2][1]-1*To[p+Position(P, K[i])][Position(P,P[j])][2][1])/2); 2850Add(KK2, Position(P, P[j]-K[i]) ); 2851Add(KK3, (-1*To[p+Position(P, P[i])][Position(P,K[j])][2][1]+1*To[p+Position(P, K[i])][Position(P,P[j])][2][1])/2); 2852Add(KK3, Position(P, P[j]-K[i]) ); 2853Add(KK4, +1*(-1*To[p+Position(P, P[i])][Position(P,K[j])][2][1]+1*To[p+Position(P, K[i])][Position(P,P[j])][2][1])/2); 2854Add(KK4, Position(P, K[j]-P[i]) ); 2855fi; 2856else 2857 if (p+Position(P,P[j]-K[i]) = p+Position(P,K[j]-P[i])) then 2858 2859if (t[Position(P,K[j]-P[i] )] = 1) then 2860Add(KK1, (-1*To[p+Position(P, P[i])][Position(P,K[j])][2][1]-1*To[p+Position(P, K[i])][Position(P,P[j])][2][1])/2); 2861Add(KK1, Position(P, K[j]-P[i]) ); 2862Add(KK4, +1*(-1*To[p+Position(P, P[i])][Position(P,K[j])][2][1]-1*To[p+Position(P, K[i])][Position(P,P[j])][2][1])/2); 2863Add(KK4, Position(P, K[j]-P[i]) ); 2864else 2865Add(KK2, (+1*To[p+Position(P, P[i])][Position(P,K[j])][2][1]-1*To[p+Position(P, K[i])][Position(P,P[j])][2][1])/2); 2866Add(KK2, Position(P, P[j]-K[i]) ); 2867Add(KK3, (-1*To[p+Position(P, P[i])][Position(P,K[j])][2][1]+1*To[p+Position(P, K[i])][Position(P,P[j])][2][1])/2); 2868Add(KK3, Position(P, P[j]-K[i]) ); 2869fi; 2870 else #(p+Position(P,K[j]+K[i]) < p+Position(P,P[j]+P[i])) 2871 2872if (t[Position(P,K[j]-P[i] )] = 1) then 2873Add(KK1, (-1*To[p+Position(P, P[i])][Position(P,K[j])][2][1]-1*To[p+Position(P, K[i])][Position(P,P[j])][2][1])/2); 2874Add(KK1, Position(P, P[j]-K[i]) ); 2875Add(KK2, -1*(+1*To[p+Position(P, P[i])][Position(P,K[j])][2][1]+1*To[p+Position(P, K[i])][Position(P,P[j])][2][1])/2); 2876Add(KK2, Position(P, K[j]-P[i]) ); 2877Add(KK3, -1*(-1*To[p+Position(P, P[i])][Position(P,K[j])][2][1]-1*To[p+Position(P, K[i])][Position(P,P[j])][2][1])/2); 2878Add(KK3, Position(P, K[j]-P[i]) ); 2879Add(KK4, +1*(-1*To[p+Position(P, P[i])][Position(P,K[j])][2][1]-1*To[p+Position(P, K[i])][Position(P,P[j])][2][1])/2); 2880Add(KK4, Position(P, P[j]-K[i]) ); 2881else 2882Add(KK1, -1*(-1*To[p+Position(P, P[i])][Position(P,K[j])][2][1]+1*To[p+Position(P, K[i])][Position(P,P[j])][2][1])/2); 2883Add(KK1, Position(P, P[j]-K[i]) ); 2884Add(KK2, (+1*To[p+Position(P, P[i])][Position(P,K[j])][2][1]-1*To[p+Position(P, K[i])][Position(P,P[j])][2][1])/2); 2885Add(KK2, Position(P, K[j]-P[i]) ); 2886Add(KK3, (-1*To[p+Position(P, P[i])][Position(P,K[j])][2][1]+1*To[p+Position(P, K[i])][Position(P,P[j])][2][1])/2); 2887Add(KK3, Position(P, K[j]-P[i]) ); 2888Add(KK4, -1*(-1*To[p+Position(P, P[i])][Position(P,K[j])][2][1]+1*To[p+Position(P, K[i])][Position(P,P[j])][2][1])/2); 2889Add(KK4, Position(P, P[j]-K[i]) ); 2890fi; 2891 fi; 2892fi; 2893fi; fi; 2894 2895#################### 2896 2897else # ovvero t[j]=-1 2898 2899######################### 2900 2901if (P[i]+P[j] in P ) then #qui so che aplha+beta < phi_aplha+phi_beta quindi sono nel caso sicuro 2902if not (IsEmpty(To[Position(P, P[i])][Position(P,P[j])][2])=true) then 2903if (p+Position(P,K[j]+K[i]) > p+Position(P,P[j]+P[i])) then 2904 2905if (t[Position(P,P[j]+P[i] )] = 1) then 2906Add(KK1, (-1*To[Position(P, P[i])][Position(P,P[j])][2][1]+1*To[Position(P, K[i])][Position(P,K[j])][2][1])/2); 2907Add(KK1, Position(P, P[i]+P[j]) ); 2908Add(KK2, (-1*To[Position(P, P[i])][Position(P,P[j])][2][1]+1*To[Position(P, K[i])][Position(P,K[j])][2][1])/2); 2909Add(KK2, Position(P, K[i]+K[j]) ); 2910Add(KK3, (-1*To[Position(P, P[i])][Position(P,P[j])][2][1]+1*To[Position(P, K[i])][Position(P,K[j])][2][1])/2); 2911Add(KK3, Position(P, K[i]+K[j]) ); 2912Add(KK4, +1*(+1*To[Position(P, P[i])][Position(P,P[j])][2][1]-1*To[Position(P, K[i])][Position(P,K[j])][2][1])/2); 2913Add(KK4, Position(P, P[i]+P[j]) ); 2914else 2915Add(KK1, (-1*To[Position(P, P[i])][Position(P,P[j])][2][1]-1*To[Position(P, K[i])][Position(P,K[j])][2][1])/2); 2916Add(KK1, Position(P, P[i]+P[j]) ); 2917Add(KK2, (-1*To[Position(P, P[i])][Position(P,P[j])][2][1]-1*To[Position(P, K[i])][Position(P,K[j])][2][1])/2); 2918Add(KK2, Position(P, K[i]+K[j]) ); 2919Add(KK3, (-1*To[Position(P, P[i])][Position(P,P[j])][2][1]-1*To[Position(P, K[i])][Position(P,K[j])][2][1])/2); 2920Add(KK3, Position(P, K[i]+K[j]) ); 2921Add(KK4, (+1*To[Position(P, P[i])][Position(P,P[j])][2][1]+1*To[Position(P, K[i])][Position(P,K[j])][2][1])/2); 2922Add(KK4, Position(P, P[i]+P[j]) ); 2923fi; 2924else 2925 if (p+Position(P,K[j]+K[i]) = p+Position(P,P[j]+P[i])) then 2926 2927if (t[Position(P,P[j]+P[i] )] = 1) then 2928Add(KK1, (-1*To[Position(P, P[i])][Position(P,P[j])][2][1]+1*To[Position(P, K[i])][Position(P,K[j])][2][1])/2); 2929Add(KK1, Position(P, P[i]+P[j]) ); 2930Add(KK4, +1*(+1*To[Position(P, P[i])][Position(P,P[j])][2][1]-1*To[Position(P, K[i])][Position(P,K[j])][2][1])/2); 2931Add(KK4, Position(P, P[i]+P[j]) ); 2932else 2933Add(KK2, (-1*To[Position(P, P[i])][Position(P,P[j])][2][1]-1*To[Position(P, K[i])][Position(P,K[j])][2][1])/2); 2934Add(KK2, Position(P, K[i]+K[j]) ); 2935Add(KK3, (-1*To[Position(P, P[i])][Position(P,P[j])][2][1]-1*To[Position(P, K[i])][Position(P,K[j])][2][1])/2); 2936Add(KK3, Position(P, K[i]+K[j]) ); 2937fi; 2938 else #(p+Position(P,K[j]+K[i]) < p+Position(P,P[j]+P[i])) 2939 2940if (t[Position(P,P[j]+P[i] )] = 1) then 2941Add(KK1, (-1*To[Position(P, P[i])][Position(P,P[j])][2][1]+1*To[Position(P, K[i])][Position(P,K[j])][2][1])/2); 2942Add(KK1, Position(P, K[j]+K[i]) ); 2943Add(KK2, -1*(-1*To[Position(P, P[i])][Position(P,P[j])][2][1]+1*To[Position(P, K[i])][Position(P,K[j])][2][1])/2); 2944Add(KK2, Position(P, P[i]+P[j]) ); 2945Add(KK3, -1*(-1*To[Position(P, P[i])][Position(P,P[j])][2][1]+1*To[Position(P, K[i])][Position(P,K[j])][2][1])/2); 2946Add(KK3, Position(P, P[i]+P[j]) ); 2947Add(KK4, +1*(+1*To[Position(P, P[i])][Position(P,P[j])][2][1]-1*To[Position(P, K[i])][Position(P,K[j])][2][1])/2); 2948Add(KK4, Position(P,K[j]+K[i]) ); 2949else 2950Add(KK1, -1*(-1*To[Position(P, P[i])][Position(P,P[j])][2][1]-1*To[Position(P, K[i])][Position(P,K[j])][2][1])/2); 2951Add(KK1, Position(P, K[j]+K[i]) ); 2952Add(KK2, (-1*To[Position(P, P[i])][Position(P,P[j])][2][1]-1*To[Position(P, K[i])][Position(P,K[j])][2][1])/2); 2953Add(KK2, Position(P, P[i]+P[j]) ); 2954Add(KK3, (-1*To[Position(P, P[i])][Position(P,P[j])][2][1]-1*To[Position(P, K[i])][Position(P,K[j])][2][1])/2); 2955Add(KK3, Position(P, P[i]+P[j]) ); 2956Add(KK4, -1*(+1*To[Position(P, P[i])][Position(P,P[j])][2][1]+1*To[Position(P, K[i])][Position(P,K[j])][2][1])/2); 2957Add(KK4, Position(P, K[j]+K[i]) ); 2958fi; 2959 fi; 2960fi; 2961fi; fi; 2962 2963############### 2964 2965if (P[j]-P[i] in P ) then 2966if not (IsEmpty(To[p+Position(P, P[i])][Position(P,P[j])][2])=true) then 2967if (p+Position(P,K[j]-K[i]) > p+Position(P,P[j]-P[i])) then 2968 2969if (t[Position(P,P[j]-P[i] )] = 1) then 2970Add(KK1, (-1*To[p+Position(P, P[i])][Position(P,P[j])][2][1]+1*To[p+Position(P, K[i])][Position(P,K[j])][2][1])/2); 2971Add(KK1, Position(P, P[j]-P[i]) ); 2972Add(KK2, (-1*To[p+Position(P, P[i])][Position(P,P[j])][2][1]+1*To[p+Position(P, K[i])][Position(P,K[j])][2][1])/2); 2973Add(KK2, Position(P, K[j]-K[i]) ); 2974Add(KK3, (-1*To[p+Position(P, P[i])][Position(P,P[j])][2][1]+1*To[p+Position(P, K[i])][Position(P,K[j])][2][1])/2); 2975Add(KK3, Position(P, K[j]-K[i]) ); 2976Add(KK4, +1*(+1*To[p+Position(P, P[i])][Position(P,P[j])][2][1]-1*To[p+Position(P, K[i])][Position(P,K[j])][2][1])/2); 2977Add(KK4, Position(P, P[j]-P[i]) ); 2978else 2979Add(KK1, (-1*To[p+Position(P, P[i])][Position(P,P[j])][2][1]-1*To[p+Position(P, K[i])][Position(P,K[j])][2][1])/2); 2980Add(KK1, Position(P, P[j]-P[i]) ); 2981Add(KK2, (-1*To[p+Position(P, P[i])][Position(P,P[j])][2][1]-1*To[p+Position(P, K[i])][Position(P,K[j])][2][1])/2); 2982Add(KK2, Position(P, K[j]-K[i]) ); 2983Add(KK3, (-1*To[p+Position(P, P[i])][Position(P,P[j])][2][1]-1*To[p+Position(P, K[i])][Position(P,K[j])][2][1])/2); 2984Add(KK3, Position(P, K[j]-K[i]) ); 2985Add(KK4, +1*(+1*To[p+Position(P, P[i])][Position(P,P[j])][2][1]+1*To[p+Position(P, K[i])][Position(P,K[j])][2][1])/2); 2986Add(KK4, Position(P, P[j]-P[i]) ); 2987fi; 2988else 2989 if (p+Position(P,K[j]-K[i]) = p+Position(P,P[j]-P[i])) then 2990 2991if (t[Position(P,P[j]-P[i] )] = 1) then 2992Add(KK1, (-1*To[p+Position(P, P[i])][Position(P,P[j])][2][1]+1*To[p+Position(P, K[i])][Position(P,K[j])][2][1])/2); 2993Add(KK1, Position(P, P[j]-P[i]) ); 2994Add(KK4, +1*(+1*To[p+Position(P, P[i])][Position(P,P[j])][2][1]-1*To[p+Position(P, K[i])][Position(P,K[j])][2][1])/2); 2995Add(KK4, Position(P, P[j]-P[i]) ); 2996else 2997Add(KK2, (-1*To[p+Position(P, P[i])][Position(P,P[j])][2][1]-1*To[p+Position(P, K[i])][Position(P,K[j])][2][1])/2); 2998Add(KK2, Position(P, K[j]-K[i]) ); 2999Add(KK3, (-1*To[p+Position(P, P[i])][Position(P,P[j])][2][1]-1*To[p+Position(P, K[i])][Position(P,K[j])][2][1])/2); 3000Add(KK3, Position(P, K[j]-K[i]) ); 3001fi; 3002 else #(p+Position(P,K[j]+K[i]) < p+Position(P,P[j]+P[i])) 3003 3004if (t[Position(P,P[j]-P[i] )] = 1) then 3005Add(KK1, (-1*To[p+Position(P, P[i])][Position(P,P[j])][2][1]+1*To[p+Position(P, K[i])][Position(P,K[j])][2][1])/2); 3006Add(KK1, Position(P, K[j]-K[i]) ); 3007Add(KK2, -1*(-1*To[p+Position(P, P[i])][Position(P,P[j])][2][1]+1*To[p+Position(P, K[i])][Position(P,K[j])][2][1])/2); 3008Add(KK2, Position(P, P[j]-P[i]) ); 3009Add(KK3, -1*(-1*To[p+Position(P, P[i])][Position(P,P[j])][2][1]+1*To[p+Position(P, K[i])][Position(P,K[j])][2][1])/2); 3010Add(KK3, Position(P, P[j]-P[i]) ); 3011Add(KK4, +1*(+1*To[p+Position(P, P[i])][Position(P,P[j])][2][1]-1*To[p+Position(P, K[i])][Position(P,K[j])][2][1])/2); 3012Add(KK4, Position(P, K[j]-K[i]) ); 3013else 3014Add(KK1, -1*(-1*To[p+Position(P, P[i])][Position(P,P[j])][2][1]-1*To[p+Position(P, K[i])][Position(P,K[j])][2][1])/2); 3015Add(KK1, Position(P, K[j]-K[i]) ); 3016Add(KK2, (-1*To[p+Position(P, P[i])][Position(P,P[j])][2][1]-1*To[p+Position(P, K[i])][Position(P,K[j])][2][1])/2); 3017Add(KK2, Position(P, P[j]-P[i]) ); 3018Add(KK3, (-1*To[p+Position(P, P[i])][Position(P,P[j])][2][1]-1*To[p+Position(P, K[i])][Position(P,K[j])][2][1])/2); 3019Add(KK3, Position(P, P[j]-P[i]) ); 3020Add(KK4, -1*(+1*To[p+Position(P, P[i])][Position(P,P[j])][2][1]+1*To[p+Position(P, K[i])][Position(P,K[j])][2][1])/2); 3021Add(KK4, Position(P, K[j]-K[i]) ); 3022fi; 3023 fi; 3024fi; 3025fi; fi; 3026 3027########## 3028 3029if (P[i]+K[j] in P ) then 3030if not (IsEmpty(To[Position(P, P[i])][Position(P,K[j])][2])=true) then 3031if (p+Position(P,K[i]+P[j]) > p+Position(P,P[i]+K[j])) then 3032 3033if (t[Position(P,P[i]+K[j] )] = 1) then 3034Add(KK1, (+1*To[Position(P, P[i])][Position(P,K[j])][2][1]-1*To[Position(P, K[i])][Position(P,P[j])][2][1])/2); 3035Add(KK1, Position(P, P[i]+K[j]) ); 3036Add(KK2, (-1*To[Position(P, P[i])][Position(P,K[j])][2][1]+1*To[Position(P, K[i])][Position(P,P[j])][2][1])/2); 3037Add(KK2, Position(P, K[i]+P[j]) ); 3038Add(KK3, (+1*To[Position(P, P[i])][Position(P,K[j])][2][1]-1*To[Position(P, K[i])][Position(P,P[j])][2][1])/2); 3039Add(KK3, Position(P, K[i]+P[j]) ); 3040Add(KK4, +1*(+1*To[Position(P, P[i])][Position(P,K[j])][2][1]-1*To[Position(P, K[i])][Position(P,P[j])][2][1])/2); 3041Add(KK4, Position(P, P[i]+K[j]) ); 3042else 3043Add(KK1, (+1*To[Position(P, P[i])][Position(P,K[j])][2][1]+1*To[Position(P, K[i])][Position(P,P[j])][2][1])/2); 3044Add(KK1, Position(P, P[i]+K[j]) ); 3045Add(KK2, (-1*To[Position(P, P[i])][Position(P,K[j])][2][1]-1*To[Position(P, K[i])][Position(P,P[j])][2][1])/2); 3046Add(KK2, Position(P, K[i]+P[j]) ); 3047Add(KK3, (+1*To[Position(P, P[i])][Position(P,K[j])][2][1]+1*To[Position(P, K[i])][Position(P,P[j])][2][1])/2); 3048Add(KK3, Position(P, K[i]+P[j]) ); 3049Add(KK4, +1*(+1*To[Position(P, P[i])][Position(P,K[j])][2][1]+1*To[Position(P, K[i])][Position(P,P[j])][2][1])/2); 3050Add(KK4, Position(P, P[i]+K[j]) ); 3051fi; 3052else 3053 if (p+Position(P,K[i]+P[j]) = p+Position(P,P[i]+K[j])) then 3054 3055if (t[Position(P,K[j]+P[i] )] = 1) then 3056Add(KK1, (+1*To[Position(P, P[i])][Position(P,K[j])][2][1]-1*To[Position(P, K[i])][Position(P,P[j])][2][1])/2); 3057Add(KK1, Position(P, P[i]+K[j]) ); 3058Add(KK4, +1*(+1*To[Position(P, P[i])][Position(P,K[j])][2][1]-1*To[Position(P, K[i])][Position(P,P[j])][2][1])/2); 3059Add(KK4, Position(P, P[i]+K[j]) ); 3060else 3061Add(KK2, (-1*To[Position(P, P[i])][Position(P,K[j])][2][1]-1*To[Position(P, K[i])][Position(P,P[j])][2][1])/2); 3062Add(KK2, Position(P, K[i]+P[j]) ); 3063Add(KK3, (+1*To[Position(P, P[i])][Position(P,K[j])][2][1]+1*To[Position(P, K[i])][Position(P,P[j])][2][1])/2); 3064Add(KK3, Position(P, K[i]+P[j]) ); 3065fi; 3066 else #(p+Position(P,K[j]+K[i]) < p+Position(P,P[j]+P[i])) 3067 3068if (t[Position(P,P[i]+K[j] )] = 1) then 3069Add(KK1, (+1*To[Position(P, P[i])][Position(P,K[j])][2][1]-1*To[Position(P, K[i])][Position(P,P[j])][2][1])/2); 3070Add(KK1, Position(P, K[i]+P[j]) ); 3071Add(KK2, -1*(-1*To[Position(P, P[i])][Position(P,K[j])][2][1]+1*To[Position(P, K[i])][Position(P,P[j])][2][1])/2); 3072Add(KK2, Position(P, P[i]+K[j]) ); 3073Add(KK3, -1*(+1*To[Position(P, P[i])][Position(P,K[j])][2][1]-1*To[Position(P, K[i])][Position(P,P[j])][2][1])/2); 3074Add(KK3, Position(P, P[i]+K[j]) ); 3075Add(KK4, +1*(+1*To[Position(P, P[i])][Position(P,K[j])][2][1]-1*To[Position(P, K[i])][Position(P,P[j])][2][1])/2); 3076Add(KK4, Position(P, K[i]+P[j]) ); 3077else 3078Add(KK1, -1*(+1*To[Position(P, P[i])][Position(P,K[j])][2][1]+1*To[Position(P, K[i])][Position(P,P[j])][2][1])/2); 3079Add(KK1, Position(P, K[i]+P[j]) ); 3080Add(KK2, (-1*To[Position(P, P[i])][Position(P,K[j])][2][1]-1*To[Position(P, K[i])][Position(P,P[j])][2][1])/2); 3081Add(KK2, Position(P, P[i]+K[j]) ); 3082Add(KK3, (+1*To[Position(P, P[i])][Position(P,K[j])][2][1]+1*To[Position(P, K[i])][Position(P,P[j])][2][1])/2); 3083Add(KK3, Position(P, P[i]+K[j]) ); 3084Add(KK4, -1*(+1*To[Position(P, P[i])][Position(P,K[j])][2][1]+1*To[Position(P, K[i])][Position(P,P[j])][2][1])/2); 3085Add(KK4, Position(P, K[i]+P[j]) ); 3086fi; 3087 fi; 3088fi; 3089fi; fi; 3090 3091############# 3092 3093if (K[j]-P[i] in P ) then 3094if not (IsEmpty(To[p+Position(P, P[i])][Position(P,K[j])][2])=true) then 3095if (p+Position(P,P[j]-K[i]) > p+Position(P,K[j]-P[i])) then 3096 3097if (t[Position(P,K[j]-P[i] )] = 1) then 3098Add(KK1, (+1*To[p+Position(P, P[i])][Position(P,K[j])][2][1]-1*To[p+Position(P, K[i])][Position(P,P[j])][2][1])/2); 3099Add(KK1, Position(P, K[j]-P[i]) ); 3100Add(KK2, (-1*To[p+Position(P, P[i])][Position(P,K[j])][2][1]+1*To[p+Position(P, K[i])][Position(P,P[j])][2][1])/2); 3101Add(KK2, Position(P, P[j]-K[i]) ); 3102Add(KK3, (+1*To[p+Position(P, P[i])][Position(P,K[j])][2][1]-1*To[p+Position(P, K[i])][Position(P,P[j])][2][1])/2); 3103Add(KK3, Position(P, P[j]-K[i]) ); 3104Add(KK4, +1*(+1*To[p+Position(P, P[i])][Position(P,K[j])][2][1]-1*To[p+Position(P, K[i])][Position(P,P[j])][2][1])/2); 3105Add(KK4, Position(P, K[j]-P[i]) ); 3106else 3107Add(KK1, (+1*To[p+Position(P, P[i])][Position(P,K[j])][2][1]+1*To[p+Position(P, K[i])][Position(P,P[j])][2][1])/2); 3108Add(KK1, Position(P, K[j]-P[i]) ); 3109Add(KK2, (-1*To[p+Position(P, P[i])][Position(P,K[j])][2][1]-1*To[p+Position(P, K[i])][Position(P,P[j])][2][1])/2); 3110Add(KK2, Position(P, P[j]-K[i]) ); 3111Add(KK3, (+1*To[p+Position(P, P[i])][Position(P,K[j])][2][1]+1*To[p+Position(P, K[i])][Position(P,P[j])][2][1])/2); 3112Add(KK3, Position(P, P[j]-K[i]) ); 3113Add(KK4, +1*(+1*To[p+Position(P, P[i])][Position(P,K[j])][2][1]+1*To[p+Position(P, K[i])][Position(P,P[j])][2][1])/2); 3114Add(KK4, Position(P, K[j]-P[i]) ); 3115fi; 3116else 3117 if (p+Position(P,P[j]-K[i]) = p+Position(P,K[j]-P[i])) then 3118 3119if (t[Position(P,K[j]-P[i] )] = 1) then 3120Add(KK1, (+1*To[p+Position(P, P[i])][Position(P,K[j])][2][1]-1*To[p+Position(P, K[i])][Position(P,P[j])][2][1])/2); 3121Add(KK1, Position(P, K[j]-P[i]) ); 3122Add(KK4, +1*(+1*To[p+Position(P, P[i])][Position(P,K[j])][2][1]-1*To[p+Position(P, K[i])][Position(P,P[j])][2][1])/2); 3123Add(KK4, Position(P, K[j]-P[i]) ); 3124else 3125Add(KK2, (-1*To[p+Position(P, P[i])][Position(P,K[j])][2][1]-1*To[p+Position(P, K[i])][Position(P,P[j])][2][1])/2); 3126Add(KK2, Position(P, P[j]-K[i]) ); 3127Add(KK3, (+1*To[p+Position(P, P[i])][Position(P,K[j])][2][1]+1*To[p+Position(P, K[i])][Position(P,P[j])][2][1])/2); 3128Add(KK3, Position(P, P[j]-K[i]) ); 3129fi; 3130 else #(p+Position(P,K[j]+K[i]) < p+Position(P,P[j]+P[i])) 3131 3132if (t[Position(P,K[j]-P[i] )] = 1) then 3133Add(KK1, (+1*To[p+Position(P, P[i])][Position(P,K[j])][2][1]-1*To[p+Position(P, K[i])][Position(P,P[j])][2][1])/2); 3134Add(KK1, Position(P, P[j]-K[i]) ); 3135Add(KK2, -1*(-1*To[p+Position(P, P[i])][Position(P,K[j])][2][1]+1*To[p+Position(P, K[i])][Position(P,P[j])][2][1])/2); 3136Add(KK2, Position(P, K[j]-P[i]) ); 3137Add(KK3, -1*(+1*To[p+Position(P, P[i])][Position(P,K[j])][2][1]-1*To[p+Position(P, K[i])][Position(P,P[j])][2][1])/2); 3138Add(KK3, Position(P, K[j]-P[i]) ); 3139Add(KK4, +1*(+1*To[p+Position(P, P[i])][Position(P,K[j])][2][1]-1*To[p+Position(P, K[i])][Position(P,P[j])][2][1])/2); 3140Add(KK4, Position(P, P[j]-K[i]) ); 3141else 3142Add(KK1, -1*(+1*To[p+Position(P, P[i])][Position(P,K[j])][2][1]+1*To[p+Position(P, K[i])][Position(P,P[j])][2][1])/2); 3143Add(KK1, Position(P, P[j]-K[i]) ); 3144Add(KK2, (-1*To[p+Position(P, P[i])][Position(P,K[j])][2][1]-1*To[p+Position(P, K[i])][Position(P,P[j])][2][1])/2); 3145Add(KK2, Position(P, K[j]-P[i]) ); 3146Add(KK3, (+1*To[p+Position(P, P[i])][Position(P,K[j])][2][1]+1*To[p+Position(P, K[i])][Position(P,P[j])][2][1])/2); 3147Add(KK3, Position(P, K[j]-P[i]) ); 3148Add(KK4, -1*(+1*To[p+Position(P, P[i])][Position(P,K[j])][2][1]+1*To[p+Position(P, K[i])][Position(P,P[j])][2][1])/2); 3149Add(KK4, Position(P, P[j]-K[i]) ); 3150fi; 3151 fi; 3152fi; 3153fi; fi; 3154 3155fi; 3156 3157########################à 3158 3159else #t[i]=-1 3160if (t[j]=1) then 3161 3162######################### 3163 3164if (P[i]+P[j] in P ) then #qui so che aplha+beta < phi_aplha+phi_beta quindi sono nel caso sicuro 3165if not (IsEmpty(To[Position(P, P[i])][Position(P,P[j])][2])=true) then 3166if (p+Position(P,K[j]+K[i]) > p+Position(P,P[j]+P[i])) then 3167 3168if (t[Position(P,P[j]+P[i] )] = 1) then 3169Add(KK1, (-1*To[Position(P, P[i])][Position(P,P[j])][2][1]+1*To[Position(P, K[i])][Position(P,K[j])][2][1])/2); 3170Add(KK1, Position(P, P[i]+P[j]) ); 3171Add(KK2, (-1*To[Position(P, P[i])][Position(P,P[j])][2][1]+1*To[Position(P, K[i])][Position(P,K[j])][2][1])/2); 3172Add(KK2, Position(P, K[i]+K[j]) ); 3173Add(KK3, (-1*To[Position(P, P[i])][Position(P,P[j])][2][1]+1*To[Position(P, K[i])][Position(P,K[j])][2][1])/2); 3174Add(KK3, Position(P, K[i]+K[j]) ); 3175Add(KK4, +1*(+1*To[Position(P, P[i])][Position(P,P[j])][2][1]-1*To[Position(P, K[i])][Position(P,K[j])][2][1])/2); 3176Add(KK4, Position(P, P[i]+P[j]) ); 3177else 3178Add(KK1, (-1*To[Position(P, P[i])][Position(P,P[j])][2][1]-1*To[Position(P, K[i])][Position(P,K[j])][2][1])/2); 3179Add(KK1, Position(P, P[i]+P[j]) ); 3180Add(KK2, (-1*To[Position(P, P[i])][Position(P,P[j])][2][1]-1*To[Position(P, K[i])][Position(P,K[j])][2][1])/2); 3181Add(KK2, Position(P, K[i]+K[j]) ); 3182Add(KK3, (-1*To[Position(P, P[i])][Position(P,P[j])][2][1]-1*To[Position(P, K[i])][Position(P,K[j])][2][1])/2); 3183Add(KK3, Position(P, K[i]+K[j]) ); 3184Add(KK4, (+1*To[Position(P, P[i])][Position(P,P[j])][2][1]+1*To[Position(P, K[i])][Position(P,K[j])][2][1])/2); 3185Add(KK4, Position(P, P[i]+P[j]) ); 3186fi; 3187else 3188 if (p+Position(P,K[j]+K[i]) = p+Position(P,P[j]+P[i])) then 3189 3190if (t[Position(P,P[j]+P[i] )] = 1) then 3191Add(KK1, (-1*To[Position(P, P[i])][Position(P,P[j])][2][1]+1*To[Position(P, K[i])][Position(P,K[j])][2][1])/2); 3192Add(KK1, Position(P, P[i]+P[j]) ); 3193Add(KK4, +1*(+1*To[Position(P, P[i])][Position(P,P[j])][2][1]-1*To[Position(P, K[i])][Position(P,K[j])][2][1])/2); 3194Add(KK4, Position(P, P[i]+P[j]) ); 3195else 3196Add(KK2, (-1*To[Position(P, P[i])][Position(P,P[j])][2][1]-1*To[Position(P, K[i])][Position(P,K[j])][2][1])/2); 3197Add(KK2, Position(P, K[i]+K[j]) ); 3198Add(KK3, (-1*To[Position(P, P[i])][Position(P,P[j])][2][1]-1*To[Position(P, K[i])][Position(P,K[j])][2][1])/2); 3199Add(KK3, Position(P, K[i]+K[j]) ); 3200fi; 3201 else #(p+Position(P,K[j]+K[i]) < p+Position(P,P[j]+P[i])) 3202 3203if (t[Position(P,P[j]+P[i] )] = 1) then 3204Add(KK1, (-1*To[Position(P, P[i])][Position(P,P[j])][2][1]+1*To[Position(P, K[i])][Position(P,K[j])][2][1])/2); 3205Add(KK1, Position(P, K[j]+K[i]) ); 3206Add(KK2, -1*(-1*To[Position(P, P[i])][Position(P,P[j])][2][1]+1*To[Position(P, K[i])][Position(P,K[j])][2][1])/2); 3207Add(KK2, Position(P, P[i]+P[j]) ); 3208Add(KK3, -1*(-1*To[Position(P, P[i])][Position(P,P[j])][2][1]+1*To[Position(P, K[i])][Position(P,K[j])][2][1])/2); 3209Add(KK3, Position(P, P[i]+P[j]) ); 3210Add(KK4, +1*(+1*To[Position(P, P[i])][Position(P,P[j])][2][1]-1*To[Position(P, K[i])][Position(P,K[j])][2][1])/2); 3211Add(KK4, Position(P,K[j]+K[i]) ); 3212else 3213Add(KK1, -1*(-1*To[Position(P, P[i])][Position(P,P[j])][2][1]-1*To[Position(P, K[i])][Position(P,K[j])][2][1])/2); 3214Add(KK1, Position(P, K[j]+K[i]) ); 3215Add(KK2, (-1*To[Position(P, P[i])][Position(P,P[j])][2][1]-1*To[Position(P, K[i])][Position(P,K[j])][2][1])/2); 3216Add(KK2, Position(P, P[i]+P[j]) ); 3217Add(KK3, (-1*To[Position(P, P[i])][Position(P,P[j])][2][1]-1*To[Position(P, K[i])][Position(P,K[j])][2][1])/2); 3218Add(KK3, Position(P, P[i]+P[j]) ); 3219Add(KK4, -1*(+1*To[Position(P, P[i])][Position(P,P[j])][2][1]+1*To[Position(P, K[i])][Position(P,K[j])][2][1])/2); 3220Add(KK4, Position(P, K[j]+K[i]) ); 3221fi; 3222 fi; 3223fi; 3224fi; fi; 3225 3226############### 3227 3228if (P[j]-P[i] in P ) then 3229if not (IsEmpty(To[p+Position(P, P[i])][Position(P,P[j])][2])=true) then 3230if (p+Position(P,K[j]-K[i]) > p+Position(P,P[j]-P[i])) then 3231 3232if (t[Position(P,P[j]-P[i] )] = 1) then 3233Add(KK1, (-1*To[p+Position(P, P[i])][Position(P,P[j])][2][1]+1*To[p+Position(P, K[i])][Position(P,K[j])][2][1])/2); 3234Add(KK1, Position(P, P[j]-P[i]) ); 3235Add(KK2, (-1*To[p+Position(P, P[i])][Position(P,P[j])][2][1]+1*To[p+Position(P, K[i])][Position(P,K[j])][2][1])/2); 3236Add(KK2, Position(P, K[j]-K[i]) ); 3237Add(KK3, (-1*To[p+Position(P, P[i])][Position(P,P[j])][2][1]+1*To[p+Position(P, K[i])][Position(P,K[j])][2][1])/2); 3238Add(KK3, Position(P, K[j]-K[i]) ); 3239Add(KK4, +1*(+1*To[p+Position(P, P[i])][Position(P,P[j])][2][1]-1*To[p+Position(P, K[i])][Position(P,K[j])][2][1])/2); 3240Add(KK4, Position(P, P[j]-P[i]) ); 3241else 3242Add(KK1, (-1*To[p+Position(P, P[i])][Position(P,P[j])][2][1]-1*To[p+Position(P, K[i])][Position(P,K[j])][2][1])/2); 3243Add(KK1, Position(P, P[j]-P[i]) ); 3244Add(KK2, (-1*To[p+Position(P, P[i])][Position(P,P[j])][2][1]-1*To[p+Position(P, K[i])][Position(P,K[j])][2][1])/2); 3245Add(KK2, Position(P, K[j]-K[i]) ); 3246Add(KK3, (-1*To[p+Position(P, P[i])][Position(P,P[j])][2][1]-1*To[p+Position(P, K[i])][Position(P,K[j])][2][1])/2); 3247Add(KK3, Position(P, K[j]-K[i]) ); 3248Add(KK4, +1*(+1*To[p+Position(P, P[i])][Position(P,P[j])][2][1]+1*To[p+Position(P, K[i])][Position(P,K[j])][2][1])/2); 3249Add(KK4, Position(P, P[j]-P[i]) ); 3250fi; 3251 3252else 3253 if (p+Position(P,K[j]-K[i]) = p+Position(P,P[j]-P[i])) then 3254 3255if (t[Position(P,P[j]-P[i] )] = 1) then 3256Add(KK1, (-1*To[p+Position(P, P[i])][Position(P,P[j])][2][1]+1*To[p+Position(P, K[i])][Position(P,K[j])][2][1])/2); 3257Add(KK1, Position(P, P[j]-P[i]) ); 3258Add(KK4, +1*(+1*To[p+Position(P, P[i])][Position(P,P[j])][2][1]-1*To[p+Position(P, K[i])][Position(P,K[j])][2][1])/2); 3259Add(KK4, Position(P, P[j]-P[i]) ); 3260else 3261Add(KK2, (-1*To[p+Position(P, P[i])][Position(P,P[j])][2][1]-1*To[p+Position(P, K[i])][Position(P,K[j])][2][1])/2); 3262Add(KK2, Position(P, K[j]-K[i]) ); 3263Add(KK3, (-1*To[p+Position(P, P[i])][Position(P,P[j])][2][1]-1*To[p+Position(P, K[i])][Position(P,K[j])][2][1])/2); 3264Add(KK3, Position(P, K[j]-K[i]) ); 3265fi; 3266 else #(p+Position(P,K[j]+K[i]) < p+Position(P,P[j]+P[i])) 3267 3268if (t[Position(P,P[j]-P[i] )] = 1) then 3269Add(KK1, (-1*To[p+Position(P, P[i])][Position(P,P[j])][2][1]+1*To[p+Position(P, K[i])][Position(P,K[j])][2][1])/2); 3270Add(KK1, Position(P, K[j]-K[i]) ); 3271Add(KK2, -1*(-1*To[p+Position(P, P[i])][Position(P,P[j])][2][1]+1*To[p+Position(P, K[i])][Position(P,K[j])][2][1])/2); 3272Add(KK2, Position(P, P[j]-P[i]) ); 3273Add(KK3, -1*(-1*To[p+Position(P, P[i])][Position(P,P[j])][2][1]+1*To[p+Position(P, K[i])][Position(P,K[j])][2][1])/2); 3274Add(KK3, Position(P, P[j]-P[i]) ); 3275Add(KK4, +1*(+1*To[p+Position(P, P[i])][Position(P,P[j])][2][1]-1*To[p+Position(P, K[i])][Position(P,K[j])][2][1])/2); 3276Add(KK4, Position(P, K[j]-K[i]) ); 3277else 3278Add(KK1, -1*(-1*To[p+Position(P, P[i])][Position(P,P[j])][2][1]-1*To[p+Position(P, K[i])][Position(P,K[j])][2][1])/2); 3279Add(KK1, Position(P, K[j]-K[i]) ); 3280Add(KK2, (-1*To[p+Position(P, P[i])][Position(P,P[j])][2][1]-1*To[p+Position(P, K[i])][Position(P,K[j])][2][1])/2); 3281Add(KK2, Position(P, P[j]-P[i]) ); 3282Add(KK3, (-1*To[p+Position(P, P[i])][Position(P,P[j])][2][1]-1*To[p+Position(P, K[i])][Position(P,K[j])][2][1])/2); 3283Add(KK3, Position(P, P[j]-P[i]) ); 3284Add(KK4, -1*(+1*To[p+Position(P, P[i])][Position(P,P[j])][2][1]+1*To[p+Position(P, K[i])][Position(P,K[j])][2][1])/2); 3285Add(KK4, Position(P, K[j]-K[i]) ); 3286fi; 3287 fi; 3288fi; 3289fi; fi; 3290 3291############# 3292 3293if (P[i]+K[j] in P ) then 3294if not (IsEmpty(To[Position(P, P[i])][Position(P,K[j])][2])=true) then 3295if (p+Position(P,K[i]+P[j]) > p+Position(P,P[i]+K[j])) then 3296 3297if (t[Position(P,P[i]+K[j] )] = 1) then 3298Add(KK1, (-1*To[Position(P, P[i])][Position(P,K[j])][2][1]+1*To[Position(P, K[i])][Position(P,P[j])][2][1])/2); 3299Add(KK1, Position(P, P[i]+K[j]) ); 3300Add(KK2, (+1*To[Position(P, P[i])][Position(P,K[j])][2][1]-1*To[Position(P, K[i])][Position(P,P[j])][2][1])/2); 3301Add(KK2, Position(P, K[i]+P[j]) ); 3302Add(KK3, (-1*To[Position(P, P[i])][Position(P,K[j])][2][1]+1*To[Position(P, K[i])][Position(P,P[j])][2][1])/2); 3303Add(KK3, Position(P, K[i]+P[j]) ); 3304Add(KK4, +1*(-1*To[Position(P, P[i])][Position(P,K[j])][2][1]+1*To[Position(P, K[i])][Position(P,P[j])][2][1])/2); 3305Add(KK4, Position(P, P[i]+K[j]) ); 3306else 3307Add(KK1, (-1*To[Position(P, P[i])][Position(P,K[j])][2][1]-1*To[Position(P, K[i])][Position(P,P[j])][2][1])/2); 3308Add(KK1, Position(P, P[i]+K[j]) ); 3309Add(KK2, (+1*To[Position(P, P[i])][Position(P,K[j])][2][1]+1*To[Position(P, K[i])][Position(P,P[j])][2][1])/2); 3310Add(KK2, Position(P, K[i]+P[j]) ); 3311Add(KK3, (-1*To[Position(P, P[i])][Position(P,K[j])][2][1]-1*To[Position(P, K[i])][Position(P,P[j])][2][1])/2); 3312Add(KK3, Position(P, K[i]+P[j]) ); 3313Add(KK4, +1*(-1*To[Position(P, P[i])][Position(P,K[j])][2][1]-1*To[Position(P, K[i])][Position(P,P[j])][2][1])/2); 3314Add(KK4, Position(P, P[i]+K[j]) ); 3315fi; 3316else 3317 if (p+Position(P,K[i]+P[j]) = p+Position(P,P[i]+K[j])) then 3318 3319if (t[Position(P,K[j]+P[i] )] = 1) then 3320Add(KK1, (-1*To[Position(P, P[i])][Position(P,K[j])][2][1]+1*To[Position(P, K[i])][Position(P,P[j])][2][1])/2); 3321Add(KK1, Position(P, P[i]+K[j]) ); 3322Add(KK4, +1*(-1*To[Position(P, P[i])][Position(P,K[j])][2][1]+1*To[Position(P, K[i])][Position(P,P[j])][2][1])/2); 3323Add(KK4, Position(P, P[i]+K[j]) ); 3324else 3325Add(KK2, (+1*To[Position(P, P[i])][Position(P,K[j])][2][1]+1*To[Position(P, K[i])][Position(P,P[j])][2][1])/2); 3326Add(KK2, Position(P, K[i]+P[j]) ); 3327Add(KK3, (-1*To[Position(P, P[i])][Position(P,K[j])][2][1]-1*To[Position(P, K[i])][Position(P,P[j])][2][1])/2); 3328Add(KK3, Position(P, K[i]+P[j]) ); 3329fi; 3330 else #(p+Position(P,K[j]+K[i]) < p+Position(P,P[j]+P[i])) 3331 3332if (t[Position(P,P[i]+K[j] )] = 1) then 3333Add(KK1, (-1*To[Position(P, P[i])][Position(P,K[j])][2][1]+1*To[Position(P, K[i])][Position(P,P[j])][2][1])/2); 3334Add(KK1, Position(P, K[i]+P[j]) ); 3335Add(KK2, -1*(+1*To[Position(P, P[i])][Position(P,K[j])][2][1]-1*To[Position(P, K[i])][Position(P,P[j])][2][1])/2); 3336Add(KK2, Position(P, P[i]+K[j]) ); 3337Add(KK3, -1*(-1*To[Position(P, P[i])][Position(P,K[j])][2][1]+1*To[Position(P, K[i])][Position(P,P[j])][2][1])/2); 3338Add(KK3, Position(P, P[i]+K[j]) ); 3339Add(KK4, +1*(-1*To[Position(P, P[i])][Position(P,K[j])][2][1]+1*To[Position(P, K[i])][Position(P,P[j])][2][1])/2); 3340Add(KK4, Position(P, K[i]+P[j]) ); 3341else 3342Add(KK1, -1*(-1*To[Position(P, P[i])][Position(P,K[j])][2][1]-1*To[Position(P, K[i])][Position(P,P[j])][2][1])/2); 3343Add(KK1, Position(P, K[i]+P[j]) ); 3344Add(KK2, (+1*To[Position(P, P[i])][Position(P,K[j])][2][1]+1*To[Position(P, K[i])][Position(P,P[j])][2][1])/2); 3345Add(KK2, Position(P, P[i]+K[j]) ); 3346Add(KK3, (-1*To[Position(P, P[i])][Position(P,K[j])][2][1]-1*To[Position(P, K[i])][Position(P,P[j])][2][1])/2); 3347Add(KK3, Position(P, P[i]+K[j]) ); 3348Add(KK4, -1*(-1*To[Position(P, P[i])][Position(P,K[j])][2][1]-1*To[Position(P, K[i])][Position(P,P[j])][2][1])/2); 3349Add(KK4, Position(P, K[i]+P[j]) ); 3350fi; 3351 fi; 3352fi; 3353fi; fi; 3354 3355############# 3356 3357if (K[j]-P[i] in P ) then 3358if not (IsEmpty(To[p+Position(P, P[i])][Position(P,K[j])][2])=true) then 3359if (p+Position(P,P[j]-K[i]) > p+Position(P,K[j]-P[i])) then 3360 3361if (t[Position(P,K[j]-P[i] )] = 1) then 3362Add(KK1, (-1*To[p+Position(P, P[i])][Position(P,K[j])][2][1]+1*To[p+Position(P, K[i])][Position(P,P[j])][2][1])/2); 3363Add(KK1, Position(P, K[j]-P[i]) ); 3364Add(KK2, (+1*To[p+Position(P, P[i])][Position(P,K[j])][2][1]-1*To[p+Position(P, K[i])][Position(P,P[j])][2][1])/2); 3365Add(KK2, Position(P, P[j]-K[i]) ); 3366Add(KK3, (-1*To[p+Position(P, P[i])][Position(P,K[j])][2][1]+1*To[p+Position(P, K[i])][Position(P,P[j])][2][1])/2); 3367Add(KK3, Position(P, P[j]-K[i]) ); 3368Add(KK4, +1*(-1*To[p+Position(P, P[i])][Position(P,K[j])][2][1]+1*To[p+Position(P, K[i])][Position(P,P[j])][2][1])/2); 3369Add(KK4, Position(P, K[j]-P[i]) ); 3370else 3371Add(KK1, (-1*To[p+Position(P, P[i])][Position(P,K[j])][2][1]-1*To[p+Position(P, K[i])][Position(P,P[j])][2][1])/2); 3372Add(KK1, Position(P, K[j]-P[i]) ); 3373Add(KK2, (+1*To[p+Position(P, P[i])][Position(P,K[j])][2][1]+1*To[p+Position(P, K[i])][Position(P,P[j])][2][1])/2); 3374Add(KK2, Position(P, P[j]-K[i]) ); 3375Add(KK3, (-1*To[p+Position(P, P[i])][Position(P,K[j])][2][1]-1*To[p+Position(P, K[i])][Position(P,P[j])][2][1])/2); 3376Add(KK3, Position(P, P[j]-K[i]) ); 3377Add(KK4, +1*(-1*To[p+Position(P, P[i])][Position(P,K[j])][2][1]-1*To[p+Position(P, K[i])][Position(P,P[j])][2][1])/2); 3378Add(KK4, Position(P, K[j]-P[i]) ); 3379fi; 3380else 3381 if (p+Position(P,P[j]-K[i]) = p+Position(P,K[j]-P[i])) then 3382 3383if (t[Position(P,K[j]-P[i] )] = 1) then 3384Add(KK1, (-1*To[p+Position(P, P[i])][Position(P,K[j])][2][1]+1*To[p+Position(P, K[i])][Position(P,P[j])][2][1])/2); 3385Add(KK1, Position(P, K[j]-P[i]) ); 3386Add(KK4, +1*(-1*To[p+Position(P, P[i])][Position(P,K[j])][2][1]+1*To[p+Position(P, K[i])][Position(P,P[j])][2][1])/2); 3387Add(KK4, Position(P, K[j]-P[i]) ); 3388else 3389Add(KK2, (+1*To[p+Position(P, P[i])][Position(P,K[j])][2][1]+1*To[p+Position(P, K[i])][Position(P,P[j])][2][1])/2); 3390Add(KK2, Position(P, P[j]-K[i]) ); 3391Add(KK3, (-1*To[p+Position(P, P[i])][Position(P,K[j])][2][1]-1*To[p+Position(P, K[i])][Position(P,P[j])][2][1])/2); 3392Add(KK3, Position(P, P[j]-K[i]) ); 3393fi; 3394 else #(p+Position(P,K[j]+K[i]) < p+Position(P,P[j]+P[i])) 3395 3396if (t[Position(P,K[j]-P[i] )] = 1) then 3397Add(KK1, (-1*To[p+Position(P, P[i])][Position(P,K[j])][2][1]+1*To[p+Position(P, K[i])][Position(P,P[j])][2][1])/2); 3398Add(KK1, Position(P, P[j]-K[i]) ); 3399Add(KK2, -1*(+1*To[p+Position(P, P[i])][Position(P,K[j])][2][1]-1*To[p+Position(P, K[i])][Position(P,P[j])][2][1])/2); 3400Add(KK2, Position(P, K[j]-P[i]) ); 3401Add(KK3, -1*(-1*To[p+Position(P, P[i])][Position(P,K[j])][2][1]+1*To[p+Position(P, K[i])][Position(P,P[j])][2][1])/2); 3402Add(KK3, Position(P, K[j]-P[i]) ); 3403Add(KK4, +1*(-1*To[p+Position(P, P[i])][Position(P,K[j])][2][1]+1*To[p+Position(P, K[i])][Position(P,P[j])][2][1])/2); 3404Add(KK4, Position(P, P[j]-K[i]) ); 3405else 3406Add(KK1, -1*(-1*To[p+Position(P, P[i])][Position(P,K[j])][2][1]-1*To[p+Position(P, K[i])][Position(P,P[j])][2][1])/2); 3407Add(KK1, Position(P, P[j]-K[i]) ); 3408Add(KK2, (+1*To[p+Position(P, P[i])][Position(P,K[j])][2][1]+1*To[p+Position(P, K[i])][Position(P,P[j])][2][1])/2); 3409Add(KK2, Position(P, K[j]-P[i]) ); 3410Add(KK3, (-1*To[p+Position(P, P[i])][Position(P,K[j])][2][1]-1*To[p+Position(P, K[i])][Position(P,P[j])][2][1])/2); 3411Add(KK3, Position(P, K[j]-P[i]) ); 3412Add(KK4, -1*(-1*To[p+Position(P, P[i])][Position(P,K[j])][2][1]-1*To[p+Position(P, K[i])][Position(P,P[j])][2][1])/2); 3413Add(KK4, Position(P, P[j]-K[i]) ); 3414fi; 3415 fi; 3416fi; 3417fi; fi; 3418 3419else #t[j]=-1 3420 3421######################### 3422 3423if (P[i]+P[j] in P ) then #qui so che aplha+beta < phi_aplha+phi_beta quindi sono nel caso sicuro 3424if not (IsEmpty(To[Position(P, P[i])][Position(P,P[j])][2])=true) then 3425if (p+Position(P,K[j]+K[i]) > p+Position(P,P[j]+P[i])) then 3426 3427if (t[Position(P,P[j]+P[i] )] = 1) then 3428Add(KK1, (-1*To[Position(P, P[i])][Position(P,P[j])][2][1]-1*To[Position(P, K[i])][Position(P,K[j])][2][1])/2); 3429Add(KK1, Position(P, P[i]+P[j]) ); 3430Add(KK2, (-1*To[Position(P, P[i])][Position(P,P[j])][2][1]-1*To[Position(P, K[i])][Position(P,K[j])][2][1])/2); 3431Add(KK2, Position(P, K[i]+K[j]) ); 3432Add(KK3, (-1*To[Position(P, P[i])][Position(P,P[j])][2][1]-1*To[Position(P, K[i])][Position(P,K[j])][2][1])/2); 3433Add(KK3, Position(P, K[i]+K[j]) ); 3434Add(KK4, +1*(+1*To[Position(P, P[i])][Position(P,P[j])][2][1]+1*To[Position(P, K[i])][Position(P,K[j])][2][1])/2); 3435Add(KK4, Position(P, P[i]+P[j]) ); 3436else 3437Add(KK1, (-1*To[Position(P, P[i])][Position(P,P[j])][2][1]+1*To[Position(P, K[i])][Position(P,K[j])][2][1])/2); 3438Add(KK1, Position(P, P[i]+P[j]) ); 3439Add(KK2, (-1*To[Position(P, P[i])][Position(P,P[j])][2][1]+1*To[Position(P, K[i])][Position(P,K[j])][2][1])/2); 3440Add(KK2, Position(P, K[i]+K[j]) ); 3441Add(KK3, (-1*To[Position(P, P[i])][Position(P,P[j])][2][1]+1*To[Position(P, K[i])][Position(P,K[j])][2][1])/2); 3442Add(KK3, Position(P, K[i]+K[j]) ); 3443Add(KK4, +1*(+1*To[Position(P, P[i])][Position(P,P[j])][2][1]-1*To[Position(P, K[i])][Position(P,K[j])][2][1])/2); 3444Add(KK4, Position(P, P[i]+P[j]) ); 3445fi; 3446else 3447 if (p+Position(P,K[j]+K[i]) = p+Position(P,P[j]+P[i])) then 3448 3449if (t[Position(P,P[j]+P[i] )] = 1) then 3450Add(KK1, (-1*To[Position(P, P[i])][Position(P,P[j])][2][1]-1*To[Position(P, K[i])][Position(P,K[j])][2][1])/2); 3451Add(KK1, Position(P, P[i]+P[j]) ); 3452Add(KK4, +1*(+1*To[Position(P, P[i])][Position(P,P[j])][2][1]+1*To[Position(P, K[i])][Position(P,K[j])][2][1])/2); 3453Add(KK4, Position(P, P[i]+P[j]) ); 3454else 3455Add(KK2, (-1*To[Position(P, P[i])][Position(P,P[j])][2][1]+1*To[Position(P, K[i])][Position(P,K[j])][2][1])/2); 3456Add(KK2, Position(P, K[i]+K[j]) ); 3457Add(KK3, (-1*To[Position(P, P[i])][Position(P,P[j])][2][1]+1*To[Position(P, K[i])][Position(P,K[j])][2][1])/2); 3458Add(KK3, Position(P, K[i]+K[j]) ); 3459fi; 3460 else #(p+Position(P,K[j]+K[i]) < p+Position(P,P[j]+P[i])) 3461 3462if (t[Position(P,P[j]+P[i] )] = 1) then 3463Add(KK1, (-1*To[Position(P, P[i])][Position(P,P[j])][2][1]-1*To[Position(P, K[i])][Position(P,K[j])][2][1])/2); 3464Add(KK1, Position(P, K[j]+K[i]) ); 3465Add(KK2, -1*(-1*To[Position(P, P[i])][Position(P,P[j])][2][1]-1*To[Position(P, K[i])][Position(P,K[j])][2][1])/2); 3466Add(KK2, Position(P, P[i]+P[j]) ); 3467Add(KK3, -1*(-1*To[Position(P, P[i])][Position(P,P[j])][2][1]-1*To[Position(P, K[i])][Position(P,K[j])][2][1])/2); 3468Add(KK3, Position(P, P[i]+P[j]) ); 3469Add(KK4, +1*(+1*To[Position(P, P[i])][Position(P,P[j])][2][1]+1*To[Position(P, K[i])][Position(P,K[j])][2][1])/2); 3470Add(KK4, Position(P,K[j]+K[i]) ); 3471else 3472Add(KK1, -1*(-1*To[Position(P, P[i])][Position(P,P[j])][2][1]+1*To[Position(P, K[i])][Position(P,K[j])][2][1])/2); 3473Add(KK1, Position(P, K[j]+K[i]) ); 3474Add(KK2, (-1*To[Position(P, P[i])][Position(P,P[j])][2][1]+1*To[Position(P, K[i])][Position(P,K[j])][2][1])/2); 3475Add(KK2, Position(P, P[i]+P[j]) ); 3476Add(KK3, (-1*To[Position(P, P[i])][Position(P,P[j])][2][1]+1*To[Position(P, K[i])][Position(P,K[j])][2][1])/2); 3477Add(KK3, Position(P, P[i]+P[j]) ); 3478Add(KK4, -1*(+1*To[Position(P, P[i])][Position(P,P[j])][2][1]-1*To[Position(P, K[i])][Position(P,K[j])][2][1])/2); 3479Add(KK4, Position(P, K[j]+K[i]) ); 3480fi; 3481 fi; 3482fi; 3483fi; fi; 3484 3485############### 3486 3487if (P[j]-P[i] in P ) then 3488if not (IsEmpty(To[p+Position(P, P[i])][Position(P,P[j])][2])=true) then 3489if (p+Position(P,K[j]-K[i]) > p+Position(P,P[j]-P[i])) then 3490 3491if (t[Position(P,P[j]-P[i] )] = 1) then 3492Add(KK1, (-1*To[p+Position(P, P[i])][Position(P,P[j])][2][1]-1*To[p+Position(P, K[i])][Position(P,K[j])][2][1])/2); 3493Add(KK1, Position(P, P[j]-P[i]) ); 3494Add(KK2, (-1*To[p+Position(P, P[i])][Position(P,P[j])][2][1]-1*To[p+Position(P, K[i])][Position(P,K[j])][2][1])/2); 3495Add(KK2, Position(P, K[j]-K[i]) ); 3496Add(KK3, (-1*To[p+Position(P, P[i])][Position(P,P[j])][2][1]-1*To[p+Position(P, K[i])][Position(P,K[j])][2][1])/2); 3497Add(KK3, Position(P, K[j]-K[i]) ); 3498Add(KK4, +1*(+1*To[p+Position(P, P[i])][Position(P,P[j])][2][1]+1*To[p+Position(P, K[i])][Position(P,K[j])][2][1])/2); 3499Add(KK4, Position(P, P[j]-P[i]) ); 3500else 3501Add(KK1, (-1*To[p+Position(P, P[i])][Position(P,P[j])][2][1]+1*To[p+Position(P, K[i])][Position(P,K[j])][2][1])/2); 3502Add(KK1, Position(P, P[j]-P[i]) ); 3503Add(KK2, (-1*To[p+Position(P, P[i])][Position(P,P[j])][2][1]+1*To[p+Position(P, K[i])][Position(P,K[j])][2][1])/2); 3504Add(KK2, Position(P, K[j]-K[i]) ); 3505Add(KK3, (-1*To[p+Position(P, P[i])][Position(P,P[j])][2][1]+1*To[p+Position(P, K[i])][Position(P,K[j])][2][1])/2); 3506Add(KK3, Position(P, K[j]-K[i]) ); 3507Add(KK4, +1*(+1*To[p+Position(P, P[i])][Position(P,P[j])][2][1]-1*To[p+Position(P, K[i])][Position(P,K[j])][2][1])/2); 3508Add(KK4, Position(P, P[j]-P[i]) ); 3509fi; 3510else 3511 if (p+Position(P,K[j]-K[i]) = p+Position(P,P[j]-P[i])) then 3512 3513if (t[Position(P,P[j]-P[i] )] = 1) then 3514Add(KK1, (-1*To[p+Position(P, P[i])][Position(P,P[j])][2][1]-1*To[p+Position(P, K[i])][Position(P,K[j])][2][1])/2); 3515Add(KK1, Position(P, P[j]-P[i]) ); 3516Add(KK4, +1*(+1*To[p+Position(P, P[i])][Position(P,P[j])][2][1]+1*To[p+Position(P, K[i])][Position(P,K[j])][2][1])/2); 3517Add(KK4, Position(P, P[j]-P[i]) ); 3518else 3519Add(KK2, (-1*To[p+Position(P, P[i])][Position(P,P[j])][2][1]+1*To[p+Position(P, K[i])][Position(P,K[j])][2][1])/2); 3520Add(KK2, Position(P, K[j]-K[i]) ); 3521Add(KK3, (-1*To[p+Position(P, P[i])][Position(P,P[j])][2][1]+1*To[p+Position(P, K[i])][Position(P,K[j])][2][1])/2); 3522Add(KK3, Position(P, K[j]-K[i]) ); 3523fi; 3524 else #(p+Position(P,K[j]+K[i]) < p+Position(P,P[j]+P[i])) 3525 3526if (t[Position(P,P[j]-P[i] )] = 1) then 3527Add(KK1, (-1*To[p+Position(P, P[i])][Position(P,P[j])][2][1]-1*To[p+Position(P, K[i])][Position(P,K[j])][2][1])/2); 3528Add(KK1, Position(P, K[j]-K[i]) ); 3529Add(KK2, -1*(-1*To[p+Position(P, P[i])][Position(P,P[j])][2][1]-1*To[p+Position(P, K[i])][Position(P,K[j])][2][1])/2); 3530Add(KK2, Position(P, P[j]-P[i]) ); 3531Add(KK3, -1*(-1*To[p+Position(P, P[i])][Position(P,P[j])][2][1]-1*To[p+Position(P, K[i])][Position(P,K[j])][2][1])/2); 3532Add(KK3, Position(P, P[j]-P[i]) ); 3533Add(KK4, +1*(+1*To[p+Position(P, P[i])][Position(P,P[j])][2][1]+1*To[p+Position(P, K[i])][Position(P,K[j])][2][1])/2); 3534Add(KK4, Position(P, K[j]-K[i]) ); 3535else 3536Add(KK1, -1*(-1*To[p+Position(P, P[i])][Position(P,P[j])][2][1]+1*To[p+Position(P, K[i])][Position(P,K[j])][2][1])/2); 3537Add(KK1, Position(P, K[j]-K[i]) ); 3538Add(KK2, (-1*To[p+Position(P, P[i])][Position(P,P[j])][2][1]+1*To[p+Position(P, K[i])][Position(P,K[j])][2][1])/2); 3539Add(KK2, Position(P, P[j]-P[i]) ); 3540Add(KK3, (-1*To[p+Position(P, P[i])][Position(P,P[j])][2][1]+1*To[p+Position(P, K[i])][Position(P,K[j])][2][1])/2); 3541Add(KK3, Position(P, P[j]-P[i]) ); 3542Add(KK4, -1*(+1*To[p+Position(P, P[i])][Position(P,P[j])][2][1]-1*To[p+Position(P, K[i])][Position(P,K[j])][2][1])/2); 3543Add(KK4, Position(P, K[j]-K[i]) ); 3544fi; 3545 fi; 3546fi; 3547fi; fi; 3548 3549############# 3550 3551if (P[i]+K[j] in P ) then 3552if not (IsEmpty(To[Position(P, P[i])][Position(P,K[j])][2])=true) then 3553if (p+Position(P,K[i]+P[j]) > p+Position(P,P[i]+K[j])) then 3554 3555if (t[Position(P,P[i]+K[j] )] = 1) then 3556Add(KK1, (+1*To[Position(P, P[i])][Position(P,K[j])][2][1]+1*To[Position(P, K[i])][Position(P,P[j])][2][1])/2); 3557Add(KK1, Position(P, P[i]+K[j]) ); 3558Add(KK2, (-1*To[Position(P, P[i])][Position(P,K[j])][2][1]-1*To[Position(P, K[i])][Position(P,P[j])][2][1])/2); 3559Add(KK2, Position(P, K[i]+P[j]) ); 3560Add(KK3, (+1*To[Position(P, P[i])][Position(P,K[j])][2][1]+1*To[Position(P, K[i])][Position(P,P[j])][2][1])/2); 3561Add(KK3, Position(P, K[i]+P[j]) ); 3562Add(KK4, +1*(+1*To[Position(P, P[i])][Position(P,K[j])][2][1]+1*To[Position(P, K[i])][Position(P,P[j])][2][1])/2); 3563Add(KK4, Position(P, P[i]+K[j]) ); 3564else 3565Add(KK1, (+1*To[Position(P, P[i])][Position(P,K[j])][2][1]-1*To[Position(P, K[i])][Position(P,P[j])][2][1])/2); 3566Add(KK1, Position(P, P[i]+K[j]) ); 3567Add(KK2, (-1*To[Position(P, P[i])][Position(P,K[j])][2][1]+1*To[Position(P, K[i])][Position(P,P[j])][2][1])/2); 3568Add(KK2, Position(P, K[i]+P[j]) ); 3569Add(KK3, (+1*To[Position(P, P[i])][Position(P,K[j])][2][1]-1*To[Position(P, K[i])][Position(P,P[j])][2][1])/2); 3570Add(KK3, Position(P, K[i]+P[j]) ); 3571Add(KK4, +1*(+1*To[Position(P, P[i])][Position(P,K[j])][2][1]-1*To[Position(P, K[i])][Position(P,P[j])][2][1])/2); 3572Add(KK4, Position(P, P[i]+K[j]) ); 3573fi; 3574 3575else 3576 if (p+Position(P,K[i]+P[j]) = p+Position(P,P[i]+K[j])) then 3577 3578if (t[Position(P,K[j]+P[i] )] = 1) then 3579Add(KK1, (+1*To[Position(P, P[i])][Position(P,K[j])][2][1]+1*To[Position(P, K[i])][Position(P,P[j])][2][1])/2); 3580Add(KK1, Position(P, P[i]+K[j]) ); 3581Add(KK4, +1*(+1*To[Position(P, P[i])][Position(P,K[j])][2][1]+1*To[Position(P, K[i])][Position(P,P[j])][2][1])/2); 3582Add(KK4, Position(P, P[i]+K[j]) ); 3583else 3584Add(KK2, (-1*To[Position(P, P[i])][Position(P,K[j])][2][1]+1*To[Position(P, K[i])][Position(P,P[j])][2][1])/2); 3585Add(KK2, Position(P, K[i]+P[j]) ); 3586Add(KK3, (+1*To[Position(P, P[i])][Position(P,K[j])][2][1]-1*To[Position(P, K[i])][Position(P,P[j])][2][1])/2); 3587Add(KK3, Position(P, K[i]+P[j]) ); 3588fi; 3589 else #(p+Position(P,K[j]+K[i]) < p+Position(P,P[j]+P[i])) 3590 3591if (t[Position(P,P[i]+K[j] )] = 1) then 3592Add(KK1, (+1*To[Position(P, P[i])][Position(P,K[j])][2][1]+1*To[Position(P, K[i])][Position(P,P[j])][2][1])/2); 3593Add(KK1, Position(P, K[i]+P[j]) ); 3594Add(KK2, -1*(-1*To[Position(P, P[i])][Position(P,K[j])][2][1]-1*To[Position(P, K[i])][Position(P,P[j])][2][1])/2); 3595Add(KK2, Position(P, P[i]+K[j]) ); 3596Add(KK3, -1*(+1*To[Position(P, P[i])][Position(P,K[j])][2][1]+1*To[Position(P, K[i])][Position(P,P[j])][2][1])/2); 3597Add(KK3, Position(P, P[i]+K[j]) ); 3598Add(KK4, +1*(+1*To[Position(P, P[i])][Position(P,K[j])][2][1]+1*To[Position(P, K[i])][Position(P,P[j])][2][1])/2); 3599Add(KK4, Position(P, K[i]+P[j]) ); 3600else 3601Add(KK1, -1*(+1*To[Position(P, P[i])][Position(P,K[j])][2][1]-1*To[Position(P, K[i])][Position(P,P[j])][2][1])/2); 3602Add(KK1, Position(P, K[i]+P[j]) ); 3603Add(KK2, (-1*To[Position(P, P[i])][Position(P,K[j])][2][1]+1*To[Position(P, K[i])][Position(P,P[j])][2][1])/2); 3604Add(KK2, Position(P, P[i]+K[j]) ); 3605Add(KK3, (+1*To[Position(P, P[i])][Position(P,K[j])][2][1]-1*To[Position(P, K[i])][Position(P,P[j])][2][1])/2); 3606Add(KK3, Position(P, P[i]+K[j]) ); 3607Add(KK4, -1*(+1*To[Position(P, P[i])][Position(P,K[j])][2][1]-1*To[Position(P, K[i])][Position(P,P[j])][2][1])/2); 3608Add(KK4, Position(P, K[i]+P[j]) ); 3609fi; 3610 fi; 3611fi; 3612fi; fi; 3613 3614############# 3615 3616if (K[j]-P[i] in P ) then 3617if not (IsEmpty(To[p+Position(P, P[i])][Position(P,K[j])][2])=true) then 3618if (p+Position(P,P[j]-K[i]) > p+Position(P,K[j]-P[i])) then 3619 3620if (t[Position(P,K[j]-P[i] )] = 1) then 3621Add(KK1, (+1*To[p+Position(P, P[i])][Position(P,K[j])][2][1]+1*To[p+Position(P, K[i])][Position(P,P[j])][2][1])/2); 3622Add(KK1, Position(P, K[j]-P[i]) ); 3623Add(KK2, (-1*To[p+Position(P, P[i])][Position(P,K[j])][2][1]-1*To[p+Position(P, K[i])][Position(P,P[j])][2][1])/2); 3624Add(KK2, Position(P, P[j]-K[i]) ); 3625Add(KK3, (+1*To[p+Position(P, P[i])][Position(P,K[j])][2][1]+1*To[p+Position(P, K[i])][Position(P,P[j])][2][1])/2); 3626Add(KK3, Position(P, P[j]-K[i]) ); 3627Add(KK4, +1*(+1*To[p+Position(P, P[i])][Position(P,K[j])][2][1]+1*To[p+Position(P, K[i])][Position(P,P[j])][2][1])/2); 3628Add(KK4, Position(P, K[j]-P[i]) ); 3629else 3630Add(KK1, (+1*To[p+Position(P, P[i])][Position(P,K[j])][2][1]-1*To[p+Position(P, K[i])][Position(P,P[j])][2][1])/2); 3631Add(KK1, Position(P, K[j]-P[i]) ); 3632Add(KK2, (-1*To[p+Position(P, P[i])][Position(P,K[j])][2][1]+1*To[p+Position(P, K[i])][Position(P,P[j])][2][1])/2); 3633Add(KK2, Position(P, P[j]-K[i]) ); 3634Add(KK3, (+1*To[p+Position(P, P[i])][Position(P,K[j])][2][1]-1*To[p+Position(P, K[i])][Position(P,P[j])][2][1])/2); 3635Add(KK3, Position(P, P[j]-K[i]) ); 3636Add(KK4, +1*(+1*To[p+Position(P, P[i])][Position(P,K[j])][2][1]-1*To[p+Position(P, K[i])][Position(P,P[j])][2][1])/2); 3637Add(KK4, Position(P, K[j]-P[i]) ); 3638fi; 3639 3640else 3641 if (p+Position(P,P[j]-K[i]) = p+Position(P,K[j]-P[i])) then 3642 3643if (t[Position(P,K[j]-P[i] )] = 1) then 3644Add(KK1, (+1*To[p+Position(P, P[i])][Position(P,K[j])][2][1]+1*To[p+Position(P, K[i])][Position(P,P[j])][2][1])/2); 3645Add(KK1, Position(P, K[j]-P[i]) ); 3646Add(KK4, +1*(+1*To[p+Position(P, P[i])][Position(P,K[j])][2][1]+1*To[p+Position(P, K[i])][Position(P,P[j])][2][1])/2); 3647Add(KK4, Position(P, K[j]-P[i]) ); 3648else 3649Add(KK2, (-1*To[p+Position(P, P[i])][Position(P,K[j])][2][1]+1*To[p+Position(P, K[i])][Position(P,P[j])][2][1])/2); 3650Add(KK2, Position(P, P[j]-K[i]) ); 3651Add(KK3, (+1*To[p+Position(P, P[i])][Position(P,K[j])][2][1]-1*To[p+Position(P, K[i])][Position(P,P[j])][2][1])/2); 3652Add(KK3, Position(P, P[j]-K[i]) ); 3653fi; 3654 else #(p+Position(P,K[j]+K[i]) < p+Position(P,P[j]+P[i])) 3655 3656if (t[Position(P,K[j]-P[i] )] = 1) then 3657Add(KK1, (+1*To[p+Position(P, P[i])][Position(P,K[j])][2][1]+1*To[p+Position(P, K[i])][Position(P,P[j])][2][1])/2); 3658Add(KK1, Position(P, P[j]-K[i]) ); 3659Add(KK2, -1*(-1*To[p+Position(P, P[i])][Position(P,K[j])][2][1]-1*To[p+Position(P, K[i])][Position(P,P[j])][2][1])/2); 3660Add(KK2, Position(P, K[j]-P[i]) ); 3661Add(KK3, -1*(+1*To[p+Position(P, P[i])][Position(P,K[j])][2][1]+1*To[p+Position(P, K[i])][Position(P,P[j])][2][1])/2); 3662Add(KK3, Position(P, K[j]-P[i]) ); 3663Add(KK4, +1*(+1*To[p+Position(P, P[i])][Position(P,K[j])][2][1]+1*To[p+Position(P, K[i])][Position(P,P[j])][2][1])/2); 3664Add(KK4, Position(P, P[j]-K[i]) ); 3665else 3666Add(KK1, -1*(+1*To[p+Position(P, P[i])][Position(P,K[j])][2][1]-1*To[p+Position(P, K[i])][Position(P,P[j])][2][1])/2); 3667Add(KK1, Position(P, P[j]-K[i]) ); 3668Add(KK2, (-1*To[p+Position(P, P[i])][Position(P,K[j])][2][1]+1*To[p+Position(P, K[i])][Position(P,P[j])][2][1])/2); 3669Add(KK2, Position(P, K[j]-P[i]) ); 3670Add(KK3, (+1*To[p+Position(P, P[i])][Position(P,K[j])][2][1]-1*To[p+Position(P, K[i])][Position(P,P[j])][2][1])/2); 3671Add(KK3, Position(P, K[j]-P[i]) ); 3672Add(KK4, -1*(+1*To[p+Position(P, P[i])][Position(P,K[j])][2][1]-1*To[p+Position(P, K[i])][Position(P,P[j])][2][1])/2); 3673Add(KK4, Position(P, P[j]-K[i]) ); 3674fi; 3675 fi; 3676fi; 3677fi; fi; 3678 3679fi; fi; 3680 3681SetEntrySCTable( TT, p+i, p+j , KK1); 3682SetEntrySCTable( TT, p+i, p+Position(P, K[j]), KK2); 3683SetEntrySCTable( TT, p+Position(P,K[i]), p+j, KK3); 3684SetEntrySCTable( TT, p+Position(P,K[i]) ,p+Position(P, K[j]), KK4); 3685 3686else 3687 3688 if ( p+Position(P, K[j]) = p+Position(P,P[j]) ) then #beta = phi_beta 3689 3690KK1:=[]; 3691KK2:=[]; 3692 3693if (t[i]=1) then 3694if (t[j]=1) then 3695 3696if (P[i]+P[j] in P ) then #qui so che aplha+beta < phi_aplha+phi_beta quindi sono nel caso sicuro 3697if not (IsEmpty(To[Position(P, P[i])][Position(P,P[j])][2])=true) then 3698if (p+Position(P,K[j]+K[i]) > p+Position(P,P[j]+P[i])) then 3699 3700if (t[Position(P,P[j]+P[i] )] = 1) then 3701Add(KK1, (-1*To[Position(P, P[i])][Position(P,P[j])][2][1]-1*To[Position(P, K[i])][Position(P,K[j])][2][1])); 3702Add(KK1, Position(P, P[i]+P[j]) ); 3703Add(KK2, (-1*To[Position(P, P[i])][Position(P,P[j])][2][1]-1*To[Position(P, K[i])][Position(P,K[j])][2][1])); 3704Add(KK2, Position(P, K[i]+K[j]) ); 3705else 3706Add(KK1, (-1*To[Position(P, P[i])][Position(P,P[j])][2][1]+1*To[Position(P, K[i])][Position(P,K[j])][2][1])); 3707Add(KK1, Position(P, P[i]+P[j]) ); 3708Add(KK2, (-1*To[Position(P, P[i])][Position(P,P[j])][2][1]+1*To[Position(P, K[i])][Position(P,K[j])][2][1])); 3709Add(KK2, Position(P, K[i]+K[j]) ); 3710fi; 3711else 3712 if (p+Position(P,K[j]+K[i]) = p+Position(P,P[j]+P[i])) then 3713 3714if (t[Position(P,P[j]+P[i] )] = 1) then 3715Add(KK1, (-1*To[Position(P, P[i])][Position(P,P[j])][2][1]-1*To[Position(P, K[i])][Position(P,K[j])][2][1])); 3716Add(KK1, Position(P, P[i]+P[j]) ); 3717else 3718Add(KK2, (-1*To[Position(P, P[i])][Position(P,P[j])][2][1]+1*To[Position(P, K[i])][Position(P,K[j])][2][1])); 3719Add(KK2, Position(P, K[i]+K[j]) ); 3720fi; 3721 else #(p+Position(P,K[j]+K[i]) < p+Position(P,P[j]+P[i])) 3722 3723if (t[Position(P,P[j]+P[i] )] = 1) then 3724Add(KK1, (-1*To[Position(P, P[i])][Position(P,P[j])][2][1]-1*To[Position(P, K[i])][Position(P,K[j])][2][1])); 3725Add(KK1, Position(P, K[j]+K[i]) ); 3726Add(KK2, -1*(-1*To[Position(P, P[i])][Position(P,P[j])][2][1]-1*To[Position(P, K[i])][Position(P,K[j])][2][1])); 3727Add(KK2, Position(P, P[i]+P[j]) ); 3728else 3729Add(KK1, -1*(-1*To[Position(P, P[i])][Position(P,P[j])][2][1]+1*To[Position(P, K[i])][Position(P,K[j])][2][1])); 3730Add(KK1, Position(P, K[j]+K[i]) ); 3731Add(KK2, (-1*To[Position(P, P[i])][Position(P,P[j])][2][1]+1*To[Position(P, K[i])][Position(P,K[j])][2][1])); 3732Add(KK2, Position(P, P[i]+P[j]) ); 3733fi; 3734 fi; 3735fi; 3736fi; fi; 3737 3738############### 3739 3740if (P[j]-P[i] in P ) then 3741if not (IsEmpty(To[p+Position(P, P[i])][Position(P,P[j])][2])=true) then 3742if (p+Position(P,K[j]-K[i]) > p+Position(P,P[j]-P[i])) then 3743 3744if (t[Position(P,P[j]-P[i] )] = 1) then 3745Add(KK1, (-1*To[p+Position(P, P[i])][Position(P,P[j])][2][1]-1*To[p+Position(P, K[i])][Position(P,K[j])][2][1])); 3746Add(KK1, Position(P, P[j]-P[i]) ); 3747Add(KK2, (-1*To[p+Position(P, P[i])][Position(P,P[j])][2][1]-1*To[p+Position(P, K[i])][Position(P,K[j])][2][1])); 3748Add(KK2, Position(P, K[j]-K[i]) ); 3749else 3750Add(KK1, (-1*To[p+Position(P, P[i])][Position(P,P[j])][2][1]+1*To[p+Position(P, K[i])][Position(P,K[j])][2][1])); 3751Add(KK1, Position(P, P[j]-P[i]) ); 3752Add(KK2, (-1*To[p+Position(P, P[i])][Position(P,P[j])][2][1]+1*To[p+Position(P, K[i])][Position(P,K[j])][2][1])); 3753Add(KK2, Position(P, K[j]-K[i]) ); 3754fi; 3755else 3756 if (p+Position(P,K[j]-K[i]) = p+Position(P,P[j]-P[i])) then 3757 3758if (t[Position(P,P[j]-P[i] )] = 1) then 3759Add(KK1, (-1*To[p+Position(P, P[i])][Position(P,P[j])][2][1]-1*To[p+Position(P, K[i])][Position(P,K[j])][2][1])); 3760Add(KK1, Position(P, P[j]-P[i]) ); 3761else 3762Add(KK2, (-1*To[p+Position(P, P[i])][Position(P,P[j])][2][1]+1*To[p+Position(P, K[i])][Position(P,K[j])][2][1])); 3763Add(KK2, Position(P, K[j]-K[i]) ); 3764fi; 3765 else #(p+Position(P,K[j]+K[i]) < p+Position(P,P[j]+P[i])) 3766 3767if (t[Position(P,P[j]-P[i] )] = 1) then 3768Add(KK1, (-1*To[p+Position(P, P[i])][Position(P,P[j])][2][1]-1*To[p+Position(P, K[i])][Position(P,K[j])][2][1])); 3769Add(KK1, Position(P, K[j]-K[i]) ); 3770Add(KK2, -1*(-1*To[p+Position(P, P[i])][Position(P,P[j])][2][1]-1*To[p+Position(P, K[i])][Position(P,K[j])][2][1])); 3771Add(KK2, Position(P, P[j]-P[i]) ); 3772else 3773Add(KK1, -1*(-1*To[p+Position(P, P[i])][Position(P,P[j])][2][1]+1*To[p+Position(P, K[i])][Position(P,K[j])][2][1])); 3774Add(KK1, Position(P, K[j]-K[i]) ); 3775Add(KK2, (-1*To[p+Position(P, P[i])][Position(P,P[j])][2][1]+1*To[p+Position(P, K[i])][Position(P,K[j])][2][1])); 3776Add(KK2, Position(P, P[j]-P[i]) ); 3777fi; 3778 fi; 3779fi; 3780fi; fi; 3781 3782#################### 3783else #t[j]=-1 3784 3785if (P[i]+P[j] in P ) then #qui so che aplha+beta < phi_aplha+phi_beta quindi sono nel caso sicuro 3786if not (IsEmpty(To[Position(P, P[i])][Position(P,P[j])][2])=true) then 3787if (p+Position(P,K[j]+K[i]) > p+Position(P,P[j]+P[i])) then 3788 3789if (t[Position(P,P[j]+P[i] )] = 1) then 3790Add(KK1, (-1*To[Position(P, P[i])][Position(P,P[j])][2][1]+1*To[Position(P, K[i])][Position(P,K[j])][2][1])); 3791Add(KK1, Position(P, K[j]+K[i]) ); 3792Add(KK2, +1*(+1*To[Position(P, P[i])][Position(P,P[j])][2][1]-1*To[Position(P, K[i])][Position(P,K[j])][2][1])); 3793Add(KK2, Position(P, P[i]+P[j]) ); 3794else 3795Add(KK1, (-1*To[Position(P, P[i])][Position(P,P[j])][2][1]-1*To[Position(P, K[i])][Position(P,K[j])][2][1])); 3796Add(KK1, Position(P, K[j]+K[i]) ); 3797Add(KK2, +1*(+1*To[Position(P, P[i])][Position(P,P[j])][2][1]+1*To[Position(P, K[i])][Position(P,K[j])][2][1])); 3798Add(KK2, Position(P, P[i]+P[j]) ); 3799fi; 3800else 3801 if (p+Position(P,K[j]+K[i]) = p+Position(P,P[j]+P[i])) then 3802 3803if (t[Position(P,P[j]+P[i] )] = 1) then 3804Add(KK2, +1*(+1*To[Position(P, P[i])][Position(P,P[j])][2][1]-1*To[Position(P, K[i])][Position(P,K[j])][2][1])); 3805Add(KK2, Position(P, P[i]+P[j]) ); 3806else 3807Add(KK1, (-1*To[Position(P, P[i])][Position(P,P[j])][2][1]-1*To[Position(P, K[i])][Position(P,K[j])][2][1])); 3808Add(KK1, Position(P, K[j]+K[i]) ); 3809fi; 3810 else #(p+Position(P,K[j]+K[i]) < p+Position(P,P[j]+P[i])) 3811 3812if (t[Position(P,P[j]+P[i] )] = 1) then 3813Add(KK1, -1*(-1*To[Position(P, P[i])][Position(P,P[j])][2][1]+1*To[Position(P, K[i])][Position(P,K[j])][2][1])); 3814Add(KK1, Position(P, K[j]+K[i]) ); 3815Add(KK2, +1*(+1*To[Position(P, P[i])][Position(P,P[j])][2][1]-1*To[Position(P, K[i])][Position(P,K[j])][2][1])); 3816Add(KK2, Position(P, P[i]+P[j]) ); 3817else 3818Add(KK1, (-1*To[Position(P, P[i])][Position(P,P[j])][2][1]-1*To[Position(P, K[i])][Position(P,K[j])][2][1])); 3819Add(KK1, Position(P, P[i]+P[j]) ); 3820Add(KK2, -1*(+1*To[Position(P, P[i])][Position(P,P[j])][2][1]+1*To[Position(P, K[i])][Position(P,K[j])][2][1])); 3821Add(KK2, Position(P, K[j]+K[i]) ); 3822fi; 3823 fi; 3824fi; 3825fi; fi; 3826 3827############### 3828 3829if (P[j]-P[i] in P ) then 3830if not (IsEmpty(To[p+Position(P, P[i])][Position(P,P[j])][2])=true) then 3831if (p+Position(P,K[j]-K[i]) > p+Position(P,P[j]-P[i])) then 3832if (t[Position(P,P[j]-P[i] )] = 1) then 3833Add(KK1, (-1*To[p+Position(P, P[i])][Position(P,P[j])][2][1]+1*To[p+Position(P, K[i])][Position(P,K[j])][2][1])); 3834Add(KK1, Position(P, K[j]-K[i]) ); 3835Add(KK2, +1*(+1*To[p+Position(P, P[i])][Position(P,P[j])][2][1]-1*To[p+Position(P, K[i])][Position(P,K[j])][2][1])); 3836Add(KK2, Position(P, P[j]-P[i]) ); 3837else 3838Add(KK1, (-1*To[p+Position(P, P[i])][Position(P,P[j])][2][1]-1*To[p+Position(P, K[i])][Position(P,K[j])][2][1])); 3839Add(KK1, Position(P, K[j]-K[i]) ); 3840Add(KK2, +1*(+1*To[p+Position(P, P[i])][Position(P,P[j])][2][1]+1*To[p+Position(P, K[i])][Position(P,K[j])][2][1])); 3841Add(KK2, Position(P, P[j]-P[i]) ); 3842fi; 3843 3844else 3845 if (p+Position(P,K[j]-K[i]) = p+Position(P,P[j]-P[i])) then 3846 3847if (t[Position(P,P[j]-P[i] )] = 1) then 3848Add(KK2, +1*(+1*To[p+Position(P, P[i])][Position(P,P[j])][2][1]-1*To[p+Position(P, K[i])][Position(P,K[j])][2][1])); 3849Add(KK2, Position(P, P[j]-P[i]) ); 3850else 3851Add(KK1, (-1*To[p+Position(P, P[i])][Position(P,P[j])][2][1]-1*To[p+Position(P, K[i])][Position(P,K[j])][2][1])); 3852Add(KK1, Position(P, K[j]-K[i]) ); 3853fi; 3854 else #(p+Position(P,K[j]+K[i]) < p+Position(P,P[j]+P[i])) 3855 3856if (t[Position(P,P[j]-P[i] )] = 1) then 3857Add(KK1, -1*(-1*To[p+Position(P, P[i])][Position(P,P[j])][2][1]+1*To[p+Position(P, K[i])][Position(P,K[j])][2][1])); 3858Add(KK1, Position(P, P[j]-P[i]) ); 3859Add(KK2, +1*(+1*To[p+Position(P, P[i])][Position(P,P[j])][2][1]-1*To[p+Position(P, K[i])][Position(P,K[j])][2][1])); 3860Add(KK2, Position(P, K[j]-K[i]) ); 3861else 3862Add(KK1, (-1*To[p+Position(P, P[i])][Position(P,P[j])][2][1]-1*To[p+Position(P, K[i])][Position(P,K[j])][2][1])); 3863Add(KK1, Position(P, P[j]-P[i]) ); 3864Add(KK2, -1*(+1*To[p+Position(P, P[i])][Position(P,P[j])][2][1]+1*To[p+Position(P, K[i])][Position(P,K[j])][2][1])); 3865Add(KK2, Position(P, K[j]-K[i]) ); 3866fi; 3867 fi; 3868fi; 3869fi; fi; 3870 3871fi; 3872 3873else #t[i]=-1 3874if (t[j]=1) then 3875 3876if (P[i]+P[j] in P ) then #qui so che aplha+beta < phi_aplha+phi_beta quindi sono nel caso sicuro 3877if not (IsEmpty(To[Position(P, P[i])][Position(P,P[j])][2])=true) then 3878if (p+Position(P,K[j]+K[i]) > p+Position(P,P[j]+P[i])) then 3879if (t[Position(P,P[j]+P[i] )] = 1) then 3880Add(KK1, (-1*To[Position(P, P[i])][Position(P,P[j])][2][1]+1*To[Position(P, K[i])][Position(P,K[j])][2][1])); 3881Add(KK1, Position(P, P[i]+P[j]) ); 3882Add(KK2, (-1*To[Position(P, P[i])][Position(P,P[j])][2][1]+1*To[Position(P, K[i])][Position(P,K[j])][2][1])); 3883Add(KK2, Position(P, K[i]+K[j]) ); 3884else 3885Add(KK1, (-1*To[Position(P, P[i])][Position(P,P[j])][2][1]-1*To[Position(P, K[i])][Position(P,K[j])][2][1])); 3886Add(KK1, Position(P, P[i]+P[j]) ); 3887Add(KK2, (-1*To[Position(P, P[i])][Position(P,P[j])][2][1]-1*To[Position(P, K[i])][Position(P,K[j])][2][1])); 3888Add(KK2, Position(P, K[i]+K[j]) ); 3889fi; 3890 3891else 3892 if (p+Position(P,K[j]+K[i]) = p+Position(P,P[j]+P[i])) then 3893 3894if (t[Position(P,P[j]+P[i] )] = 1) then 3895Add(KK1, (-1*To[Position(P, P[i])][Position(P,P[j])][2][1]+1*To[Position(P, K[i])][Position(P,K[j])][2][1])); 3896Add(KK1, Position(P, P[i]+P[j]) ); 3897else 3898Add(KK2, (-1*To[Position(P, P[i])][Position(P,P[j])][2][1]-1*To[Position(P, K[i])][Position(P,K[j])][2][1])); 3899Add(KK2, Position(P, K[i]+K[j]) ); 3900fi; 3901 else #(p+Position(P,K[j]+K[i]) < p+Position(P,P[j]+P[i])) 3902 3903if (t[Position(P,P[j]+P[i] )] = 1) then 3904Add(KK1, (-1*To[Position(P, P[i])][Position(P,P[j])][2][1]+1*To[Position(P, K[i])][Position(P,K[j])][2][1])); 3905Add(KK1, Position(P, K[j]+K[i]) ); 3906Add(KK2, -1*(-1*To[Position(P, P[i])][Position(P,P[j])][2][1]+1*To[Position(P, K[i])][Position(P,K[j])][2][1])); 3907Add(KK2, Position(P, P[i]+P[j]) ); 3908else 3909Add(KK1, -1*(-1*To[Position(P, P[i])][Position(P,P[j])][2][1]-1*To[Position(P, K[i])][Position(P,K[j])][2][1])); 3910Add(KK1, Position(P, K[j]+K[i]) ); 3911Add(KK2, (-1*To[Position(P, P[i])][Position(P,P[j])][2][1]-1*To[Position(P, K[i])][Position(P,K[j])][2][1])); 3912Add(KK2, Position(P, P[i]+P[j]) ); 3913fi; 3914 fi; 3915fi; 3916fi; fi; 3917 3918 3919####### 3920############ 3921############### 3922 3923 3924if (P[j]-P[i] in P ) then 3925if not (IsEmpty(To[p+Position(P, P[i])][Position(P,P[j])][2])=true) then 3926if (p+Position(P,K[j]-K[i]) > p+Position(P,P[j]-P[i])) then 3927 3928if (t[Position(P,P[j]-P[i] )] = 1) then 3929Add(KK1, (-1*To[p+Position(P, P[i])][Position(P,P[j])][2][1]+1*To[p+Position(P, K[i])][Position(P,K[j])][2][1])); 3930Add(KK1, Position(P, P[j]-P[i]) ); 3931Add(KK2, (-1*To[p+Position(P, P[i])][Position(P,P[j])][2][1]+1*To[p+Position(P, K[i])][Position(P,K[j])][2][1])); 3932Add(KK2, Position(P, K[j]-K[i]) ); 3933else 3934Add(KK1, (-1*To[p+Position(P, P[i])][Position(P,P[j])][2][1]-1*To[p+Position(P, K[i])][Position(P,K[j])][2][1])); 3935Add(KK1, Position(P, P[j]-P[i]) ); 3936Add(KK2, (-1*To[p+Position(P, P[i])][Position(P,P[j])][2][1]-1*To[p+Position(P, K[i])][Position(P,K[j])][2][1])); 3937Add(KK2, Position(P, K[j]-K[i]) ); 3938fi; 3939 3940else 3941 if (p+Position(P,K[j]-K[i]) = p+Position(P,P[j]-P[i])) then 3942 3943if (t[Position(P,P[j]-P[i] )] = 1) then 3944Add(KK1, (-1*To[p+Position(P, P[i])][Position(P,P[j])][2][1]+1*To[p+Position(P, K[i])][Position(P,K[j])][2][1])); 3945Add(KK1, Position(P, P[j]-P[i]) ); 3946else 3947 3948Add(KK2, (-1*To[p+Position(P, P[i])][Position(P,P[j])][2][1]-1*To[p+Position(P, K[i])][Position(P,K[j])][2][1])); 3949Add(KK2, Position(P, K[j]-K[i]) ); 3950 3951fi; 3952 else #(p+Position(P,K[j]+K[i]) < p+Position(P,P[j]+P[i])) 3953 3954if (t[Position(P,P[j]-P[i] )] = 1) then 3955Add(KK1, (-1*To[p+Position(P, P[i])][Position(P,P[j])][2][1]+1*To[p+Position(P, K[i])][Position(P,K[j])][2][1])); 3956Add(KK1, Position(P, K[j]-K[i]) ); 3957Add(KK2, -1*(-1*To[p+Position(P, P[i])][Position(P,P[j])][2][1]+1*To[p+Position(P, K[i])][Position(P,K[j])][2][1])); 3958Add(KK2, Position(P, P[j]-P[i]) ); 3959else 3960Add(KK1, -1*(-1*To[p+Position(P, P[i])][Position(P,P[j])][2][1]-1*To[p+Position(P, K[i])][Position(P,K[j])][2][1])); 3961Add(KK1, Position(P, K[j]-K[i]) ); 3962Add(KK2, (-1*To[p+Position(P, P[i])][Position(P,P[j])][2][1]-1*To[p+Position(P, K[i])][Position(P,K[j])][2][1])); 3963Add(KK2, Position(P, P[j]-P[i]) ); 3964fi; 3965 fi; 3966 3967fi; 3968fi; fi; 3969 3970 3971########### 3972################## 3973#################### 3974 3975 3976else #t[i]=t[j]=-1 3977 3978 3979if (P[i]+P[j] in P ) then #qui so che aplha+beta < phi_aplha+phi_beta quindi sono nel caso sicuro 3980if not (IsEmpty(To[Position(P, P[i])][Position(P,P[j])][2])=true) then 3981if (p+Position(P,K[j]+K[i]) > p+Position(P,P[j]+P[i])) then 3982if (t[Position(P,P[j]+P[i] )] = 1) then 3983Add(KK1, (-1*To[Position(P, P[i])][Position(P,P[j])][2][1]-1*To[Position(P, K[i])][Position(P,K[j])][2][1])); 3984Add(KK1, Position(P, K[i]+K[j]) ); 3985Add(KK2, +1*(+1*To[Position(P, P[i])][Position(P,P[j])][2][1]+1*To[Position(P, K[i])][Position(P,K[j])][2][1])); 3986Add(KK2, Position(P, P[j]+P[i]) ); 3987else 3988Add(KK1, (-1*To[Position(P, P[i])][Position(P,P[j])][2][1]+1*To[Position(P, K[i])][Position(P,K[j])][2][1])); 3989Add(KK1, Position(P, K[i]+K[j]) ); 3990Add(KK2, +1*(+1*To[Position(P, P[i])][Position(P,P[j])][2][1]-1*To[Position(P, K[i])][Position(P,K[j])][2][1])); 3991Add(KK2, Position(P, P[j]+P[i]) ); 3992fi; 3993 3994else 3995 if (p+Position(P,K[j]+K[i]) = p+Position(P,P[j]+P[i])) then 3996 3997if (t[Position(P,P[j]+P[i] )] = 1) then 3998Add(KK2, +1*(+1*To[Position(P, P[i])][Position(P,P[j])][2][1]+1*To[Position(P, K[i])][Position(P,K[j])][2][1])); 3999Add(KK2, Position(P, P[j]+P[i]) ); 4000else 4001Add(KK1, (-1*To[Position(P, P[i])][Position(P,P[j])][2][1]+1*To[Position(P, K[i])][Position(P,K[j])][2][1])); 4002Add(KK1, Position(P, K[i]+K[j]) ); 4003fi; 4004 else #(p+Position(P,K[j]+K[i]) < p+Position(P,P[j]+P[i])) 4005 4006if (t[Position(P,P[j]+P[i] )] = 1) then 4007Add(KK1, -1*(-1*To[Position(P, P[i])][Position(P,P[j])][2][1]-1*To[Position(P, K[i])][Position(P,K[j])][2][1])); 4008Add(KK1, Position(P, P[j]+P[i]) ); 4009Add(KK2, +1*(+1*To[Position(P, P[i])][Position(P,P[j])][2][1]+1*To[Position(P, K[i])][Position(P,K[j])][2][1])); 4010Add(KK2, Position(P, K[i]+K[j]) ); 4011else 4012Add(KK1, (-1*To[Position(P, P[i])][Position(P,P[j])][2][1]+1*To[Position(P, K[i])][Position(P,K[j])][2][1])); 4013Add(KK1, Position(P, P[j]+P[i]) ); 4014Add(KK2, -1*(+1*To[Position(P, P[i])][Position(P,P[j])][2][1]-1*To[Position(P, K[i])][Position(P,K[j])][2][1])); 4015Add(KK2, Position(P, K[i]+K[j]) ); 4016fi; 4017 fi; 4018 4019fi; 4020fi; fi; 4021 4022 4023####### 4024############ 4025############### 4026 4027if (P[j]-P[i] in P ) then 4028if not (IsEmpty(To[p+Position(P, P[i])][Position(P,P[j])][2])=true) then 4029if (p+Position(P,K[j]-K[i]) > p+Position(P,P[j]-P[i])) then 4030if (t[Position(P,P[j]-P[i] )] = 1) then 4031Add(KK1, (-1*To[p+Position(P, P[i])][Position(P,P[j])][2][1]-1*To[p+Position(P, K[i])][Position(P,K[j])][2][1])); 4032Add(KK1, Position(P, K[j]-K[i]) ); 4033Add(KK2, +1*(+1*To[p+Position(P, P[i])][Position(P,P[j])][2][1]+1*To[p+Position(P, K[i])][Position(P,K[j])][2][1])); 4034Add(KK2, Position(P, P[j]-P[i]) ); 4035else 4036Add(KK1, (-1*To[p+Position(P, P[i])][Position(P,P[j])][2][1]+1*To[p+Position(P, K[i])][Position(P,K[j])][2][1])); 4037Add(KK1, Position(P, K[j]-K[i]) ); 4038Add(KK2, +1*(+1*To[p+Position(P, P[i])][Position(P,P[j])][2][1]-1*To[p+Position(P, K[i])][Position(P,K[j])][2][1])); 4039Add(KK2, Position(P, P[j]-P[i]) ); 4040fi; 4041 4042else 4043 if (p+Position(P,K[j]-K[i]) = p+Position(P,P[j]-P[i])) then 4044 4045if (t[Position(P,P[j]-P[i] )] = 1) then 4046Add(KK2, +1*(+1*To[p+Position(P, P[i])][Position(P,P[j])][2][1]+1*To[p+Position(P, K[i])][Position(P,K[j])][2][1])); 4047Add(KK2, Position(P, P[j]-P[i]) ); 4048else 4049Add(KK1, (-1*To[p+Position(P, P[i])][Position(P,P[j])][2][1]+1*To[p+Position(P, K[i])][Position(P,K[j])][2][1])); 4050Add(KK1, Position(P, K[j]-K[i]) ); 4051fi; 4052 else #(p+Position(P,K[j]+K[i]) < p+Position(P,P[j]+P[i])) 4053 4054if (t[Position(P,P[j]-P[i] )] = 1) then 4055Add(KK1, -1*(-1*To[p+Position(P, P[i])][Position(P,P[j])][2][1]-1*To[p+Position(P, K[i])][Position(P,K[j])][2][1])); 4056Add(KK1, Position(P, P[j]-P[i]) ); 4057Add(KK2, +1*(+1*To[p+Position(P, P[i])][Position(P,P[j])][2][1]+1*To[p+Position(P, K[i])][Position(P,K[j])][2][1])); 4058Add(KK2, Position(P, K[j]-K[i]) ); 4059else 4060Add(KK1, (-1*To[p+Position(P, P[i])][Position(P,P[j])][2][1]+1*To[p+Position(P, K[i])][Position(P,K[j])][2][1])); 4061Add(KK1, Position(P, P[j]-P[i]) ); 4062Add(KK2, -1*(+1*To[p+Position(P, P[i])][Position(P,P[j])][2][1]-1*To[p+Position(P, K[i])][Position(P,K[j])][2][1])); 4063Add(KK2, Position(P, K[j]-K[i]) ); 4064fi; 4065 fi; 4066 4067fi; 4068fi; fi; 4069 4070fi; fi; 4071 4072SetEntrySCTable( TT, p+i, p+j , KK1); 4073SetEntrySCTable( TT, p+Position(P,K[i]), p+j, KK2); 4074 4075fi; 4076fi; 4077 4078else 4079 if ( p+Position(P, K[i]) = p+Position(P,P[i]) ) then #alpha< phi_alpha 4080 if ( p+Position(P, K[j]) > p+Position(P,P[j]) ) then #beta< phi_beta 4081 4082KK1:=[]; 4083KK2:=[]; 4084 4085if (t[i]=1) then 4086if (t[j]=1) then 4087 4088if (P[i]+P[j] in P ) then #qui so che aplha+beta < phi_aplha+phi_beta quindi sono nel caso sicuro 4089if not (IsEmpty(To[Position(P, P[i])][Position(P,P[j])][2])=true) then 4090if (p+Position(P,K[j]+K[i]) > p+Position(P,P[j]+P[i])) then 4091 4092if (t[Position(P,P[j]+P[i] )] = 1) then 4093Add(KK1, (-1*To[Position(P, P[i])][Position(P,P[j])][2][1]-1*To[Position(P, K[i])][Position(P,K[j])][2][1])); 4094Add(KK1, Position(P, P[i]+P[j]) ); 4095Add(KK2, (-1*To[Position(P, P[i])][Position(P,P[j])][2][1]-1*To[Position(P, K[i])][Position(P,K[j])][2][1])); 4096Add(KK2, Position(P, K[i]+K[j]) ); 4097else 4098Add(KK1, (-1*To[Position(P, P[i])][Position(P,P[j])][2][1]+1*To[Position(P, K[i])][Position(P,K[j])][2][1])); 4099Add(KK1, Position(P, P[i]+P[j]) ); 4100Add(KK2, (-1*To[Position(P, P[i])][Position(P,P[j])][2][1]+1*To[Position(P, K[i])][Position(P,K[j])][2][1])); 4101Add(KK2, Position(P, K[i]+K[j]) ); 4102fi; 4103 4104else 4105 if (p+Position(P,K[j]+K[i]) = p+Position(P,P[j]+P[i])) then 4106 4107if (t[Position(P,P[j]+P[i] )] = 1) then 4108Add(KK1, (-1*To[Position(P, P[i])][Position(P,P[j])][2][1]-1*To[Position(P, K[i])][Position(P,K[j])][2][1])); 4109Add(KK1, Position(P, P[i]+P[j]) ); 4110else 4111Add(KK2, (-1*To[Position(P, P[i])][Position(P,P[j])][2][1]+1*To[Position(P, K[i])][Position(P,K[j])][2][1])); 4112Add(KK2, Position(P, K[i]+K[j]) ); 4113fi; 4114 else #(p+Position(P,K[j]+K[i]) < p+Position(P,P[j]+P[i])) 4115 4116if (t[Position(P,P[j]+P[i] )] = 1) then 4117Add(KK1, (-1*To[Position(P, P[i])][Position(P,P[j])][2][1]-1*To[Position(P, K[i])][Position(P,K[j])][2][1])); 4118Add(KK1, Position(P, K[j]+K[i]) ); 4119Add(KK2, -1*(-1*To[Position(P, P[i])][Position(P,P[j])][2][1]-1*To[Position(P, K[i])][Position(P,K[j])][2][1])); 4120Add(KK2, Position(P, P[i]+P[j]) ); 4121else 4122Add(KK1, -1*(-1*To[Position(P, P[i])][Position(P,P[j])][2][1]+1*To[Position(P, K[i])][Position(P,K[j])][2][1])); 4123Add(KK1, Position(P, K[j]+K[i]) ); 4124Add(KK2, (-1*To[Position(P, P[i])][Position(P,P[j])][2][1]+1*To[Position(P, K[i])][Position(P,K[j])][2][1])); 4125Add(KK2, Position(P, P[i]+P[j]) ); 4126fi; 4127 fi; 4128 4129fi; 4130fi; fi; 4131 4132 4133####### 4134############ 4135############### 4136 4137 4138if (P[j]-P[i] in P ) then 4139if not (IsEmpty(To[p+Position(P, P[i])][Position(P,P[j])][2])=true) then 4140if (p+Position(P,K[j]-K[i]) > p+Position(P,P[j]-P[i])) then 4141if (t[Position(P,P[j]-P[i] )] = 1) then 4142Add(KK1, (-1*To[p+Position(P, P[i])][Position(P,P[j])][2][1]-1*To[p+Position(P, K[i])][Position(P,K[j])][2][1])); 4143Add(KK1, Position(P, P[j]-P[i]) ); 4144Add(KK2, (-1*To[p+Position(P, P[i])][Position(P,P[j])][2][1]-1*To[p+Position(P, K[i])][Position(P,K[j])][2][1])); 4145Add(KK2, Position(P, K[j]-K[i]) ); 4146else 4147Add(KK1, (-1*To[p+Position(P, P[i])][Position(P,P[j])][2][1]+1*To[p+Position(P, K[i])][Position(P,K[j])][2][1])); 4148Add(KK1, Position(P, P[j]-P[i]) ); 4149Add(KK2, (-1*To[p+Position(P, P[i])][Position(P,P[j])][2][1]+1*To[p+Position(P, K[i])][Position(P,K[j])][2][1])); 4150Add(KK2, Position(P, K[j]-K[i]) ); 4151fi; 4152 4153else 4154 if (p+Position(P,K[j]-K[i]) = p+Position(P,P[j]-P[i])) then 4155 4156if (t[Position(P,P[j]-P[i] )] = 1) then 4157Add(KK1, (-1*To[p+Position(P, P[i])][Position(P,P[j])][2][1]-1*To[p+Position(P, K[i])][Position(P,K[j])][2][1])); 4158Add(KK1, Position(P, P[j]-P[i]) ); 4159else 4160Add(KK2, (-1*To[p+Position(P, P[i])][Position(P,P[j])][2][1]+1*To[p+Position(P, K[i])][Position(P,K[j])][2][1])); 4161Add(KK2, Position(P, K[j]-K[i]) ); 4162fi; 4163 else #(p+Position(P,K[j]+K[i]) < p+Position(P,P[j]+P[i])) 4164 4165if (t[Position(P,P[j]-P[i] )] = 1) then 4166Add(KK1, (-1*To[p+Position(P, P[i])][Position(P,P[j])][2][1]-1*To[p+Position(P, K[i])][Position(P,K[j])][2][1])); 4167Add(KK1, Position(P, K[j]-K[i]) ); 4168Add(KK2, -1*(-1*To[p+Position(P, P[i])][Position(P,P[j])][2][1]-1*To[p+Position(P, K[i])][Position(P,K[j])][2][1])); 4169Add(KK2, Position(P, P[j]-P[i]) ); 4170else 4171Add(KK1, -1*(-1*To[p+Position(P, P[i])][Position(P,P[j])][2][1]+1*To[p+Position(P, K[i])][Position(P,K[j])][2][1])); 4172Add(KK1, Position(P, K[j]-K[i]) ); 4173Add(KK2, (-1*To[p+Position(P, P[i])][Position(P,P[j])][2][1]+1*To[p+Position(P, K[i])][Position(P,K[j])][2][1])); 4174Add(KK2, Position(P, P[j]-P[i]) ); 4175fi; 4176 fi; 4177 4178fi; 4179fi; fi; 4180 4181 4182########### 4183################## 4184#################### 4185 4186else #t[j]=-1 4187 4188if (P[i]+P[j] in P ) then #qui so che aplha+beta < phi_aplha+phi_beta quindi sono nel caso sicuro 4189if not (IsEmpty(To[Position(P, P[i])][Position(P,P[j])][2])=true) then 4190if (p+Position(P,K[j]+K[i]) > p+Position(P,P[j]+P[i])) then 4191if (t[Position(P,P[j]+P[i] )] = 1) then 4192Add(KK1, (-1*To[Position(P, P[i])][Position(P,P[j])][2][1]+1*To[Position(P, K[i])][Position(P,K[j])][2][1])); 4193Add(KK1, Position(P, P[i]+P[j]) ); 4194Add(KK2, (-1*To[Position(P, P[i])][Position(P,P[j])][2][1]+1*To[Position(P, K[i])][Position(P,K[j])][2][1])); 4195Add(KK2, Position(P, K[i]+K[j]) ); 4196else 4197Add(KK1, (-1*To[Position(P, P[i])][Position(P,P[j])][2][1]-1*To[Position(P, K[i])][Position(P,K[j])][2][1])); 4198Add(KK1, Position(P, P[i]+P[j]) ); 4199Add(KK2, (-1*To[Position(P, P[i])][Position(P,P[j])][2][1]-1*To[Position(P, K[i])][Position(P,K[j])][2][1])); 4200Add(KK2, Position(P, K[i]+K[j]) ); 4201fi; 4202 4203else 4204 if (p+Position(P,K[j]+K[i]) = p+Position(P,P[j]+P[i])) then 4205if (t[Position(P,P[j]+P[i] )] = 1) then 4206Add(KK1, (-1*To[Position(P, P[i])][Position(P,P[j])][2][1]+1*To[Position(P, K[i])][Position(P,K[j])][2][1])); 4207Add(KK1, Position(P, P[i]+P[j]) ); 4208else 4209Add(KK2, (-1*To[Position(P, P[i])][Position(P,P[j])][2][1]-1*To[Position(P, K[i])][Position(P,K[j])][2][1])); 4210Add(KK2, Position(P, K[i]+K[j]) ); 4211fi; 4212 else #(p+Position(P,K[j]+K[i]) < p+Position(P,P[j]+P[i])) 4213 4214if (t[Position(P,P[j]+P[i] )] = 1) then 4215Add(KK1, (-1*To[Position(P, P[i])][Position(P,P[j])][2][1]+1*To[Position(P, K[i])][Position(P,K[j])][2][1])); 4216Add(KK1, Position(P, K[j]+K[i]) ); 4217Add(KK2, -1*(-1*To[Position(P, P[i])][Position(P,P[j])][2][1]+1*To[Position(P, K[i])][Position(P,K[j])][2][1])); 4218Add(KK2, Position(P, P[i]+P[j]) ); 4219else 4220Add(KK1, -1*(-1*To[Position(P, P[i])][Position(P,P[j])][2][1]-1*To[Position(P, K[i])][Position(P,K[j])][2][1])); 4221Add(KK1, Position(P, K[j]+K[i]) ); 4222Add(KK2, (-1*To[Position(P, P[i])][Position(P,P[j])][2][1]-1*To[Position(P, K[i])][Position(P,K[j])][2][1])); 4223Add(KK2, Position(P, P[i]+P[j]) ); 4224fi; 4225 fi; 4226 4227fi; 4228fi; fi; 4229 4230 4231####### 4232############ 4233############### 4234 4235 4236if (P[j]-P[i] in P ) then 4237if not (IsEmpty(To[p+Position(P, P[i])][Position(P,P[j])][2])=true) then 4238if (p+Position(P,K[j]-K[i]) > p+Position(P,P[j]-P[i])) then 4239if (t[Position(P,P[j]-P[i] )] = 1) then 4240Add(KK1, (-1*To[p+Position(P, P[i])][Position(P,P[j])][2][1]+1*To[p+Position(P, K[i])][Position(P,K[j])][2][1])); 4241Add(KK1, Position(P, P[j]-P[i]) ); 4242Add(KK2, (-1*To[p+Position(P, P[i])][Position(P,P[j])][2][1]+1*To[p+Position(P, K[i])][Position(P,K[j])][2][1])); 4243Add(KK2, Position(P, K[j]-K[i]) ); 4244else 4245Add(KK1, (-1*To[p+Position(P, P[i])][Position(P,P[j])][2][1]-1*To[p+Position(P, K[i])][Position(P,K[j])][2][1])); 4246Add(KK1, Position(P, P[j]-P[i]) ); 4247Add(KK2, (-1*To[p+Position(P, P[i])][Position(P,P[j])][2][1]-1*To[p+Position(P, K[i])][Position(P,K[j])][2][1])); 4248Add(KK2, Position(P, K[j]-K[i]) ); 4249fi; 4250 4251else 4252 if (p+Position(P,K[j]-K[i]) = p+Position(P,P[j]-P[i])) then 4253 4254if (t[Position(P,P[j]-P[i] )] = 1) then 4255Add(KK1, (-1*To[p+Position(P, P[i])][Position(P,P[j])][2][1]+1*To[p+Position(P, K[i])][Position(P,K[j])][2][1])); 4256Add(KK1, Position(P, P[j]-P[i]) ); 4257else 4258Add(KK2, (-1*To[p+Position(P, P[i])][Position(P,P[j])][2][1]-1*To[p+Position(P, K[i])][Position(P,K[j])][2][1])); 4259Add(KK2, Position(P, K[j]-K[i]) ); 4260fi; 4261 else #(p+Position(P,K[j]+K[i]) < p+Position(P,P[j]+P[i])) 4262 4263if (t[Position(P,P[j]-P[i] )] = 1) then 4264Add(KK1, (-1*To[p+Position(P, P[i])][Position(P,P[j])][2][1]+1*To[p+Position(P, K[i])][Position(P,K[j])][2][1])); 4265Add(KK1, Position(P, K[j]-K[i]) ); 4266Add(KK2, -1*(-1*To[p+Position(P, P[i])][Position(P,P[j])][2][1]+1*To[p+Position(P, K[i])][Position(P,K[j])][2][1])); 4267Add(KK2, Position(P, P[j]-P[i]) ); 4268else 4269Add(KK1, -1*(-1*To[p+Position(P, P[i])][Position(P,P[j])][2][1]-1*To[p+Position(P, K[i])][Position(P,K[j])][2][1])); 4270Add(KK1, Position(P, K[j]-K[i]) ); 4271Add(KK2, (-1*To[p+Position(P, P[i])][Position(P,P[j])][2][1]-1*To[p+Position(P, K[i])][Position(P,K[j])][2][1])); 4272Add(KK2, Position(P, P[j]-P[i]) ); 4273fi; 4274 fi; 4275 4276fi; 4277fi; fi; 4278 4279 4280########### 4281################## 4282#################### 4283 4284fi; 4285 4286else #t[i]=-1 4287 4288if (t[j]=1) then 4289 4290if (P[i]+P[j] in P ) then #qui so che aplha+beta < phi_aplha+phi_beta quindi sono nel caso sicuro 4291if not (IsEmpty(To[Position(P, P[i])][Position(P,P[j])][2])=true) then 4292if (p+Position(P,K[j]+K[i]) > p+Position(P,P[j]+P[i])) then 4293if (t[Position(P,P[j]+P[i] )] = 1) then 4294Add(KK1, (-1*To[Position(P, P[i])][Position(P,P[j])][2][1]+1*To[Position(P, K[i])][Position(P,K[j])][2][1])); 4295Add(KK1, Position(P, K[j]+K[i]) ); 4296Add(KK2, +1*(+1*To[Position(P, P[i])][Position(P,P[j])][2][1]-1*To[Position(P, K[i])][Position(P,K[j])][2][1])); 4297Add(KK2, Position(P, P[i]+P[j]) ); 4298else 4299Add(KK1, (-1*To[Position(P, P[i])][Position(P,P[j])][2][1]-1*To[Position(P, K[i])][Position(P,K[j])][2][1])); 4300Add(KK1, Position(P, K[j]+K[i]) ); 4301Add(KK2, +1*(+1*To[Position(P, P[i])][Position(P,P[j])][2][1]+1*To[Position(P, K[i])][Position(P,K[j])][2][1])); 4302Add(KK2, Position(P, P[i]+P[j]) ); 4303fi; 4304 4305else 4306 if (p+Position(P,K[j]+K[i]) = p+Position(P,P[j]+P[i])) then 4307if (t[Position(P,P[j]+P[i] )] = 1) then 4308Add(KK2, +1*(+1*To[Position(P, P[i])][Position(P,P[j])][2][1]-1*To[Position(P, K[i])][Position(P,K[j])][2][1])); 4309Add(KK2, Position(P, P[i]+P[j]) ); 4310else 4311Add(KK1, (-1*To[Position(P, P[i])][Position(P,P[j])][2][1]+1*To[Position(P, K[i])][Position(P,K[j])][2][1])); 4312Add(KK1, Position(P, K[j]+K[i]) ); 4313fi; 4314 else #(p+Position(P,K[j]+K[i]) < p+Position(P,P[j]+P[i])) 4315 4316if (t[Position(P,P[j]+P[i] )] = 1) then 4317Add(KK1, -1*(-1*To[Position(P, P[i])][Position(P,P[j])][2][1]+1*To[Position(P, K[i])][Position(P,K[j])][2][1])); 4318Add(KK1, Position(P, K[j]+K[i]) ); 4319Add(KK2, +1*(+1*To[Position(P, P[i])][Position(P,P[j])][2][1]-1*To[Position(P, K[i])][Position(P,K[j])][2][1])); 4320Add(KK2, Position(P, P[i]+P[j]) ); 4321else 4322 4323Add(KK1, (-1*To[Position(P, P[i])][Position(P,P[j])][2][1]-1*To[Position(P, K[i])][Position(P,K[j])][2][1])); 4324Add(KK1, Position(P, P[i]+P[j]) ); 4325Add(KK2, -1*(+1*To[Position(P, P[i])][Position(P,P[j])][2][1]+1*To[Position(P, K[i])][Position(P,K[j])][2][1])); 4326Add(KK2, Position(P, K[j]+K[i]) ); 4327fi; 4328 fi; 4329 4330fi; 4331fi; fi; 4332 4333 4334####### 4335############ 4336############### 4337 4338if (P[j]-P[i] in P ) then 4339if not (IsEmpty(To[p+Position(P, P[i])][Position(P,P[j])][2])=true) then 4340if (p+Position(P,K[j]-K[i]) > p+Position(P,P[j]-P[i])) then 4341 4342if (t[Position(P,P[j]-P[i] )] = 1) then 4343Add(KK1, (-1*To[p+Position(P, P[i])][Position(P,P[j])][2][1]+1*To[p+Position(P, K[i])][Position(P,K[j])][2][1])); 4344Add(KK1, Position(P, K[j]-K[i]) ); 4345Add(KK2, +1*(+1*To[p+Position(P, P[i])][Position(P,P[j])][2][1]-1*To[p+Position(P, K[i])][Position(P,K[j])][2][1])); 4346Add(KK2, Position(P, P[j]-P[i]) ); 4347else 4348Add(KK1, (-1*To[p+Position(P, P[i])][Position(P,P[j])][2][1]-1*To[p+Position(P, K[i])][Position(P,K[j])][2][1])); 4349Add(KK1, Position(P, K[j]-K[i]) ); 4350Add(KK2, +1*(+1*To[p+Position(P, P[i])][Position(P,P[j])][2][1]+1*To[p+Position(P, K[i])][Position(P,K[j])][2][1])); 4351Add(KK2, Position(P, P[j]-P[i]) ); 4352fi; 4353 4354else 4355 if (p+Position(P,K[j]-K[i]) = p+Position(P,P[j]-P[i])) then 4356 4357if (t[Position(P,P[j]-P[i] )] = 1) then 4358Add(KK2, +1*(+1*To[p+Position(P, P[i])][Position(P,P[j])][2][1]-1*To[p+Position(P, K[i])][Position(P,K[j])][2][1])); 4359Add(KK2, Position(P, P[j]-P[i]) ); 4360else 4361Add(KK1, (-1*To[p+Position(P, P[i])][Position(P,P[j])][2][1]-1*To[p+Position(P, K[i])][Position(P,K[j])][2][1])); 4362Add(KK1, Position(P, K[j]-K[i]) ); 4363fi; 4364 else #(p+Position(P,K[j]+K[i]) < p+Position(P,P[j]+P[i])) 4365 4366if (t[Position(P,P[j]-P[i] )] = 1) then 4367Add(KK1, -1*(-1*To[p+Position(P, P[i])][Position(P,P[j])][2][1]+1*To[p+Position(P, K[i])][Position(P,K[j])][2][1])); 4368Add(KK1, Position(P, P[j]-P[i]) ); 4369Add(KK2, +1*(+1*To[p+Position(P, P[i])][Position(P,P[j])][2][1]-1*To[p+Position(P, K[i])][Position(P,K[j])][2][1])); 4370Add(KK2, Position(P, K[j]-K[i]) ); 4371else 4372Add(KK1, (-1*To[p+Position(P, P[i])][Position(P,P[j])][2][1]-1*To[p+Position(P, K[i])][Position(P,K[j])][2][1])); 4373Add(KK1, Position(P, P[j]-P[i]) ); 4374Add(KK2, -1*(+1*To[p+Position(P, P[i])][Position(P,P[j])][2][1]+1*To[p+Position(P, K[i])][Position(P,K[j])][2][1])); 4375Add(KK2, Position(P, K[j]-K[i]) ); 4376fi; 4377 fi; 4378 4379fi; 4380fi; fi; 4381 4382 4383else 4384 4385 4386if (P[i]+P[j] in P ) then #qui so che aplha+beta < phi_aplha+phi_beta quindi sono nel caso sicuro 4387if not (IsEmpty(To[Position(P, P[i])][Position(P,P[j])][2])=true) then 4388if (p+Position(P,K[j]+K[i]) > p+Position(P,P[j]+P[i])) then 4389if (t[Position(P,P[j]+P[i] )] = 1) then 4390Add(KK1, (-1*To[Position(P, P[i])][Position(P,P[j])][2][1]-1*To[Position(P, K[i])][Position(P,K[j])][2][1])); 4391Add(KK1, Position(P, K[i]+K[j]) ); 4392Add(KK2, +1*(+1*To[Position(P, P[i])][Position(P,P[j])][2][1]+1*To[Position(P, K[i])][Position(P,K[j])][2][1])); 4393Add(KK2, Position(P, P[j]+P[i]) ); 4394else 4395Add(KK1, (-1*To[Position(P, P[i])][Position(P,P[j])][2][1]+1*To[Position(P, K[i])][Position(P,K[j])][2][1])); 4396Add(KK1, Position(P, K[i]+K[j]) ); 4397Add(KK2, +1*(+1*To[Position(P, P[i])][Position(P,P[j])][2][1]-1*To[Position(P, K[i])][Position(P,K[j])][2][1])); 4398Add(KK2, Position(P, P[j]+P[i]) ); 4399fi; 4400 4401else 4402 if (p+Position(P,K[j]+K[i]) = p+Position(P,P[j]+P[i])) then 4403 4404if (t[Position(P,P[j]+P[i] )] = 1) then 4405Add(KK2, +1*(+1*To[Position(P, P[i])][Position(P,P[j])][2][1]+1*To[Position(P, K[i])][Position(P,K[j])][2][1])); 4406Add(KK2, Position(P, P[j]+P[i]) ); 4407else 4408Add(KK1, (-1*To[Position(P, P[i])][Position(P,P[j])][2][1]+1*To[Position(P, K[i])][Position(P,K[j])][2][1])); 4409Add(KK1, Position(P, K[i]+K[j]) ); 4410fi; 4411 else #(p+Position(P,K[j]+K[i]) < p+Position(P,P[j]+P[i])) 4412 4413if (t[Position(P,P[j]+P[i] )] = 1) then 4414Add(KK1, -1*(-1*To[Position(P, P[i])][Position(P,P[j])][2][1]-1*To[Position(P, K[i])][Position(P,K[j])][2][1])); 4415Add(KK1, Position(P, P[j]+P[i]) ); 4416Add(KK2, +1*(+1*To[Position(P, P[i])][Position(P,P[j])][2][1]+1*To[Position(P, K[i])][Position(P,K[j])][2][1])); 4417Add(KK2, Position(P, K[i]+K[j]) ); 4418else 4419Add(KK1, (-1*To[Position(P, P[i])][Position(P,P[j])][2][1]+1*To[Position(P, K[i])][Position(P,K[j])][2][1])); 4420Add(KK1, Position(P, P[j]+P[i]) ); 4421Add(KK2, -1*(+1*To[Position(P, P[i])][Position(P,P[j])][2][1]-1*To[Position(P, K[i])][Position(P,K[j])][2][1])); 4422Add(KK2, Position(P, K[i]+K[j]) ); 4423fi; 4424 fi; 4425 4426fi; 4427fi; fi; 4428 4429 4430####### 4431############ 4432############### 4433 4434if (P[j]-P[i] in P ) then 4435if not (IsEmpty(To[p+Position(P, P[i])][Position(P,P[j])][2])=true) then 4436if (p+Position(P,K[j]-K[i]) > p+Position(P,P[j]-P[i])) then 4437if (t[Position(P,P[j]-P[i] )] = 1) then 4438Add(KK1, (-1*To[p+Position(P, P[i])][Position(P,P[j])][2][1]-1*To[p+Position(P, K[i])][Position(P,K[j])][2][1])); 4439Add(KK1, Position(P, K[j]-K[i]) ); 4440Add(KK2, +1*(+1*To[p+Position(P, P[i])][Position(P,P[j])][2][1]+1*To[p+Position(P, K[i])][Position(P,K[j])][2][1])); 4441Add(KK2, Position(P, P[j]-P[i]) ); 4442else 4443Add(KK1, (-1*To[p+Position(P, P[i])][Position(P,P[j])][2][1]+1*To[p+Position(P, K[i])][Position(P,K[j])][2][1])); 4444Add(KK1, Position(P, K[j]-K[i]) ); 4445Add(KK2, +1*(+1*To[p+Position(P, P[i])][Position(P,P[j])][2][1]-1*To[p+Position(P, K[i])][Position(P,K[j])][2][1])); 4446Add(KK2, Position(P, P[j]-P[i]) ); 4447fi; 4448 4449else 4450 if (p+Position(P,K[j]-K[i]) = p+Position(P,P[j]-P[i])) then 4451 4452if (t[Position(P,P[j]-P[i] )] = 1) then 4453Add(KK2, +1*(+1*To[p+Position(P, P[i])][Position(P,P[j])][2][1]+1*To[p+Position(P, K[i])][Position(P,K[j])][2][1])); 4454Add(KK2, Position(P, P[j]-P[i]) ); 4455else 4456Add(KK1, (-1*To[p+Position(P, P[i])][Position(P,P[j])][2][1]+1*To[p+Position(P, K[i])][Position(P,K[j])][2][1])); 4457Add(KK1, Position(P, K[j]-K[i]) ); 4458fi; 4459 else #(p+Position(P,K[j]+K[i]) < p+Position(P,P[j]+P[i])) 4460 4461if (t[Position(P,P[j]-P[i] )] = 1) then 4462Add(KK1, -1*(-1*To[p+Position(P, P[i])][Position(P,P[j])][2][1]-1*To[p+Position(P, K[i])][Position(P,K[j])][2][1])); 4463Add(KK1, Position(P, P[j]-P[i]) ); 4464Add(KK2, +1*(+1*To[p+Position(P, P[i])][Position(P,P[j])][2][1]+1*To[p+Position(P, K[i])][Position(P,K[j])][2][1])); 4465Add(KK2, Position(P, K[j]-K[i]) ); 4466else 4467Add(KK1, (-1*To[p+Position(P, P[i])][Position(P,P[j])][2][1]+1*To[p+Position(P, K[i])][Position(P,K[j])][2][1])); 4468Add(KK1, Position(P, P[j]-P[i]) ); 4469Add(KK2, -1*(+1*To[p+Position(P, P[i])][Position(P,P[j])][2][1]-1*To[p+Position(P, K[i])][Position(P,K[j])][2][1])); 4470Add(KK2, Position(P, K[j]-K[i]) ); 4471fi; 4472 fi; 4473 4474fi; 4475fi; fi; 4476 4477fi; 4478fi; 4479 4480SetEntrySCTable( TT, p+i, p+j , KK1); 4481SetEntrySCTable( TT, p+i, p+Position(P,K[j]), KK2); 4482 4483 4484########################## 4485########################################### 4486################################################# 4487 4488 4489 else 4490 if ( p+Position(P, K[j]) = p+Position(P,P[j]) ) then #beta = phi_beta 4491 4492 4493KK1:=[]; 4494 4495if (t[i]=1) then 4496if (t[j]=1) then 4497 4498if (P[i]+P[j] in P ) then #qui so che aplha+beta < phi_aplha + phi_beta quindi sono nel caso sicuro 4499if not (IsEmpty(To[Position(P, P[i])][Position(P,P[j])][2])=true) then 4500if (t[Position(P,P[i]+P[j])]=1) then 4501Add(KK1, -2*To[Position(P, P[i])][Position(P,P[j])][2][1]); 4502Add(KK1, Position(P, P[i]+P[j]) ); 4503fi; fi; fi; 4504 4505if (P[j]-P[i] in P ) then 4506if not (IsEmpty(To[p+Position(P, P[i])][Position(P,P[j])][2])=true) then 4507if (t[Position(P,P[j]-P[i])]=1) then 4508if (p+Position(P,K[j]-K[i]) > p+Position(P,P[j]-P[i])) then 4509Add(KK1, -2*To[p+Position(P, P[i])][Position(P,P[j])][2][1]); 4510Add(KK1, Position(P, P[j]-P[i]) ); 4511else 4512 if (p+Position(P,K[j]-K[i]) = p+Position(P, P[j]-P[i])) then 4513Add(KK1, -2*To[p+Position(P, P[i])][Position(P,P[j])][2][1]); 4514Add(KK1, Position(P, P[j]-P[i]) ); 4515 else 4516Add(KK1, -2*To[p+Position(P, P[i])][Position(P,P[j])][2][1]); 4517Add(KK1, Position(P, K[j]-K[i]) ); 4518 fi; 4519fi; fi; fi; fi; 4520 4521SetEntrySCTable( TT, p+i, p+j , KK1); 4522 4523else 4524 4525if (P[i]+P[j] in P ) then #qui so che aplha+beta < phi_aplha+phi_beta quindi sono nel caso sicuro 4526if not (IsEmpty(To[Position(P, P[i])][Position(P,P[j])][2])=true) then 4527if (t[Position(P,P[j]+P[i])]=-1) then 4528Add(KK1, -2*To[Position(P, P[i])][Position(P,P[j])][2][1]); 4529Add(KK1, Position(P, P[i]+P[j]) ); 4530fi; fi; fi; 4531 4532if (P[j]-P[i] in P ) then 4533if not (IsEmpty(To[p+Position(P, P[i])][Position(P,P[j])][2])=true) then 4534if (t[Position(P,P[j]-P[i])]=-1) then 4535if (p+Position(P,K[j]-K[i]) > p+Position(P,P[j]-P[i])) then 4536Add(KK1, -2*To[p+Position(P, P[i])][Position(P,P[j])][2][1]); 4537Add(KK1, Position(P, P[j]-P[i]) ); 4538else 4539 if (p+Position(P,K[j]-K[i]) = p+Position(P, P[j]-P[i])) then 4540Add(KK1, -2*To[p+Position(P, P[i])][Position(P,P[j])][2][1]); 4541Add(KK1, Position(P, P[j]-P[i]) ); 4542 else 4543Add(KK1, -2*To[p+Position(P, P[i])][Position(P,P[j])][2][1]); 4544Add(KK1, Position(P, K[j]-K[i]) ); 4545 fi; 4546fi; fi; fi; fi; 4547SetEntrySCTable( TT, p+i, p+j , KK1); 4548fi; 4549 4550else 4551if (t[j]=1) then 4552 4553if (P[i]+P[j] in P ) then #qui so che aplha+beta < phi_aplha+phi_beta quindi sono nel caso sicuro 4554if not (IsEmpty(To[Position(P, P[i])][Position(P,P[j])][2])=true) then 4555if (t[Position(P,P[j]+P[i])]=-1) then 4556Add(KK1, -2*To[Position(P, P[i])][Position(P,P[j])][2][1]); 4557Add(KK1, Position(P, P[i]+P[j]) ); 4558fi; fi; fi; 4559 4560if (P[j]-P[i] in P ) then 4561if not (IsEmpty(To[p+Position(P, P[i])][Position(P,P[j])][2])=true) then 4562if (t[Position(P,P[j]-P[i])]=-1) then 4563if (p+Position(P,K[j]-K[i]) > p+Position(P,P[j]-P[i])) then 4564Add(KK1, -2*To[p+Position(P, P[i])][Position(P,P[j])][2][1]); 4565Add(KK1, Position(P, P[j]-P[i]) ); 4566else 4567 if (p+Position(P,K[j]-K[i]) = p+Position(P, P[j]-P[i])) then 4568Add(KK1, -2*To[p+Position(P, P[i])][Position(P,P[j])][2][1]); 4569Add(KK1, Position(P, P[j]-P[i]) ); 4570 else 4571Add(KK1, -2*To[p+Position(P, P[i])][Position(P,P[j])][2][1]); 4572Add(KK1, Position(P, K[j]-K[i]) ); 4573 fi; 4574fi; fi; fi; fi; 4575 4576SetEntrySCTable( TT, p+i, p+j , KK1); 4577 4578 4579else 4580 4581 4582if (P[i]+P[j] in P ) then #qui so che aplha+beta < phi_aplha+phi_beta quindi sono nel caso sicuro 4583if not (IsEmpty(To[Position(P, P[i])][Position(P,P[j])][2])=true) then 4584if (t[Position(P,P[j]+P[i])]=1) then 4585Add(KK1, +2*To[Position(P, P[i])][Position(P,P[j])][2][1]); 4586Add(KK1, Position(P, P[i]+P[j]) ); 4587fi; fi; fi; 4588 4589if (P[j]-P[i] in P ) then 4590if not (IsEmpty(To[p+Position(P, P[i])][Position(P,P[j])][2])=true) then 4591if (t[Position(P,P[j]-P[i])]=1) then 4592if (p+Position(P,K[j]-K[i]) > p+Position(P,P[j]-P[i])) then 4593Add(KK1, +2*To[p+Position(P, P[i])][Position(P,P[j])][2][1]); 4594Add(KK1, Position(P, P[j]-P[i]) ); 4595else 4596 if (p+Position(P,K[j]-K[i]) = p+Position(P, P[j]-P[i])) then 4597Add(KK1, +2*To[p+Position(P, P[i])][Position(P,P[j])][2][1]); 4598Add(KK1, Position(P, P[j]-P[i]) ); 4599 else 4600Add(KK1, +2*To[p+Position(P, P[i])][Position(P,P[j])][2][1]); 4601Add(KK1, Position(P, K[j]-K[i]) ); 4602 fi; 4603fi; fi; fi; fi; 4604 4605SetEntrySCTable( TT, p+i, p+j , KK1); 4606 4607fi; 4608 4609 4610fi; fi; fi; 4611 4612fi; fi; 4613 4614 4615od; od; 4616 4617for i in [1..p] do #variazione alpha per gli X 4618 if ( Position(P, K[i]) > Position(P,P[i]) ) then #alpha< phi_alpha (ragiono con gli X) 4619KK1:=[]; 4620 4621if (t[i] = 1) then 4622 4623if (P[i]+K[i] in P ) then 4624if not (IsEmpty(To[i][Position(P,K[i])][2] ) = true ) then 4625if (t[Position(P, P[i]+K[i])]=-1) then 4626Add(KK1, +1*To[Position(P, P[i])][Position(P,K[i])][2][1]); 4627Add(KK1, Position(P, K[i]+P[i]) ); 4628fi; fi; fi; 4629 4630else 4631 4632if (P[i]+K[i] in P ) then 4633if not (IsEmpty(To[i][Position(P,K[i])][2] ) = true ) then 4634if (t[Position(P, P[i]+K[i])]=-1) then 4635Add(KK1, -1*To[Position(P, P[i])][Position(P,K[i])][2][1]); 4636Add(KK1, Position(P, K[i]+P[i]) ); 4637fi; fi; fi; 4638 4639fi; 4640 4641SetEntrySCTable( TT, p+i, p+Position(P,K[i]) , KK1); 4642 4643 fi; 4644od; 4645 4646################################################################################################ 4647######################################################################################################## 4648 4649############################################################################################################################################# 4650################################################################################################################### 4651 4652#Prodotti [X,Y] con indici differenti X>Y ovvero alpha > beta !!!!!!! 4653 4654 4655for i in [2..p] do #variazione alpha per gli X 4656 for j in [1..i-1] do #variazione beta < alpha per gli Y 4657 if ( Position(P, K[i]) > Position(P,P[i]) ) then #alpha< phi_alpha (ragiono con gli X) 4658 if ( p+Position(P, K[j]) > p+Position(P,P[j]) ) then # beta< phi_beta (ragiono con gli Y) 4659 4660KK1:=[]; # i p+j 4661KK2:=[]; # i p+jbar 4662KK3:=[]; # ibar p+j 4663KK4:=[]; # ibar p+jbar 4664 4665if (t[i]=1) then 4666if (t[j]=1) then 4667 4668if (P[i]+P[j] in P ) then #qui so che aplha+beta < phi_aplha+phi_beta quindi sono nel caso sicuro 4669if not (IsEmpty(To[Position(P, P[i])][Position(P,P[j])][2])=true) then 4670if (p+Position(P,K[j]+K[i]) > p+Position(P,P[j]+P[i])) then 4671 4672if (t[Position(P,P[j]+P[i] )] = 1) then 4673Add(KK1, (+1*To[Position(P, P[i])][Position(P,P[j])][2][1]+1*To[Position(P, K[i])][Position(P,K[j])][2][1])/2); 4674Add(KK1, p+Position(P, P[i]+P[j]) ); 4675Add(KK2, (+1*To[Position(P, P[i])][Position(P,P[j])][2][1]+1*To[Position(P, K[i])][Position(P,K[j])][2][1])/2); 4676Add(KK2, p+Position(P, K[i]+K[j]) ); 4677Add(KK3, (+1*To[Position(P, P[i])][Position(P,P[j])][2][1]+1*To[Position(P, K[i])][Position(P,K[j])][2][1])/2); 4678Add(KK3, p+Position(P, K[i]+K[j]) ); 4679Add(KK4, -1*(+1*To[Position(P, P[i])][Position(P,P[j])][2][1]+1*To[Position(P, K[i])][Position(P,K[j])][2][1])/2); 4680Add(KK4, p+Position(P, P[i]+P[j]) ); 4681else 4682Add(KK1, (+1*To[Position(P, P[i])][Position(P,P[j])][2][1]-1*To[Position(P, K[i])][Position(P,K[j])][2][1])/2); 4683Add(KK1, p+Position(P, P[i]+P[j]) ); 4684Add(KK2, (+1*To[Position(P, P[i])][Position(P,P[j])][2][1]-1*To[Position(P, K[i])][Position(P,K[j])][2][1])/2); 4685Add(KK2, p+Position(P, K[i]+K[j]) ); 4686Add(KK3, (+1*To[Position(P, P[i])][Position(P,P[j])][2][1]-1*To[Position(P, K[i])][Position(P,K[j])][2][1])/2); 4687Add(KK3, p+Position(P, K[i]+K[j]) ); 4688Add(KK4, -1*(+1*To[Position(P, P[i])][Position(P,P[j])][2][1]-1*To[Position(P, K[i])][Position(P,K[j])][2][1])/2); 4689Add(KK4, p+Position(P, P[i]+P[j]) ); 4690fi; 4691else 4692 if (p+Position(P,K[j]+K[i]) = p+Position(P,P[j]+P[i])) then 4693if (t[Position(P,P[j]+P[i] )] = 1) then 4694Add(KK1, (+1*To[Position(P, P[i])][Position(P,P[j])][2][1]+1*To[Position(P, K[i])][Position(P,K[j])][2][1])/2); 4695Add(KK1, p+Position(P, P[i]+P[j]) ); 4696Add(KK4, -1*(+1*To[Position(P, P[i])][Position(P,P[j])][2][1]+1*To[Position(P, K[i])][Position(P,K[j])][2][1])/2); 4697Add(KK4, p+Position(P, P[i]+P[j]) ); 4698else 4699Add(KK2, (+1*To[Position(P, P[i])][Position(P,P[j])][2][1]-1*To[Position(P, K[i])][Position(P,K[j])][2][1])/2); 4700Add(KK2, p+Position(P, K[i]+K[j]) ); 4701Add(KK3, (+1*To[Position(P, P[i])][Position(P,P[j])][2][1]-1*To[Position(P, K[i])][Position(P,K[j])][2][1])/2); 4702Add(KK3, p+Position(P, K[i]+K[j]) ); 4703fi; 4704 else #(p+Position(P,K[j]+K[i]) < p+Position(P,P[j]+P[i])) 4705if (t[Position(P,P[j]+P[i] )] = 1) then 4706Add(KK1, (+1*To[Position(P, P[i])][Position(P,P[j])][2][1]+1*To[Position(P, K[i])][Position(P,K[j])][2][1])/2); 4707Add(KK1, p+Position(P, K[j]+K[i]) ); 4708Add(KK2, -1*(+1*To[Position(P, P[i])][Position(P,P[j])][2][1]+1*To[Position(P, K[i])][Position(P,K[j])][2][1])/2); 4709Add(KK2, p+Position(P, P[i]+P[j]) ); 4710Add(KK3, -1*(+1*To[Position(P, P[i])][Position(P,P[j])][2][1]+1*To[Position(P, K[i])][Position(P,K[j])][2][1])/2); 4711Add(KK3, p+Position(P, P[i]+P[j]) ); 4712Add(KK4, -1*(+1*To[Position(P, P[i])][Position(P,P[j])][2][1]+1*To[Position(P, K[i])][Position(P,K[j])][2][1])/2); 4713Add(KK4, p+Position(P,K[j]+K[i]) ); 4714else 4715Add(KK1, -1*(+1*To[Position(P, P[i])][Position(P,P[j])][2][1]-1*To[Position(P, K[i])][Position(P,K[j])][2][1])/2); 4716Add(KK1, p+Position(P, K[j]+K[i]) ); 4717Add(KK2, (+1*To[Position(P, P[i])][Position(P,P[j])][2][1]-1*To[Position(P, K[i])][Position(P,K[j])][2][1])/2); 4718Add(KK2, p+Position(P, P[i]+P[j]) ); 4719Add(KK3, (+1*To[Position(P, P[i])][Position(P,P[j])][2][1]-1*To[Position(P, K[i])][Position(P,K[j])][2][1])/2); 4720Add(KK3, p+Position(P, P[i]+P[j]) ); 4721Add(KK4, +1*(+1*To[Position(P, P[i])][Position(P,P[j])][2][1]-1*To[Position(P, K[i])][Position(P,K[j])][2][1])/2); 4722Add(KK4, p+Position(P, K[j]+K[i]) ); 4723fi; 4724 fi; 4725fi; 4726fi; fi; 4727 4728############### 4729 4730if (P[i]-P[j] in P ) then 4731if not (IsEmpty(To[Position(P, P[i])][p+Position(P,P[j])][2])=true) then 4732if (p+Position(P,K[i]-K[j]) > p+Position(P,P[i]-P[j])) then 4733 4734if (t[Position(P,P[i]-P[j] )] = 1) then 4735Add(KK1, (+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])/2); 4736Add(KK1, p+Position(P, P[i]-P[j]) ); 4737Add(KK2, (+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])/2); 4738Add(KK2, p+Position(P, K[i]-K[j]) ); 4739Add(KK3, (+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])/2); 4740Add(KK3, p+Position(P, K[i]-K[j]) ); 4741Add(KK4, -1*(+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])/2); 4742Add(KK4, p+Position(P, P[i]-P[j]) ); 4743else 4744Add(KK1, (+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])/2); 4745Add(KK1, p+Position(P, P[i]-P[j]) ); 4746Add(KK2, (+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])/2); 4747Add(KK2, p+Position(P, K[i]-K[j]) ); 4748Add(KK3, (+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])/2); 4749Add(KK3, p+Position(P, K[i]-K[j]) ); 4750Add(KK4, -1*(+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])/2); 4751Add(KK4, p+Position(P, P[i]-P[j]) ); 4752fi; 4753else 4754 if (p+Position(P,K[i]-K[j]) = p+Position(P,P[i]-P[j])) then 4755if (t[Position(P,P[i]-P[j] )] = 1) then 4756Add(KK1, (+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])/2); 4757Add(KK1, p+Position(P, P[i]-P[j]) ); 4758Add(KK4, -1*(+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])/2); 4759Add(KK4, p+Position(P, P[i]-P[j]) ); 4760else 4761Add(KK2, (+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])/2); 4762Add(KK2, p+Position(P, K[i]-K[j]) ); 4763Add(KK3, (+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])/2); 4764Add(KK3, p+Position(P, K[i]-K[j]) ); 4765fi; 4766 else #(p+Position(P,K[j]+K[i]) < p+Position(P,P[j]+P[i])) 4767if (t[Position(P,P[i]-P[j] )] = 1) then 4768Add(KK1, (+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])/2); 4769Add(KK1, p+Position(P, K[i]-K[j]) ); 4770Add(KK2, -1*(+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])/2); 4771Add(KK2, p+Position(P, P[i]-P[j]) ); 4772Add(KK3, -1*(+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])/2); 4773Add(KK3, p+Position(P, P[i]-P[j]) ); 4774Add(KK4, -1*(+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])/2); 4775Add(KK4, p+Position(P, K[i]-K[j]) ); 4776else 4777Add(KK1, -1*(+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])/2); 4778Add(KK1, p+Position(P, K[i]-K[j]) ); 4779Add(KK2, (+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])/2); 4780Add(KK2, p+Position(P, P[i]-P[j]) ); 4781Add(KK3, (+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])/2); 4782Add(KK3, p+Position(P, P[i]-P[j]) ); 4783Add(KK4, +1*(+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])/2); 4784Add(KK4, p+Position(P, K[i]-K[j]) ); 4785fi; 4786 fi; 4787fi; 4788fi; fi; 4789 4790############# 4791 4792if (P[i]+K[j] in P ) then 4793if not (IsEmpty(To[Position(P, P[i])][Position(P,K[j])][2])=true) then 4794if (p+Position(P,K[i]+P[j]) > p+Position(P,P[i]+K[j])) then 4795 4796if (t[Position(P,P[i]+K[j] )] = 1) then 4797Add(KK1, +1*(+1*To[Position(P, P[i])][Position(P,K[j])][2][1]+1*To[Position(P, K[i])][Position(P,P[j])][2][1])/2); 4798Add(KK1, p+Position(P, P[i]+K[j]) ); 4799Add(KK2, +1*(-1*To[Position(P, P[i])][Position(P,K[j])][2][1]-1*To[Position(P, K[i])][Position(P,P[j])][2][1])/2); 4800Add(KK2, p+Position(P, K[i]+P[j]) ); 4801Add(KK3, +1*(+1*To[Position(P, P[i])][Position(P,K[j])][2][1]+1*To[Position(P, K[i])][Position(P,P[j])][2][1])/2); 4802Add(KK3, p+Position(P, K[i]+P[j]) ); 4803Add(KK4, -1*(-1*To[Position(P, P[i])][Position(P,K[j])][2][1]-1*To[Position(P, K[i])][Position(P,P[j])][2][1])/2); 4804Add(KK4, p+Position(P, P[i]+K[j]) ); 4805else 4806Add(KK1, +1*(+1*To[Position(P, P[i])][Position(P,K[j])][2][1]-1*To[Position(P, K[i])][Position(P,P[j])][2][1])/2); 4807Add(KK1, p+Position(P, P[i]+K[j]) ); 4808Add(KK2, +1*(-1*To[Position(P, P[i])][Position(P,K[j])][2][1]+1*To[Position(P, K[i])][Position(P,P[j])][2][1])/2); 4809Add(KK2, p+Position(P, K[i]+P[j]) ); 4810Add(KK3, +1*(+1*To[Position(P, P[i])][Position(P,K[j])][2][1]-1*To[Position(P, K[i])][Position(P,P[j])][2][1])/2); 4811Add(KK3, p+Position(P, K[i]+P[j]) ); 4812Add(KK4, -1*(-1*To[Position(P, P[i])][Position(P,K[j])][2][1]+1*To[Position(P, K[i])][Position(P,P[j])][2][1])/2); 4813Add(KK4, p+Position(P, P[i]+K[j]) ); 4814fi; 4815else 4816 if (p+Position(P,K[i]+P[j]) = p+Position(P,P[i]+K[j])) then 4817if (t[Position(P,K[j]+P[i] )] = 1) then 4818Add(KK1, +1*(+1*To[Position(P, P[i])][Position(P,K[j])][2][1]+1*To[Position(P, K[i])][Position(P,P[j])][2][1])/2); 4819Add(KK1, p+Position(P, P[i]+K[j]) ); 4820Add(KK4, -1*(-1*To[Position(P, P[i])][Position(P,K[j])][2][1]-1*To[Position(P, K[i])][Position(P,P[j])][2][1])/2); 4821Add(KK4, p+Position(P, P[i]+K[j]) ); 4822else 4823Add(KK2, +1*(-1*To[Position(P, P[i])][Position(P,K[j])][2][1]+1*To[Position(P, K[i])][Position(P,P[j])][2][1])/2); 4824Add(KK2, p+Position(P, K[i]+P[j]) ); 4825Add(KK3, +1*(+1*To[Position(P, P[i])][Position(P,K[j])][2][1]-1*To[Position(P, K[i])][Position(P,P[j])][2][1])/2); 4826Add(KK3, p+Position(P, K[i]+P[j]) ); 4827fi; 4828 else #(p+Position(P,K[j]+K[i]) < p+Position(P,P[j]+P[i])) 4829if (t[Position(P,P[i]+K[j] )] = 1) then 4830Add(KK1, +1*(+1*To[Position(P, P[i])][Position(P,K[j])][2][1]+1*To[Position(P, K[i])][Position(P,P[j])][2][1])/2); 4831Add(KK1, p+Position(P, K[i]+P[j]) ); 4832Add(KK2, -1*(-1*To[Position(P, P[i])][Position(P,K[j])][2][1]-1*To[Position(P, K[i])][Position(P,P[j])][2][1])/2); 4833Add(KK2, p+Position(P, P[i]+K[j]) ); 4834Add(KK3, -1*(+1*To[Position(P, P[i])][Position(P,K[j])][2][1]+1*To[Position(P, K[i])][Position(P,P[j])][2][1])/2); 4835Add(KK3, p+Position(P, P[i]+K[j]) ); 4836Add(KK4, -1*(-1*To[Position(P, P[i])][Position(P,K[j])][2][1]-1*To[Position(P, K[i])][Position(P,P[j])][2][1])/2); 4837Add(KK4, p+Position(P, K[i]+P[j]) ); 4838else 4839Add(KK1, -1*(+1*To[Position(P, P[i])][Position(P,K[j])][2][1]-1*To[Position(P, K[i])][Position(P,P[j])][2][1])/2); 4840Add(KK1, p+Position(P, K[i]+P[j]) ); 4841Add(KK2, +1*(-1*To[Position(P, P[i])][Position(P,K[j])][2][1]+1*To[Position(P, K[i])][Position(P,P[j])][2][1])/2); 4842Add(KK2, p+Position(P, P[i]+K[j]) ); 4843Add(KK3, +1*(+1*To[Position(P, P[i])][Position(P,K[j])][2][1]-1*To[Position(P, K[i])][Position(P,P[j])][2][1])/2); 4844Add(KK3, p+Position(P, P[i]+K[j]) ); 4845Add(KK4, +1*(-1*To[Position(P, P[i])][Position(P,K[j])][2][1]+1*To[Position(P, K[i])][Position(P,P[j])][2][1])/2); 4846Add(KK4, p+Position(P, K[i]+P[j]) ); 4847fi; 4848 fi; 4849fi; 4850fi; fi; 4851 4852############# 4853 4854if (P[i]-K[j] in P ) then 4855if not (IsEmpty(To[Position(P, P[i])][p+Position(P,K[j])][2])=true) then 4856if (p+Position(P,K[i]-P[j]) > p+Position(P,P[i]-K[j])) then 4857 4858if (t[Position(P,P[i]-K[j] )] = 1) then 4859Add(KK1, (+1*To[Position(P, P[i])][p+Position(P,K[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,P[j])][2][1])/2); 4860Add(KK1, p+Position(P, P[i]-K[j]) ); 4861Add(KK2, (-1*To[Position(P, P[i])][p+Position(P,K[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,P[j])][2][1])/2); 4862Add(KK2, p+Position(P, K[i]-P[j]) ); 4863Add(KK3, (+1*To[Position(P, P[i])][p+Position(P,K[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,P[j])][2][1])/2); 4864Add(KK3, p+Position(P, K[i]-P[j]) ); 4865Add(KK4, -1*(-1*To[Position(P, P[i])][p+Position(P,K[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,P[j])][2][1])/2); 4866Add(KK4, p+Position(P, P[i]-K[j]) ); 4867else 4868Add(KK1, (+1*To[Position(P, P[i])][p+Position(P,K[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,P[j])][2][1])/2); 4869Add(KK1, p+Position(P, P[i]-K[j]) ); 4870Add(KK2, (-1*To[Position(P, P[i])][p+Position(P,K[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,P[j])][2][1])/2); 4871Add(KK2, p+Position(P, K[i]-P[j]) ); 4872Add(KK3, (+1*To[Position(P, P[i])][p+Position(P,K[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,P[j])][2][1])/2); 4873Add(KK3, p+Position(P, K[i]-P[j]) ); 4874Add(KK4, -1*(-1*To[Position(P, P[i])][p+Position(P,K[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,P[j])][2][1])/2); 4875Add(KK4, p+Position(P, P[i]-K[j]) ); 4876fi; 4877else 4878 if (p+Position(P,K[i]-P[j]) = p+Position(P,P[i]-K[j])) then 4879if (t[Position(P,P[i]-K[j] )] = 1) then 4880Add(KK1, (+1*To[Position(P, P[i])][p+Position(P,K[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,P[j])][2][1])/2); 4881Add(KK1, p+Position(P, P[i]-K[j]) ); 4882Add(KK4, -1*(-1*To[Position(P, P[i])][p+Position(P,K[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,P[j])][2][1])/2); 4883Add(KK4, p+Position(P, P[i]-K[j]) ); 4884else 4885Add(KK2, (-1*To[Position(P, P[i])][p+Position(P,K[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,P[j])][2][1])/2); 4886Add(KK2, p+Position(P, K[i]-P[j]) ); 4887Add(KK3, (+1*To[Position(P, P[i])][p+Position(P,K[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,P[j])][2][1])/2); 4888Add(KK3, p+Position(P, K[i]-P[j]) ); 4889fi; 4890 else #(p+Position(P,K[j]+K[i]) < p+Position(P,P[j]+P[i])) 4891if (t[Position(P,P[i]-K[j] )] = 1) then 4892Add(KK1, (+1*To[Position(P, P[i])][p+Position(P,K[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,P[j])][2][1])/2); 4893Add(KK1, p+Position(P, K[i]-P[j]) ); 4894Add(KK2, -1*(-1*To[Position(P, P[i])][p+Position(P,K[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,P[j])][2][1])/2); 4895Add(KK2, p+Position(P, P[i]-K[j]) ); 4896Add(KK3, -1*(+1*To[Position(P, P[i])][p+Position(P,K[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,P[j])][2][1])/2); 4897Add(KK3, p+Position(P, P[i]-K[j]) ); 4898Add(KK4, -1*(-1*To[Position(P, P[i])][p+Position(P,K[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,P[j])][2][1])/2); 4899Add(KK4, p+Position(P, K[i]-P[j]) ); 4900else 4901Add(KK1, -1*(+1*To[Position(P, P[i])][p+Position(P,K[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,P[j])][2][1])/2); 4902Add(KK1, p+Position(P, K[i]-P[j]) ); 4903Add(KK2, (-1*To[Position(P, P[i])][p+Position(P,K[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,P[j])][2][1])/2); 4904Add(KK2, p+Position(P, P[i]-K[j]) ); 4905Add(KK3, (+1*To[Position(P, P[i])][p+Position(P,K[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,P[j])][2][1])/2); 4906Add(KK3, p+Position(P, P[i]-K[j]) ); 4907Add(KK4, -1*(-1*To[Position(P, P[i])][p+Position(P,K[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,P[j])][2][1])/2); 4908Add(KK4, p+Position(P, K[i]-P[j]) ); 4909fi; 4910 fi; 4911fi; 4912fi; fi; 4913 4914############# 4915else # ovvero t[j]=-1 4916######################### 4917 4918if (P[i]+P[j] in P ) then #qui so che aplha+beta < phi_aplha+phi_beta quindi sono nel caso sicuro 4919if not (IsEmpty(To[Position(P, P[i])][Position(P,P[j])][2])=true) then 4920if (p+Position(P,K[j]+K[i]) > p+Position(P,P[j]+P[i])) then 4921 4922if (t[Position(P,P[j]+P[i] )] = 1) then 4923Add(KK1, (+1*To[Position(P, P[i])][Position(P,P[j])][2][1]-1*To[Position(P, K[i])][Position(P,K[j])][2][1])/2); 4924Add(KK1, p+Position(P, P[i]+P[j]) ); 4925Add(KK2, (+1*To[Position(P, P[i])][Position(P,P[j])][2][1]-1*To[Position(P, K[i])][Position(P,K[j])][2][1])/2); 4926Add(KK2, p+Position(P, K[i]+K[j]) ); 4927Add(KK3, (+1*To[Position(P, P[i])][Position(P,P[j])][2][1]-1*To[Position(P, K[i])][Position(P,K[j])][2][1])/2); 4928Add(KK3, p+Position(P, K[i]+K[j]) ); 4929Add(KK4, -1*(+1*To[Position(P, P[i])][Position(P,P[j])][2][1]-1*To[Position(P, K[i])][Position(P,K[j])][2][1])/2); 4930Add(KK4, p+Position(P, P[i]+P[j]) ); 4931else 4932Add(KK1, (+1*To[Position(P, P[i])][Position(P,P[j])][2][1]+1*To[Position(P, K[i])][Position(P,K[j])][2][1])/2); 4933Add(KK1, p+Position(P, P[i]+P[j]) ); 4934Add(KK2, (+1*To[Position(P, P[i])][Position(P,P[j])][2][1]+1*To[Position(P, K[i])][Position(P,K[j])][2][1])/2); 4935Add(KK2, p+Position(P, K[i]+K[j]) ); 4936Add(KK3, (+1*To[Position(P, P[i])][Position(P,P[j])][2][1]+1*To[Position(P, K[i])][Position(P,K[j])][2][1])/2); 4937Add(KK3, p+Position(P, K[i]+K[j]) ); 4938Add(KK4, -1*(+1*To[Position(P, P[i])][Position(P,P[j])][2][1]+1*To[Position(P, K[i])][Position(P,K[j])][2][1])/2); 4939Add(KK4, p+Position(P, P[i]+P[j]) ); 4940fi; 4941else 4942 if (p+Position(P,K[j]+K[i]) = p+Position(P,P[j]+P[i])) then 4943if (t[Position(P,P[j]+P[i] )] = 1) then 4944Add(KK1, (+1*To[Position(P, P[i])][Position(P,P[j])][2][1]-1*To[Position(P, K[i])][Position(P,K[j])][2][1])/2); 4945Add(KK1, p+Position(P, P[i]+P[j]) ); 4946Add(KK4, -1*(+1*To[Position(P, P[i])][Position(P,P[j])][2][1]-1*To[Position(P, K[i])][Position(P,K[j])][2][1])/2); 4947Add(KK4, p+Position(P, P[i]+P[j]) ); 4948else 4949Add(KK2, (+1*To[Position(P, P[i])][Position(P,P[j])][2][1]+1*To[Position(P, K[i])][Position(P,K[j])][2][1])/2); 4950Add(KK2, p+Position(P, K[i]+K[j]) ); 4951Add(KK3, (+1*To[Position(P, P[i])][Position(P,P[j])][2][1]+1*To[Position(P, K[i])][Position(P,K[j])][2][1])/2); 4952Add(KK3, p+Position(P, K[i]+K[j]) ); 4953fi; 4954 else #(p+Position(P,K[j]+K[i]) < p+Position(P,P[j]+P[i])) 4955if (t[Position(P,P[j]+P[i] )] = 1) then 4956Add(KK1, (+1*To[Position(P, P[i])][Position(P,P[j])][2][1]-1*To[Position(P, K[i])][Position(P,K[j])][2][1])/2); 4957Add(KK1, p+Position(P, K[j]+K[i]) ); 4958Add(KK2, -1*(+1*To[Position(P, P[i])][Position(P,P[j])][2][1]-1*To[Position(P, K[i])][Position(P,K[j])][2][1])/2); 4959Add(KK2, p+Position(P, P[i]+P[j]) ); 4960Add(KK3, -1*(+1*To[Position(P, P[i])][Position(P,P[j])][2][1]-1*To[Position(P, K[i])][Position(P,K[j])][2][1])/2); 4961Add(KK3, p+Position(P, P[i]+P[j]) ); 4962Add(KK4, -1*(+1*To[Position(P, P[i])][Position(P,P[j])][2][1]-1*To[Position(P, K[i])][Position(P,K[j])][2][1])/2); 4963Add(KK4, p+Position(P,K[j]+K[i]) ); 4964else 4965Add(KK1, -1*(+1*To[Position(P, P[i])][Position(P,P[j])][2][1]+1*To[Position(P, K[i])][Position(P,K[j])][2][1])/2); 4966Add(KK1, p+Position(P, K[j]+K[i]) ); 4967Add(KK2, (+1*To[Position(P, P[i])][Position(P,P[j])][2][1]+1*To[Position(P, K[i])][Position(P,K[j])][2][1])/2); 4968Add(KK2, p+Position(P, P[i]+P[j]) ); 4969Add(KK3, (+1*To[Position(P, P[i])][Position(P,P[j])][2][1]+1*To[Position(P, K[i])][Position(P,K[j])][2][1])/2); 4970Add(KK3, p+Position(P, P[i]+P[j]) ); 4971Add(KK4, +1*(+1*To[Position(P, P[i])][Position(P,P[j])][2][1]+1*To[Position(P, K[i])][Position(P,K[j])][2][1])/2); 4972Add(KK4, p+Position(P, K[j]+K[i]) ); 4973fi; 4974 fi; 4975fi; 4976fi; fi; 4977 4978############### 4979 4980if (P[i]-P[j] in P ) then 4981if not (IsEmpty(To[Position(P, P[i])][p+Position(P,P[j])][2])=true) then 4982if (p+Position(P,K[i]-K[j]) > p+Position(P,P[i]-P[j])) then 4983 4984if (t[Position(P,P[i]-P[j] )] = 1) then 4985Add(KK1, (+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])/2); 4986Add(KK1, p+Position(P, P[i]-P[j]) ); 4987Add(KK2, (+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])/2); 4988Add(KK2, p+Position(P, K[i]-K[j]) ); 4989Add(KK3, (+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])/2); 4990Add(KK3, p+Position(P, K[i]-K[j]) ); 4991Add(KK4, -1*(+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])/2); 4992Add(KK4, p+Position(P, P[i]-P[j]) ); 4993else 4994Add(KK1, (+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])/2); 4995Add(KK1, p+Position(P, P[i]-P[j]) ); 4996Add(KK2, (+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])/2); 4997Add(KK2, p+Position(P, K[i]-K[j]) ); 4998Add(KK3, (+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])/2); 4999Add(KK3, p+Position(P, K[i]-K[j]) ); 5000Add(KK4, -1*(+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])/2); 5001Add(KK4, p+Position(P, P[i]-P[j]) ); 5002fi; 5003else 5004 if (p+Position(P,K[i]-K[j]) = p+Position(P,P[i]-P[j])) then 5005if (t[Position(P,P[i]-P[j] )] = 1) then 5006Add(KK1, (+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])/2); 5007Add(KK1, p+Position(P, P[i]-P[j]) ); 5008Add(KK4, -1*(+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])/2); 5009Add(KK4, p+Position(P, P[i]-P[j]) ); 5010else 5011Add(KK2, (+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])/2); 5012Add(KK2, p+Position(P, K[i]-K[j]) ); 5013Add(KK3, (+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])/2); 5014Add(KK3, p+Position(P, K[i]-K[j]) ); 5015fi; 5016 else #(p+Position(P,K[j]+K[i]) < p+Position(P,P[j]+P[i])) 5017if (t[Position(P,P[i]-P[j] )] = 1) then 5018Add(KK1, (+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])/2); 5019Add(KK1, p+Position(P, K[i]-K[j]) ); 5020Add(KK2, -1*(+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])/2); 5021Add(KK2, p+Position(P, P[i]-P[j]) ); 5022Add(KK3, -1*(+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])/2); 5023Add(KK3, p+Position(P, P[i]-P[j]) ); 5024Add(KK4, -1*(+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])/2); 5025Add(KK4, p+Position(P, K[i]-K[j]) ); 5026else 5027Add(KK1, -1*(+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])/2); 5028Add(KK1, p+Position(P, K[i]-K[j]) ); 5029Add(KK2, (+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])/2); 5030Add(KK2, p+Position(P, P[i]-P[j]) ); 5031Add(KK3, (+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])/2); 5032Add(KK3, p+Position(P, P[i]-P[j]) ); 5033Add(KK4, +1*(+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])/2); 5034Add(KK4, p+Position(P, K[i]-K[j]) ); 5035fi; 5036 fi; 5037fi; 5038fi; fi; 5039 5040############# 5041 5042if (P[i]+K[j] in P ) then 5043if not (IsEmpty(To[Position(P, P[i])][Position(P,K[j])][2])=true) then 5044if (p+Position(P,K[i]+P[j]) > p+Position(P,P[i]+K[j])) then 5045 5046if (t[Position(P,P[i]+K[j] )] = 1) then 5047Add(KK1, (-1*To[Position(P, P[i])][Position(P,K[j])][2][1]+1*To[Position(P, K[i])][Position(P,P[j])][2][1])/2); 5048Add(KK1, p+Position(P, P[i]+K[j]) ); 5049Add(KK2, (+1*To[Position(P, P[i])][Position(P,K[j])][2][1]-1*To[Position(P, K[i])][Position(P,P[j])][2][1])/2); 5050Add(KK2, p+Position(P, K[i]+P[j]) ); 5051Add(KK3, (-1*To[Position(P, P[i])][Position(P,K[j])][2][1]+1*To[Position(P, K[i])][Position(P,P[j])][2][1])/2); 5052Add(KK3, p+Position(P, K[i]+P[j]) ); 5053Add(KK4, -1*(+1*To[Position(P, P[i])][Position(P,K[j])][2][1]-1*To[Position(P, K[i])][Position(P,P[j])][2][1])/2); 5054Add(KK4, p+Position(P, P[i]+K[j]) ); 5055else 5056Add(KK1, (-1*To[Position(P, P[i])][Position(P,K[j])][2][1]-1*To[Position(P, K[i])][Position(P,P[j])][2][1])/2); 5057Add(KK1, p+Position(P, P[i]+K[j]) ); 5058Add(KK2, (+1*To[Position(P, P[i])][Position(P,K[j])][2][1]+1*To[Position(P, K[i])][Position(P,P[j])][2][1])/2); 5059Add(KK2, p+Position(P, K[i]+P[j]) ); 5060Add(KK3, (-1*To[Position(P, P[i])][Position(P,K[j])][2][1]-1*To[Position(P, K[i])][Position(P,P[j])][2][1])/2); 5061Add(KK3, p+Position(P, K[i]+P[j]) ); 5062Add(KK4, -1*(+1*To[Position(P, P[i])][Position(P,K[j])][2][1]+1*To[Position(P, K[i])][Position(P,P[j])][2][1])/2); 5063Add(KK4, p+Position(P, P[i]+K[j]) ); 5064fi; 5065else 5066 if (p+Position(P,K[i]+P[j]) = p+Position(P,P[i]+K[j])) then 5067if (t[Position(P,K[j]+P[i] )] = 1) then 5068Add(KK1, (-1*To[Position(P, P[i])][Position(P,K[j])][2][1]+1*To[Position(P, K[i])][Position(P,P[j])][2][1])/2); 5069Add(KK1, p+Position(P, P[i]+K[j]) ); 5070Add(KK4, -1*(+1*To[Position(P, P[i])][Position(P,K[j])][2][1]-1*To[Position(P, K[i])][Position(P,P[j])][2][1])/2); 5071Add(KK4, p+Position(P, P[i]+K[j]) ); 5072else 5073Add(KK2, (+1*To[Position(P, P[i])][Position(P,K[j])][2][1]+1*To[Position(P, K[i])][Position(P,P[j])][2][1])/2); 5074Add(KK2, p+Position(P, K[i]+P[j]) ); 5075Add(KK3, (-1*To[Position(P, P[i])][Position(P,K[j])][2][1]-1*To[Position(P, K[i])][Position(P,P[j])][2][1])/2); 5076Add(KK3, p+Position(P, K[i]+P[j]) ); 5077fi; 5078 else #(p+Position(P,K[j]+K[i]) < p+Position(P,P[j]+P[i])) 5079if (t[Position(P,P[i]+K[j] )] = 1) then 5080Add(KK1, (-1*To[Position(P, P[i])][Position(P,K[j])][2][1]+1*To[Position(P, K[i])][Position(P,P[j])][2][1])/2); 5081Add(KK1, p+Position(P, K[i]+P[j]) ); 5082Add(KK2, -1*(+1*To[Position(P, P[i])][Position(P,K[j])][2][1]-1*To[Position(P, K[i])][Position(P,P[j])][2][1])/2); 5083Add(KK2, p+Position(P, P[i]+K[j]) ); 5084Add(KK3, -1*(-1*To[Position(P, P[i])][Position(P,K[j])][2][1]+1*To[Position(P, K[i])][Position(P,P[j])][2][1])/2); 5085Add(KK3, p+Position(P, P[i]+K[j]) ); 5086Add(KK4, -1*(+1*To[Position(P, P[i])][Position(P,K[j])][2][1]-1*To[Position(P, K[i])][Position(P,P[j])][2][1])/2); 5087Add(KK4, p+Position(P, K[i]+P[j]) ); 5088else 5089Add(KK1, -1*(-1*To[Position(P, P[i])][Position(P,K[j])][2][1]-1*To[Position(P, K[i])][Position(P,P[j])][2][1])/2); 5090Add(KK1, p+Position(P, K[i]+P[j]) ); 5091Add(KK2, (+1*To[Position(P, P[i])][Position(P,K[j])][2][1]+1*To[Position(P, K[i])][Position(P,P[j])][2][1])/2); 5092Add(KK2, p+Position(P, P[i]+K[j]) ); 5093Add(KK3, (-1*To[Position(P, P[i])][Position(P,K[j])][2][1]-1*To[Position(P, K[i])][Position(P,P[j])][2][1])/2); 5094Add(KK3, p+Position(P, P[i]+K[j]) ); 5095Add(KK4, +1*(+1*To[Position(P, P[i])][Position(P,K[j])][2][1]+1*To[Position(P, K[i])][Position(P,P[j])][2][1])/2); 5096Add(KK4, p+Position(P, K[i]+P[j]) ); 5097fi; 5098 fi; 5099fi; 5100fi; fi; 5101 5102############# 5103 5104if (P[i]-K[j] in P ) then 5105if not (IsEmpty(To[Position(P, P[i])][p+Position(P,K[j])][2])=true) then 5106if (p+Position(P,K[i]-P[j]) > p+Position(P,P[i]-K[j])) then 5107 5108if (t[Position(P,P[i]-K[j] )] = 1) then 5109Add(KK1, (-1*To[Position(P, P[i])][p+Position(P,K[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,P[j])][2][1])/2); 5110Add(KK1, p+Position(P, P[i]-K[j]) ); 5111Add(KK2, (+1*To[Position(P, P[i])][p+Position(P,K[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,P[j])][2][1])/2); 5112Add(KK2, p+Position(P, K[i]-P[j]) ); 5113Add(KK3, (-1*To[Position(P, P[i])][p+Position(P,K[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,P[j])][2][1])/2); 5114Add(KK3, p+Position(P, K[i]-P[j]) ); 5115Add(KK4, -1*(+1*To[Position(P, P[i])][p+Position(P,K[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,P[j])][2][1])/2); 5116Add(KK4, p+Position(P, P[i]-K[j]) ); 5117else 5118Add(KK1, (-1*To[Position(P, P[i])][p+Position(P,K[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,P[j])][2][1])/2); 5119Add(KK1, p+Position(P, P[i]-K[j]) ); 5120Add(KK2, (+1*To[Position(P, P[i])][p+Position(P,K[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,P[j])][2][1])/2); 5121Add(KK2, p+Position(P, K[i]-P[j]) ); 5122Add(KK3, (-1*To[Position(P, P[i])][p+Position(P,K[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,P[j])][2][1])/2); 5123Add(KK3, p+Position(P, K[i]-P[j]) ); 5124Add(KK4, -1*(+1*To[Position(P, P[i])][p+Position(P,K[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,P[j])][2][1])/2); 5125Add(KK4, p+Position(P, P[i]-K[j]) ); 5126fi; 5127else 5128 if (p+Position(P,K[i]-P[j]) = p+Position(P,P[i]-K[j])) then 5129if (t[Position(P,P[i]-K[j] )] = 1) then 5130Add(KK1, (-1*To[Position(P, P[i])][p+Position(P,K[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,P[j])][2][1])/2); 5131Add(KK1, p+Position(P, P[i]-K[j]) ); 5132Add(KK4, -1*(+1*To[Position(P, P[i])][p+Position(P,K[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,P[j])][2][1])/2); 5133Add(KK4, p+Position(P, P[i]-K[j]) ); 5134else 5135Add(KK2, (+1*To[Position(P, P[i])][p+Position(P,K[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,P[j])][2][1])/2); 5136Add(KK2, p+Position(P, K[i]-P[j]) ); 5137Add(KK3, (-1*To[Position(P, P[i])][p+Position(P,K[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,P[j])][2][1])/2); 5138Add(KK3, p+Position(P, K[i]-P[j]) ); 5139fi; 5140 else #(p+Position(P,K[j]+K[i]) < p+Position(P,P[j]+P[i])) 5141if (t[Position(P,P[i]-K[j] )] = 1) then 5142Add(KK1, (-1*To[Position(P, P[i])][p+Position(P,K[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,P[j])][2][1])/2); 5143Add(KK1, p+Position(P, K[i]-P[j]) ); 5144Add(KK2, -1*(+1*To[Position(P, P[i])][p+Position(P,K[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,P[j])][2][1])/2); 5145Add(KK2, p+Position(P, P[i]-K[j]) ); 5146Add(KK3, -1*(-1*To[Position(P, P[i])][p+Position(P,K[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,P[j])][2][1])/2); 5147Add(KK3, p+Position(P, P[i]-K[j]) ); 5148Add(KK4, -1*(+1*To[Position(P, P[i])][p+Position(P,K[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,P[j])][2][1])/2); 5149Add(KK4, p+Position(P, K[i]-P[j]) ); 5150else 5151Add(KK1, -1*(-1*To[Position(P, P[i])][p+Position(P,K[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,P[j])][2][1])/2); 5152Add(KK1, p+Position(P, K[i]-P[j]) ); 5153Add(KK2, (+1*To[Position(P, P[i])][p+Position(P,K[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,P[j])][2][1])/2); 5154Add(KK2, p+Position(P, P[i]-K[j]) ); 5155Add(KK3, (-1*To[Position(P, P[i])][p+Position(P,K[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,P[j])][2][1])/2); 5156Add(KK3, p+Position(P, P[i]-K[j]) ); 5157Add(KK4, +1*(+1*To[Position(P, P[i])][p+Position(P,K[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,P[j])][2][1])/2); 5158Add(KK4, p+Position(P, K[i]-P[j]) ); 5159fi; 5160 fi; 5161fi; 5162fi; fi; 5163 5164fi; 5165 5166########################à 5167else #t[i]=-1 5168if (t[j]=1) then 5169############### 5170 5171if (P[i]+P[j] in P ) then #qui so che aplha+beta < phi_aplha+phi_beta quindi sono nel caso sicuro 5172if not (IsEmpty(To[Position(P, P[i])][Position(P,P[j])][2])=true) then 5173if (p+Position(P,K[j]+K[i]) > p+Position(P,P[j]+P[i])) then 5174 5175if (t[Position(P,P[j]+P[i] )] = 1) then 5176Add(KK1, (+1*To[Position(P, P[i])][Position(P,P[j])][2][1]-1*To[Position(P, K[i])][Position(P,K[j])][2][1])/2); 5177Add(KK1, p+Position(P, P[i]+P[j]) ); 5178Add(KK2, (+1*To[Position(P, P[i])][Position(P,P[j])][2][1]-1*To[Position(P, K[i])][Position(P,K[j])][2][1])/2); 5179Add(KK2, p+Position(P, K[i]+K[j]) ); 5180Add(KK3, (+1*To[Position(P, P[i])][Position(P,P[j])][2][1]-1*To[Position(P, K[i])][Position(P,K[j])][2][1])/2); 5181Add(KK3, p+Position(P, K[i]+K[j]) ); 5182Add(KK4, -1*(+1*To[Position(P, P[i])][Position(P,P[j])][2][1]-1*To[Position(P, K[i])][Position(P,K[j])][2][1])/2); 5183Add(KK4, p+Position(P, P[i]+P[j]) ); 5184else 5185Add(KK1, (+1*To[Position(P, P[i])][Position(P,P[j])][2][1]+1*To[Position(P, K[i])][Position(P,K[j])][2][1])/2); 5186Add(KK1, p+Position(P, P[i]+P[j]) ); 5187Add(KK2, (+1*To[Position(P, P[i])][Position(P,P[j])][2][1]+1*To[Position(P, K[i])][Position(P,K[j])][2][1])/2); 5188Add(KK2, p+Position(P, K[i]+K[j]) ); 5189Add(KK3, (+1*To[Position(P, P[i])][Position(P,P[j])][2][1]+1*To[Position(P, K[i])][Position(P,K[j])][2][1])/2); 5190Add(KK3, p+Position(P, K[i]+K[j]) ); 5191Add(KK4, (+1*To[Position(P, P[i])][Position(P,P[j])][2][1]+1*To[Position(P, K[i])][Position(P,K[j])][2][1])/2); 5192Add(KK4, p+Position(P, P[i]+P[j]) ); 5193fi; 5194else 5195 if (p+Position(P,K[j]+K[i]) = p+Position(P,P[j]+P[i])) then 5196if (t[Position(P,P[j]+P[i] )] = 1) then 5197Add(KK1, (+1*To[Position(P, P[i])][Position(P,P[j])][2][1]-1*To[Position(P, K[i])][Position(P,K[j])][2][1])/2); 5198Add(KK1, p+Position(P, P[i]+P[j]) ); 5199Add(KK4, -1*(+1*To[Position(P, P[i])][Position(P,P[j])][2][1]-1*To[Position(P, K[i])][Position(P,K[j])][2][1])/2); 5200Add(KK4, p+Position(P, P[i]+P[j]) ); 5201else 5202Add(KK2, (+1*To[Position(P, P[i])][Position(P,P[j])][2][1]+1*To[Position(P, K[i])][Position(P,K[j])][2][1])/2); 5203Add(KK2, p+Position(P, K[i]+K[j]) ); 5204Add(KK3, (+1*To[Position(P, P[i])][Position(P,P[j])][2][1]+1*To[Position(P, K[i])][Position(P,K[j])][2][1])/2); 5205Add(KK3, p+Position(P, K[i]+K[j]) ); 5206fi; 5207 else #(p+Position(P,K[j]+K[i]) < p+Position(P,P[j]+P[i])) 5208if (t[Position(P,P[j]+P[i] )] = 1) then 5209Add(KK1, (+1*To[Position(P, P[i])][Position(P,P[j])][2][1]-1*To[Position(P, K[i])][Position(P,K[j])][2][1])/2); 5210Add(KK1, p+Position(P, K[j]+K[i]) ); 5211Add(KK2, -1*(+1*To[Position(P, P[i])][Position(P,P[j])][2][1]-1*To[Position(P, K[i])][Position(P,K[j])][2][1])/2); 5212Add(KK2, p+Position(P, P[i]+P[j]) ); 5213Add(KK3, -1*(+1*To[Position(P, P[i])][Position(P,P[j])][2][1]-1*To[Position(P, K[i])][Position(P,K[j])][2][1])/2); 5214Add(KK3, p+Position(P, P[i]+P[j]) ); 5215Add(KK4, -1*(+1*To[Position(P, P[i])][Position(P,P[j])][2][1]-1*To[Position(P, K[i])][Position(P,K[j])][2][1])/2); 5216Add(KK4, p+Position(P,K[j]+K[i]) ); 5217else 5218Add(KK1, -1*(+1*To[Position(P, P[i])][Position(P,P[j])][2][1]+1*To[Position(P, K[i])][Position(P,K[j])][2][1])/2); 5219Add(KK1, p+Position(P, K[j]+K[i]) ); 5220Add(KK2, (+1*To[Position(P, P[i])][Position(P,P[j])][2][1]+1*To[Position(P, K[i])][Position(P,K[j])][2][1])/2); 5221Add(KK2, p+Position(P, P[i]+P[j]) ); 5222Add(KK3, (+1*To[Position(P, P[i])][Position(P,P[j])][2][1]+1*To[Position(P, K[i])][Position(P,K[j])][2][1])/2); 5223Add(KK3, p+Position(P, P[i]+P[j]) ); 5224Add(KK4, +1*(+1*To[Position(P, P[i])][Position(P,P[j])][2][1]+1*To[Position(P, K[i])][Position(P,K[j])][2][1])/2); 5225Add(KK4, p+Position(P, K[j]+K[i]) ); 5226fi; 5227 fi; 5228fi; 5229fi; fi; 5230############### 5231 5232if (P[i]-P[j] in P ) then 5233if not (IsEmpty(To[Position(P, P[i])][p+Position(P,P[j])][2])=true) then 5234if (p+Position(P,K[i]-K[j]) > p+Position(P,P[i]-P[j])) then 5235 5236if (t[Position(P,P[i]-P[j] )] = 1) then 5237Add(KK1, (+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])/2); 5238Add(KK1, p+Position(P, P[i]-P[j]) ); 5239Add(KK2, (+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])/2); 5240Add(KK2, p+Position(P, K[i]-K[j]) ); 5241Add(KK3, (+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])/2); 5242Add(KK3, p+Position(P, K[i]-K[j]) ); 5243Add(KK4, -1*(+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])/2); 5244Add(KK4, p+Position(P, P[i]-P[j]) ); 5245else 5246Add(KK1, (+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])/2); 5247Add(KK1, p+Position(P, P[i]-P[j]) ); 5248Add(KK2, (+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])/2); 5249Add(KK2, p+Position(P, K[i]-K[j]) ); 5250Add(KK3, (+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])/2); 5251Add(KK3, p+Position(P, K[i]-K[j]) ); 5252Add(KK4, -1*(+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])/2); 5253Add(KK4, p+Position(P, P[i]-P[j]) ); 5254fi; 5255else 5256 if (p+Position(P,K[i]-K[j]) = p+Position(P,P[i]-P[j])) then 5257if (t[Position(P,P[i]-P[j] )] = 1) then 5258Add(KK1, (+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])/2); 5259Add(KK1, p+Position(P, P[i]-P[j]) ); 5260Add(KK4, -1*(+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])/2); 5261Add(KK4, p+Position(P, P[i]-P[j]) ); 5262else 5263Add(KK2, (+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])/2); 5264Add(KK2, p+Position(P, K[i]-K[j]) ); 5265Add(KK3, (+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])/2); 5266Add(KK3, p+Position(P, K[i]-K[j]) ); 5267fi; 5268 else #(p+Position(P,K[j]+K[i]) < p+Position(P,P[j]+P[i])) 5269if (t[Position(P,P[i]-P[j] )] = 1) then 5270Add(KK1, (+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])/2); 5271Add(KK1, p+Position(P, K[i]-K[j]) ); 5272Add(KK2, -1*(+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])/2); 5273Add(KK2, p+Position(P, P[i]-P[j]) ); 5274Add(KK3, -1*(+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])/2); 5275Add(KK3, p+Position(P, P[i]-P[j]) ); 5276Add(KK4, -1*(+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])/2); 5277Add(KK4, p+Position(P, K[i]-K[j]) ); 5278else 5279Add(KK1, -1*(+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])/2); 5280Add(KK1, p+Position(P, K[i]-K[j]) ); 5281Add(KK2, (+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])/2); 5282Add(KK2, p+Position(P, P[i]-P[j]) ); 5283Add(KK3, (+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])/2); 5284Add(KK3, p+Position(P, P[i]-P[j]) ); 5285Add(KK4, +1*(+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])/2); 5286Add(KK4, p+Position(P, K[i]-K[j]) ); 5287fi; 5288 fi; 5289fi; 5290fi; fi; 5291 5292############# 5293 5294if (P[i]+K[j] in P ) then 5295if not (IsEmpty(To[Position(P, P[i])][Position(P,K[j])][2])=true) then 5296if (p+Position(P,K[i]+P[j]) > p+Position(P,P[i]+K[j])) then 5297 5298if (t[Position(P,P[i]+K[j] )] = 1) then 5299Add(KK1, (+1*To[Position(P, P[i])][Position(P,K[j])][2][1]-1*To[Position(P, K[i])][Position(P,P[j])][2][1])/2); 5300Add(KK1, p+Position(P, P[i]+K[j]) ); 5301Add(KK2, (-1*To[Position(P, P[i])][Position(P,K[j])][2][1]+1*To[Position(P, K[i])][Position(P,P[j])][2][1])/2); 5302Add(KK2, p+Position(P, K[i]+P[j]) ); 5303Add(KK3, (+1*To[Position(P, P[i])][Position(P,K[j])][2][1]-1*To[Position(P, K[i])][Position(P,P[j])][2][1])/2); 5304Add(KK3, p+Position(P, K[i]+P[j]) ); 5305Add(KK4, -1*(-1*To[Position(P, P[i])][Position(P,K[j])][2][1]+1*To[Position(P, K[i])][Position(P,P[j])][2][1])/2); 5306Add(KK4, p+Position(P, P[i]+K[j]) ); 5307else 5308Add(KK1, (+1*To[Position(P, P[i])][Position(P,K[j])][2][1]+1*To[Position(P, K[i])][Position(P,P[j])][2][1])/2); 5309Add(KK1, p+Position(P, P[i]+K[j]) ); 5310Add(KK2, (-1*To[Position(P, P[i])][Position(P,K[j])][2][1]-1*To[Position(P, K[i])][Position(P,P[j])][2][1])/2); 5311Add(KK2, p+Position(P, K[i]+P[j]) ); 5312Add(KK3, (+1*To[Position(P, P[i])][Position(P,K[j])][2][1]+1*To[Position(P, K[i])][Position(P,P[j])][2][1])/2); 5313Add(KK3, p+Position(P, K[i]+P[j]) ); 5314Add(KK4, -1*(-1*To[Position(P, P[i])][Position(P,K[j])][2][1]-1*To[Position(P, K[i])][Position(P,P[j])][2][1])/2); 5315Add(KK4, p+Position(P, P[i]+K[j]) ); 5316fi; 5317else 5318 if (p+Position(P,K[i]+P[j]) = p+Position(P,P[i]+K[j])) then 5319if (t[Position(P,K[j]+P[i] )] = 1) then 5320Add(KK1, (+1*To[Position(P, P[i])][Position(P,K[j])][2][1]-1*To[Position(P, K[i])][Position(P,P[j])][2][1])/2); 5321Add(KK1, p+Position(P, P[i]+K[j]) ); 5322Add(KK4, -1*(-1*To[Position(P, P[i])][Position(P,K[j])][2][1]+1*To[Position(P, K[i])][Position(P,P[j])][2][1])/2); 5323Add(KK4, p+Position(P, P[i]+K[j]) ); 5324else 5325Add(KK2, (-1*To[Position(P, P[i])][Position(P,K[j])][2][1]-1*To[Position(P, K[i])][Position(P,P[j])][2][1])/2); 5326Add(KK2, p+Position(P, K[i]+P[j]) ); 5327Add(KK3, (+1*To[Position(P, P[i])][Position(P,K[j])][2][1]+1*To[Position(P, K[i])][Position(P,P[j])][2][1])/2); 5328Add(KK3, p+Position(P, K[i]+P[j]) ); 5329fi; 5330 else #(p+Position(P,K[j]+K[i]) < p+Position(P,P[j]+P[i])) 5331if (t[Position(P,P[i]+K[j] )] = 1) then 5332Add(KK1, (+1*To[Position(P, P[i])][Position(P,K[j])][2][1]-1*To[Position(P, K[i])][Position(P,P[j])][2][1])/2); 5333Add(KK1, p+Position(P, K[i]+P[j]) ); 5334Add(KK2, -1*(-1*To[Position(P, P[i])][Position(P,K[j])][2][1]+1*To[Position(P, K[i])][Position(P,P[j])][2][1])/2); 5335Add(KK2, p+Position(P, P[i]+K[j]) ); 5336Add(KK3, -1*(+1*To[Position(P, P[i])][Position(P,K[j])][2][1]-1*To[Position(P, K[i])][Position(P,P[j])][2][1])/2); 5337Add(KK3, p+Position(P, P[i]+K[j]) ); 5338Add(KK4, -1*(-1*To[Position(P, P[i])][Position(P,K[j])][2][1]+1*To[Position(P, K[i])][Position(P,P[j])][2][1])/2); 5339Add(KK4, p+Position(P, K[i]+P[j]) ); 5340else 5341Add(KK1, -1*(+1*To[Position(P, P[i])][Position(P,K[j])][2][1]+1*To[Position(P, K[i])][Position(P,P[j])][2][1])/2); 5342Add(KK1, p+Position(P, K[i]+P[j]) ); 5343Add(KK2, (-1*To[Position(P, P[i])][Position(P,K[j])][2][1]-1*To[Position(P, K[i])][Position(P,P[j])][2][1])/2); 5344Add(KK2, p+Position(P, P[i]+K[j]) ); 5345Add(KK3, (+1*To[Position(P, P[i])][Position(P,K[j])][2][1]+1*To[Position(P, K[i])][Position(P,P[j])][2][1])/2); 5346Add(KK3, p+Position(P, P[i]+K[j]) ); 5347Add(KK4, +1*(-1*To[Position(P, P[i])][Position(P,K[j])][2][1]-1*To[Position(P, K[i])][Position(P,P[j])][2][1])/2); 5348Add(KK4, p+Position(P, K[i]+P[j]) ); 5349fi; 5350 fi; 5351fi; 5352fi; fi; 5353 5354############# 5355 5356if (P[i]-K[j] in P ) then 5357if not (IsEmpty(To[Position(P, P[i])][p+Position(P,K[j])][2])=true) then 5358if (p+Position(P,K[i]-P[j]) > p+Position(P,P[i]-K[j])) then 5359 5360if (t[Position(P,P[i]-K[j] )] = 1) then 5361Add(KK1, (+1*To[Position(P, P[i])][p+Position(P,K[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,P[j])][2][1])/2); 5362Add(KK1, p+Position(P, P[i]-K[j]) ); 5363Add(KK2, (-1*To[Position(P, P[i])][p+Position(P,K[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,P[j])][2][1])/2); 5364Add(KK2, p+Position(P, K[i]-P[j]) ); 5365Add(KK3, (+1*To[Position(P, P[i])][p+Position(P,K[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,P[j])][2][1])/2); 5366Add(KK3, p+Position(P, K[i]-P[j]) ); 5367Add(KK4, -1*(-1*To[Position(P, P[i])][p+Position(P,K[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,P[j])][2][1])/2); 5368Add(KK4, p+Position(P, P[i]-K[j]) ); 5369else 5370Add(KK1, (+1*To[Position(P, P[i])][p+Position(P,K[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,P[j])][2][1])/2); 5371Add(KK1, p+Position(P, P[i]-K[j]) ); 5372Add(KK2, (-1*To[Position(P, P[i])][p+Position(P,K[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,P[j])][2][1])/2); 5373Add(KK2, p+Position(P, K[i]-P[j]) ); 5374Add(KK3, (+1*To[Position(P, P[i])][p+Position(P,K[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,P[j])][2][1])/2); 5375Add(KK3, p+Position(P, K[i]-P[j]) ); 5376Add(KK4, -1*(-1*To[Position(P, P[i])][p+Position(P,K[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,P[j])][2][1])/2); 5377Add(KK4, p+Position(P, P[i]-K[j]) ); 5378fi; 5379else 5380 if (p+Position(P,K[i]-P[j]) = p+Position(P,P[i]-K[j])) then 5381if (t[Position(P,P[i]-K[j] )] = 1) then 5382Add(KK1, (+1*To[Position(P, P[i])][p+Position(P,K[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,P[j])][2][1])/2); 5383Add(KK1, p+Position(P, P[i]-K[j]) ); 5384Add(KK4, -1*(-1*To[Position(P, P[i])][p+Position(P,K[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,P[j])][2][1])/2); 5385Add(KK4, p+Position(P, P[i]-K[j]) ); 5386else 5387Add(KK2, (-1*To[Position(P, P[i])][p+Position(P,K[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,P[j])][2][1])/2); 5388Add(KK2, p+Position(P, K[i]-P[j]) ); 5389Add(KK3, (+1*To[Position(P, P[i])][p+Position(P,K[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,P[j])][2][1])/2); 5390Add(KK3, p+Position(P, K[i]-P[j]) ); 5391fi; 5392 else #(p+Position(P,K[j]+K[i]) < p+Position(P,P[j]+P[i])) 5393if (t[Position(P,P[i]-K[j] )] = 1) then 5394Add(KK1, (+1*To[Position(P, P[i])][p+Position(P,K[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,P[j])][2][1])/2); 5395Add(KK1, p+Position(P, K[i]-P[j]) ); 5396Add(KK2, -1*(-1*To[Position(P, P[i])][p+Position(P,K[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,P[j])][2][1])/2); 5397Add(KK2, p+Position(P, P[i]-K[j]) ); 5398Add(KK3, -1*(+1*To[Position(P, P[i])][p+Position(P,K[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,P[j])][2][1])/2); 5399Add(KK3, p+Position(P, P[i]-K[j]) ); 5400Add(KK4, -1*(-1*To[Position(P, P[i])][p+Position(P,K[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,P[j])][2][1])/2); 5401Add(KK4, p+Position(P, K[i]-P[j]) ); 5402else 5403Add(KK1, -1*(+1*To[Position(P, P[i])][p+Position(P,K[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,P[j])][2][1])/2); 5404Add(KK1, p+Position(P, K[i]-P[j]) ); 5405Add(KK2, (-1*To[Position(P, P[i])][p+Position(P,K[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,P[j])][2][1])/2); 5406Add(KK2, p+Position(P, P[i]-K[j]) ); 5407Add(KK3, (+1*To[Position(P, P[i])][p+Position(P,K[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,P[j])][2][1])/2); 5408Add(KK3, p+Position(P, P[i]-K[j]) ); 5409Add(KK4, +1*(-1*To[Position(P, P[i])][p+Position(P,K[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,P[j])][2][1])/2); 5410Add(KK4, p+Position(P, K[i]-P[j]) ); 5411fi; 5412 fi; 5413fi; 5414fi; fi; 5415 5416##################### 5417else #t[j]=-1 5418######################### 5419 5420if (P[i]+P[j] in P ) then #qui so che aplha+beta < phi_aplha+phi_beta quindi sono nel caso sicuro 5421if not (IsEmpty(To[Position(P, P[i])][Position(P,P[j])][2])=true) then 5422if (p+Position(P,K[j]+K[i]) > p+Position(P,P[j]+P[i])) then 5423 5424if (t[Position(P,P[j]+P[i] )] = 1) then 5425Add(KK1, (+1*To[Position(P, P[i])][Position(P,P[j])][2][1]+1*To[Position(P, K[i])][Position(P,K[j])][2][1])/2); 5426Add(KK1, p+Position(P, P[i]+P[j]) ); 5427Add(KK2, (+1*To[Position(P, P[i])][Position(P,P[j])][2][1]+1*To[Position(P, K[i])][Position(P,K[j])][2][1])/2); 5428Add(KK2, p+Position(P, K[i]+K[j]) ); 5429Add(KK3, (+1*To[Position(P, P[i])][Position(P,P[j])][2][1]+1*To[Position(P, K[i])][Position(P,K[j])][2][1])/2); 5430Add(KK3, p+Position(P, K[i]+K[j]) ); 5431Add(KK4, -1*(+1*To[Position(P, P[i])][Position(P,P[j])][2][1]+1*To[Position(P, K[i])][Position(P,K[j])][2][1])/2); 5432Add(KK4, p+Position(P, P[i]+P[j]) ); 5433else 5434Add(KK1, (+1*To[Position(P, P[i])][Position(P,P[j])][2][1]-1*To[Position(P, K[i])][Position(P,K[j])][2][1])/2); 5435Add(KK1, p+Position(P, P[i]+P[j]) ); 5436Add(KK2, (+1*To[Position(P, P[i])][Position(P,P[j])][2][1]-1*To[Position(P, K[i])][Position(P,K[j])][2][1])/2); 5437Add(KK2, p+Position(P, K[i]+K[j]) ); 5438Add(KK3, (+1*To[Position(P, P[i])][Position(P,P[j])][2][1]-1*To[Position(P, K[i])][Position(P,K[j])][2][1])/2); 5439Add(KK3, p+Position(P, K[i]+K[j]) ); 5440Add(KK4, -1*(+1*To[Position(P, P[i])][Position(P,P[j])][2][1]-1*To[Position(P, K[i])][Position(P,K[j])][2][1])/2); 5441Add(KK4, p+Position(P, P[i]+P[j]) ); 5442fi; 5443else 5444 if (p+Position(P,K[j]+K[i]) = p+Position(P,P[j]+P[i])) then 5445if (t[Position(P,P[j]+P[i] )] = 1) then 5446Add(KK1, (+1*To[Position(P, P[i])][Position(P,P[j])][2][1]+1*To[Position(P, K[i])][Position(P,K[j])][2][1])/2); 5447Add(KK1, p+Position(P, P[i]+P[j]) ); 5448Add(KK4, -1*(+1*To[Position(P, P[i])][Position(P,P[j])][2][1]+1*To[Position(P, K[i])][Position(P,K[j])][2][1])/2); 5449Add(KK4, p+Position(P, P[i]+P[j]) ); 5450else 5451Add(KK2, (+1*To[Position(P, P[i])][Position(P,P[j])][2][1]-1*To[Position(P, K[i])][Position(P,K[j])][2][1])/2); 5452Add(KK2, p+Position(P, K[i]+K[j]) ); 5453Add(KK3, (+1*To[Position(P, P[i])][Position(P,P[j])][2][1]-1*To[Position(P, K[i])][Position(P,K[j])][2][1])/2); 5454Add(KK3, p+Position(P, K[i]+K[j]) ); 5455fi; 5456 else #(p+Position(P,K[j]+K[i]) < p+Position(P,P[j]+P[i])) 5457if (t[Position(P,P[j]+P[i] )] = 1) then 5458Add(KK1, (+1*To[Position(P, P[i])][Position(P,P[j])][2][1]+1*To[Position(P, K[i])][Position(P,K[j])][2][1])/2); 5459Add(KK1, p+Position(P, K[j]+K[i]) ); 5460Add(KK2, -1*(+1*To[Position(P, P[i])][Position(P,P[j])][2][1]+1*To[Position(P, K[i])][Position(P,K[j])][2][1])/2); 5461Add(KK2, p+Position(P, P[i]+P[j]) ); 5462Add(KK3, -1*(+1*To[Position(P, P[i])][Position(P,P[j])][2][1]+1*To[Position(P, K[i])][Position(P,K[j])][2][1])/2); 5463Add(KK3, p+Position(P, P[i]+P[j]) ); 5464Add(KK4, -1*(+1*To[Position(P, P[i])][Position(P,P[j])][2][1]+1*To[Position(P, K[i])][Position(P,K[j])][2][1])/2); 5465Add(KK4, p+Position(P,K[j]+K[i]) ); 5466else 5467Add(KK1, -1*(+1*To[Position(P, P[i])][Position(P,P[j])][2][1]-1*To[Position(P, K[i])][Position(P,K[j])][2][1])/2); 5468Add(KK1, p+Position(P, K[j]+K[i]) ); 5469Add(KK2, (+1*To[Position(P, P[i])][Position(P,P[j])][2][1]-1*To[Position(P, K[i])][Position(P,K[j])][2][1])/2); 5470Add(KK2, p+Position(P, P[i]+P[j]) ); 5471Add(KK3, (+1*To[Position(P, P[i])][Position(P,P[j])][2][1]-1*To[Position(P, K[i])][Position(P,K[j])][2][1])/2); 5472Add(KK3, p+Position(P, P[i]+P[j]) ); 5473Add(KK4, +1*(+1*To[Position(P, P[i])][Position(P,P[j])][2][1]-1*To[Position(P, K[i])][Position(P,K[j])][2][1])/2); 5474Add(KK4, p+Position(P, K[j]+K[i]) ); 5475fi; 5476 fi; 5477fi; 5478fi; fi; 5479 5480############### 5481 5482if (P[i]-P[j] in P ) then 5483if not (IsEmpty(To[Position(P, P[i])][p+Position(P,P[j])][2])=true) then 5484if (p+Position(P,K[i]-K[j]) > p+Position(P,P[i]-P[j])) then 5485 5486if (t[Position(P,P[i]-P[j] )] = 1) then 5487Add(KK1, (+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])/2); 5488Add(KK1, p+Position(P, P[i]-P[j]) ); 5489Add(KK2, (+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])/2); 5490Add(KK2, p+Position(P, K[i]-K[j]) ); 5491Add(KK3, (+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])/2); 5492Add(KK3, p+Position(P, K[i]-K[j]) ); 5493Add(KK4, -1*(+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])/2); 5494Add(KK4, p+Position(P, P[i]-P[j]) ); 5495else 5496Add(KK1, (+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])/2); 5497Add(KK1, p+Position(P, P[i]-P[j]) ); 5498Add(KK2, (+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])/2); 5499Add(KK2, p+Position(P, K[i]-K[j]) ); 5500Add(KK3, (+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])/2); 5501Add(KK3, p+Position(P, K[i]-K[j]) ); 5502Add(KK4, -1*(+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])/2); 5503Add(KK4, p+Position(P, P[i]-P[j]) ); 5504fi; 5505else 5506 if (p+Position(P,K[i]-K[j]) = p+Position(P,P[i]-P[j])) then 5507if (t[Position(P,P[i]-P[j] )] = 1) then 5508Add(KK1, (+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])/2); 5509Add(KK1, p+Position(P, P[i]-P[j]) ); 5510Add(KK4, -1*(+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])/2); 5511Add(KK4, p+Position(P, P[i]-P[j]) ); 5512else 5513Add(KK2, (+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])/2); 5514Add(KK2, p+Position(P, K[i]-K[j]) ); 5515Add(KK3, (+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])/2); 5516Add(KK3, p+Position(P, K[i]-K[j]) ); 5517fi; 5518 else #(p+Position(P,K[j]+K[i]) < p+Position(P,P[j]+P[i])) 5519if (t[Position(P,P[i]-P[j] )] = 1) then 5520Add(KK1, (+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])/2); 5521Add(KK1, p+Position(P, K[i]-K[j]) ); 5522Add(KK2, -1*(+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])/2); 5523Add(KK2, p+Position(P, P[i]-P[j]) ); 5524Add(KK3, -1*(+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])/2); 5525Add(KK3, p+Position(P, P[i]-P[j]) ); 5526Add(KK4, -1*(+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])/2); 5527Add(KK4, p+Position(P, K[i]-K[j]) ); 5528else 5529Add(KK1, -1*(+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])/2); 5530Add(KK1, p+Position(P, K[i]-K[j]) ); 5531Add(KK2, (+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])/2); 5532Add(KK2, p+Position(P, P[i]-P[j]) ); 5533Add(KK3, (+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])/2); 5534Add(KK3, p+Position(P, P[i]-P[j]) ); 5535Add(KK4, +1*(+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])/2); 5536Add(KK4, p+Position(P, K[i]-K[j]) ); 5537fi; 5538 fi; 5539fi; 5540fi; fi; 5541 5542############# 5543 5544if (P[i]+K[j] in P ) then 5545if not (IsEmpty(To[Position(P, P[i])][Position(P,K[j])][2])=true) then 5546if (p+Position(P,K[i]+P[j]) > p+Position(P,P[i]+K[j])) then 5547 5548if (t[Position(P,P[i]+K[j] )] = 1) then 5549Add(KK1, (-1*To[Position(P, P[i])][Position(P,K[j])][2][1]-1*To[Position(P, K[i])][Position(P,P[j])][2][1])/2); 5550Add(KK1, p+Position(P, P[i]+K[j]) ); 5551Add(KK2, (+1*To[Position(P, P[i])][Position(P,K[j])][2][1]+1*To[Position(P, K[i])][Position(P,P[j])][2][1])/2); 5552Add(KK2, p+Position(P, K[i]+P[j]) ); 5553Add(KK3, (-1*To[Position(P, P[i])][Position(P,K[j])][2][1]-1*To[Position(P, K[i])][Position(P,P[j])][2][1])/2); 5554Add(KK3, p+Position(P, K[i]+P[j]) ); 5555Add(KK4, -1*(+1*To[Position(P, P[i])][Position(P,K[j])][2][1]+1*To[Position(P, K[i])][Position(P,P[j])][2][1])/2); 5556Add(KK4, p+Position(P, P[i]+K[j]) ); 5557else 5558Add(KK1, (-1*To[Position(P, P[i])][Position(P,K[j])][2][1]+1*To[Position(P, K[i])][Position(P,P[j])][2][1])/2); 5559Add(KK1, p+Position(P, P[i]+K[j]) ); 5560Add(KK2, (+1*To[Position(P, P[i])][Position(P,K[j])][2][1]-1*To[Position(P, K[i])][Position(P,P[j])][2][1])/2); 5561Add(KK2, p+Position(P, K[i]+P[j]) ); 5562Add(KK3, (-1*To[Position(P, P[i])][Position(P,K[j])][2][1]+1*To[Position(P, K[i])][Position(P,P[j])][2][1])/2); 5563Add(KK3, p+Position(P, K[i]+P[j]) ); 5564Add(KK4, -1*(+1*To[Position(P, P[i])][Position(P,K[j])][2][1]-1*To[Position(P, K[i])][Position(P,P[j])][2][1])/2); 5565Add(KK4, p+Position(P, P[i]+K[j]) ); 5566fi; 5567else 5568 if (p+Position(P,K[i]+P[j]) = p+Position(P,P[i]+K[j])) then 5569if (t[Position(P,K[j]+P[i] )] = 1) then 5570Add(KK1, (-1*To[Position(P, P[i])][Position(P,K[j])][2][1]-1*To[Position(P, K[i])][Position(P,P[j])][2][1])/2); 5571Add(KK1, p+Position(P, P[i]+K[j]) ); 5572Add(KK4, -1*(+1*To[Position(P, P[i])][Position(P,K[j])][2][1]+1*To[Position(P, K[i])][Position(P,P[j])][2][1])/2); 5573Add(KK4, p+Position(P, P[i]+K[j]) ); 5574else 5575Add(KK2, (+1*To[Position(P, P[i])][Position(P,K[j])][2][1]-1*To[Position(P, K[i])][Position(P,P[j])][2][1])/2); 5576Add(KK2, p+Position(P, K[i]+P[j]) ); 5577Add(KK3, (-1*To[Position(P, P[i])][Position(P,K[j])][2][1]+1*To[Position(P, K[i])][Position(P,P[j])][2][1])/2); 5578Add(KK3, p+Position(P, K[i]+P[j]) ); 5579fi; 5580 else #(p+Position(P,K[j]+K[i]) < p+Position(P,P[j]+P[i])) 5581if (t[Position(P,P[i]+K[j] )] = 1) then 5582Add(KK1, (-1*To[Position(P, P[i])][Position(P,K[j])][2][1]-1*To[Position(P, K[i])][Position(P,P[j])][2][1])/2); 5583Add(KK1, p+Position(P, K[i]+P[j]) ); 5584Add(KK2, -1*(+1*To[Position(P, P[i])][Position(P,K[j])][2][1]+1*To[Position(P, K[i])][Position(P,P[j])][2][1])/2); 5585Add(KK2, p+Position(P, P[i]+K[j]) ); 5586Add(KK3, -1*(-1*To[Position(P, P[i])][Position(P,K[j])][2][1]-1*To[Position(P, K[i])][Position(P,P[j])][2][1])/2); 5587Add(KK3, p+Position(P, P[i]+K[j]) ); 5588Add(KK4, -1*(+1*To[Position(P, P[i])][Position(P,K[j])][2][1]+1*To[Position(P, K[i])][Position(P,P[j])][2][1])/2); 5589Add(KK4, p+Position(P, K[i]+P[j]) ); 5590else 5591Add(KK1, -1*(-1*To[Position(P, P[i])][Position(P,K[j])][2][1]+1*To[Position(P, K[i])][Position(P,P[j])][2][1])/2); 5592Add(KK1, p+Position(P, K[i]+P[j]) ); 5593Add(KK2, (+1*To[Position(P, P[i])][Position(P,K[j])][2][1]-1*To[Position(P, K[i])][Position(P,P[j])][2][1])/2); 5594Add(KK2, p+Position(P, P[i]+K[j]) ); 5595Add(KK3, (-1*To[Position(P, P[i])][Position(P,K[j])][2][1]+1*To[Position(P, K[i])][Position(P,P[j])][2][1])/2); 5596Add(KK3, p+Position(P, P[i]+K[j]) ); 5597Add(KK4, +1*(+1*To[Position(P, P[i])][Position(P,K[j])][2][1]-1*To[Position(P, K[i])][Position(P,P[j])][2][1])/2); 5598Add(KK4, p+Position(P, K[i]+P[j]) ); 5599fi; 5600 fi; 5601fi; 5602fi; fi; 5603 5604############# 5605 5606if (P[i]-K[j] in P ) then 5607if not (IsEmpty(To[Position(P, P[i])][p+Position(P,K[j])][2])=true) then 5608if (p+Position(P,K[i]-P[j]) > p+Position(P,P[i]-K[j])) then 5609 5610if (t[Position(P,P[i]-K[j] )] = 1) then 5611Add(KK1, (-1*To[Position(P, P[i])][p+Position(P,K[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,P[j])][2][1])/2); 5612Add(KK1, p+Position(P, P[i]-K[j]) ); 5613Add(KK2, (+1*To[Position(P, P[i])][p+Position(P,K[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,P[j])][2][1])/2); 5614Add(KK2, p+Position(P, K[i]-P[j]) ); 5615Add(KK3, (-1*To[Position(P, P[i])][p+Position(P,K[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,P[j])][2][1])/2); 5616Add(KK3, p+Position(P, K[i]-P[j]) ); 5617Add(KK4, -1*(+1*To[Position(P, P[i])][p+Position(P,K[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,P[j])][2][1])/2); 5618Add(KK4, p+Position(P, P[i]-K[j]) ); 5619else 5620Add(KK1, (-1*To[Position(P, P[i])][p+Position(P,K[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,P[j])][2][1])/2); 5621Add(KK1, p+Position(P, P[i]-K[j]) ); 5622Add(KK2, (+1*To[Position(P, P[i])][p+Position(P,K[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,P[j])][2][1])/2); 5623Add(KK2, p+Position(P, K[i]-P[j]) ); 5624Add(KK3, (-1*To[Position(P, P[i])][p+Position(P,K[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,P[j])][2][1])/2); 5625Add(KK3, p+Position(P, K[i]-P[j]) ); 5626Add(KK4, -1*(+1*To[Position(P, P[i])][p+Position(P,K[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,P[j])][2][1])/2); 5627Add(KK4, p+Position(P, P[i]-K[j]) ); 5628fi; 5629else 5630 if (p+Position(P,K[i]-P[j]) = p+Position(P,P[i]-K[j])) then 5631if (t[Position(P,P[i]-K[j] )] = 1) then 5632Add(KK1, (-1*To[Position(P, P[i])][p+Position(P,K[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,P[j])][2][1])/2); 5633Add(KK1, p+Position(P, P[i]-K[j]) ); 5634Add(KK4, -1*(+1*To[Position(P, P[i])][p+Position(P,K[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,P[j])][2][1])/2); 5635Add(KK4, p+Position(P, P[i]-K[j]) ); 5636else 5637Add(KK2, (+1*To[Position(P, P[i])][p+Position(P,K[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,P[j])][2][1])/2); 5638Add(KK2, p+Position(P, K[i]-P[j]) ); 5639Add(KK3, (-1*To[Position(P, P[i])][p+Position(P,K[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,P[j])][2][1])/2); 5640Add(KK3, p+Position(P, K[i]-P[j]) ); 5641fi; 5642 else #(p+Position(P,K[j]+K[i]) < p+Position(P,P[j]+P[i])) 5643if (t[Position(P,P[i]-K[j] )] = 1) then 5644Add(KK1, (-1*To[Position(P, P[i])][p+Position(P,K[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,P[j])][2][1])/2); 5645Add(KK1, p+Position(P, K[i]-P[j]) ); 5646Add(KK2, -1*(+1*To[Position(P, P[i])][p+Position(P,K[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,P[j])][2][1])/2); 5647Add(KK2, p+Position(P, P[i]-K[j]) ); 5648Add(KK3, -1*(-1*To[Position(P, P[i])][p+Position(P,K[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,P[j])][2][1])/2); 5649Add(KK3, p+Position(P, P[i]-K[j]) ); 5650Add(KK4, -1*(+1*To[Position(P, P[i])][p+Position(P,K[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,P[j])][2][1])/2); 5651Add(KK4, p+Position(P, K[i]-P[j]) ); 5652else 5653Add(KK1, -1*(-1*To[Position(P, P[i])][p+Position(P,K[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,P[j])][2][1])/2); 5654Add(KK1, p+Position(P, K[i]-P[j]) ); 5655Add(KK2, (+1*To[Position(P, P[i])][p+Position(P,K[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,P[j])][2][1])/2); 5656Add(KK2, p+Position(P, P[i]-K[j]) ); 5657Add(KK3, (-1*To[Position(P, P[i])][p+Position(P,K[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,P[j])][2][1])/2); 5658Add(KK3, p+Position(P, P[i]-K[j]) ); 5659Add(KK4, +1*(+1*To[Position(P, P[i])][p+Position(P,K[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,P[j])][2][1])/2); 5660Add(KK4, p+Position(P, K[i]-P[j]) ); 5661fi; 5662 fi; 5663fi; 5664fi; fi; 5665 5666fi; fi; 5667 5668if ( Position(P,P[i]) > Position(P,K[j]) ) then 5669SetEntrySCTable( TT, Position(P,P[i]), p+Position(P,P[j]) , KK1); 5670SetEntrySCTable( TT, Position(P,P[i]), p+Position(P, K[j]), KK2); 5671SetEntrySCTable( TT, Position(P,K[i]), p+Position(P,P[j]), KK3); 5672SetEntrySCTable( TT, Position(P,K[i]), p+Position(P, K[j]), KK4); 5673fi; 5674 5675if ( Position(P,K[j]) > Position(P,K[i]) ) then 5676SetEntrySCTable( TT, Position(P,P[i]), p+Position(P,P[j]) , KK1); 5677SetEntrySCTable( TT, Position(P,K[i]), p+Position(P,P[j]), KK3); 5678fi; 5679 5680if ( Position(P,K[j]) < Position(P,K[i]) ) then 5681 if ( Position(P,P[i]) < Position(P,K[j]) ) then 5682SetEntrySCTable( TT, Position(P,P[i]), p+Position(P,P[j]) , KK1); 5683SetEntrySCTable( TT, Position(P,K[i]), p+Position(P,P[j]), KK3); 5684SetEntrySCTable( TT, Position(P,K[i]), p+Position(P, K[j]), KK4); 5685 fi; 5686fi; 5687 5688else 5689 5690 if ( p+Position(P, K[j]) = p+Position(P,P[j]) ) then #beta = phi_beta 5691 5692KK1:=[]; 5693KK2:=[]; 5694 5695if (t[i]=1) then 5696if (t[j]=1) then 5697 5698if (P[i]+P[j] in P ) then #qui so che aplha+beta < phi_aplha+phi_beta quindi sono nel caso sicuro 5699if not (IsEmpty(To[Position(P, P[i])][Position(P,P[j])][2])=true) then 5700if (p+Position(P,K[j]+K[i]) > p+Position(P,P[j]+P[i])) then 5701 5702if (t[Position(P,P[j]+P[i] )] = 1) then 5703Add(KK1, (+1*To[Position(P, P[i])][Position(P,P[j])][2][1]+1*To[Position(P, K[i])][Position(P,K[j])][2][1])); 5704Add(KK1, p+Position(P, P[i]+P[j]) ); 5705Add(KK2, (+1*To[Position(P, P[i])][Position(P,P[j])][2][1]+1*To[Position(P, K[i])][Position(P,K[j])][2][1])); 5706Add(KK2, p+Position(P, K[i]+K[j]) ); 5707else 5708Add(KK1, (+1*To[Position(P, P[i])][Position(P,P[j])][2][1]-1*To[Position(P, K[i])][Position(P,K[j])][2][1])); 5709Add(KK1, p+Position(P, P[i]+P[j]) ); 5710Add(KK2, (+1*To[Position(P, P[i])][Position(P,P[j])][2][1]-1*To[Position(P, K[i])][Position(P,K[j])][2][1])); 5711Add(KK2, p+Position(P, K[i]+K[j]) ); 5712fi; 5713else 5714 if (p+Position(P,K[j]+K[i]) = p+Position(P,P[j]+P[i])) then 5715if (t[Position(P,P[j]+P[i] )] = 1) then 5716Add(KK1, (+1*To[Position(P, P[i])][Position(P,P[j])][2][1]+1*To[Position(P, K[i])][Position(P,K[j])][2][1])); 5717Add(KK1, p+Position(P, P[i]+P[j]) ); 5718else 5719Add(KK2, (+1*To[Position(P, P[i])][Position(P,P[j])][2][1]-1*To[Position(P, K[i])][Position(P,K[j])][2][1])); 5720Add(KK2, p+Position(P, K[i]+K[j]) ); 5721fi; 5722 else #(p+Position(P,K[j]+K[i]) < p+Position(P,P[j]+P[i])) 5723if (t[Position(P,P[j]+P[i] )] = 1) then 5724Add(KK1, (+1*To[Position(P, P[i])][Position(P,P[j])][2][1]+1*To[Position(P, K[i])][Position(P,K[j])][2][1])); 5725Add(KK1, p+Position(P, K[j]+K[i]) ); 5726Add(KK2, -1*(+1*To[Position(P, P[i])][Position(P,P[j])][2][1]+1*To[Position(P, K[i])][Position(P,K[j])][2][1])); 5727Add(KK2, p+Position(P, P[i]+P[j]) ); 5728else 5729Add(KK1, -1*(+1*To[Position(P, P[i])][Position(P,P[j])][2][1]-1*To[Position(P, K[i])][Position(P,K[j])][2][1])); 5730Add(KK1, p+Position(P, K[j]+K[i]) ); 5731Add(KK2, (+1*To[Position(P, P[i])][Position(P,P[j])][2][1]-1*To[Position(P, K[i])][Position(P,K[j])][2][1])); 5732Add(KK2, p+Position(P, P[i]+P[j]) ); 5733fi; 5734 fi; 5735fi; 5736fi; fi; 5737 5738############### 5739 5740if (P[i]-P[j] in P ) then 5741if not (IsEmpty(To[Position(P, P[i])][p+Position(P,P[j])][2])=true) then 5742if (p+Position(P,K[i]-K[j]) > p+Position(P,P[i]-P[j])) then 5743 5744if (t[Position(P,P[i]-P[j] )] = 1) then 5745Add(KK1, (+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])); 5746Add(KK1, p+Position(P, P[i]-P[j]) ); 5747Add(KK2, (+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])); 5748Add(KK2, p+Position(P, K[i]-K[j]) ); 5749else 5750Add(KK1, (+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])); 5751Add(KK1, p+Position(P, P[i]-P[j]) ); 5752Add(KK2, (+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])); 5753Add(KK2, p+Position(P, K[i]-K[j]) ); 5754fi; 5755else 5756 if (p+Position(P,K[i]-K[j]) = p+Position(P,P[i]-P[j])) then 5757if (t[Position(P,P[i]-P[j] )] = 1) then 5758Add(KK1, (+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])); 5759Add(KK1, p+Position(P, P[i]-P[j]) ); 5760else 5761Add(KK2, (+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])); 5762Add(KK2, p+Position(P, K[i]-K[j]) ); 5763fi; 5764 else #(p+Position(P,K[j]+K[i]) < p+Position(P,P[j]+P[i])) 5765if (t[Position(P,P[i]-P[j] )] = 1) then 5766Add(KK1, (+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])); 5767Add(KK1, p+Position(P, K[i]-K[j]) ); 5768Add(KK2, -1*(+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])); 5769Add(KK2, p+Position(P, P[i]-P[j]) ); 5770else 5771Add(KK1, -1*(+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])); 5772Add(KK1, p+Position(P, K[i]-K[j]) ); 5773Add(KK2, (+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])); 5774Add(KK2, p+Position(P, P[i]-P[j]) ); 5775fi; 5776 fi; 5777fi; 5778fi; fi; 5779 5780#################### 5781else #t[j]=-1 5782 5783if (P[i]+P[j] in P ) then #qui so che aplha+beta < phi_aplha+phi_beta quindi sono nel caso sicuro 5784if not (IsEmpty(To[Position(P, P[i])][Position(P,P[j])][2])=true) then 5785if (p+Position(P,K[j]+K[i]) > p+Position(P,P[j]+P[i])) then 5786 5787if (t[Position(P,P[j]+P[i] )] = 1) then 5788Add(KK1, (+1*To[Position(P, P[i])][Position(P,P[j])][2][1]-1*To[Position(P, K[i])][Position(P,K[j])][2][1])); 5789Add(KK1, p+Position(P, K[j]+K[i]) ); 5790Add(KK2, -1*(+1*To[Position(P, P[i])][Position(P,P[j])][2][1]-1*To[Position(P, K[i])][Position(P,K[j])][2][1])); 5791Add(KK2, p+Position(P, P[i]+P[j]) ); 5792else 5793Add(KK1, (+1*To[Position(P, P[i])][Position(P,P[j])][2][1]+1*To[Position(P, K[i])][Position(P,K[j])][2][1])); 5794Add(KK1, p+Position(P, K[j]+K[i]) ); 5795Add(KK2, -1*(+1*To[Position(P, P[i])][Position(P,P[j])][2][1]+1*To[Position(P, K[i])][Position(P,K[j])][2][1])); 5796Add(KK2, p+Position(P, P[i]+P[j]) ); 5797fi; 5798else 5799 if (p+Position(P,K[j]+K[i]) = p+Position(P,P[j]+P[i])) then 5800if (t[Position(P,P[j]+P[i] )] = 1) then 5801Add(KK2, -1*(+1*To[Position(P, P[i])][Position(P,P[j])][2][1]-1*To[Position(P, K[i])][Position(P,K[j])][2][1])); 5802Add(KK2, p+Position(P, P[i]+P[j]) ); 5803else 5804Add(KK1, (+1*To[Position(P, P[i])][Position(P,P[j])][2][1]+1*To[Position(P, K[i])][Position(P,K[j])][2][1])); 5805Add(KK1, p+Position(P, K[j]+K[i]) ); 5806fi; 5807 else #(p+Position(P,K[j]+K[i]) < p+Position(P,P[j]+P[i])) 5808if (t[Position(P,P[j]+P[i] )] = 1) then 5809Add(KK1, -1*(+1*To[Position(P, P[i])][Position(P,P[j])][2][1]-1*To[Position(P, K[i])][Position(P,K[j])][2][1])); 5810Add(KK1, p+Position(P, K[j]+K[i]) ); 5811Add(KK2, -1*(+1*To[Position(P, P[i])][Position(P,P[j])][2][1]-1*To[Position(P, K[i])][Position(P,K[j])][2][1])); 5812Add(KK2, p+Position(P, P[i]+P[j]) ); 5813else 5814Add(KK1, (+1*To[Position(P, P[i])][Position(P,P[j])][2][1]+1*To[Position(P, K[i])][Position(P,K[j])][2][1])); 5815Add(KK1, p+Position(P, P[i]+P[j]) ); 5816Add(KK2, +1*(+1*To[Position(P, P[i])][Position(P,P[j])][2][1]+1*To[Position(P, K[i])][Position(P,K[j])][2][1])); 5817Add(KK2, p+Position(P, K[j]+K[i]) ); 5818fi; 5819 fi; 5820fi; 5821fi; fi; 5822 5823############### 5824 5825if (P[i]-P[j] in P ) then 5826if not (IsEmpty(To[Position(P, P[i])][p+Position(P,P[j])][2])=true) then 5827if (p+Position(P,K[i]-K[j]) > p+Position(P,P[i]-P[j])) then 5828 5829if (t[Position(P,P[i]-P[j] )] = 1) then 5830Add(KK1, (+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])); 5831Add(KK1, p+Position(P, K[i]-K[j]) ); 5832Add(KK2, -1*(+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])); 5833Add(KK2, p+Position(P, P[i]-P[j]) ); 5834else 5835Add(KK1, (+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])); 5836Add(KK1, p+Position(P, K[i]-K[j]) ); 5837Add(KK2, -1*(+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])); 5838Add(KK2, p+Position(P, P[i]-P[j]) ); 5839fi; 5840else 5841 if (p+Position(P,K[i]-K[j]) = p+Position(P,P[i]-P[j])) then 5842if (t[Position(P,P[i]-P[j] )] = 1) then 5843Add(KK2, -1*(+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])); 5844Add(KK2, p+Position(P, P[i]-P[j]) ); 5845else 5846Add(KK1, (+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])); 5847Add(KK1, p+Position(P, K[i]-K[j]) ); 5848fi; 5849 else #(p+Position(P,K[j]+K[i]) < p+Position(P,P[j]+P[i])) 5850if (t[Position(P,P[i]-P[j] )] = 1) then 5851Add(KK1, -1*(+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])); 5852Add(KK1, p+Position(P, P[i]-P[j]) ); 5853Add(KK2, -1*(+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])); 5854Add(KK2, p+Position(P, K[i]-K[j]) ); 5855else 5856Add(KK1, (+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])); 5857Add(KK1, p+Position(P, P[i]-P[j]) ); 5858Add(KK2, +1*(+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])); 5859Add(KK2, p+Position(P, K[i]-K[j]) ); 5860fi; 5861 fi; 5862fi; 5863fi; fi; 5864 5865fi; 5866 5867else #t[i]=-1 5868if (t[j]=1) then 5869 5870if (P[i]+P[j] in P ) then #qui so che aplha+beta < phi_aplha+phi_beta quindi sono nel caso sicuro 5871if not (IsEmpty(To[Position(P, P[i])][Position(P,P[j])][2])=true) then 5872if (p+Position(P,K[j]+K[i]) > p+Position(P,P[j]+P[i])) then 5873 5874if (t[Position(P,P[j]+P[i] )] = 1) then 5875Add(KK1, (+1*To[Position(P, P[i])][Position(P,P[j])][2][1]-1*To[Position(P, K[i])][Position(P,K[j])][2][1])); 5876Add(KK1, p+Position(P, P[i]+P[j]) ); 5877Add(KK2, (+1*To[Position(P, P[i])][Position(P,P[j])][2][1]-1*To[Position(P, K[i])][Position(P,K[j])][2][1])); 5878Add(KK2, p+Position(P, K[i]+K[j]) ); 5879else 5880Add(KK1, (+1*To[Position(P, P[i])][Position(P,P[j])][2][1]+1*To[Position(P, K[i])][Position(P,K[j])][2][1])); 5881Add(KK1, p+Position(P, P[i]+P[j]) ); 5882Add(KK2, (+1*To[Position(P, P[i])][Position(P,P[j])][2][1]+1*To[Position(P, K[i])][Position(P,K[j])][2][1])); 5883Add(KK2, p+Position(P, K[i]+K[j]) ); 5884fi; 5885else 5886 if (p+Position(P,K[j]+K[i]) = p+Position(P,P[j]+P[i])) then 5887if (t[Position(P,P[j]+P[i] )] = 1) then 5888Add(KK1, (+1*To[Position(P, P[i])][Position(P,P[j])][2][1]-1*To[Position(P, K[i])][Position(P,K[j])][2][1])); 5889Add(KK1, p+Position(P, P[i]+P[j]) ); 5890else 5891Add(KK2, (+1*To[Position(P, P[i])][Position(P,P[j])][2][1]+1*To[Position(P, K[i])][Position(P,K[j])][2][1])); 5892Add(KK2, p+Position(P, K[i]+K[j]) ); 5893fi; 5894 else #(p+Position(P,K[j]+K[i]) < p+Position(P,P[j]+P[i])) 5895if (t[Position(P,P[j]+P[i] )] = 1) then 5896Add(KK1, (+1*To[Position(P, P[i])][Position(P,P[j])][2][1]-1*To[Position(P, K[i])][Position(P,K[j])][2][1])); 5897Add(KK1, p+Position(P, K[j]+K[i]) ); 5898Add(KK2, -1*(+1*To[Position(P, P[i])][Position(P,P[j])][2][1]-1*To[Position(P, K[i])][Position(P,K[j])][2][1])); 5899Add(KK2, p+Position(P, P[i]+P[j]) ); 5900else 5901Add(KK1, -1*(+1*To[Position(P, P[i])][Position(P,P[j])][2][1]+1*To[Position(P, K[i])][Position(P,K[j])][2][1])); 5902Add(KK1, p+Position(P, K[j]+K[i]) ); 5903Add(KK2, (+1*To[Position(P, P[i])][Position(P,P[j])][2][1]+1*To[Position(P, K[i])][Position(P,K[j])][2][1])); 5904Add(KK2, p+Position(P, P[i]+P[j]) ); 5905fi; 5906 fi; 5907fi; 5908fi; fi; 5909 5910############### 5911 5912if (P[i]-P[j] in P ) then 5913if not (IsEmpty(To[Position(P, P[i])][p+Position(P,P[j])][2])=true) then 5914if (p+Position(P,K[i]-K[j]) > p+Position(P,P[i]-P[j])) then 5915 5916if (t[Position(P,P[i]-P[j] )] = 1) then 5917Add(KK1, (+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])); 5918Add(KK1, p+Position(P, P[i]-P[j]) ); 5919Add(KK2, (+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])); 5920Add(KK2, p+Position(P, K[i]-K[j]) ); 5921else 5922Add(KK1, (+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])); 5923Add(KK1, p+Position(P, P[i]-P[j]) ); 5924Add(KK2, (+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])); 5925Add(KK2, p+Position(P, K[i]-K[j]) ); 5926fi; 5927else 5928 if (p+Position(P,K[i]-K[j]) = p+Position(P,P[i]-P[j])) then 5929if (t[Position(P,P[i]-P[j] )] = 1) then 5930Add(KK1, (+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])); 5931Add(KK1, p+Position(P, P[i]-P[j]) ); 5932else 5933Add(KK2, (+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])); 5934Add(KK2, p+Position(P, K[i]-K[j]) ); 5935fi; 5936 else #(p+Position(P,K[j]+K[i]) < p+Position(P,P[j]+P[i])) 5937if (t[Position(P,P[i]-P[j] )] = 1) then 5938Add(KK1, (+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])); 5939Add(KK1, p+Position(P, K[i]-K[j]) ); 5940Add(KK2, -1*(+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])); 5941Add(KK2, p+Position(P, P[i]-P[j]) ); 5942else 5943Add(KK1, -1*(+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])); 5944Add(KK1, p+Position(P, K[i]-K[j]) ); 5945Add(KK2, (+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])); 5946Add(KK2, p+Position(P, P[i]-P[j]) ); 5947fi; 5948 fi; 5949fi; 5950fi; fi; 5951 5952#################### 5953else #t[i]=t[j]=-1 5954 5955if (P[i]+P[j] in P ) then #qui so che aplha+beta < phi_aplha+phi_beta quindi sono nel caso sicuro 5956if not (IsEmpty(To[Position(P, P[i])][Position(P,P[j])][2])=true) then 5957if (p+Position(P,K[j]+K[i]) > p+Position(P,P[j]+P[i])) then 5958 5959if (t[Position(P,P[j]+P[i] )] = 1) then 5960Add(KK1, (+1*To[Position(P, P[i])][Position(P,P[j])][2][1]+1*To[Position(P, K[i])][Position(P,K[j])][2][1])); 5961Add(KK1, p+Position(P, K[i]+K[j]) ); 5962Add(KK2, -1*(+1*To[Position(P, P[i])][Position(P,P[j])][2][1]+1*To[Position(P, K[i])][Position(P,K[j])][2][1])); 5963Add(KK2, p+Position(P, P[j]+P[i]) ); 5964else 5965Add(KK1, (+1*To[Position(P, P[i])][Position(P,P[j])][2][1]-1*To[Position(P, K[i])][Position(P,K[j])][2][1])); 5966Add(KK1, p+Position(P, K[i]+K[j]) ); 5967Add(KK2, -1*(+1*To[Position(P, P[i])][Position(P,P[j])][2][1]-1*To[Position(P, K[i])][Position(P,K[j])][2][1])); 5968Add(KK2, p+Position(P, P[j]+P[i]) ); 5969fi; 5970else 5971 if (p+Position(P,K[j]+K[i]) = p+Position(P,P[j]+P[i])) then 5972if (t[Position(P,P[j]+P[i] )] = 1) then 5973Add(KK2, -1*(+1*To[Position(P, P[i])][Position(P,P[j])][2][1]+1*To[Position(P, K[i])][Position(P,K[j])][2][1])); 5974Add(KK2, p+Position(P, P[j]+P[i]) ); 5975else 5976Add(KK1, (+1*To[Position(P, P[i])][Position(P,P[j])][2][1]-1*To[Position(P, K[i])][Position(P,K[j])][2][1])); 5977Add(KK1, p+Position(P, K[i]+K[j]) ); 5978fi; 5979 else #(p+Position(P,K[j]+K[i]) < p+Position(P,P[j]+P[i])) 5980if (t[Position(P,P[j]+P[i] )] = 1) then 5981Add(KK1, -1*(+1*To[Position(P, P[i])][Position(P,P[j])][2][1]+1*To[Position(P, K[i])][Position(P,K[j])][2][1])); 5982Add(KK1, p+Position(P, P[j]+P[i]) ); 5983Add(KK2, -1*(+1*To[Position(P, P[i])][Position(P,P[j])][2][1]+1*To[Position(P, K[i])][Position(P,K[j])][2][1])); 5984Add(KK2, p+Position(P, K[i]+K[j]) ); 5985else 5986Add(KK1, (+1*To[Position(P, P[i])][Position(P,P[j])][2][1]-1*To[Position(P, K[i])][Position(P,K[j])][2][1])); 5987Add(KK1, p+Position(P, P[j]+P[i]) ); 5988Add(KK2, +1*(+1*To[Position(P, P[i])][Position(P,P[j])][2][1]-1*To[Position(P, K[i])][Position(P,K[j])][2][1])); 5989Add(KK2, p+Position(P, K[i]+K[j]) ); 5990fi; 5991 fi; 5992fi; 5993fi; fi; 5994 5995############### 5996 5997if (P[i]-P[j] in P ) then 5998if not (IsEmpty(To[Position(P, P[i])][p+Position(P,P[j])][2])=true) then 5999if (p+Position(P,K[i]-K[j]) > p+Position(P,P[i]-P[j])) then 6000 6001if (t[Position(P,P[i]-P[j] )] = 1) then 6002Add(KK1, (+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])); 6003Add(KK1, p+Position(P, K[i]-K[j]) ); 6004Add(KK2, -1*(+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])); 6005Add(KK2, p+Position(P, P[i]-P[j]) ); 6006else 6007Add(KK1, (+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])); 6008Add(KK1, p+Position(P, K[i]-K[j]) ); 6009Add(KK2, -1*(+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])); 6010Add(KK2, p+Position(P, P[i]-P[j]) ); 6011fi; 6012else 6013 if (p+Position(P,K[i]-K[j]) = p+Position(P,P[i]-P[j])) then 6014if (t[Position(P,P[i]-P[j] )] = 1) then 6015Add(KK2, -1*(+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])); 6016Add(KK2, p+Position(P, P[i]-P[j]) ); 6017else 6018Add(KK1, (+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])); 6019Add(KK1, p+Position(P, K[i]-K[j]) ); 6020fi; 6021 else #(p+Position(P,K[j]+K[i]) < p+Position(P,P[j]+P[i])) 6022if (t[Position(P,P[i]-P[j] )] = 1) then 6023Add(KK1, -1*(+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])); 6024Add(KK1, p+Position(P, P[i]-P[j]) ); 6025Add(KK2, -1*(+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])); 6026Add(KK2, p+Position(P, K[i]-K[j]) ); 6027else 6028Add(KK1, (+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])); 6029Add(KK1, p+Position(P, P[i]-P[j]) ); 6030Add(KK2, +1*(+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])); 6031Add(KK2, p+Position(P, K[i]-K[j]) ); 6032fi; 6033 fi; 6034fi; 6035fi; fi; 6036 6037fi; fi; 6038 6039#if (Position(P,P[j]) > Position(P,K[i]) ) then 6040SetEntrySCTable( TT, i, p+j , KK1); 6041SetEntrySCTable( TT, Position(P,K[i]), p+j, KK2); 6042 6043 6044 6045fi; 6046fi; 6047 6048else 6049 if ( p+Position(P, K[i]) = p+Position(P,P[i]) ) then #alpha< phi_alpha 6050 if ( p+Position(P, K[j]) > p+Position(P,P[j]) ) then #beta< phi_beta 6051 6052KK1:=[]; 6053KK2:=[]; 6054 6055if (t[i]=1) then 6056if (t[j]=1) then 6057 6058if (P[i]+P[j] in P ) then #qui so che aplha+beta < phi_aplha+phi_beta quindi sono nel caso sicuro 6059if not (IsEmpty(To[Position(P, P[i])][Position(P,P[j])][2])=true) then 6060if (p+Position(P,K[j]+K[i]) > p+Position(P,P[j]+P[i])) then 6061 6062if (t[Position(P,P[j]+P[i] )] = 1) then 6063Add(KK1, (+1*To[Position(P, P[i])][Position(P,P[j])][2][1]+1*To[Position(P, K[i])][Position(P,K[j])][2][1])); 6064Add(KK1, p+Position(P, P[i]+P[j]) ); 6065Add(KK2, (+1*To[Position(P, P[i])][Position(P,P[j])][2][1]+1*To[Position(P, K[i])][Position(P,K[j])][2][1])); 6066Add(KK2, p+Position(P, K[i]+K[j]) ); 6067else 6068Add(KK1, (+1*To[Position(P, P[i])][Position(P,P[j])][2][1]-1*To[Position(P, K[i])][Position(P,K[j])][2][1])); 6069Add(KK1, p+Position(P, P[i]+P[j]) ); 6070Add(KK2, (+1*To[Position(P, P[i])][Position(P,P[j])][2][1]-1*To[Position(P, K[i])][Position(P,K[j])][2][1])); 6071Add(KK2, p+Position(P, K[i]+K[j]) ); 6072fi; 6073else 6074 if (p+Position(P,K[j]+K[i]) = p+Position(P,P[j]+P[i])) then 6075if (t[Position(P,P[j]+P[i] )] = 1) then 6076Add(KK1, (+1*To[Position(P, P[i])][Position(P,P[j])][2][1]+1*To[Position(P, K[i])][Position(P,K[j])][2][1])); 6077Add(KK1, p+Position(P, P[i]+P[j]) ); 6078else 6079Add(KK2, (+1*To[Position(P, P[i])][Position(P,P[j])][2][1]-1*To[Position(P, K[i])][Position(P,K[j])][2][1])); 6080Add(KK2, p+Position(P, K[i]+K[j]) ); 6081fi; 6082 else #(p+Position(P,K[j]+K[i]) < p+Position(P,P[j]+P[i])) 6083if (t[Position(P,P[j]+P[i] )] = 1) then 6084Add(KK1, (+1*To[Position(P, P[i])][Position(P,P[j])][2][1]+1*To[Position(P, K[i])][Position(P,K[j])][2][1])); 6085Add(KK1, p+Position(P, K[j]+K[i]) ); 6086Add(KK2, -1*(+1*To[Position(P, P[i])][Position(P,P[j])][2][1]+1*To[Position(P, K[i])][Position(P,K[j])][2][1])); 6087Add(KK2, p+Position(P, P[i]+P[j]) ); 6088else 6089Add(KK1, -1*(+1*To[Position(P, P[i])][Position(P,P[j])][2][1]-1*To[Position(P, K[i])][Position(P,K[j])][2][1])); 6090Add(KK1, p+Position(P, K[j]+K[i]) ); 6091Add(KK2, (+1*To[Position(P, P[i])][Position(P,P[j])][2][1]-1*To[Position(P, K[i])][Position(P,K[j])][2][1])); 6092Add(KK2, p+Position(P, P[i]+P[j]) ); 6093fi; 6094 fi; 6095fi; 6096fi; fi; 6097 6098############### 6099 6100if (P[i]-P[j] in P ) then 6101if not (IsEmpty(To[Position(P, P[i])][p+Position(P,P[j])][2])=true) then 6102if (p+Position(P,K[i]-K[j]) > p+Position(P,P[i]-P[j])) then 6103 6104if (t[Position(P,P[i]-P[j] )] = 1) then 6105Add(KK1, (+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])); 6106Add(KK1, p+Position(P, P[i]-P[j]) ); 6107Add(KK2, (+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])); 6108Add(KK2, p+Position(P, K[i]-K[j]) ); 6109else 6110Add(KK1, (+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])); 6111Add(KK1, p+Position(P, P[i]-P[j]) ); 6112Add(KK2, (+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])); 6113Add(KK2, p+Position(P, K[i]-K[j]) ); 6114fi; 6115else 6116 if (p+Position(P,K[i]-K[j]) = p+Position(P,P[i]-P[j])) then 6117if (t[Position(P,P[i]-P[j] )] = 1) then 6118Add(KK1, (+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])); 6119Add(KK1, p+Position(P, P[i]-P[j]) ); 6120else 6121Add(KK2, (+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])); 6122Add(KK2, p+Position(P, K[i]-K[j]) ); 6123fi; 6124 else #(p+Position(P,K[j]+K[i]) < p+Position(P,P[j]+P[i])) 6125if (t[Position(P,P[i]-P[j] )] = 1) then 6126Add(KK1, (+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])); 6127Add(KK1, p+Position(P, K[i]-K[j]) ); 6128Add(KK2, -1*(+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])); 6129Add(KK2, p+Position(P, P[i]-P[j]) ); 6130else 6131Add(KK1, -1*(+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])); 6132Add(KK1, p+Position(P, K[i]-K[j]) ); 6133Add(KK2, (+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])); 6134Add(KK2, p+Position(P, P[i]-P[j]) ); 6135fi; 6136 fi; 6137fi; 6138fi; fi; 6139 6140#################### 6141else #t[j]=-1 6142 6143if (P[i]+P[j] in P ) then #qui so che aplha+beta < phi_aplha+phi_beta quindi sono nel caso sicuro 6144if not (IsEmpty(To[Position(P, P[i])][Position(P,P[j])][2])=true) then 6145if (p+Position(P,K[j]+K[i]) > p+Position(P,P[j]+P[i])) then 6146 6147if (t[Position(P,P[j]+P[i] )] = 1) then 6148Add(KK1, (+1*To[Position(P, P[i])][Position(P,P[j])][2][1]-1*To[Position(P, K[i])][Position(P,K[j])][2][1])); 6149Add(KK1, p+Position(P, P[i]+P[j]) ); 6150Add(KK2, (+1*To[Position(P, P[i])][Position(P,P[j])][2][1]-1*To[Position(P, K[i])][Position(P,K[j])][2][1])); 6151Add(KK2, p+Position(P, K[i]+K[j]) ); 6152else 6153Add(KK1, (+1*To[Position(P, P[i])][Position(P,P[j])][2][1]+1*To[Position(P, K[i])][Position(P,K[j])][2][1])); 6154Add(KK1, p+Position(P, P[i]+P[j]) ); 6155Add(KK2, (+1*To[Position(P, P[i])][Position(P,P[j])][2][1]+1*To[Position(P, K[i])][Position(P,K[j])][2][1])); 6156Add(KK2, p+Position(P, K[i]+K[j]) ); 6157fi; 6158else 6159 if (p+Position(P,K[j]+K[i]) = p+Position(P,P[j]+P[i])) then 6160if (t[Position(P,P[j]+P[i] )] = 1) then 6161Add(KK1, (+1*To[Position(P, P[i])][Position(P,P[j])][2][1]-1*To[Position(P, K[i])][Position(P,K[j])][2][1])); 6162Add(KK1, p+Position(P, P[i]+P[j]) ); 6163else 6164Add(KK2, (+1*To[Position(P, P[i])][Position(P,P[j])][2][1]+1*To[Position(P, K[i])][Position(P,K[j])][2][1])); 6165Add(KK2, p+Position(P, K[i]+K[j]) ); 6166fi; 6167 else #(p+Position(P,K[j]+K[i]) < p+Position(P,P[j]+P[i])) 6168if (t[Position(P,P[j]+P[i] )] = 1) then 6169Add(KK1, (+1*To[Position(P, P[i])][Position(P,P[j])][2][1]-1*To[Position(P, K[i])][Position(P,K[j])][2][1])); 6170Add(KK1, p+Position(P, K[j]+K[i]) ); 6171Add(KK2, -1*(+1*To[Position(P, P[i])][Position(P,P[j])][2][1]-1*To[Position(P, K[i])][Position(P,K[j])][2][1])); 6172Add(KK2, p+Position(P, P[i]+P[j]) ); 6173else 6174Add(KK1, -1*(+1*To[Position(P, P[i])][Position(P,P[j])][2][1]+1*To[Position(P, K[i])][Position(P,K[j])][2][1])); 6175Add(KK1, p+Position(P, K[j]+K[i]) ); 6176Add(KK2, (+1*To[Position(P, P[i])][Position(P,P[j])][2][1]+1*To[Position(P, K[i])][Position(P,K[j])][2][1])); 6177Add(KK2, p+Position(P, P[i]+P[j]) ); 6178fi; 6179 fi; 6180fi; 6181fi; fi; 6182 6183############### 6184 6185if (P[i]-P[j] in P ) then 6186if not (IsEmpty(To[Position(P, P[i])][p+Position(P,P[j])][2])=true) then 6187if (p+Position(P,K[i]-K[j]) > p+Position(P,P[i]-P[j])) then 6188 6189if (t[Position(P,P[i]-P[j] )] = 1) then 6190Add(KK1, (+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])); 6191Add(KK1, p+Position(P, P[i]-P[j]) ); 6192Add(KK2, (+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])); 6193Add(KK2, p+Position(P, K[i]-K[j]) ); 6194else 6195Add(KK1, (+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])); 6196Add(KK1, p+Position(P, P[i]-P[j]) ); 6197Add(KK2, (+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])); 6198Add(KK2, p+Position(P, K[i]-K[j]) ); 6199fi; 6200else 6201 if (p+Position(P,K[i]-K[j]) = p+Position(P,P[i]-P[j])) then 6202if (t[Position(P,P[i]-P[j] )] = 1) then 6203Add(KK1, (+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])); 6204Add(KK1, p+Position(P, P[i]-P[j]) ); 6205else 6206Add(KK2, (+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])); 6207Add(KK2, p+Position(P, K[i]-K[j]) ); 6208fi; 6209 else #(p+Position(P,K[j]+K[i]) < p+Position(P,P[j]+P[i])) 6210if (t[Position(P,P[i]-P[j] )] = 1) then 6211Add(KK1, (+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])); 6212Add(KK1, p+Position(P, K[i]-K[j]) ); 6213Add(KK2, -1*(+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])); 6214Add(KK2, p+Position(P, P[i]-P[j]) ); 6215else 6216Add(KK1, -1*(+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])); 6217Add(KK1, p+Position(P, K[i]-K[j]) ); 6218Add(KK2, (+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])); 6219Add(KK2, p+Position(P, P[i]-P[j]) ); 6220fi; 6221 fi; 6222fi; 6223fi; fi; 6224 6225#################### 6226fi; 6227 6228else #t[i]=-1 6229if (t[j]=1) then 6230 6231if (P[i]+P[j] in P ) then #qui so che aplha+beta < phi_aplha+phi_beta quindi sono nel caso sicuro 6232if not (IsEmpty(To[Position(P, P[i])][Position(P,P[j])][2])=true) then 6233if (p+Position(P,K[j]+K[i]) > p+Position(P,P[j]+P[i])) then 6234 6235if (t[Position(P,P[j]+P[i] )] = 1) then 6236Add(KK1, (+1*To[Position(P, P[i])][Position(P,P[j])][2][1]-1*To[Position(P, K[i])][Position(P,K[j])][2][1])); 6237Add(KK1, p+Position(P, K[j]+K[i]) ); 6238Add(KK2, -1*(+1*To[Position(P, P[i])][Position(P,P[j])][2][1]-1*To[Position(P, K[i])][Position(P,K[j])][2][1])); 6239Add(KK2, p+Position(P, P[i]+P[j]) ); 6240else 6241Add(KK1, (+1*To[Position(P, P[i])][Position(P,P[j])][2][1]+1*To[Position(P, K[i])][Position(P,K[j])][2][1])); 6242Add(KK1, p+Position(P, K[j]+K[i]) ); 6243Add(KK2, -1*(+1*To[Position(P, P[i])][Position(P,P[j])][2][1]+1*To[Position(P, K[i])][Position(P,K[j])][2][1])); 6244Add(KK2, p+Position(P, P[i]+P[j]) ); 6245fi; 6246else 6247 if (p+Position(P,K[j]+K[i]) = p+Position(P,P[j]+P[i])) then 6248if (t[Position(P,P[j]+P[i] )] = 1) then 6249Add(KK2, -1*(+1*To[Position(P, P[i])][Position(P,P[j])][2][1]-1*To[Position(P, K[i])][Position(P,K[j])][2][1])); 6250Add(KK2, p+Position(P, P[i]+P[j]) ); 6251else 6252Add(KK1, (+1*To[Position(P, P[i])][Position(P,P[j])][2][1]+1*To[Position(P, K[i])][Position(P,K[j])][2][1])); 6253Add(KK1, p+Position(P, K[j]+K[i]) ); 6254fi; 6255 else #(p+Position(P,K[j]+K[i]) < p+Position(P,P[j]+P[i])) 6256if (t[Position(P,P[j]+P[i] )] = 1) then 6257Add(KK1, -1*(+1*To[Position(P, P[i])][Position(P,P[j])][2][1]-1*To[Position(P, K[i])][Position(P,K[j])][2][1])); 6258Add(KK1, p+Position(P, K[j]+K[i]) ); 6259Add(KK2, -1*(+1*To[Position(P, P[i])][Position(P,P[j])][2][1]-1*To[Position(P, K[i])][Position(P,K[j])][2][1])); 6260Add(KK2, p+Position(P, P[i]+P[j]) ); 6261else 6262Add(KK1, (+1*To[Position(P, P[i])][Position(P,P[j])][2][1]+1*To[Position(P, K[i])][Position(P,K[j])][2][1])); 6263Add(KK1, p+Position(P, P[i]+P[j]) ); 6264Add(KK2, +1*(+1*To[Position(P, P[i])][Position(P,P[j])][2][1]+1*To[Position(P, K[i])][Position(P,K[j])][2][1])); 6265Add(KK2, p+Position(P, K[j]+K[i]) ); 6266fi; 6267 fi; 6268fi; 6269fi; fi; 6270 6271############### 6272 6273if (P[i]-P[j] in P ) then 6274if not (IsEmpty(To[Position(P, P[i])][p+Position(P,P[j])][2])=true) then 6275if (p+Position(P,K[i]-K[j]) > p+Position(P,P[i]-P[j])) then 6276 6277if (t[Position(P,P[i]-P[j] )] = 1) then 6278Add(KK1, (+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])); 6279Add(KK1, p+Position(P, K[i]-K[j]) ); 6280Add(KK2, -1*(+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])); 6281Add(KK2, p+Position(P, P[i]-P[j]) ); 6282else 6283Add(KK1, (+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])); 6284Add(KK1, p+Position(P, K[i]-K[j]) ); 6285Add(KK2, -1*(+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])); 6286Add(KK2, p+Position(P, P[i]-P[j]) ); 6287fi; 6288else 6289 if (p+Position(P,K[i]-K[j]) = p+Position(P,P[i]-P[j])) then 6290if (t[Position(P,P[i]-P[j] )] = 1) then 6291Add(KK2, -1*(+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])); 6292Add(KK2, p+Position(P, P[i]-P[j]) ); 6293else 6294Add(KK1, (+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])); 6295Add(KK1, p+Position(P, K[i]-K[j]) ); 6296fi; 6297 else #(p+Position(P,K[j]+K[i]) < p+Position(P,P[j]+P[i])) 6298if (t[Position(P,P[i]-P[j] )] = 1) then 6299Add(KK1, -1*(+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])); 6300Add(KK1, p+Position(P, P[i]-P[j]) ); 6301Add(KK2, -1*(+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])); 6302Add(KK2, p+Position(P, K[i]-K[j]) ); 6303else 6304Add(KK1, (+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])); 6305Add(KK1, p+Position(P, P[i]-P[j]) ); 6306Add(KK2, +1*(+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])); 6307Add(KK2, p+Position(P, K[i]-K[j]) ); 6308fi; 6309 fi; 6310fi; 6311fi; fi; 6312 6313else 6314 6315if (P[i]+P[j] in P ) then #qui so che aplha+beta < phi_aplha+phi_beta quindi sono nel caso sicuro 6316if not (IsEmpty(To[Position(P, P[i])][Position(P,P[j])][2])=true) then 6317if (p+Position(P,K[j]+K[i]) > p+Position(P,P[j]+P[i])) then 6318 6319if (t[Position(P,P[j]+P[i] )] = 1) then 6320Add(KK1, (+1*To[Position(P, P[i])][Position(P,P[j])][2][1]+1*To[Position(P, K[i])][Position(P,K[j])][2][1])); 6321Add(KK1, p+Position(P, K[i]+K[j]) ); 6322Add(KK2, -1*(+1*To[Position(P, P[i])][Position(P,P[j])][2][1]+1*To[Position(P, K[i])][Position(P,K[j])][2][1])); 6323Add(KK2, p+Position(P, P[j]+P[i]) ); 6324else 6325Add(KK1, (+1*To[Position(P, P[i])][Position(P,P[j])][2][1]-1*To[Position(P, K[i])][Position(P,K[j])][2][1])); 6326Add(KK1, p+Position(P, K[i]+K[j]) ); 6327Add(KK2, -1*(+1*To[Position(P, P[i])][Position(P,P[j])][2][1]-1*To[Position(P, K[i])][Position(P,K[j])][2][1])); 6328Add(KK2, p+Position(P, P[j]+P[i]) ); 6329fi; 6330else 6331 if (p+Position(P,K[j]+K[i]) = p+Position(P,P[j]+P[i])) then 6332if (t[Position(P,P[j]+P[i] )] = 1) then 6333Add(KK2, -1*(+1*To[Position(P, P[i])][Position(P,P[j])][2][1]+1*To[Position(P, K[i])][Position(P,K[j])][2][1])); 6334Add(KK2, p+Position(P, P[j]+P[i]) ); 6335else 6336Add(KK1, (+1*To[Position(P, P[i])][Position(P,P[j])][2][1]-1*To[Position(P, K[i])][Position(P,K[j])][2][1])); 6337Add(KK1, p+Position(P, K[i]+K[j]) ); 6338fi; 6339 else #(p+Position(P,K[j]+K[i]) < p+Position(P,P[j]+P[i])) 6340if (t[Position(P,P[j]+P[i] )] = 1) then 6341Add(KK1, -1*(+1*To[Position(P, P[i])][Position(P,P[j])][2][1]+1*To[Position(P, K[i])][Position(P,K[j])][2][1])); 6342Add(KK1, p+Position(P, P[j]+P[i]) ); 6343Add(KK2, -1*(+1*To[Position(P, P[i])][Position(P,P[j])][2][1]+1*To[Position(P, K[i])][Position(P,K[j])][2][1])); 6344Add(KK2, p+Position(P, K[i]+K[j]) ); 6345else 6346Add(KK1, (+1*To[Position(P, P[i])][Position(P,P[j])][2][1]-1*To[Position(P, K[i])][Position(P,K[j])][2][1])); 6347Add(KK1, p+Position(P, P[j]+P[i]) ); 6348Add(KK2, +1*(+1*To[Position(P, P[i])][Position(P,P[j])][2][1]-1*To[Position(P, K[i])][Position(P,K[j])][2][1])); 6349Add(KK2, p+Position(P, K[i]+K[j]) ); 6350fi; 6351 fi; 6352fi; 6353fi; fi; 6354 6355############### 6356 6357if (P[i]-P[j] in P ) then 6358if not (IsEmpty(To[Position(P, P[i])][p+Position(P,P[j])][2])=true) then 6359if (p+Position(P,K[i]-K[j]) > p+Position(P,P[i]-P[j])) then 6360 6361if (t[Position(P,P[i]-P[j] )] = 1) then 6362Add(KK1, (+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])); 6363Add(KK1, p+Position(P, K[i]-K[j]) ); 6364Add(KK2, -1*(+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])); 6365Add(KK2, p+Position(P, P[i]-P[j]) ); 6366else 6367Add(KK1, (+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])); 6368Add(KK1, p+Position(P, K[i]-K[j]) ); 6369Add(KK2, -1*(+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])); 6370Add(KK2, p+Position(P, P[i]-P[j]) ); 6371fi; 6372else 6373 if (p+Position(P,K[i]-K[j]) = p+Position(P,P[i]-P[j])) then 6374if (t[Position(P,P[i]-P[j] )] = 1) then 6375Add(KK2, -1*(+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])); 6376Add(KK2, p+Position(P, P[i]-P[j]) ); 6377else 6378Add(KK1, (+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])); 6379Add(KK1, p+Position(P, K[i]-K[j]) ); 6380fi; 6381 else #(p+Position(P,K[j]+K[i]) < p+Position(P,P[j]+P[i])) 6382if (t[Position(P,P[i]-P[j] )] = 1) then 6383Add(KK1, -1*(+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])); 6384Add(KK1, p+Position(P, P[i]-P[j]) ); 6385Add(KK2, -1*(+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])); 6386Add(KK2, p+Position(P, K[i]-K[j]) ); 6387else 6388Add(KK1, (+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])); 6389Add(KK1, p+Position(P, P[i]-P[j]) ); 6390Add(KK2, +1*(+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])); 6391Add(KK2, p+Position(P, K[i]-K[j]) ); 6392fi; 6393 fi; 6394fi; 6395fi; fi; 6396 6397fi; 6398fi; 6399 6400if ( Position(P, P[i]) > Position(P,K[j]) ) then 6401SetEntrySCTable( TT, i, p+j , KK1); 6402SetEntrySCTable( TT, i, p+Position(P,K[j]), KK2); 6403else 6404 if ( Position(P, P[i]) < Position(P,K[j]) ) then 6405SetEntrySCTable( TT, i, p+j , KK1); 6406 fi; 6407fi; 6408 6409################################################# 6410 else 6411 if ( p+Position(P, K[j]) = p+Position(P,P[j]) ) then #beta = phi_beta 6412 6413KK1:=[]; 6414 6415if (t[i]=1) then 6416if (t[j]=1) then 6417 6418if (P[i]+P[j] in P ) then #qui so che aplha+beta < phi_aplha + phi_beta quindi sono nel caso sicuro 6419if not (IsEmpty(To[Position(P, P[i])][Position(P,P[j])][2])=true) then 6420if (t[Position(P,P[j]+P[i])]=1) then 6421Add(KK1, +2*To[Position(P, P[i])][Position(P,P[j])][2][1]); 6422Add(KK1, p+Position(P, P[i]+P[j]) ); 6423fi; fi; fi; 6424 6425if (P[i]-P[j] in P ) then 6426if not (IsEmpty(To[Position(P, P[i])][p+Position(P,P[j])][2])=true) then 6427if (t[Position(P,P[i]-P[j])]=1) then 6428if (p+Position(P,K[i]-K[j]) > p+Position(P,P[i]-P[j])) then 6429Add(KK1, +2*To[Position(P, P[i])][p+Position(P,P[j])][2][1]); 6430Add(KK1, p+Position(P, P[i]-P[j]) ); 6431else 6432 if (p+Position(P,K[i]-K[j]) = p+Position(P, P[i]-P[j])) then 6433Add(KK1, +2*To[Position(P, P[i])][p+Position(P,P[j])][2][1]); 6434Add(KK1, p+Position(P, P[i]-P[j]) ); 6435 else 6436Add(KK1, +2*To[Position(P, P[i])][p+Position(P,P[j])][2][1]); 6437Add(KK1, p+Position(P, K[i]-K[j]) ); 6438 fi; 6439fi; fi; fi; fi; 6440 6441SetEntrySCTable( TT, i, p+j , KK1); 6442 6443else 6444 6445if (P[i]+P[j] in P ) then #qui so che aplha+beta < phi_aplha+phi_beta quindi sono nel caso sicuro 6446if not (IsEmpty(To[Position(P, P[i])][Position(P,P[j])][2])=true) then 6447if (t[Position(P,P[j]+P[i])]=-1) then 6448Add(KK1, +2*To[Position(P, P[i])][Position(P,P[j])][2][1]); 6449Add(KK1, p+Position(P, P[i]+P[j]) ); 6450fi; fi; fi; 6451 6452if (P[i]-P[j] in P ) then 6453if not (IsEmpty(To[Position(P, P[i])][p+Position(P,P[j])][2])=true) then 6454if (t[Position(P,P[i]-P[j])]=-1) then 6455if (p+Position(P,K[i]-K[j]) > p+Position(P,P[i]-P[j])) then 6456Add(KK1, +2*To[Position(P, P[i])][p+Position(P,P[j])][2][1]); 6457Add(KK1, p+Position(P, P[i]-P[j]) ); 6458else 6459 if (p+Position(P,K[i]-K[j]) = p+Position(P, P[i]-P[j])) then 6460Add(KK1, +2*To[Position(P, P[i])][p+Position(P,P[j])][2][1]); 6461Add(KK1, p+Position(P, P[i]-P[j]) ); 6462 else 6463Add(KK1, +2*To[Position(P, P[i])][p+Position(P,P[j])][2][1]); 6464Add(KK1, p+Position(P, K[i]-K[j]) ); 6465 fi; 6466fi; fi; fi; fi; 6467SetEntrySCTable( TT, i, p+j , KK1); 6468fi; 6469 6470else 6471if (t[j]=1) then 6472 6473if (P[i]+P[j] in P ) then #qui so che aplha+beta < phi_aplha+phi_beta quindi sono nel caso sicuro 6474if not (IsEmpty(To[Position(P, P[i])][Position(P,P[j])][2])=true) then 6475if (t[Position(P,P[j]+P[i])]=-1) then 6476Add(KK1, +2*To[Position(P, P[i])][Position(P,P[j])][2][1]); 6477Add(KK1, p+Position(P, P[i]+P[j]) ); 6478fi; fi; fi; 6479 6480if (P[i]-P[j] in P ) then 6481if not (IsEmpty(To[Position(P, P[i])][p+Position(P,P[j])][2])=true) then 6482if (t[Position(P,P[i]-P[j])]=-1) then 6483if (p+Position(P,K[i]-K[j]) > p+Position(P,P[i]-P[j])) then 6484Add(KK1, +2*To[Position(P, P[i])][p+Position(P,P[j])][2][1]); 6485Add(KK1, p+Position(P, P[i]-P[j]) ); 6486else 6487 if (p+Position(P,K[i]-K[j]) = p+Position(P, P[i]-P[j])) then 6488Add(KK1, +2*To[Position(P, P[i])][p+Position(P,P[j])][2][1]); 6489Add(KK1, p+Position(P, P[i]-P[j]) ); 6490 else 6491Add(KK1, +2*To[Position(P, P[i])][p+Position(P,P[j])][2][1]); 6492Add(KK1, p+Position(P, K[i]-K[j]) ); 6493 fi; 6494fi; fi; fi; fi; 6495 6496SetEntrySCTable( TT, i, p+j , KK1); 6497 6498 6499else 6500 6501 6502if (P[i]+P[j] in P ) then #qui so che aplha+beta < phi_aplha+phi_beta quindi sono nel caso sicuro 6503if not (IsEmpty(To[Position(P, P[i])][Position(P,P[j])][2])=true) then 6504if (t[Position(P,P[j]+P[i])]=1) then 6505Add(KK1, -2*To[Position(P, P[i])][Position(P,P[j])][2][1]); 6506Add(KK1, p+Position(P, P[i]+P[j]) ); 6507fi; fi; fi; 6508 6509if (P[i]-P[j] in P ) then 6510if not (IsEmpty(To[Position(P, P[i])][p+Position(P,P[j])][2])=true) then 6511if (t[Position(P,P[i]-P[j])]=1) then 6512if (p+Position(P,K[i]-K[j]) > p+Position(P,P[i]-P[j])) then 6513Add(KK1, -2*To[Position(P, P[i])][p+Position(P,P[j])][2][1]); 6514Add(KK1, p+Position(P, P[i]-P[j]) ); 6515else 6516 if (p+Position(P,K[i]-K[j]) = p+Position(P, P[i]-P[j])) then 6517Add(KK1, -2*To[Position(P, P[i])][p+Position(P,P[j])][2][1]); 6518Add(KK1, p+Position(P, P[i]-P[j]) ); 6519 else 6520Add(KK1, -2*To[Position(P, P[i])][p+Position(P,P[j])][2][1]); 6521Add(KK1, p+Position(P, K[i]-K[j]) ); 6522 fi; 6523fi; fi; fi; fi; 6524 6525SetEntrySCTable( TT, i, p+j , KK1); 6526 6527fi; 6528fi; fi; fi; 6529fi; fi; 6530od; od; 6531 6532for i in [1..p-1] do #alpha 6533 for j in [i+1..p] do #beta > alpha 6534 if ( Position(P,K[i]) > Position(P, P[j]) ) then #quindi alpha<phi_alpha 6535 if ( Position(P, K[j]) > Position(P, P[j]) ) then 6536KK3:=[]; # ibar p+j 6537KK4:=[]; # ibar p+jbar 6538 6539if (t[i]=1) then 6540if (t[j]=1) then 6541 6542if (P[i]+P[j] in P ) then #qui so che aplha+beta < phi_aplha+phi_beta quindi sono nel caso sicuro 6543if not (IsEmpty(To[Position(P, P[i])][Position(P,P[j])][2])=true) then 6544if (p+Position(P,K[j]+K[i]) > p+Position(P,P[j]+P[i])) then 6545 6546if (t[Position(P,P[j]+P[i] )] = 1) then 6547Add(KK3, (+1*To[Position(P, P[i])][Position(P,P[j])][2][1]+1*To[Position(P, K[i])][Position(P,K[j])][2][1])/2); 6548Add(KK3, p+Position(P, K[i]+K[j]) ); 6549Add(KK4, -1*(+1*To[Position(P, P[i])][Position(P,P[j])][2][1]+1*To[Position(P, K[i])][Position(P,K[j])][2][1])/2); 6550Add(KK4, p+Position(P, P[i]+P[j]) ); 6551else 6552Add(KK3, (+1*To[Position(P, P[i])][Position(P,P[j])][2][1]-1*To[Position(P, K[i])][Position(P,K[j])][2][1])/2); 6553Add(KK3, p+Position(P, K[i]+K[j]) ); 6554Add(KK4, -1*(+1*To[Position(P, P[i])][Position(P,P[j])][2][1]-1*To[Position(P, K[i])][Position(P,K[j])][2][1])/2); 6555Add(KK4, p+Position(P, P[i]+P[j]) ); 6556fi; 6557else 6558 if (p+Position(P,K[j]+K[i]) = p+Position(P,P[j]+P[i])) then 6559if (t[Position(P,P[j]+P[i] )] = 1) then 6560Add(KK4, -1*(+1*To[Position(P, P[i])][Position(P,P[j])][2][1]+1*To[Position(P, K[i])][Position(P,K[j])][2][1])/2); 6561Add(KK4, p+Position(P, P[i]+P[j]) ); 6562else 6563Add(KK3, (+1*To[Position(P, P[i])][Position(P,P[j])][2][1]-1*To[Position(P, K[i])][Position(P,K[j])][2][1])/2); 6564Add(KK3, p+Position(P, K[i]+K[j]) ); 6565fi; 6566 else #(p+Position(P,K[j]+K[i]) < p+Position(P,P[j]+P[i])) 6567if (t[Position(P,P[j]+P[i] )] = 1) then 6568Add(KK3, -1*(+1*To[Position(P, P[i])][Position(P,P[j])][2][1]+1*To[Position(P, K[i])][Position(P,K[j])][2][1])/2); 6569Add(KK3, p+Position(P, P[i]+P[j]) ); 6570Add(KK4, -1*(+1*To[Position(P, P[i])][Position(P,P[j])][2][1]+1*To[Position(P, K[i])][Position(P,K[j])][2][1])/2); 6571Add(KK4, p+Position(P,K[j]+K[i]) ); 6572else 6573Add(KK3, (+1*To[Position(P, P[i])][Position(P,P[j])][2][1]-1*To[Position(P, K[i])][Position(P,K[j])][2][1])/2); 6574Add(KK3, p+Position(P, P[i]+P[j]) ); 6575Add(KK4, +1*(+1*To[Position(P, P[i])][Position(P,P[j])][2][1]-1*To[Position(P, K[i])][Position(P,K[j])][2][1])/2); 6576Add(KK4, p+Position(P, K[j]+K[i]) ); 6577fi; 6578 fi; 6579fi; 6580fi; fi; 6581 6582############### 6583 6584if (P[i]-P[j] in P ) then 6585if not (IsEmpty(To[Position(P, P[i])][p+Position(P,P[j])][2])=true) then 6586if (p+Position(P,K[i]-K[j]) > p+Position(P,P[i]-P[j])) then 6587 6588if (t[Position(P,P[i]-P[j] )] = 1) then 6589Add(KK3, (+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])/2); 6590Add(KK3, p+Position(P, K[i]-K[j]) ); 6591Add(KK4, -1*(+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])/2); 6592Add(KK4, p+Position(P, P[i]-P[j]) ); 6593else 6594Add(KK3, (+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])/2); 6595Add(KK3, p+Position(P, K[i]-K[j]) ); 6596Add(KK4, -1*(+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])/2); 6597Add(KK4, p+Position(P, P[i]-P[j]) ); 6598fi; 6599else 6600 if (p+Position(P,K[i]-K[j]) = p+Position(P,P[i]-P[j])) then 6601if (t[Position(P,P[i]-P[j] )] = 1) then 6602Add(KK4, -1*(+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])/2); 6603Add(KK4, p+Position(P, P[i]-P[j]) ); 6604else 6605Add(KK3, (+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])/2); 6606Add(KK3, p+Position(P, K[i]-K[j]) ); 6607fi; 6608 else #(p+Position(P,K[j]+K[i]) < p+Position(P,P[j]+P[i])) 6609if (t[Position(P,P[i]-P[j] )] = 1) then 6610Add(KK3, -1*(+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])/2); 6611Add(KK3, p+Position(P, P[i]-P[j]) ); 6612Add(KK4, -1*(+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])/2); 6613Add(KK4, p+Position(P, K[i]-K[j]) ); 6614else 6615Add(KK3, (+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])/2); 6616Add(KK3, p+Position(P, P[i]-P[j]) ); 6617Add(KK4, +1*(+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])/2); 6618Add(KK4, p+Position(P, K[i]-K[j]) ); 6619fi; 6620 fi; 6621fi; 6622fi; fi; 6623 6624############# 6625 6626if (P[i]+K[j] in P ) then 6627if not (IsEmpty(To[Position(P, P[i])][Position(P,K[j])][2])=true) then 6628if (p+Position(P,K[i]+P[j]) > p+Position(P,P[i]+K[j])) then 6629 6630if (t[Position(P,P[i]+K[j] )] = 1) then 6631Add(KK3, (+1*To[Position(P, P[i])][Position(P,K[j])][2][1]+1*To[Position(P, K[i])][Position(P,P[j])][2][1])/2); 6632Add(KK3, p+Position(P, K[i]+P[j]) ); 6633Add(KK4, -1*(-1*To[Position(P, P[i])][Position(P,K[j])][2][1]-1*To[Position(P, K[i])][Position(P,P[j])][2][1])/2); 6634Add(KK4, p+Position(P, P[i]+K[j]) ); 6635else 6636Add(KK3, (+1*To[Position(P, P[i])][Position(P,K[j])][2][1]-1*To[Position(P, K[i])][Position(P,P[j])][2][1])/2); 6637Add(KK3, p+Position(P, K[i]+P[j]) ); 6638Add(KK4, -1*(-1*To[Position(P, P[i])][Position(P,K[j])][2][1]+1*To[Position(P, K[i])][Position(P,P[j])][2][1])/2); 6639Add(KK4, p+Position(P, P[i]+K[j]) ); 6640fi; 6641else 6642 if (p+Position(P,K[i]+P[j]) = p+Position(P,P[i]+K[j])) then 6643if (t[Position(P,K[j]+P[i] )] = 1) then 6644Add(KK4, -1*(-1*To[Position(P, P[i])][Position(P,K[j])][2][1]-1*To[Position(P, K[i])][Position(P,P[j])][2][1])/2); 6645Add(KK4, p+Position(P, P[i]+K[j]) ); 6646else 6647Add(KK3, (+1*To[Position(P, P[i])][Position(P,K[j])][2][1]-1*To[Position(P, K[i])][Position(P,P[j])][2][1])/2); 6648Add(KK3, p+Position(P, K[i]+P[j]) ); 6649fi; 6650 else #(p+Position(P,K[j]+K[i]) < p+Position(P,P[j]+P[i])) 6651if (t[Position(P,P[i]+K[j] )] = 1) then 6652Add(KK3, -1*(+1*To[Position(P, P[i])][Position(P,K[j])][2][1]+1*To[Position(P, K[i])][Position(P,P[j])][2][1])/2); 6653Add(KK3, p+Position(P, P[i]+K[j]) ); 6654Add(KK4, -1*(-1*To[Position(P, P[i])][Position(P,K[j])][2][1]-1*To[Position(P, K[i])][Position(P,P[j])][2][1])/2); 6655Add(KK4, p+Position(P, K[i]+P[j]) ); 6656else 6657Add(KK3, (+1*To[Position(P, P[i])][Position(P,K[j])][2][1]-1*To[Position(P, K[i])][Position(P,P[j])][2][1])/2); 6658Add(KK3, p+Position(P, P[i]+K[j]) ); 6659Add(KK4, -1*(-1*To[Position(P, P[i])][Position(P,K[j])][2][1]+1*To[Position(P, K[i])][Position(P,P[j])][2][1])/2); 6660Add(KK4, p+Position(P, K[i]+P[j]) ); 6661fi; 6662 fi; 6663fi; 6664fi; fi; 6665 6666############# 6667 6668if (P[i]-K[j] in P ) then 6669if not (IsEmpty(To[Position(P, P[i])][p+Position(P,K[j])][2])=true) then 6670if (p+Position(P,K[i]-P[j]) > p+Position(P,P[i]-K[j])) then 6671 6672if (t[Position(P,P[i]-K[j] )] = 1) then 6673Add(KK3, (+1*To[Position(P, P[i])][p+Position(P,K[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,P[j])][2][1])/2); 6674Add(KK3, p+Position(P, K[i]-P[j]) ); 6675Add(KK4, -1*(-1*To[Position(P, P[i])][p+Position(P,K[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,P[j])][2][1])/2); 6676Add(KK4, p+Position(P, P[i]-K[j]) ); 6677else 6678Add(KK3, (+1*To[Position(P, P[i])][p+Position(P,K[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,P[j])][2][1])/2); 6679Add(KK3, p+Position(P, K[i]-P[j]) ); 6680Add(KK4, -1*(-1*To[Position(P, P[i])][p+Position(P,K[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,P[j])][2][1])/2); 6681Add(KK4, p+Position(P, P[i]-K[j]) ); 6682fi; 6683else 6684 if (p+Position(P,K[i]-P[j]) = p+Position(P,P[i]-K[j])) then 6685if (t[Position(P,P[i]-K[j] )] = 1) then 6686Add(KK4, -1*(-1*To[Position(P, P[i])][p+Position(P,K[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,P[j])][2][1])/2); 6687Add(KK4, p+Position(P, P[i]-K[j]) ); 6688else 6689Add(KK3, (+1*To[Position(P, P[i])][p+Position(P,K[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,P[j])][2][1])/2); 6690Add(KK3, p+Position(P, K[i]-P[j]) ); 6691fi; 6692 else #(p+Position(P,K[j]+K[i]) < p+Position(P,P[j]+P[i])) 6693if (t[Position(P,P[i]-K[j] )] = 1) then 6694Add(KK3, -1*(+1*To[Position(P, P[i])][p+Position(P,K[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,P[j])][2][1])/2); 6695Add(KK3, p+Position(P, P[i]-K[j]) ); 6696Add(KK4, -1*(-1*To[Position(P, P[i])][p+Position(P,K[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,P[j])][2][1])/2); 6697Add(KK4, p+Position(P, K[i]-P[j]) ); 6698else 6699Add(KK3, (+1*To[Position(P, P[i])][p+Position(P,K[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,P[j])][2][1])/2); 6700Add(KK3, p+Position(P, P[i]-K[j]) ); 6701Add(KK4, -1*(-1*To[Position(P, P[i])][p+Position(P,K[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,P[j])][2][1])/2); 6702Add(KK4, p+Position(P, K[i]-P[j]) ); 6703fi; 6704 fi; 6705fi; 6706fi; fi; 6707 6708############# 6709else # ovvero t[j]=-1 6710######################### 6711 6712if (P[i]+P[j] in P ) then #qui so che aplha+beta < phi_aplha+phi_beta quindi sono nel caso sicuro 6713if not (IsEmpty(To[Position(P, P[i])][Position(P,P[j])][2])=true) then 6714if (p+Position(P,K[j]+K[i]) > p+Position(P,P[j]+P[i])) then 6715 6716if (t[Position(P,P[j]+P[i] )] = 1) then 6717Add(KK3, (+1*To[Position(P, P[i])][Position(P,P[j])][2][1]-1*To[Position(P, K[i])][Position(P,K[j])][2][1])/2); 6718Add(KK3, p+Position(P, K[i]+K[j]) ); 6719Add(KK4, -1*(+1*To[Position(P, P[i])][Position(P,P[j])][2][1]-1*To[Position(P, K[i])][Position(P,K[j])][2][1])/2); 6720Add(KK4, p+Position(P, P[i]+P[j]) ); 6721else 6722Add(KK3, (+1*To[Position(P, P[i])][Position(P,P[j])][2][1]+1*To[Position(P, K[i])][Position(P,K[j])][2][1])/2); 6723Add(KK3, p+Position(P, K[i]+K[j]) ); 6724Add(KK4, -1*(+1*To[Position(P, P[i])][Position(P,P[j])][2][1]+1*To[Position(P, K[i])][Position(P,K[j])][2][1])/2); 6725Add(KK4, p+Position(P, P[i]+P[j]) ); 6726fi; 6727else 6728 if (p+Position(P,K[j]+K[i]) = p+Position(P,P[j]+P[i])) then 6729if (t[Position(P,P[j]+P[i] )] = 1) then 6730Add(KK4, -1*(+1*To[Position(P, P[i])][Position(P,P[j])][2][1]-1*To[Position(P, K[i])][Position(P,K[j])][2][1])/2); 6731Add(KK4, p+Position(P, P[i]+P[j]) ); 6732else 6733Add(KK3, (+1*To[Position(P, P[i])][Position(P,P[j])][2][1]+1*To[Position(P, K[i])][Position(P,K[j])][2][1])/2); 6734Add(KK3, p+Position(P, K[i]+K[j]) ); 6735fi; 6736 else #(p+Position(P,K[j]+K[i]) < p+Position(P,P[j]+P[i])) 6737if (t[Position(P,P[j]+P[i] )] = 1) then 6738Add(KK3, -1*(+1*To[Position(P, P[i])][Position(P,P[j])][2][1]-1*To[Position(P, K[i])][Position(P,K[j])][2][1])/2); 6739Add(KK3, p+Position(P, P[i]+P[j]) ); 6740Add(KK4, -1*(+1*To[Position(P, P[i])][Position(P,P[j])][2][1]-1*To[Position(P, K[i])][Position(P,K[j])][2][1])/2); 6741Add(KK4, p+Position(P,K[j]+K[i]) ); 6742else 6743Add(KK3, (+1*To[Position(P, P[i])][Position(P,P[j])][2][1]+1*To[Position(P, K[i])][Position(P,K[j])][2][1])/2); 6744Add(KK3, p+Position(P, P[i]+P[j]) ); 6745Add(KK4, +1*(+1*To[Position(P, P[i])][Position(P,P[j])][2][1]+1*To[Position(P, K[i])][Position(P,K[j])][2][1])/2); 6746Add(KK4, p+Position(P, K[j]+K[i]) ); 6747fi; 6748 fi; 6749fi; 6750fi; fi; 6751 6752############### 6753 6754if (P[i]-P[j] in P ) then 6755if not (IsEmpty(To[Position(P, P[i])][p+Position(P,P[j])][2])=true) then 6756if (p+Position(P,K[i]-K[j]) > p+Position(P,P[i]-P[j])) then 6757 6758if (t[Position(P,P[i]-P[j] )] = 1) then 6759Add(KK3, (+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])/2); 6760Add(KK3, p+Position(P, K[i]-K[j]) ); 6761Add(KK4, -1*(+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])/2); 6762Add(KK4, p+Position(P, P[i]-P[j]) ); 6763else 6764Add(KK3, (+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])/2); 6765Add(KK3, p+Position(P, K[i]-K[j]) ); 6766Add(KK4, -1*(+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])/2); 6767Add(KK4, p+Position(P, P[i]-P[j]) ); 6768fi; 6769else 6770 if (p+Position(P,K[i]-K[j]) = p+Position(P,P[i]-P[j])) then 6771if (t[Position(P,P[i]-P[j] )] = 1) then 6772Add(KK4, -1*(+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])/2); 6773Add(KK4, p+Position(P, P[i]-P[j]) ); 6774else 6775Add(KK3, (+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])/2); 6776Add(KK3, p+Position(P, K[i]-K[j]) ); 6777fi; 6778 else #(p+Position(P,K[j]+K[i]) < p+Position(P,P[j]+P[i])) 6779if (t[Position(P,P[i]-P[j] )] = 1) then 6780Add(KK3, -1*(+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])/2); 6781Add(KK3, p+Position(P, P[i]-P[j]) ); 6782Add(KK4, -1*(+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])/2); 6783Add(KK4, p+Position(P, K[i]-K[j]) ); 6784else 6785Add(KK3, (+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])/2); 6786Add(KK3, p+Position(P, P[i]-P[j]) ); 6787Add(KK4, +1*(+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])/2); 6788Add(KK4, p+Position(P, K[i]-K[j]) ); 6789fi; 6790 fi; 6791fi; 6792fi; fi; 6793 6794############# 6795 6796if (P[i]+K[j] in P ) then 6797if not (IsEmpty(To[Position(P, P[i])][Position(P,K[j])][2])=true) then 6798if (p+Position(P,K[i]+P[j]) > p+Position(P,P[i]+K[j])) then 6799 6800if (t[Position(P,P[i]+K[j] )] = 1) then 6801Add(KK3, (-1*To[Position(P, P[i])][Position(P,K[j])][2][1]+1*To[Position(P, K[i])][Position(P,P[j])][2][1])/2); 6802Add(KK3, p+Position(P, K[i]+P[j]) ); 6803Add(KK4, -1*(+1*To[Position(P, P[i])][Position(P,K[j])][2][1]-1*To[Position(P, K[i])][Position(P,P[j])][2][1])/2); 6804Add(KK4, p+Position(P, P[i]+K[j]) ); 6805else 6806Add(KK3, (-1*To[Position(P, P[i])][Position(P,K[j])][2][1]-1*To[Position(P, K[i])][Position(P,P[j])][2][1])/2); 6807Add(KK3, p+Position(P, K[i]+P[j]) ); 6808Add(KK4, -1*(+1*To[Position(P, P[i])][Position(P,K[j])][2][1]+1*To[Position(P, K[i])][Position(P,P[j])][2][1])/2); 6809Add(KK4, p+Position(P, P[i]+K[j]) ); 6810fi; 6811else 6812 if (p+Position(P,K[i]+P[j]) = p+Position(P,P[i]+K[j])) then 6813if (t[Position(P,K[j]+P[i] )] = 1) then 6814Add(KK4, -1*(+1*To[Position(P, P[i])][Position(P,K[j])][2][1]-1*To[Position(P, K[i])][Position(P,P[j])][2][1])/2); 6815Add(KK4, p+Position(P, P[i]+K[j]) ); 6816else 6817Add(KK3, (-1*To[Position(P, P[i])][Position(P,K[j])][2][1]-1*To[Position(P, K[i])][Position(P,P[j])][2][1])/2); 6818Add(KK3, p+Position(P, K[i]+P[j]) ); 6819fi; 6820 else #(p+Position(P,K[j]+K[i]) < p+Position(P,P[j]+P[i])) 6821if (t[Position(P,P[i]+K[j] )] = 1) then 6822Add(KK3, -1*(-1*To[Position(P, P[i])][Position(P,K[j])][2][1]+1*To[Position(P, K[i])][Position(P,P[j])][2][1])/2); 6823Add(KK3, p+Position(P, P[i]+K[j]) ); 6824Add(KK4, -1*(+1*To[Position(P, P[i])][Position(P,K[j])][2][1]-1*To[Position(P, K[i])][Position(P,P[j])][2][1])/2); 6825Add(KK4, p+Position(P, K[i]+P[j]) ); 6826else 6827Add(KK3, (-1*To[Position(P, P[i])][Position(P,K[j])][2][1]-1*To[Position(P, K[i])][Position(P,P[j])][2][1])/2); 6828Add(KK3, p+Position(P, P[i]+K[j]) ); 6829Add(KK4, +1*(+1*To[Position(P, P[i])][Position(P,K[j])][2][1]+1*To[Position(P, K[i])][Position(P,P[j])][2][1])/2); 6830Add(KK4, p+Position(P, K[i]+P[j]) ); 6831fi; 6832 fi; 6833fi; 6834fi; fi; 6835 6836############# 6837 6838if (P[i]-K[j] in P ) then 6839if not (IsEmpty(To[Position(P, P[i])][p+Position(P,K[j])][2])=true) then 6840if (p+Position(P,K[i]-P[j]) > p+Position(P,P[i]-K[j])) then 6841 6842if (t[Position(P,P[i]-K[j] )] = 1) then 6843Add(KK3, (-1*To[Position(P, P[i])][p+Position(P,K[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,P[j])][2][1])/2); 6844Add(KK3, p+Position(P, K[i]-P[j]) ); 6845Add(KK4, -1*(+1*To[Position(P, P[i])][p+Position(P,K[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,P[j])][2][1])/2); 6846Add(KK4, p+Position(P, P[i]-K[j]) ); 6847else 6848Add(KK3, (-1*To[Position(P, P[i])][p+Position(P,K[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,P[j])][2][1])/2); 6849Add(KK3, p+Position(P, K[i]-P[j]) ); 6850Add(KK4, -1*(+1*To[Position(P, P[i])][p+Position(P,K[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,P[j])][2][1])/2); 6851Add(KK4, p+Position(P, P[i]-K[j]) ); 6852fi; 6853else 6854 if (p+Position(P,K[i]-P[j]) = p+Position(P,P[i]-K[j])) then 6855if (t[Position(P,P[i]-K[j] )] = 1) then 6856Add(KK4, -1*(+1*To[Position(P, P[i])][p+Position(P,K[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,P[j])][2][1])/2); 6857Add(KK4, p+Position(P, P[i]-K[j]) ); 6858else 6859Add(KK3, (-1*To[Position(P, P[i])][p+Position(P,K[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,P[j])][2][1])/2); 6860Add(KK3, p+Position(P, K[i]-P[j]) ); 6861fi; 6862 else #(p+Position(P,K[j]+K[i]) < p+Position(P,P[j]+P[i])) 6863if (t[Position(P,P[i]-K[j] )] = 1) then 6864Add(KK3, -1*(-1*To[Position(P, P[i])][p+Position(P,K[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,P[j])][2][1])/2); 6865Add(KK3, p+Position(P, P[i]-K[j]) ); 6866Add(KK4, -1*(+1*To[Position(P, P[i])][p+Position(P,K[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,P[j])][2][1])/2); 6867Add(KK4, p+Position(P, K[i]-P[j]) ); 6868else 6869Add(KK3, (-1*To[Position(P, P[i])][p+Position(P,K[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,P[j])][2][1])/2); 6870Add(KK3, p+Position(P, P[i]-K[j]) ); 6871Add(KK4, +1*(+1*To[Position(P, P[i])][p+Position(P,K[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,P[j])][2][1])/2); 6872Add(KK4, p+Position(P, K[i]-P[j]) ); 6873fi; 6874 fi; 6875fi; 6876fi; fi; 6877 6878fi; 6879 6880########################à 6881else #t[i]=-1 6882if (t[j]=1) then 6883############### 6884 6885if (P[i]+P[j] in P ) then #qui so che aplha+beta < phi_aplha+phi_beta quindi sono nel caso sicuro 6886if not (IsEmpty(To[Position(P, P[i])][Position(P,P[j])][2])=true) then 6887if (p+Position(P,K[j]+K[i]) > p+Position(P,P[j]+P[i])) then 6888 6889if (t[Position(P,P[j]+P[i] )] = 1) then 6890Add(KK3, (+1*To[Position(P, P[i])][Position(P,P[j])][2][1]-1*To[Position(P, K[i])][Position(P,K[j])][2][1])/2); 6891Add(KK3, p+Position(P, K[i]+K[j]) ); 6892Add(KK4, -1*(+1*To[Position(P, P[i])][Position(P,P[j])][2][1]-1*To[Position(P, K[i])][Position(P,K[j])][2][1])/2); 6893Add(KK4, p+Position(P, P[i]+P[j]) ); 6894else 6895Add(KK3, (+1*To[Position(P, P[i])][Position(P,P[j])][2][1]+1*To[Position(P, K[i])][Position(P,K[j])][2][1])/2); 6896Add(KK3, p+Position(P, K[i]+K[j]) ); 6897Add(KK4, (+1*To[Position(P, P[i])][Position(P,P[j])][2][1]+1*To[Position(P, K[i])][Position(P,K[j])][2][1])/2); 6898Add(KK4, p+Position(P, P[i]+P[j]) ); 6899fi; 6900else 6901 if (p+Position(P,K[j]+K[i]) = p+Position(P,P[j]+P[i])) then 6902if (t[Position(P,P[j]+P[i] )] = 1) then 6903Add(KK4, -1*(+1*To[Position(P, P[i])][Position(P,P[j])][2][1]-1*To[Position(P, K[i])][Position(P,K[j])][2][1])/2); 6904Add(KK4, p+Position(P, P[i]+P[j]) ); 6905else 6906Add(KK3, (+1*To[Position(P, P[i])][Position(P,P[j])][2][1]+1*To[Position(P, K[i])][Position(P,K[j])][2][1])/2); 6907Add(KK3, p+Position(P, K[i]+K[j]) ); 6908fi; 6909 else #(p+Position(P,K[j]+K[i]) < p+Position(P,P[j]+P[i])) 6910if (t[Position(P,P[j]+P[i] )] = 1) then 6911Add(KK3, -1*(+1*To[Position(P, P[i])][Position(P,P[j])][2][1]-1*To[Position(P, K[i])][Position(P,K[j])][2][1])/2); 6912Add(KK3, p+Position(P, P[i]+P[j]) ); 6913Add(KK4, -1*(+1*To[Position(P, P[i])][Position(P,P[j])][2][1]-1*To[Position(P, K[i])][Position(P,K[j])][2][1])/2); 6914Add(KK4, p+Position(P,K[j]+K[i]) ); 6915else 6916Add(KK3, (+1*To[Position(P, P[i])][Position(P,P[j])][2][1]+1*To[Position(P, K[i])][Position(P,K[j])][2][1])/2); 6917Add(KK3, p+Position(P, P[i]+P[j]) ); 6918Add(KK4, +1*(+1*To[Position(P, P[i])][Position(P,P[j])][2][1]+1*To[Position(P, K[i])][Position(P,K[j])][2][1])/2); 6919Add(KK4, p+Position(P, K[j]+K[i]) ); 6920fi; 6921 fi; 6922fi; 6923fi; fi; 6924############### 6925 6926if (P[i]-P[j] in P ) then 6927if not (IsEmpty(To[Position(P, P[i])][p+Position(P,P[j])][2])=true) then 6928if (p+Position(P,K[i]-K[j]) > p+Position(P,P[i]-P[j])) then 6929 6930if (t[Position(P,P[i]-P[j] )] = 1) then 6931Add(KK3, (+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])/2); 6932Add(KK3, p+Position(P, K[i]-K[j]) ); 6933Add(KK4, -1*(+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])/2); 6934Add(KK4, p+Position(P, P[i]-P[j]) ); 6935else 6936Add(KK3, (+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])/2); 6937Add(KK3, p+Position(P, K[i]-K[j]) ); 6938Add(KK4, -1*(+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])/2); 6939Add(KK4, p+Position(P, P[i]-P[j]) ); 6940fi; 6941else 6942 if (p+Position(P,K[i]-K[j]) = p+Position(P,P[i]-P[j])) then 6943if (t[Position(P,P[i]-P[j] )] = 1) then 6944Add(KK4, -1*(+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])/2); 6945Add(KK4, p+Position(P, P[i]-P[j]) ); 6946else 6947Add(KK3, (+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])/2); 6948Add(KK3, p+Position(P, K[i]-K[j]) ); 6949fi; 6950 else #(p+Position(P,K[j]+K[i]) < p+Position(P,P[j]+P[i])) 6951if (t[Position(P,P[i]-P[j] )] = 1) then 6952Add(KK3, -1*(+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])/2); 6953Add(KK3, p+Position(P, P[i]-P[j]) ); 6954Add(KK4, -1*(+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])/2); 6955Add(KK4, p+Position(P, K[i]-K[j]) ); 6956else 6957Add(KK3, (+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])/2); 6958Add(KK3, p+Position(P, P[i]-P[j]) ); 6959Add(KK4, +1*(+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])/2); 6960Add(KK4, p+Position(P, K[i]-K[j]) ); 6961fi; 6962 fi; 6963fi; 6964fi; fi; 6965 6966############# 6967 6968if (P[i]+K[j] in P ) then 6969if not (IsEmpty(To[Position(P, P[i])][Position(P,K[j])][2])=true) then 6970if (p+Position(P,K[i]+P[j]) > p+Position(P,P[i]+K[j])) then 6971 6972if (t[Position(P,P[i]+K[j] )] = 1) then 6973Add(KK3, (+1*To[Position(P, P[i])][Position(P,K[j])][2][1]-1*To[Position(P, K[i])][Position(P,P[j])][2][1])/2); 6974Add(KK3, p+Position(P, K[i]+P[j]) ); 6975Add(KK4, -1*(-1*To[Position(P, P[i])][Position(P,K[j])][2][1]+1*To[Position(P, K[i])][Position(P,P[j])][2][1])/2); 6976Add(KK4, p+Position(P, P[i]+K[j]) ); 6977else 6978Add(KK3, (+1*To[Position(P, P[i])][Position(P,K[j])][2][1]+1*To[Position(P, K[i])][Position(P,P[j])][2][1])/2); 6979Add(KK3, p+Position(P, K[i]+P[j]) ); 6980Add(KK4, -1*(-1*To[Position(P, P[i])][Position(P,K[j])][2][1]-1*To[Position(P, K[i])][Position(P,P[j])][2][1])/2); 6981Add(KK4, p+Position(P, P[i]+K[j]) ); 6982fi; 6983else 6984 if (p+Position(P,K[i]+P[j]) = p+Position(P,P[i]+K[j])) then 6985if (t[Position(P,K[j]+P[i] )] = 1) then 6986Add(KK4, -1*(-1*To[Position(P, P[i])][Position(P,K[j])][2][1]+1*To[Position(P, K[i])][Position(P,P[j])][2][1])/2); 6987Add(KK4, p+Position(P, P[i]+K[j]) ); 6988else 6989Add(KK3, (+1*To[Position(P, P[i])][Position(P,K[j])][2][1]+1*To[Position(P, K[i])][Position(P,P[j])][2][1])/2); 6990Add(KK3, p+Position(P, K[i]+P[j]) ); 6991fi; 6992 else #(p+Position(P,K[j]+K[i]) < p+Position(P,P[j]+P[i])) 6993if (t[Position(P,P[i]+K[j] )] = 1) then 6994Add(KK3, -1*(+1*To[Position(P, P[i])][Position(P,K[j])][2][1]-1*To[Position(P, K[i])][Position(P,P[j])][2][1])/2); 6995Add(KK3, p+Position(P, P[i]+K[j]) ); 6996Add(KK4, -1*(-1*To[Position(P, P[i])][Position(P,K[j])][2][1]+1*To[Position(P, K[i])][Position(P,P[j])][2][1])/2); 6997Add(KK4, p+Position(P, K[i]+P[j]) ); 6998else 6999Add(KK3, (+1*To[Position(P, P[i])][Position(P,K[j])][2][1]+1*To[Position(P, K[i])][Position(P,P[j])][2][1])/2); 7000Add(KK3, p+Position(P, P[i]+K[j]) ); 7001Add(KK4, +1*(-1*To[Position(P, P[i])][Position(P,K[j])][2][1]-1*To[Position(P, K[i])][Position(P,P[j])][2][1])/2); 7002Add(KK4, p+Position(P, K[i]+P[j]) ); 7003fi; 7004 fi; 7005fi; 7006fi; fi; 7007 7008############# 7009 7010if (P[i]-K[j] in P ) then 7011if not (IsEmpty(To[Position(P, P[i])][p+Position(P,K[j])][2])=true) then 7012if (p+Position(P,K[i]-P[j]) > p+Position(P,P[i]-K[j])) then 7013 7014if (t[Position(P,P[i]-K[j] )] = 1) then 7015Add(KK3, (+1*To[Position(P, P[i])][p+Position(P,K[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,P[j])][2][1])/2); 7016Add(KK3, p+Position(P, K[i]-P[j]) ); 7017Add(KK4, -1*(-1*To[Position(P, P[i])][p+Position(P,K[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,P[j])][2][1])/2); 7018Add(KK4, p+Position(P, P[i]-K[j]) ); 7019else 7020Add(KK3, (+1*To[Position(P, P[i])][p+Position(P,K[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,P[j])][2][1])/2); 7021Add(KK3, p+Position(P, K[i]-P[j]) ); 7022Add(KK4, -1*(-1*To[Position(P, P[i])][p+Position(P,K[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,P[j])][2][1])/2); 7023Add(KK4, p+Position(P, P[i]-K[j]) ); 7024fi; 7025else 7026 if (p+Position(P,K[i]-P[j]) = p+Position(P,P[i]-K[j])) then 7027if (t[Position(P,P[i]-K[j] )] = 1) then 7028Add(KK4, -1*(-1*To[Position(P, P[i])][p+Position(P,K[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,P[j])][2][1])/2); 7029Add(KK4, p+Position(P, P[i]-K[j]) ); 7030else 7031Add(KK3, (+1*To[Position(P, P[i])][p+Position(P,K[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,P[j])][2][1])/2); 7032Add(KK3, p+Position(P, K[i]-P[j]) ); 7033fi; 7034 else #(p+Position(P,K[j]+K[i]) < p+Position(P,P[j]+P[i])) 7035if (t[Position(P,P[i]-K[j] )] = 1) then 7036Add(KK3, -1*(+1*To[Position(P, P[i])][p+Position(P,K[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,P[j])][2][1])/2); 7037Add(KK3, p+Position(P, P[i]-K[j]) ); 7038Add(KK4, -1*(-1*To[Position(P, P[i])][p+Position(P,K[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,P[j])][2][1])/2); 7039Add(KK4, p+Position(P, K[i]-P[j]) ); 7040else 7041Add(KK3, (+1*To[Position(P, P[i])][p+Position(P,K[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,P[j])][2][1])/2); 7042Add(KK3, p+Position(P, P[i]-K[j]) ); 7043Add(KK4, +1*(-1*To[Position(P, P[i])][p+Position(P,K[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,P[j])][2][1])/2); 7044Add(KK4, p+Position(P, K[i]-P[j]) ); 7045fi; 7046 fi; 7047fi; 7048fi; fi; 7049 7050##################### 7051else #t[j]=-1 7052######################### 7053 7054if (P[i]+P[j] in P ) then #qui so che aplha+beta < phi_aplha+phi_beta quindi sono nel caso sicuro 7055if not (IsEmpty(To[Position(P, P[i])][Position(P,P[j])][2])=true) then 7056if (p+Position(P,K[j]+K[i]) > p+Position(P,P[j]+P[i])) then 7057 7058if (t[Position(P,P[j]+P[i] )] = 1) then 7059Add(KK3, (+1*To[Position(P, P[i])][Position(P,P[j])][2][1]+1*To[Position(P, K[i])][Position(P,K[j])][2][1])/2); 7060Add(KK3, p+Position(P, K[i]+K[j]) ); 7061Add(KK4, -1*(+1*To[Position(P, P[i])][Position(P,P[j])][2][1]+1*To[Position(P, K[i])][Position(P,K[j])][2][1])/2); 7062Add(KK4, p+Position(P, P[i]+P[j]) ); 7063else 7064Add(KK3, (+1*To[Position(P, P[i])][Position(P,P[j])][2][1]-1*To[Position(P, K[i])][Position(P,K[j])][2][1])/2); 7065Add(KK3, p+Position(P, K[i]+K[j]) ); 7066Add(KK4, -1*(+1*To[Position(P, P[i])][Position(P,P[j])][2][1]-1*To[Position(P, K[i])][Position(P,K[j])][2][1])/2); 7067Add(KK4, p+Position(P, P[i]+P[j]) ); 7068fi; 7069else 7070 if (p+Position(P,K[j]+K[i]) = p+Position(P,P[j]+P[i])) then 7071if (t[Position(P,P[j]+P[i] )] = 1) then 7072Add(KK4, -1*(+1*To[Position(P, P[i])][Position(P,P[j])][2][1]+1*To[Position(P, K[i])][Position(P,K[j])][2][1])/2); 7073Add(KK4, p+Position(P, P[i]+P[j]) ); 7074else 7075Add(KK3, (+1*To[Position(P, P[i])][Position(P,P[j])][2][1]-1*To[Position(P, K[i])][Position(P,K[j])][2][1])/2); 7076Add(KK3, p+Position(P, K[i]+K[j]) ); 7077fi; 7078 else #(p+Position(P,K[j]+K[i]) < p+Position(P,P[j]+P[i])) 7079if (t[Position(P,P[j]+P[i] )] = 1) then 7080Add(KK3, -1*(+1*To[Position(P, P[i])][Position(P,P[j])][2][1]+1*To[Position(P, K[i])][Position(P,K[j])][2][1])/2); 7081Add(KK3, p+Position(P, P[i]+P[j]) ); 7082Add(KK4, -1*(+1*To[Position(P, P[i])][Position(P,P[j])][2][1]+1*To[Position(P, K[i])][Position(P,K[j])][2][1])/2); 7083Add(KK4, p+Position(P,K[j]+K[i]) ); 7084else 7085Add(KK3, (+1*To[Position(P, P[i])][Position(P,P[j])][2][1]-1*To[Position(P, K[i])][Position(P,K[j])][2][1])/2); 7086Add(KK3, p+Position(P, P[i]+P[j]) ); 7087Add(KK4, +1*(+1*To[Position(P, P[i])][Position(P,P[j])][2][1]-1*To[Position(P, K[i])][Position(P,K[j])][2][1])/2); 7088Add(KK4, p+Position(P, K[j]+K[i]) ); 7089fi; 7090 fi; 7091fi; 7092fi; fi; 7093 7094############### 7095 7096if (P[i]-P[j] in P ) then 7097if not (IsEmpty(To[Position(P, P[i])][p+Position(P,P[j])][2])=true) then 7098if (p+Position(P,K[i]-K[j]) > p+Position(P,P[i]-P[j])) then 7099 7100if (t[Position(P,P[i]-P[j] )] = 1) then 7101Add(KK3, (+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])/2); 7102Add(KK3, p+Position(P, K[i]-K[j]) ); 7103Add(KK4, -1*(+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])/2); 7104Add(KK4, p+Position(P, P[i]-P[j]) ); 7105else 7106Add(KK3, (+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])/2); 7107Add(KK3, p+Position(P, K[i]-K[j]) ); 7108Add(KK4, -1*(+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])/2); 7109Add(KK4, p+Position(P, P[i]-P[j]) ); 7110fi; 7111else 7112 if (p+Position(P,K[i]-K[j]) = p+Position(P,P[i]-P[j])) then 7113if (t[Position(P,P[i]-P[j] )] = 1) then 7114Add(KK4, -1*(+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])/2); 7115Add(KK4, p+Position(P, P[i]-P[j]) ); 7116else 7117Add(KK3, (+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])/2); 7118Add(KK3, p+Position(P, K[i]-K[j]) ); 7119fi; 7120 else #(p+Position(P,K[j]+K[i]) < p+Position(P,P[j]+P[i])) 7121if (t[Position(P,P[i]-P[j] )] = 1) then 7122Add(KK3, -1*(+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])/2); 7123Add(KK3, p+Position(P, P[i]-P[j]) ); 7124Add(KK4, -1*(+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])/2); 7125Add(KK4, p+Position(P, K[i]-K[j]) ); 7126else 7127Add(KK3, (+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])/2); 7128Add(KK3, p+Position(P, P[i]-P[j]) ); 7129Add(KK4, +1*(+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])/2); 7130Add(KK4, p+Position(P, K[i]-K[j]) ); 7131fi; 7132 fi; 7133fi; 7134fi; fi; 7135 7136############# 7137 7138if (P[i]+K[j] in P ) then 7139if not (IsEmpty(To[Position(P, P[i])][Position(P,K[j])][2])=true) then 7140if (p+Position(P,K[i]+P[j]) > p+Position(P,P[i]+K[j])) then 7141 7142if (t[Position(P,P[i]+K[j] )] = 1) then 7143Add(KK3, (-1*To[Position(P, P[i])][Position(P,K[j])][2][1]-1*To[Position(P, K[i])][Position(P,P[j])][2][1])/2); 7144Add(KK3, p+Position(P, K[i]+P[j]) ); 7145Add(KK4, -1*(+1*To[Position(P, P[i])][Position(P,K[j])][2][1]+1*To[Position(P, K[i])][Position(P,P[j])][2][1])/2); 7146Add(KK4, p+Position(P, P[i]+K[j]) ); 7147else 7148Add(KK3, (-1*To[Position(P, P[i])][Position(P,K[j])][2][1]+1*To[Position(P, K[i])][Position(P,P[j])][2][1])/2); 7149Add(KK3, p+Position(P, K[i]+P[j]) ); 7150Add(KK4, -1*(+1*To[Position(P, P[i])][Position(P,K[j])][2][1]-1*To[Position(P, K[i])][Position(P,P[j])][2][1])/2); 7151Add(KK4, p+Position(P, P[i]+K[j]) ); 7152fi; 7153else 7154 if (p+Position(P,K[i]+P[j]) = p+Position(P,P[i]+K[j])) then 7155if (t[Position(P,K[j]+P[i] )] = 1) then 7156Add(KK4, -1*(+1*To[Position(P, P[i])][Position(P,K[j])][2][1]+1*To[Position(P, K[i])][Position(P,P[j])][2][1])/2); 7157Add(KK4, p+Position(P, P[i]+K[j]) ); 7158else 7159Add(KK3, (-1*To[Position(P, P[i])][Position(P,K[j])][2][1]+1*To[Position(P, K[i])][Position(P,P[j])][2][1])/2); 7160Add(KK3, p+Position(P, K[i]+P[j]) ); 7161fi; 7162 else #(p+Position(P,K[j]+K[i]) < p+Position(P,P[j]+P[i])) 7163if (t[Position(P,P[i]+K[j] )] = 1) then 7164Add(KK3, -1*(-1*To[Position(P, P[i])][Position(P,K[j])][2][1]-1*To[Position(P, K[i])][Position(P,P[j])][2][1])/2); 7165Add(KK3, p+Position(P, P[i]+K[j]) ); 7166Add(KK4, -1*(+1*To[Position(P, P[i])][Position(P,K[j])][2][1]+1*To[Position(P, K[i])][Position(P,P[j])][2][1])/2); 7167Add(KK4, p+Position(P, K[i]+P[j]) ); 7168else 7169Add(KK3, (-1*To[Position(P, P[i])][Position(P,K[j])][2][1]+1*To[Position(P, K[i])][Position(P,P[j])][2][1])/2); 7170Add(KK3, p+Position(P, P[i]+K[j]) ); 7171Add(KK4, +1*(+1*To[Position(P, P[i])][Position(P,K[j])][2][1]-1*To[Position(P, K[i])][Position(P,P[j])][2][1])/2); 7172Add(KK4, p+Position(P, K[i]+P[j]) ); 7173fi; 7174 fi; 7175fi; 7176fi; fi; 7177 7178############# 7179 7180if (P[i]-K[j] in P ) then 7181if not (IsEmpty(To[Position(P, P[i])][p+Position(P,K[j])][2])=true) then 7182if (p+Position(P,K[i]-P[j]) > p+Position(P,P[i]-K[j])) then 7183 7184if (t[Position(P,P[i]-K[j] )] = 1) then 7185Add(KK3, (-1*To[Position(P, P[i])][p+Position(P,K[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,P[j])][2][1])/2); 7186Add(KK3, p+Position(P, K[i]-P[j]) ); 7187Add(KK4, -1*(+1*To[Position(P, P[i])][p+Position(P,K[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,P[j])][2][1])/2); 7188Add(KK4, p+Position(P, P[i]-K[j]) ); 7189else 7190Add(KK3, (-1*To[Position(P, P[i])][p+Position(P,K[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,P[j])][2][1])/2); 7191Add(KK3, p+Position(P, K[i]-P[j]) ); 7192Add(KK4, -1*(+1*To[Position(P, P[i])][p+Position(P,K[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,P[j])][2][1])/2); 7193Add(KK4, p+Position(P, P[i]-K[j]) ); 7194fi; 7195else 7196 if (p+Position(P,K[i]-P[j]) = p+Position(P,P[i]-K[j])) then 7197if (t[Position(P,P[i]-K[j] )] = 1) then 7198Add(KK4, -1*(+1*To[Position(P, P[i])][p+Position(P,K[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,P[j])][2][1])/2); 7199Add(KK4, p+Position(P, P[i]-K[j]) ); 7200else 7201Add(KK3, (-1*To[Position(P, P[i])][p+Position(P,K[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,P[j])][2][1])/2); 7202Add(KK3, p+Position(P, K[i]-P[j]) ); 7203fi; 7204 else #(p+Position(P,K[j]+K[i]) < p+Position(P,P[j]+P[i])) 7205if (t[Position(P,P[i]-K[j] )] = 1) then 7206Add(KK3, -1*(-1*To[Position(P, P[i])][p+Position(P,K[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,P[j])][2][1])/2); 7207Add(KK3, p+Position(P, P[i]-K[j]) ); 7208Add(KK4, -1*(+1*To[Position(P, P[i])][p+Position(P,K[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,P[j])][2][1])/2); 7209Add(KK4, p+Position(P, K[i]-P[j]) ); 7210else 7211Add(KK3, (-1*To[Position(P, P[i])][p+Position(P,K[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,P[j])][2][1])/2); 7212Add(KK3, p+Position(P, P[i]-K[j]) ); 7213Add(KK4, +1*(+1*To[Position(P, P[i])][p+Position(P,K[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,P[j])][2][1])/2); 7214Add(KK4, p+Position(P, K[i]-P[j]) ); 7215fi; 7216 fi; 7217fi; 7218fi; fi; 7219 7220fi; fi; 7221 7222if ( Position(P,K[i]) > Position(P,K[j]) ) then 7223SetEntrySCTable( TT, Position(P,K[i]), p+Position(P,P[j]), KK3); 7224SetEntrySCTable( TT, Position(P,K[i]), p+Position(P, K[j]), KK4); 7225else 7226 if ( Position(P,K[i]) < Position(P,K[j]) ) then 7227SetEntrySCTable( TT, Position(P,K[i]), p+Position(P,P[j]), KK3); 7228 fi; 7229fi; 7230 7231 7232else 7233 7234 if ( p+Position(P, K[j]) = p+Position(P,P[j]) ) then #beta = phi_beta 7235 7236KK1:=[]; 7237KK2:=[]; 7238 7239if (t[i]=1) then 7240if (t[j]=1) then 7241 7242if (P[i]+P[j] in P ) then #qui so che aplha+beta < phi_aplha+phi_beta quindi sono nel caso sicuro 7243if not (IsEmpty(To[Position(P, P[i])][Position(P,P[j])][2])=true) then 7244if (p+Position(P,K[j]+K[i]) > p+Position(P,P[j]+P[i])) then 7245 7246if (t[Position(P,P[j]+P[i] )] = 1) then 7247Add(KK2, (+1*To[Position(P, P[i])][Position(P,P[j])][2][1]+1*To[Position(P, K[i])][Position(P,K[j])][2][1])); 7248Add(KK2, p+Position(P, K[i]+K[j]) ); 7249else 7250Add(KK2, (+1*To[Position(P, P[i])][Position(P,P[j])][2][1]-1*To[Position(P, K[i])][Position(P,K[j])][2][1])); 7251Add(KK2, p+Position(P, K[i]+K[j]) ); 7252fi; 7253else 7254 if (p+Position(P,K[j]+K[i]) = p+Position(P,P[j]+P[i])) then 7255if (t[Position(P,P[j]+P[i] )] = 1) then 7256else 7257Add(KK2, (+1*To[Position(P, P[i])][Position(P,P[j])][2][1]-1*To[Position(P, K[i])][Position(P,K[j])][2][1])); 7258Add(KK2, p+Position(P, K[i]+K[j]) ); 7259fi; 7260 else #(p+Position(P,K[j]+K[i]) < p+Position(P,P[j]+P[i])) 7261if (t[Position(P,P[j]+P[i] )] = 1) then 7262Add(KK2, -1*(+1*To[Position(P, P[i])][Position(P,P[j])][2][1]+1*To[Position(P, K[i])][Position(P,K[j])][2][1])); 7263Add(KK2, p+Position(P, P[i]+P[j]) ); 7264else 7265Add(KK2, (+1*To[Position(P, P[i])][Position(P,P[j])][2][1]-1*To[Position(P, K[i])][Position(P,K[j])][2][1])); 7266Add(KK2, p+Position(P, P[i]+P[j]) ); 7267fi; 7268 fi; 7269fi; 7270fi; fi; 7271 7272############### 7273 7274if (P[i]-P[j] in P ) then 7275if not (IsEmpty(To[Position(P, P[i])][p+Position(P,P[j])][2])=true) then 7276if (p+Position(P,K[i]-K[j]) > p+Position(P,P[i]-P[j])) then 7277 7278if (t[Position(P,P[i]-P[j] )] = 1) then 7279Add(KK2, (+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])); 7280Add(KK2, p+Position(P, K[i]-K[j]) ); 7281else 7282Add(KK2, (+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])); 7283Add(KK2, p+Position(P, K[i]-K[j]) ); 7284fi; 7285else 7286 if (p+Position(P,K[i]-K[j]) = p+Position(P,P[i]-P[j])) then 7287if (t[Position(P,P[i]-P[j] )] = 1) then 7288else 7289Add(KK2, (+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])); 7290Add(KK2, p+Position(P, K[i]-K[j]) ); 7291fi; 7292 else #(p+Position(P,K[j]+K[i]) < p+Position(P,P[j]+P[i])) 7293if (t[Position(P,P[i]-P[j] )] = 1) then 7294Add(KK2, -1*(+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])); 7295Add(KK2, p+Position(P, P[i]-P[j]) ); 7296else 7297Add(KK2, (+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])); 7298Add(KK2, p+Position(P, P[i]-P[j]) ); 7299fi; 7300 fi; 7301fi; 7302fi; fi; 7303 7304#################### 7305else #t[j]=-1 7306 7307if (P[i]+P[j] in P ) then #qui so che aplha+beta < phi_aplha+phi_beta quindi sono nel caso sicuro 7308if not (IsEmpty(To[Position(P, P[i])][Position(P,P[j])][2])=true) then 7309if (p+Position(P,K[j]+K[i]) > p+Position(P,P[j]+P[i])) then 7310 7311if (t[Position(P,P[j]+P[i] )] = 1) then 7312Add(KK2, -1*(+1*To[Position(P, P[i])][Position(P,P[j])][2][1]-1*To[Position(P, K[i])][Position(P,K[j])][2][1])); 7313Add(KK2, p+Position(P, P[i]+P[j]) ); 7314else 7315Add(KK2, -1*(+1*To[Position(P, P[i])][Position(P,P[j])][2][1]+1*To[Position(P, K[i])][Position(P,K[j])][2][1])); 7316Add(KK2, p+Position(P, P[i]+P[j]) ); 7317fi; 7318else 7319 if (p+Position(P,K[j]+K[i]) = p+Position(P,P[j]+P[i])) then 7320if (t[Position(P,P[j]+P[i] )] = 1) then 7321Add(KK2, -1*(+1*To[Position(P, P[i])][Position(P,P[j])][2][1]-1*To[Position(P, K[i])][Position(P,K[j])][2][1])); 7322Add(KK2, p+Position(P, P[i]+P[j]) ); 7323fi; 7324 else #(p+Position(P,K[j]+K[i]) < p+Position(P,P[j]+P[i])) 7325if (t[Position(P,P[j]+P[i] )] = 1) then 7326Add(KK2, -1*(+1*To[Position(P, P[i])][Position(P,P[j])][2][1]-1*To[Position(P, K[i])][Position(P,K[j])][2][1])); 7327Add(KK2, p+Position(P, P[i]+P[j]) ); 7328else 7329Add(KK2, +1*(+1*To[Position(P, P[i])][Position(P,P[j])][2][1]+1*To[Position(P, K[i])][Position(P,K[j])][2][1])); 7330Add(KK2, p+Position(P, K[j]+K[i]) ); 7331fi; 7332 fi; 7333fi; 7334fi; fi; 7335 7336############### 7337 7338if (P[i]-P[j] in P ) then 7339if not (IsEmpty(To[Position(P, P[i])][p+Position(P,P[j])][2])=true) then 7340if (p+Position(P,K[i]-K[j]) > p+Position(P,P[i]-P[j])) then 7341 7342if (t[Position(P,P[i]-P[j] )] = 1) then 7343Add(KK2, -1*(+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])); 7344Add(KK2, p+Position(P, P[i]-P[j]) ); 7345else 7346Add(KK2, -1*(+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])); 7347Add(KK2, p+Position(P, P[i]-P[j]) ); 7348fi; 7349else 7350 if (p+Position(P,K[i]-K[j]) = p+Position(P,P[i]-P[j])) then 7351if (t[Position(P,P[i]-P[j] )] = 1) then 7352Add(KK2, -1*(+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])); 7353Add(KK2, p+Position(P, P[i]-P[j]) ); 7354fi; 7355 else #(p+Position(P,K[j]+K[i]) < p+Position(P,P[j]+P[i])) 7356if (t[Position(P,P[i]-P[j] )] = 1) then 7357Add(KK2, -1*(+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])); 7358Add(KK2, p+Position(P, K[i]-K[j]) ); 7359else 7360Add(KK2, +1*(+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])); 7361Add(KK2, p+Position(P, K[i]-K[j]) ); 7362fi; 7363 fi; 7364fi; 7365fi; fi; 7366 7367fi; 7368 7369else #t[i]=-1 7370if (t[j]=1) then 7371 7372if (P[i]+P[j] in P ) then #qui so che aplha+beta < phi_aplha+phi_beta quindi sono nel caso sicuro 7373if not (IsEmpty(To[Position(P, P[i])][Position(P,P[j])][2])=true) then 7374if (p+Position(P,K[j]+K[i]) > p+Position(P,P[j]+P[i])) then 7375 7376if (t[Position(P,P[j]+P[i] )] = 1) then 7377Add(KK2, (+1*To[Position(P, P[i])][Position(P,P[j])][2][1]-1*To[Position(P, K[i])][Position(P,K[j])][2][1])); 7378Add(KK2, p+Position(P, K[i]+K[j]) ); 7379else 7380Add(KK2, (+1*To[Position(P, P[i])][Position(P,P[j])][2][1]+1*To[Position(P, K[i])][Position(P,K[j])][2][1])); 7381Add(KK2, p+Position(P, K[i]+K[j]) ); 7382fi; 7383else 7384 if (p+Position(P,K[j]+K[i]) = p+Position(P,P[j]+P[i])) then 7385if (t[Position(P,P[j]+P[i] )] = 1) then 7386else 7387Add(KK2, (+1*To[Position(P, P[i])][Position(P,P[j])][2][1]+1*To[Position(P, K[i])][Position(P,K[j])][2][1])); 7388Add(KK2, p+Position(P, K[i]+K[j]) ); 7389fi; 7390 else #(p+Position(P,K[j]+K[i]) < p+Position(P,P[j]+P[i])) 7391if (t[Position(P,P[j]+P[i] )] = 1) then 7392Add(KK2, -1*(+1*To[Position(P, P[i])][Position(P,P[j])][2][1]-1*To[Position(P, K[i])][Position(P,K[j])][2][1])); 7393Add(KK2, p+Position(P, P[i]+P[j]) ); 7394else 7395Add(KK2, (+1*To[Position(P, P[i])][Position(P,P[j])][2][1]+1*To[Position(P, K[i])][Position(P,K[j])][2][1])); 7396Add(KK2, p+Position(P, P[i]+P[j]) ); 7397fi; 7398 fi; 7399fi; 7400fi; fi; 7401 7402############### 7403 7404if (P[i]-P[j] in P ) then 7405if not (IsEmpty(To[Position(P, P[i])][p+Position(P,P[j])][2])=true) then 7406if (p+Position(P,K[i]-K[j]) > p+Position(P,P[i]-P[j])) then 7407 7408if (t[Position(P,P[i]-P[j] )] = 1) then 7409Add(KK2, (+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])); 7410Add(KK2, p+Position(P, K[i]-K[j]) ); 7411else 7412Add(KK2, (+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])); 7413Add(KK2, p+Position(P, K[i]-K[j]) ); 7414fi; 7415else 7416 if (p+Position(P,K[i]-K[j]) = p+Position(P,P[i]-P[j])) then 7417if (t[Position(P,P[i]-P[j] )] = 1) then 7418else 7419Add(KK2, (+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])); 7420Add(KK2, p+Position(P, K[i]-K[j]) ); 7421fi; 7422 else #(p+Position(P,K[j]+K[i]) < p+Position(P,P[j]+P[i])) 7423if (t[Position(P,P[i]-P[j] )] = 1) then 7424Add(KK2, -1*(+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])); 7425Add(KK2, p+Position(P, P[i]-P[j]) ); 7426else 7427Add(KK2, (+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])); 7428Add(KK2, p+Position(P, P[i]-P[j]) ); 7429fi; 7430 fi; 7431fi; 7432fi; fi; 7433 7434#################### 7435else #t[i]=t[j]=-1 7436 7437if (P[i]+P[j] in P ) then #qui so che aplha+beta < phi_aplha+phi_beta quindi sono nel caso sicuro 7438if not (IsEmpty(To[Position(P, P[i])][Position(P,P[j])][2])=true) then 7439if (p+Position(P,K[j]+K[i]) > p+Position(P,P[j]+P[i])) then 7440 7441if (t[Position(P,P[j]+P[i] )] = 1) then 7442Add(KK2, -1*(+1*To[Position(P, P[i])][Position(P,P[j])][2][1]+1*To[Position(P, K[i])][Position(P,K[j])][2][1])); 7443Add(KK2, p+Position(P, P[j]+P[i]) ); 7444else 7445Add(KK2, -1*(+1*To[Position(P, P[i])][Position(P,P[j])][2][1]-1*To[Position(P, K[i])][Position(P,K[j])][2][1])); 7446Add(KK2, p+Position(P, P[j]+P[i]) ); 7447fi; 7448else 7449 if (p+Position(P,K[j]+K[i]) = p+Position(P,P[j]+P[i])) then 7450if (t[Position(P,P[j]+P[i] )] = 1) then 7451Add(KK2, -1*(+1*To[Position(P, P[i])][Position(P,P[j])][2][1]+1*To[Position(P, K[i])][Position(P,K[j])][2][1])); 7452Add(KK2, p+Position(P, P[j]+P[i]) ); 7453fi; 7454 else #(p+Position(P,K[j]+K[i]) < p+Position(P,P[j]+P[i])) 7455if (t[Position(P,P[j]+P[i] )] = 1) then 7456Add(KK2, -1*(+1*To[Position(P, P[i])][Position(P,P[j])][2][1]+1*To[Position(P, K[i])][Position(P,K[j])][2][1])); 7457Add(KK2, p+Position(P, K[i]+K[j]) ); 7458else 7459Add(KK2, +1*(+1*To[Position(P, P[i])][Position(P,P[j])][2][1]-1*To[Position(P, K[i])][Position(P,K[j])][2][1])); 7460Add(KK2, p+Position(P, K[i]+K[j]) ); 7461fi; 7462 fi; 7463fi; 7464fi; fi; 7465 7466############### 7467 7468if (P[i]-P[j] in P ) then 7469if not (IsEmpty(To[Position(P, P[i])][p+Position(P,P[j])][2])=true) then 7470if (p+Position(P,K[i]-K[j]) > p+Position(P,P[i]-P[j])) then 7471 7472if (t[Position(P,P[i]-P[j] )] = 1) then 7473Add(KK2, -1*(+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])); 7474Add(KK2, p+Position(P, P[i]-P[j]) ); 7475else 7476Add(KK2, -1*(+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])); 7477Add(KK2, p+Position(P, P[i]-P[j]) ); 7478fi; 7479else 7480 if (p+Position(P,K[i]-K[j]) = p+Position(P,P[i]-P[j])) then 7481if (t[Position(P,P[i]-P[j] )] = 1) then 7482Add(KK2, -1*(+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])); 7483Add(KK2, p+Position(P, P[i]-P[j]) ); 7484fi; 7485 else #(p+Position(P,K[j]+K[i]) < p+Position(P,P[j]+P[i])) 7486if (t[Position(P,P[i]-P[j] )] = 1) then 7487Add(KK2, -1*(+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])); 7488Add(KK2, p+Position(P, K[i]-K[j]) ); 7489else 7490Add(KK2, +1*(+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])); 7491Add(KK2, p+Position(P, K[i]-K[j]) ); 7492fi; 7493 fi; 7494fi; 7495fi; fi; 7496 7497fi; fi; 7498 7499SetEntrySCTable( TT, Position(P,K[i]), p+j, KK2); 7500 7501fi; fi; fi; 7502od; od; 7503 7504######################################################################### 7505##################################################################################### 7506 7507############################################################################################################################################# 7508################################################################################################################### 7509 7510#Prodotti [X,Y] con indici differenti X<Y ovvero alpha < beta !!!!!!! 7511 7512 7513for i in [1..p-1] do #variazione alpha per gli X 7514 for j in [i+1..p] do #variazione beta >alpha per gli Y 7515 if ( Position(P, K[i]) > Position(P,P[i]) ) then #alpha< phi_alpha (ragiono con gli X) 7516 if ( p+Position(P, K[j]) > p+Position(P,P[j]) ) then # beta< phi_beta (ragiono con gli Y) 7517 7518KK1:=[]; # i p+j 7519KK2:=[]; # i p+jbar 7520KK3:=[]; # ibar p+j 7521KK4:=[]; # ibar p+jbar 7522 7523if (t[i]=1) then 7524if (t[j]=1) then 7525 7526if (P[i]+P[j] in P ) then #qui so che aplha+beta < phi_aplha+phi_beta quindi sono nel caso sicuro 7527if not (IsEmpty(To[Position(P, P[i])][Position(P,P[j])][2])=true) then 7528if (p+Position(P,K[j]+K[i]) > p+Position(P,P[j]+P[i])) then 7529 7530if (t[Position(P,P[j]+P[i] )] = 1) then 7531Add(KK1, (+1*To[Position(P, P[i])][Position(P,P[j])][2][1]+1*To[Position(P, K[i])][Position(P,K[j])][2][1])/2); 7532Add(KK1, p+Position(P, P[i]+P[j]) ); 7533Add(KK2, (+1*To[Position(P, P[i])][Position(P,P[j])][2][1]+1*To[Position(P, K[i])][Position(P,K[j])][2][1])/2); 7534Add(KK2, p+Position(P, K[i]+K[j]) ); 7535Add(KK3, (+1*To[Position(P, P[i])][Position(P,P[j])][2][1]+1*To[Position(P, K[i])][Position(P,K[j])][2][1])/2); 7536Add(KK3, p+Position(P, K[i]+K[j]) ); 7537Add(KK4, -1*(+1*To[Position(P, P[i])][Position(P,P[j])][2][1]+1*To[Position(P, K[i])][Position(P,K[j])][2][1])/2); 7538Add(KK4, p+Position(P, P[i]+P[j]) ); 7539else 7540Add(KK1, (+1*To[Position(P, P[i])][Position(P,P[j])][2][1]-1*To[Position(P, K[i])][Position(P,K[j])][2][1])/2); 7541Add(KK1, p+Position(P, P[i]+P[j]) ); 7542Add(KK2, (+1*To[Position(P, P[i])][Position(P,P[j])][2][1]-1*To[Position(P, K[i])][Position(P,K[j])][2][1])/2); 7543Add(KK2, p+Position(P, K[i]+K[j]) ); 7544Add(KK3, (+1*To[Position(P, P[i])][Position(P,P[j])][2][1]-1*To[Position(P, K[i])][Position(P,K[j])][2][1])/2); 7545Add(KK3, p+Position(P, K[i]+K[j]) ); 7546Add(KK4, -1*(+1*To[Position(P, P[i])][Position(P,P[j])][2][1]-1*To[Position(P, K[i])][Position(P,K[j])][2][1])/2); 7547Add(KK4, p+Position(P, P[i]+P[j]) ); 7548fi; 7549else 7550 if (p+Position(P,K[j]+K[i]) = p+Position(P,P[j]+P[i])) then 7551 7552if (t[Position(P,P[j]+P[i] )] = 1) then 7553Add(KK1, (+1*To[Position(P, P[i])][Position(P,P[j])][2][1]+1*To[Position(P, K[i])][Position(P,K[j])][2][1])/2); 7554Add(KK1, p+Position(P, P[i]+P[j]) ); 7555Add(KK4, -1*(+1*To[Position(P, P[i])][Position(P,P[j])][2][1]+1*To[Position(P, K[i])][Position(P,K[j])][2][1])/2); 7556Add(KK4, p+Position(P, P[i]+P[j]) ); 7557else 7558Add(KK2, (+1*To[Position(P, P[i])][Position(P,P[j])][2][1]-1*To[Position(P, K[i])][Position(P,K[j])][2][1])/2); 7559Add(KK2, p+Position(P, K[i]+K[j]) ); 7560Add(KK3, (+1*To[Position(P, P[i])][Position(P,P[j])][2][1]-1*To[Position(P, K[i])][Position(P,K[j])][2][1])/2); 7561Add(KK3, p+Position(P, K[i]+K[j]) ); 7562fi; 7563 else #(p+Position(P,K[j]+K[i]) < p+Position(P,P[j]+P[i])) 7564 7565if (t[Position(P,P[j]+P[i] )] = 1) then 7566Add(KK1, (+1*To[Position(P, P[i])][Position(P,P[j])][2][1]+1*To[Position(P, K[i])][Position(P,K[j])][2][1])/2); 7567Add(KK1, p+Position(P, K[j]+K[i]) ); 7568Add(KK2, -1*(+1*To[Position(P, P[i])][Position(P,P[j])][2][1]+1*To[Position(P, K[i])][Position(P,K[j])][2][1])/2); 7569Add(KK2, p+Position(P, P[i]+P[j]) ); 7570Add(KK3, -1*(+1*To[Position(P, P[i])][Position(P,P[j])][2][1]+1*To[Position(P, K[i])][Position(P,K[j])][2][1])/2); 7571Add(KK3, p+Position(P, P[i]+P[j]) ); 7572Add(KK4, -1*(+1*To[Position(P, P[i])][Position(P,P[j])][2][1]+1*To[Position(P, K[i])][Position(P,K[j])][2][1])/2); 7573Add(KK4, p+Position(P,K[j]+K[i]) ); 7574else 7575Add(KK1, -1*(+1*To[Position(P, P[i])][Position(P,P[j])][2][1]-1*To[Position(P, K[i])][Position(P,K[j])][2][1])/2); 7576Add(KK1, p+Position(P, K[j]+K[i]) ); 7577Add(KK2, (+1*To[Position(P, P[i])][Position(P,P[j])][2][1]-1*To[Position(P, K[i])][Position(P,K[j])][2][1])/2); 7578Add(KK2, p+Position(P, P[i]+P[j]) ); 7579Add(KK3, (+1*To[Position(P, P[i])][Position(P,P[j])][2][1]-1*To[Position(P, K[i])][Position(P,K[j])][2][1])/2); 7580Add(KK3, p+Position(P, P[i]+P[j]) ); 7581Add(KK4, +1*(+1*To[Position(P, P[i])][Position(P,P[j])][2][1]-1*To[Position(P, K[i])][Position(P,K[j])][2][1])/2); 7582Add(KK4, p+Position(P, K[j]+K[i]) ); 7583fi; 7584 fi; 7585fi; 7586fi; fi; 7587 7588############### 7589 7590if (P[j]-P[i] in P ) then 7591if not (IsEmpty(To[Position(P, P[i])][p+Position(P,P[j])][2])=true) then 7592if (p+Position(P,K[j]-K[i]) > p+Position(P,P[j]-P[i])) then 7593 7594if (t[Position(P,P[j]-P[i] )] = 1) then 7595Add(KK1, (+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])/2); 7596Add(KK1, p+Position(P, P[j]-P[i]) ); 7597Add(KK2, (+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])/2); 7598Add(KK2, p+Position(P, K[j]-K[i]) ); 7599Add(KK3, (+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])/2); 7600Add(KK3, p+Position(P, K[j]-K[i]) ); 7601Add(KK4, -1*(+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])/2); 7602Add(KK4, p+Position(P, P[j]-P[i]) ); 7603else 7604Add(KK1, (+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])/2); 7605Add(KK1, p+Position(P, P[j]-P[i]) ); 7606Add(KK2, (+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])/2); 7607Add(KK2, p+Position(P, K[j]-K[i]) ); 7608Add(KK3, (+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])/2); 7609Add(KK3, p+Position(P, K[j]-K[i]) ); 7610Add(KK4, -1*(+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])/2); 7611Add(KK4, p+Position(P, P[j]-P[i]) ); 7612fi; 7613 7614else 7615 if (p+Position(P,K[j]-K[i]) = p+Position(P,P[j]-P[i])) then 7616 7617if (t[Position(P,P[j]-P[i] )] = 1) then 7618Add(KK1, (+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])/2); 7619Add(KK1, p+Position(P, P[j]-P[i]) ); 7620Add(KK4, -1*(+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])/2); 7621Add(KK4, p+Position(P, P[j]-P[i]) ); 7622else 7623Add(KK2, (+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])/2); 7624Add(KK2, p+Position(P, K[j]-K[i]) ); 7625Add(KK3, (+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])/2); 7626Add(KK3, p+Position(P, K[j]-K[i]) ); 7627fi; 7628 else #(p+Position(P,K[j]+K[i]) < p+Position(P,P[j]+P[i])) 7629 7630if (t[Position(P,P[j]-P[i] )] = 1) then 7631Add(KK1, (+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])/2); 7632Add(KK1, p+Position(P, K[j]-K[i]) ); 7633Add(KK2, -1*(+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])/2); 7634Add(KK2, p+Position(P, P[j]-P[i]) ); 7635Add(KK3, -1*(+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])/2); 7636Add(KK3, p+Position(P, P[j]-P[i]) ); 7637Add(KK4, -1*(+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])/2); 7638Add(KK4, p+Position(P, K[j]-K[i]) ); 7639else 7640Add(KK1, -1*(+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])/2); 7641Add(KK1, p+Position(P, K[j]-K[i]) ); 7642Add(KK2, (+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])/2); 7643Add(KK2, p+Position(P, P[j]-P[i]) ); 7644Add(KK3, (+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])/2); 7645Add(KK3, p+Position(P, P[j]-P[i]) ); 7646Add(KK4, +1*(+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])/2); 7647Add(KK4, p+Position(P, K[j]-K[i]) ); 7648fi; 7649 fi; 7650fi; 7651fi; fi; 7652 7653############# 7654 7655if (P[i]+K[j] in P ) then 7656if not (IsEmpty(To[Position(P, P[i])][Position(P,K[j])][2])=true) then 7657if (p+Position(P,K[i]+P[j]) > p+Position(P,P[i]+K[j])) then 7658 7659if (t[Position(P,P[i]+K[j] )] = 1) then 7660Add(KK1, (+1*To[Position(P, P[i])][Position(P,K[j])][2][1]+1*To[Position(P, K[i])][Position(P,P[j])][2][1])/2); 7661Add(KK1, p+Position(P, P[i]+K[j]) ); 7662Add(KK2, (-1*To[Position(P, P[i])][Position(P,K[j])][2][1]-1*To[Position(P, K[i])][Position(P,P[j])][2][1])/2); 7663Add(KK2, p+Position(P, K[i]+P[j]) ); 7664Add(KK3, (+1*To[Position(P, P[i])][Position(P,K[j])][2][1]+1*To[Position(P, K[i])][Position(P,P[j])][2][1])/2); 7665Add(KK3, p+Position(P, K[i]+P[j]) ); 7666Add(KK4, -1*(-1*To[Position(P, P[i])][Position(P,K[j])][2][1]-1*To[Position(P, K[i])][Position(P,P[j])][2][1])/2); 7667Add(KK4, p+Position(P, P[i]+K[j]) ); 7668else 7669Add(KK1, (+1*To[Position(P, P[i])][Position(P,K[j])][2][1]-1*To[Position(P, K[i])][Position(P,P[j])][2][1])/2); 7670Add(KK1, p+Position(P, P[i]+K[j]) ); 7671Add(KK2, (-1*To[Position(P, P[i])][Position(P,K[j])][2][1]+1*To[Position(P, K[i])][Position(P,P[j])][2][1])/2); 7672Add(KK2, p+Position(P, K[i]+P[j]) ); 7673Add(KK3, (+1*To[Position(P, P[i])][Position(P,K[j])][2][1]-1*To[Position(P, K[i])][Position(P,P[j])][2][1])/2); 7674Add(KK3, p+Position(P, K[i]+P[j]) ); 7675Add(KK4, -1*(-1*To[Position(P, P[i])][Position(P,K[j])][2][1]+1*To[Position(P, K[i])][Position(P,P[j])][2][1])/2); 7676Add(KK4, p+Position(P, P[i]+K[j]) ); 7677fi; 7678 7679else 7680 if (p+Position(P,K[i]+P[j]) = p+Position(P,P[i]+K[j])) then 7681 7682if (t[Position(P,K[j]+P[i] )] = 1) then 7683Add(KK1, (+1*To[Position(P, P[i])][Position(P,K[j])][2][1]+1*To[Position(P, K[i])][Position(P,P[j])][2][1])/2); 7684Add(KK1, p+Position(P, P[i]+K[j]) ); 7685Add(KK4, -1*(-1*To[Position(P, P[i])][Position(P,K[j])][2][1]-1*To[Position(P, K[i])][Position(P,P[j])][2][1])/2); 7686Add(KK4, p+Position(P, P[i]+K[j]) ); 7687else 7688Add(KK2, (-1*To[Position(P, P[i])][Position(P,K[j])][2][1]+1*To[Position(P, K[i])][Position(P,P[j])][2][1])/2); 7689Add(KK2, p+Position(P, K[i]+P[j]) ); 7690Add(KK3, (+1*To[Position(P, P[i])][Position(P,K[j])][2][1]-1*To[Position(P, K[i])][Position(P,P[j])][2][1])/2); 7691Add(KK3, p+Position(P, K[i]+P[j]) ); 7692fi; 7693 else #(p+Position(P,K[j]+K[i]) < p+Position(P,P[j]+P[i])) 7694 7695if (t[Position(P,P[i]+K[j] )] = 1) then 7696Add(KK1, (+1*To[Position(P, P[i])][Position(P,K[j])][2][1]+1*To[Position(P, K[i])][Position(P,P[j])][2][1])/2); 7697Add(KK1, p+Position(P, K[i]+P[j]) ); 7698Add(KK2, -1*(-1*To[Position(P, P[i])][Position(P,K[j])][2][1]-1*To[Position(P, K[i])][Position(P,P[j])][2][1])/2); 7699Add(KK2, p+Position(P, P[i]+K[j]) ); 7700Add(KK3, -1*(+1*To[Position(P, P[i])][Position(P,K[j])][2][1]+1*To[Position(P, K[i])][Position(P,P[j])][2][1])/2); 7701Add(KK3, p+Position(P, P[i]+K[j]) ); 7702Add(KK4, -1*(-1*To[Position(P, P[i])][Position(P,K[j])][2][1]-1*To[Position(P, K[i])][Position(P,P[j])][2][1])/2); 7703Add(KK4, p+Position(P, K[i]+P[j]) ); 7704else 7705Add(KK1, -1*(+1*To[Position(P, P[i])][Position(P,K[j])][2][1]-1*To[Position(P, K[i])][Position(P,P[j])][2][1])/2); 7706Add(KK1, p+Position(P, K[i]+P[j]) ); 7707Add(KK2, (-1*To[Position(P, P[i])][Position(P,K[j])][2][1]+1*To[Position(P, K[i])][Position(P,P[j])][2][1])/2); 7708Add(KK2, p+Position(P, P[i]+K[j]) ); 7709Add(KK3, (+1*To[Position(P, P[i])][Position(P,K[j])][2][1]-1*To[Position(P, K[i])][Position(P,P[j])][2][1])/2); 7710Add(KK3, p+Position(P, P[i]+K[j]) ); 7711Add(KK4, +1*(-1*To[Position(P, P[i])][Position(P,K[j])][2][1]+1*To[Position(P, K[i])][Position(P,P[j])][2][1])/2); 7712Add(KK4, p+Position(P, K[i]+P[j]) ); 7713fi; 7714 fi; 7715fi; 7716fi; fi; 7717 7718########## 7719 7720if (K[j]-P[i] in P ) then 7721if not (IsEmpty(To[Position(P, P[i])][p+Position(P,K[j])][2])=true) then 7722if (p+Position(P,P[j]-K[i]) > p+Position(P,K[j]-P[i])) then 7723 7724if (t[Position(P,K[j]-P[i] )] = 1) then 7725Add(KK1, (+1*To[Position(P, P[i])][p+Position(P,K[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,P[j])][2][1])/2); 7726Add(KK1, p+Position(P, K[j]-P[i]) ); 7727Add(KK2, (-1*To[Position(P, P[i])][p+Position(P,K[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,P[j])][2][1])/2); 7728Add(KK2, p+Position(P, P[j]-K[i]) ); 7729Add(KK3, (+1*To[Position(P, P[i])][p+Position(P,K[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,P[j])][2][1])/2); 7730Add(KK3, p+Position(P, P[j]-K[i]) ); 7731Add(KK4, -1*(-1*To[Position(P, P[i])][p+Position(P,K[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,P[j])][2][1])/2); 7732Add(KK4, p+Position(P, K[j]-P[i]) ); 7733else 7734Add(KK1, (+1*To[Position(P, P[i])][p+Position(P,K[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,P[j])][2][1])/2); 7735Add(KK1, p+Position(P, K[j]-P[i]) ); 7736Add(KK2, (-1*To[Position(P, P[i])][p+Position(P,K[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,P[j])][2][1])/2); 7737Add(KK2, p+Position(P, P[j]-K[i]) ); 7738Add(KK3, (+1*To[Position(P, P[i])][p+Position(P,K[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,P[j])][2][1])/2); 7739Add(KK3, p+Position(P, P[j]-K[i]) ); 7740Add(KK4, -1*(-1*To[Position(P, P[i])][p+Position(P,K[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,P[j])][2][1])/2); 7741Add(KK4, p+Position(P, K[j]-P[i]) ); 7742fi; 7743else 7744 if (p+Position(P,P[j]-K[i]) = p+Position(P,K[j]-P[i])) then 7745 7746if (t[Position(P,P[j]-K[i] )] = 1) then 7747Add(KK1, (+1*To[Position(P, P[i])][p+Position(P,K[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,P[j])][2][1])/2); 7748Add(KK1, p+Position(P, K[j]-P[i]) ); 7749Add(KK4, -1*(-1*To[Position(P, P[i])][p+Position(P,K[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,P[j])][2][1])/2); 7750Add(KK4, p+Position(P, K[j]-P[i]) ); 7751else 7752Add(KK2, (-1*To[Position(P, P[i])][p+Position(P,K[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,P[j])][2][1])/2); 7753Add(KK2, p+Position(P, P[j]-K[i]) ); 7754Add(KK3, (+1*To[Position(P, P[i])][p+Position(P,K[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,P[j])][2][1])/2); 7755Add(KK3, p+Position(P, P[j]-K[i]) ); 7756fi; 7757 else #(p+Position(P,K[j]+K[i]) < p+Position(P,P[j]+P[i])) 7758 7759if (t[Position(P,K[j]-P[i] )] = 1) then 7760Add(KK1, (+1*To[Position(P, P[i])][p+Position(P,K[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,P[j])][2][1])/2); 7761Add(KK1, p+Position(P, P[j]-K[i]) ); 7762Add(KK2, -1*(-1*To[Position(P, P[i])][p+Position(P,K[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,P[j])][2][1])/2); 7763Add(KK2, p+Position(P, K[j]-P[i]) ); 7764Add(KK3, -1*(+1*To[Position(P, P[i])][p+Position(P,K[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,P[j])][2][1])/2); 7765Add(KK3, p+Position(P, K[j]-P[i]) ); 7766Add(KK4, -1*(-1*To[Position(P, P[i])][p+Position(P,K[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,P[j])][2][1])/2); 7767Add(KK4, p+Position(P, P[j]-K[i]) ); 7768else 7769Add(KK1, -1*(+1*To[Position(P, P[i])][p+Position(P,K[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,P[j])][2][1])/2); 7770Add(KK1, p+Position(P, P[j]-K[i]) ); 7771Add(KK2, (-1*To[Position(P, P[i])][p+Position(P,K[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,P[j])][2][1])/2); 7772Add(KK2, p+Position(P, K[j]-P[i]) ); 7773Add(KK3, (+1*To[Position(P, P[i])][p+Position(P,K[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,P[j])][2][1])/2); 7774Add(KK3, p+Position(P, K[j]-P[i]) ); 7775Add(KK4, +1*(-1*To[Position(P, P[i])][p+Position(P,K[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,P[j])][2][1])/2); 7776Add(KK4, p+Position(P, P[j]-K[i]) ); 7777fi; 7778 fi; 7779fi; 7780fi; fi; 7781 7782################## 7783else # ovvero t[j]=-1 7784######################### 7785 7786if (P[i]+P[j] in P ) then #qui so che aplha+beta < phi_aplha+phi_beta quindi sono nel caso sicuro 7787if not (IsEmpty(To[Position(P, P[i])][Position(P,P[j])][2])=true) then 7788if (p+Position(P,K[j]+K[i]) > p+Position(P,P[j]+P[i])) then 7789 7790if (t[Position(P,P[j]+P[i] )] = 1) then 7791Add(KK1, (+1*To[Position(P, P[i])][Position(P,P[j])][2][1]-1*To[Position(P, K[i])][Position(P,K[j])][2][1])/2); 7792Add(KK1, p+Position(P, P[i]+P[j]) ); 7793Add(KK2, (+1*To[Position(P, P[i])][Position(P,P[j])][2][1]-1*To[Position(P, K[i])][Position(P,K[j])][2][1])/2); 7794Add(KK2, p+Position(P, K[i]+K[j]) ); 7795Add(KK3, (+1*To[Position(P, P[i])][Position(P,P[j])][2][1]-1*To[Position(P, K[i])][Position(P,K[j])][2][1])/2); 7796Add(KK3, p+Position(P, K[i]+K[j]) ); 7797Add(KK4, -1*(+1*To[Position(P, P[i])][Position(P,P[j])][2][1]-1*To[Position(P, K[i])][Position(P,K[j])][2][1])/2); 7798Add(KK4, p+Position(P, P[i]+P[j]) ); 7799else 7800Add(KK1, (+1*To[Position(P, P[i])][Position(P,P[j])][2][1]+1*To[Position(P, K[i])][Position(P,K[j])][2][1])/2); 7801Add(KK1, p+Position(P, P[i]+P[j]) ); 7802Add(KK2, (+1*To[Position(P, P[i])][Position(P,P[j])][2][1]+1*To[Position(P, K[i])][Position(P,K[j])][2][1])/2); 7803Add(KK2, p+Position(P, K[i]+K[j]) ); 7804Add(KK3, (+1*To[Position(P, P[i])][Position(P,P[j])][2][1]+1*To[Position(P, K[i])][Position(P,K[j])][2][1])/2); 7805Add(KK3, p+Position(P, K[i]+K[j]) ); 7806Add(KK4, -1*(+1*To[Position(P, P[i])][Position(P,P[j])][2][1]+1*To[Position(P, K[i])][Position(P,K[j])][2][1])/2); 7807Add(KK4, p+Position(P, P[i]+P[j]) ); 7808fi; 7809else 7810 if (p+Position(P,K[j]+K[i]) = p+Position(P,P[j]+P[i])) then 7811 7812if (t[Position(P,P[j]+P[i] )] = 1) then 7813Add(KK1, (+1*To[Position(P, P[i])][Position(P,P[j])][2][1]-1*To[Position(P, K[i])][Position(P,K[j])][2][1])/2); 7814Add(KK1, p+Position(P, P[i]+P[j]) ); 7815Add(KK4, -1*(+1*To[Position(P, P[i])][Position(P,P[j])][2][1]-1*To[Position(P, K[i])][Position(P,K[j])][2][1])/2); 7816Add(KK4, p+Position(P, P[i]+P[j]) ); 7817else 7818Add(KK2, (+1*To[Position(P, P[i])][Position(P,P[j])][2][1]+1*To[Position(P, K[i])][Position(P,K[j])][2][1])/2); 7819Add(KK2, p+Position(P, K[i]+K[j]) ); 7820Add(KK3, (+1*To[Position(P, P[i])][Position(P,P[j])][2][1]+1*To[Position(P, K[i])][Position(P,K[j])][2][1])/2); 7821Add(KK3, p+Position(P, K[i]+K[j]) ); 7822fi; 7823 else #(p+Position(P,K[j]+K[i]) < p+Position(P,P[j]+P[i])) 7824 7825if (t[Position(P,P[j]+P[i] )] = 1) then 7826Add(KK1, (+1*To[Position(P, P[i])][Position(P,P[j])][2][1]-1*To[Position(P, K[i])][Position(P,K[j])][2][1])/2); 7827Add(KK1, p+Position(P, K[j]+K[i]) ); 7828Add(KK2, -1*(+1*To[Position(P, P[i])][Position(P,P[j])][2][1]-1*To[Position(P, K[i])][Position(P,K[j])][2][1])/2); 7829Add(KK2, p+Position(P, P[i]+P[j]) ); 7830Add(KK3, -1*(+1*To[Position(P, P[i])][Position(P,P[j])][2][1]-1*To[Position(P, K[i])][Position(P,K[j])][2][1])/2); 7831Add(KK3, p+Position(P, P[i]+P[j]) ); 7832Add(KK4, -1*(+1*To[Position(P, P[i])][Position(P,P[j])][2][1]-1*To[Position(P, K[i])][Position(P,K[j])][2][1])/2); 7833Add(KK4, p+Position(P,K[j]+K[i]) ); 7834else 7835Add(KK1, -1*(+1*To[Position(P, P[i])][Position(P,P[j])][2][1]+1*To[Position(P, K[i])][Position(P,K[j])][2][1])/2); 7836Add(KK1, p+Position(P, K[j]+K[i]) ); 7837Add(KK2, (+1*To[Position(P, P[i])][Position(P,P[j])][2][1]+1*To[Position(P, K[i])][Position(P,K[j])][2][1])/2); 7838Add(KK2, p+Position(P, P[i]+P[j]) ); 7839Add(KK3, (+1*To[Position(P, P[i])][Position(P,P[j])][2][1]+1*To[Position(P, K[i])][Position(P,K[j])][2][1])/2); 7840Add(KK3, p+Position(P, P[i]+P[j]) ); 7841Add(KK4, +1*(+1*To[Position(P, P[i])][Position(P,P[j])][2][1]+1*To[Position(P, K[i])][Position(P,K[j])][2][1])/2); 7842Add(KK4, p+Position(P, K[j]+K[i]) ); 7843fi; 7844 fi; 7845fi; 7846fi; fi; 7847 7848############### 7849 7850if (P[j]-P[i] in P ) then 7851if not (IsEmpty(To[Position(P, P[i])][p+Position(P,P[j])][2])=true) then 7852if (p+Position(P,K[j]-K[i]) > p+Position(P,P[j]-P[i])) then 7853 7854if (t[Position(P,P[j]-P[i] )] = 1) then 7855Add(KK1, (+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])/2); 7856Add(KK1, p+Position(P, P[j]-P[i]) ); 7857Add(KK2, (+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])/2); 7858Add(KK2, p+Position(P, K[j]-K[i]) ); 7859Add(KK3, (+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])/2); 7860Add(KK3, p+Position(P, K[j]-K[i]) ); 7861Add(KK4, -1*(+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])/2); 7862Add(KK4, p+Position(P, P[j]-P[i]) ); 7863else 7864Add(KK1, (+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])/2); 7865Add(KK1, p+Position(P, P[j]-P[i]) ); 7866Add(KK2, (+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])/2); 7867Add(KK2, p+Position(P, K[j]-K[i]) ); 7868Add(KK3, (+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])/2); 7869Add(KK3, p+Position(P, K[j]-K[i]) ); 7870Add(KK4, -1*(+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])/2); 7871Add(KK4, p+Position(P, P[j]-P[i]) ); 7872fi; 7873else 7874 if (p+Position(P,K[j]-K[i]) = p+Position(P,P[j]-P[i])) then 7875 7876if (t[Position(P,P[j]-P[i] )] = 1) then 7877Add(KK1, (+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])/2); 7878Add(KK1, p+Position(P, P[j]-P[i]) ); 7879Add(KK4, -1*(+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])/2); 7880Add(KK4, p+Position(P, P[j]-P[i]) ); 7881else 7882Add(KK2, (+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])/2); 7883Add(KK2, p+Position(P, K[j]-K[i]) ); 7884Add(KK3, (+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])/2); 7885Add(KK3, p+Position(P, K[j]-K[i]) ); 7886fi; 7887 else #(p+Position(P,K[j]+K[i]) < p+Position(P,P[j]+P[i])) 7888 7889if (t[Position(P,P[j]-P[i] )] = 1) then 7890Add(KK1, (+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])/2); 7891Add(KK1, p+Position(P, K[j]-K[i]) ); 7892Add(KK2, -1*(+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])/2); 7893Add(KK2, p+Position(P, P[j]-P[i]) ); 7894Add(KK3, -1*(+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])/2); 7895Add(KK3, p+Position(P, P[j]-P[i]) ); 7896Add(KK4, -1*(+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])/2); 7897Add(KK4, p+Position(P, K[j]-K[i]) ); 7898else 7899Add(KK1, -1*(+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])/2); 7900Add(KK1, p+Position(P, K[j]-K[i]) ); 7901Add(KK2, (+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])/2); 7902Add(KK2, p+Position(P, P[j]-P[i]) ); 7903Add(KK3, (+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])/2); 7904Add(KK3, p+Position(P, P[j]-P[i]) ); 7905Add(KK4, +1*(+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])/2); 7906Add(KK4, p+Position(P, K[j]-K[i]) ); 7907fi; 7908 fi; 7909fi; 7910fi; fi; 7911 7912############# 7913 7914if (P[i]+K[j] in P ) then 7915if not (IsEmpty(To[Position(P, P[i])][Position(P,K[j])][2])=true) then 7916if (p+Position(P,K[i]+P[j]) > p+Position(P,P[i]+K[j])) then 7917 7918if (t[Position(P,P[i]+K[j] )] = 1) then 7919Add(KK1, (-1*To[Position(P, P[i])][Position(P,K[j])][2][1]+1*To[Position(P, K[i])][Position(P,P[j])][2][1])/2); 7920Add(KK1, p+Position(P, P[i]+K[j]) ); 7921Add(KK2, (+1*To[Position(P, P[i])][Position(P,K[j])][2][1]-1*To[Position(P, K[i])][Position(P,P[j])][2][1])/2); 7922Add(KK2, p+Position(P, K[i]+P[j]) ); 7923Add(KK3, (-1*To[Position(P, P[i])][Position(P,K[j])][2][1]+1*To[Position(P, K[i])][Position(P,P[j])][2][1])/2); 7924Add(KK3, p+Position(P, K[i]+P[j]) ); 7925Add(KK4, -1*(+1*To[Position(P, P[i])][Position(P,K[j])][2][1]-1*To[Position(P, K[i])][Position(P,P[j])][2][1])/2); 7926Add(KK4, p+Position(P, P[i]+K[j]) ); 7927else 7928Add(KK1, (-1*To[Position(P, P[i])][Position(P,K[j])][2][1]-1*To[Position(P, K[i])][Position(P,P[j])][2][1])/2); 7929Add(KK1, p+Position(P, P[i]+K[j]) ); 7930Add(KK2, (+1*To[Position(P, P[i])][Position(P,K[j])][2][1]+1*To[Position(P, K[i])][Position(P,P[j])][2][1])/2); 7931Add(KK2, p+Position(P, K[i]+P[j]) ); 7932Add(KK3, (-1*To[Position(P, P[i])][Position(P,K[j])][2][1]-1*To[Position(P, K[i])][Position(P,P[j])][2][1])/2); 7933Add(KK3, p+Position(P, K[i]+P[j]) ); 7934Add(KK4, -1*(+1*To[Position(P, P[i])][Position(P,K[j])][2][1]+1*To[Position(P, K[i])][Position(P,P[j])][2][1])/2); 7935Add(KK4, p+Position(P, P[i]+K[j]) ); 7936fi; 7937else 7938 if (p+Position(P,K[i]+P[j]) = p+Position(P,P[i]+K[j])) then 7939 7940if (t[Position(P,K[j]+P[i] )] = 1) then 7941Add(KK1, (-1*To[Position(P, P[i])][Position(P,K[j])][2][1]+1*To[Position(P, K[i])][Position(P,P[j])][2][1])/2); 7942Add(KK1, p+Position(P, P[i]+K[j]) ); 7943Add(KK4, -1*(+1*To[Position(P, P[i])][Position(P,K[j])][2][1]-1*To[Position(P, K[i])][Position(P,P[j])][2][1])/2); 7944Add(KK4, p+Position(P, P[i]+K[j]) ); 7945else 7946Add(KK2, (+1*To[Position(P, P[i])][Position(P,K[j])][2][1]+1*To[Position(P, K[i])][Position(P,P[j])][2][1])/2); 7947Add(KK2, p+Position(P, K[i]+P[j]) ); 7948Add(KK3, (-1*To[Position(P, P[i])][Position(P,K[j])][2][1]-1*To[Position(P, K[i])][Position(P,P[j])][2][1])/2); 7949Add(KK3, p+Position(P, K[i]+P[j]) ); 7950fi; 7951 else #(p+Position(P,K[j]+K[i]) < p+Position(P,P[j]+P[i])) 7952 7953if (t[Position(P,P[i]+K[j] )] = 1) then 7954Add(KK1, (-1*To[Position(P, P[i])][Position(P,K[j])][2][1]+1*To[Position(P, K[i])][Position(P,P[j])][2][1])/2); 7955Add(KK1, p+Position(P, K[i]+P[j]) ); 7956Add(KK2, -1*(+1*To[Position(P, P[i])][Position(P,K[j])][2][1]-1*To[Position(P, K[i])][Position(P,P[j])][2][1])/2); 7957Add(KK2, p+Position(P, P[i]+K[j]) ); 7958Add(KK3, -1*(-1*To[Position(P, P[i])][Position(P,K[j])][2][1]+1*To[Position(P, K[i])][Position(P,P[j])][2][1])/2); 7959Add(KK3, p+Position(P, P[i]+K[j]) ); 7960Add(KK4, -1*(+1*To[Position(P, P[i])][Position(P,K[j])][2][1]-1*To[Position(P, K[i])][Position(P,P[j])][2][1])/2); 7961Add(KK4, p+Position(P, K[i]+P[j]) ); 7962else 7963Add(KK1, -1*(-1*To[Position(P, P[i])][Position(P,K[j])][2][1]-1*To[Position(P, K[i])][Position(P,P[j])][2][1])/2); 7964Add(KK1, p+Position(P, K[i]+P[j]) ); 7965Add(KK2, (+1*To[Position(P, P[i])][Position(P,K[j])][2][1]+1*To[Position(P, K[i])][Position(P,P[j])][2][1])/2); 7966Add(KK2, p+Position(P, P[i]+K[j]) ); 7967Add(KK3, (-1*To[Position(P, P[i])][Position(P,K[j])][2][1]-1*To[Position(P, K[i])][Position(P,P[j])][2][1])/2); 7968Add(KK3, p+Position(P, P[i]+K[j]) ); 7969Add(KK4, +1*(+1*To[Position(P, P[i])][Position(P,K[j])][2][1]+1*To[Position(P, K[i])][Position(P,P[j])][2][1])/2); 7970Add(KK4, p+Position(P, K[i]+P[j]) ); 7971fi; 7972 fi; 7973fi; 7974fi; fi; 7975 7976############# 7977 7978if (K[j]-P[i] in P ) then 7979if not (IsEmpty(To[Position(P, P[i])][p+Position(P,K[j])][2])=true) then 7980if (p+Position(P,P[j]-K[i]) > p+Position(P,K[j]-P[i])) then 7981 7982if (t[Position(P,K[j]-P[i] )] = 1) then 7983Add(KK1, (-1*To[Position(P, P[i])][p+Position(P,K[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,P[j])][2][1])/2); 7984Add(KK1, p+Position(P, K[j]-P[i]) ); 7985Add(KK2, (+1*To[Position(P, P[i])][p+Position(P,K[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,P[j])][2][1])/2); 7986Add(KK2, p+Position(P, P[j]-K[i]) ); 7987Add(KK3, (-1*To[Position(P, P[i])][p+Position(P,K[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,P[j])][2][1])/2); 7988Add(KK3, p+Position(P, P[j]-K[i]) ); 7989Add(KK4, -1*(+1*To[Position(P, P[i])][p+Position(P,K[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,P[j])][2][1])/2); 7990Add(KK4, p+Position(P, K[j]-P[i]) ); 7991else 7992Add(KK1, (-1*To[Position(P, P[i])][p+Position(P,K[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,P[j])][2][1])/2); 7993Add(KK1, p+Position(P, K[j]-P[i]) ); 7994Add(KK2, (+1*To[Position(P, P[i])][p+Position(P,K[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,P[j])][2][1])/2); 7995Add(KK2, p+Position(P, P[j]-K[i]) ); 7996Add(KK3, (-1*To[Position(P, P[i])][p+Position(P,K[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,P[j])][2][1])/2); 7997Add(KK3, p+Position(P, P[j]-K[i]) ); 7998Add(KK4, -1*(+1*To[Position(P, P[i])][p+Position(P,K[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,P[j])][2][1])/2); 7999Add(KK4, p+Position(P, K[j]-P[i]) ); 8000fi; 8001else 8002 if (p+Position(P,P[j]-K[i]) = p+Position(P,K[j]-P[i])) then 8003 8004if (t[Position(P,K[j]-P[i] )] = 1) then 8005Add(KK1, (-1*To[Position(P, P[i])][p+Position(P,K[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,P[j])][2][1])/2); 8006Add(KK1, p+Position(P, K[j]-P[i]) ); 8007Add(KK4, -1*(+1*To[Position(P, P[i])][p+Position(P,K[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,P[j])][2][1])/2); 8008Add(KK4, p+Position(P, K[j]-P[i]) ); 8009else 8010Add(KK2, (+1*To[Position(P, P[i])][p+Position(P,K[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,P[j])][2][1])/2); 8011Add(KK2, p+Position(P, P[j]-K[i]) ); 8012Add(KK3, (-1*To[Position(P, P[i])][p+Position(P,K[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,P[j])][2][1])/2); 8013Add(KK3, p+Position(P, P[j]-K[i]) ); 8014fi; 8015 else #(p+Position(P,K[j]+K[i]) < p+Position(P,P[j]+P[i])) 8016 8017if (t[Position(P,K[j]-P[i] )] = 1) then 8018Add(KK1, (-1*To[Position(P, P[i])][p+Position(P,K[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,P[j])][2][1])/2); 8019Add(KK1, p+Position(P, P[j]-K[i]) ); 8020Add(KK2, -1*(+1*To[Position(P, P[i])][p+Position(P,K[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,P[j])][2][1])/2); 8021Add(KK2, p+Position(P, K[j]-P[i]) ); 8022Add(KK3, -1*(-1*To[Position(P, P[i])][p+Position(P,K[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,P[j])][2][1])/2); 8023Add(KK3, p+Position(P, K[j]-P[i]) ); 8024Add(KK4, -1*(+1*To[Position(P, P[i])][p+Position(P,K[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,P[j])][2][1])/2); 8025Add(KK4, p+Position(P, P[j]-K[i]) ); 8026else 8027Add(KK1, -1*(-1*To[Position(P, P[i])][p+Position(P,K[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,P[j])][2][1])/2); 8028Add(KK1, p+Position(P, P[j]-K[i]) ); 8029Add(KK2, (+1*To[Position(P, P[i])][p+Position(P,K[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,P[j])][2][1])/2); 8030Add(KK2, p+Position(P, K[j]-P[i]) ); 8031Add(KK3, (-1*To[Position(P, P[i])][p+Position(P,K[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,P[j])][2][1])/2); 8032Add(KK3, p+Position(P, K[j]-P[i]) ); 8033Add(KK4, +1*(+1*To[Position(P, P[i])][p+Position(P,K[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,P[j])][2][1])/2); 8034Add(KK4, p+Position(P, P[j]-K[i]) ); 8035fi; 8036 fi; 8037fi; 8038fi; fi; 8039 8040fi; 8041 8042########################à 8043else #t[i]=-1 8044if (t[j]=1) then 8045############### 8046 8047if (P[i]+P[j] in P ) then #qui so che aplha+beta < phi_aplha+phi_beta quindi sono nel caso sicuro 8048if not (IsEmpty(To[Position(P, P[i])][Position(P,P[j])][2])=true) then 8049if (p+Position(P,K[j]+K[i]) > p+Position(P,P[j]+P[i])) then 8050if (t[Position(P,P[j]+P[i] )] = 1) then 8051Add(KK1, (+1*To[Position(P, P[i])][Position(P,P[j])][2][1]-1*To[Position(P, K[i])][Position(P,K[j])][2][1])/2); 8052Add(KK1, p+Position(P, P[i]+P[j]) ); 8053Add(KK2, (+1*To[Position(P, P[i])][Position(P,P[j])][2][1]-1*To[Position(P, K[i])][Position(P,K[j])][2][1])/2); 8054Add(KK2, p+Position(P, K[i]+K[j]) ); 8055Add(KK3, (+1*To[Position(P, P[i])][Position(P,P[j])][2][1]-1*To[Position(P, K[i])][Position(P,K[j])][2][1])/2); 8056Add(KK3, p+Position(P, K[i]+K[j]) ); 8057Add(KK4, -1*(+1*To[Position(P, P[i])][Position(P,P[j])][2][1]-1*To[Position(P, K[i])][Position(P,K[j])][2][1])/2); 8058Add(KK4, p+Position(P, P[i]+P[j]) ); 8059else 8060Add(KK1, (+1*To[Position(P, P[i])][Position(P,P[j])][2][1]+1*To[Position(P, K[i])][Position(P,K[j])][2][1])/2); 8061Add(KK1, p+Position(P, P[i]+P[j]) ); 8062Add(KK2, (+1*To[Position(P, P[i])][Position(P,P[j])][2][1]+1*To[Position(P, K[i])][Position(P,K[j])][2][1])/2); 8063Add(KK2, p+Position(P, K[i]+K[j]) ); 8064Add(KK3, (+1*To[Position(P, P[i])][Position(P,P[j])][2][1]+1*To[Position(P, K[i])][Position(P,K[j])][2][1])/2); 8065Add(KK3, p+Position(P, K[i]+K[j]) ); 8066Add(KK4, (+1*To[Position(P, P[i])][Position(P,P[j])][2][1]+1*To[Position(P, K[i])][Position(P,K[j])][2][1])/2); 8067Add(KK4, p+Position(P, P[i]+P[j]) ); 8068fi; 8069else 8070 if (p+Position(P,K[j]+K[i]) = p+Position(P,P[j]+P[i])) then 8071if (t[Position(P,P[j]+P[i] )] = 1) then 8072Add(KK1, (+1*To[Position(P, P[i])][Position(P,P[j])][2][1]-1*To[Position(P, K[i])][Position(P,K[j])][2][1])/2); 8073Add(KK1, p+Position(P, P[i]+P[j]) ); 8074Add(KK4, -1*(+1*To[Position(P, P[i])][Position(P,P[j])][2][1]-1*To[Position(P, K[i])][Position(P,K[j])][2][1])/2); 8075Add(KK4, p+Position(P, P[i]+P[j]) ); 8076else 8077Add(KK2, (+1*To[Position(P, P[i])][Position(P,P[j])][2][1]+1*To[Position(P, K[i])][Position(P,K[j])][2][1])/2); 8078Add(KK2, p+Position(P, K[i]+K[j]) ); 8079Add(KK3, (+1*To[Position(P, P[i])][Position(P,P[j])][2][1]+1*To[Position(P, K[i])][Position(P,K[j])][2][1])/2); 8080Add(KK3, p+Position(P, K[i]+K[j]) ); 8081fi; 8082 else #(p+Position(P,K[j]+K[i]) < p+Position(P,P[j]+P[i])) 8083if (t[Position(P,P[j]+P[i] )] = 1) then 8084Add(KK1, (+1*To[Position(P, P[i])][Position(P,P[j])][2][1]-1*To[Position(P, K[i])][Position(P,K[j])][2][1])/2); 8085Add(KK1, p+Position(P, K[j]+K[i]) ); 8086Add(KK2, -1*(+1*To[Position(P, P[i])][Position(P,P[j])][2][1]-1*To[Position(P, K[i])][Position(P,K[j])][2][1])/2); 8087Add(KK2, p+Position(P, P[i]+P[j]) ); 8088Add(KK3, -1*(+1*To[Position(P, P[i])][Position(P,P[j])][2][1]-1*To[Position(P, K[i])][Position(P,K[j])][2][1])/2); 8089Add(KK3, p+Position(P, P[i]+P[j]) ); 8090Add(KK4, -1*(+1*To[Position(P, P[i])][Position(P,P[j])][2][1]-1*To[Position(P, K[i])][Position(P,K[j])][2][1])/2); 8091Add(KK4, p+Position(P,K[j]+K[i]) ); 8092else 8093Add(KK1, -1*(+1*To[Position(P, P[i])][Position(P,P[j])][2][1]+1*To[Position(P, K[i])][Position(P,K[j])][2][1])/2); 8094Add(KK1, p+Position(P, K[j]+K[i]) ); 8095Add(KK2, (+1*To[Position(P, P[i])][Position(P,P[j])][2][1]+1*To[Position(P, K[i])][Position(P,K[j])][2][1])/2); 8096Add(KK2, p+Position(P, P[i]+P[j]) ); 8097Add(KK3, (+1*To[Position(P, P[i])][Position(P,P[j])][2][1]+1*To[Position(P, K[i])][Position(P,K[j])][2][1])/2); 8098Add(KK3, p+Position(P, P[i]+P[j]) ); 8099Add(KK4, +1*(+1*To[Position(P, P[i])][Position(P,P[j])][2][1]+1*To[Position(P, K[i])][Position(P,K[j])][2][1])/2); 8100Add(KK4, p+Position(P, K[j]+K[i]) ); 8101fi; 8102 fi; 8103fi; 8104fi; fi; 8105 8106############### 8107 8108if (P[j]-P[i] in P ) then 8109if not (IsEmpty(To[Position(P, P[i])][p+Position(P,P[j])][2])=true) then 8110if (p+Position(P,K[j]-K[i]) > p+Position(P,P[j]-P[i])) then 8111 8112if (t[Position(P,P[j]-P[i] )] = 1) then 8113Add(KK1, (+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])/2); 8114Add(KK1, p+Position(P, P[j]-P[i]) ); 8115Add(KK2, (+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])/2); 8116Add(KK2, p+Position(P, K[j]-K[i]) ); 8117Add(KK3, (+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])/2); 8118Add(KK3, p+Position(P, K[j]-K[i]) ); 8119Add(KK4, -1*(+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])/2); 8120Add(KK4, p+Position(P, P[j]-P[i]) ); 8121else 8122Add(KK1, (+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])/2); 8123Add(KK1, p+Position(P, P[j]-P[i]) ); 8124Add(KK2, (+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])/2); 8125Add(KK2, p+Position(P, K[j]-K[i]) ); 8126Add(KK3, (+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])/2); 8127Add(KK3, p+Position(P, K[j]-K[i]) ); 8128Add(KK4, -1*(+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])/2); 8129Add(KK4, p+Position(P, P[j]-P[i]) ); 8130fi; 8131else 8132 if (p+Position(P,K[j]-K[i]) = p+Position(P,P[j]-P[i])) then 8133if (t[Position(P,P[j]-P[i] )] = 1) then 8134Add(KK1, (+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])/2); 8135Add(KK1, p+Position(P, P[j]-P[i]) ); 8136Add(KK4, -1*(+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])/2); 8137Add(KK4, p+Position(P, P[j]-P[i]) ); 8138else 8139Add(KK2, (+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])/2); 8140Add(KK2, p+Position(P, K[j]-K[i]) ); 8141Add(KK3, (+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])/2); 8142Add(KK3, p+Position(P, K[j]-K[i]) ); 8143fi; 8144 else #(p+Position(P,K[j]+K[i]) < p+Position(P,P[j]+P[i])) 8145if (t[Position(P,P[j]-P[i] )] = 1) then 8146Add(KK1, (+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])/2); 8147Add(KK1, p+Position(P, K[j]-K[i]) ); 8148Add(KK2, -1*(+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])/2); 8149Add(KK2, p+Position(P, P[j]-P[i]) ); 8150Add(KK3, -1*(+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])/2); 8151Add(KK3, p+Position(P, P[j]-P[i]) ); 8152Add(KK4, -1*(+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])/2); 8153Add(KK4, p+Position(P, K[j]-K[i]) ); 8154else 8155Add(KK1, -1*(+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])/2); 8156Add(KK1, p+Position(P, K[j]-K[i]) ); 8157Add(KK2, (+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])/2); 8158Add(KK2, p+Position(P, P[j]-P[i]) ); 8159Add(KK3, (+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])/2); 8160Add(KK3, p+Position(P, P[j]-P[i]) ); 8161Add(KK4, +1*(+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])/2); 8162Add(KK4, p+Position(P, K[j]-K[i]) ); 8163fi; 8164 fi; 8165fi; 8166fi; fi; 8167 8168############# 8169 8170if (P[i]+K[j] in P ) then 8171if not (IsEmpty(To[Position(P, P[i])][Position(P,K[j])][2])=true) then 8172if (p+Position(P,K[i]+P[j]) > p+Position(P,P[i]+K[j])) then 8173if (t[Position(P,P[i]+K[j] )] = 1) then 8174Add(KK1, (+1*To[Position(P, P[i])][Position(P,K[j])][2][1]-1*To[Position(P, K[i])][Position(P,P[j])][2][1])/2); 8175Add(KK1, p+Position(P, P[i]+K[j]) ); 8176Add(KK2, (-1*To[Position(P, P[i])][Position(P,K[j])][2][1]+1*To[Position(P, K[i])][Position(P,P[j])][2][1])/2); 8177Add(KK2, p+Position(P, K[i]+P[j]) ); 8178Add(KK3, (+1*To[Position(P, P[i])][Position(P,K[j])][2][1]-1*To[Position(P, K[i])][Position(P,P[j])][2][1])/2); 8179Add(KK3, p+Position(P, K[i]+P[j]) ); 8180Add(KK4, -1*(-1*To[Position(P, P[i])][Position(P,K[j])][2][1]+1*To[Position(P, K[i])][Position(P,P[j])][2][1])/2); 8181Add(KK4, p+Position(P, P[i]+K[j]) ); 8182else 8183Add(KK1, (+1*To[Position(P, P[i])][Position(P,K[j])][2][1]+1*To[Position(P, K[i])][Position(P,P[j])][2][1])/2); 8184Add(KK1, p+Position(P, P[i]+K[j]) ); 8185Add(KK2, (-1*To[Position(P, P[i])][Position(P,K[j])][2][1]-1*To[Position(P, K[i])][Position(P,P[j])][2][1])/2); 8186Add(KK2, p+Position(P, K[i]+P[j]) ); 8187Add(KK3, (+1*To[Position(P, P[i])][Position(P,K[j])][2][1]+1*To[Position(P, K[i])][Position(P,P[j])][2][1])/2); 8188Add(KK3, p+Position(P, K[i]+P[j]) ); 8189Add(KK4, -1*(-1*To[Position(P, P[i])][Position(P,K[j])][2][1]-1*To[Position(P, K[i])][Position(P,P[j])][2][1])/2); 8190Add(KK4, p+Position(P, P[i]+K[j]) ); 8191fi; 8192else 8193 if (p+Position(P,K[i]+P[j]) = p+Position(P,P[i]+K[j])) then 8194if (t[Position(P,K[j]+P[i] )] = 1) then 8195Add(KK1, (+1*To[Position(P, P[i])][Position(P,K[j])][2][1]-1*To[Position(P, K[i])][Position(P,P[j])][2][1])/2); 8196Add(KK1, p+Position(P, P[i]+K[j]) ); 8197Add(KK4, -1*(-1*To[Position(P, P[i])][Position(P,K[j])][2][1]+1*To[Position(P, K[i])][Position(P,P[j])][2][1])/2); 8198Add(KK4, p+Position(P, P[i]+K[j]) ); 8199else 8200Add(KK2, (-1*To[Position(P, P[i])][Position(P,K[j])][2][1]-1*To[Position(P, K[i])][Position(P,P[j])][2][1])/2); 8201Add(KK2, p+Position(P, K[i]+P[j]) ); 8202Add(KK3, (+1*To[Position(P, P[i])][Position(P,K[j])][2][1]+1*To[Position(P, K[i])][Position(P,P[j])][2][1])/2); 8203Add(KK3, p+Position(P, K[i]+P[j]) ); 8204fi; 8205 else #(p+Position(P,K[j]+K[i]) < p+Position(P,P[j]+P[i])) 8206if (t[Position(P,P[i]+K[j] )] = 1) then 8207Add(KK1, (+1*To[Position(P, P[i])][Position(P,K[j])][2][1]-1*To[Position(P, K[i])][Position(P,P[j])][2][1])/2); 8208Add(KK1, p+Position(P, K[i]+P[j]) ); 8209Add(KK2, -1*(-1*To[Position(P, P[i])][Position(P,K[j])][2][1]+1*To[Position(P, K[i])][Position(P,P[j])][2][1])/2); 8210Add(KK2, p+Position(P, P[i]+K[j]) ); 8211Add(KK3, -1*(+1*To[Position(P, P[i])][Position(P,K[j])][2][1]-1*To[Position(P, K[i])][Position(P,P[j])][2][1])/2); 8212Add(KK3, p+Position(P, P[i]+K[j]) ); 8213Add(KK4, -1*(-1*To[Position(P, P[i])][Position(P,K[j])][2][1]+1*To[Position(P, K[i])][Position(P,P[j])][2][1])/2); 8214Add(KK4, p+Position(P, K[i]+P[j]) ); 8215else 8216Add(KK1, -1*(+1*To[Position(P, P[i])][Position(P,K[j])][2][1]+1*To[Position(P, K[i])][Position(P,P[j])][2][1])/2); 8217Add(KK1, p+Position(P, K[i]+P[j]) ); 8218Add(KK2, (-1*To[Position(P, P[i])][Position(P,K[j])][2][1]-1*To[Position(P, K[i])][Position(P,P[j])][2][1])/2); 8219Add(KK2, p+Position(P, P[i]+K[j]) ); 8220Add(KK3, (+1*To[Position(P, P[i])][Position(P,K[j])][2][1]+1*To[Position(P, K[i])][Position(P,P[j])][2][1])/2); 8221Add(KK3, p+Position(P, P[i]+K[j]) ); 8222Add(KK4, +1*(-1*To[Position(P, P[i])][Position(P,K[j])][2][1]-1*To[Position(P, K[i])][Position(P,P[j])][2][1])/2); 8223Add(KK4, p+Position(P, K[i]+P[j]) ); 8224fi; 8225 fi; 8226fi; 8227fi; fi; 8228 8229############# 8230 8231if (K[j]-P[i] in P ) then 8232if not (IsEmpty(To[Position(P, P[i])][p+Position(P,K[j])][2])=true) then 8233if (p+Position(P,P[j]-K[i]) > p+Position(P,K[j]-P[i])) then 8234 8235if (t[Position(P,K[j]-P[i] )] = 1) then 8236Add(KK1, (+1*To[Position(P, P[i])][p+Position(P,K[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,P[j])][2][1])/2); 8237Add(KK1, p+Position(P, K[j]-P[i]) ); 8238Add(KK2, (-1*To[Position(P, P[i])][p+Position(P,K[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,P[j])][2][1])/2); 8239Add(KK2, p+Position(P, P[j]-K[i]) ); 8240Add(KK3, (+1*To[Position(P, P[i])][p+Position(P,K[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,P[j])][2][1])/2); 8241Add(KK3, p+Position(P, P[j]-K[i]) ); 8242Add(KK4, -1*(-1*To[Position(P, P[i])][p+Position(P,K[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,P[j])][2][1])/2); 8243Add(KK4, p+Position(P, K[j]-P[i]) ); 8244else 8245Add(KK1, (+1*To[Position(P, P[i])][p+Position(P,K[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,P[j])][2][1])/2); 8246Add(KK1, p+Position(P, K[j]-P[i]) ); 8247Add(KK2, (-1*To[Position(P, P[i])][p+Position(P,K[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,P[j])][2][1])/2); 8248Add(KK2, p+Position(P, P[j]-K[i]) ); 8249Add(KK3, (+1*To[Position(P, P[i])][p+Position(P,K[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,P[j])][2][1])/2); 8250Add(KK3, p+Position(P, P[j]-K[i]) ); 8251Add(KK4, -1*(-1*To[Position(P, P[i])][p+Position(P,K[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,P[j])][2][1])/2); 8252Add(KK4, p+Position(P, K[j]-P[i]) ); 8253fi; 8254else 8255 if (p+Position(P,P[j]-K[i]) = p+Position(P,K[j]-P[i])) then 8256if (t[Position(P,K[j]-P[i] )] = 1) then 8257Add(KK1, (+1*To[Position(P, P[i])][p+Position(P,K[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,P[j])][2][1])/2); 8258Add(KK1, p+Position(P, K[j]-P[i]) ); 8259Add(KK4, -1*(-1*To[Position(P, P[i])][p+Position(P,K[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,P[j])][2][1])/2); 8260Add(KK4, p+Position(P, K[j]-P[i]) ); 8261else 8262Add(KK2, (-1*To[Position(P, P[i])][p+Position(P,K[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,P[j])][2][1])/2); 8263Add(KK2, p+Position(P, P[j]-K[i]) ); 8264Add(KK3, (+1*To[Position(P, P[i])][p+Position(P,K[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,P[j])][2][1])/2); 8265Add(KK3, p+Position(P, P[j]-K[i]) ); 8266fi; 8267 else #(p+Position(P,K[j]+K[i]) < p+Position(P,P[j]+P[i])) 8268if (t[Position(P,K[j]-P[i] )] = 1) then 8269Add(KK1, (+1*To[Position(P, P[i])][p+Position(P,K[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,P[j])][2][1])/2); 8270Add(KK1, p+Position(P, P[j]-K[i]) ); 8271Add(KK2, -1*(-1*To[Position(P, P[i])][p+Position(P,K[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,P[j])][2][1])/2); 8272Add(KK2, p+Position(P, K[j]-P[i]) ); 8273Add(KK3, -1*(+1*To[Position(P, P[i])][p+Position(P,K[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,P[j])][2][1])/2); 8274Add(KK3, p+Position(P, K[j]-P[i]) ); 8275Add(KK4, -1*(-1*To[Position(P, P[i])][p+Position(P,K[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,P[j])][2][1])/2); 8276Add(KK4, p+Position(P, P[j]-K[i]) ); 8277else 8278Add(KK1, -1*(+1*To[Position(P, P[i])][p+Position(P,K[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,P[j])][2][1])/2); 8279Add(KK1, p+Position(P, P[j]-K[i]) ); 8280Add(KK2, (-1*To[Position(P, P[i])][p+Position(P,K[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,P[j])][2][1])/2); 8281Add(KK2, p+Position(P, K[j]-P[i]) ); 8282Add(KK3, (+1*To[Position(P, P[i])][p+Position(P,K[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,P[j])][2][1])/2); 8283Add(KK3, p+Position(P, K[j]-P[i]) ); 8284Add(KK4, +1*(-1*To[Position(P, P[i])][p+Position(P,K[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,P[j])][2][1])/2); 8285Add(KK4, p+Position(P, P[j]-K[i]) ); 8286fi; 8287 fi; 8288fi; 8289fi; fi; 8290 8291else #t[j]=-1 8292 8293############### 8294 8295if (P[i]+P[j] in P ) then #qui so che aplha+beta < phi_aplha+phi_beta quindi sono nel caso sicuro 8296if not (IsEmpty(To[Position(P, P[i])][Position(P,P[j])][2])=true) then 8297if (p+Position(P,K[j]+K[i]) > p+Position(P,P[j]+P[i])) then 8298 8299if (t[Position(P,P[j]+P[i] )] = 1) then 8300Add(KK1, (+1*To[Position(P, P[i])][Position(P,P[j])][2][1]+1*To[Position(P, K[i])][Position(P,K[j])][2][1])/2); 8301Add(KK1, p+Position(P, P[i]+P[j]) ); 8302Add(KK2, (+1*To[Position(P, P[i])][Position(P,P[j])][2][1]+1*To[Position(P, K[i])][Position(P,K[j])][2][1])/2); 8303Add(KK2, p+Position(P, K[i]+K[j]) ); 8304Add(KK3, (+1*To[Position(P, P[i])][Position(P,P[j])][2][1]+1*To[Position(P, K[i])][Position(P,K[j])][2][1])/2); 8305Add(KK3, p+Position(P, K[i]+K[j]) ); 8306Add(KK4, -1*(+1*To[Position(P, P[i])][Position(P,P[j])][2][1]+1*To[Position(P, K[i])][Position(P,K[j])][2][1])/2); 8307Add(KK4, p+Position(P, P[i]+P[j]) ); 8308else 8309Add(KK1, (+1*To[Position(P, P[i])][Position(P,P[j])][2][1]-1*To[Position(P, K[i])][Position(P,K[j])][2][1])/2); 8310Add(KK1, p+Position(P, P[i]+P[j]) ); 8311Add(KK2, (+1*To[Position(P, P[i])][Position(P,P[j])][2][1]-1*To[Position(P, K[i])][Position(P,K[j])][2][1])/2); 8312Add(KK2, p+Position(P, K[i]+K[j]) ); 8313Add(KK3, (+1*To[Position(P, P[i])][Position(P,P[j])][2][1]-1*To[Position(P, K[i])][Position(P,K[j])][2][1])/2); 8314Add(KK3, p+Position(P, K[i]+K[j]) ); 8315Add(KK4, -1*(+1*To[Position(P, P[i])][Position(P,P[j])][2][1]-1*To[Position(P, K[i])][Position(P,K[j])][2][1])/2); 8316Add(KK4, p+Position(P, P[i]+P[j]) ); 8317fi; 8318else 8319 if (p+Position(P,K[j]+K[i]) = p+Position(P,P[j]+P[i])) then 8320if (t[Position(P,P[j]+P[i] )] = 1) then 8321Add(KK1, (+1*To[Position(P, P[i])][Position(P,P[j])][2][1]+1*To[Position(P, K[i])][Position(P,K[j])][2][1])/2); 8322Add(KK1, p+Position(P, P[i]+P[j]) ); 8323Add(KK4, -1*(+1*To[Position(P, P[i])][Position(P,P[j])][2][1]+1*To[Position(P, K[i])][Position(P,K[j])][2][1])/2); 8324Add(KK4, p+Position(P, P[i]+P[j]) ); 8325else 8326Add(KK2, (+1*To[Position(P, P[i])][Position(P,P[j])][2][1]-1*To[Position(P, K[i])][Position(P,K[j])][2][1])/2); 8327Add(KK2, p+Position(P, K[i]+K[j]) ); 8328Add(KK3, (+1*To[Position(P, P[i])][Position(P,P[j])][2][1]-1*To[Position(P, K[i])][Position(P,K[j])][2][1])/2); 8329Add(KK3, p+Position(P, K[i]+K[j]) ); 8330fi; 8331 else #(p+Position(P,K[j]+K[i]) < p+Position(P,P[j]+P[i])) 8332if (t[Position(P,P[j]+P[i] )] = 1) then 8333Add(KK1, (+1*To[Position(P, P[i])][Position(P,P[j])][2][1]+1*To[Position(P, K[i])][Position(P,K[j])][2][1])/2); 8334Add(KK1, p+Position(P, K[j]+K[i]) ); 8335Add(KK2, -1*(+1*To[Position(P, P[i])][Position(P,P[j])][2][1]+1*To[Position(P, K[i])][Position(P,K[j])][2][1])/2); 8336Add(KK2, p+Position(P, P[i]+P[j]) ); 8337Add(KK3, -1*(+1*To[Position(P, P[i])][Position(P,P[j])][2][1]+1*To[Position(P, K[i])][Position(P,K[j])][2][1])/2); 8338Add(KK3, p+Position(P, P[i]+P[j]) ); 8339Add(KK4, -1*(+1*To[Position(P, P[i])][Position(P,P[j])][2][1]+1*To[Position(P, K[i])][Position(P,K[j])][2][1])/2); 8340Add(KK4, p+Position(P,K[j]+K[i]) ); 8341else 8342Add(KK1, -1*(+1*To[Position(P, P[i])][Position(P,P[j])][2][1]-1*To[Position(P, K[i])][Position(P,K[j])][2][1])/2); 8343Add(KK1, p+Position(P, K[j]+K[i]) ); 8344Add(KK2, (+1*To[Position(P, P[i])][Position(P,P[j])][2][1]-1*To[Position(P, K[i])][Position(P,K[j])][2][1])/2); 8345Add(KK2, p+Position(P, P[i]+P[j]) ); 8346Add(KK3, (+1*To[Position(P, P[i])][Position(P,P[j])][2][1]-1*To[Position(P, K[i])][Position(P,K[j])][2][1])/2); 8347Add(KK3, p+Position(P, P[i]+P[j]) ); 8348Add(KK4, +1*(+1*To[Position(P, P[i])][Position(P,P[j])][2][1]-1*To[Position(P, K[i])][Position(P,K[j])][2][1])/2); 8349Add(KK4, p+Position(P, K[j]+K[i]) ); 8350fi; 8351 fi; 8352fi; 8353fi; fi; 8354 8355####### 8356 8357if (P[j]-P[i] in P ) then 8358if not (IsEmpty(To[Position(P, P[i])][p+Position(P,P[j])][2])=true) then 8359if (p+Position(P,K[j]-K[i]) > p+Position(P,P[j]-P[i])) then 8360 8361if (t[Position(P,P[j]-P[i] )] = 1) then 8362Add(KK1, (+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])/2); 8363Add(KK1, p+Position(P, P[j]-P[i]) ); 8364Add(KK2, (+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])/2); 8365Add(KK2, p+Position(P, K[j]-K[i]) ); 8366Add(KK3, (+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])/2); 8367Add(KK3, p+Position(P, K[j]-K[i]) ); 8368Add(KK4, -1*(+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])/2); 8369Add(KK4, p+Position(P, P[j]-P[i]) ); 8370else 8371Add(KK1, (+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])/2); 8372Add(KK1, p+Position(P, P[j]-P[i]) ); 8373Add(KK2, (+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])/2); 8374Add(KK2, p+Position(P, K[j]-K[i]) ); 8375Add(KK3, (+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])/2); 8376Add(KK3, p+Position(P, K[j]-K[i]) ); 8377Add(KK4, -1*(+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])/2); 8378Add(KK4, p+Position(P, P[j]-P[i]) ); 8379fi; 8380else 8381 if (p+Position(P,K[j]-K[i]) = p+Position(P,P[j]-P[i])) then 8382if (t[Position(P,P[j]-P[i] )] = 1) then 8383Add(KK1, (+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])/2); 8384Add(KK1, p+Position(P, P[j]-P[i]) ); 8385Add(KK4, -1*(+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])/2); 8386Add(KK4, p+Position(P, P[j]-P[i]) ); 8387else 8388Add(KK2, (+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])/2); 8389Add(KK2, p+Position(P, K[j]-K[i]) ); 8390Add(KK3, (+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])/2); 8391Add(KK3, p+Position(P, K[j]-K[i]) ); 8392fi; 8393 else #(p+Position(P,K[j]+K[i]) < p+Position(P,P[j]+P[i])) 8394if (t[Position(P,P[j]-P[i] )] = 1) then 8395Add(KK1, (+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])/2); 8396Add(KK1, p+Position(P, K[j]-K[i]) ); 8397Add(KK2, -1*(+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])/2); 8398Add(KK2, p+Position(P, P[j]-P[i]) ); 8399Add(KK3, -1*(+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])/2); 8400Add(KK3, p+Position(P, P[j]-P[i]) ); 8401Add(KK4, -1*(+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])/2); 8402Add(KK4, p+Position(P, K[j]-K[i]) ); 8403else 8404Add(KK1, -1*(+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])/2); 8405Add(KK1, p+Position(P, K[j]-K[i]) ); 8406Add(KK2, (+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])/2); 8407Add(KK2, p+Position(P, P[j]-P[i]) ); 8408Add(KK3, (+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])/2); 8409Add(KK3, p+Position(P, P[j]-P[i]) ); 8410Add(KK4, +1*(+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])/2); 8411Add(KK4, p+Position(P, K[j]-K[i]) ); 8412fi; 8413 fi; 8414fi; 8415fi; fi; 8416 8417###### 8418 8419if (P[i]+K[j] in P ) then 8420if not (IsEmpty(To[Position(P, P[i])][Position(P,K[j])][2])=true) then 8421if (p+Position(P,K[i]+P[j]) > p+Position(P,P[i]+K[j])) then 8422 8423if (t[Position(P,P[i]+K[j] )] = 1) then 8424Add(KK1, (-1*To[Position(P, P[i])][Position(P,K[j])][2][1]-1*To[Position(P, K[i])][Position(P,P[j])][2][1])/2); 8425Add(KK1, p+Position(P, P[i]+K[j]) ); 8426Add(KK2, (+1*To[Position(P, P[i])][Position(P,K[j])][2][1]+1*To[Position(P, K[i])][Position(P,P[j])][2][1])/2); 8427Add(KK2, p+Position(P, K[i]+P[j]) ); 8428Add(KK3, (-1*To[Position(P, P[i])][Position(P,K[j])][2][1]-1*To[Position(P, K[i])][Position(P,P[j])][2][1])/2); 8429Add(KK3, p+Position(P, K[i]+P[j]) ); 8430Add(KK4, -1*(+1*To[Position(P, P[i])][Position(P,K[j])][2][1]+1*To[Position(P, K[i])][Position(P,P[j])][2][1])/2); 8431Add(KK4, p+Position(P, P[i]+K[j]) ); 8432else 8433Add(KK1, (-1*To[Position(P, P[i])][Position(P,K[j])][2][1]+1*To[Position(P, K[i])][Position(P,P[j])][2][1])/2); 8434Add(KK1, p+Position(P, P[i]+K[j]) ); 8435Add(KK2, (+1*To[Position(P, P[i])][Position(P,K[j])][2][1]-1*To[Position(P, K[i])][Position(P,P[j])][2][1])/2); 8436Add(KK2, p+Position(P, K[i]+P[j]) ); 8437Add(KK3, (-1*To[Position(P, P[i])][Position(P,K[j])][2][1]+1*To[Position(P, K[i])][Position(P,P[j])][2][1])/2); 8438Add(KK3, p+Position(P, K[i]+P[j]) ); 8439Add(KK4, -1*(+1*To[Position(P, P[i])][Position(P,K[j])][2][1]-1*To[Position(P, K[i])][Position(P,P[j])][2][1])/2); 8440Add(KK4, p+Position(P, P[i]+K[j]) ); 8441fi; 8442else 8443 if (p+Position(P,K[i]+P[j]) = p+Position(P,P[i]+K[j])) then 8444if (t[Position(P,K[j]+P[i] )] = 1) then 8445Add(KK1, (-1*To[Position(P, P[i])][Position(P,K[j])][2][1]-1*To[Position(P, K[i])][Position(P,P[j])][2][1])/2); 8446Add(KK1, p+Position(P, P[i]+K[j]) ); 8447Add(KK4, -1*(+1*To[Position(P, P[i])][Position(P,K[j])][2][1]+1*To[Position(P, K[i])][Position(P,P[j])][2][1])/2); 8448Add(KK4, p+Position(P, P[i]+K[j]) ); 8449else 8450Add(KK2, (+1*To[Position(P, P[i])][Position(P,K[j])][2][1]-1*To[Position(P, K[i])][Position(P,P[j])][2][1])/2); 8451Add(KK2, p+Position(P, K[i]+P[j]) ); 8452Add(KK3, (-1*To[Position(P, P[i])][Position(P,K[j])][2][1]+1*To[Position(P, K[i])][Position(P,P[j])][2][1])/2); 8453Add(KK3, p+Position(P, K[i]+P[j]) ); 8454fi; 8455 else #(p+Position(P,K[j]+K[i]) < p+Position(P,P[j]+P[i])) 8456if (t[Position(P,P[i]+K[j] )] = 1) then 8457Add(KK1, (-1*To[Position(P, P[i])][Position(P,K[j])][2][1]-1*To[Position(P, K[i])][Position(P,P[j])][2][1])/2); 8458Add(KK1, p+Position(P, K[i]+P[j]) ); 8459Add(KK2, -1*(+1*To[Position(P, P[i])][Position(P,K[j])][2][1]+1*To[Position(P, K[i])][Position(P,P[j])][2][1])/2); 8460Add(KK2, p+Position(P, P[i]+K[j]) ); 8461Add(KK3, -1*(-1*To[Position(P, P[i])][Position(P,K[j])][2][1]-1*To[Position(P, K[i])][Position(P,P[j])][2][1])/2); 8462Add(KK3, p+Position(P, P[i]+K[j]) ); 8463Add(KK4, -1*(+1*To[Position(P, P[i])][Position(P,K[j])][2][1]+1*To[Position(P, K[i])][Position(P,P[j])][2][1])/2); 8464Add(KK4, p+Position(P, K[i]+P[j]) ); 8465else 8466Add(KK1, -1*(-1*To[Position(P, P[i])][Position(P,K[j])][2][1]+1*To[Position(P, K[i])][Position(P,P[j])][2][1])/2); 8467Add(KK1, p+Position(P, K[i]+P[j]) ); 8468Add(KK2, (+1*To[Position(P, P[i])][Position(P,K[j])][2][1]-1*To[Position(P, K[i])][Position(P,P[j])][2][1])/2); 8469Add(KK2, p+Position(P, P[i]+K[j]) ); 8470Add(KK3, (-1*To[Position(P, P[i])][Position(P,K[j])][2][1]+1*To[Position(P, K[i])][Position(P,P[j])][2][1])/2); 8471Add(KK3, p+Position(P, P[i]+K[j]) ); 8472Add(KK4, +1*(+1*To[Position(P, P[i])][Position(P,K[j])][2][1]-1*To[Position(P, K[i])][Position(P,P[j])][2][1])/2); 8473Add(KK4, p+Position(P, K[i]+P[j]) ); 8474fi; 8475 fi; 8476fi; 8477fi; fi; 8478 8479############# 8480 8481if (K[j]-P[i] in P ) then 8482if not (IsEmpty(To[Position(P, P[i])][p+Position(P,K[j])][2])=true) then 8483if (p+Position(P,P[j]-K[i]) > p+Position(P,K[j]-P[i])) then 8484 8485if (t[Position(P,K[j]-P[i] )] = 1) then 8486Add(KK1, (-1*To[Position(P, P[i])][p+Position(P,K[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,P[j])][2][1])/2); 8487Add(KK1, p+Position(P, K[j]-P[i]) ); 8488Add(KK2, (+1*To[Position(P, P[i])][p+Position(P,K[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,P[j])][2][1])/2); 8489Add(KK2, p+Position(P, P[j]-K[i]) ); 8490Add(KK3, (-1*To[Position(P, P[i])][p+Position(P,K[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,P[j])][2][1])/2); 8491Add(KK3, p+Position(P, P[j]-K[i]) ); 8492Add(KK4, -1*(+1*To[Position(P, P[i])][p+Position(P,K[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,P[j])][2][1])/2); 8493Add(KK4, p+Position(P, K[j]-P[i]) ); 8494else 8495Add(KK1, (-1*To[Position(P, P[i])][p+Position(P,K[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,P[j])][2][1])/2); 8496Add(KK1, p+Position(P, K[j]-P[i]) ); 8497Add(KK2, (+1*To[Position(P, P[i])][p+Position(P,K[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,P[j])][2][1])/2); 8498Add(KK2, p+Position(P, P[j]-K[i]) ); 8499Add(KK3, (-1*To[Position(P, P[i])][p+Position(P,K[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,P[j])][2][1])/2); 8500Add(KK3, p+Position(P, P[j]-K[i]) ); 8501Add(KK4, -1*(+1*To[Position(P, P[i])][p+Position(P,K[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,P[j])][2][1])/2); 8502Add(KK4, p+Position(P, K[j]-P[i]) ); 8503fi; 8504else 8505 if (p+Position(P,P[j]-K[i]) = p+Position(P,K[j]-P[i])) then 8506if (t[Position(P,K[j]-P[i] )] = 1) then 8507Add(KK1, (-1*To[Position(P, P[i])][p+Position(P,K[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,P[j])][2][1])/2); 8508Add(KK1, p+Position(P, K[j]-P[i]) ); 8509Add(KK4, -1*(+1*To[Position(P, P[i])][p+Position(P,K[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,P[j])][2][1])/2); 8510Add(KK4, p+Position(P, K[j]-P[i]) ); 8511else 8512Add(KK2, (+1*To[Position(P, P[i])][p+Position(P,K[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,P[j])][2][1])/2); 8513Add(KK2, p+Position(P, P[j]-K[i]) ); 8514Add(KK3, (-1*To[Position(P, P[i])][p+Position(P,K[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,P[j])][2][1])/2); 8515Add(KK3, p+Position(P, P[j]-K[i]) ); 8516fi; 8517 else #(p+Position(P,K[j]+K[i]) < p+Position(P,P[j]+P[i])) 8518if (t[Position(P,K[j]-P[i] )] = 1) then 8519Add(KK1, (-1*To[Position(P, P[i])][p+Position(P,K[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,P[j])][2][1])/2); 8520Add(KK1, p+Position(P, P[j]-K[i]) ); 8521Add(KK2, -1*(+1*To[Position(P, P[i])][p+Position(P,K[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,P[j])][2][1])/2); 8522Add(KK2, p+Position(P, K[j]-P[i]) ); 8523Add(KK3, -1*(-1*To[Position(P, P[i])][p+Position(P,K[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,P[j])][2][1])/2); 8524Add(KK3, p+Position(P, K[j]-P[i]) ); 8525Add(KK4, -1*(+1*To[Position(P, P[i])][p+Position(P,K[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,P[j])][2][1])/2); 8526Add(KK4, p+Position(P, P[j]-K[i]) ); 8527else 8528Add(KK1, -1*(-1*To[Position(P, P[i])][p+Position(P,K[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,P[j])][2][1])/2); 8529Add(KK1, p+Position(P, P[j]-K[i]) ); 8530Add(KK2, (+1*To[Position(P, P[i])][p+Position(P,K[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,P[j])][2][1])/2); 8531Add(KK2, p+Position(P, K[j]-P[i]) ); 8532Add(KK3, (-1*To[Position(P, P[i])][p+Position(P,K[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,P[j])][2][1])/2); 8533Add(KK3, p+Position(P, K[j]-P[i]) ); 8534Add(KK4, +1*(+1*To[Position(P, P[i])][p+Position(P,K[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,P[j])][2][1])/2); 8535Add(KK4, p+Position(P, P[j]-K[i]) ); 8536fi; 8537 fi; 8538fi; 8539fi; fi; 8540 8541fi; fi; 8542 8543if ( Position(P,K[i]) < Position(P,P[j]) ) then 8544SetEntrySCTable( TT, Position(P,P[i]), p+Position(P,P[j]) , KK1); 8545SetEntrySCTable( TT, Position(P,P[i]), p+Position(P, K[j]), KK2); 8546SetEntrySCTable( TT, Position(P,K[i]), p+Position(P,P[j]), KK3); 8547SetEntrySCTable( TT, Position(P,K[i]), p+Position(P, K[j]), KK4); 8548fi; 8549 8550if ( Position(P,K[i]) > Position(P,K[j]) ) then 8551SetEntrySCTable( TT, Position(P,P[i]), p+Position(P,P[j]) , KK1); 8552SetEntrySCTable( TT, Position(P,P[i]), p+Position(P, K[j]), KK2); 8553fi; 8554 8555if ( Position(P,P[j]) < Position(P,K[i]) ) then 8556 if ( Position(P,K[i]) < Position(P,K[j]) ) then 8557SetEntrySCTable( TT, Position(P,P[i]), p+Position(P,P[j]) , KK1); 8558SetEntrySCTable( TT, Position(P,P[i]), p+Position(P, K[j]), KK2); 8559#SetEntrySCTable( TT, Position(P,K[i]), p+Position(P,P[j]), KK3); 8560SetEntrySCTable( TT, Position(P,K[i]), p+Position(P, K[j]), KK4); 8561 fi; 8562fi; 8563 8564else 8565 if ( p+Position(P, K[j]) = p+Position(P,P[j]) ) then #beta = phi_beta 8566 8567KK1:=[]; 8568KK2:=[]; 8569 8570if (t[i]=1) then 8571if (t[j]=1) then 8572 8573if (P[i]+P[j] in P ) then #qui so che aplha+beta < phi_aplha+phi_beta quindi sono nel caso sicuro 8574if not (IsEmpty(To[Position(P, P[i])][Position(P,P[j])][2])=true) then 8575if (p+Position(P,K[j]+K[i]) > p+Position(P,P[j]+P[i])) then 8576 8577if (t[Position(P,P[j]+P[i] )] = 1) then 8578Add(KK1, (+1*To[Position(P, P[i])][Position(P,P[j])][2][1]+1*To[Position(P, K[i])][Position(P,K[j])][2][1])); 8579Add(KK1, p+Position(P, P[i]+P[j]) ); 8580Add(KK2, (+1*To[Position(P, P[i])][Position(P,P[j])][2][1]+1*To[Position(P, K[i])][Position(P,K[j])][2][1])); 8581Add(KK2, p+Position(P, K[i]+K[j]) ); 8582else 8583Add(KK1, (+1*To[Position(P, P[i])][Position(P,P[j])][2][1]-1*To[Position(P, K[i])][Position(P,K[j])][2][1])); 8584Add(KK1, p+Position(P, P[i]+P[j]) ); 8585Add(KK2, (+1*To[Position(P, P[i])][Position(P,P[j])][2][1]-1*To[Position(P, K[i])][Position(P,K[j])][2][1])); 8586Add(KK2, p+Position(P, K[i]+K[j]) ); 8587fi; 8588else 8589 if (p+Position(P,K[j]+K[i]) = p+Position(P,P[j]+P[i])) then 8590if (t[Position(P,P[j]+P[i] )] = 1) then 8591Add(KK1, (+1*To[Position(P, P[i])][Position(P,P[j])][2][1]+1*To[Position(P, K[i])][Position(P,K[j])][2][1])); 8592Add(KK1, p+Position(P, P[i]+P[j]) ); 8593else 8594Add(KK2, (+1*To[Position(P, P[i])][Position(P,P[j])][2][1]-1*To[Position(P, K[i])][Position(P,K[j])][2][1])); 8595Add(KK2, p+Position(P, K[i]+K[j]) ); 8596fi; 8597 else #(p+Position(P,K[j]+K[i]) < p+Position(P,P[j]+P[i])) 8598if (t[Position(P,P[j]+P[i] )] = 1) then 8599Add(KK1, (+1*To[Position(P, P[i])][Position(P,P[j])][2][1]+1*To[Position(P, K[i])][Position(P,K[j])][2][1])); 8600Add(KK1, p+Position(P, K[j]+K[i]) ); 8601Add(KK2, -1*(+1*To[Position(P, P[i])][Position(P,P[j])][2][1]+1*To[Position(P, K[i])][Position(P,K[j])][2][1])); 8602Add(KK2, p+Position(P, P[i]+P[j]) ); 8603else 8604Add(KK1, -1*(+1*To[Position(P, P[i])][Position(P,P[j])][2][1]-1*To[Position(P, K[i])][Position(P,K[j])][2][1])); 8605Add(KK1, p+Position(P, K[j]+K[i]) ); 8606Add(KK2, (+1*To[Position(P, P[i])][Position(P,P[j])][2][1]-1*To[Position(P, K[i])][Position(P,K[j])][2][1])); 8607Add(KK2, p+Position(P, P[i]+P[j]) ); 8608fi; 8609 fi; 8610fi; 8611fi; fi; 8612 8613############### 8614 8615if (P[j]-P[i] in P ) then 8616if not (IsEmpty(To[Position(P, P[i])][p+Position(P,P[j])][2])=true) then 8617if (p+Position(P,K[j]-K[i]) > p+Position(P,P[j]-P[i])) then 8618 8619if (t[Position(P,P[j]-P[i] )] = 1) then 8620Add(KK1, (+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])); 8621Add(KK1, p+Position(P, P[j]-P[i]) ); 8622Add(KK2, (+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])); 8623Add(KK2, p+Position(P, K[j]-K[i]) ); 8624else 8625Add(KK1, (+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])); 8626Add(KK1, p+Position(P, P[j]-P[i]) ); 8627Add(KK2, (+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])); 8628Add(KK2, p+Position(P, K[j]-K[i]) ); 8629fi; 8630else 8631 if (p+Position(P,K[j]-K[i]) = p+Position(P,P[j]-P[i])) then 8632 8633if (t[Position(P,P[j]-P[i] )] = 1) then 8634Add(KK1, (+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])); 8635Add(KK1, p+Position(P, P[j]-P[i]) ); 8636else 8637Add(KK2, (+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])); 8638Add(KK2, p+Position(P, K[j]-K[i]) ); 8639fi; 8640 else #(p+Position(P,K[j]+K[i]) < p+Position(P,P[j]+P[i])) 8641 8642if (t[Position(P,P[j]-P[i] )] = 1) then 8643Add(KK1, (+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])); 8644Add(KK1, p+Position(P, K[j]-K[i]) ); 8645Add(KK2, -1*(+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])); 8646Add(KK2, p+Position(P, P[j]-P[i]) ); 8647else 8648Add(KK1, -1*(+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])); 8649Add(KK1, p+Position(P, K[j]-K[i]) ); 8650Add(KK2, (+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])); 8651Add(KK2, p+Position(P, P[j]-P[i]) ); 8652fi; 8653 fi; 8654fi; 8655fi; fi; 8656 8657#################### 8658else #t[j]=-1 8659 8660if (P[i]+P[j] in P ) then #qui so che aplha+beta < phi_aplha+phi_beta quindi sono nel caso sicuro 8661if not (IsEmpty(To[Position(P, P[i])][Position(P,P[j])][2])=true) then 8662if (p+Position(P,K[j]+K[i]) > p+Position(P,P[j]+P[i])) then 8663 8664if (t[Position(P,P[j]+P[i] )] = 1) then 8665Add(KK1, (+1*To[Position(P, P[i])][Position(P,P[j])][2][1]-1*To[Position(P, K[i])][Position(P,K[j])][2][1])); 8666Add(KK1, p+Position(P, K[j]+K[i]) ); 8667Add(KK2, -1*(+1*To[Position(P, P[i])][Position(P,P[j])][2][1]-1*To[Position(P, K[i])][Position(P,K[j])][2][1])); 8668Add(KK2, p+Position(P, P[i]+P[j]) ); 8669else 8670Add(KK1, (+1*To[Position(P, P[i])][Position(P,P[j])][2][1]+1*To[Position(P, K[i])][Position(P,K[j])][2][1])); 8671Add(KK1, p+Position(P, K[j]+K[i]) ); 8672Add(KK2, -1*(+1*To[Position(P, P[i])][Position(P,P[j])][2][1]+1*To[Position(P, K[i])][Position(P,K[j])][2][1])); 8673Add(KK2, p+Position(P, P[i]+P[j]) ); 8674fi; 8675else 8676 if (p+Position(P,K[j]+K[i]) = p+Position(P,P[j]+P[i])) then 8677if (t[Position(P,P[j]+P[i] )] = 1) then 8678Add(KK2, -1*(+1*To[Position(P, P[i])][Position(P,P[j])][2][1]-1*To[Position(P, K[i])][Position(P,K[j])][2][1])); 8679Add(KK2, p+Position(P, P[i]+P[j]) ); 8680else 8681Add(KK1, (+1*To[Position(P, P[i])][Position(P,P[j])][2][1]+1*To[Position(P, K[i])][Position(P,K[j])][2][1])); 8682Add(KK1, p+Position(P, K[j]+K[i]) ); 8683fi; 8684 else #(p+Position(P,K[j]+K[i]) < p+Position(P,P[j]+P[i])) 8685if (t[Position(P,P[j]+P[i] )] = 1) then 8686Add(KK1, -1*(+1*To[Position(P, P[i])][Position(P,P[j])][2][1]-1*To[Position(P, K[i])][Position(P,K[j])][2][1])); 8687Add(KK1, p+Position(P, K[j]+K[i]) ); 8688Add(KK2, -1*(+1*To[Position(P, P[i])][Position(P,P[j])][2][1]-1*To[Position(P, K[i])][Position(P,K[j])][2][1])); 8689Add(KK2, p+Position(P, P[i]+P[j]) ); 8690else 8691Add(KK1, (+1*To[Position(P, P[i])][Position(P,P[j])][2][1]+1*To[Position(P, K[i])][Position(P,K[j])][2][1])); 8692Add(KK1, p+Position(P, P[i]+P[j]) ); 8693Add(KK2, +1*(+1*To[Position(P, P[i])][Position(P,P[j])][2][1]+1*To[Position(P, K[i])][Position(P,K[j])][2][1])); 8694Add(KK2, p+Position(P, K[j]+K[i]) ); 8695fi; 8696 fi; 8697fi; 8698fi; fi; 8699 8700############### 8701 8702if (P[j]-P[i] in P ) then 8703if not (IsEmpty(To[Position(P, P[i])][p+Position(P,P[j])][2])=true) then 8704if (p+Position(P,K[j]-K[i]) > p+Position(P,P[j]-P[i])) then 8705 8706if (t[Position(P,P[j]-P[i] )] = 1) then 8707Add(KK1, (+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])); 8708Add(KK1, p+Position(P, K[j]-K[i]) ); 8709Add(KK2, -1*(+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])); 8710Add(KK2, p+Position(P, P[j]-P[i]) ); 8711else 8712Add(KK1, (+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])); 8713Add(KK1, p+Position(P, K[j]-K[i]) ); 8714Add(KK2, -1*(+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])); 8715Add(KK2, p+Position(P, P[j]-P[i]) ); 8716fi; 8717 8718else 8719 if (p+Position(P,K[j]-K[i]) = p+Position(P,P[j]-P[i])) then 8720if (t[Position(P,P[j]-P[i] )] = 1) then 8721Add(KK2, -1*(+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])); 8722Add(KK2, p+Position(P, P[j]-P[i]) ); 8723else 8724Add(KK1, (+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])); 8725Add(KK1, p+Position(P, K[j]-K[i]) ); 8726fi; 8727 else #(p+Position(P,K[j]+K[i]) < p+Position(P,P[j]+P[i])) 8728 8729if (t[Position(P,P[j]-P[i] )] = 1) then 8730Add(KK1, -1*(+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])); 8731Add(KK1, p+Position(P, P[j]-P[i]) ); 8732Add(KK2, -1*(+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])); 8733Add(KK2, p+Position(P, K[j]-K[i]) ); 8734else 8735Add(KK1, (+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])); 8736Add(KK1, p+Position(P, P[j]-P[i]) ); 8737Add(KK2, +1*(+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])); 8738Add(KK2, p+Position(P, K[j]-K[i]) ); 8739fi; 8740 fi; 8741fi; 8742fi; fi; 8743 8744fi; 8745 8746else #t[i]=-1 8747if (t[j]=1) then 8748 8749if (P[i]+P[j] in P ) then #qui so che aplha+beta < phi_aplha+phi_beta quindi sono nel caso sicuro 8750if not (IsEmpty(To[Position(P, P[i])][Position(P,P[j])][2])=true) then 8751if (p+Position(P,K[j]+K[i]) > p+Position(P,P[j]+P[i])) then 8752 8753if (t[Position(P,P[j]+P[i] )] = 1) then 8754Add(KK1, (+1*To[Position(P, P[i])][Position(P,P[j])][2][1]-1*To[Position(P, K[i])][Position(P,K[j])][2][1])); 8755Add(KK1, p+Position(P, P[i]+P[j]) ); 8756Add(KK2, (+1*To[Position(P, P[i])][Position(P,P[j])][2][1]-1*To[Position(P, K[i])][Position(P,K[j])][2][1])); 8757Add(KK2, p+Position(P, K[i]+K[j]) ); 8758else 8759Add(KK1, (+1*To[Position(P, P[i])][Position(P,P[j])][2][1]+1*To[Position(P, K[i])][Position(P,K[j])][2][1])); 8760Add(KK1, p+Position(P, P[i]+P[j]) ); 8761Add(KK2, (+1*To[Position(P, P[i])][Position(P,P[j])][2][1]+1*To[Position(P, K[i])][Position(P,K[j])][2][1])); 8762Add(KK2, p+Position(P, K[i]+K[j]) ); 8763fi; 8764else 8765 if (p+Position(P,K[j]+K[i]) = p+Position(P,P[j]+P[i])) then 8766 8767if (t[Position(P,P[j]+P[i] )] = 1) then 8768Add(KK1, (+1*To[Position(P, P[i])][Position(P,P[j])][2][1]-1*To[Position(P, K[i])][Position(P,K[j])][2][1])); 8769Add(KK1, p+Position(P, P[i]+P[j]) ); 8770else 8771Add(KK2, (+1*To[Position(P, P[i])][Position(P,P[j])][2][1]+1*To[Position(P, K[i])][Position(P,K[j])][2][1])); 8772Add(KK2, p+Position(P, K[i]+K[j]) ); 8773fi; 8774 else #(p+Position(P,K[j]+K[i]) < p+Position(P,P[j]+P[i])) 8775if (t[Position(P,P[j]+P[i] )] = 1) then 8776Add(KK1, (+1*To[Position(P, P[i])][Position(P,P[j])][2][1]-1*To[Position(P, K[i])][Position(P,K[j])][2][1])); 8777Add(KK1, p+Position(P, K[j]+K[i]) ); 8778Add(KK2, -1*(+1*To[Position(P, P[i])][Position(P,P[j])][2][1]-1*To[Position(P, K[i])][Position(P,K[j])][2][1])); 8779Add(KK2, p+Position(P, P[i]+P[j]) ); 8780else 8781Add(KK1, -1*(+1*To[Position(P, P[i])][Position(P,P[j])][2][1]+1*To[Position(P, K[i])][Position(P,K[j])][2][1])); 8782Add(KK1, p+Position(P, K[j]+K[i]) ); 8783Add(KK2, (+1*To[Position(P, P[i])][Position(P,P[j])][2][1]+1*To[Position(P, K[i])][Position(P,K[j])][2][1])); 8784Add(KK2, p+Position(P, P[i]+P[j]) ); 8785fi; 8786 fi; 8787fi; 8788fi; fi; 8789 8790############### 8791 8792if (P[j]-P[i] in P ) then 8793if not (IsEmpty(To[Position(P, P[i])][p+Position(P,P[j])][2])=true) then 8794if (p+Position(P,K[j]-K[i]) > p+Position(P,P[j]-P[i])) then 8795 8796if (t[Position(P,P[j]-P[i] )] = 1) then 8797Add(KK1, (+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])); 8798Add(KK1, p+Position(P, P[j]-P[i]) ); 8799Add(KK2, (+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])); 8800Add(KK2, p+Position(P, K[j]-K[i]) ); 8801else 8802Add(KK1, (+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])); 8803Add(KK1, p+Position(P, P[j]-P[i]) ); 8804Add(KK2, (+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])); 8805Add(KK2, p+Position(P, K[j]-K[i]) ); 8806fi; 8807else 8808 if (p+Position(P,K[j]-K[i]) = p+Position(P,P[j]-P[i])) then 8809 8810if (t[Position(P,P[j]-P[i] )] = 1) then 8811Add(KK1, (+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])); 8812Add(KK1, p+Position(P, P[j]-P[i]) ); 8813else 8814Add(KK2, (+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])); 8815Add(KK2, p+Position(P, K[j]-K[i]) ); 8816fi; 8817 else #(p+Position(P,K[j]+K[i]) < p+Position(P,P[j]+P[i])) 8818if (t[Position(P,P[j]-P[i] )] = 1) then 8819Add(KK1, (+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])); 8820Add(KK1, p+Position(P, K[j]-K[i]) ); 8821Add(KK2, -1*(+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])); 8822Add(KK2, p+Position(P, P[j]-P[i]) ); 8823else 8824Add(KK1, -1*(+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])); 8825Add(KK1, p+Position(P, K[j]-K[i]) ); 8826Add(KK2, (+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])); 8827Add(KK2, p+Position(P, P[j]-P[i]) ); 8828fi; 8829 fi; 8830fi; 8831fi; fi; 8832 8833########### 8834else #t[i]=t[j]=-1 8835 8836if (P[i]+P[j] in P ) then #qui so che aplha+beta < phi_aplha+phi_beta quindi sono nel caso sicuro 8837if not (IsEmpty(To[Position(P, P[i])][Position(P,P[j])][2])=true) then 8838if (p+Position(P,K[j]+K[i]) > p+Position(P,P[j]+P[i])) then 8839 8840if (t[Position(P,P[j]+P[i] )] = 1) then 8841Add(KK1, (+1*To[Position(P, P[i])][Position(P,P[j])][2][1]+1*To[Position(P, K[i])][Position(P,K[j])][2][1])); 8842Add(KK1, p+Position(P, K[i]+K[j]) ); 8843Add(KK2, -1*(+1*To[Position(P, P[i])][Position(P,P[j])][2][1]+1*To[Position(P, K[i])][Position(P,K[j])][2][1])); 8844Add(KK2, p+Position(P, P[j]+P[i]) ); 8845else 8846Add(KK1, (+1*To[Position(P, P[i])][Position(P,P[j])][2][1]-1*To[Position(P, K[i])][Position(P,K[j])][2][1])); 8847Add(KK1, p+Position(P, K[i]+K[j]) ); 8848Add(KK2, -1*(+1*To[Position(P, P[i])][Position(P,P[j])][2][1]-1*To[Position(P, K[i])][Position(P,K[j])][2][1])); 8849Add(KK2, p+Position(P, P[j]+P[i]) ); 8850fi; 8851else 8852 if (p+Position(P,K[j]+K[i]) = p+Position(P,P[j]+P[i])) then 8853 8854if (t[Position(P,P[j]+P[i] )] = 1) then 8855Add(KK2, -1*(+1*To[Position(P, P[i])][Position(P,P[j])][2][1]+1*To[Position(P, K[i])][Position(P,K[j])][2][1])); 8856Add(KK2, p+Position(P, P[j]+P[i]) ); 8857else 8858Add(KK1, (+1*To[Position(P, P[i])][Position(P,P[j])][2][1]-1*To[Position(P, K[i])][Position(P,K[j])][2][1])); 8859Add(KK1, p+Position(P, K[i]+K[j]) ); 8860fi; 8861 else #(p+Position(P,K[j]+K[i]) < p+Position(P,P[j]+P[i])) 8862 8863if (t[Position(P,P[j]+P[i] )] = 1) then 8864Add(KK1, -1*(+1*To[Position(P, P[i])][Position(P,P[j])][2][1]+1*To[Position(P, K[i])][Position(P,K[j])][2][1])); 8865Add(KK1, p+Position(P, P[j]+P[i]) ); 8866Add(KK2, -1*(+1*To[Position(P, P[i])][Position(P,P[j])][2][1]+1*To[Position(P, K[i])][Position(P,K[j])][2][1])); 8867Add(KK2, p+Position(P, K[i]+K[j]) ); 8868else 8869Add(KK1, (+1*To[Position(P, P[i])][Position(P,P[j])][2][1]-1*To[Position(P, K[i])][Position(P,K[j])][2][1])); 8870Add(KK1, p+Position(P, P[j]+P[i]) ); 8871Add(KK2, +1*(+1*To[Position(P, P[i])][Position(P,P[j])][2][1]-1*To[Position(P, K[i])][Position(P,K[j])][2][1])); 8872Add(KK2, p+Position(P, K[i]+K[j]) ); 8873fi; 8874 fi; 8875fi; 8876fi; fi; 8877 8878############### 8879 8880if (P[j]-P[i] in P ) then 8881if not (IsEmpty(To[Position(P, P[i])][p+Position(P,P[j])][2])=true) then 8882if (p+Position(P,K[j]-K[i]) > p+Position(P,P[j]-P[i])) then 8883 8884if (t[Position(P,P[j]-P[i] )] = 1) then 8885Add(KK1, (+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])); 8886Add(KK1, p+Position(P, K[j]-K[i]) ); 8887Add(KK2, -1*(+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])); 8888Add(KK2, p+Position(P, P[j]-P[i]) ); 8889else 8890Add(KK1, (+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])); 8891Add(KK1, p+Position(P, K[j]-K[i]) ); 8892Add(KK2, -1*(+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])); 8893Add(KK2, p+Position(P, P[j]-P[i]) ); 8894fi; 8895else 8896 if (p+Position(P,K[j]-K[i]) = p+Position(P,P[j]-P[i])) then 8897 8898if (t[Position(P,P[j]-P[i] )] = 1) then 8899Add(KK2, -1*(+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])); 8900Add(KK2, p+Position(P, P[j]-P[i]) ); 8901else 8902Add(KK1, (+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])); 8903Add(KK1, p+Position(P, K[j]-K[i]) ); 8904fi; 8905 else #(p+Position(P,K[j]+K[i]) < p+Position(P,P[j]+P[i])) 8906if (t[Position(P,P[j]-P[i] )] = 1) then 8907Add(KK1, -1*(+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])); 8908Add(KK1, p+Position(P, P[j]-P[i]) ); 8909Add(KK2, -1*(+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])); 8910Add(KK2, p+Position(P, K[j]-K[i]) ); 8911else 8912Add(KK1, (+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])); 8913Add(KK1, p+Position(P, P[j]-P[i]) ); 8914Add(KK2, +1*(+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])); 8915Add(KK2, p+Position(P, K[j]-K[i]) ); 8916fi; 8917 fi; 8918fi; 8919fi; fi; 8920 8921fi; fi; 8922 8923if ( Position(P, K[i]) < Position(P, P[j]) ) then 8924SetEntrySCTable( TT, i, p+j , KK1); 8925SetEntrySCTable( TT, Position(P,K[i]), p+j, KK2); 8926fi; 8927 8928if ( Position(P, K[i]) > Position(P, P[j]) ) then 8929SetEntrySCTable( TT, i, p+j , KK1); 8930#SetEntrySCTable( TT, Position(P,K[i]), p+j, KK2); 8931fi; 8932fi; 8933 8934fi; 8935 8936else 8937 if ( p+Position(P, K[i]) = p+Position(P,P[i]) ) then #alpha< phi_alpha 8938 if ( p+Position(P, K[j]) > p+Position(P,P[j]) ) then #beta< phi_beta 8939 8940KK1:=[]; 8941KK2:=[]; 8942 8943if (t[i]=1) then 8944if (t[j]=1) then 8945 8946if (P[i]+P[j] in P ) then #qui so che aplha+beta < phi_aplha+phi_beta quindi sono nel caso sicuro 8947if not (IsEmpty(To[Position(P, P[i])][Position(P,P[j])][2])=true) then 8948if (p+Position(P,K[j]+K[i]) > p+Position(P,P[j]+P[i])) then 8949 8950if (t[Position(P,P[j]+P[i] )] = 1) then 8951Add(KK1, (+1*To[Position(P, P[i])][Position(P,P[j])][2][1]+1*To[Position(P, K[i])][Position(P,K[j])][2][1])); 8952Add(KK1, p+Position(P, P[i]+P[j]) ); 8953Add(KK2, (+1*To[Position(P, P[i])][Position(P,P[j])][2][1]+1*To[Position(P, K[i])][Position(P,K[j])][2][1])); 8954Add(KK2, p+Position(P, K[i]+K[j]) ); 8955else 8956Add(KK1, (+1*To[Position(P, P[i])][Position(P,P[j])][2][1]-1*To[Position(P, K[i])][Position(P,K[j])][2][1])); 8957Add(KK1, p+Position(P, P[i]+P[j]) ); 8958Add(KK2, (+1*To[Position(P, P[i])][Position(P,P[j])][2][1]-1*To[Position(P, K[i])][Position(P,K[j])][2][1])); 8959Add(KK2, p+Position(P, K[i]+K[j]) ); 8960fi; 8961else 8962 if (p+Position(P,K[j]+K[i]) = p+Position(P,P[j]+P[i])) then 8963 8964if (t[Position(P,P[j]+P[i] )] = 1) then 8965Add(KK1, (+1*To[Position(P, P[i])][Position(P,P[j])][2][1]+1*To[Position(P, K[i])][Position(P,K[j])][2][1])); 8966Add(KK1, p+Position(P, P[i]+P[j]) ); 8967else 8968Add(KK2, (+1*To[Position(P, P[i])][Position(P,P[j])][2][1]-1*To[Position(P, K[i])][Position(P,K[j])][2][1])); 8969Add(KK2, p+Position(P, K[i]+K[j]) ); 8970fi; 8971 else #(p+Position(P,K[j]+K[i]) < p+Position(P,P[j]+P[i])) 8972 8973if (t[Position(P,P[j]+P[i] )] = 1) then 8974Add(KK1, (+1*To[Position(P, P[i])][Position(P,P[j])][2][1]+1*To[Position(P, K[i])][Position(P,K[j])][2][1])); 8975Add(KK1, p+Position(P, K[j]+K[i]) ); 8976Add(KK2, -1*(+1*To[Position(P, P[i])][Position(P,P[j])][2][1]+1*To[Position(P, K[i])][Position(P,K[j])][2][1])); 8977Add(KK2, p+Position(P, P[i]+P[j]) ); 8978else 8979Add(KK1, -1*(+1*To[Position(P, P[i])][Position(P,P[j])][2][1]-1*To[Position(P, K[i])][Position(P,K[j])][2][1])); 8980Add(KK1, p+Position(P, K[j]+K[i]) ); 8981Add(KK2, (+1*To[Position(P, P[i])][Position(P,P[j])][2][1]-1*To[Position(P, K[i])][Position(P,K[j])][2][1])); 8982Add(KK2, p+Position(P, P[i]+P[j]) ); 8983fi; 8984 fi; 8985fi; 8986fi; fi; 8987 8988############### 8989 8990if (P[j]-P[i] in P ) then 8991if not (IsEmpty(To[Position(P, P[i])][p+Position(P,P[j])][2])=true) then 8992if (p+Position(P,K[j]-K[i]) > p+Position(P,P[j]-P[i])) then 8993 8994if (t[Position(P,P[j]-P[i] )] = 1) then 8995Add(KK1, (+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])); 8996Add(KK1, p+Position(P, P[j]-P[i]) ); 8997Add(KK2, (+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])); 8998Add(KK2, p+Position(P, K[j]-K[i]) ); 8999else 9000Add(KK1, (+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])); 9001Add(KK1, p+Position(P, P[j]-P[i]) ); 9002Add(KK2, (+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])); 9003Add(KK2, p+Position(P, K[j]-K[i]) ); 9004fi; 9005else 9006 if (p+Position(P,K[j]-K[i]) = p+Position(P,P[j]-P[i])) then 9007 9008if (t[Position(P,P[j]-P[i] )] = 1) then 9009Add(KK1, (+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])); 9010Add(KK1, p+Position(P, P[j]-P[i]) ); 9011else 9012Add(KK2, (+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])); 9013Add(KK2, p+Position(P, K[j]-K[i]) ); 9014fi; 9015 else #(p+Position(P,K[j]+K[i]) < p+Position(P,P[j]+P[i])) 9016 9017if (t[Position(P,P[j]-P[i] )] = 1) then 9018Add(KK1, (+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])); 9019Add(KK1, p+Position(P, K[j]-K[i]) ); 9020Add(KK2, -1*(+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])); 9021Add(KK2, p+Position(P, P[j]-P[i]) ); 9022else 9023Add(KK1, -1*(+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])); 9024Add(KK1, p+Position(P, K[j]-K[i]) ); 9025Add(KK2, (+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])); 9026Add(KK2, p+Position(P, P[j]-P[i]) ); 9027fi; 9028 fi; 9029fi; 9030fi; fi; 9031 9032########### 9033 9034else #t[j]=-1 9035 9036if (P[i]+P[j] in P ) then #qui so che aplha+beta < phi_aplha+phi_beta quindi sono nel caso sicuro 9037if not (IsEmpty(To[Position(P, P[i])][Position(P,P[j])][2])=true) then 9038if (p+Position(P,K[j]+K[i]) > p+Position(P,P[j]+P[i])) then 9039 9040if (t[Position(P,P[j]+P[i] )] = 1) then 9041Add(KK1, (+1*To[Position(P, P[i])][Position(P,P[j])][2][1]-1*To[Position(P, K[i])][Position(P,K[j])][2][1])); 9042Add(KK1, p+Position(P, P[i]+P[j]) ); 9043Add(KK2, (+1*To[Position(P, P[i])][Position(P,P[j])][2][1]-1*To[Position(P, K[i])][Position(P,K[j])][2][1])); 9044Add(KK2, p+Position(P, K[i]+K[j]) ); 9045else 9046Add(KK1, (+1*To[Position(P, P[i])][Position(P,P[j])][2][1]+1*To[Position(P, K[i])][Position(P,K[j])][2][1])); 9047Add(KK1, p+Position(P, P[i]+P[j]) ); 9048Add(KK2, (+1*To[Position(P, P[i])][Position(P,P[j])][2][1]+1*To[Position(P, K[i])][Position(P,K[j])][2][1])); 9049Add(KK2, p+Position(P, K[i]+K[j]) ); 9050fi; 9051else 9052 if (p+Position(P,K[j]+K[i]) = p+Position(P,P[j]+P[i])) then 9053 9054if (t[Position(P,P[j]+P[i] )] = 1) then 9055Add(KK1, (+1*To[Position(P, P[i])][Position(P,P[j])][2][1]-1*To[Position(P, K[i])][Position(P,K[j])][2][1])); 9056Add(KK1, p+Position(P, P[i]+P[j]) ); 9057else 9058Add(KK2, (+1*To[Position(P, P[i])][Position(P,P[j])][2][1]+1*To[Position(P, K[i])][Position(P,K[j])][2][1])); 9059Add(KK2, p+Position(P, K[i]+K[j]) ); 9060fi; 9061 else #(p+Position(P,K[j]+K[i]) < p+Position(P,P[j]+P[i])) 9062 9063if (t[Position(P,P[j]+P[i] )] = 1) then 9064Add(KK1, (+1*To[Position(P, P[i])][Position(P,P[j])][2][1]-1*To[Position(P, K[i])][Position(P,K[j])][2][1])); 9065Add(KK1, p+Position(P, K[j]+K[i]) ); 9066Add(KK2, -1*(+1*To[Position(P, P[i])][Position(P,P[j])][2][1]-1*To[Position(P, K[i])][Position(P,K[j])][2][1])); 9067Add(KK2, p+Position(P, P[i]+P[j]) ); 9068else 9069Add(KK1, -1*(+1*To[Position(P, P[i])][Position(P,P[j])][2][1]+1*To[Position(P, K[i])][Position(P,K[j])][2][1])); 9070Add(KK1, p+Position(P, K[j]+K[i]) ); 9071Add(KK2, (+1*To[Position(P, P[i])][Position(P,P[j])][2][1]+1*To[Position(P, K[i])][Position(P,K[j])][2][1])); 9072Add(KK2, p+Position(P, P[i]+P[j]) ); 9073fi; 9074 fi; 9075fi; 9076fi; fi; 9077 9078####### 9079 9080if (P[j]-P[i] in P ) then 9081if not (IsEmpty(To[Position(P, P[i])][p+Position(P,P[j])][2])=true) then 9082if (p+Position(P,K[j]-K[i]) > p+Position(P,P[j]-P[i])) then 9083if (t[Position(P,P[j]-P[i] )] = 1) then 9084Add(KK1, (+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])); 9085Add(KK1, p+Position(P, P[j]-P[i]) ); 9086Add(KK2, (+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])); 9087Add(KK2, p+Position(P, K[j]-K[i]) ); 9088else 9089Add(KK1, (+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])); 9090Add(KK1, p+Position(P, P[j]-P[i]) ); 9091Add(KK2, (+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])); 9092Add(KK2, p+Position(P, K[j]-K[i]) ); 9093fi; 9094else 9095 if (p+Position(P,K[j]-K[i]) = p+Position(P,P[j]-P[i])) then 9096 9097if (t[Position(P,P[j]-P[i] )] = 1) then 9098Add(KK1, (+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])); 9099Add(KK1, p+Position(P, P[j]-P[i]) ); 9100else 9101Add(KK2, (+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])); 9102Add(KK2, p+Position(P, K[j]-K[i]) ); 9103fi; 9104 else #(p+Position(P,K[j]+K[i]) < p+Position(P,P[j]+P[i])) 9105if (t[Position(P,P[j]-P[i] )] = 1) then 9106Add(KK1, (+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])); 9107Add(KK1, p+Position(P, K[j]-K[i]) ); 9108Add(KK2, -1*(+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])); 9109Add(KK2, p+Position(P, P[j]-P[i]) ); 9110else 9111Add(KK1, -1*(+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])); 9112Add(KK1, p+Position(P, K[j]-K[i]) ); 9113Add(KK2, (+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])); 9114Add(KK2, p+Position(P, P[j]-P[i]) ); 9115fi; 9116 fi; 9117fi; 9118fi; fi; 9119 9120#################### 9121 9122fi; 9123 9124else #t[i]=-1 9125if (t[j]=1) then 9126 9127if (P[i]+P[j] in P ) then #qui so che aplha+beta < phi_aplha+phi_beta quindi sono nel caso sicuro 9128if not (IsEmpty(To[Position(P, P[i])][Position(P,P[j])][2])=true) then 9129if (p+Position(P,K[j]+K[i]) > p+Position(P,P[j]+P[i])) then 9130 9131if (t[Position(P,P[j]+P[i] )] = 1) then 9132Add(KK1, (+1*To[Position(P, P[i])][Position(P,P[j])][2][1]-1*To[Position(P, K[i])][Position(P,K[j])][2][1])); 9133Add(KK1, p+Position(P, K[j]+K[i]) ); 9134Add(KK2, -1*(+1*To[Position(P, P[i])][Position(P,P[j])][2][1]-1*To[Position(P, K[i])][Position(P,K[j])][2][1])); 9135Add(KK2, p+Position(P, P[i]+P[j]) ); 9136else 9137Add(KK1, (+1*To[Position(P, P[i])][Position(P,P[j])][2][1]+1*To[Position(P, K[i])][Position(P,K[j])][2][1])); 9138Add(KK1, p+Position(P, K[j]+K[i]) ); 9139Add(KK2, -1*(+1*To[Position(P, P[i])][Position(P,P[j])][2][1]+1*To[Position(P, K[i])][Position(P,K[j])][2][1])); 9140Add(KK2, p+Position(P, P[i]+P[j]) ); 9141fi; 9142else 9143 if (p+Position(P,K[j]+K[i]) = p+Position(P,P[j]+P[i])) then 9144if (t[Position(P,P[j]+P[i] )] = 1) then 9145Add(KK2, -1*(+1*To[Position(P, P[i])][Position(P,P[j])][2][1]-1*To[Position(P, K[i])][Position(P,K[j])][2][1])); 9146Add(KK2, p+Position(P, P[i]+P[j]) ); 9147else 9148Add(KK1, (+1*To[Position(P, P[i])][Position(P,P[j])][2][1]+1*To[Position(P, K[i])][Position(P,K[j])][2][1])); 9149Add(KK1, p+Position(P, K[j]+K[i]) ); 9150fi; 9151 else #(p+Position(P,K[j]+K[i]) < p+Position(P,P[j]+P[i])) 9152if (t[Position(P,P[j]+P[i] )] = 1) then 9153Add(KK1, -1*(+1*To[Position(P, P[i])][Position(P,P[j])][2][1]-1*To[Position(P, K[i])][Position(P,K[j])][2][1])); 9154Add(KK1, p+Position(P, K[j]+K[i]) ); 9155Add(KK2, -1*(+1*To[Position(P, P[i])][Position(P,P[j])][2][1]-1*To[Position(P, K[i])][Position(P,K[j])][2][1])); 9156Add(KK2, p+Position(P, P[i]+P[j]) ); 9157else 9158Add(KK1, (+1*To[Position(P, P[i])][Position(P,P[j])][2][1]+1*To[Position(P, K[i])][Position(P,K[j])][2][1])); 9159Add(KK1, p+Position(P, P[i]+P[j]) ); 9160Add(KK2, +1*(+1*To[Position(P, P[i])][Position(P,P[j])][2][1]+1*To[Position(P, K[i])][Position(P,K[j])][2][1])); 9161Add(KK2, p+Position(P, K[j]+K[i]) ); 9162fi; 9163 fi; 9164fi; 9165fi; fi; 9166 9167############ 9168 9169if (P[j]-P[i] in P ) then 9170if not (IsEmpty(To[Position(P, P[i])][p+Position(P,P[j])][2])=true) then 9171if (p+Position(P,K[j]-K[i]) > p+Position(P,P[j]-P[i])) then 9172 9173if (t[Position(P,P[j]-P[i] )] = 1) then 9174Add(KK1, (+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])); 9175Add(KK1, p+Position(P, K[j]-K[i]) ); 9176Add(KK2, -1*(+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])); 9177Add(KK2, p+Position(P, P[j]-P[i]) ); 9178else 9179Add(KK1, (+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])); 9180Add(KK1, p+Position(P, K[j]-K[i]) ); 9181Add(KK2, -1*(+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])); 9182Add(KK2, p+Position(P, P[j]-P[i]) ); 9183fi; 9184else 9185 if (p+Position(P,K[j]-K[i]) = p+Position(P,P[j]-P[i])) then 9186 9187if (t[Position(P,P[j]-P[i] )] = 1) then 9188Add(KK2, -1*(+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])); 9189Add(KK2, p+Position(P, P[j]-P[i]) ); 9190else 9191Add(KK1, (+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])); 9192Add(KK1, p+Position(P, K[j]-K[i]) ); 9193fi; 9194 else #(p+Position(P,K[j]+K[i]) < p+Position(P,P[j]+P[i])) 9195if (t[Position(P,P[j]-P[i] )] = 1) then 9196Add(KK1, -1*(+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])); 9197Add(KK1, p+Position(P, P[j]-P[i]) ); 9198Add(KK2, -1*(+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])); 9199Add(KK2, p+Position(P, K[j]-K[i]) ); 9200else 9201Add(KK1, (+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])); 9202Add(KK1, p+Position(P, P[j]-P[i]) ); 9203Add(KK2, +1*(+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])); 9204Add(KK2, p+Position(P, K[j]-K[i]) ); 9205fi; 9206 fi; 9207fi; 9208fi; fi; 9209 9210else 9211 9212if (P[i]+P[j] in P ) then #qui so che aplha+beta < phi_aplha+phi_beta quindi sono nel caso sicuro 9213if not (IsEmpty(To[Position(P, P[i])][Position(P,P[j])][2])=true) then 9214if (p+Position(P,K[j]+K[i]) > p+Position(P,P[j]+P[i])) then 9215 9216if (t[Position(P,P[j]+P[i] )] = 1) then 9217Add(KK1, (+1*To[Position(P, P[i])][Position(P,P[j])][2][1]+1*To[Position(P, K[i])][Position(P,K[j])][2][1])); 9218Add(KK1, p+Position(P, K[i]+K[j]) ); 9219Add(KK2, -1*(+1*To[Position(P, P[i])][Position(P,P[j])][2][1]+1*To[Position(P, K[i])][Position(P,K[j])][2][1])); 9220Add(KK2, p+Position(P, P[j]+P[i]) ); 9221else 9222Add(KK1, (+1*To[Position(P, P[i])][Position(P,P[j])][2][1]-1*To[Position(P, K[i])][Position(P,K[j])][2][1])); 9223Add(KK1, p+Position(P, K[i]+K[j]) ); 9224Add(KK2, -1*(+1*To[Position(P, P[i])][Position(P,P[j])][2][1]-1*To[Position(P, K[i])][Position(P,K[j])][2][1])); 9225Add(KK2, p+Position(P, P[j]+P[i]) ); 9226fi; 9227else 9228 if (p+Position(P,K[j]+K[i]) = p+Position(P,P[j]+P[i])) then 9229if (t[Position(P,P[j]+P[i] )] = 1) then 9230Add(KK2, -1*(+1*To[Position(P, P[i])][Position(P,P[j])][2][1]+1*To[Position(P, K[i])][Position(P,K[j])][2][1])); 9231Add(KK2, p+Position(P, P[j]+P[i]) ); 9232else 9233Add(KK1, (+1*To[Position(P, P[i])][Position(P,P[j])][2][1]-1*To[Position(P, K[i])][Position(P,K[j])][2][1])); 9234Add(KK1, p+Position(P, K[i]+K[j]) ); 9235fi; 9236 else #(p+Position(P,K[j]+K[i]) < p+Position(P,P[j]+P[i])) 9237if (t[Position(P,P[j]+P[i] )] = 1) then 9238Add(KK1, -1*(+1*To[Position(P, P[i])][Position(P,P[j])][2][1]+1*To[Position(P, K[i])][Position(P,K[j])][2][1])); 9239Add(KK1, p+Position(P, P[j]+P[i]) ); 9240Add(KK2, -1*(+1*To[Position(P, P[i])][Position(P,P[j])][2][1]+1*To[Position(P, K[i])][Position(P,K[j])][2][1])); 9241Add(KK2, p+Position(P, K[i]+K[j]) ); 9242else 9243Add(KK1, (+1*To[Position(P, P[i])][Position(P,P[j])][2][1]-1*To[Position(P, K[i])][Position(P,K[j])][2][1])); 9244Add(KK1, p+Position(P, P[j]+P[i]) ); 9245Add(KK2, +1*(+1*To[Position(P, P[i])][Position(P,P[j])][2][1]-1*To[Position(P, K[i])][Position(P,K[j])][2][1])); 9246Add(KK2, p+Position(P, K[i]+K[j]) ); 9247fi; 9248 fi; 9249fi; 9250fi; fi; 9251 9252############### 9253 9254if (P[j]-P[i] in P ) then 9255if not (IsEmpty(To[Position(P, P[i])][p+Position(P,P[j])][2])=true) then 9256if (p+Position(P,K[j]-K[i]) > p+Position(P,P[j]-P[i])) then 9257 9258if (t[Position(P,P[j]-P[i] )] = 1) then 9259Add(KK1, (+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])); 9260Add(KK1, p+Position(P, K[j]-K[i]) ); 9261Add(KK2, -1*(+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])); 9262Add(KK2, p+Position(P, P[j]-P[i]) ); 9263else 9264Add(KK1, (+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])); 9265Add(KK1, p+Position(P, K[j]-K[i]) ); 9266Add(KK2, -1*(+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])); 9267Add(KK2, p+Position(P, P[j]-P[i]) ); 9268fi; 9269else 9270 if (p+Position(P,K[j]-K[i]) = p+Position(P,P[j]-P[i])) then 9271if (t[Position(P,P[j]-P[i] )] = 1) then 9272Add(KK2, -1*(+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])); 9273Add(KK2, p+Position(P, P[j]-P[i]) ); 9274else 9275Add(KK1, (+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])); 9276Add(KK1, p+Position(P, K[j]-K[i]) ); 9277fi; 9278 else #(p+Position(P,K[j]+K[i]) < p+Position(P,P[j]+P[i])) 9279if (t[Position(P,P[j]-P[i] )] = 1) then 9280Add(KK1, -1*(+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])); 9281Add(KK1, p+Position(P, P[j]-P[i]) ); 9282Add(KK2, -1*(+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])); 9283Add(KK2, p+Position(P, K[j]-K[i]) ); 9284else 9285Add(KK1, (+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])); 9286Add(KK1, p+Position(P, P[j]-P[i]) ); 9287Add(KK2, +1*(+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])); 9288Add(KK2, p+Position(P, K[j]-K[i]) ); 9289fi; 9290 fi; 9291fi; 9292fi; fi; 9293 9294fi; 9295fi; 9296 9297SetEntrySCTable( TT, i, p+j , KK1); 9298SetEntrySCTable( TT, i, p+Position(P,K[j]), KK2); 9299 9300########################################### 9301 9302 else 9303 if ( p+Position(P, K[j]) = p+Position(P,P[j]) ) then #beta = phi_beta 9304 9305KK1:=[]; 9306 9307if (t[i]=1) then 9308if (t[j]=1) then 9309 9310if (P[i]+P[j] in P ) then #qui so che aplha+beta < phi_aplha + phi_beta quindi sono nel caso sicuro 9311if not (IsEmpty(To[Position(P, P[i])][Position(P,P[j])][2])=true) then 9312if (t[Position(P,P[j]+P[i])]=1) then 9313Add(KK1, +2*To[Position(P, P[i])][Position(P,P[j])][2][1]); 9314Add(KK1, p+Position(P, P[i]+P[j]) ); 9315fi; fi; fi; 9316 9317if (P[j]-P[i] in P ) then 9318if not (IsEmpty(To[Position(P, P[i])][p+Position(P,P[j])][2])=true) then 9319if (t[Position(P,P[j]-P[i])]=1) then 9320if (p+Position(P,K[j]-K[i]) > p+Position(P,P[j]-P[i])) then 9321Add(KK1, +2*To[Position(P, P[i])][p+Position(P,P[j])][2][1]); 9322Add(KK1, p+Position(P, P[j]-P[i]) ); 9323else 9324 if (p+Position(P,K[j]-K[i]) = p+Position(P, P[j]-P[i])) then 9325Add(KK1, +2*To[Position(P, P[i])][p+Position(P,P[j])][2][1]); 9326Add(KK1, p+Position(P, P[j]-P[i]) ); 9327 else 9328Add(KK1, +2*To[Position(P, P[i])][p+Position(P,P[j])][2][1]); 9329Add(KK1, p+Position(P, K[j]-K[i]) ); 9330 fi; 9331fi; fi; fi; fi; 9332 9333SetEntrySCTable( TT, i, p+j , KK1); 9334 9335else 9336 9337if (P[i]+P[j] in P ) then #qui so che aplha+beta < phi_aplha+phi_beta quindi sono nel caso sicuro 9338if not (IsEmpty(To[Position(P, P[i])][Position(P,P[j])][2])=true) then 9339if (t[Position(P,P[j]+P[i])]=-1) then 9340Add(KK1, +2*To[Position(P, P[i])][Position(P,P[j])][2][1]); 9341Add(KK1, p+Position(P, P[i]+P[j]) ); 9342fi; fi; fi; 9343 9344if (P[j]-P[i] in P ) then 9345if not (IsEmpty(To[Position(P, P[i])][p+Position(P,P[j])][2])=true) then 9346if (t[Position(P,P[j]-P[i])]=-1) then 9347if (p+Position(P,K[j]-K[i]) > p+Position(P,P[j]-P[i])) then 9348Add(KK1, +2*To[Position(P, P[i])][p+Position(P,P[j])][2][1]); 9349Add(KK1, p+Position(P, P[j]-P[i]) ); 9350else 9351 if (p+Position(P,K[j]-K[i]) = p+Position(P, P[j]-P[i])) then 9352Add(KK1, +2*To[Position(P, P[i])][p+Position(P,P[j])][2][1]); 9353Add(KK1, p+Position(P, P[j]-P[i]) ); 9354 else 9355Add(KK1, +2*To[Position(P, P[i])][p+Position(P,P[j])][2][1]); 9356Add(KK1, p+Position(P, K[j]-K[i]) ); 9357 fi; 9358fi; fi; fi; fi; 9359SetEntrySCTable( TT, i, p+j , KK1); 9360fi; 9361 9362else 9363if (t[j]=1) then 9364 9365if (P[i]+P[j] in P ) then #qui so che aplha+beta < phi_aplha+phi_beta quindi sono nel caso sicuro 9366if not (IsEmpty(To[Position(P, P[i])][Position(P,P[j])][2])=true) then 9367if (t[Position(P,P[j]+P[i])]=-1) then 9368Add(KK1, +2*To[Position(P, P[i])][Position(P,P[j])][2][1]); 9369Add(KK1, p+Position(P, P[i]+P[j]) ); 9370fi; fi; fi; 9371 9372if (P[j]-P[i] in P ) then 9373if not (IsEmpty(To[Position(P, P[i])][p+Position(P,P[j])][2])=true) then 9374if (t[Position(P,P[j]-P[i])]=-1) then 9375if (p+Position(P,K[j]-K[i]) > p+Position(P,P[j]-P[i])) then 9376Add(KK1, +2*To[Position(P, P[i])][p+Position(P,P[j])][2][1]); 9377Add(KK1, p+Position(P, P[j]-P[i]) ); 9378else 9379 if (p+Position(P,K[j]-K[i]) = p+Position(P, P[j]-P[i])) then 9380Add(KK1, +2*To[Position(P, P[i])][p+Position(P,P[j])][2][1]); 9381Add(KK1, p+Position(P, P[j]-P[i]) ); 9382 else 9383Add(KK1, +2*To[Position(P, P[i])][p+Position(P,P[j])][2][1]); 9384Add(KK1, p+Position(P, K[j]-K[i]) ); 9385 fi; 9386fi; fi; fi; fi; 9387 9388SetEntrySCTable( TT, i, p+j , KK1); 9389 9390else 9391 9392if (P[i]+P[j] in P ) then #qui so che aplha+beta < phi_aplha+phi_beta quindi sono nel caso sicuro 9393if not (IsEmpty(To[Position(P, P[i])][Position(P,P[j])][2])=true) then 9394if (t[Position(P,P[j]+P[i])]=1) then 9395Add(KK1, -2*To[Position(P, P[i])][Position(P,P[j])][2][1]); 9396Add(KK1, p+Position(P, P[i]+P[j]) ); 9397fi; fi; fi; 9398 9399if (P[j]-P[i] in P ) then 9400if not (IsEmpty(To[Position(P, P[i])][p+Position(P,P[j])][2])=true) then 9401if (t[Position(P,P[j]-P[i])]=1) then 9402if (p+Position(P,K[j]-K[i]) > p+Position(P,P[j]-P[i])) then 9403Add(KK1, -2*To[Position(P, P[i])][p+Position(P,P[j])][2][1]); 9404Add(KK1, p+Position(P, P[j]-P[i]) ); 9405else 9406 if (p+Position(P,K[j]-K[i]) = p+Position(P, P[j]-P[i])) then 9407Add(KK1, -2*To[Position(P, P[i])][p+Position(P,P[j])][2][1]); 9408Add(KK1, p+Position(P, P[j]-P[i]) ); 9409 else 9410Add(KK1, -2*To[Position(P, P[i])][p+Position(P,P[j])][2][1]); 9411Add(KK1, p+Position(P, K[j]-K[i]) ); 9412 fi; 9413fi; fi; fi; fi; 9414 9415SetEntrySCTable( TT, i, p+j , KK1); 9416 9417fi; 9418fi; fi; fi; 9419fi; fi; 9420od; od; 9421 9422############### 9423###########à 9424########### 9425for i in [2..p] do 9426 for j in [1..i-1] do 9427 if ( Position(P, K[j]) > Position(P, P[i]) ) then 9428 if ( Position(P, K[i]) > Position(P,P[i]) ) then #alpha< phi_alpha (ragiono con gli X) 9429 9430KK2:=[]; # i p+jbar 9431KK4:=[]; # ibar p+jbar 9432 9433if (t[i]=1) then 9434if (t[j]=1) then 9435 9436if (P[i]+P[j] in P ) then #qui so che aplha+beta < phi_aplha+phi_beta quindi sono nel caso sicuro 9437if not (IsEmpty(To[Position(P, P[i])][Position(P,P[j])][2])=true) then 9438if (p+Position(P,K[j]+K[i]) > p+Position(P,P[j]+P[i])) then 9439 9440if (t[Position(P,P[j]+P[i] )] = 1) then 9441Add(KK2, (+1*To[Position(P, P[i])][Position(P,P[j])][2][1]+1*To[Position(P, K[i])][Position(P,K[j])][2][1])/2); 9442Add(KK2, p+Position(P, K[i]+K[j]) ); 9443Add(KK4, -1*(+1*To[Position(P, P[i])][Position(P,P[j])][2][1]+1*To[Position(P, K[i])][Position(P,K[j])][2][1])/2); 9444Add(KK4, p+Position(P, P[i]+P[j]) ); 9445else 9446Add(KK2, (+1*To[Position(P, P[i])][Position(P,P[j])][2][1]-1*To[Position(P, K[i])][Position(P,K[j])][2][1])/2); 9447Add(KK2, p+Position(P, K[i]+K[j]) ); 9448Add(KK4, -1*(+1*To[Position(P, P[i])][Position(P,P[j])][2][1]-1*To[Position(P, K[i])][Position(P,K[j])][2][1])/2); 9449Add(KK4, p+Position(P, P[i]+P[j]) ); 9450fi; 9451else 9452 if (p+Position(P,K[j]+K[i]) = p+Position(P,P[j]+P[i])) then 9453 9454if (t[Position(P,P[j]+P[i] )] = 1) then 9455Add(KK4, -1*(+1*To[Position(P, P[i])][Position(P,P[j])][2][1]+1*To[Position(P, K[i])][Position(P,K[j])][2][1])/2); 9456Add(KK4, p+Position(P, P[i]+P[j]) ); 9457else 9458Add(KK2, (+1*To[Position(P, P[i])][Position(P,P[j])][2][1]-1*To[Position(P, K[i])][Position(P,K[j])][2][1])/2); 9459Add(KK2, p+Position(P, K[i]+K[j]) ); 9460fi; 9461 else #(p+Position(P,K[j]+K[i]) < p+Position(P,P[j]+P[i])) 9462 9463if (t[Position(P,P[j]+P[i] )] = 1) then 9464Add(KK2, -1*(+1*To[Position(P, P[i])][Position(P,P[j])][2][1]+1*To[Position(P, K[i])][Position(P,K[j])][2][1])/2); 9465Add(KK2, p+Position(P, P[i]+P[j]) ); 9466Add(KK4, -1*(+1*To[Position(P, P[i])][Position(P,P[j])][2][1]+1*To[Position(P, K[i])][Position(P,K[j])][2][1])/2); 9467Add(KK4, p+Position(P,K[j]+K[i]) ); 9468else 9469Add(KK2, (+1*To[Position(P, P[i])][Position(P,P[j])][2][1]-1*To[Position(P, K[i])][Position(P,K[j])][2][1])/2); 9470Add(KK2, p+Position(P, P[i]+P[j]) ); 9471Add(KK4, +1*(+1*To[Position(P, P[i])][Position(P,P[j])][2][1]-1*To[Position(P, K[i])][Position(P,K[j])][2][1])/2); 9472Add(KK4, p+Position(P, K[j]+K[i]) ); 9473fi; 9474 fi; 9475fi; 9476fi; fi; 9477 9478############### 9479 9480if (P[j]-P[i] in P ) then 9481if not (IsEmpty(To[Position(P, P[i])][p+Position(P,P[j])][2])=true) then 9482if (p+Position(P,K[j]-K[i]) > p+Position(P,P[j]-P[i])) then 9483 9484if (t[Position(P,P[j]-P[i] )] = 1) then 9485Add(KK2, (+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])/2); 9486Add(KK2, p+Position(P, K[j]-K[i]) ); 9487Add(KK4, -1*(+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])/2); 9488Add(KK4, p+Position(P, P[j]-P[i]) ); 9489else 9490Add(KK2, (+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])/2); 9491Add(KK2, p+Position(P, K[j]-K[i]) ); 9492Add(KK4, -1*(+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])/2); 9493Add(KK4, p+Position(P, P[j]-P[i]) ); 9494fi; 9495 9496else 9497 if (p+Position(P,K[j]-K[i]) = p+Position(P,P[j]-P[i])) then 9498 9499if (t[Position(P,P[j]-P[i] )] = 1) then 9500Add(KK4, -1*(+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])/2); 9501Add(KK4, p+Position(P, P[j]-P[i]) ); 9502else 9503Add(KK2, (+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])/2); 9504Add(KK2, p+Position(P, K[j]-K[i]) ); 9505fi; 9506 else #(p+Position(P,K[j]+K[i]) < p+Position(P,P[j]+P[i])) 9507 9508if (t[Position(P,P[j]-P[i] )] = 1) then 9509Add(KK2, -1*(+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])/2); 9510Add(KK2, p+Position(P, P[j]-P[i]) ); 9511Add(KK4, -1*(+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])/2); 9512Add(KK4, p+Position(P, K[j]-K[i]) ); 9513else 9514Add(KK2, (+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])/2); 9515Add(KK2, p+Position(P, P[j]-P[i]) ); 9516Add(KK4, +1*(+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])/2); 9517Add(KK4, p+Position(P, K[j]-K[i]) ); 9518fi; 9519 fi; 9520fi; 9521fi; fi; 9522 9523############# 9524 9525if (P[i]+K[j] in P ) then 9526if not (IsEmpty(To[Position(P, P[i])][Position(P,K[j])][2])=true) then 9527if (p+Position(P,K[i]+P[j]) > p+Position(P,P[i]+K[j])) then 9528 9529if (t[Position(P,P[i]+K[j] )] = 1) then 9530Add(KK2, (-1*To[Position(P, P[i])][Position(P,K[j])][2][1]-1*To[Position(P, K[i])][Position(P,P[j])][2][1])/2); 9531Add(KK2, p+Position(P, K[i]+P[j]) ); 9532Add(KK4, -1*(-1*To[Position(P, P[i])][Position(P,K[j])][2][1]-1*To[Position(P, K[i])][Position(P,P[j])][2][1])/2); 9533Add(KK4, p+Position(P, P[i]+K[j]) ); 9534else 9535Add(KK2, (-1*To[Position(P, P[i])][Position(P,K[j])][2][1]+1*To[Position(P, K[i])][Position(P,P[j])][2][1])/2); 9536Add(KK2, p+Position(P, K[i]+P[j]) ); 9537Add(KK4, -1*(-1*To[Position(P, P[i])][Position(P,K[j])][2][1]+1*To[Position(P, K[i])][Position(P,P[j])][2][1])/2); 9538Add(KK4, p+Position(P, P[i]+K[j]) ); 9539fi; 9540 9541else 9542 if (p+Position(P,K[i]+P[j]) = p+Position(P,P[i]+K[j])) then 9543 9544if (t[Position(P,K[j]+P[i] )] = 1) then 9545Add(KK4, -1*(-1*To[Position(P, P[i])][Position(P,K[j])][2][1]-1*To[Position(P, K[i])][Position(P,P[j])][2][1])/2); 9546Add(KK4, p+Position(P, P[i]+K[j]) ); 9547else 9548Add(KK2, (-1*To[Position(P, P[i])][Position(P,K[j])][2][1]+1*To[Position(P, K[i])][Position(P,P[j])][2][1])/2); 9549Add(KK2, p+Position(P, K[i]+P[j]) ); 9550fi; 9551 else #(p+Position(P,K[j]+K[i]) < p+Position(P,P[j]+P[i])) 9552 9553if (t[Position(P,P[i]+K[j] )] = 1) then 9554Add(KK2, -1*(-1*To[Position(P, P[i])][Position(P,K[j])][2][1]-1*To[Position(P, K[i])][Position(P,P[j])][2][1])/2); 9555Add(KK2, p+Position(P, P[i]+K[j]) ); 9556Add(KK4, -1*(-1*To[Position(P, P[i])][Position(P,K[j])][2][1]-1*To[Position(P, K[i])][Position(P,P[j])][2][1])/2); 9557Add(KK4, p+Position(P, K[i]+P[j]) ); 9558else 9559Add(KK2, (-1*To[Position(P, P[i])][Position(P,K[j])][2][1]+1*To[Position(P, K[i])][Position(P,P[j])][2][1])/2); 9560Add(KK2, p+Position(P, P[i]+K[j]) ); 9561Add(KK4, +1*(-1*To[Position(P, P[i])][Position(P,K[j])][2][1]+1*To[Position(P, K[i])][Position(P,P[j])][2][1])/2); 9562Add(KK4, p+Position(P, K[i]+P[j]) ); 9563fi; 9564 fi; 9565fi; 9566fi; fi; 9567 9568########## 9569 9570if (K[j]-P[i] in P ) then 9571if not (IsEmpty(To[Position(P, P[i])][p+Position(P,K[j])][2])=true) then 9572if (p+Position(P,P[j]-K[i]) > p+Position(P,K[j]-P[i])) then 9573 9574if (t[Position(P,K[j]-P[i] )] = 1) then 9575Add(KK2, (-1*To[Position(P, P[i])][p+Position(P,K[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,P[j])][2][1])/2); 9576Add(KK2, p+Position(P, P[j]-K[i]) ); 9577Add(KK4, -1*(-1*To[Position(P, P[i])][p+Position(P,K[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,P[j])][2][1])/2); 9578Add(KK4, p+Position(P, K[j]-P[i]) ); 9579else 9580Add(KK2, (-1*To[Position(P, P[i])][p+Position(P,K[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,P[j])][2][1])/2); 9581Add(KK2, p+Position(P, P[j]-K[i]) ); 9582Add(KK4, -1*(-1*To[Position(P, P[i])][p+Position(P,K[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,P[j])][2][1])/2); 9583Add(KK4, p+Position(P, K[j]-P[i]) ); 9584fi; 9585else 9586 if (p+Position(P,P[j]-K[i]) = p+Position(P,K[j]-P[i])) then 9587 9588if (t[Position(P,P[j]-K[i] )] = 1) then 9589Add(KK4, -1*(-1*To[Position(P, P[i])][p+Position(P,K[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,P[j])][2][1])/2); 9590Add(KK4, p+Position(P, K[j]-P[i]) ); 9591else 9592Add(KK2, (-1*To[Position(P, P[i])][p+Position(P,K[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,P[j])][2][1])/2); 9593Add(KK2, p+Position(P, P[j]-K[i]) ); 9594fi; 9595 else #(p+Position(P,K[j]+K[i]) < p+Position(P,P[j]+P[i])) 9596 9597if (t[Position(P,K[j]-P[i] )] = 1) then 9598Add(KK2, -1*(-1*To[Position(P, P[i])][p+Position(P,K[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,P[j])][2][1])/2); 9599Add(KK2, p+Position(P, K[j]-P[i]) ); 9600Add(KK4, -1*(-1*To[Position(P, P[i])][p+Position(P,K[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,P[j])][2][1])/2); 9601Add(KK4, p+Position(P, P[j]-K[i]) ); 9602else 9603Add(KK2, (-1*To[Position(P, P[i])][p+Position(P,K[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,P[j])][2][1])/2); 9604Add(KK2, p+Position(P, K[j]-P[i]) ); 9605Add(KK4, +1*(-1*To[Position(P, P[i])][p+Position(P,K[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,P[j])][2][1])/2); 9606Add(KK4, p+Position(P, P[j]-K[i]) ); 9607fi; 9608 fi; 9609fi; 9610fi; fi; 9611 9612################## 9613else # ovvero t[j]=-1 9614######################### 9615 9616if (P[i]+P[j] in P ) then #qui so che aplha+beta < phi_aplha+phi_beta quindi sono nel caso sicuro 9617if not (IsEmpty(To[Position(P, P[i])][Position(P,P[j])][2])=true) then 9618if (p+Position(P,K[j]+K[i]) > p+Position(P,P[j]+P[i])) then 9619 9620if (t[Position(P,P[j]+P[i] )] = 1) then 9621Add(KK2, (+1*To[Position(P, P[i])][Position(P,P[j])][2][1]-1*To[Position(P, K[i])][Position(P,K[j])][2][1])/2); 9622Add(KK2, p+Position(P, K[i]+K[j]) ); 9623Add(KK4, -1*(+1*To[Position(P, P[i])][Position(P,P[j])][2][1]-1*To[Position(P, K[i])][Position(P,K[j])][2][1])/2); 9624Add(KK4, p+Position(P, P[i]+P[j]) ); 9625else 9626Add(KK2, (+1*To[Position(P, P[i])][Position(P,P[j])][2][1]+1*To[Position(P, K[i])][Position(P,K[j])][2][1])/2); 9627Add(KK2, p+Position(P, K[i]+K[j]) ); 9628Add(KK4, -1*(+1*To[Position(P, P[i])][Position(P,P[j])][2][1]+1*To[Position(P, K[i])][Position(P,K[j])][2][1])/2); 9629Add(KK4, p+Position(P, P[i]+P[j]) ); 9630fi; 9631else 9632 if (p+Position(P,K[j]+K[i]) = p+Position(P,P[j]+P[i])) then 9633if (t[Position(P,P[j]+P[i] )] = 1) then 9634Add(KK4, -1*(+1*To[Position(P, P[i])][Position(P,P[j])][2][1]-1*To[Position(P, K[i])][Position(P,K[j])][2][1])/2); 9635Add(KK4, p+Position(P, P[i]+P[j]) ); 9636else 9637Add(KK2, (+1*To[Position(P, P[i])][Position(P,P[j])][2][1]+1*To[Position(P, K[i])][Position(P,K[j])][2][1])/2); 9638Add(KK2, p+Position(P, K[i]+K[j]) ); 9639fi; 9640 else #(p+Position(P,K[j]+K[i]) < p+Position(P,P[j]+P[i])) 9641 9642if (t[Position(P,P[j]+P[i] )] = 1) then 9643Add(KK2, -1*(+1*To[Position(P, P[i])][Position(P,P[j])][2][1]-1*To[Position(P, K[i])][Position(P,K[j])][2][1])/2); 9644Add(KK2, p+Position(P, P[i]+P[j]) ); 9645Add(KK4, -1*(+1*To[Position(P, P[i])][Position(P,P[j])][2][1]-1*To[Position(P, K[i])][Position(P,K[j])][2][1])/2); 9646Add(KK4, p+Position(P,K[j]+K[i]) ); 9647else 9648Add(KK2, (+1*To[Position(P, P[i])][Position(P,P[j])][2][1]+1*To[Position(P, K[i])][Position(P,K[j])][2][1])/2); 9649Add(KK2, p+Position(P, P[i]+P[j]) ); 9650Add(KK4, +1*(+1*To[Position(P, P[i])][Position(P,P[j])][2][1]+1*To[Position(P, K[i])][Position(P,K[j])][2][1])/2); 9651Add(KK4, p+Position(P, K[j]+K[i]) ); 9652fi; 9653 fi; 9654fi; 9655fi; fi; 9656 9657############### 9658 9659if (P[j]-P[i] in P ) then 9660if not (IsEmpty(To[Position(P, P[i])][p+Position(P,P[j])][2])=true) then 9661if (p+Position(P,K[j]-K[i]) > p+Position(P,P[j]-P[i])) then 9662 9663if (t[Position(P,P[j]-P[i] )] = 1) then 9664Add(KK2, (+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])/2); 9665Add(KK2, p+Position(P, K[j]-K[i]) ); 9666Add(KK4, -1*(+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])/2); 9667Add(KK4, p+Position(P, P[j]-P[i]) ); 9668else 9669Add(KK2, (+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])/2); 9670Add(KK2, p+Position(P, K[j]-K[i]) ); 9671Add(KK4, -1*(+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])/2); 9672Add(KK4, p+Position(P, P[j]-P[i]) ); 9673fi; 9674else 9675 if (p+Position(P,K[j]-K[i]) = p+Position(P,P[j]-P[i])) then 9676if (t[Position(P,P[j]-P[i] )] = 1) then 9677Add(KK4, -1*(+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])/2); 9678Add(KK4, p+Position(P, P[j]-P[i]) ); 9679else 9680Add(KK2, (+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])/2); 9681Add(KK2, p+Position(P, K[j]-K[i]) ); 9682fi; 9683 else #(p+Position(P,K[j]+K[i]) < p+Position(P,P[j]+P[i])) 9684 9685if (t[Position(P,P[j]-P[i] )] = 1) then 9686Add(KK2, -1*(+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])/2); 9687Add(KK2, p+Position(P, P[j]-P[i]) ); 9688Add(KK4, -1*(+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])/2); 9689Add(KK4, p+Position(P, K[j]-K[i]) ); 9690else 9691Add(KK2, (+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])/2); 9692Add(KK2, p+Position(P, P[j]-P[i]) ); 9693Add(KK4, +1*(+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])/2); 9694Add(KK4, p+Position(P, K[j]-K[i]) ); 9695fi; 9696 fi; 9697fi; 9698fi; fi; 9699 9700############# 9701 9702if (P[i]+K[j] in P ) then 9703if not (IsEmpty(To[Position(P, P[i])][Position(P,K[j])][2])=true) then 9704if (p+Position(P,K[i]+P[j]) > p+Position(P,P[i]+K[j])) then 9705 9706if (t[Position(P,P[i]+K[j] )] = 1) then 9707Add(KK2, (+1*To[Position(P, P[i])][Position(P,K[j])][2][1]-1*To[Position(P, K[i])][Position(P,P[j])][2][1])/2); 9708Add(KK2, p+Position(P, K[i]+P[j]) ); 9709Add(KK4, -1*(+1*To[Position(P, P[i])][Position(P,K[j])][2][1]-1*To[Position(P, K[i])][Position(P,P[j])][2][1])/2); 9710Add(KK4, p+Position(P, P[i]+K[j]) ); 9711else 9712Add(KK2, (+1*To[Position(P, P[i])][Position(P,K[j])][2][1]+1*To[Position(P, K[i])][Position(P,P[j])][2][1])/2); 9713Add(KK2, p+Position(P, K[i]+P[j]) ); 9714Add(KK4, -1*(+1*To[Position(P, P[i])][Position(P,K[j])][2][1]+1*To[Position(P, K[i])][Position(P,P[j])][2][1])/2); 9715Add(KK4, p+Position(P, P[i]+K[j]) ); 9716fi; 9717else 9718 if (p+Position(P,K[i]+P[j]) = p+Position(P,P[i]+K[j])) then 9719if (t[Position(P,K[j]+P[i] )] = 1) then 9720Add(KK4, -1*(+1*To[Position(P, P[i])][Position(P,K[j])][2][1]-1*To[Position(P, K[i])][Position(P,P[j])][2][1])/2); 9721Add(KK4, p+Position(P, P[i]+K[j]) ); 9722else 9723Add(KK2, (+1*To[Position(P, P[i])][Position(P,K[j])][2][1]+1*To[Position(P, K[i])][Position(P,P[j])][2][1])/2); 9724Add(KK2, p+Position(P, K[i]+P[j]) ); 9725fi; 9726 else #(p+Position(P,K[j]+K[i]) < p+Position(P,P[j]+P[i])) 9727 9728if (t[Position(P,P[i]+K[j] )] = 1) then 9729Add(KK2, -1*(+1*To[Position(P, P[i])][Position(P,K[j])][2][1]-1*To[Position(P, K[i])][Position(P,P[j])][2][1])/2); 9730Add(KK2, p+Position(P, P[i]+K[j]) ); 9731Add(KK4, -1*(+1*To[Position(P, P[i])][Position(P,K[j])][2][1]-1*To[Position(P, K[i])][Position(P,P[j])][2][1])/2); 9732Add(KK4, p+Position(P, K[i]+P[j]) ); 9733else 9734Add(KK2, (+1*To[Position(P, P[i])][Position(P,K[j])][2][1]+1*To[Position(P, K[i])][Position(P,P[j])][2][1])/2); 9735Add(KK2, p+Position(P, P[i]+K[j]) ); 9736Add(KK4, +1*(+1*To[Position(P, P[i])][Position(P,K[j])][2][1]+1*To[Position(P, K[i])][Position(P,P[j])][2][1])/2); 9737Add(KK4, p+Position(P, K[i]+P[j]) ); 9738fi; 9739 fi; 9740fi; 9741fi; fi; 9742 9743############# 9744 9745if (K[j]-P[i] in P ) then 9746if not (IsEmpty(To[Position(P, P[i])][p+Position(P,K[j])][2])=true) then 9747if (p+Position(P,P[j]-K[i]) > p+Position(P,K[j]-P[i])) then 9748 9749if (t[Position(P,K[j]-P[i] )] = 1) then 9750Add(KK2, (+1*To[Position(P, P[i])][p+Position(P,K[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,P[j])][2][1])/2); 9751Add(KK2, p+Position(P, P[j]-K[i]) ); 9752Add(KK4, -1*(+1*To[Position(P, P[i])][p+Position(P,K[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,P[j])][2][1])/2); 9753Add(KK4, p+Position(P, K[j]-P[i]) ); 9754else 9755Add(KK2, (+1*To[Position(P, P[i])][p+Position(P,K[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,P[j])][2][1])/2); 9756Add(KK2, p+Position(P, P[j]-K[i]) ); 9757Add(KK4, -1*(+1*To[Position(P, P[i])][p+Position(P,K[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,P[j])][2][1])/2); 9758Add(KK4, p+Position(P, K[j]-P[i]) ); 9759fi; 9760else 9761 if (p+Position(P,P[j]-K[i]) = p+Position(P,K[j]-P[i])) then 9762if (t[Position(P,K[j]-P[i] )] = 1) then 9763Add(KK4, -1*(+1*To[Position(P, P[i])][p+Position(P,K[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,P[j])][2][1])/2); 9764Add(KK4, p+Position(P, K[j]-P[i]) ); 9765else 9766Add(KK2, (+1*To[Position(P, P[i])][p+Position(P,K[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,P[j])][2][1])/2); 9767Add(KK2, p+Position(P, P[j]-K[i]) ); 9768fi; 9769 else #(p+Position(P,K[j]+K[i]) < p+Position(P,P[j]+P[i])) 9770if (t[Position(P,K[j]-P[i] )] = 1) then 9771Add(KK2, -1*(+1*To[Position(P, P[i])][p+Position(P,K[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,P[j])][2][1])/2); 9772Add(KK2, p+Position(P, K[j]-P[i]) ); 9773Add(KK4, -1*(+1*To[Position(P, P[i])][p+Position(P,K[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,P[j])][2][1])/2); 9774Add(KK4, p+Position(P, P[j]-K[i]) ); 9775else 9776Add(KK2, (+1*To[Position(P, P[i])][p+Position(P,K[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,P[j])][2][1])/2); 9777Add(KK2, p+Position(P, K[j]-P[i]) ); 9778Add(KK4, +1*(+1*To[Position(P, P[i])][p+Position(P,K[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,P[j])][2][1])/2); 9779Add(KK4, p+Position(P, P[j]-K[i]) ); 9780fi; 9781 fi; 9782fi; 9783fi; fi; 9784 9785fi; 9786 9787########################à 9788else #t[i]=-1 9789if (t[j]=1) then 9790############### 9791 9792if (P[i]+P[j] in P ) then #qui so che aplha+beta < phi_aplha+phi_beta quindi sono nel caso sicuro 9793if not (IsEmpty(To[Position(P, P[i])][Position(P,P[j])][2])=true) then 9794if (p+Position(P,K[j]+K[i]) > p+Position(P,P[j]+P[i])) then 9795if (t[Position(P,P[j]+P[i] )] = 1) then 9796Add(KK2, (+1*To[Position(P, P[i])][Position(P,P[j])][2][1]-1*To[Position(P, K[i])][Position(P,K[j])][2][1])/2); 9797Add(KK2, p+Position(P, K[i]+K[j]) ); 9798Add(KK4, -1*(+1*To[Position(P, P[i])][Position(P,P[j])][2][1]-1*To[Position(P, K[i])][Position(P,K[j])][2][1])/2); 9799Add(KK4, p+Position(P, P[i]+P[j]) ); 9800else 9801Add(KK2, (+1*To[Position(P, P[i])][Position(P,P[j])][2][1]+1*To[Position(P, K[i])][Position(P,K[j])][2][1])/2); 9802Add(KK2, p+Position(P, K[i]+K[j]) ); 9803Add(KK4, (+1*To[Position(P, P[i])][Position(P,P[j])][2][1]+1*To[Position(P, K[i])][Position(P,K[j])][2][1])/2); 9804Add(KK4, p+Position(P, P[i]+P[j]) ); 9805fi; 9806else 9807 if (p+Position(P,K[j]+K[i]) = p+Position(P,P[j]+P[i])) then 9808if (t[Position(P,P[j]+P[i] )] = 1) then 9809Add(KK4, -1*(+1*To[Position(P, P[i])][Position(P,P[j])][2][1]-1*To[Position(P, K[i])][Position(P,K[j])][2][1])/2); 9810Add(KK4, p+Position(P, P[i]+P[j]) ); 9811else 9812Add(KK2, (+1*To[Position(P, P[i])][Position(P,P[j])][2][1]+1*To[Position(P, K[i])][Position(P,K[j])][2][1])/2); 9813Add(KK2, p+Position(P, K[i]+K[j]) ); 9814fi; 9815 else #(p+Position(P,K[j]+K[i]) < p+Position(P,P[j]+P[i])) 9816if (t[Position(P,P[j]+P[i] )] = 1) then 9817Add(KK2, -1*(+1*To[Position(P, P[i])][Position(P,P[j])][2][1]-1*To[Position(P, K[i])][Position(P,K[j])][2][1])/2); 9818Add(KK2, p+Position(P, P[i]+P[j]) ); 9819Add(KK4, -1*(+1*To[Position(P, P[i])][Position(P,P[j])][2][1]-1*To[Position(P, K[i])][Position(P,K[j])][2][1])/2); 9820Add(KK4, p+Position(P,K[j]+K[i]) ); 9821else 9822Add(KK2, (+1*To[Position(P, P[i])][Position(P,P[j])][2][1]+1*To[Position(P, K[i])][Position(P,K[j])][2][1])/2); 9823Add(KK2, p+Position(P, P[i]+P[j]) ); 9824Add(KK4, +1*(+1*To[Position(P, P[i])][Position(P,P[j])][2][1]+1*To[Position(P, K[i])][Position(P,K[j])][2][1])/2); 9825Add(KK4, p+Position(P, K[j]+K[i]) ); 9826fi; 9827 fi; 9828fi; 9829fi; fi; 9830 9831############### 9832 9833if (P[j]-P[i] in P ) then 9834if not (IsEmpty(To[Position(P, P[i])][p+Position(P,P[j])][2])=true) then 9835if (p+Position(P,K[j]-K[i]) > p+Position(P,P[j]-P[i])) then 9836 9837if (t[Position(P,P[j]-P[i] )] = 1) then 9838Add(KK2, (+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])/2); 9839Add(KK2, p+Position(P, K[j]-K[i]) ); 9840Add(KK4, -1*(+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])/2); 9841Add(KK4, p+Position(P, P[j]-P[i]) ); 9842else 9843Add(KK2, (+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])/2); 9844Add(KK2, p+Position(P, K[j]-K[i]) ); 9845Add(KK4, -1*(+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])/2); 9846Add(KK4, p+Position(P, P[j]-P[i]) ); 9847fi; 9848else 9849 if (p+Position(P,K[j]-K[i]) = p+Position(P,P[j]-P[i])) then 9850if (t[Position(P,P[j]-P[i] )] = 1) then 9851Add(KK4, -1*(+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])/2); 9852Add(KK4, p+Position(P, P[j]-P[i]) ); 9853else 9854Add(KK2, (+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])/2); 9855Add(KK2, p+Position(P, K[j]-K[i]) ); 9856fi; 9857 else #(p+Position(P,K[j]+K[i]) < p+Position(P,P[j]+P[i])) 9858if (t[Position(P,P[j]-P[i] )] = 1) then 9859Add(KK2, -1*(+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])/2); 9860Add(KK2, p+Position(P, P[j]-P[i]) ); 9861Add(KK4, -1*(+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])/2); 9862Add(KK4, p+Position(P, K[j]-K[i]) ); 9863else 9864Add(KK2, (+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])/2); 9865Add(KK2, p+Position(P, P[j]-P[i]) ); 9866Add(KK4, +1*(+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])/2); 9867Add(KK4, p+Position(P, K[j]-K[i]) ); 9868fi; 9869 fi; 9870fi; 9871fi; fi; 9872 9873############# 9874 9875if (P[i]+K[j] in P ) then 9876if not (IsEmpty(To[Position(P, P[i])][Position(P,K[j])][2])=true) then 9877if (p+Position(P,K[i]+P[j]) > p+Position(P,P[i]+K[j])) then 9878if (t[Position(P,P[i]+K[j] )] = 1) then 9879Add(KK2, (-1*To[Position(P, P[i])][Position(P,K[j])][2][1]+1*To[Position(P, K[i])][Position(P,P[j])][2][1])/2); 9880Add(KK2, p+Position(P, K[i]+P[j]) ); 9881Add(KK4, -1*(-1*To[Position(P, P[i])][Position(P,K[j])][2][1]+1*To[Position(P, K[i])][Position(P,P[j])][2][1])/2); 9882Add(KK4, p+Position(P, P[i]+K[j]) ); 9883else 9884Add(KK2, (-1*To[Position(P, P[i])][Position(P,K[j])][2][1]-1*To[Position(P, K[i])][Position(P,P[j])][2][1])/2); 9885Add(KK2, p+Position(P, K[i]+P[j]) ); 9886Add(KK4, -1*(-1*To[Position(P, P[i])][Position(P,K[j])][2][1]-1*To[Position(P, K[i])][Position(P,P[j])][2][1])/2); 9887Add(KK4, p+Position(P, P[i]+K[j]) ); 9888fi; 9889else 9890 if (p+Position(P,K[i]+P[j]) = p+Position(P,P[i]+K[j])) then 9891if (t[Position(P,K[j]+P[i] )] = 1) then 9892Add(KK4, -1*(-1*To[Position(P, P[i])][Position(P,K[j])][2][1]+1*To[Position(P, K[i])][Position(P,P[j])][2][1])/2); 9893Add(KK4, p+Position(P, P[i]+K[j]) ); 9894else 9895Add(KK2, (-1*To[Position(P, P[i])][Position(P,K[j])][2][1]-1*To[Position(P, K[i])][Position(P,P[j])][2][1])/2); 9896Add(KK2, p+Position(P, K[i]+P[j]) ); 9897fi; 9898 else #(p+Position(P,K[j]+K[i]) < p+Position(P,P[j]+P[i])) 9899if (t[Position(P,P[i]+K[j] )] = 1) then 9900Add(KK2, -1*(-1*To[Position(P, P[i])][Position(P,K[j])][2][1]+1*To[Position(P, K[i])][Position(P,P[j])][2][1])/2); 9901Add(KK2, p+Position(P, P[i]+K[j]) ); 9902Add(KK4, -1*(-1*To[Position(P, P[i])][Position(P,K[j])][2][1]+1*To[Position(P, K[i])][Position(P,P[j])][2][1])/2); 9903Add(KK4, p+Position(P, K[i]+P[j]) ); 9904else 9905Add(KK2, (-1*To[Position(P, P[i])][Position(P,K[j])][2][1]-1*To[Position(P, K[i])][Position(P,P[j])][2][1])/2); 9906Add(KK2, p+Position(P, P[i]+K[j]) ); 9907Add(KK4, +1*(-1*To[Position(P, P[i])][Position(P,K[j])][2][1]-1*To[Position(P, K[i])][Position(P,P[j])][2][1])/2); 9908Add(KK4, p+Position(P, K[i]+P[j]) ); 9909fi; 9910 fi; 9911fi; 9912fi; fi; 9913 9914############# 9915 9916if (K[j]-P[i] in P ) then 9917if not (IsEmpty(To[Position(P, P[i])][p+Position(P,K[j])][2])=true) then 9918if (p+Position(P,P[j]-K[i]) > p+Position(P,K[j]-P[i])) then 9919 9920if (t[Position(P,K[j]-P[i] )] = 1) then 9921Add(KK2, (-1*To[Position(P, P[i])][p+Position(P,K[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,P[j])][2][1])/2); 9922Add(KK2, p+Position(P, P[j]-K[i]) ); 9923Add(KK4, -1*(-1*To[Position(P, P[i])][p+Position(P,K[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,P[j])][2][1])/2); 9924Add(KK4, p+Position(P, K[j]-P[i]) ); 9925else 9926Add(KK2, (-1*To[Position(P, P[i])][p+Position(P,K[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,P[j])][2][1])/2); 9927Add(KK2, p+Position(P, P[j]-K[i]) ); 9928Add(KK4, -1*(-1*To[Position(P, P[i])][p+Position(P,K[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,P[j])][2][1])/2); 9929Add(KK4, p+Position(P, K[j]-P[i]) ); 9930fi; 9931else 9932 if (p+Position(P,P[j]-K[i]) = p+Position(P,K[j]-P[i])) then 9933if (t[Position(P,K[j]-P[i] )] = 1) then 9934Add(KK4, -1*(-1*To[Position(P, P[i])][p+Position(P,K[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,P[j])][2][1])/2); 9935Add(KK4, p+Position(P, K[j]-P[i]) ); 9936else 9937Add(KK2, (-1*To[Position(P, P[i])][p+Position(P,K[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,P[j])][2][1])/2); 9938Add(KK2, p+Position(P, P[j]-K[i]) ); 9939fi; 9940 else #(p+Position(P,K[j]+K[i]) < p+Position(P,P[j]+P[i])) 9941if (t[Position(P,K[j]-P[i] )] = 1) then 9942Add(KK2, -1*(-1*To[Position(P, P[i])][p+Position(P,K[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,P[j])][2][1])/2); 9943Add(KK2, p+Position(P, K[j]-P[i]) ); 9944Add(KK4, -1*(-1*To[Position(P, P[i])][p+Position(P,K[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,P[j])][2][1])/2); 9945Add(KK4, p+Position(P, P[j]-K[i]) ); 9946else 9947Add(KK2, (-1*To[Position(P, P[i])][p+Position(P,K[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,P[j])][2][1])/2); 9948Add(KK2, p+Position(P, K[j]-P[i]) ); 9949Add(KK4, +1*(-1*To[Position(P, P[i])][p+Position(P,K[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,P[j])][2][1])/2); 9950Add(KK4, p+Position(P, P[j]-K[i]) ); 9951fi; 9952 fi; 9953fi; 9954fi; fi; 9955 9956else #t[j]=-1 9957 9958############### 9959 9960if (P[i]+P[j] in P ) then #qui so che aplha+beta < phi_aplha+phi_beta quindi sono nel caso sicuro 9961if not (IsEmpty(To[Position(P, P[i])][Position(P,P[j])][2])=true) then 9962if (p+Position(P,K[j]+K[i]) > p+Position(P,P[j]+P[i])) then 9963 9964if (t[Position(P,P[j]+P[i] )] = 1) then 9965Add(KK2, (+1*To[Position(P, P[i])][Position(P,P[j])][2][1]+1*To[Position(P, K[i])][Position(P,K[j])][2][1])/2); 9966Add(KK2, p+Position(P, K[i]+K[j]) ); 9967Add(KK4, -1*(+1*To[Position(P, P[i])][Position(P,P[j])][2][1]+1*To[Position(P, K[i])][Position(P,K[j])][2][1])/2); 9968Add(KK4, p+Position(P, P[i]+P[j]) ); 9969else 9970Add(KK2, (+1*To[Position(P, P[i])][Position(P,P[j])][2][1]-1*To[Position(P, K[i])][Position(P,K[j])][2][1])/2); 9971Add(KK2, p+Position(P, K[i]+K[j]) ); 9972Add(KK4, -1*(+1*To[Position(P, P[i])][Position(P,P[j])][2][1]-1*To[Position(P, K[i])][Position(P,K[j])][2][1])/2); 9973Add(KK4, p+Position(P, P[i]+P[j]) ); 9974fi; 9975else 9976 if (p+Position(P,K[j]+K[i]) = p+Position(P,P[j]+P[i])) then 9977if (t[Position(P,P[j]+P[i] )] = 1) then 9978Add(KK4, -1*(+1*To[Position(P, P[i])][Position(P,P[j])][2][1]+1*To[Position(P, K[i])][Position(P,K[j])][2][1])/2); 9979Add(KK4, p+Position(P, P[i]+P[j]) ); 9980else 9981Add(KK2, (+1*To[Position(P, P[i])][Position(P,P[j])][2][1]-1*To[Position(P, K[i])][Position(P,K[j])][2][1])/2); 9982Add(KK2, p+Position(P, K[i]+K[j]) ); 9983fi; 9984 else #(p+Position(P,K[j]+K[i]) < p+Position(P,P[j]+P[i])) 9985if (t[Position(P,P[j]+P[i] )] = 1) then 9986Add(KK2, -1*(+1*To[Position(P, P[i])][Position(P,P[j])][2][1]+1*To[Position(P, K[i])][Position(P,K[j])][2][1])/2); 9987Add(KK2, p+Position(P, P[i]+P[j]) ); 9988Add(KK4, -1*(+1*To[Position(P, P[i])][Position(P,P[j])][2][1]+1*To[Position(P, K[i])][Position(P,K[j])][2][1])/2); 9989Add(KK4, p+Position(P,K[j]+K[i]) ); 9990else 9991Add(KK2, (+1*To[Position(P, P[i])][Position(P,P[j])][2][1]-1*To[Position(P, K[i])][Position(P,K[j])][2][1])/2); 9992Add(KK2, p+Position(P, P[i]+P[j]) ); 9993Add(KK4, +1*(+1*To[Position(P, P[i])][Position(P,P[j])][2][1]-1*To[Position(P, K[i])][Position(P,K[j])][2][1])/2); 9994Add(KK4, p+Position(P, K[j]+K[i]) ); 9995fi; 9996 fi; 9997fi; 9998fi; fi; 9999 10000####### 10001 10002if (P[j]-P[i] in P ) then 10003if not (IsEmpty(To[Position(P, P[i])][p+Position(P,P[j])][2])=true) then 10004if (p+Position(P,K[j]-K[i]) > p+Position(P,P[j]-P[i])) then 10005 10006if (t[Position(P,P[j]-P[i] )] = 1) then 10007Add(KK2, (+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])/2); 10008Add(KK2, p+Position(P, K[j]-K[i]) ); 10009Add(KK4, -1*(+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])/2); 10010Add(KK4, p+Position(P, P[j]-P[i]) ); 10011else 10012Add(KK2, (+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])/2); 10013Add(KK2, p+Position(P, K[j]-K[i]) ); 10014Add(KK4, -1*(+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])/2); 10015Add(KK4, p+Position(P, P[j]-P[i]) ); 10016fi; 10017else 10018 if (p+Position(P,K[j]-K[i]) = p+Position(P,P[j]-P[i])) then 10019if (t[Position(P,P[j]-P[i] )] = 1) then 10020Add(KK4, -1*(+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])/2); 10021Add(KK4, p+Position(P, P[j]-P[i]) ); 10022else 10023Add(KK2, (+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])/2); 10024Add(KK2, p+Position(P, K[j]-K[i]) ); 10025fi; 10026 else #(p+Position(P,K[j]+K[i]) < p+Position(P,P[j]+P[i])) 10027if (t[Position(P,P[j]-P[i] )] = 1) then 10028Add(KK2, -1*(+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])/2); 10029Add(KK2, p+Position(P, P[j]-P[i]) ); 10030Add(KK4, -1*(+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])/2); 10031Add(KK4, p+Position(P, K[j]-K[i]) ); 10032else 10033Add(KK2, (+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])/2); 10034Add(KK2, p+Position(P, P[j]-P[i]) ); 10035Add(KK4, +1*(+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])/2); 10036Add(KK4, p+Position(P, K[j]-K[i]) ); 10037fi; 10038 fi; 10039fi; 10040fi; fi; 10041 10042###### 10043 10044if (P[i]+K[j] in P ) then 10045if not (IsEmpty(To[Position(P, P[i])][Position(P,K[j])][2])=true) then 10046if (p+Position(P,K[i]+P[j]) > p+Position(P,P[i]+K[j])) then 10047 10048if (t[Position(P,P[i]+K[j] )] = 1) then 10049Add(KK2, (+1*To[Position(P, P[i])][Position(P,K[j])][2][1]+1*To[Position(P, K[i])][Position(P,P[j])][2][1])/2); 10050Add(KK2, p+Position(P, K[i]+P[j]) ); 10051Add(KK4, -1*(+1*To[Position(P, P[i])][Position(P,K[j])][2][1]+1*To[Position(P, K[i])][Position(P,P[j])][2][1])/2); 10052Add(KK4, p+Position(P, P[i]+K[j]) ); 10053else 10054Add(KK2, (+1*To[Position(P, P[i])][Position(P,K[j])][2][1]-1*To[Position(P, K[i])][Position(P,P[j])][2][1])/2); 10055Add(KK2, p+Position(P, K[i]+P[j]) ); 10056Add(KK4, -1*(+1*To[Position(P, P[i])][Position(P,K[j])][2][1]-1*To[Position(P, K[i])][Position(P,P[j])][2][1])/2); 10057Add(KK4, p+Position(P, P[i]+K[j]) ); 10058fi; 10059else 10060 if (p+Position(P,K[i]+P[j]) = p+Position(P,P[i]+K[j])) then 10061if (t[Position(P,K[j]+P[i] )] = 1) then 10062Add(KK4, -1*(+1*To[Position(P, P[i])][Position(P,K[j])][2][1]+1*To[Position(P, K[i])][Position(P,P[j])][2][1])/2); 10063Add(KK4, p+Position(P, P[i]+K[j]) ); 10064else 10065Add(KK2, (+1*To[Position(P, P[i])][Position(P,K[j])][2][1]-1*To[Position(P, K[i])][Position(P,P[j])][2][1])/2); 10066Add(KK2, p+Position(P, K[i]+P[j]) ); 10067fi; 10068 else #(p+Position(P,K[j]+K[i]) < p+Position(P,P[j]+P[i])) 10069if (t[Position(P,P[i]+K[j] )] = 1) then 10070Add(KK2, -1*(+1*To[Position(P, P[i])][Position(P,K[j])][2][1]+1*To[Position(P, K[i])][Position(P,P[j])][2][1])/2); 10071Add(KK2, p+Position(P, P[i]+K[j]) ); 10072Add(KK4, -1*(+1*To[Position(P, P[i])][Position(P,K[j])][2][1]+1*To[Position(P, K[i])][Position(P,P[j])][2][1])/2); 10073Add(KK4, p+Position(P, K[i]+P[j]) ); 10074else 10075Add(KK2, (+1*To[Position(P, P[i])][Position(P,K[j])][2][1]-1*To[Position(P, K[i])][Position(P,P[j])][2][1])/2); 10076Add(KK2, p+Position(P, P[i]+K[j]) ); 10077Add(KK4, +1*(+1*To[Position(P, P[i])][Position(P,K[j])][2][1]-1*To[Position(P, K[i])][Position(P,P[j])][2][1])/2); 10078Add(KK4, p+Position(P, K[i]+P[j]) ); 10079fi; 10080 fi; 10081fi; 10082fi; fi; 10083 10084############# 10085 10086if (K[j]-P[i] in P ) then 10087if not (IsEmpty(To[Position(P, P[i])][p+Position(P,K[j])][2])=true) then 10088if (p+Position(P,P[j]-K[i]) > p+Position(P,K[j]-P[i])) then 10089 10090if (t[Position(P,K[j]-P[i] )] = 1) then 10091Add(KK2, (+1*To[Position(P, P[i])][p+Position(P,K[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,P[j])][2][1])/2); 10092Add(KK2, p+Position(P, P[j]-K[i]) ); 10093Add(KK4, -1*(+1*To[Position(P, P[i])][p+Position(P,K[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,P[j])][2][1])/2); 10094Add(KK4, p+Position(P, K[j]-P[i]) ); 10095else 10096Add(KK2, (+1*To[Position(P, P[i])][p+Position(P,K[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,P[j])][2][1])/2); 10097Add(KK2, p+Position(P, P[j]-K[i]) ); 10098Add(KK4, -1*(+1*To[Position(P, P[i])][p+Position(P,K[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,P[j])][2][1])/2); 10099Add(KK4, p+Position(P, K[j]-P[i]) ); 10100fi; 10101else 10102 if (p+Position(P,P[j]-K[i]) = p+Position(P,K[j]-P[i])) then 10103if (t[Position(P,K[j]-P[i] )] = 1) then 10104Add(KK4, -1*(+1*To[Position(P, P[i])][p+Position(P,K[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,P[j])][2][1])/2); 10105Add(KK4, p+Position(P, K[j]-P[i]) ); 10106else 10107Add(KK2, (+1*To[Position(P, P[i])][p+Position(P,K[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,P[j])][2][1])/2); 10108Add(KK2, p+Position(P, P[j]-K[i]) ); 10109fi; 10110 else #(p+Position(P,K[j]+K[i]) < p+Position(P,P[j]+P[i])) 10111if (t[Position(P,K[j]-P[i] )] = 1) then 10112Add(KK2, -1*(+1*To[Position(P, P[i])][p+Position(P,K[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,P[j])][2][1])/2); 10113Add(KK2, p+Position(P, K[j]-P[i]) ); 10114Add(KK4, -1*(+1*To[Position(P, P[i])][p+Position(P,K[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,P[j])][2][1])/2); 10115Add(KK4, p+Position(P, P[j]-K[i]) ); 10116else 10117Add(KK2, (+1*To[Position(P, P[i])][p+Position(P,K[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,P[j])][2][1])/2); 10118Add(KK2, p+Position(P, K[j]-P[i]) ); 10119Add(KK4, +1*(+1*To[Position(P, P[i])][p+Position(P,K[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,P[j])][2][1])/2); 10120Add(KK4, p+Position(P, P[j]-K[i]) ); 10121fi; 10122 fi; 10123fi; 10124fi; fi; 10125 10126fi; fi; 10127 10128if ( Position(P,K[i]) < Position(P,K[j]) ) then 10129SetEntrySCTable( TT, Position(P,P[i]), p+Position(P, K[j]), KK2); 10130SetEntrySCTable( TT, Position(P,K[i]), p+Position(P, K[j]), KK4); 10131else 10132 if ( Position(P,K[j]) < Position(P,K[i]) ) then 10133SetEntrySCTable( TT, Position(P,P[i]), p+Position(P, K[j]), KK2); 10134 fi; 10135fi; 10136 10137else 10138 if ( Position(P, K[i]) = Position(P,P[i]) ) then #alpha< phi_alpha (ragiono con gli X) 10139 10140KK2:=[]; 10141 10142if (t[i]=1) then 10143if (t[j]=1) then 10144 10145if (P[i]+P[j] in P ) then #qui so che aplha+beta < phi_aplha+phi_beta quindi sono nel caso sicuro 10146if not (IsEmpty(To[Position(P, P[i])][Position(P,P[j])][2])=true) then 10147if (p+Position(P,K[j]+K[i]) > p+Position(P,P[j]+P[i])) then 10148 10149if (t[Position(P,P[j]+P[i] )] = 1) then 10150Add(KK2, (+1*To[Position(P, P[i])][Position(P,P[j])][2][1]+1*To[Position(P, K[i])][Position(P,K[j])][2][1])); 10151Add(KK2, p+Position(P, K[i]+K[j]) ); 10152else 10153Add(KK2, (+1*To[Position(P, P[i])][Position(P,P[j])][2][1]-1*To[Position(P, K[i])][Position(P,K[j])][2][1])); 10154Add(KK2, p+Position(P, K[i]+K[j]) ); 10155fi; 10156else 10157 if (p+Position(P,K[j]+K[i]) = p+Position(P,P[j]+P[i])) then 10158 10159if (t[Position(P,P[j]+P[i] )] = 1) then 10160else 10161Add(KK2, (+1*To[Position(P, P[i])][Position(P,P[j])][2][1]-1*To[Position(P, K[i])][Position(P,K[j])][2][1])); 10162Add(KK2, p+Position(P, K[i]+K[j]) ); 10163fi; 10164 else #(p+Position(P,K[j]+K[i]) < p+Position(P,P[j]+P[i])) 10165 10166if (t[Position(P,P[j]+P[i] )] = 1) then 10167Add(KK2, -1*(+1*To[Position(P, P[i])][Position(P,P[j])][2][1]+1*To[Position(P, K[i])][Position(P,K[j])][2][1])); 10168Add(KK2, p+Position(P, P[i]+P[j]) ); 10169else 10170Add(KK2, (+1*To[Position(P, P[i])][Position(P,P[j])][2][1]-1*To[Position(P, K[i])][Position(P,K[j])][2][1])); 10171Add(KK2, p+Position(P, P[i]+P[j]) ); 10172fi; 10173 fi; 10174fi; 10175fi; fi; 10176 10177############### 10178 10179if (P[j]-P[i] in P ) then 10180if not (IsEmpty(To[Position(P, P[i])][p+Position(P,P[j])][2])=true) then 10181if (p+Position(P,K[j]-K[i]) > p+Position(P,P[j]-P[i])) then 10182 10183if (t[Position(P,P[j]-P[i] )] = 1) then 10184Add(KK2, (+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])); 10185Add(KK2, p+Position(P, K[j]-K[i]) ); 10186else 10187Add(KK2, (+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])); 10188Add(KK2, p+Position(P, K[j]-K[i]) ); 10189fi; 10190else 10191 if (p+Position(P,K[j]-K[i]) = p+Position(P,P[j]-P[i])) then 10192 10193if (t[Position(P,P[j]-P[i] )] = 1) then 10194else 10195Add(KK2, (+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])); 10196Add(KK2, p+Position(P, K[j]-K[i]) ); 10197fi; 10198 else #(p+Position(P,K[j]+K[i]) < p+Position(P,P[j]+P[i])) 10199 10200if (t[Position(P,P[j]-P[i] )] = 1) then 10201Add(KK2, -1*(+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])); 10202Add(KK2, p+Position(P, P[j]-P[i]) ); 10203else 10204Add(KK2, (+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])); 10205Add(KK2, p+Position(P, P[j]-P[i]) ); 10206fi; 10207 fi; 10208fi; 10209fi; fi; 10210 10211########### 10212 10213else #t[j]=-1 10214 10215if (P[i]+P[j] in P ) then #qui so che aplha+beta < phi_aplha+phi_beta quindi sono nel caso sicuro 10216if not (IsEmpty(To[Position(P, P[i])][Position(P,P[j])][2])=true) then 10217if (p+Position(P,K[j]+K[i]) > p+Position(P,P[j]+P[i])) then 10218 10219if (t[Position(P,P[j]+P[i] )] = 1) then 10220Add(KK2, (+1*To[Position(P, P[i])][Position(P,P[j])][2][1]-1*To[Position(P, K[i])][Position(P,K[j])][2][1])); 10221Add(KK2, p+Position(P, K[i]+K[j]) ); 10222else 10223Add(KK2, (+1*To[Position(P, P[i])][Position(P,P[j])][2][1]+1*To[Position(P, K[i])][Position(P,K[j])][2][1])); 10224Add(KK2, p+Position(P, K[i]+K[j]) ); 10225fi; 10226else 10227 if (p+Position(P,K[j]+K[i]) = p+Position(P,P[j]+P[i])) then 10228 10229if (t[Position(P,P[j]+P[i] )] = 1) then 10230else 10231Add(KK2, (+1*To[Position(P, P[i])][Position(P,P[j])][2][1]+1*To[Position(P, K[i])][Position(P,K[j])][2][1])); 10232Add(KK2, p+Position(P, K[i]+K[j]) ); 10233fi; 10234 else #(p+Position(P,K[j]+K[i]) < p+Position(P,P[j]+P[i])) 10235 10236if (t[Position(P,P[j]+P[i] )] = 1) then 10237Add(KK2, -1*(+1*To[Position(P, P[i])][Position(P,P[j])][2][1]-1*To[Position(P, K[i])][Position(P,K[j])][2][1])); 10238Add(KK2, p+Position(P, P[i]+P[j]) ); 10239else 10240Add(KK2, (+1*To[Position(P, P[i])][Position(P,P[j])][2][1]+1*To[Position(P, K[i])][Position(P,K[j])][2][1])); 10241Add(KK2, p+Position(P, P[i]+P[j]) ); 10242fi; 10243 fi; 10244fi; 10245fi; fi; 10246 10247####### 10248 10249if (P[j]-P[i] in P ) then 10250if not (IsEmpty(To[Position(P, P[i])][p+Position(P,P[j])][2])=true) then 10251if (p+Position(P,K[j]-K[i]) > p+Position(P,P[j]-P[i])) then 10252if (t[Position(P,P[j]-P[i] )] = 1) then 10253Add(KK2, (+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])); 10254Add(KK2, p+Position(P, K[j]-K[i]) ); 10255else 10256Add(KK2, (+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])); 10257Add(KK2, p+Position(P, K[j]-K[i]) ); 10258fi; 10259else 10260 if (p+Position(P,K[j]-K[i]) = p+Position(P,P[j]-P[i])) then 10261 10262if (t[Position(P,P[j]-P[i] )] = 1) then 10263else 10264Add(KK2, (+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])); 10265Add(KK2, p+Position(P, K[j]-K[i]) ); 10266fi; 10267 else #(p+Position(P,K[j]+K[i]) < p+Position(P,P[j]+P[i])) 10268if (t[Position(P,P[j]-P[i] )] = 1) then 10269Add(KK2, -1*(+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])); 10270Add(KK2, p+Position(P, P[j]-P[i]) ); 10271else 10272Add(KK2, (+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])); 10273Add(KK2, p+Position(P, P[j]-P[i]) ); 10274fi; 10275 fi; 10276fi; 10277fi; fi; 10278 10279#################### 10280 10281fi; 10282 10283else #t[i]=-1 10284if (t[j]=1) then 10285 10286if (P[i]+P[j] in P ) then #qui so che aplha+beta < phi_aplha+phi_beta quindi sono nel caso sicuro 10287if not (IsEmpty(To[Position(P, P[i])][Position(P,P[j])][2])=true) then 10288if (p+Position(P,K[j]+K[i]) > p+Position(P,P[j]+P[i])) then 10289 10290if (t[Position(P,P[j]+P[i] )] = 1) then 10291Add(KK2, -1*(+1*To[Position(P, P[i])][Position(P,P[j])][2][1]-1*To[Position(P, K[i])][Position(P,K[j])][2][1])); 10292Add(KK2, p+Position(P, P[i]+P[j]) ); 10293else 10294Add(KK2, -1*(+1*To[Position(P, P[i])][Position(P,P[j])][2][1]+1*To[Position(P, K[i])][Position(P,K[j])][2][1])); 10295Add(KK2, p+Position(P, P[i]+P[j]) ); 10296fi; 10297else 10298 if (p+Position(P,K[j]+K[i]) = p+Position(P,P[j]+P[i])) then 10299if (t[Position(P,P[j]+P[i] )] = 1) then 10300Add(KK2, -1*(+1*To[Position(P, P[i])][Position(P,P[j])][2][1]-1*To[Position(P, K[i])][Position(P,K[j])][2][1])); 10301Add(KK2, p+Position(P, P[i]+P[j]) ); 10302fi; 10303 else #(p+Position(P,K[j]+K[i]) < p+Position(P,P[j]+P[i])) 10304if (t[Position(P,P[j]+P[i] )] = 1) then 10305Add(KK2, -1*(+1*To[Position(P, P[i])][Position(P,P[j])][2][1]-1*To[Position(P, K[i])][Position(P,K[j])][2][1])); 10306Add(KK2, p+Position(P, P[i]+P[j]) ); 10307else 10308Add(KK2, +1*(+1*To[Position(P, P[i])][Position(P,P[j])][2][1]+1*To[Position(P, K[i])][Position(P,K[j])][2][1])); 10309Add(KK2, p+Position(P, K[j]+K[i]) ); 10310fi; 10311 fi; 10312fi; 10313fi; fi; 10314 10315############ 10316 10317if (P[j]-P[i] in P ) then 10318if not (IsEmpty(To[Position(P, P[i])][p+Position(P,P[j])][2])=true) then 10319if (p+Position(P,K[j]-K[i]) > p+Position(P,P[j]-P[i])) then 10320 10321if (t[Position(P,P[j]-P[i] )] = 1) then 10322Add(KK2, -1*(+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])); 10323Add(KK2, p+Position(P, P[j]-P[i]) ); 10324else 10325Add(KK2, -1*(+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])); 10326Add(KK2, p+Position(P, P[j]-P[i]) ); 10327fi; 10328else 10329 if (p+Position(P,K[j]-K[i]) = p+Position(P,P[j]-P[i])) then 10330if (t[Position(P,P[j]-P[i] )] = 1) then 10331Add(KK2, -1*(+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])); 10332Add(KK2, p+Position(P, P[j]-P[i]) ); 10333fi; 10334 else #(p+Position(P,K[j]+K[i]) < p+Position(P,P[j]+P[i])) 10335if (t[Position(P,P[j]-P[i] )] = 1) then 10336Add(KK2, -1*(+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])); 10337Add(KK2, p+Position(P, K[j]-K[i]) ); 10338else 10339Add(KK2, +1*(+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])); 10340Add(KK2, p+Position(P, K[j]-K[i]) ); 10341fi; 10342 fi; 10343fi; 10344fi; fi; 10345 10346else 10347 10348if (P[i]+P[j] in P ) then #qui so che aplha+beta < phi_aplha+phi_beta quindi sono nel caso sicuro 10349if not (IsEmpty(To[Position(P, P[i])][Position(P,P[j])][2])=true) then 10350if (p+Position(P,K[j]+K[i]) > p+Position(P,P[j]+P[i])) then 10351 10352if (t[Position(P,P[j]+P[i] )] = 1) then 10353Add(KK2, -1*(+1*To[Position(P, P[i])][Position(P,P[j])][2][1]+1*To[Position(P, K[i])][Position(P,K[j])][2][1])); 10354Add(KK2, p+Position(P, P[j]+P[i]) ); 10355else 10356Add(KK2, -1*(+1*To[Position(P, P[i])][Position(P,P[j])][2][1]-1*To[Position(P, K[i])][Position(P,K[j])][2][1])); 10357Add(KK2, p+Position(P, P[j]+P[i]) ); 10358fi; 10359else 10360 if (p+Position(P,K[j]+K[i]) = p+Position(P,P[j]+P[i])) then 10361if (t[Position(P,P[j]+P[i] )] = 1) then 10362Add(KK2, -1*(+1*To[Position(P, P[i])][Position(P,P[j])][2][1]+1*To[Position(P, K[i])][Position(P,K[j])][2][1])); 10363Add(KK2, p+Position(P, P[j]+P[i]) ); 10364fi; 10365 else #(p+Position(P,K[j]+K[i]) < p+Position(P,P[j]+P[i])) 10366if (t[Position(P,P[j]+P[i] )] = 1) then 10367Add(KK2, -1*(+1*To[Position(P, P[i])][Position(P,P[j])][2][1]+1*To[Position(P, K[i])][Position(P,K[j])][2][1])); 10368Add(KK2, p+Position(P, K[i]+K[j]) ); 10369else 10370Add(KK2, +1*(+1*To[Position(P, P[i])][Position(P,P[j])][2][1]-1*To[Position(P, K[i])][Position(P,K[j])][2][1])); 10371Add(KK2, p+Position(P, K[i]+K[j]) ); 10372fi; 10373 fi; 10374fi; 10375fi; fi; 10376 10377############### 10378 10379if (P[j]-P[i] in P ) then 10380if not (IsEmpty(To[Position(P, P[i])][p+Position(P,P[j])][2])=true) then 10381if (p+Position(P,K[j]-K[i]) > p+Position(P,P[j]-P[i])) then 10382 10383if (t[Position(P,P[j]-P[i] )] = 1) then 10384Add(KK2, -1*(+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])); 10385Add(KK2, p+Position(P, P[j]-P[i]) ); 10386else 10387Add(KK2, -1*(+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])); 10388Add(KK2, p+Position(P, P[j]-P[i]) ); 10389fi; 10390else 10391 if (p+Position(P,K[j]-K[i]) = p+Position(P,P[j]-P[i])) then 10392if (t[Position(P,P[j]-P[i] )] = 1) then 10393Add(KK2, -1*(+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])); 10394Add(KK2, p+Position(P, P[j]-P[i]) ); 10395fi; 10396 else #(p+Position(P,K[j]+K[i]) < p+Position(P,P[j]+P[i])) 10397if (t[Position(P,P[j]-P[i] )] = 1) then 10398Add(KK2, -1*(+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]+1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])); 10399Add(KK2, p+Position(P, K[j]-K[i]) ); 10400else 10401Add(KK2, +1*(+1*To[Position(P, P[i])][p+Position(P,P[j])][2][1]-1*To[Position(P, K[i])][p+Position(P,K[j])][2][1])); 10402Add(KK2, p+Position(P, K[j]-K[i]) ); 10403fi; 10404 fi; 10405fi; 10406fi; fi; 10407 10408fi; 10409fi; 10410 10411SetEntrySCTable( TT, i, p+Position(P,K[j]), KK2); 10412 10413 fi; 10414fi; fi; 10415 10416od; od; 10417############################################################################## 10418######################################################################################### 10419 10420 10421L:= LieAlgebraByStructureConstants( F0, TT ); 10422 10423 10424 10425K0:= [ ]; P0:= [ ]; 10426H0:= [ ]; 10427if h = () then 10428 10429 for i in [1..Length(t)] do 10430 if t[i] = 1 then 10431 Add( K0, Basis(L)[i] ); 10432 else 10433 Add( P0, Basis(L)[i] ); 10434 fi; 10435 od; 10436 10437 for i in [1..Length(t)] do 10438 if t[i] = 1 then 10439 Add( K0, Basis(L)[Length(t)+i] ); 10440 else 10441 Add( P0, Basis(L)[Length(t)+i] ); 10442 fi; 10443 od; 10444 10445 Append( K0, Basis(L){[2*Length(t)+1..Length(Basis(L))]} ); 10446 H0:= Basis(L){[2*Length(t)+1..Length(Basis(L))]}; 10447 10448else 10449 10450 for i in [1..Length(t)] do 10451 pos:= Position( P, K[i] ); 10452 if pos = i then 10453 if t[i] > 0 then 10454 Add( K0, Basis(L)[i] ); 10455 Add( K0, Basis(L)[i+p] ); 10456 else 10457 Add( P0, Basis(L)[i] ); 10458 Add( P0, Basis(L)[i+p] ); 10459 fi; 10460 elif pos > i then 10461 Add( K0, Basis(L)[i] ); 10462 Add( P0, Basis(L)[pos] ); 10463 Add( K0, Basis(L)[i+p] ); 10464 Add( P0, Basis(L)[pos+p] ); 10465 fi; 10466 od; 10467 10468 for i in [1..s] do 10469 if i^h = i then 10470 Add( K0, Basis(L)[ 2*Length(t)+i ] ); 10471 Add( H0, Basis(L)[ 2*Length(t)+i ] ); 10472 elif i^h > i then 10473 Add( K0, Basis(L)[ 2*Length(t)+i ] ); 10474 Add( H0, Basis(L)[ 2*Length(t)+i ] ); 10475 Add( P0, Basis(L)[ 2*Length(t)+i^h ] ); 10476 fi; 10477 od; 10478fi; 10479 10480 10481 10482 10483 makeCartInv := function(L,K,P) 10484 local bas; 10485 bas := BasisNC(L,Concatenation(Basis(K),Basis(P))); 10486 return function(v) 10487 local k, p, cf, i; 10488 k := Length(Basis(K)); 10489 p := Length(Basis(P)); 10490 cf := List(Coefficients(bas,v),x->x); 10491 for i in [k+1..k+p] do cf[i] := -cf[i]; od; 10492 return cf*bas; 10493 end; 10494 end; 10495 10496 K0 := SubalgebraNC(L,K0,"basis"); 10497 P0 := SubspaceNC( L, P0 ); 10498 10499SetCartanDecomposition( L, rec( K:=K0 ,P:=P0, CartanInv := makeCartInv(L,K0,P0) ) ); 10500SetIsCompactForm( L, false ); 10501 10502SetCartanSubalgebra(L,SubalgebraNC(L,Basis(L){[2*p+1..2*p+s]},"basis") ); 10503SetMaximallyCompactCartanSubalgebra( L, CartanSubalgebra(L) ); 10504SetCartanSubalgebra( CartanDecomposition(L).K, SubalgebraNC(L,H0) ); 10505 10506# fare un elenco con tre elenchi: [x_alpha], [x_{-alpha}], [h_1,...,h_l], alpha > 0, tutti 10507# i vettori espressi in termini della base di L. 10508# Se b:= Basis(L); allora b[1] è il primo elemento della base, ecc. 10509 10510bb:=Basis(L); 10511BB:=[[],[],[]]; 10512KK1:=0; 10513KK2:=0; 10514KK3:=0; 10515KK4:=0; 10516 10517for i in [1..p] do 10518Add(BB[1], 0); 10519Add(BB[2], 0); 10520od; 10521 10522for i in [1..s] do 10523Add(BB[3], 0); 10524od; 10525 10526for j in [1..s] do 10527 10528 if (OnPoints(j,h) > j) then 10529 BB[3][j]:= 1/2*One(F0)*(-1*E(4)*One(F0)*bb[2*p+j]+1*bb[2*p+OnPoints(j,h)]); 10530 BB[3][OnPoints(j,h)]:= -1/2*One(F0)*(+1*E(4)*One(F0)*bb[2*p+j]+1*bb[2*p+OnPoints(j,h)]); 10531 elif (OnPoints(j,h) = j) then 10532 BB[3][j]:= 1/2*One(F0)*(-1*E(4)*One(F0)*bb[2*p+j]); 10533 fi; 10534od; 10535 10536 10537 10538for i in [1..p] do 10539 10540 if (t[i] = 1) then 10541 10542 if (Position(P, K[i]) > Position(P,P[i])) then 10543 KK1:=1/2*One(F0)*(bb[i]-1*E(4)*One(F0)*bb[Position(P,K[i])]); #X_alpha 10544 KK2:=1/2*One(F0)*(bb[i]+1*E(4)*One(F0)*bb[Position(P,K[i])]); #X_phi(alpha) 10545 KK3:=1/2*One(F0)*(bb[p+i]-1*E(4)*One(F0)*bb[p+Position(P,K[i])]); #Y_alpha 10546 KK4:=1/2*One(F0)*(bb[p+i]+1*E(4)*One(F0)*bb[p+Position(P,K[i])]); #Y_phi(alpha) 10547 BB[1][i]:= 1/2*One(F0)*(KK1-1*E(4)*One(F0)*KK3); 10548 BB[1][Position(P,K[i])]:= 1/2*One(F0)*(KK2-1*E(4)*One(F0)*KK4); 10549 BB[2][i]:=1/2*One(F0)*(-1*KK1-1*E(4)*One(F0)*KK3); 10550 BB[2][Position(P,K[i])]:=1/2*One(F0)*(-1*One(F0)*KK2-1*E(4)*One(F0)*KK4); 10551 elif (Position(P, K[i]) = Position(P,P[i])) then 10552 KK1:=1/2*One(F0)*(bb[i]); #X_alpha 10553 KK2:=1/2*One(F0)*(bb[p+i]); #Y_alpha 10554 BB[1][i]:= 1/2*One(F0)*(KK1-1*E(4)*One(F0)*KK2); 10555 BB[2][i]:= 1/2*One(F0)*(-1*KK1-1*E(4)*One(F0)*KK2); 10556 fi; 10557 else 10558 if (Position(P, K[i]) > Position(P,P[i]) ) then 10559 10560 10561 KK1:=1/2*One(F0)*(bb[i]-1*E(4)*One(F0)*bb[Position(P,K[i])]); #X_alpha 10562 KK2:=1/2*One(F0)*(-bb[i]-1*E(4)*One(F0)*bb[Position(P,K[i])]); #X_phi(alpha) 10563 KK3:=1/2*One(F0)*(bb[p+i]-1*E(4)*One(F0)*bb[p+Position(P,K[i])]); #Y_alpha 10564 KK4:=1/2*One(F0)*(-bb[p+i]-1*E(4)*One(F0)*bb[p+Position(P,K[i])]); #Y_phi(alpha) 10565 BB[1][i]:= 1/2*One(F0)*(KK1-1*E(4)*One(F0)*KK3); 10566 BB[1][Position(P,K[i])]:=1/2*One(F0)*(KK2-1*E(4)*One(F0)*KK4); 10567 BB[2][i]:=1/2*One(F0)*(-1*KK1-1*One(F0)*E(4)*KK3); 10568 10569 BB[2][Position(P,K[i])]:=1/2*One(F0)*(-1*KK2-1*One(F0)*E(4)*KK4); 10570 elif (Position(P, K[i]) = Position(P,P[i]) ) then 10571 KK1:=-1*E(4)*One(F0)*1/2*(bb[i]); #X_alpha 10572 KK2:=-1*E(4)*One(F0)*1/2*(bb[p+i]); #Y_alpha 10573 BB[1][i]:= 1/2*One(F0)*(KK1-1*One(F0)*E(4)*KK2); 10574 BB[2][i]:= 1/2*One(F0)*(-1*KK1-1*E(4)*One(F0)*KK2); 10575 fi; 10576 fi; 10577 10578od; 10579 10580 10581 rts:=[ ]; 10582 for v in BB[1] do 10583 sp:= Basis(SubspaceNC(L,[v],"basis"),[v]); 10584 Add( rts, List( BB[3], t -> Coefficients(sp,t*v)[1] ) ); 10585 od; 10586 10587 10588 10589 R:= Objectify( NewType( NewFamily( "RootSystemFam", IsObject ), 10590 IsAttributeStoringRep and IsRootSystemFromLieAlgebra ), 10591 rec() ); 10592 SetCanonicalGenerators( R, [ BB[1]{[1..n]}, BB[2]{[1..n]}, BB[3] ] ); 10593 SetUnderlyingLieAlgebra( R, L ); 10594 SetPositiveRootVectors( R, BB[1] ); 10595 SetNegativeRootVectors( R, BB[2] ); 10596 10597 CartInt := function( R, a, b ) 10598 local s,t,rt; 10599 s:=0; t:=0; 10600 rt:=a-b; 10601 while (rt in R) or (rt=0*R[1]) do 10602 rt:=rt-b; 10603 s:=s+1; 10604 od; 10605 rt:=a+b; 10606 while (rt in R) or (rt=0*R[1]) do 10607 rt:=rt+b; 10608 t:=t+1; 10609 od; 10610 return s-t; 10611 end; 10612 10613 allrts:= Concatenation( rts, -rts ); 10614 fundr:= rts{[1..n]}; 10615 SetCartanMatrix( R, List( fundr, x -> List( fundr, y -> CartInt( allrts, x, y ) ) ) ); 10616 10617 10618 #roots are rationals 10619 if IsSqrtField(F0) then 10620 rts := List(rts, x-> List(x, SqrtFieldEltToCyclotomic)); 10621 fi; 10622 10623 SetPositiveRoots( R, rts ); 10624 10625 #Print("pos roots ",rts[1],rts[1][1] in SqrtField,"\n"); 10626 10627 10628 SetNegativeRoots( R, -rts ); 10629 SetSimpleSystem( R, rts{[1..n]} ); 10630 10631 SetRootSystem(L,R); 10632 SetRootSystem(MaximallyCompactCartanSubalgebra(L),R); 10633 10634 SetChevalleyBasis( L, BB ); 10635 10636 #Print("still in sqrtfield? ",PositiveRoots(RootSystem(L))[1][1] in SqrtField,"\n"); 10637 10638 return L; 10639 10640end; 10641