COMPUTE BTEST
Keywords: sic

Next: CONTINUE Up: COMPUTE Previous: COMPUTE DERIVATIVE Contents Index

###
COMPUTE BTEST

            [SIC\]COMPUTE OutVar BTEST InVar [Ibit]

        Bit-test one or several bit values of the  input  variable,  and  return
        true for each bit equal to 1.

        The  optional integer argument Ibit indicate which bit should be tested.
        The default is to check all the bits.

        If all the bits of (a single element of) InVar are tested,  OutVar  must
        be  an array with its first dimension equal to this number of bits, e.g.
        32 for INTEGERs, 64 for DOUBLEs, etc. InVar may be  a  multi-dimensional
        array, in which case OutVar must have the same extra-dimensions.

        In  details,  this tool is an overlay to the BTEST Fortran function (ex-
        cept that bit numbering starts at 1 here). Note that this hides the  ma-
        chine dependencies (IEEE, EEEI, etc) by using a unique integer model re-
        gardless of its physical layout. For more information, please  refer  to
        the Fortran documentation.

        Examples:

        SIC> define integer i
        SIC> let i 2
        SIC> define logical one
        SIC> compute one btest i 1  ! First bit value
        SIC> exa one
        ONE             = F                          ! Logical GLOBAL

        SIC> define logical all[32]
        SIC> compute all btest i  ! All bit values
        SIC> exa all
        ALL             is a logical Array     of dimensions  32
         F T F F F F F F F F F F F F F F F F F F F F F F
         F F F F F F F F

        SIC> define integer i2[3]
        SIC> let i2 1 2 3
        SIC> define logical one2[3]
        SIC> compute one2 btest i2 2  ! Second bit values of the 3 elements
        SIC> exa one2
        ONE2            is a logical Array     of dimensions  3
         F T T

        SIC> define logical all2[32,3]
        SIC> compute all2 btest i2  ! All bit values of all elements
        SIC> exa all2[1] all2[2] all2[3]
        ALL2[1]         is a logical Sub-Array of dimensions  32
         T F F F F F F F F F F F F F F F F F F F F F F F
         F F F F F F F F
        ALL2[2]         is a logical Sub-Array of dimensions  32
         F T F F F F F F F F F F F F F F F F F F F F F F
         F F F F F F F F
        ALL2[3]         is a logical Sub-Array of dimensions  32
         T T F F F F F F F F F F F F F F F F F F F F F F
         F F F F F F F F