diff options
Diffstat (limited to 'lib/mpi/mpih-mul.c')
| -rw-r--r-- | lib/mpi/mpih-mul.c | 25 | 
1 files changed, 25 insertions, 0 deletions
| diff --git a/lib/mpi/mpih-mul.c b/lib/mpi/mpih-mul.c index a93647564054..e5f1c84e3c48 100644 --- a/lib/mpi/mpih-mul.c +++ b/lib/mpi/mpih-mul.c @@ -317,6 +317,31 @@ mpih_sqr_n(mpi_ptr_t prodp, mpi_ptr_t up, mpi_size_t size, mpi_ptr_t tspace)  	}  } + +void mpihelp_mul_n(mpi_ptr_t prodp, +		mpi_ptr_t up, mpi_ptr_t vp, mpi_size_t size) +{ +	if (up == vp) { +		if (size < KARATSUBA_THRESHOLD) +			mpih_sqr_n_basecase(prodp, up, size); +		else { +			mpi_ptr_t tspace; +			tspace = mpi_alloc_limb_space(2 * size); +			mpih_sqr_n(prodp, up, size, tspace); +			mpi_free_limb_space(tspace); +		} +	} else { +		if (size < KARATSUBA_THRESHOLD) +			mul_n_basecase(prodp, up, vp, size); +		else { +			mpi_ptr_t tspace; +			tspace = mpi_alloc_limb_space(2 * size); +			mul_n(prodp, up, vp, size, tspace); +			mpi_free_limb_space(tspace); +		} +	} +} +  int  mpihelp_mul_karatsuba_case(mpi_ptr_t prodp,  			   mpi_ptr_t up, mpi_size_t usize, | 
