@@ -430,6 +430,7 @@ degree mp_lagrange_polynomial(const integer* x, const integer* y, unsigned int n
430
430
polynode * mp_subproduct_node (const integer * x , unsigned int n1 , unsigned int n2 , modulus m )
431
431
{
432
432
polynode * n ;
433
+ printf ("%d %d\n" , n1 , n2 );
433
434
434
435
if ((n2 - n1 ) % 2 != 0 )
435
436
{
@@ -454,8 +455,8 @@ polynode* mp_subproduct_node(const integer* x, unsigned int n1, unsigned int n2,
454
455
else
455
456
{
456
457
/* 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 );
459
460
}
460
461
461
462
/* Multiply polynomials */
@@ -565,8 +566,8 @@ polynode* mp_numerator_node(const polynode* node, const integer* leaves, unsigne
565
566
else
566
567
{
567
568
/* 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 );
570
571
}
571
572
572
573
/* Compute numerator */
0 commit comments