next up previous contents index
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


Gildas manager 2014-07-01