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 2015-03-01