@@ -430,6 +430,7 @@ degree mp_lagrange_polynomial(const integer* x, const integer* y, unsigned int n
430430polynode * mp_subproduct_node (const integer * x , unsigned int n1 , unsigned int n2 , modulus m )
431431{
432432 polynode * n ;
433+ printf ("%d %d\n" , n1 , n2 );
433434
434435 if ((n2 - n1 ) % 2 != 0 )
435436 {
@@ -454,8 +455,8 @@ polynode* mp_subproduct_node(const integer* x, unsigned int n1, unsigned int n2,
454455 else
455456 {
456457 /* Resursive call */
457- n -> left = mp_subproduct_node (x , n1 , n2 / 2 , m );
458- n -> right = mp_subproduct_node (x , n2 / 2 , n2 , m );
458+ n -> left = mp_subproduct_node (x , n1 , n2 - ( n2 - n1 ) / 2 , m );
459+ n -> right = mp_subproduct_node (x , n2 - ( n2 - n1 ) / 2 , n2 , m );
459460 }
460461
461462 /* Multiply polynomials */
@@ -565,8 +566,8 @@ polynode* mp_numerator_node(const polynode* node, const integer* leaves, unsigne
565566 else
566567 {
567568 /* Resursive call */
568- n -> left = mp_numerator_node (node -> left , leaves , n1 , n2 / 2 , m );
569- n -> right = mp_numerator_node (node -> right , leaves , n2 / 2 , n2 , m );
569+ n -> left = mp_numerator_node (node -> left , leaves , n1 , n2 - ( n2 - n1 ) / 2 , m );
570+ n -> right = mp_numerator_node (node -> right , leaves , n2 - ( n2 - n1 ) / 2 , n2 , m );
570571 }
571572
572573 /* Compute numerator */
0 commit comments