X-Git-Url: https://ginac.de/CLN/cln.git//cln.git?a=blobdiff_plain;f=src%2Finteger%2Fbitwise%2Fcl_I_mkfx.cc;fp=src%2Finteger%2Fbitwise%2Fcl_I_mkfx.cc;h=df069b2ab1e3a5b7186a56f0fdc49a7233cd7b18;hb=665c18cd376d8d8c5a8eafb30681a3f9f46d4a99;hp=fdbe4c185098059b09c6207c1e27e4dd026faeb2;hpb=353bb28da69bf2c10e74d11a8a2b1e4ea315cb0e;p=cln.git diff --git a/src/integer/bitwise/cl_I_mkfx.cc b/src/integer/bitwise/cl_I_mkfx.cc index fdbe4c1..df069b2 100644 --- a/src/integer/bitwise/cl_I_mkfx.cc +++ b/src/integer/bitwise/cl_I_mkfx.cc @@ -22,27 +22,27 @@ const cl_I mkf_extract (const cl_I& x, uintC p, uintC q) var uintC len; var const uintD* LSDptr; I_to_NDS_nocopy(x, MSDptr=,len=,LSDptr=,true, { return 0; } ); // NDS zu x bilden - // MSDptr erhöhen und len erniedrigen, so daß len = ceiling(q/intDsize) wird: + // MSDptr erhöhen und len erniedrigen, so daß len = ceiling(q/intDsize) wird: { var uintC qD = ceiling(q,intDsize); // ceiling(q/intDsize) // wegen q<=l ist qD = ceiling(q/intDsize) <= ceiling((l+1)/intDsize) = len, also - // paßt qD ebenso wie len in ein uintC. - MSDptr = MSDptr mspop (len - qD); // MSDptr um len-qD Digits erhöhen + // paßt qD ebenso wie len in ein uintC. + MSDptr = MSDptr mspop (len - qD); // MSDptr um len-qD Digits erhöhen len = qD; // len um len-qD erniedrigen } - // Platz (len Digits) für die neue UDS bereitstellen: + // Platz (len Digits) für die neue UDS bereitstellen: var uintD* newMSDptr; num_stack_alloc_1(len, newMSDptr = ,); // Platz belegen - {var uintC pD = p/intDsize; // floor(p/intDsize), paßt in ein uintC + {var uintC pD = p/intDsize; // floor(p/intDsize), paßt in ein uintC // Kopiere len-pD Digits aus der DS zu x heraus: var uintD* midptr = copy_loop_msp(MSDptr,newMSDptr,len-pD); - // Lösche p-intDsize*floor(p/intDsize) Bits im Digit unterhalb von midptr: + // Lösche p-intDsize*floor(p/intDsize) Bits im Digit unterhalb von midptr: {var uintC p_D = p%intDsize; if (!(p_D==0)) { lspref(midptr,0) &= minus_bit(p_D); } } - // Lösche pD Digits darüber: + // Lösche pD Digits darüber: clear_loop_msp(midptr,pD); } - // Lösche intDsize*ceiling(q/intDsize)-q Bits im ersten Digit: + // Lösche intDsize*ceiling(q/intDsize)-q Bits im ersten Digit: {var uintL q_D = q%intDsize; #ifdef HAVE_FAST_LONGLONG if (!(q_D==0)) @@ -52,7 +52,7 @@ const cl_I mkf_extract (const cl_I& x, uintC p, uintC q) mspref(newMSDptr,0) &= (uintD)((1L<