diff options
Diffstat (limited to 'libf2c/libF77/qbitbits.c')
-rw-r--r-- | libf2c/libF77/qbitbits.c | 62 |
1 files changed, 0 insertions, 62 deletions
diff --git a/libf2c/libF77/qbitbits.c b/libf2c/libF77/qbitbits.c deleted file mode 100644 index f72858e..0000000 --- a/libf2c/libF77/qbitbits.c +++ /dev/null @@ -1,62 +0,0 @@ -#include "f2c.h" - -#ifndef LONGBITS -#define LONGBITS 32 -#endif - -#ifndef LONG8BITS -#define LONG8BITS (2*LONGBITS) -#endif - -integer -qbit_bits (longint a, integer b, integer len) -{ - /* Assume 2's complement arithmetic */ - - ulongint x, y; - - x = (ulongint) a; - y = (ulongint) - 1L; - x >>= b; - y <<= len; - return (longint) (x & y); -} - -longint -qbit_cshift (longint a, integer b, integer len) -{ - ulongint x, y, z; - - x = (ulongint) a; - if (len <= 0) - { - if (len == 0) - return 0; - goto full_len; - } - if (len >= LONG8BITS) - { - full_len: - if (b >= 0) - { - b %= LONG8BITS; - return (longint) (x << b | x >> (LONG8BITS - b)); - } - b = -b; - b %= LONG8BITS; - return (longint) (x << (LONG8BITS - b) | x >> b); - } - y = z = (unsigned long) -1; - y <<= len; - z &= ~y; - y &= x; - x &= z; - if (b >= 0) - { - b %= len; - return (longint) (y | (z & (x << b | x >> (len - b)))); - } - b = -b; - b %= len; - return (longint) (y | (z & (x >> b | x << (len - b)))); -} |