#include "f2c.h"Include dependency graph for qbitbits.c:

Go to the source code of this file.
Defines | |
| #define | LONGBITS 32 |
| #define | LONG8BITS (2*LONGBITS) |
Functions | |
| longint | qbit_bits (longint a, integer b, integer len) |
| longint | qbit_cshift (longint a, integer b, integer len) |
| #define LONG8BITS (2*LONGBITS) |
| #define LONGBITS 32 |
Definition at line 7 of file qbitbits.c.
Definition at line 36 of file qbitbits.c.
References long, LONG8BITS, longint, ulongint, x, y, and z.
00038 { 00039 ulongint x, y, z; 00040 00041 x = (ulongint)a; 00042 if (len <= 0) { 00043 if (len == 0) 00044 return 0; 00045 goto full_len; 00046 } 00047 if (len >= LONG8BITS) { 00048 full_len: 00049 if (b >= 0) { 00050 b %= LONG8BITS; 00051 return (longint)(x << b | x >> LONG8BITS - b ); 00052 } 00053 b = -b; 00054 b %= LONG8BITS; 00055 return (longint)(x << LONG8BITS - b | x >> b); 00056 } 00057 y = z = (unsigned long)-1; 00058 y <<= len; 00059 z &= ~y; 00060 y &= x; 00061 x &= z; 00062 if (b >= 0) { 00063 b %= len; 00064 return (longint)(y | z & (x << b | x >> len - b)); 00065 } 00066 b = -b; 00067 b %= len; 00068 return (longint)(y | z & (x >> b | x << len - b)); 00069 }
1.5.1