]> www.ginac.de Git - cln.git/blob - src/integer/bitwise/cl_I_byte.h
* All Files have been modified for inclusion of namespace cln;
[cln.git] / src / integer / bitwise / cl_I_byte.h
1 // cl_I internals for BYTE operations
2
3 #ifndef _CL_I_BYTE_H
4 #define _CL_I_BYTE_H
5
6 #include "cln/number.h"
7 #include "cln/integer_class.h"
8
9 namespace cln {
10
11 // cl_fullbyte(p,q) liefert zu p,q die Zahl 2^q-2^p als Integer,
12 // wobei p und q uintL sind. Bei p<=q ist das Ergebnis also
13 // ein Integer >=0, bei dem genau die Bits p,...,q-1 gesetzt sind.
14 extern const cl_I cl_fullbyte (uintL p, uintL q);
15
16 // Extrahiere die Bits p,...,q-1 der Zahl x,
17 // wobei 0 <= p <= q <= l = (integer-length x).
18 // Ergebnis (wie bei LDB) ein Integer >=0.
19 extern const cl_I ldb_extract (const cl_I& x, uintL p, uintL q);
20
21 // Teste, ob eines der Bits p,...,q-1 der Zahl x /=0 ist,
22 // wobei 0 <= p <= q <= l = (integer-length x).
23 // Ergebnis (wie bei LDB-TEST) cl_false wenn nein, cl_true wenn ja.
24 extern cl_boolean ldb_extract_test (const cl_I& x, uintL p, uintL q);
25
26 // Extrahiere die Bits p,...,q-1 der Zahl x,
27 // wobei 0 <= p <= q <= l = (integer-length x).
28 // Ergebnis (wie bei MASK-FIELD) ein Integer >=0.
29 extern const cl_I mkf_extract (const cl_I& x, uintL p, uintL q);
30
31 }  // namespace cln
32
33 #endif /* _CL_I_BYTE_H */