[Scipy-svn] r3009 - in trunk/Lib/special: cephes specfun tests
scipy-svn at scipy.org
scipy-svn at scipy.org
Wed May 16 13:05:55 EDT 2007
Author: cookedm
Date: 2007-05-16 12:05:50 -0500 (Wed, 16 May 2007)
New Revision: 3009
Modified:
trunk/Lib/special/cephes/polmisc.c
trunk/Lib/special/cephes/polyn.c
trunk/Lib/special/specfun/specfun.f
trunk/Lib/special/tests/test_basic.py
Log:
Lib/special: clean up specfun.f a bit
Modified: trunk/Lib/special/cephes/polmisc.c
===================================================================
--- trunk/Lib/special/cephes/polmisc.c 2007-05-15 20:56:36 UTC (rev 3008)
+++ trunk/Lib/special/cephes/polmisc.c 2007-05-16 17:05:50 UTC (rev 3009)
@@ -4,9 +4,7 @@
*/
#include <stdio.h>
-#ifndef __APPLE__
-#include <malloc.h>
-#endif
+#include <stdlib.h>
#include "mconf.h"
#ifndef ANSIPROT
double atan2(), sqrt(), fabs(), sin(), cos();
Modified: trunk/Lib/special/cephes/polyn.c
===================================================================
--- trunk/Lib/special/cephes/polyn.c 2007-05-15 20:56:36 UTC (rev 3008)
+++ trunk/Lib/special/cephes/polyn.c 2007-05-16 17:05:50 UTC (rev 3009)
@@ -60,14 +60,8 @@
*/
#include <stdio.h>
-void exit(int);
-#ifndef NULL
-#define NULL 0
-#endif
+#include <stdlib.h>
#include "mconf.h"
-#ifndef __APPLE__
-#include <malloc.h>
-#endif
/* near pointer version of malloc() */
/*
Modified: trunk/Lib/special/specfun/specfun.f
===================================================================
--- trunk/Lib/special/specfun/specfun.f 2007-05-15 20:56:36 UTC (rev 3008)
+++ trunk/Lib/special/specfun/specfun.f 2007-05-16 17:05:50 UTC (rev 3009)
@@ -699,7 +699,7 @@
DO 10 K=1,NM
J=2*K-2+M+IP
SU0=SU0+DF(K)*QM(J)
- IF (K.GT.NM1.AND.DABS(SU0-SW).LT.DABS(SU0)*EPS) GO TO 15
+ IF (K.GT.NM1.AND.DABS(SU0-SW).LT.DABS(SU0)*EPS) GO TO 15
10 SW=SU0
15 SD0=0.0D0
DO 20 K=1,NM
@@ -1144,7 +1144,7 @@
IF (K.LE.NM) CSJ(K)=CF
CF0=CF1
15 CF1=CF
- IF (CDABS(CSA).GT.CDABS(CSB)) CS=CSA/CF
+ IF (CDABS(CSA).GT.CDABS(CSB)) CS=CSA/CF1
IF (CDABS(CSA).LE.CDABS(CSB)) CS=CSB/CF0
DO 20 K=0,NM
20 CSJ(K)=CS*CSJ(K)
@@ -1609,7 +1609,7 @@
IMPLICIT DOUBLE PRECISION (A-H,O-Z)
IF (M.LE.12.OR.Q.LE.3.0*M.OR.Q.GT.M*M) THEN
CALL CV0(KD,M,Q,A)
- IF (Q.NE.0.0D0) CALL REFINE(KD,M,Q,A,1)
+ IF (Q.NE.0.0D0) CALL REFINE(KD,M,Q,A)
ELSE
NDIV=10
DELTA=(M-3.0)*M/NDIV
@@ -1626,7 +1626,7 @@
A=(A1*Q2-A2*Q1+(A2-A1)*QQ)/(Q2-Q1)
IFLAG=1
IF (I.EQ.NN) IFLAG=-1
- CALL REFINE(KD,M,QQ,A,IFLAG)
+ CALL REFINE(KD,M,QQ,A)
Q1=Q2
Q2=QQ
A1=A2
@@ -1650,7 +1650,7 @@
A=(A1*Q2-A2*Q1+(A2-A1)*QQ)/(Q2-Q1)
IFLAG=1
IF (I.EQ.NN) IFLAG=-1
- CALL REFINE(KD,M,QQ,A,IFLAG)
+ CALL REFINE(KD,M,QQ,A)
Q1=Q2
Q2=QQ
A1=A2
@@ -2007,7 +2007,7 @@
C **********************************
- SUBROUTINE REFINE(KD,M,Q,A,IFLAG)
+ SUBROUTINE REFINE(KD,M,Q,A)
C
C =====================================================
C Purpose: calculate the accurate characteristic value
@@ -2029,7 +2029,7 @@
CALL CVF(KD,M,Q,X0,MJ,F0)
X1=1.002*A
CALL CVF(KD,M,Q,X1,MJ,F1)
-5 DO 10 IT=1,100
+ DO 10 IT=1,100
MJ=MJ+1
X=X1-(X1-X0)/(1.0D0-F0/F1)
CALL CVF(KD,M,Q,X,MJ,F)
@@ -6307,7 +6307,7 @@
150 ZHF=ZF0+ZF1
ENDIF
ENDIF
-155 A=AA
+ A=AA
B=BB
IF (K.GT.150) WRITE(*,160)
160 FORMAT(1X,'Warning! You should check the accuracy')
@@ -9750,7 +9750,7 @@
Z=ZERO
W=0.0D0
DO 35 NR=1,NT
-10 IF (NR.NE.1) Z=ZO(NR-1)-H
+ IF (NR.NE.1) Z=ZO(NR-1)-H
IT=0
15 IT=IT+1
CALL CY01(KF,Z,ZF,ZD)
Modified: trunk/Lib/special/tests/test_basic.py
===================================================================
--- trunk/Lib/special/tests/test_basic.py 2007-05-15 20:56:36 UTC (rev 3008)
+++ trunk/Lib/special/tests/test_basic.py 2007-05-16 17:05:50 UTC (rev 3009)
@@ -193,7 +193,8 @@
cephes.hankel2e(1,1)
def check_hyp1f1(self):
- cephes.hyp1f1(1,1,1)
+ assert_approx_equal(cephes.hyp1f1(1,1,1), exp(1.0))
+ assert_approx_equal(cephes.hyp1f1(3,4,-6), 0.026056422099537251095)
def check_hyp1f2(self):
cephes.hyp1f2(1,1,1,1)
def check_hyp2f0(self):
More information about the Scipy-svn
mailing list