@@ -322,7 +322,7 @@ function reducechain_costachunks(u,g,m,S,f,pseudoInverseMat,p,Ruvs,termorder,var
322322 nend = p
323323 end
324324
325- matrices = computeRuv (V,S,f,pseudoInverseMat,Ruvs,termorder)
325+ matrices = computeRuv (V,S,f,pseudoInverseMat,Ruvs,termorder,vars_reversed )
326326
327327 B,A = computeRPoly_LAOneVar2 (matrices,reverse (I - (nend- (d* n- n))* V),reverse (V),R)
328328 i = 1
@@ -361,7 +361,7 @@ function reducechain_costachunks(u,g,m,S,f,pseudoInverseMat,p,Ruvs,termorder,var
361361 # there's some sort of parity issue between our code and Costa's
362362 # A,B = computeRPoly_LAOneVar(y,rev_tweak(J - (i+1)*V,d*n-n) - y,S,n,d,f,pseudoInverseMat,R,PR,termorder)
363363
364- matrices1 = computeRuv (y,S,f,pseudoInverseMat,Ruvs,termorder)
364+ matrices1 = computeRuv (y,S,f,pseudoInverseMat,Ruvs,termorder,vars_reversed )
365365 if vars_reversed == true
366366 B,A = computeRPoly_LAOneVar2 (matrices1,reverse (rev_tweak (J - (i+ 1 )* V,d* n- n) - y),reverse (y),R)
367367 else
@@ -467,7 +467,7 @@ function reducechain_naive(u,g,m,S,f,pseudoInverseMat,p,Ruvs,termorder,vars_reve
467467 mins = temp
468468 K = K+ 1
469469 end
470- matrices = computeRuv (V,S,f,pseudoInverseMat,Ruvs,termorder)
470+ matrices = computeRuv (V,S,f,pseudoInverseMat,Ruvs,termorder,vars_reversed )
471471 B,A = computeRPoly_LAOneVar2 (matrices,reverse (mins),reverse (V),R)
472472 i = 1
473473 while i <= K
@@ -814,21 +814,17 @@ function computeRPoly_LAOneVar(V,mins,S,n,d,f,pseudoInverseMat,R,PR,termorder)
814814 return [A,B]
815815end
816816
817- function computeRuv (V,S,f,pseudoInverseMat,Ruvs,termorder)
817+ function computeRuv (V,S,f,pseudoInverseMat,Ruvs,termorder,vars_reversed )
818818 n = nvars (parent (f)) - 1
819819 d = degree (f,1 )
820820 R = coefficient_ring (parent (f))
821821 MS1 = matrix_space (R, binomial (n* d,n* d- n), binomial (n* d,n* d- n))
822822 if haskey (Ruvs, V)
823823 return get (Ruvs, V, 0 )
824824 end
825- # println(pseudoInverseMat)
826825 ev1 = gen_exp_vec (n+ 1 ,n* d- n,termorder)
827- # println("$ev1")
828826 ev2 = gen_exp_vec (n+ 1 ,n* d- n+ d- length (S),termorder)
829827 ev3 = gen_exp_vec (n+ 1 ,n* d- n- length (S)+ 1 ,termorder)
830- # println("$ev3")
831- # error()
832828 MS2 = matrix_space (R, length (ev2),1 )
833829 result = Vector {typeof(MS1())} (undef, n+ 2 )
834830 for i in 1 : n+ 2
@@ -869,8 +865,13 @@ function computeRuv(V,S,f,pseudoInverseMat,Ruvs,termorder)
869865 if ev1[l] == ev3[k]
870866 # result[j+1][l,i] = gJS[Int((j-1)*(length(gJS)/(n+1))+1):Int(j*(length(gJS)/(n+1))),:][k]
871867 # result[1][l,i] = result[1][l,i] + (ev3[k][n+1-j+1])*gJS[Int((j-1)*(length(gJS)/(n+1))+1):Int(j*(length(gJS)/(n+1))),:][k]
872- result[j+ 1 ][l,i] = gJS[Int ((j- 1 )* (length (gJS)/ (n+ 1 ))+ 1 )+ k- 1 ,1 ]
873- result[1 ][l,i] = result[1 ][l,i] + (ev3[k][n+ 1 - j+ 1 ])* gJS[Int ((j- 1 )* (length (gJS)/ (n+ 1 ))+ 1 )+ k- 1 ,1 ]
868+ if vars_reversed == true
869+ result[j+ 1 ][l,i] = gJS[Int ((j- 1 )* (length (gJS)/ (n+ 1 ))+ 1 )+ k- 1 ,1 ]
870+ result[1 ][l,i] = result[1 ][l,i] + (ev3[k][n+ 1 - j+ 1 ])* gJS[Int ((j- 1 )* (length (gJS)/ (n+ 1 ))+ 1 )+ k- 1 ,1 ]
871+ else
872+ result[j+ 1 ][l,i] = gJS[Int ((n+ 1 - j)* (length (gJS)/ (n+ 1 ))+ 1 )+ k- 1 ,1 ]
873+ result[1 ][l,i] = result[1 ][l,i] + (ev3[k][n+ 1 - j+ 1 ])* gJS[Int ((n+ 1 - j)* (length (gJS)/ (n+ 1 ))+ 1 )+ k- 1 ,1 ]
874+ end
874875 # println("$(result[j+1][l,i]) in $(j+1) && $(result[1][l,i]) in $(1)")
875876 end
876877 for m in 1 : (n+ 1 )
0 commit comments