]> www.ginac.de Git - cln.git/blobdiff - src/integer/bitwise/cl_I_mkfx.cc
2006-04-25 Bruno Haible <bruno@clisp.org>
[cln.git] / src / integer / bitwise / cl_I_mkfx.cc
index dd6b4239afc626d7f67742e30cf3d5fa2d66b366..9df0edfaca85af2f9851933bba2bc00630a01501 100644 (file)
@@ -15,7 +15,7 @@
 
 namespace cln {
 
-const cl_I mkf_extract (const cl_I& x, uintL p, uintL q)
+const cl_I mkf_extract (const cl_I& x, uintC p, uintC q)
 {
       CL_ALLOCA_STACK;
       var const uintD* MSDptr;
@@ -23,20 +23,20 @@ const cl_I mkf_extract (const cl_I& x, uintL p, uintL q)
       var const uintD* LSDptr;
       I_to_NDS_nocopy(x, MSDptr=,len=,LSDptr=,cl_true, { return 0; } ); // NDS zu x bilden
       // MSDptr erhöhen und len erniedrigen, so daß len = ceiling(q/intDsize) wird:
-      { var uintL qD = ceiling(q,intDsize); // ceiling(q/intDsize)
+      { 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 ((uintL)len - qD); // MSDptr um len-qD Digits erhöhen
+        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:
       var uintD* newMSDptr;
-      num_stack_alloc_1((uintL)len, newMSDptr = ,); // Platz belegen
-      {var uintL pD = p/intDsize; // floor(p/intDsize), paßt in ein uintC
+      num_stack_alloc_1(len, newMSDptr = ,); // Platz belegen
+      {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-(uintC)pD);
+       var uintD* midptr = copy_loop_msp(MSDptr,newMSDptr,len-pD);
        // Lösche p-intDsize*floor(p/intDsize) Bits im Digit unterhalb von midptr:
-       {var uintL p_D = p%intDsize;
+       {var uintC p_D = p%intDsize;
         if (!(p_D==0)) { lspref(midptr,0) &= minus_bit(p_D); }
        }
        // Lösche pD Digits darüber: