* * $Id: iubin.s,v 1.1.1.1 1996/02/15 17:53:59 mclareni Exp $ * * $Log: iubin.s,v $ * Revision 1.1.1.1 1996/02/15 17:53:59 mclareni * Kernlib * * . ************************************** . . FUNCTION IUBIN( X, PAR, SPILL ) *** Y 202 *** . FUNCTION IUHIST( X, PAR, SPILL ) *** Y 203 *** . PAR(1)=NCHAN, PAR(2)=DX, PAR(3)=XLOW . RETURNS IUBIN = (X-XLOW)/DX+1. 0 FOR UNDERFLOW, NCHAN+1 FOR OVERFLOW . SPILL = .FALSE. WITHIN RANGE, .TRUE. FOR UNDERFLOW AND OVERFLOW . * DOES NOT CHECK PAR(2)>0, PAR(1) POSITIVE INTEGER . * ASSUMES NCHAN.LT.2**27 . IUHIST: SAME AS IUBIN EXCEPTED FOR PAR(2)=1./DX . . ************************************** AXR$ FORT$ $(1) IUBIN* L,U A3,0 IUB0 #include "ftnors1.inc" #include "spyuse.inc" * Ignoring t=pass DL A1,1,XARG . LOC(PAR), LOC(SPILL) L A0,0,XARG . LOC(X) LN A4,2,A1 . -XLOW FA A4,0,A0 . X-XLOW EX FDFM,A3 . (X-XLOW)/BINWIDTH JN A4,UNDFL LUF A4,A4 . CONVERT TO INTEGER L A0,0,A1 . NX TG,U A4,0234 J OVFL . IUBIN.GE.2**27 TLE,U A4,0201 L,U A5,0 . IUBIN=1 LN A3,A4 SSA A5,0233,A3 TG A5,A0 J OVFL . IUBIN.GT.NX L A0,A5 L,U A1,0 IUB20 A,U A0,1 S A1,0,A2 . SPILL J RETUR3 UNDFL LN,U A0,1 OVFL L,U A1,1 J IUB20 IUHIST* L,U A3,1 J IUB0 FDFM FD A4,1,A1 . /DX FM A4,1,A1 . *(1./DX) END #ifdef CERNLIB_TCGEN_IUBIN #undef CERNLIB_TCGEN_IUBIN #endif #ifdef CERNLIB_TCGEN_IUHIST #undef CERNLIB_TCGEN_IUHIST #endif