Back to home page

EIC code displayed by LXR

 
 

    


Warning, /include/hepdb/l3bits.inc is written in an unsupported language. File is not indexed.

0001 *
0002 * $Id$
0003 *
0004 * $Log$
0005 * Revision 1.2  2006/09/15 09:35:14  mclareni
0006 * Submitted mods for gcc4/gfortran and MacOSX, corrected to work also on slc4 with gcc3.4 and 4.1
0007 *
0008 * Revision 1.1.1.1  1996/02/28 16:24:06  mclareni
0009 * Hepdb, cdlib, etc
0010 *
0011 *
0012 #ifndef CERNLIB_HEPDB_L3BITS_INC
0013 #define CERNLIB_HEPDB_L3BITS_INC
0014 *
0015 *
0016 * l3bits.inc
0017 *
0018 #if defined(CERNLIB_APOLLO)
0019       IBITS (I,N,L)      = RSHFT (LSHFT(I,32-N-L), 32-L)
0020 *
0021       JBIT (IZW,IZP)     = AND (RSHFT(IZW,IZP-1), 1)
0022       JBYT (IZW,IZP,NZB) = IBITS (IZW,IZP-1,NZB)
0023 *
0024       MSBIT0 (IZW,IZP)   = AND (IZW, NOT(LSHFT(1,IZP-1)) )
0025       MSBIT1 (IZW,IZP)   = OR  (IZW,     LSHFT(1,IZP-1)  )
0026       MSBYT (MZ,IZW,IZP,NZB) = OR ( AND (IZW, NOT(
0027      +                   LSHFT (RSHFT(NOT(INT4(0)),32-NZB), IZP-1)))
0028      +                     , RSHFT (LSHFT(MZ,32-NZB), 33-IZP-NZB) )
0029 #endif
0030 *
0031 * l3bits.inc
0032 *
0033 #if defined(CERNLIB_CRAY)
0034       JBIT (IZW,IZP)     = SHIFTR(IZW,IZP-1) .AND. MASK(127)
0035       JBYT (IZW,IZP,NZB) = SHIFTR(IZW,IZP-1) .AND. MASK(128-NZB)
0036 *
0037       MSBIT0 (IZW,IZP)       =  IZW .AND. SHIFT(MASK(65),IZP)
0038       MSBIT1 (IZW,IZP)       =  IZW .OR.  SHIFT(MASK(1), IZP)
0039       MSBYT (MZ,IZW,IZP,NZB) = (IZW .AND. SHIFT(MASK(64-NZB),IZP-1))
0040      +                       .OR. SHIFT(MZ.AND.MASK(128-NZB),IZP-1)
0041 #endif
0042 *
0043 * l3bits.inc
0044 *
0045 #if defined(CERNLIB_HPUX)
0046       JBIT (IZW,IZP)     = IBITS (IZW,IZP-1,1)
0047       JBYT (IZW,IZP,NZB) = IBITS (IZW,IZP-1,NZB)
0048 #endif
0049 #if defined(CERNLIB_IBM)||defined(CERNLIB_IBMRT)||defined(CERNLIB_VAX)\
0050     || defined(CERNLIB_GFORTRAN)
0051       IBITS (I,N,L)      = ISHFT(ISHFT(I,32-L-N),L-32)
0052 *
0053       JBIT (IZW,IZP)     = IBITS (IZW,IZP-1,1)
0054       JBYT (IZW,IZP,NZB) = IBITS (IZW,IZP-1,NZB)
0055 *
0056       MSBIT0 (IZW,IZP)   = IAND (IZW, NOT(ISHFT(1,IZP-1)) )
0057       MSBIT1 (IZW,IZP)   = IOR  (IZW,     ISHFT(1,IZP-1)  )
0058       MSBYT (MZ,IZW,IZP,NZB) = IOR ( IAND (IZW, NOT(
0059      +                   ISHFT (ISHFT(NOT(0),-32+NZB), IZP-1)))
0060      +                     , ISHFT (ISHFT(MZ, 32-NZB), -33+IZP+NZB) )
0061 #endif
0062 *
0063 * l3bits.inc
0064 *
0065 #if defined(CERNLIB_F2C) && (!defined(CERNLIB_GFORTRAN))
0066 C--
0067 C--    Note: F2C-ish RSHIFT is arithmetic right shift.
0068 C--          This means sign bits are shifted in at the high end
0069 C
0070       ISHFTL(IZW,NZB) = LSHIFT(IZW,NZB)
0071       JBIT (IZW,IZP)      = AND(RSHIFT(IZW,IZP-1),1)
0072       JBYT (IZW,IZP,NZB) =  ISHFTR(LSHIFT(IZW,33-IZP-NZB),32-NZB)
0073       MSBIT0 (IZW,IZP)   = AND (IZW, NOT(LSHIFT(1,IZP-1)) )
0074       MSBIT1 (IZW,IZP)   = OR  (IZW,     LSHIFT(1,IZP-1)  )
0075       MSBIT (MZ,IZW,IZP) = OR (AND (IZW, NOT(LSHIFT(1,IZP-1)) )
0076      +                              , LSHIFT(AND(MZ,1),IZP-1))
0077 #endif
0078 *
0079 * l3bits.inc
0080 *
0081 #if (defined(CERNLIB_WINNT))&&(!defined(CERNLIB_F2C))
0082       JBIT (IZW,IZP)     =  IAND (ISHFT(IZW,1-IZP), 1)
0083       JBYT (IZW,IZP,NZB) = ISHFT (ISHFT(IZW,33-IZP-NZB), -32+NZB)
0084       MSBIT0 (IZW,IZP)   = IAND (IZW, NOT(ISHFT(1,IZP-1)) )
0085       MSBIT1 (IZW,IZP)   = IOR  (IZW,     ISHFT(1,IZP-1)  )
0086       MSBIT (MZ,IZW,IZP) = IOR (IAND (IZW, NOT(ISHFT(1,IZP-1)) )
0087      +                              , ISHFT(IAND(MZ,1),IZP-1))
0088       MSBYT (MZ,IZW,IZP,NZB) = IOR (
0089      +          IAND (IZW, NOT(ISHFT (ISHFT(NOT(0),-32+NZB), IZP-1)))
0090      +        , ISHFT (ISHFT(MZ,32-NZB), -33+IZP+NZB) )
0091       MCBYT (MZ,IZQ,IZW,IZP,NZB) = IOR (
0092      +          IAND (IZW, NOT(ISHFT (ISHFT(NOT(0),-32+NZB), IZP-1)))
0093      +        , ISHFT (ISHFT(ISHFT(MZ,-IZQ+1),32-NZB), -33+IZP+NZB) )
0094 #endif
0095 
0096 #endif