4 #include "base/cl_sysdep.h"
7 #include "cln/integer.h"
12 #include "cln/integer.h"
13 #include "integer/cl_I.h"
14 #include "integer/bitwise/cl_I_byte.h"
18 bool ldb_test (const cl_I& n, const cl_byte& b)
21 // (ldb-test (byte s p) n)
24 // l:=(integer-length n)
25 // Falls l <= p : Falls n>=0, =0, denn Bits p+s-1..p sind =0.
26 // Falls n<0, /=0, denn Bits p+s-1..p sind =1.
28 // Falls p+s>l, /=0, denn bei n>=0 ist Bit l-1 =1,
29 // und bei n<0 sind Bits p+s-1..l =1.
31 // extrahiere die Bits p,...,p+s-1 von n und teste sie.
33 var uintC p = b.position;
34 if (s==0) return false;
35 var uintC l = integer_length(n); // l = (integer-length n)
47 // Bits p,...,q-1 mit q = min(p+s,l) = p+s extrahieren und testen:
48 return ldb_extract_test(n,p,ps);