Added build_all.py that compiles all f2py extensions

WAFO now works!
master
Per.Andreas.Brodtkorb 15 years ago
parent 93b6da97c0
commit b2c5aa8c00

@ -16,7 +16,7 @@ python setup.py sdist bdist_wininst upload --show-response
#!/usr/bin/env python
import os, sys
sys.argv.append("develop")
#sys.argv.append("develop")
#sys.argv.append("install")
DISTUTILS_DEBUG = True
pkg_name = 'wafo'
@ -33,9 +33,9 @@ if True: #__file__ == 'setupegg.py':
else:
from distutils.core import setup
t = find_packages('src')
subpackages = ('spectrum','data','transform','covariance')
subpackagesfull = [os.path.join(pkg_name,f) for f in subpackages]
#subpackagesfull = [os.path.join(pkg_name,f) for f in subpackages]
subtests = [os.path.join(subpkg,'test') for subpkg in subpackages]
@ -58,7 +58,7 @@ setup(
author_email='wafo@maths.lth.se',
decription = 'Statistical analysis and simulation of random waves and random loads',
long_description = info.__doc__,
install_requires = ['numpy>=1.3'],
install_requires = ['numpy>=1.4'],
license = "GPL",
url='http://www.maths.lth.se/matstat/wafo/',
name = pkg_name,

@ -1,14 +1,21 @@
.project
.pydevproject
gendocwafo.py
manifest
setup.py
setup_old.py
src/WAFO.egg-info/SOURCES.txt
src/epydoc_wafo.prj
src/Wafo.egg-info/PKG-INFO
src/Wafo.egg-info/SOURCES.txt
src/Wafo.egg-info/dependency_links.txt
src/Wafo.egg-info/top_level.txt
src/wafo/SpecData1D.mm
src/wafo/__init__.py
src/wafo/c_library.pyd
src/wafo/data_structures.py
src/wafo/dctpack.py
src/wafo/definitions.py
src/wafo/definitions.~py
src/wafo/demo_sg.py
src/wafo/gaussian.py
src/wafo/info.py
@ -17,23 +24,247 @@ src/wafo/interpolate.py
src/wafo/kdetools.py
src/wafo/meshgrid.py
src/wafo/misc.py
src/wafo/mvn.pyd
src/wafo/mvn.pyf
src/wafo/mvndst.f
src/wafo/mvnprdmod.pyd
src/wafo/namedtuple.py
src/wafo/objects.py
src/wafo/plotbackend.py
src/wafo/polynomial.py
src/wafo/polynomial_old.py
src/wafo/ppimport.py
src/wafo/rindmod.pyd
src/wafo/sg_filter.py
src/wafo/test_ppimport.py
src/wafo/wafodata.py
src/wafo/weaver.py
src/wafo.egg-info/SOURCES.txt
src/wafo/covariance/__init__.py
src/wafo/covariance/core.py
src/wafo/data/__init__.py
src/wafo/data/atlantic.dat
src/wafo/data/gfaks89.dat
src/wafo/data/gfaksr89.dat
src/wafo/data/info.py
src/wafo/data/info.~py
src/wafo/data/japansea.dat
src/wafo/data/northsea.dat
src/wafo/data/sea.dat
src/wafo/data/sea.m
src/wafo/data/sfa89.dat
src/wafo/data/sn.dat
src/wafo/data/wafoLogoNewWithBorder.png
src/wafo/data/wafoLogoNewWithBorder.svg
src/wafo/data/wafoLogoNewWithoutBorder.png
src/wafo/data/wafoLogoNewWithoutBorder.svg
src/wafo/data/wafologoWithBorder.png
src/wafo/data/yura87.dat
src/wafo/source/c_codes/build_all.py
src/wafo/source/c_codes/c_functions.c
src/wafo/source/c_codes/c_library.pyd
src/wafo/source/c_codes/c_library.pyf
src/wafo/source/c_codes/old/diffsumfunq.pyd
src/wafo/source/c_codes/old/diffsumfunq.pyf
src/wafo/source/c_codes/old/disufq.pyf
src/wafo/source/c_codes/old/disufq1.c
src/wafo/source/c_codes/old/findcross.c
src/wafo/source/c_codes/old/findrfc.c
src/wafo/source/c_codes/old/rfc.pyd
src/wafo/source/c_codes/old/rfc.pyf
src/wafo/source/cov2XXXpdf/cov2acdf.f
src/wafo/source/cov2XXXpdf/cov2mmpdf.f
src/wafo/source/cov2XXXpdf/cov2mmtpdf.f
src/wafo/source/cov2XXXpdf/cov2tccpdf.f
src/wafo/source/cov2XXXpdf/cov2tcpdf.f
src/wafo/source/cov2XXXpdf/cov2thpdf.f
src/wafo/source/cov2XXXpdf/cov2thpdfalan.f
src/wafo/source/cov2XXXpdf/cov2tthpdf.f
src/wafo/source/cov2XXXpdf/bounds/cov2acdfb.f
src/wafo/source/cov2XXXpdf/bounds/cov2mmpdfb.f
src/wafo/source/cov2XXXpdf/bounds/cov2tccpdfb.f
src/wafo/source/cov2XXXpdf/bounds/cov2tthpdfb.f
src/wafo/source/mreg/checkmod.mod
src/wafo/source/mreg/cov2mmpdfmod.mod
src/wafo/source/mreg/cov2mmpdfreg.f
src/wafo/source/mreg/cov2mmpdfreg_intfc.f
src/wafo/source/mreg/dsvdc.f
src/wafo/source/mreg/epsmod.mod
src/wafo/source/mreg/expaccmod.mod
src/wafo/source/mreg/infcmod.mod
src/wafo/source/mreg/mregmod.mod
src/wafo/source/mreg/mregmodule.f
src/wafo/source/mreg/quadrmod.mod
src/wafo/source/mreg/rintmod.mod
src/wafo/source/mreg/sizemod.mod
src/wafo/source/mreg/svd.mod
src/wafo/source/mreg/tbrmod.mod
src/wafo/source/mvnprd/adaptivegausskronrod.mod
src/wafo/source/mvnprd/build_all.py
src/wafo/source/mvnprd/erfcoremod.mod
src/wafo/source/mvnprd/functioninterface.mod
src/wafo/source/mvnprd/integration1dmodule.mod
src/wafo/source/mvnprd/mvnprd.dsp
src/wafo/source/mvnprd/mvnprd.dsw
src/wafo/source/mvnprd/mvnprd.f
src/wafo/source/mvnprd/mvnprd.pyf
src/wafo/source/mvnprd/mvnprd_interface.f
src/wafo/source/mvnprd/mvnprdmod.pyd
src/wafo/source/mvnprd/mvnprodcorrprb.f
src/wafo/source/mvnprd/mvnprodcorrprb_interface.f
src/wafo/source/mvnprd/mvnprodcorrprbmod.mod
src/wafo/source/mvnprd/old/mvnprodcorrprb/adaptivegausskronrod.mod
src/wafo/source/mvnprd/old/mvnprodcorrprb/build_all.py
src/wafo/source/mvnprd/old/mvnprodcorrprb/erfcoremod.mod
src/wafo/source/mvnprd/old/mvnprodcorrprb/functioninterface.mod
src/wafo/source/mvnprd/old/mvnprodcorrprb/integration1dmodule.mod
src/wafo/source/mvnprd/old/mvnprodcorrprb/mvnprdmod.pyd
src/wafo/source/mvnprd/old/mvnprodcorrprb/mvnprodcorrprb.f
src/wafo/source/mvnprd/old/mvnprodcorrprb/mvnprodcorrprb_interface.f
src/wafo/source/mvnprd/old/mvnprodcorrprb/mvnprodcorrprbmod.mod
src/wafo/source/mvnprd/old/mvnprodcorrprb/Debug/DF60.PDB
src/wafo/source/mvnprd/old/mvnprodcorrprb/Debug/adaptivegausskronrod.mod
src/wafo/source/mvnprd/old/mvnprodcorrprb/Debug/erfcoremod.mod
src/wafo/source/mvnprd/old/mvnprodcorrprb/Debug/functioninterface.mod
src/wafo/source/mvnprd/old/mvnprodcorrprb/Debug/integration1dmodule.mod
src/wafo/source/mvnprd/old/mvnprodcorrprb/Debug/mvnprodcorrprb.obj
src/wafo/source/mvnprd/old/mvnprodcorrprb/Debug/mvnprodcorrprbmod.mod
src/wafo/source/mvnprd/old/mvnprodcorrprb/Debug/test_mvnprodcorrprb.exe
src/wafo/source/mvnprd/old/mvnprodcorrprb/Debug/test_mvnprodcorrprb.ilk
src/wafo/source/mvnprd/old/mvnprodcorrprb/Debug/test_mvnprodcorrprb.obj
src/wafo/source/mvnprd/old/mvnprodcorrprb/Debug/test_mvnprodcorrprb.pdb
src/wafo/source/mvnprd/old/mvnprodcorrprb/old/AdaptiveGaussKronrod.f90
src/wafo/source/mvnprd/old/mvnprodcorrprb/old/adaptivegausskronrod.mod
src/wafo/source/mvnprd/old/mvnprodcorrprb/old/adaptivegausskronrod.pyf
src/wafo/source/mvnprd/old/mvnprodcorrprb/old/adaptivegausskronrod.pyfo
src/wafo/source/mvnprd/old/mvnprodcorrprb/old/dea.f
src/wafo/source/mvnprd/old/mvnprodcorrprb/old/deamod.pyf
src/wafo/source/mvnprd/old/mvnprodcorrprb/old/erfcore.f90
src/wafo/source/mvnprd/old/mvnprodcorrprb/old/erfcore.pyd
src/wafo/source/mvnprd/old/mvnprodcorrprb/old/erfcoremod.mod
src/wafo/source/mvnprd/old/mvnprodcorrprb/old/functioninterface.mod
src/wafo/source/mvnprd/old/mvnprodcorrprb/old/integration1Dmodule.f
src/wafo/source/mvnprd/old/mvnprodcorrprb/old/integration1Dmodule.f90
src/wafo/source/mvnprd/old/mvnprodcorrprb/old/integration1dmodule.mod
src/wafo/source/mvnprd/old/mvnprodcorrprb/old/mvn.exe
src/wafo/source/mvnprd/old/mvnprodcorrprb/old/mvnprodcorrprb.f90
src/wafo/source/mvnprd/old/mvnprodcorrprb/old/mvnprodcorrprb.pyf
src/wafo/source/mvnprd/old/mvnprodcorrprb/old/mvnprodcorrprbmod.f90
src/wafo/source/mvnprd/old/mvnprodcorrprb/old/test_mvnprodcorrprb.dsp
src/wafo/source/mvnprd/old/mvnprodcorrprb/old/test_mvnprodcorrprb.dsw
src/wafo/source/mvnprd/old/mvnprodcorrprb/old/test_mvnprodcorrprb.f
src/wafo/source/mvnprd/old/mvnprodcorrprb/old/test_mvnprodcorrprb.opt
src/wafo/source/mvnprd/old/mvnprodcorrprb/old/test_mvnprodcorrprb.plg
src/wafo/source/old/adaptivegausskronrod.mod
src/wafo/source/old/dunnettprb.f
src/wafo/source/old/erfcore.f
src/wafo/source/old/erfcore.pyd
src/wafo/source/old/erfcore.pydold
src/wafo/source/old/erfcore.pyf
src/wafo/source/old/erfcoremod.f
src/wafo/source/old/erfcoremod.f90
src/wafo/source/old/erfcoremod.mod
src/wafo/source/old/erfcoremod.pyd
src/wafo/source/old/erfcoremod.pyf
src/wafo/source/old/erfcoremod.pyfold
src/wafo/source/old/erfcoremod0.f90
src/wafo/source/old/erfcoremod1.pyf
src/wafo/source/old/erfcoremod_interface.f90
src/wafo/source/old/functioninterface.mod
src/wafo/source/old/integration1dmodule.mod
src/wafo/source/rind2007/.cproject
src/wafo/source/rind2007/.project
src/wafo/source/rind2007/New File.txt
src/wafo/source/rind2007/adaptmod.mod
src/wafo/source/rind2007/build_all.py
src/wafo/source/rind2007/c1c2mod.mod
src/wafo/source/rind2007/dkbvrcmod.mod
src/wafo/source/rind2007/erfcoremod.f
src/wafo/source/rind2007/fimod.f
src/wafo/source/rind2007/fimod.mod
src/wafo/source/rind2007/funcmod.mod
src/wafo/source/rind2007/globalconst.mod
src/wafo/source/rind2007/globaldata.mod
src/wafo/source/rind2007/intmodule.f
src/wafo/source/rind2007/jacobmod.f
src/wafo/source/rind2007/jacobmod.mod
src/wafo/source/rind2007/krbvrcmod.mod
src/wafo/source/rind2007/krobovmod.mod
src/wafo/source/rind2007/precisionmod.mod
src/wafo/source/rind2007/quad.mod
src/wafo/source/rind2007/rcrudemod.mod
src/wafo/source/rind2007/rind71mod.f
src/wafo/source/rind2007/rind71mod.mod
src/wafo/source/rind2007/rind_interface.f
src/wafo/source/rind2007/rindmod.f
src/wafo/source/rind2007/rindmod.mod
src/wafo/source/rind2007/rindmod.pyd
src/wafo/source/rind2007/ssobolmod.mod
src/wafo/source/rind2007/swapmod.f
src/wafo/source/rind2007/swapmod.mod
src/wafo/source/rind2007/test_fimod.dsp
src/wafo/source/rind2007/test_fimod.dsw
src/wafo/source/rind2007/test_fimod.exe
src/wafo/source/rind2007/test_fimod.f
src/wafo/source/rind2007/test_rind71mod.exe
src/wafo/source/rind2007/test_rind71mod.f
src/wafo/source/rind2007/test_rindmod.exe
src/wafo/source/rind2007/test_rindmod.f
src/wafo/source/rind2007/test_rindmod2007.exe
src/wafo/source/rind2007/test_rindmod2007.opt
src/wafo/source/rind2007/test_rindmod2007.plg
src/wafo/source/rind2007/trivariatevar.mod
src/wafo/source/rind2007/Debug/DF60.PDB
src/wafo/source/rind2007/Debug/adaptmod.mod
src/wafo/source/rind2007/Debug/c1c2mod.mod
src/wafo/source/rind2007/Debug/dkbvrcmod.mod
src/wafo/source/rind2007/Debug/erfcoremod.mod
src/wafo/source/rind2007/Debug/erfcoremod.obj
src/wafo/source/rind2007/Debug/fimod.mod
src/wafo/source/rind2007/Debug/fimod.obj
src/wafo/source/rind2007/Debug/funcmod.mod
src/wafo/source/rind2007/Debug/globaldata.mod
src/wafo/source/rind2007/Debug/intmodule.obj
src/wafo/source/rind2007/Debug/jacobmod.mod
src/wafo/source/rind2007/Debug/jacobmod.obj
src/wafo/source/rind2007/Debug/krbvrcmod.mod
src/wafo/source/rind2007/Debug/krobovmod.mod
src/wafo/source/rind2007/Debug/makefile
src/wafo/source/rind2007/Debug/objects.mk
src/wafo/source/rind2007/Debug/precisionmod.mod
src/wafo/source/rind2007/Debug/quad.mod
src/wafo/source/rind2007/Debug/rcrudemod.mod
src/wafo/source/rind2007/Debug/rind71.obj
src/wafo/source/rind2007/Debug/rindmod.mod
src/wafo/source/rind2007/Debug/sources.mk
src/wafo/source/rind2007/Debug/ssobolmod.mod
src/wafo/source/rind2007/Debug/subdir.mk
src/wafo/source/rind2007/Debug/test_rind71.exe
src/wafo/source/rind2007/Debug/test_rind71.ilk
src/wafo/source/rind2007/Debug/test_rind71.obj
src/wafo/source/rind2007/Debug/test_rind71.pdb
src/wafo/source/rind2007/Debug/trivariatevar.mod
src/wafo/source/test_f90/hello.f90
src/wafo/source/test_f90/hello.mod
src/wafo/source/test_f90/hello.pyd
src/wafo/source/test_f90/hello.txt
src/wafo/source/test_f90/hello_interface.f90
src/wafo/source/test_f90/mymod.f90
src/wafo/source/test_f90/mymod.pyd
src/wafo/source/test_f90/types.f90
src/wafo/source/test_f90/types.mod
src/wafo/spectrum/__init__.py
src/wafo/spectrum/core.py
src/wafo/spectrum/dispersion_relation.py
src/wafo/spectrum/models.py
src/wafo/stats/__init__.py
src/wafo/stats/core.py
src/wafo/stats/distributions.py
src/wafo/stats/estimation.py
src/wafo/stats/misc.py
src/wafo/stats/plotbackend.py
src/wafo/test/__init__.py
src/wafo/transform/__init__.py
src/wafo/transform/core.py
src/wafo/transform/models.py
src/wafo/transform/models.~py

Binary file not shown.

Binary file not shown.

@ -1,30 +0,0 @@
! File diffsumfunq.pyf
python module diffsumfunq
interface
subroutine disufq(rvec, ivec, rA, iA, w, kw, h, g,nmin,nmax, m, n)
intent(c) disufq ! disufq is a C function
intent(c) ! all disufq arguments are considered as C based
integer intent(hide), depend(rA),check(n==shape(iA,0)) :: n=shape(rA,0)
integer intent(hide), depend(rA), check(m==shape(iA,1)) :: m=shape(rA,1)
double precision dimension(n,m), intent(in) :: rA, iA ! input array
double precision dimension(n), intent(in) :: w, kw ! input array
double precision intent(in) :: h, g
integer intent(in) :: nmin, nmax
double precision dimension(n,m), intent(out) :: rvec, ivec ! output array,
end subroutine disufq
subroutine disufq2(rsvec, isvec,rdvec, idvec, rA, iA, w, kw, h, g,nmin,nmax, m, n)
intent(c) disufq2 ! disufq2 is a C function
intent(c) ! all disufq2 arguments are considered as C based
integer intent(hide), depend(rA),check(n==shape(iA,0)) :: n=shape(rA,0)
integer intent(hide), depend(rA), check(m==shape(iA,1)) :: m=shape(rA,1)
double precision dimension(n,m), intent(in) :: rA, iA ! input array
double precision dimension(n), intent(in) :: w, kw ! input array
double precision intent(in) :: h, g
integer intent(in) :: nmin, nmax
double precision dimension(n,m), intent(out) :: rsvec, isvec, rdvec, idvec ! output array,
end subroutine disufq
end interface
end python module diffsumfunq

@ -1,30 +0,0 @@
! File diffsumfunq.pyf
python module diffsumfunq
interface
subroutine disufq(rvec, ivec, rA, iA, w, kw, h, g,nmin,nmax, m, n)
intent(c) disufq ! disufq is a C function
intent(c) ! all disufq arguments are considered as C based
integer intent(hide), depend(rA),check(n==shape(iA,0)) :: n=shape(rA,0)
integer intent(hide), depend(rA), check(m==shape(iA,1)) :: m=shape(rA,1)
double precision dimension(n,m), intent(in) :: rA, iA ! input array
double precision dimension(n), intent(in) :: w, kw ! input array
double precision intent(in) :: h, g
integer intent(in) :: nmin, nmax
double precision dimension(n,m), intent(out) :: rvec, ivec ! output array,
end subroutine disufq
subroutine disufq2(rsvec, isvec,rdvec, idvec, rA, iA, w, kw, h, g,nmin,nmax, m, n)
intent(c) disufq2 ! disufq2 is a C function
intent(c) ! all disufq2 arguments are considered as C based
integer intent(hide), depend(rA),check(n==shape(iA,0)) :: n=shape(rA,0)
integer intent(hide), depend(rA), check(m==shape(iA,1)) :: m=shape(rA,1)
double precision dimension(n,m), intent(in) :: rA, iA ! input array
double precision dimension(n), intent(in) :: w, kw ! input array
double precision intent(in) :: h, g
integer intent(in) :: nmin, nmax
double precision dimension(n,m), intent(out) :: rsvec, isvec, rdvec, idvec ! output array,
end subroutine disufq
end interface
end python module diffsumfunq

@ -1,446 +0,0 @@
#include "math.h"
/*
* DISUFQ Is an internal function to spec2nlsdat
*
* CALL: disufq(rvec,ivec,rA,iA, w,kw,h,g,nmin,nmax,m,n)
*
* rvec, ivec = real and imaginary parts of the resultant (size m X n).
* rA, iA = real and imaginary parts of the amplitudes (size m X n).
* w = vector with angular frequencies (w>=0)
* kw = vector with wavenumbers (kw>=0)
* h = water depth (h >=0)
* g = constant acceleration of gravity
* nmin = minimum index where rA(:,nmin) and iA(:,nmin) is
* greater than zero.
* nmax = maximum index where rA(:,nmax) and iA(:,nmax) is
* greater than zero.
* m = size(rA,1),size(iA,1)
* n = size(rA,2),size(iA,2), or size(rvec,2),size(ivec,2)
*
* DISUFQ returns the summation of difference frequency and sum
* frequency effects in the vector vec = rvec +sqrt(-1)*ivec.
* The 2'nd order contribution to the Stokes wave is then calculated by
* a simple 1D Fourier transform, real(FFT(vec)).
*
* Install gfortran and run the following to build the module:
* f2py diffsumfunq.pyf disufq1.c -c --fcompiler=gnu95 --compiler=mingw32 -lmsvcr71
*
* by Per Andreas Brodtkorb 15.08.2001
* revised pab 14.03.2002, 01.05.2002 22.07.2002, oct 2008
*/
void disufq(double *rvec, double *ivec,
double *rA, double *iA,
double *w, double *kw,
double h, double g,
int nmin, int nmax,
int m, int n)
{
double Epij, Edij;
double tmp1, tmp2, tmp3, tmp4, kfact;
double w1, w2, kw1, kw2, Cg;
double rrA, iiA, riA, irA;
int i,jy,ix,iz1,iv1,ixi,jyi;
//int iz2, iv2;
//Initialize rvec and ivec to zero
for (ix=0;ix<n*m;ix++) {
rvec[ix] = 0.0;
ivec[ix] = 0.0;
}
// kfact is set to 2 in order to exploit the symmetry.
// If you set kfact to 1, you must uncomment all statements
// including the expressions: rvec[iz2], rvec[iv2], ivec[iz2] and ivec[iv2].
kfact = 2.0;
if (h>10000){ /* deep water /Inifinite water depth */
for (ix = nmin-1;ix<nmax;ix++) {
ixi = ix*m;
iz1 = 2*ixi;
//iz2 = n*m-ixi;
kw1 = kw[ix];
Epij = kw1;
for (i=0;i<m;i++,ixi++,iz1++) {
rrA = rA[ixi]*rA[ixi]; ///
iiA = iA[ixi]*iA[ixi]; ///
riA = rA[ixi]*iA[ixi]; ///
/// Sum frequency effects along the diagonal
tmp1 = kfact*(rrA-iiA)*Epij;
tmp2 = kfact*2.0*riA*Epij;
rvec[iz1] += tmp1;
ivec[iz1] += tmp2;
//rvec[iz2] += tmp1;
//ivec[iz2] -= tmp2;
//iz2++;
/// Difference frequency effects are zero along the diagonal
/// and are thus not contributing to the mean.
}
for (jy = ix+1;jy<nmax;jy++){
kw2 = kw[jy];
Epij = 0.5*(kw2 + kw1);
Edij = -0.5*(kw2 - kw1);
//printf("Edij = %f Epij = %f \n", Edij,Epij);
ixi = ix*m;
jyi = jy*m;
iz1 = ixi+jyi;
iv1 = jyi-ixi;
//iz2 = (n*m-iz1);
//iv2 = (n*m-iv1);
for (i = 0;i<m;i++,ixi++,jyi++,iz1++,iv1++) {
rrA = rA[ixi]*rA[jyi]; ///rrA = rA[i][ix]*rA[i][jy];
iiA = iA[ixi]*iA[jyi]; ///iiA = iA[i][ix]*iA[i][jy];
riA = rA[ixi]*iA[jyi]; ///riA = rA[i][ix]*iA[i][jy];
irA = iA[ixi]*rA[jyi]; ///irA = iA[i][ix]*rA[i][jy];
/* Sum frequency effects */
tmp1 = kfact*2.0*(rrA-iiA)*Epij;
tmp2 = kfact*2.0*(riA+irA)*Epij;
rvec[iz1] += tmp1;///rvec[i][ix+jy] += tmp1;
ivec[iz1] += tmp2;///ivec[i][ix+jy] += tmp2;
//rvec[iz2] += tmp1;///rvec[i][n*m-(ix+jy)] += tmp1;
//ivec[iz2] -= tmp2;///ivec[i][n*m-(ix+jy)] -= tmp2;
// iz2++;
/* Difference frequency effects */
tmp1 = kfact*2.0*(rrA+iiA)*Edij;
tmp2 = kfact*2.0*(riA-irA)*Edij;
rvec[iv1] += tmp1;///rvec[i][jy-ix] += tmp1;
ivec[iv1] += tmp2;///ivec[i][jy-ix] += tmp2;
//rvec[iv2] += tmp1;///rvec[i][n*m-(jy-ix)] += tmp1;
//ivec[iv2] -= tmp2;///ivec[i][n*m-(jy-ix)] -= tmp2;
//iv2++;
}
}
}
}
else{ /* Finite water depth */
for (ix = nmin-1;ix<nmax;ix++) {
kw1 = kw[ix];
w1 = w[ix];
tmp1 = tanh(kw1*h);
/// Cg, wave group velocity
Cg = 0.5*g*(tmp1 + kw1*h*(1.0- tmp1*tmp1))/w1; /// OK
tmp1 = 0.5*g*(kw1/w1)*(kw1/w1);
tmp2 = 0.5*w1*w1/g;
tmp3 = g*kw1/(w1*Cg);
if (kw1*h<300.0){
tmp4 = kw1/sinh(2.0*kw1*h);
}
else{ // To ensure sinh does not overflow.
tmp4 = 0.0;
}
// Difference frequency effects finite water depth
Edij = (tmp1-tmp2+tmp3)/(1.0-g*h/(Cg*Cg))-tmp4; /// OK
// Sum frequency effects finite water depth
Epij = (3.0*(tmp1-tmp2)/(1.0-tmp1/kw1*tanh(2.0*kw1*h))+3.0*tmp2-tmp1); /// OK
//printf("Edij = %f Epij = %f \n", Edij,Epij);
ixi = ix*m;
iz1 = 2*ixi;
//iz2 = n*m-ixi;
for (i=0;i<m;i++,ixi++,iz1++) {
rrA = rA[ixi]*rA[ixi]; ///
iiA = iA[ixi]*iA[ixi]; ///
riA = rA[ixi]*iA[ixi]; ///
/// Sum frequency effects along the diagonal
rvec[iz1] += kfact*(rrA-iiA)*Epij;
ivec[iz1] += kfact*2.0*riA*Epij;
//rvec[iz2] += kfact*(rrA-iiA)*Epij;
//ivec[iz2] -= kfact*2.0*riA*Epij;
//iz2++;
/// Difference frequency effects along the diagonal
/// are only contributing to the mean
rvec[i] += 2.0*(rrA+iiA)*Edij;
}
for (jy = ix+1;jy<nmax;jy++) {
// w1 = w[ix];
// kw1 = kw[ix];
w2 = w[jy];
kw2 = kw[jy];
tmp1 = g*(kw1/w1)*(kw2/w2);
tmp2 = 0.5/g*(w1*w1+w2*w2+w1*w2);
tmp3 = 0.5*g*(w1*kw2*kw2+w2*kw1*kw1)/(w1*w2*(w1+w2));
tmp4 = (1-g*(kw1+kw2)/(w1+w2)/(w1+w2)*tanh((kw1+kw2)*h));
Epij = (tmp1-tmp2+tmp3)/tmp4+tmp2-0.5*tmp1; /* OK */
tmp2 = 0.5/g*(w1*w1+w2*w2-w1*w2); /*OK*/
tmp3 = -0.5*g*(w1*kw2*kw2-w2*kw1*kw1)/(w1*w2*(w1-w2));
tmp4 = (1.0-g*(kw1-kw2)/(w1-w2)/(w1-w2)*tanh((kw1-kw2)*h));
Edij = (tmp1-tmp2+tmp3)/tmp4+tmp2-0.5*tmp1; /* OK */
//printf("Edij = %f Epij = %f \n", Edij,Epij);
ixi = ix*m;
jyi = jy*m;
iz1 = ixi+jyi;
iv1 = jyi-ixi;
// iz2 = (n*m-iz1);
// iv2 = n*m-iv1;
for (i=0;i<m;i++,ixi++,jyi++,iz1++,iv1++) {
rrA = rA[ixi]*rA[jyi]; ///rrA = rA[i][ix]*rA[i][jy];
iiA = iA[ixi]*iA[jyi]; ///iiA = iA[i][ix]*iA[i][jy];
riA = rA[ixi]*iA[jyi]; ///riA = rA[i][ix]*iA[i][jy];
irA = iA[ixi]*rA[jyi]; ///irA = iA[i][ix]*rA[i][jy];
/* Sum frequency effects */
tmp1 = kfact*2.0*(rrA-iiA)*Epij;
tmp2 = kfact*2.0*(riA+irA)*Epij;
rvec[iz1] += tmp1;///rvec[i][jy+ix] += tmp1;
ivec[iz1] += tmp2;///ivec[i][jy+ix] += tmp2;
//rvec[iz2] += tmp1;///rvec[i][n*m-(jy+ix)] += tmp1;
//ivec[iz2] -= tmp2;///ivec[i][n*m-(jy+ix)] -= tmp2;
//iz2++;
/* Difference frequency effects */
tmp1 = kfact*2.0*(rrA+iiA)*Edij;
tmp2 = kfact*2.0*(riA-irA)*Edij;
rvec[iv1] += tmp1;///rvec[i][jy-ix] += tmp1;
ivec[iv1] += tmp2;///ivec[i][jy-ix] -= tmp2;
//rvec[iv2] += tmp1;
//ivec[iv2] -= tmp2;
//iv2++;
}
}
}
}
//return i;
}
/*
* DISUFQ2 Is an internal function to spec2nlsdat
*
* CALL: disufq2(rsvec,isvec,rdvec,idvec,rA,iA, w,kw,h,g,nmin,nmax,m,n)
*
* rsvec, isvec = real and imaginary parts of the sum frequency
* effects (size m X n).
* rdvec, idvec = real and imaginary parts of the difference frequency
* effects (size m X n).
* rA, iA = real and imaginary parts of the amplitudes (size m X n).
* w = vector with angular frequencies (w>=0)
* kw = vector with wavenumbers (kw>=0)
* h = water depth (h >=0)
* g = constant acceleration of gravity
* nmin = minimum index where rA(:,nmin) and iA(:,nmin) is
* greater than zero.
* nmax = maximum index where rA(:,nmax) and iA(:,nmax) is
* greater than zero.
* m = size(rA,1),size(iA,1)
* n = size(rA,2),size(iA,2), or size(rvec,2),size(ivec,2)
*
* DISUFQ2 returns the summation of sum and difference frequency
* frequency effects in the vectors svec = rsvec +sqrt(-1)*isvec and
* dvec = rdvec +sqrt(-1)*idvec.
* The 2'nd order contribution to the Stokes wave is then calculated by
* a simple 1D Fourier transform, real(FFT(svec+dvec)).
*
*
* This is a MEX-file for MATLAB.
* by Per Andreas Brodtkorb 15.08.2001
* revised pab 14.03.2002, 01.05.2002
*/
void disufq2(double *rsvec, double *isvec,
double *rdvec, double *idvec,
double *rA, double *iA,
double *w, double *kw,
double h, double g,
int nmin, int nmax,
int m, int n)
{
double Epij, Edij;
double tmp1, tmp2, tmp3, tmp4, kfact;
double w1, w2, kw1, kw2, Cg;
double rrA, iiA, riA, irA;
int i,jy,ix,iz1,iv1,ixi,jyi;
//int iz2,iv2
//Initialize rvec and ivec to zero
for (ix=0;ix<n*m;ix++) {
rsvec[ix] = 0.0;
isvec[ix] = 0.0;
rdvec[ix] = 0.0;
idvec[ix] = 0.0;
}
// kfact is set to 2 in order to exploit the symmetry.
// If you set kfact to 1, you must uncomment all statements
// including the expressions: rvec[iz2], rvec[iv2], ivec[iz2] and ivec[iv2].
kfact = 2.0;
if (h>10000){ /* deep water /Inifinite water depth */
for (ix = nmin-1;ix<nmax;ix++) {
ixi = ix*m;
iz1 = 2*ixi;
//iz2 = n*m-ixi;
kw1 = kw[ix];
Epij = kw1;
for (i=0;i<m;i++,ixi++,iz1++) {
rrA = rA[ixi]*rA[ixi]; ///
iiA = iA[ixi]*iA[ixi]; ///
riA = rA[ixi]*iA[ixi]; ///
/// Sum frequency effects along the diagonal
tmp1 = kfact*(rrA-iiA)*Epij;
tmp2 = kfact*2.0*riA*Epij;
rsvec[iz1] += tmp1;
isvec[iz1] += tmp2;
//rsvec[iz2] += tmp1;
//isvec[iz2] -= tmp2;
//iz2++;
/// Difference frequency effects are zero along the diagonal
/// and are thus not contributing to the mean.
}
for (jy = ix+1;jy<nmax;jy++){
kw2 = kw[jy];
Epij = 0.5*(kw2 + kw1);
Edij = -0.5*(kw2 - kw1);
//printf("Edij = %f Epij = %f \n", Edij,Epij);
ixi = ix*m;
jyi = jy*m;
iz1 = ixi+jyi;
iv1 = jyi-ixi;
//iz2 = (n*m-iz1);
//iv2 = (n*m-iv1);
for (i = 0;i<m;i++,ixi++,jyi++,iz1++,iv1++) {
rrA = rA[ixi]*rA[jyi]; ///rrA = rA[i][ix]*rA[i][jy];
iiA = iA[ixi]*iA[jyi]; ///iiA = iA[i][ix]*iA[i][jy];
riA = rA[ixi]*iA[jyi]; ///riA = rA[i][ix]*iA[i][jy];
irA = iA[ixi]*rA[jyi]; ///irA = iA[i][ix]*rA[i][jy];
/* Sum frequency effects */
tmp1 = kfact*2.0*(rrA-iiA)*Epij;
tmp2 = kfact*2.0*(riA+irA)*Epij;
rsvec[iz1] += tmp1; ///rvec[i][ix+jy] += tmp1;
isvec[iz1] += tmp2; ///ivec[i][ix+jy] += tmp2;
//rsvec[iz2] += tmp1;///rvec[i][n*m-(ix+jy)] += tmp1;
//isvec[iz2] -= tmp2;///ivec[i][n*m-(ix+jy)] += tmp2;
//iz2++;
/* Difference frequency effects */
tmp1 = kfact*2.0*(rrA+iiA)*Edij;
tmp2 = kfact*2.0*(riA-irA)*Edij;
rdvec[iv1] += tmp1;///rvec[i][jy-ix] += tmp1;
idvec[iv1] += tmp2;///ivec[i][jy-ix] += tmp2;
//rdvec[iv2] += tmp1;///rvec[i][n*m-(jy-ix)] += tmp1;
//idvec[iv2] -= tmp2;///ivec[i][n*m-(jy-ix)] -= tmp2;
// iv2++;
}
}
}
}
else{ /* Finite water depth */
for (ix = nmin-1;ix<nmax;ix++) {
kw1 = kw[ix];
w1 = w[ix];
tmp1 = tanh(kw1*h);
/// Cg, wave group velocity
Cg = 0.5*g*(tmp1 + kw1*h*(1.0- tmp1*tmp1))/w1; /// OK
tmp1 = 0.5*g*(kw1/w1)*(kw1/w1);
tmp2 = 0.5*w1*w1/g;
tmp3 = g*kw1/(w1*Cg);
if (kw1*h<300.0){
tmp4 = kw1/sinh(2.0*kw1*h);
}
else{ // To ensure sinh does not overflow.
tmp4 = 0.0;
}
// Difference frequency effects finite water depth
Edij = (tmp1-tmp2+tmp3)/(1.0-g*h/(Cg*Cg))-tmp4; /// OK
// Sum frequency effects finite water depth
Epij = (3.0*(tmp1-tmp2)/(1.0-tmp1/kw1*tanh(2.0*kw1*h))+3.0*tmp2-tmp1); /// OK
//printf("Edij = %f Epij = %f \n", Edij,Epij);
ixi = ix*m;
iz1 = 2*ixi;
//iz2 = n*m-ixi;
for (i=0;i<m;i++,ixi++,iz1++) {
rrA = rA[ixi]*rA[ixi]; ///
iiA = iA[ixi]*iA[ixi]; ///
riA = rA[ixi]*iA[ixi]; ///
/// Sum frequency effects along the diagonal
rsvec[iz1] += kfact*(rrA-iiA)*Epij;
isvec[iz1] += kfact*2.0*riA*Epij;
//rsvec[iz2] += kfact*(rrA-iiA)*Epij;
//isvec[iz2] -= kfact*2.0*riA*Epij;
/// Difference frequency effects along the diagonal
/// are only contributing to the mean
//printf(" %f \n",2.0*(rrA+iiA)*Edij);
rdvec[i] += 2.0*(rrA+iiA)*Edij;
}
for (jy = ix+1;jy<nmax;jy++) {
// w1 = w[ix];
// kw1 = kw[ix];
w2 = w[jy];
kw2 = kw[jy];
tmp1 = g*(kw1/w1)*(kw2/w2);
tmp2 = 0.5/g*(w1*w1+w2*w2+w1*w2);
tmp3 = 0.5*g*(w1*kw2*kw2+w2*kw1*kw1)/(w1*w2*(w1+w2));
tmp4 = (1-g*(kw1+kw2)/(w1+w2)/(w1+w2)*tanh((kw1+kw2)*h));
Epij = (tmp1-tmp2+tmp3)/tmp4+tmp2-0.5*tmp1; /* OK */
tmp2 = 0.5/g*(w1*w1+w2*w2-w1*w2); /*OK*/
tmp3 = -0.5*g*(w1*kw2*kw2-w2*kw1*kw1)/(w1*w2*(w1-w2));
tmp4 = (1.0-g*(kw1-kw2)/(w1-w2)/(w1-w2)*tanh((kw1-kw2)*h));
Edij = (tmp1-tmp2+tmp3)/tmp4+tmp2-0.5*tmp1; /* OK */
//printf("Edij = %f Epij = %f \n", Edij,Epij);
ixi = ix*m;
jyi = jy*m;
iz1 = ixi+jyi;
iv1 = jyi-ixi;
// iz2 = (n*m-iz1);
// iv2 = (n*m-iv1);
for (i=0;i<m;i++,ixi++,jyi++,iz1++,iv1++) {
rrA = rA[ixi]*rA[jyi]; ///rrA = rA[i][ix]*rA[i][jy];
iiA = iA[ixi]*iA[jyi]; ///iiA = iA[i][ix]*iA[i][jy];
riA = rA[ixi]*iA[jyi]; ///riA = rA[i][ix]*iA[i][jy];
irA = iA[ixi]*rA[jyi]; ///irA = iA[i][ix]*rA[i][jy];
/* Sum frequency effects */
tmp1 = kfact*2.0*(rrA-iiA)*Epij;
tmp2 = kfact*2.0*(riA+irA)*Epij;
rsvec[iz1] += tmp1;///rsvec[i][jy+ix] += tmp1;
isvec[iz1] += tmp2;///isvec[i][jy+ix] += tmp2;
//rsvec[iz2] += tmp1;///rsvec[i][n*m-(jy+ix)] += tmp1;
//isvec[iz2] -= tmp2;///isvec[i][n*m-(jy-ix)] += tmp2;
//iz2++;
/* Difference frequency effects */
tmp1 = kfact*2.0*(rrA+iiA)*Edij;
tmp2 = kfact*2.0*(riA-irA)*Edij;
rdvec[iv1] += tmp1;
idvec[iv1] += tmp2;
//rdvec[iv2] += tmp1;
//idvec[iv2] -= tmp2;
// iv2++;
}
}
}
}
// return i;
}

@ -1,117 +0,0 @@
#include "math.h"
/*
* findrfc.c -
*
* Returns indices to RFC turningpoints of a vector
* of turningpoints
*
* Install gfortran and run the following to build the module:
* f2py rfc.pyf findrfc.c -c --fcompiler=gnu95 --compiler=mingw32 -lmsvcr71
*
* 1998 by Per Andreas Brodtkorb.
*/
void findrfc(double *y1,double hmin, double *ind, int n,int info) {
double xminus,xplus,Tpl,Tmi,*y,Tstart;
int i,j,ix=0,NC,iy;
if (*(y1+0)> *(y1+1)){ /* if first is a max*/
y=&(*(y1+1)); /* ignore the first max*/
NC=floor((n-1)/2);
Tstart=2;
}
else {
y=y1;
NC=floor(n/2);
Tstart=1;
}
if (NC<1){
info = 0;
return; /* No RFC cycles*/
}
if (( *(y+0) > *(y+1)) && ( *(y+1) > *(y+2)) ){
info = -1;
return; /*This is not a sequence of turningpoints, exit */
}
if ((*(y+0) < *(y+1)) && (*(y+1)< *(y+2))){
info=-1;
return; /*This is not a sequence of turningpoints, exit */
}
for (i=0; i<NC; i++) {
Tmi=Tstart+2*i;
Tpl=Tstart+2*i+2;
xminus=*(y+2*i);
xplus=*(y+2*i+2);
if(i!=0){
j=i-1;
while((j>=0) && (*(y+2*j+1)<=*(y+2*i+1))){
if( (*(y+2*j)<xminus) ){
xminus=*(y+2*j);
Tmi=Tstart+2*j;
} /*if */
j--;
} /*while j*/
} /*if i */
if ( xminus >= xplus){
if ( (*(y+2*i+1)-xminus) >= hmin){
*(ind+ix)=Tmi;
ix++;
*(ind+ix)=(Tstart+2*i+1);
ix++;
} /*if*/
goto L180;
}
j=i+1;
while((j<NC) ) {
if (*(y+2*j+1) >= *(y+2*i+1)) goto L170;
if( (*(y+2*j+2) <= xplus) ){
xplus=*(y+2*j+2);
Tpl=(Tstart+2*j+2);
}/*if*/
j++;
} /*while*/
if ( (*(y+2*i+1)-xminus) >= hmin) {
*(ind+ix)=Tmi;
ix++;
*(ind+ix)=(Tstart+2*i+1);
ix++;
} /*if*/
goto L180;
L170:
if (xplus <= xminus ) {
if ( (*(y+2*i+1)-xminus) >= hmin){
*(ind+ix)=Tmi;
ix++;
*(ind+ix)=(Tstart+2*i+1);
ix++;
} /*if*/
/*goto L180;*/
}
else{
if ( (*(y+2*i+1)-xplus) >= hmin) {
*(ind+ix)=(Tstart+2*i+1);
ix++;
*(ind+ix)=Tpl;
ix++;
} /*if*/
} /*elseif*/
L180:
iy=i;
} /* for i */
info = ix;
return ;
}

@ -1422,6 +1422,76 @@ def discretize(fun, a, b, tol=0.005, n=5):
err = 0.5 * amax(abs((y00 - y) / (abs(y00 + y) + tiny)))
return x, y
def discretize2(fun, a,b,tol=0.005, n=5):
'''
Automatic adaptive discretization of function
Parameters
----------
fun : callable
function to discretize
a,b : real scalars
evaluation limits
tol : real, scalar
absoute error tolerance
n : scalar integer
number of values
Returns
-------
x : discretized values
y : fun(x)
Example
-------
>>> import numpy as np
>>> import pylab as plb
>>> x,y = discretize2(np.cos,0,np.pi)
>>> t = plb.plot(x,y)
>>> plb.show()
>>> plb.close('all')
'''
tiny = floatinfo.tiny
n += (mod(n,2)==0) # make sure n is odd
x = linspace(a, b, n)
fx = fun(x)
n2 = (n-1)/2
erri = hstack( (zeros((n2,1)), ones((n2,1)) )).ravel()
err = erri.max()
err0 = inf
#while (err != err0 and err > tol and n < nmax):
for j in range(50):
if err!=err0 and np.any(erri > tol):
err0 = err
# find top errors
I, = where(erri>tol)
# double the sample rate in intervals with the most error
y = (vstack(((x[I]+x[I-1])/2, (x[I+1]+x[I])/2)).T).ravel()
fy = fun(y)
fy0 = interp(y, x, fx)
erri = 0.5 * (abs((fy0 - fy) / (abs(fy0 + fy) + tiny)))
err = erri.max()
x = hstack((x,y))
I = x.argsort()
x = x[I]
erri = hstack((zeros(len(fx)),erri))[I]
fx = hstack((fx,fy))[I]
else:
break
else:
warnings.warn('Recursion level limit reached j=%d' % j)
return x, fx
def pol2cart(theta, rho):
'''
@ -1792,6 +1862,9 @@ def tranproc(x, f, x0, *xi):
return y #y0,y1,y2,y3,y4
def test_common_shape():
A = ones((4, 1))
@ -1870,8 +1943,16 @@ def _test_discretize():
x, y = discretize(cos, 0, pi)
plb.plot(x, y)
plb.show()
plb.close('all')
def _test_discretize2():
import numpy as np
import pylab as plb
x,y = discretize2(np.cos,0,np.pi)
t = plb.plot(x,y)
plb.show()
plb.close('all')
def _test_stirlerr():
x = linspace(1, 5, 6)
print stirlerr(x)
@ -1898,8 +1979,8 @@ def _test_parse_kwargs():
print out1
if __name__ == "__main__":
if True:# False: #
if False: # True:#
import doctest
doctest.testmod()
else:
_test_tranproc()
_test_discretize2()

Binary file not shown.

@ -1,129 +0,0 @@
! -*- f90 -*-
! Note: the context of this file is case sensitive.
python module mvn2 ! in
interface ! in :mvn2
subroutine mvnun(d,n,lower,upper,means,covar,maxpts,abseps,releps,value,inform) ! in :mvn2:mvndst.f
integer optional,check(len(lower)>=d),depend(lower) :: d=len(lower)
integer optional,check(shape(means,1)==n),depend(means) :: n=shape(means,1)
double precision dimension(d) :: lower
double precision dimension(d),depend(d) :: upper
double precision dimension(d,n),depend(d) :: means
double precision dimension(d,d),depend(d,d) :: covar
integer :: maxpts
double precision :: abseps
double precision :: releps
double precision :: value
integer :: inform
end subroutine mvnun
subroutine mvndst(n,lower,upper,infin,correl,maxpts,abseps,releps,error,value,inform) ! in :mvn2:mvndst.f
integer :: n
double precision dimension(*) :: lower
double precision dimension(*) :: upper
integer dimension(*) :: infin
double precision dimension(*) :: correl
integer :: maxpts
double precision :: abseps
double precision :: releps
double precision :: error
double precision :: value
integer :: inform
integer :: ivls
common /dkblck/ ivls
end subroutine mvndst
function mvndfn(n,w) ! in :mvn2:mvndst.f
integer :: n
double precision dimension(*) :: w
double precision dimension(*) :: upper
integer dimension(*) :: infin
integer :: infis
double precision :: e
double precision dimension(*) :: lower
double precision :: d
double precision dimension(*) :: correl
double precision :: mvndfn
double precision :: mvndnt
entry mvndnt(n,correl,lower,upper,infin,infis,d,e)
end function mvndfn
subroutine mvnlms(a,b,infin,lower,upper) ! in :mvn2:mvndst.f
double precision :: a
double precision :: b
integer :: infin
double precision :: lower
double precision :: upper
end subroutine mvnlms
subroutine covsrt(n,lower,upper,correl,infin,y,infis,a,b,cov,infi) ! in :mvn2:mvndst.f
integer :: n
double precision dimension(*) :: lower
double precision dimension(*) :: upper
double precision dimension(*) :: correl
integer dimension(*) :: infin
double precision dimension(*) :: y
integer :: infis
double precision dimension(*) :: a
double precision dimension(*) :: b
double precision dimension(*) :: cov
integer dimension(*) :: infi
end subroutine covsrt
subroutine dkswap(x,y) ! in :mvn2:mvndst.f
double precision :: x
double precision :: y
end subroutine dkswap
subroutine rcswp(p,q,a,b,infin,n,c) ! in :mvn2:mvndst.f
integer :: p
integer :: q
double precision dimension(*) :: a
double precision dimension(*) :: b
integer dimension(*) :: infin
integer :: n
double precision dimension(*) :: c
end subroutine rcswp
subroutine dkbvrc(ndim,minvls,maxvls,functn,abseps,releps,abserr,finest,inform) ! in :mvn2:mvndst.f
integer :: ndim
integer :: minvls
integer :: maxvls
external functn
double precision :: abseps
double precision :: releps
double precision :: abserr
double precision :: finest
integer :: inform
end subroutine dkbvrc
subroutine dksmrc(ndim,klim,sumkro,prime,vk,functn,x) ! in :mvn2:mvndst.f
integer :: ndim
integer :: klim
double precision :: sumkro
integer :: prime
double precision dimension(*) :: vk
external functn
double precision dimension(*) :: x
end subroutine dksmrc
function mvnphi(z) ! in :mvn2:mvndst.f
double precision :: z
double precision :: mvnphi
end function mvnphi
function phinvs(p) ! in :mvn2:mvndst.f
double precision :: p
double precision :: phinvs
end function phinvs
function bvnmvn(lower,upper,infin,correl) ! in :mvn2:mvndst.f
double precision dimension(*) :: lower
double precision dimension(*) :: upper
integer dimension(*) :: infin
double precision :: correl
double precision :: bvnmvn
end function bvnmvn
function bvu(sh,sk,r) ! in :mvn2:mvndst.f
double precision :: sh
double precision :: sk
double precision :: r
double precision :: bvu
end function bvu
function mvnuni() ! in :mvn2:mvndst.f
double precision :: mvnuni
end function mvnuni
end interface
end python module mvn2
! This file was auto-generated with f2py (version:2_5972).
! See http://cens.ioc.ee/projects/f2py2e/

Binary file not shown.

@ -1,14 +0,0 @@
! File rfcmodule.pyf
python module rfcmodule
interface
subroutine findrfc(y1,hmin, ind, n,info)
intent(c) findrfc ! findrfc is a C function
intent(c) ! all findrfc arguments are considered as C based
integer intent(hide), depend(y) :: n=len(y)
double precision dimension(n), intent(in) :: y1 ! input array
double precision intent(in) :: hmin
integer dimension(n), intent(out) :: ind ! output array,
integer intent(out) :: info
end subroutine findrfc
end interface
end python module rfcmodule

Binary file not shown.

@ -1,14 +1,16 @@
"""
f2py c_library.pyf c_functions.c -c
See also http://www.scipy.org/Cookbook/CompilingExtensionsOnWindowsWithMinGW
"""
import os
def compile_all():
# Install gfortran and run the following to build the module:
compile_format = 'f2py.py %s %s -c --fcompiler=gnu95 --compiler=mingw32 -lmsvcr71'
#compile_format = 'f2py.py %s %s -c --fcompiler=gnu95 --compiler=mingw32 -lmsvcr71'
# Install microsoft visual c++ .NET 2003 and run the following to build the module:
#compile_format = 'f2py.py %s %s -c'
compile_format = 'f2py.py %s %s -c'
pyfs = ('c_library.pyf',)
files =('c_functions.c',)

@ -1,5 +1,5 @@
"""
f2py c_library.pyf c_functions.c -c
builds mvnprdmod.pyd
"""
import os
@ -10,21 +10,8 @@ def compile_all():
os.system(compile1_format % file)
file_objects = '%s.o %s.o' % tuple(files)
os.system('f2py.py -m mvnprdmod -c %s mvnprd_interface.f --fcompiler=gnu95 --compiler=mingw32 -lmsvcr71' % file_objects)
#compile1_txt = 'gfortran -fPIC -c mvnprd.f'
#compile2_txt = 'f2py -m mvnprdmod -c mvnprd.o mvnprd_interface.f --fcompiler=gnu95 --compiler=mingw32 -lmsvcr71'
#os.system(compile1_txt)
#os.system(compile2_txt)
# Install gfortran and run the following to build the module:
#compile_format = 'f2py %s %s -c --fcompiler=gnu95 --compiler=mingw32 -lmsvcr71'
# Install microsoft visual c++ .NET 2003 and run the following to build the module:
#compile_format = 'f2py %s %s -c'
#pyfs = ('c_library.pyf',)
#files =('c_functions.c',)
#for pyf,file in zip(pyfs,files):
# os.system(compile_format % (pyf,file))
#os.system('f2py.py -m mvnprdmod -c %s mvnprd_interface.f --fcompiler=gnu95 --compiler=mingw32 -lmsvcr71' % file_objects)
os.system('f2py.py -m mvnprdmod -c %s mvnprd_interface.f ' % file_objects)
if __name__=='__main__':
compile_all()

@ -1,12 +1,5 @@
"""
f2py c_library.pyf c_functions.c -c
g95 -W -Wall -pedantic-errors -fbounds-check -Werror -o test_fimod.exe fimod.f test_fimod.f
gfortran -W -Wall -pedantic-errors -fbounds-check -Werror -o test_fimod.exe fimod.f test_fimod.f
gfortran -W -Wall -pedantic-errors -fbounds-check -Werror -o test_rindmod.exe intmodule.f jacobmod.f swapmod.f fimod.f rindmod2007.f test_rindmod.f
df %1 /check:all /fpe:0 /traceback /warn:argument checking /automatic /exe test_rindmod.exe intmodule.f jacobmod.f swapmod.f erfcoremod.f fimod.f rindmod.f test_rindmod.f
df /fast /fixed /transform_loops /exe test_rindmod.exe intmodule.f jacobmod.f swapmod.f erfcoremod.f fimod.f rindmod.f test_rindmod.f
Builds rindmod.pyd
"""
import os
@ -18,21 +11,8 @@ def compile_all():
os.system(compile1_format % file)
file_objects = format1 % tuple(files)
os.system('f2py.py -m rindmod -c %s rind_interface.f --fcompiler=gnu95 --compiler=mingw32 -lmsvcr71' % file_objects)
#compile1_txt = 'gfortran -fPIC -c mvnprd.f'
#compile2_txt = 'f2py -m mvnprdmod -c mvnprd.o mvnprd_interface.f --fcompiler=gnu95 --compiler=mingw32 -lmsvcr71'
#os.system(compile1_txt)
#os.system(compile2_txt)
# Install gfortran and run the following to build the module:
#compile_format = 'f2py %s %s -c --fcompiler=gnu95 --compiler=mingw32 -lmsvcr71'
# Install microsoft visual c++ .NET 2003 and run the following to build the module:
#compile_format = 'f2py %s %s -c'
#pyfs = ('c_library.pyf',)
#files =('c_functions.c',)
#for pyf,file in zip(pyfs,files):
# os.system(compile_format % (pyf,file))
#os.system('f2py.py -m rindmod -c %s rind_interface.f --fcompiler=gnu95 --compiler=mingw32 -lmsvcr71' % file_objects)
os.system('f2py.py -m rindmod -c %s rind_interface.f ' % file_objects)
if __name__=='__main__':
compile_all()

@ -1,4 +1,4 @@
GFORTRAN module version '0' created from rind71mod.f on Fri Feb 26 13:11:06 2010
GFORTRAN module version '0' created from rind71mod.f on Fri Jul 09 20:01:05 2010
MD5:fc4ffe08c60cbfe3a121a63154dd2c49 -- If you edit this, you'll get what you deserve.
(() () () () () () () () () () () () () () () () () () () () ()

@ -1,5 +1,5 @@
GFORTRAN module version '0' created from rind71mod.f on Fri Feb 26 13:11:07 2010
MD5:f9bcaa9fb7b827472c94d50c70c8a88f -- If you edit this, you'll get what you deserve.
GFORTRAN module version '0' created from rind71mod.f on Fri Jul 09 20:01:06 2010
MD5:1f288e757358b6b93dec46af1aa38ca8 -- If you edit this, you'll get what you deserve.
(() () () () () () () () () () () () () () () () () () () () () () ()
() () () ())
@ -25,16 +25,16 @@ DECL UNKNOWN SUBROUTINE GENERIC ALWAYS_EXPLICIT) (UNKNOWN 0 0 0 UNKNOWN
5 'setdata' 'rind71mod' 'setdata' 1 ((PROCEDURE UNKNOWN-INTENT
MODULE-PROC DECL UNKNOWN SUBROUTINE GENERIC) (UNKNOWN 0 0 0 UNKNOWN ())
19 0 (20 21 22 23 24 25 26 27 28) () 0 () () () 0 0)
27 'dnint' '' 'dnint' 19 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN
DUMMY) (INTEGER 4 0 0 INTEGER ()) 0 0 () () 0 () () () 0 0)
28 'dxsplt' '' 'dxsplt' 19 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN
DUMMY) (REAL 8 0 0 REAL ()) 0 0 () () 0 () () () 0 0)
24 'deps2' '' 'deps2' 19 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN
DUMMY) (REAL 8 0 0 REAL ()) 0 0 () () 0 () () () 0 0)
25 'dnit' '' 'dnit' 19 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN DUMMY)
(INTEGER 4 0 0 INTEGER ()) 0 0 () () 0 () () () 0 0)
26 'dxc' '' 'dxc' 19 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN DUMMY) (
REAL 8 0 0 REAL ()) 0 0 () () 0 () () () 0 0)
27 'dnint' '' 'dnint' 19 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN
DUMMY) (INTEGER 4 0 0 INTEGER ()) 0 0 () () 0 () () () 0 0)
28 'dxsplt' '' 'dxsplt' 19 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN
DUMMY) (REAL 8 0 0 REAL ()) 0 0 () () 0 () () () 0 0)
20 'method' '' 'method' 19 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN
DUMMY) (INTEGER 4 0 0 INTEGER ()) 0 0 () () 0 () () () 0 0)
21 'scale' '' 'scale' 19 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN

@ -1,4 +1,4 @@
GFORTRAN module version '0' created from rindmod.f on Fri Feb 26 13:11:05 2010
GFORTRAN module version '0' created from rindmod.f on Fri Jul 09 20:01:04 2010
MD5:bc2c220667849c09b8a376ad185f37fa -- If you edit this, you'll get what you deserve.
(() () () () () () () () () () () () () () () ()

@ -2,8 +2,8 @@ from __future__ import division
from wafo.wafodata import WafoData
import numpy as np
from numpy import inf
from numpy.lib.shape_base import atleast_1d
from numpy.ma.core import arange, floor
from numpy import atleast_1d
from numpy import arange, floor
__all__ = ['edf']
def edf(x, method=2):

@ -27,7 +27,7 @@ import numpy.random as mtrand
from numpy import flatnonzero as nonzero
from scipy.special import gammaln as gamln
from copy import copy
from estimation import FitDistribution
from wafo.stats.estimation import FitDistribution
try:
import vonmises_cython

Loading…
Cancel
Save