~ubuntu-branches/ubuntu/karmic/python-scipy/karmic

« back to all changes in this revision

Viewing changes to Lib/special/cdflib/exparg.f

  • Committer: Bazaar Package Importer
  • Author(s): Daniel T. Chen (new)
  • Date: 2005-03-16 02:15:29 UTC
  • Revision ID: james.westby@ubuntu.com-20050316021529-xrjlowsejs0cijig
Tags: upstream-0.3.2
ImportĀ upstreamĀ versionĀ 0.3.2

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
      DOUBLE PRECISION FUNCTION exparg(l)
 
2
C--------------------------------------------------------------------
 
3
C     IF L = 0 THEN  EXPARG(L) = THE LARGEST POSITIVE W FOR WHICH
 
4
C     EXP(W) CAN BE COMPUTED.
 
5
C
 
6
C     IF L IS NONZERO THEN  EXPARG(L) = THE LARGEST NEGATIVE W FOR
 
7
C     WHICH THE COMPUTED VALUE OF EXP(W) IS NONZERO.
 
8
C
 
9
C     NOTE... ONLY AN APPROXIMATE VALUE FOR EXPARG(L) IS NEEDED.
 
10
C--------------------------------------------------------------------
 
11
C     .. Scalar Arguments ..
 
12
      INTEGER l
 
13
C     ..
 
14
C     .. Local Scalars ..
 
15
      DOUBLE PRECISION lnb
 
16
      INTEGER b,m
 
17
C     ..
 
18
C     .. External Functions ..
 
19
      INTEGER ipmpar
 
20
      EXTERNAL ipmpar
 
21
C     ..
 
22
C     .. Intrinsic Functions ..
 
23
      INTRINSIC dble,dlog
 
24
C     ..
 
25
C     .. Executable Statements ..
 
26
C
 
27
      b = ipmpar(4)
 
28
      IF (b.NE.2) GO TO 10
 
29
      lnb = .69314718055995D0
 
30
      GO TO 40
 
31
 
 
32
   10 IF (b.NE.8) GO TO 20
 
33
      lnb = 2.0794415416798D0
 
34
      GO TO 40
 
35
 
 
36
   20 IF (b.NE.16) GO TO 30
 
37
      lnb = 2.7725887222398D0
 
38
      GO TO 40
 
39
 
 
40
   30 lnb = dlog(dble(b))
 
41
C
 
42
   40 IF (l.EQ.0) GO TO 50
 
43
      m = ipmpar(9) - 1
 
44
      exparg = 0.99999D0* (m*lnb)
 
45
      RETURN
 
46
 
 
47
   50 m = ipmpar(10)
 
48
      exparg = 0.99999D0* (m*lnb)
 
49
      RETURN
 
50
 
 
51
      END