Man Linux: Main Page and Category List

NAME

       ggidev-invert_3,  ggidev-lshift_3, ggidev-rshift_3 - Bitwise triple-int
       operations

SYNOPSIS

       #include <ggi/internal/triple-int.h>

       unsigned *invert_3(unsigned x[3]);

       unsigned *lshift_3(unsigned l[3], unsigned r);
       unsigned *rshift_3(unsigned l[3], unsigned r);

DESCRIPTION

       invert_3 inverts all bits of x. Equivalent to x=~x.

       lshift_3 shifts l to the left by r bits. Equivalent to l<<=r.

       rshift_3 shifts l to the right by r bits. This shift is arithmetic,  so
       the sign of l is kept as is. Equivalent to l>>=r.

RETURN VALUE

       invert_3 returns a pointer to x which has been updated in place.

       Both lshift_3 and rshift_3 return a pointer to l which has been updated
       in place.

EXAMPLES

       Some bitwise operations on triple-ints:

       unsigned x[3];

       assign_int_3(x, -4);
       invert_3(x);     /* x is now 3 */
       lshift_3(x, 42); /* x is now 3*2^42, if that fits in a triple-int */
       rshift_3(x, 17); /* x is now 3*2^25 */

SEE ALSO

       ggidev-triple-int(7), ggidev-assign_int_3(3)