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