Main Page | Class Hierarchy | Alphabetical List | Data Structures | File List | Data Fields | Globals

dilog2_.F

Go to the documentation of this file.
00001 
00002         subroutine dilog2( val, iresult )
00003         double precision val
00004         integer iresult
00005         integer i,imin,imax
00006         double precision dabsval,v,vmin,vmax
00007         double precision power2(-64:63)
00008         data    
00009      &
00010      & power2(-64) /5.42101086d-20/, power2(-63) /1.08420217d-19/,
00011      & power2(-62) /2.16840434d-19/, power2(-61) /4.33680869d-19/,
00012      & power2(-60) /8.67361738d-19/, power2(-59) /1.73472348d-18/,
00013      & power2(-58) /3.46944695d-18/, power2(-57) /6.9388939d-18/,
00014      & power2(-56) /1.38777878d-17/, power2(-55) /2.77555756d-17/,
00015      & power2(-54) /5.55111512d-17/, power2(-53) /1.11022302d-16/,
00016      & power2(-52) /2.22044605d-16/, power2(-51) /4.4408921d-16/,
00017      & power2(-50) /8.8817842d-16/, power2(-49) /1.77635684d-15/,
00018      & power2(-48) /3.55271368d-15/, power2(-47) /7.10542736d-15/,
00019      & power2(-46) /1.42108547d-14/, power2(-45) /2.84217094d-14/,
00020      & power2(-44) /5.68434189d-14/, power2(-43) /1.13686838d-13/,
00021      & power2(-42) /2.27373675d-13/, power2(-41) /4.54747351d-13/,
00022      & power2(-40) /9.09494702d-13/, power2(-39) /1.8189894d-12/,
00023      & power2(-38) /3.63797881d-12/, power2(-37) /7.27595761d-12/,
00024      & power2(-36) /1.45519152d-11/, power2(-35) /2.91038305d-11/,
00025      & power2(-34) /5.82076609d-11/, power2(-33) /1.16415322d-10/,
00026      & power2(-32) /2.32830644d-10/, power2(-31) /4.65661287d-10/,
00027      & power2(-30) /9.31322575d-10/, power2(-29) /1.86264515d-09/,
00028      & power2(-28) /3.7252903d-09/, power2(-27) /7.4505806d-09/,
00029      & power2(-26) /1.49011612d-08/, power2(-25) /2.98023224d-08/,
00030      & power2(-24) /5.96046448d-08/, power2(-23) /1.1920929d-07/,
00031      & power2(-22) /2.38418579d-07/, power2(-21) /4.76837158d-07/,
00032      & power2(-20) /9.53674316d-07/, power2(-19) /1.90734863d-06/,
00033      & power2(-18) /3.81469727d-06/, power2(-17) /7.62939453d-06/,
00034      & power2(-16) /1.52587891d-05/, power2(-15) /3.05175781d-05/,
00035      & power2(-14) /6.10351562d-05/, power2(-13) /0.000122070312/,
00036      & power2(-12) /0.000244140625/, power2(-11) /0.00048828125/,
00037      & power2(-10) /0.0009765625/, power2(-9) /0.001953125/,
00038      & power2(-8) /0.00390625/, power2(-7) /0.0078125/,
00039      & power2(-6) /0.015625/, power2(-5) /0.03125/,
00040      & power2(-4) /0.0625/, power2(-3) /0.125/,
00041      & power2(-2) /0.25/, power2(-1) /0.5/,
00042      & power2(0) /1./, power2(1) /2./,
00043      & power2(2) /4./, power2(3) /8./,
00044      & power2(4) /16./, power2(5) /32./,
00045      & power2(6) /64./, power2(7) /128./,
00046      & power2(8) /256./, power2(9) /512./,
00047      & power2(10) /1024./, power2(11) /2048./,
00048      & power2(12) /4096./, power2(13) /8192./,
00049      & power2(14) /16384./, power2(15) /32768./,
00050      & power2(16) /65536./, power2(17) /131072./,
00051      & power2(18) /262144./, power2(19) /524288./,
00052      & power2(20) /1048576./, power2(21) /2097152./,
00053      & power2(22) /4194304./, power2(23) /8388608./,
00054      & power2(24) /16777216./, power2(25) /33554432./,
00055      & power2(26) /67108864./, power2(27) /134217728./,
00056      & power2(28) /268435456./, power2(29) /536870912./,
00057      & power2(30) /1.07374182d+09/, power2(31) /2.14748365d+09/,
00058      & power2(32) /4.2949673d+09/, power2(33) /8.58993459d+09/,
00059      & power2(34) /1.71798692d+10/, power2(35) /3.43597384d+10/,
00060      & power2(36) /6.87194767d+10/, power2(37) /1.37438953d+11/,
00061      & power2(38) /2.74877907d+11/, power2(39) /5.49755814d+11/,
00062      & power2(40) /1.09951163d+12/, power2(41) /2.19902326d+12/,
00063      & power2(42) /4.39804651d+12/, power2(43) /8.79609302d+12/,
00064      & power2(44) /1.7592186d+13/, power2(45) /3.51843721d+13/,
00065      & power2(46) /7.03687442d+13/, power2(47) /1.40737488d+14/,
00066      & power2(48) /2.81474977d+14/, power2(49) /5.62949953d+14/,
00067      & power2(50) /1.12589991d+15/, power2(51) /2.25179981d+15/,
00068      & power2(52) /4.50359963d+15/, power2(53) /9.00719925d+15/,
00069      & power2(54) /1.80143985d+16/, power2(55) /3.6028797d+16/,
00070      & power2(56) /7.2057594d+16/, power2(57) /1.44115188d+17/,
00071      & power2(58) /2.88230376d+17/, power2(59) /5.76460752d+17/,
00072      & power2(60) /1.1529215d+18/, power2(61) /2.30584301d+18/,
00073      & power2(62) /4.61168602d+18/, power2(63) /9.22337204d+18/
00074 
00075         imin = -64
00076         i = 0
00077         imax = 63
00078 
00079         dabsval = dabs(val)
00080 
00081         vmin = 5.42101086d-20
00082         v = 1. 
00083         vmax = 9.22337204d+18
00084 
00085         if ( dabsval .ge. vmax ) then 
00086            iresult = imax
00087         elseif ( dabsval .le. vmim ) then 
00088            iresult = imin
00089         else
00090            do while ( imax-imin .gt. 1 )
00091               if ( dabsval .ge. v ) then
00092                  imin = i
00093                  vmin = v
00094               else
00095                  imax = i
00096                  vmax = v
00097               endif
00098               i=(imax+imin)/2
00099               v=power2(i)
00100            enddo
00101            iresult = imin
00102         endif
00103 
00104         return
00105 
00106         end
00107         

Generated on Mon May 31 21:38:45 2004 for SR2k4 Assembler by doxygen 1.3.6