[freefempp] 01/04: Imported Upstream version 3.27
Dimitrios Eftaxiopoulos
eftaxiop-guest at moszumanska.debian.org
Mon Mar 3 16:37:31 UTC 2014
This is an automated email from the git hooks/post-receive script.
eftaxiop-guest pushed a commit to branch master
in repository freefempp.
commit cd1963e0bd4384061fb2e33531839e27b6eea803
Author: Dimitrios Eftaxiopoulos <eftaxi12 at otenet.gr>
Date: Mon Mar 3 13:20:14 2014 +0200
Imported Upstream version 3.27
---
examples++-load/._gsl.cpp => ._README_MAC | Bin
examples++-load/._gsl.cpp => ._TODO | Bin
DOC/freefem++doc.pdf | Bin 9511418 -> 9569217 bytes
INNOVATION | 22 +-
Makefile.am | 2 +-
Makefile.in | 2 +-
README_MAC | 10 +-
TODO | 4 +
WindowsPackage.m4 | 2 +
configure | 30 +-
configure.ac | 12 +-
download/fftw/Makefile | 10 +-
download/ipopt/Makefile.inc.in | 2 +-
download/mshmet/Makefile-mshmet.inc | 2 +-
download/mumps-seq/Makefile | 2 +-
download/mumps-seq/Makefile-mumps-4.10.0.inc | 1 +
examples++-load/._Morley.cpp | Bin 0 -> 167 bytes
examples++-load/{._gsl.cpp => ._fflapack.cpp} | Bin
examples++-load/{._gsl.cpp => ._lapack.cpp} | Bin
examples++-load/._lapack.edp | Bin 0 -> 171 bytes
examples++-load/._msh3.cpp | Bin 0 -> 167 bytes
examples++-load/Makefile.am | 4 +-
examples++-load/Makefile.in | 2 +-
examples++-load/ff-pkg-download.in | 5 +-
examples++-load/ff_gsl_awk.hpp | 1193 +++++++++++++++++------
examples++-load/fflapack.cpp | 33 +-
examples++-load/gsl.awk | 208 ++--
examples++-load/gsl.cpp | 172 +++-
examples++-load/gsl.edp | 124 +--
examples++-load/gsl.idp | 331 +++++++
examples++-load/lapack.cpp | 27 +-
examples++-load/lapack.edp | 117 +--
examples++-load/msh3.cpp | 42 +-
examples++-mpi/._AddLayer2d.idp | Bin 0 -> 171 bytes
examples++-mpi/Laplace3d-hips.edp | 3 +-
examples++-tutorial/._mesh.edp | Bin 0 -> 171 bytes
examples++-tutorial/._sparse-matrix.edp | Bin 0 -> 171 bytes
examples++-tutorial/mesh.edp | 4 +-
examples++-tutorial/sparse-matrix.edp | 12 +
src/bamglib/Mesh2.cpp | 6 +-
src/bamglib/Mesh2.h | 1 +
src/femlib/{._RNM.hpp => ._splitsimplex.cpp} | Bin
src/femlib/FESpacen.cpp | 4 +-
src/femlib/MatriceCreuse.hpp | 36 +-
src/femlib/MatriceCreuse_tpl.hpp | 14 +-
src/femlib/RNM.hpp | 2 +-
src/femlib/splitsimplex.cpp | 47 +-
src/{femlib/._RNM.hpp => fflib/._AFunction.cpp} | Bin
src/{femlib/._RNM.hpp => fflib/._lgfem.cpp} | Bin
src/{femlib/._RNM.hpp => fflib/._lgmat.cpp} | Bin
src/{femlib/._RNM.hpp => fflib/._lgmesh.cpp} | Bin
src/{femlib/._RNM.hpp => fflib/._problem.cpp} | Bin
src/fflib/AFunction.cpp | 3 +
src/fflib/lgmat.cpp | 192 +++-
src/fflib/lgmesh.cpp | 119 ++-
src/fflib/problem.cpp | 151 ++-
src/fflib/problem.hpp | 8 +-
src/fflib/strversionnumber.cpp | 4 +-
58 files changed, 2262 insertions(+), 703 deletions(-)
diff --git a/examples++-load/._gsl.cpp b/._README_MAC
similarity index 100%
copy from examples++-load/._gsl.cpp
copy to ._README_MAC
diff --git a/examples++-load/._gsl.cpp b/._TODO
similarity index 100%
copy from examples++-load/._gsl.cpp
copy to ._TODO
diff --git a/DOC/freefem++doc.pdf b/DOC/freefem++doc.pdf
index 6d5364b..92a1135 100644
Binary files a/DOC/freefem++doc.pdf and b/DOC/freefem++doc.pdf differ
diff --git a/INNOVATION b/INNOVATION
index 1194906..62a484c 100644
--- a/INNOVATION
+++ b/INNOVATION
@@ -1,5 +1,25 @@
+version 3.27
+ correct bug in dusplay of P1b finite element in 3d
+ error in SplitMesh<R3> function (Thank to O. Pironneau)
+ add AddLayers(Th,suppi[],sizeoverlaps,unssd[]);
+ add tool to trunc to get element numbering for Thn to Tho
+ int[int] In2o(1),Io2n(1);
+ Tho = trunc(Tho, x<0, new2old=In2o, old2new=Io2n);
+ add restrict function for get dof numbering old to new
+ fespace Vnh(Thn,Pk), Voh(Tho,Pk);
+ int[int] n2o=restrict(Vnh,Voh,n2ok);
+ correct mistake in gsl interface random number (9/1/14)
+ missing all ramdow distribution ..
+ add interface with gsl random number generation in test ..
+ correct pb of compilation under window (mingw32/msys)
+version 3.26-3 09/12/2013
+ correct problem with openblas need pthread lib
+01/12/13
+ install dowload lib
+ update lapack interface in examples.
add WHERE_LIBRARY-file in install
- change the order of seach lib with WHERE_LIBRARY-download WHERE_LIBRARY-config WHERE_LIBRARY
+ change the order of seach lib with WHERE_LIBRARY-download
+ WHERE_LIBRARY-config WHERE_LIBRARY
remove all relative in WHERE_LIBRARY-config
correct of superlu compile problem
13/11/203 Pass to version 3.26 ...
diff --git a/Makefile.am b/Makefile.am
index fd93623..77fdf2e 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -129,7 +129,7 @@ win32:WindowsPackage.iss
cd examples++-load;tar zxvf include.tar.gz;mkdir include-tmp;cp -Lr *.h include/* include-tmp
WindowsPackage.iss: WindowsPackage.m4 configure.ac Makefile.am
m4 -DVERSION='$(VERSION)$(ADD_PACKAGE_NAME)' \
- -DMPIPROG='$MPIPROG' WindowsPackage.m4 > WindowsPackage.iss
+ -DMPIPROG='$(MPIPROG)' WindowsPackage.m4 > WindowsPackage.iss
# Debian package
# --------------
diff --git a/Makefile.in b/Makefile.in
index de8ddfa..090636f 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -1016,7 +1016,7 @@ win32:WindowsPackage.iss
cd examples++-load;tar zxvf include.tar.gz;mkdir include-tmp;cp -Lr *.h include/* include-tmp
WindowsPackage.iss: WindowsPackage.m4 configure.ac Makefile.am
m4 -DVERSION='$(VERSION)$(ADD_PACKAGE_NAME)' \
- -DMPIPROG='$MPIPROG' WindowsPackage.m4 > WindowsPackage.iss
+ -DMPIPROG='$(MPIPROG)' WindowsPackage.m4 > WindowsPackage.iss
# Debian package
# --------------
diff --git a/README_MAC b/README_MAC
index 2f4529e..196a170 100644
--- a/README_MAC
+++ b/README_MAC
@@ -1,7 +1,7 @@
To compile a full version of FreeFem++ under MacOS
---------------------------------------------------
-Under Mavrisk (10.9) 2012 ( xcode 5.0.1 form scratch)
+Under Mavericks (10.9) 2012 ( xcode 5.0.2 form scratch)
-------------------------------------------------
remark: All line beginning by # are shell command in terminal.
@@ -23,23 +23,23 @@ Under Mavrisk (10.9) 2012 ( xcode 5.0.1 form scratch)
http://mirrors.ctan.org/systems/mac/mactex/MacTeX.pkg
5) install openmpi form the source
http://www.open-mpi.org/software/ompi/v1.6/downloads/openmpi-1.6.5.tar.bz2
- # ./configure CC=/usr/local/bin/gcc CXX=/usr/local/bin/g++ F77=/usr/local/bin/gfortran FC=/usr/local/bin/gfortran
+ # ./configure 'CC=clang' 'CXX=clang++' 'FC=gfortran' 'F77=gfortran' --enable-ltdl-convenience
# make
# sudo make install
6) install gsl
# curl -O http://ftp.gnu.org/gnu/gsl/gsl-1.15.tar.gz
# tar zxvf gsl-1.15.tar.gz
# cd gsl-1.15.
- #./configure CC=/usr/local/bin/gcc
+ #./configure CC=clang
# make
# sudo make install
7) install mecurial from the web http://mercurial.selenic.com
- 8) downlaad
+ 8) download
# hg clone http://www.freefem.org/ff++/ff++
9) compilation of freefem++
# cd ff++
- # ./configure '-with-suffix=macos-10.8' '-without-fltk' '--enable-download' '--enable-optim' 'MPIRUN=/usr/local/bin/mpirun' '--enable-m64' '--without-x' 'CC=clang -isysroot /Applications/Xcode.app//Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.8.sdk' 'CFLAGS=-mmacosx-version-min=10.8' 'CXXFLAGS=-mmacosx-version-min=10.8 -std=c++11' 'CXX=clang++ -isysroot /Applications/Xcode.app//Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.8.sdk' 'F77=/usr [...]
+ # ./configure '-with-suffix=macos-10.9' '-without-fltk' '--enable-download' '--enable-optim' 'MPIRUN=/usr/local/bin/mpirun' '--enable-m64' '--without-x' 'CC=clang' 'CXXFLAGS=-std=c++11' 'CXX=clang++' 'F77=/usr/local/bin/gfortran' 'FC=/usr/local/bin/gfortran' 'MPICXX=/usr/local/bin/mpic++' 'MPICC=/usr/local/bin/mpicc' 'MPIFC=/usr/local/bin/mpif90' 'MPIF77=/usr/local/bin/mpif90' '--enable-maintainer-mode'
# make
# make
diff --git a/TODO b/TODO
index 69bfad5..2fdd35a 100644
--- a/TODO
+++ b/TODO
@@ -1,3 +1,7 @@
+add doc:
+ gsl interface
+ imax of tableau
+
Short time:
build a true aniso 3d adaptation example
to day bug in interface of mmg3d with metric and in tetgen ...
diff --git a/WindowsPackage.m4 b/WindowsPackage.m4
index 8f2ab43..ba6e2e1 100644
--- a/WindowsPackage.m4
+++ b/WindowsPackage.m4
@@ -74,8 +74,10 @@ Source: "examples++-tutorial\xyf"; DestDir: "{app}\examples++-tutorial"
Source: "examples++-chapt3\*.edp"; DestDir: "{app}\examples++-chapt3"
Source: "examples++-other\*.edp"; DestDir: "{app}\examples++-other"
Source: "examples++-load\*.edp"; DestDir: "{app}\examples++-load"
+Source: "examples++-load\*.idp"; DestDir: "{app}\examples++-load"
Source: "examples++-load\*.cpp"; DestDir: "{app}\examples++-load"
Source: "examples++-load\*.pgm"; DestDir: "{app}\examples++-load"
+Source: "examples++-load\*.pts"; DestDir: "{app}\examples++-load"
Source: "examples++-load\cube.msh"; DestDir: "{app}\examples++-load"
Source: "examples++-load\load.link"; DestDir: "{app}\examples++-load"
diff --git a/configure b/configure
index 1758615..b7ddae8 100755
--- a/configure
+++ b/configure
@@ -1,6 +1,6 @@
#! /bin/sh
# Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.69 for FreeFem++ 3.26-2.
+# Generated by GNU Autoconf 2.69 for FreeFem++ 3.27.
#
# Report bugs to <hecht at ann.jussieu.fr>.
#
@@ -580,8 +580,8 @@ MAKEFLAGS=
# Identity of this package.
PACKAGE_NAME='FreeFem++'
PACKAGE_TARNAME='freefem++'
-PACKAGE_VERSION='3.26-2'
-PACKAGE_STRING='FreeFem++ 3.26-2'
+PACKAGE_VERSION='3.27'
+PACKAGE_STRING='FreeFem++ 3.27'
PACKAGE_BUGREPORT='hecht at ann.jussieu.fr'
PACKAGE_URL=''
@@ -1551,7 +1551,7 @@ if test "$ac_init_help" = "long"; then
# Omit some internal or obsolete options to make the list less imposing.
# This message is too long to be a string in the A/UX 3.1 sh.
cat <<_ACEOF
-\`configure' configures FreeFem++ 3.26-2 to adapt to many kinds of systems.
+\`configure' configures FreeFem++ 3.27 to adapt to many kinds of systems.
Usage: $0 [OPTION]... [VAR=VALUE]...
@@ -1621,7 +1621,7 @@ fi
if test -n "$ac_init_help"; then
case $ac_init_help in
- short | recursive ) echo "Configuration of FreeFem++ 3.26-2:";;
+ short | recursive ) echo "Configuration of FreeFem++ 3.27:";;
esac
cat <<\_ACEOF
@@ -1882,7 +1882,7 @@ fi
test -n "$ac_init_help" && exit $ac_status
if $ac_init_version; then
cat <<\_ACEOF
-FreeFem++ configure 3.26-2
+FreeFem++ configure 3.27
generated by GNU Autoconf 2.69
Copyright (C) 2012 Free Software Foundation, Inc.
@@ -2736,7 +2736,7 @@ cat >config.log <<_ACEOF
This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.
-It was created by FreeFem++ $as_me 3.26-2, which was
+It was created by FreeFem++ $as_me 3.27, which was
generated by GNU Autoconf 2.69. Invocation command line was
$ $0 $@
@@ -3607,7 +3607,7 @@ fi
# Define the identity of the package.
PACKAGE='freefem++'
- VERSION='3.26-2'
+ VERSION='3.27'
cat >>confdefs.h <<_ACEOF
@@ -12811,7 +12811,7 @@ $as_echo_n "checking Activating the OpenBLAS (deactivate with --disable-openblas
$as_echo "git not found" >&6; }
else
ff_download_blas=openblas
- ff_blas_libs="-L${curdir}/download/blas/OpenBLAS -lopenblas"
+ ff_blas_libs="-L${curdir}/download/blas/OpenBLAS -lopenblas $ff_pthread"
ff_blas_inc="-I${curdir}/download/blas/CBLAS/src"
# skip generic blas compilation and activate OpenBLAS (see [[file:download/blas/Makefile.am::OpenBLAS]])
@@ -17815,10 +17815,10 @@ $as_echo "$ff_WHERE" >&6; }
# FFCS - 27/10/11 - Some extra conditionals for things that do not work on certain systems (eg MPI libraries under
# Windows)
-# remove gsl if not find ... FK
-
-if test "$ff_where_lib_conf_gsl" == 1 -a -z "$enable_gsl" ; then enable_gsl=no; fi;
-if test "$ff_where_lib_conf_mkl" == 1 -a -z "$enable_mkl" ; then enable_pardiso=no; fi;
+# remove gsl if not find ... FH
+# correction FH .. 18/12/2013.
+if test "$ff_where_lib_conf_gsl" == 1 -a "$enable_gsl"!="no" ; then enable_gsl=yes; fi;
+if test "$ff_where_lib_conf_mkl" == 1 -a "$enable_mkl"!=no ; then enable_pardiso=yes; fi;
# Check whether --enable-gsl was given.
if test "${enable_gsl+set}" = set; then :
enableval=$enable_gsl;
@@ -18513,7 +18513,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
# report actual input values of CONFIG_FILES etc. instead of their
# values after options handling.
ac_log="
-This file was extended by FreeFem++ $as_me 3.26-2, which was
+This file was extended by FreeFem++ $as_me 3.27, which was
generated by GNU Autoconf 2.69. Invocation command line was
CONFIG_FILES = $CONFIG_FILES
@@ -18579,7 +18579,7 @@ _ACEOF
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
ac_cs_version="\\
-FreeFem++ config.status 3.26-2
+FreeFem++ config.status 3.27
configured by $0, generated by GNU Autoconf 2.69,
with options \\"\$ac_cs_config\\"
diff --git a/configure.ac b/configure.ac
index 22da670..b78dbd6 100644
--- a/configure.ac
+++ b/configure.ac
@@ -10,7 +10,7 @@
# number in debian/changelog.
-AC_INIT(FreeFem++,3.26-2,hecht at ann.jussieu.fr,freefem++)
+AC_INIT(FreeFem++,3.27,hecht at ann.jussieu.fr,freefem++)
dnl : ${CFLAGS=""}
dnl : ${CXXFLAGS=""}
dnl : ${FCFLAGS=""}
@@ -1030,7 +1030,7 @@ then
AC_MSG_RESULT([git not found])
else
ff_download_blas=openblas
- ff_blas_libs="-L${curdir}/download/blas/OpenBLAS -lopenblas"
+ ff_blas_libs="-L${curdir}/download/blas/OpenBLAS -lopenblas $ff_pthread"
ff_blas_inc="-I${curdir}/download/blas/CBLAS/src"
# skip generic blas compilation and activate OpenBLAS (see [[file:download/blas/Makefile.am::OpenBLAS]])
@@ -1760,10 +1760,10 @@ m4_map([AC_FF_WHERELIB],[
# FFCS - 27/10/11 - Some extra conditionals for things that do not work on certain systems (eg MPI libraries under
# Windows)
-# remove gsl if not find ... FK
-
-if test "$ff_where_lib_conf_gsl" == 1 -a -z "$enable_gsl" ; then enable_gsl=no; fi;
-if test "$ff_where_lib_conf_mkl" == 1 -a -z "$enable_mkl" ; then enable_pardiso=no; fi;
+# remove gsl if not find ... FH
+# correction FH .. 18/12/2013.
+if test "$ff_where_lib_conf_gsl" == 1 -a "$enable_gsl"!="no" ; then enable_gsl=yes; fi;
+if test "$ff_where_lib_conf_mkl" == 1 -a "$enable_mkl"!=no ; then enable_pardiso=yes; fi;
TOOL_DISABLE(gsl,"gsl.$DYLIB_SUFFIX NewSolver.$DYLIB_SUFFIX")
TOOL_DISABLE(pardiso,PARDISO.$DYLIB_SUFFIX)
diff --git a/download/fftw/Makefile b/download/fftw/Makefile
index ecf40fa..879aeda 100644
--- a/download/fftw/Makefile
+++ b/download/fftw/Makefile
@@ -195,10 +195,10 @@ OPTIM_TYPE =
PACKAGE = fftw-$(FFTW_VERSION).tar.gz
PACKAGE_BUGREPORT = hecht at ann.jussieu.fr
PACKAGE_NAME = FreeFem++
-PACKAGE_STRING = FreeFem++ 3.26-2
+PACKAGE_STRING = FreeFem++ 3.27
PACKAGE_TARNAME = freefem++
PACKAGE_URL =
-PACKAGE_VERSION = 3.26-2
+PACKAGE_VERSION = 3.27
PASTIX_HOSTARCH =
PATH_SEPARATOR = :
RANLIB = ranlib
@@ -242,7 +242,7 @@ TOOL_COMPILE_superludist = superludist
TOOL_COMPILE_umfpack = umfpack
TOOL_COMPILE_yams = yams
TOOL_DYLIB_fflapack = fflapack.dylib
-TOOL_DYLIB_gsl =
+TOOL_DYLIB_gsl = gsl.dylib NewSolver.dylib
TOOL_DYLIB_hips = hips_FreeFem.dylib
TOOL_DYLIB_ipopt = ff-Ipopt.dylib
TOOL_DYLIB_lapack = lapack.dylib
@@ -263,7 +263,7 @@ TOOL_DYLIB_superludist = complex_SuperLU_DIST_FreeFem.dylib real_SuperLU_DIST_Fr
TOOL_DYLIB_umfpack = UMFPACK64.dylib
TOOL_DYLIB_yams = freeyams.dylib
UMFPACKLIBS = -L/Users/hecht/work/ff++/download/lib -lumfpack -lcholmod -lcolamd -lamd -lsuitesparseconfig
-VERSION = 3.26-2
+VERSION = 3.27
WGET = wget --no-check-certificate
WIN32DLLTARGET =
WINDRESOBJ =
@@ -308,7 +308,7 @@ ff_makeindex = yes
ff_patch = yes
ff_pdf2ps = yes
ff_pdflatex = yes
-ff_prefix_dir = /usr/local/lib/ff++/3.26-2
+ff_prefix_dir = /usr/local/lib/ff++/3.27
ff_unzip =
ff_wget = yes
host = i686-apple-darwin13.0.0
diff --git a/download/ipopt/Makefile.inc.in b/download/ipopt/Makefile.inc.in
index 09112cd..eafea2d 100644
--- a/download/ipopt/Makefile.inc.in
+++ b/download/ipopt/Makefile.inc.in
@@ -6,7 +6,7 @@ CXXFLAGS = @CXXFLAGS@
CFLAGS = @CFLAGS@
FC = @FC@
FCFLAGS = @FCFLAGS@
-LIBBLAS = @BLASLIBS@
+LIBBLAS = @BLASLIBS@
LIBLAPACK =@LAPACKLIBS@
WGET=@WGET@
CXXCPP=@CXXCPP@
\ No newline at end of file
diff --git a/download/mshmet/Makefile-mshmet.inc b/download/mshmet/Makefile-mshmet.inc
index 4df213f..8a31f9c 100644
--- a/download/mshmet/Makefile-mshmet.inc
+++ b/download/mshmet/Makefile-mshmet.inc
@@ -21,7 +21,7 @@ lib = $(OBJDIR)/libmshmet.a
#.SILENT:
$(OBJDIR)/%.o: $(SRCDIR)/%.c
- $(CC) $(OPT64) $(INCDIR) $(CFLAGS) -c $< -o $@
+ $(CC) $(OPT64) $(INCDIR) $(CFLAGS) -DSERIAL -c $< -o $@
$(EXEDIR)/$(prog):$(DIRDIR) $(objs)
echo "#define COMPIL " '"' `date` '"' > $(SRCDIR)/compil.date
diff --git a/download/mumps-seq/Makefile b/download/mumps-seq/Makefile
index 7314f1f..afb5f04 100644
--- a/download/mumps-seq/Makefile
+++ b/download/mumps-seq/Makefile
@@ -46,7 +46,7 @@ WGET = wget --no-check-certificate
../lib/WHERE.mumpsseq: install.done
echo mumps-seq LD -L at DIR@/lib -ldmumpsFREEFEM-SEQ -lzmumpsFREEFEM-SEQ -lmumps_commonFREEFEM-SEQ \
- -lpordFREEFEM-SEQ -lpthread > ../lib/WHERE.mumpsseq
+ -lpordFREEFEM-SEQ $(LIBSPTHREAD) > ../lib/WHERE.mumpsseq
echo mumps-seq INCLUDE -I at DIR@/include/libseq >> ../lib/WHERE.mumpsseq
echo libseq LD -L at DIR@/lib -lmpiseqFREEFEM-SEQ >>../lib/WHERE.mumpsseq
echo libseq INCLUDE -I at DIR@/include/libseq >> ../lib/WHERE.mumpsseq
diff --git a/download/mumps-seq/Makefile-mumps-4.10.0.inc b/download/mumps-seq/Makefile-mumps-4.10.0.inc
index 3d9f2d4..cd73aaf 100644
--- a/download/mumps-seq/Makefile-mumps-4.10.0.inc
+++ b/download/mumps-seq/Makefile-mumps-4.10.0.inc
@@ -129,6 +129,7 @@ LIBBLAS = @BLASLIBS@
# DEFINE YOUR PTHREAD LIBRARY
LIBOTHERS = @LIBSPTHREAD@ @FLIBS@ $(FFLIBOTHERSMUMPS)
+LIBSPTHREAD = @LIBSPTHREAD@
# FORTRAN/C COMPATIBILITY:
# Use:
diff --git a/examples++-load/._Morley.cpp b/examples++-load/._Morley.cpp
new file mode 100644
index 0000000..63e1130
Binary files /dev/null and b/examples++-load/._Morley.cpp differ
diff --git a/examples++-load/._gsl.cpp b/examples++-load/._fflapack.cpp
similarity index 100%
copy from examples++-load/._gsl.cpp
copy to examples++-load/._fflapack.cpp
diff --git a/examples++-load/._gsl.cpp b/examples++-load/._lapack.cpp
similarity index 100%
rename from examples++-load/._gsl.cpp
rename to examples++-load/._lapack.cpp
diff --git a/examples++-load/._lapack.edp b/examples++-load/._lapack.edp
new file mode 100644
index 0000000..f7a8f68
Binary files /dev/null and b/examples++-load/._lapack.edp differ
diff --git a/examples++-load/._msh3.cpp b/examples++-load/._msh3.cpp
new file mode 100644
index 0000000..63e1130
Binary files /dev/null and b/examples++-load/._msh3.cpp differ
diff --git a/examples++-load/Makefile.am b/examples++-load/Makefile.am
index 6d0460e..182c5d1 100644
--- a/examples++-load/Makefile.am
+++ b/examples++-load/Makefile.am
@@ -1,5 +1,5 @@
all-local: @LOAD_COMPILE@
-TESTS=APk-AdaptEpsDeltaPk.edp APk-ExplicitPkTest.edp APk-FreeFemQA.edp APk-MetricPk.edp IPOTest.edp IpOptMinSurf.edp IpoptLap.edp IpoptMinSurfVol.edp IpoptVI.edp IpoptVI2.edp LapDG3.edp LapDG4.edp LapLNewSolver.edp LapMUMPS_seq.edp LapNewSolver.edp LapUmfpack64.edp LaplaceP3.edp LaplaceP4.edp LaplaceRT1.edp Leman-mesh.edp MetricKuate.edp NSP2BRP0.edp PARDISO.edp SuperLU.edp VarIneq2.edp bilapMorley.edp bmo.edp buildlayermesh.edp checkglumeshcube.edp cmaes-VarIneq.edp cmaes-oven.edp conv [...]
+TESTS=APk-AdaptEpsDeltaPk.edp APk-ExplicitPkTest.edp APk-FreeFemQA.edp APk-MetricPk.edp IPOTest.edp IpOptMinSurf.edp IpoptLap.edp IpoptMinSurfVol.edp IpoptVI.edp IpoptVI2.edp LapDG3.edp LapDG4.edp LapLNewSolver.edp LapMUMPS_seq.edp LapNewSolver.edp LapUmfpack64.edp LaplaceP3.edp LaplaceP4.edp LaplaceRT1.edp Leman-mesh.edp MetricKuate.edp NSP2BRP0.edp PARDISO.edp SuperLU.edp VarIneq2.edp bilapMorley.edp bmo.edp buildlayermesh.edp checkglumeshcube.edp cmaes-VarIneq.edp cmaes-oven.edp conv [...]
# all test can fail must but clean ???? FH...
XFAIL_TESTS=$(TESTS)
@@ -30,7 +30,7 @@ ff-get-dep.in ff-pkg-download.in load.link.in include.tar.gz \
UMFPACK64.cpp iovtk.cpp gmsh.cpp MetricKuate.cpp \
ffnewuoa.cpp newuoa.f Element_P1dc1.cpp ilut.cpp \
freeyams.cpp mmg3d-v4.0.cpp mshmet.cpp \
- BinaryIO.cpp gsl.cpp gsl.awk ff_gsl_awk.hpp isolineP1.cpp isoline.cpp lg.pgm \
+ BinaryIO.cpp gsl.cpp gsl.awk ff_gsl_awk.hpp gsl.idp isolineP1.cpp isoline.cpp lg.pgm \
thresholdings.cpp \
VTK_writer_3d.cpp VTK_writer.cpp splitedges.cpp \
Element_Mixte.cpp \
diff --git a/examples++-load/Makefile.in b/examples++-load/Makefile.in
index ef66184..f85f293 100644
--- a/examples++-load/Makefile.in
+++ b/examples++-load/Makefile.in
@@ -593,7 +593,7 @@ ff-get-dep.in ff-pkg-download.in load.link.in include.tar.gz \
UMFPACK64.cpp iovtk.cpp gmsh.cpp MetricKuate.cpp \
ffnewuoa.cpp newuoa.f Element_P1dc1.cpp ilut.cpp \
freeyams.cpp mmg3d-v4.0.cpp mshmet.cpp \
- BinaryIO.cpp gsl.cpp gsl.awk ff_gsl_awk.hpp isolineP1.cpp isoline.cpp lg.pgm \
+ BinaryIO.cpp gsl.cpp gsl.awk ff_gsl_awk.hpp gsl.idp isolineP1.cpp isoline.cpp lg.pgm \
thresholdings.cpp \
VTK_writer_3d.cpp VTK_writer.cpp splitedges.cpp \
Element_Mixte.cpp \
diff --git a/examples++-load/ff-pkg-download.in b/examples++-load/ff-pkg-download.in
index 6631599..ac42e68 100755
--- a/examples++-load/ff-pkg-download.in
+++ b/examples++-load/ff-pkg-download.in
@@ -38,9 +38,10 @@ if [ -d $DESTDIR$DIR/lib -a -d $DESTDIR$DIR/include ] ; then
test -f $i && ( sed "s;@DIR@;$DIR;" <$i )
done
# return
- for la in arpack umfpack amd fftw3 blas lapack mmg3d; do
+ for la in arpack umfpack amd fftw3 mmg3d; do
l=`echo $la |sed -e s/^tet$/tetgen/`
- if [ ! -f $LIB/WHERE.$l ]; then
+ nbw=`awk "/^$la /" WHERE_LIBRARY WHERE_LIBRARY-config|wc -l`
+ if [ "$nbw" -ne 0 -a ! -f $LIB/WHERE.$l ]; then
if [ -z "$l" ];then l="$la";fi
if ( ls "lib$la"[-._0-9]*a 1>/dev/null 2>/dev/null ) ; then
ll=`ls "lib$la"[-._0-9]*a|grep [.]a`
diff --git a/examples++-load/ff_gsl_awk.hpp b/examples++-load/ff_gsl_awk.hpp
index 5112e59..3392796 100644
--- a/examples++-load/ff_gsl_awk.hpp
+++ b/examples++-load/ff_gsl_awk.hpp
@@ -1,305 +1,914 @@
/*
- minssing gsl_sf_coulomb.h:double gsl_sf_hydrogenicR(const int n, const int l, const double Z, const double r);
- minssing gsl_sf_coupling.h:double gsl_sf_coupling_3j(int two_ja, int two_jb, int two_jc,
- minssing gsl_sf_coupling.h:double gsl_sf_coupling_6j(int two_ja, int two_jb, int two_jc,
- minssing gsl_sf_coupling.h:double gsl_sf_coupling_RacahW(int two_ja, int two_jb, int two_jc,
- minssing gsl_sf_coupling.h:double gsl_sf_coupling_9j(int two_ja, int two_jb, int two_jc,
- minssing gsl_sf_coupling.h:double gsl_sf_coupling_6j_INCORRECT(int two_ja, int two_jb, int two_jc,
- minssing gsl_sf_ellint.h:double gsl_sf_ellint_Pcomp(double k, double n, gsl_mode_t mode);
- minssing gsl_sf_ellint.h:double gsl_sf_ellint_F(double phi, double k, gsl_mode_t mode);
- minssing gsl_sf_ellint.h:double gsl_sf_ellint_E(double phi, double k, gsl_mode_t mode);
- minssing gsl_sf_ellint.h:double gsl_sf_ellint_P(double phi, double k, double n, gsl_mode_t mode);
- minssing gsl_sf_ellint.h:double gsl_sf_ellint_D(double phi, double k, double n, gsl_mode_t mode);
- minssing gsl_sf_ellint.h:double gsl_sf_ellint_RC(double x, double y, gsl_mode_t mode);
- minssing gsl_sf_ellint.h:double gsl_sf_ellint_RD(double x, double y, double z, gsl_mode_t mode);
- minssing gsl_sf_ellint.h:double gsl_sf_ellint_RF(double x, double y, double z, gsl_mode_t mode);
- minssing gsl_sf_ellint.h:double gsl_sf_ellint_RJ(double x, double y, double z, double p, gsl_mode_t mode);
- minssing gsl_sf_gamma.h:double gsl_sf_beta_inc(const double a, const double b, const double x);
- minssing gsl_sf_gegenbauer.h:double gsl_sf_gegenpoly_n(int n, double lambda, double x);
- minssing gsl_sf_hyperg.h:double gsl_sf_hyperg_1F1_int(const int m, const int n, double x);
- minssing gsl_sf_hyperg.h:double gsl_sf_hyperg_1F1(double a, double b, double x);
- minssing gsl_sf_hyperg.h:double gsl_sf_hyperg_U_int(const int m, const int n, const double x);
- minssing gsl_sf_hyperg.h:double gsl_sf_hyperg_U(const double a, const double b, const double x);
- minssing gsl_sf_hyperg.h:double gsl_sf_hyperg_2F1(double a, double b, double c, double x);
- minssing gsl_sf_hyperg.h:double gsl_sf_hyperg_2F1_conj(double aR, double aI, double c, double x);
- minssing gsl_sf_hyperg.h:double gsl_sf_hyperg_2F1_renorm(double a, double b, double c, double x);
- minssing gsl_sf_hyperg.h:double gsl_sf_hyperg_2F1_conj_renorm(double aR, double aI, double c, double x);
- minssing gsl_sf_hyperg.h:double gsl_sf_hyperg_2F0(const double a, const double b, const double x);
- minssing gsl_sf_laguerre.h:double gsl_sf_laguerre_n(int n, double a, double x);
- minssing gsl_sf_legendre.h:double gsl_sf_legendre_Plm(const int l, const int m, const double x);
- minssing gsl_sf_legendre.h:double gsl_sf_legendre_sphPlm(const int l, const int m, const double x);
- minssing gsl_sf_legendre.h:double gsl_sf_conicalP_sph_reg(const int l, const double lambda, const double x);
- minssing gsl_sf_legendre.h:double gsl_sf_conicalP_cyl_reg(const int m, const double lambda, const double x);
- minssing gsl_sf_legendre.h:double gsl_sf_legendre_H3d(const int l, const double lambda, const double eta);
+// -- missing type "const double[]"
+ missing: 5 gsl_ran_dirichlet_pdf -> /usr/local/include/gsl/gsl_randist.h:double gsl_ran_dirichlet_pdf (const size_t K, const double alpha[], const double theta[]);
+ missing: 5 gsl_ran_dirichlet_lnpdf -> /usr/local/include/gsl/gsl_randist.h:double gsl_ran_dirichlet_lnpdf (const size_t K, const double alpha[], const double theta[]);
+// -- missing type "size_t"
+ missing: 4 gsl_ran_discrete_pdf -> /usr/local/include/gsl/gsl_randist.h:double gsl_ran_discrete_pdf (size_t k, const gsl_ran_discrete_t *g);
+// -- missing type "const gsl_mode_t"
+ missing: 5 gsl_sf_airy_Ai_e -> /usr/local/include/gsl/gsl_sf_airy.h:int gsl_sf_airy_Ai_e(const double x, const gsl_mode_t mode, gsl_sf_result * result);
+// -- missing type "gsl_mode_t"
+ missing: 4 gsl_sf_airy_Ai -> /usr/local/include/gsl/gsl_sf_airy.h:double gsl_sf_airy_Ai(const double x, gsl_mode_t mode);
+ missing: 5 gsl_sf_airy_Bi_e -> /usr/local/include/gsl/gsl_sf_airy.h:int gsl_sf_airy_Bi_e(const double x, gsl_mode_t mode, gsl_sf_result * result);
+ missing: 4 gsl_sf_airy_Bi -> /usr/local/include/gsl/gsl_sf_airy.h:double gsl_sf_airy_Bi(const double x, gsl_mode_t mode);
+ missing: 5 gsl_sf_airy_Ai_scaled_e -> /usr/local/include/gsl/gsl_sf_airy.h:int gsl_sf_airy_Ai_scaled_e(const double x, gsl_mode_t mode, gsl_sf_result * result);
+ missing: 4 gsl_sf_airy_Ai_scaled -> /usr/local/include/gsl/gsl_sf_airy.h:double gsl_sf_airy_Ai_scaled(const double x, gsl_mode_t mode);
+ missing: 5 gsl_sf_airy_Bi_scaled_e -> /usr/local/include/gsl/gsl_sf_airy.h:int gsl_sf_airy_Bi_scaled_e(const double x, gsl_mode_t mode, gsl_sf_result * result);
+ missing: 4 gsl_sf_airy_Bi_scaled -> /usr/local/include/gsl/gsl_sf_airy.h:double gsl_sf_airy_Bi_scaled(const double x, gsl_mode_t mode);
+ missing: 5 gsl_sf_airy_Ai_deriv_e -> /usr/local/include/gsl/gsl_sf_airy.h:int gsl_sf_airy_Ai_deriv_e(const double x, gsl_mode_t mode, gsl_sf_result * result);
+ missing: 4 gsl_sf_airy_Ai_deriv -> /usr/local/include/gsl/gsl_sf_airy.h:double gsl_sf_airy_Ai_deriv(const double x, gsl_mode_t mode);
+ missing: 5 gsl_sf_airy_Bi_deriv_e -> /usr/local/include/gsl/gsl_sf_airy.h:int gsl_sf_airy_Bi_deriv_e(const double x, gsl_mode_t mode, gsl_sf_result * result);
+ missing: 4 gsl_sf_airy_Bi_deriv -> /usr/local/include/gsl/gsl_sf_airy.h:double gsl_sf_airy_Bi_deriv(const double x, gsl_mode_t mode);
+ missing: 5 gsl_sf_airy_Ai_deriv_scaled_e -> /usr/local/include/gsl/gsl_sf_airy.h:int gsl_sf_airy_Ai_deriv_scaled_e(const double x, gsl_mode_t mode, gsl_sf_result * result);
+ missing: 4 gsl_sf_airy_Ai_deriv_scaled -> /usr/local/include/gsl/gsl_sf_airy.h:double gsl_sf_airy_Ai_deriv_scaled(const double x, gsl_mode_t mode);
+ missing: 5 gsl_sf_airy_Bi_deriv_scaled_e -> /usr/local/include/gsl/gsl_sf_airy.h:int gsl_sf_airy_Bi_deriv_scaled_e(const double x, gsl_mode_t mode, gsl_sf_result * result);
+ missing: 4 gsl_sf_airy_Bi_deriv_scaled -> /usr/local/include/gsl/gsl_sf_airy.h:double gsl_sf_airy_Bi_deriv_scaled(const double x, gsl_mode_t mode);
+// -- missing type "gsl_sf_result *"
+ missing: 4 gsl_sf_airy_zero_Ai_e -> /usr/local/include/gsl/gsl_sf_airy.h:int gsl_sf_airy_zero_Ai_e(unsigned int s, gsl_sf_result * result);
+ missing: 4 gsl_sf_airy_zero_Bi_e -> /usr/local/include/gsl/gsl_sf_airy.h:int gsl_sf_airy_zero_Bi_e(unsigned int s, gsl_sf_result * result);
+ missing: 4 gsl_sf_airy_zero_Ai_deriv_e -> /usr/local/include/gsl/gsl_sf_airy.h:int gsl_sf_airy_zero_Ai_deriv_e(unsigned int s, gsl_sf_result * result);
+ missing: 4 gsl_sf_airy_zero_Bi_deriv_e -> /usr/local/include/gsl/gsl_sf_airy.h:int gsl_sf_airy_zero_Bi_deriv_e(unsigned int s, gsl_sf_result * result);
+ missing: 4 gsl_sf_bessel_J0_e -> /usr/local/include/gsl/gsl_sf_bessel.h:int gsl_sf_bessel_J0_e(const double x, gsl_sf_result * result);
+ missing: 4 gsl_sf_bessel_J1_e -> /usr/local/include/gsl/gsl_sf_bessel.h:int gsl_sf_bessel_J1_e(const double x, gsl_sf_result * result);
+ missing: 5 gsl_sf_bessel_Jn_e -> /usr/local/include/gsl/gsl_sf_bessel.h:int gsl_sf_bessel_Jn_e(int n, double x, gsl_sf_result * result);
+ missing: 4 gsl_sf_bessel_Y0_e -> /usr/local/include/gsl/gsl_sf_bessel.h:int gsl_sf_bessel_Y0_e(const double x, gsl_sf_result * result);
+ missing: 4 gsl_sf_bessel_Y1_e -> /usr/local/include/gsl/gsl_sf_bessel.h:int gsl_sf_bessel_Y1_e(const double x, gsl_sf_result * result);
+ missing: 5 gsl_sf_bessel_Yn_e -> /usr/local/include/gsl/gsl_sf_bessel.h:int gsl_sf_bessel_Yn_e(int n,const double x, gsl_sf_result * result);
+ missing: 4 gsl_sf_bessel_I0_e -> /usr/local/include/gsl/gsl_sf_bessel.h:int gsl_sf_bessel_I0_e(const double x, gsl_sf_result * result);
+ missing: 4 gsl_sf_bessel_I1_e -> /usr/local/include/gsl/gsl_sf_bessel.h:int gsl_sf_bessel_I1_e(const double x, gsl_sf_result * result);
+ missing: 5 gsl_sf_bessel_In_e -> /usr/local/include/gsl/gsl_sf_bessel.h:int gsl_sf_bessel_In_e(const int n, const double x, gsl_sf_result * result);
+ missing: 4 gsl_sf_bessel_I0_scaled_e -> /usr/local/include/gsl/gsl_sf_bessel.h:int gsl_sf_bessel_I0_scaled_e(const double x, gsl_sf_result * result);
+ missing: 4 gsl_sf_bessel_I1_scaled_e -> /usr/local/include/gsl/gsl_sf_bessel.h:int gsl_sf_bessel_I1_scaled_e(const double x, gsl_sf_result * result);
+ missing: 5 gsl_sf_bessel_In_scaled_e -> /usr/local/include/gsl/gsl_sf_bessel.h:int gsl_sf_bessel_In_scaled_e(int n, const double x, gsl_sf_result * result);
+ missing: 4 gsl_sf_bessel_K0_e -> /usr/local/include/gsl/gsl_sf_bessel.h:int gsl_sf_bessel_K0_e(const double x, gsl_sf_result * result);
+ missing: 4 gsl_sf_bessel_K1_e -> /usr/local/include/gsl/gsl_sf_bessel.h:int gsl_sf_bessel_K1_e(const double x, gsl_sf_result * result);
+ missing: 5 gsl_sf_bessel_Kn_e -> /usr/local/include/gsl/gsl_sf_bessel.h:int gsl_sf_bessel_Kn_e(const int n, const double x, gsl_sf_result * result);
+ missing: 4 gsl_sf_bessel_K0_scaled_e -> /usr/local/include/gsl/gsl_sf_bessel.h:int gsl_sf_bessel_K0_scaled_e(const double x, gsl_sf_result * result);
+ missing: 4 gsl_sf_bessel_K1_scaled_e -> /usr/local/include/gsl/gsl_sf_bessel.h:int gsl_sf_bessel_K1_scaled_e(const double x, gsl_sf_result * result);
+ missing: 5 gsl_sf_bessel_Kn_scaled_e -> /usr/local/include/gsl/gsl_sf_bessel.h:int gsl_sf_bessel_Kn_scaled_e(int n, const double x, gsl_sf_result * result);
+ missing: 4 gsl_sf_bessel_j0_e -> /usr/local/include/gsl/gsl_sf_bessel.h:int gsl_sf_bessel_j0_e(const double x, gsl_sf_result * result);
+ missing: 4 gsl_sf_bessel_j1_e -> /usr/local/include/gsl/gsl_sf_bessel.h:int gsl_sf_bessel_j1_e(const double x, gsl_sf_result * result);
+ missing: 4 gsl_sf_bessel_j2_e -> /usr/local/include/gsl/gsl_sf_bessel.h:int gsl_sf_bessel_j2_e(const double x, gsl_sf_result * result);
+ missing: 5 gsl_sf_bessel_jl_e -> /usr/local/include/gsl/gsl_sf_bessel.h:int gsl_sf_bessel_jl_e(const int l, const double x, gsl_sf_result * result);
+// -- missing type "double *"
+ missing: 5 gsl_sf_bessel_jl_array -> /usr/local/include/gsl/gsl_sf_bessel.h:int gsl_sf_bessel_jl_array(const int lmax, const double x, double * result_array);
+ missing: 5 gsl_sf_bessel_jl_steed_array -> /usr/local/include/gsl/gsl_sf_bessel.h:int gsl_sf_bessel_jl_steed_array(const int lmax, const double x, double * jl_x_array);
+ missing: 4 gsl_sf_bessel_y0_e -> /usr/local/include/gsl/gsl_sf_bessel.h:int gsl_sf_bessel_y0_e(const double x, gsl_sf_result * result);
+ missing: 4 gsl_sf_bessel_y1_e -> /usr/local/include/gsl/gsl_sf_bessel.h:int gsl_sf_bessel_y1_e(const double x, gsl_sf_result * result);
+ missing: 4 gsl_sf_bessel_y2_e -> /usr/local/include/gsl/gsl_sf_bessel.h:int gsl_sf_bessel_y2_e(const double x, gsl_sf_result * result);
+ missing: 5 gsl_sf_bessel_yl_e -> /usr/local/include/gsl/gsl_sf_bessel.h:int gsl_sf_bessel_yl_e(int l, const double x, gsl_sf_result * result);
+ missing: 5 gsl_sf_bessel_yl_array -> /usr/local/include/gsl/gsl_sf_bessel.h:int gsl_sf_bessel_yl_array(const int lmax, const double x, double * result_array);
+ missing: 4 gsl_sf_bessel_i0_scaled_e -> /usr/local/include/gsl/gsl_sf_bessel.h:int gsl_sf_bessel_i0_scaled_e(const double x, gsl_sf_result * result);
+ missing: 4 gsl_sf_bessel_i1_scaled_e -> /usr/local/include/gsl/gsl_sf_bessel.h:int gsl_sf_bessel_i1_scaled_e(const double x, gsl_sf_result * result);
+ missing: 4 gsl_sf_bessel_i2_scaled_e -> /usr/local/include/gsl/gsl_sf_bessel.h:int gsl_sf_bessel_i2_scaled_e(const double x, gsl_sf_result * result);
+ missing: 5 gsl_sf_bessel_il_scaled_e -> /usr/local/include/gsl/gsl_sf_bessel.h:int gsl_sf_bessel_il_scaled_e(const int l, double x, gsl_sf_result * result);
+ missing: 5 gsl_sf_bessel_il_scaled_array -> /usr/local/include/gsl/gsl_sf_bessel.h:int gsl_sf_bessel_il_scaled_array(const int lmax, const double x, double * result_array);
+ missing: 4 gsl_sf_bessel_k0_scaled_e -> /usr/local/include/gsl/gsl_sf_bessel.h:int gsl_sf_bessel_k0_scaled_e(const double x, gsl_sf_result * result);
+ missing: 4 gsl_sf_bessel_k1_scaled_e -> /usr/local/include/gsl/gsl_sf_bessel.h:int gsl_sf_bessel_k1_scaled_e(const double x, gsl_sf_result * result);
+ missing: 4 gsl_sf_bessel_k2_scaled_e -> /usr/local/include/gsl/gsl_sf_bessel.h:int gsl_sf_bessel_k2_scaled_e(const double x, gsl_sf_result * result);
+ missing: 5 gsl_sf_bessel_kl_scaled_e -> /usr/local/include/gsl/gsl_sf_bessel.h:int gsl_sf_bessel_kl_scaled_e(int l, const double x, gsl_sf_result * result);
+ missing: 5 gsl_sf_bessel_kl_scaled_array -> /usr/local/include/gsl/gsl_sf_bessel.h:int gsl_sf_bessel_kl_scaled_array(const int lmax, const double x, double * result_array);
+ missing: 5 gsl_sf_bessel_Jnu_e -> /usr/local/include/gsl/gsl_sf_bessel.h:int gsl_sf_bessel_Jnu_e(const double nu, const double x, gsl_sf_result * result);
+ missing: 5 gsl_sf_bessel_Ynu_e -> /usr/local/include/gsl/gsl_sf_bessel.h:int gsl_sf_bessel_Ynu_e(double nu, double x, gsl_sf_result * result);
+ missing: 5 gsl_sf_bessel_Inu_scaled_e -> /usr/local/include/gsl/gsl_sf_bessel.h:int gsl_sf_bessel_Inu_scaled_e(double nu, double x, gsl_sf_result * result);
+ missing: 5 gsl_sf_bessel_Inu_e -> /usr/local/include/gsl/gsl_sf_bessel.h:int gsl_sf_bessel_Inu_e(double nu, double x, gsl_sf_result * result);
+ missing: 5 gsl_sf_bessel_Knu_scaled_e -> /usr/local/include/gsl/gsl_sf_bessel.h:int gsl_sf_bessel_Knu_scaled_e(const double nu, const double x, gsl_sf_result * result);
+// -- missing type "gsl_sf_result_e10 *"
+ missing: 5 gsl_sf_bessel_Knu_scaled_e10_e -> /usr/local/include/gsl/gsl_sf_bessel.h:int gsl_sf_bessel_Knu_scaled_e10_e(const double nu, const double x, gsl_sf_result_e10 * result);
+ missing: 5 gsl_sf_bessel_Knu_e -> /usr/local/include/gsl/gsl_sf_bessel.h:int gsl_sf_bessel_Knu_e(const double nu, const double x, gsl_sf_result * result);
+ missing: 5 gsl_sf_bessel_lnKnu_e -> /usr/local/include/gsl/gsl_sf_bessel.h:int gsl_sf_bessel_lnKnu_e(const double nu, const double x, gsl_sf_result * result);
+ missing: 4 gsl_sf_bessel_zero_J0_e -> /usr/local/include/gsl/gsl_sf_bessel.h:int gsl_sf_bessel_zero_J0_e(unsigned int s, gsl_sf_result * result);
+ missing: 4 gsl_sf_bessel_zero_J1_e -> /usr/local/include/gsl/gsl_sf_bessel.h:int gsl_sf_bessel_zero_J1_e(unsigned int s, gsl_sf_result * result);
+ missing: 5 gsl_sf_bessel_zero_Jnu_e -> /usr/local/include/gsl/gsl_sf_bessel.h:int gsl_sf_bessel_zero_Jnu_e(double nu, unsigned int s, gsl_sf_result * result);
+ missing: 4 gsl_sf_clausen_e -> /usr/local/include/gsl/gsl_sf_clausen.h:int gsl_sf_clausen_e(double x, gsl_sf_result * result);
+ missing: 5 gsl_sf_hydrogenicR_1_e -> /usr/local/include/gsl/gsl_sf_coulomb.h:int gsl_sf_hydrogenicR_1_e(const double Z, const double r, gsl_sf_result * result);
+ missing: 5 gsl_sf_coulomb_CL_e -> /usr/local/include/gsl/gsl_sf_coulomb.h:int gsl_sf_coulomb_CL_e(double L, double eta, gsl_sf_result * result);
+ missing: 6 gsl_sf_coulomb_CL_e -> /usr/local/include/gsl/gsl_sf_coulomb.h:int gsl_sf_coulomb_CL_array(double Lmin, int kmax, double eta, double * cl);
+ missing: 4 gsl_sf_dawson_e -> /usr/local/include/gsl/gsl_sf_dawson.h:int gsl_sf_dawson_e(double x, gsl_sf_result * result);
+ missing: 4 gsl_sf_debye_1_e -> /usr/local/include/gsl/gsl_sf_debye.h:int gsl_sf_debye_1_e(const double x, gsl_sf_result * result);
+ missing: 4 gsl_sf_debye_2_e -> /usr/local/include/gsl/gsl_sf_debye.h:int gsl_sf_debye_2_e(const double x, gsl_sf_result * result);
+ missing: 4 gsl_sf_debye_3_e -> /usr/local/include/gsl/gsl_sf_debye.h:int gsl_sf_debye_3_e(const double x, gsl_sf_result * result);
+ missing: 4 gsl_sf_debye_4_e -> /usr/local/include/gsl/gsl_sf_debye.h:int gsl_sf_debye_4_e(const double x, gsl_sf_result * result);
+ missing: 4 gsl_sf_debye_5_e -> /usr/local/include/gsl/gsl_sf_debye.h:int gsl_sf_debye_5_e(const double x, gsl_sf_result * result);
+ missing: 4 gsl_sf_debye_6_e -> /usr/local/include/gsl/gsl_sf_debye.h:int gsl_sf_debye_6_e(const double x, gsl_sf_result * result);
+ missing: 4 gsl_sf_dilog_e -> /usr/local/include/gsl/gsl_sf_dilog.h:int gsl_sf_dilog_e(const double x, gsl_sf_result * result);
+ missing: 5 gsl_sf_multiply_e -> /usr/local/include/gsl/gsl_sf_elementary.h:int gsl_sf_multiply_e(const double x, const double y, gsl_sf_result * result);
+ missing: 5 gsl_sf_ellint_Kcomp_e -> /usr/local/include/gsl/gsl_sf_ellint.h:int gsl_sf_ellint_Kcomp_e(double k, gsl_mode_t mode, gsl_sf_result * result);
+ missing: 4 gsl_sf_ellint_Kcomp -> /usr/local/include/gsl/gsl_sf_ellint.h:double gsl_sf_ellint_Kcomp(double k, gsl_mode_t mode);
+ missing: 5 gsl_sf_ellint_Ecomp_e -> /usr/local/include/gsl/gsl_sf_ellint.h:int gsl_sf_ellint_Ecomp_e(double k, gsl_mode_t mode, gsl_sf_result * result);
+ missing: 4 gsl_sf_ellint_Ecomp -> /usr/local/include/gsl/gsl_sf_ellint.h:double gsl_sf_ellint_Ecomp(double k, gsl_mode_t mode);
+ missing: 6 gsl_sf_ellint_Ecomp -> /usr/local/include/gsl/gsl_sf_ellint.h:int gsl_sf_ellint_Pcomp_e(double k, double n, gsl_mode_t mode, gsl_sf_result * result);
+ missing: 5 gsl_sf_ellint_Pcomp -> /usr/local/include/gsl/gsl_sf_ellint.h:double gsl_sf_ellint_Pcomp(double k, double n, gsl_mode_t mode);
+ missing: 5 gsl_sf_ellint_Dcomp_e -> /usr/local/include/gsl/gsl_sf_ellint.h:int gsl_sf_ellint_Dcomp_e(double k, gsl_mode_t mode, gsl_sf_result * result);
+ missing: 4 gsl_sf_ellint_Dcomp -> /usr/local/include/gsl/gsl_sf_ellint.h:double gsl_sf_ellint_Dcomp(double k, gsl_mode_t mode);
+ missing: 6 gsl_sf_ellint_Dcomp -> /usr/local/include/gsl/gsl_sf_ellint.h:int gsl_sf_ellint_F_e(double phi, double k, gsl_mode_t mode, gsl_sf_result * result);
+ missing: 5 gsl_sf_ellint_F -> /usr/local/include/gsl/gsl_sf_ellint.h:double gsl_sf_ellint_F(double phi, double k, gsl_mode_t mode);
+ missing: 6 gsl_sf_ellint_F -> /usr/local/include/gsl/gsl_sf_ellint.h:int gsl_sf_ellint_E_e(double phi, double k, gsl_mode_t mode, gsl_sf_result * result);
+ missing: 5 gsl_sf_ellint_E -> /usr/local/include/gsl/gsl_sf_ellint.h:double gsl_sf_ellint_E(double phi, double k, gsl_mode_t mode);
+ missing: 7 gsl_sf_ellint_E -> /usr/local/include/gsl/gsl_sf_ellint.h:int gsl_sf_ellint_P_e(double phi, double k, double n, gsl_mode_t mode, gsl_sf_result * result);
+ missing: 6 gsl_sf_ellint_E -> /usr/local/include/gsl/gsl_sf_ellint.h:double gsl_sf_ellint_P(double phi, double k, double n, gsl_mode_t mode);
+ missing: 7 gsl_sf_ellint_E -> /usr/local/include/gsl/gsl_sf_ellint.h:int gsl_sf_ellint_D_e(double phi, double k, double n, gsl_mode_t mode, gsl_sf_result * result);
+ missing: 6 gsl_sf_ellint_E -> /usr/local/include/gsl/gsl_sf_ellint.h:double gsl_sf_ellint_D(double phi, double k, double n, gsl_mode_t mode);
+ missing: 6 gsl_sf_ellint_E -> /usr/local/include/gsl/gsl_sf_ellint.h:int gsl_sf_ellint_RC_e(double x, double y, gsl_mode_t mode, gsl_sf_result * result);
+ missing: 5 gsl_sf_ellint_RC -> /usr/local/include/gsl/gsl_sf_ellint.h:double gsl_sf_ellint_RC(double x, double y, gsl_mode_t mode);
+ missing: 7 gsl_sf_ellint_RC -> /usr/local/include/gsl/gsl_sf_ellint.h:int gsl_sf_ellint_RD_e(double x, double y, double z, gsl_mode_t mode, gsl_sf_result * result);
+ missing: 6 gsl_sf_ellint_RC -> /usr/local/include/gsl/gsl_sf_ellint.h:double gsl_sf_ellint_RD(double x, double y, double z, gsl_mode_t mode);
+ missing: 7 gsl_sf_ellint_RC -> /usr/local/include/gsl/gsl_sf_ellint.h:int gsl_sf_ellint_RF_e(double x, double y, double z, gsl_mode_t mode, gsl_sf_result * result);
+ missing: 6 gsl_sf_ellint_RC -> /usr/local/include/gsl/gsl_sf_ellint.h:double gsl_sf_ellint_RF(double x, double y, double z, gsl_mode_t mode);
+ missing: 8 gsl_sf_ellint_RC -> /usr/local/include/gsl/gsl_sf_ellint.h:int gsl_sf_ellint_RJ_e(double x, double y, double z, double p, gsl_mode_t mode, gsl_sf_result * result);
+ missing: 7 gsl_sf_ellint_RC -> /usr/local/include/gsl/gsl_sf_ellint.h:double gsl_sf_ellint_RJ(double x, double y, double z, double p, gsl_mode_t mode);
+ missing: 7 gsl_sf_ellint_RC -> /usr/local/include/gsl/gsl_sf_elljac.h:int gsl_sf_elljac_e(double u, double m, double * sn, double * cn, double * dn);
+ missing: 4 gsl_sf_erfc_e -> /usr/local/include/gsl/gsl_sf_erf.h:int gsl_sf_erfc_e(double x, gsl_sf_result * result);
+ missing: 4 gsl_sf_log_erfc_e -> /usr/local/include/gsl/gsl_sf_erf.h:int gsl_sf_log_erfc_e(double x, gsl_sf_result * result);
+ missing: 4 gsl_sf_erf_e -> /usr/local/include/gsl/gsl_sf_erf.h:int gsl_sf_erf_e(double x, gsl_sf_result * result);
+ missing: 4 gsl_sf_erf_Z_e -> /usr/local/include/gsl/gsl_sf_erf.h:int gsl_sf_erf_Z_e(double x, gsl_sf_result * result);
+ missing: 4 gsl_sf_erf_Q_e -> /usr/local/include/gsl/gsl_sf_erf.h:int gsl_sf_erf_Q_e(double x, gsl_sf_result * result);
+ missing: 4 gsl_sf_hazard_e -> /usr/local/include/gsl/gsl_sf_erf.h:int gsl_sf_hazard_e(double x, gsl_sf_result * result);
+ missing: 4 gsl_sf_exp_e -> /usr/local/include/gsl/gsl_sf_exp.h:int gsl_sf_exp_e(const double x, gsl_sf_result * result);
+ missing: 4 gsl_sf_exp_e10_e -> /usr/local/include/gsl/gsl_sf_exp.h:int gsl_sf_exp_e10_e(const double x, gsl_sf_result_e10 * result);
+ missing: 5 gsl_sf_exp_mult_e -> /usr/local/include/gsl/gsl_sf_exp.h:int gsl_sf_exp_mult_e(const double x, const double y, gsl_sf_result * result);
+ missing: 5 gsl_sf_exp_mult_e10_e -> /usr/local/include/gsl/gsl_sf_exp.h:int gsl_sf_exp_mult_e10_e(const double x, const double y, gsl_sf_result_e10 * result);
+ missing: 4 gsl_sf_expm1_e -> /usr/local/include/gsl/gsl_sf_exp.h:int gsl_sf_expm1_e(const double x, gsl_sf_result * result);
+ missing: 4 gsl_sf_exprel_e -> /usr/local/include/gsl/gsl_sf_exp.h:int gsl_sf_exprel_e(const double x, gsl_sf_result * result);
+ missing: 4 gsl_sf_exprel_2_e -> /usr/local/include/gsl/gsl_sf_exp.h:int gsl_sf_exprel_2_e(double x, gsl_sf_result * result);
+ missing: 5 gsl_sf_exprel_n_e -> /usr/local/include/gsl/gsl_sf_exp.h:int gsl_sf_exprel_n_e(const int n, const double x, gsl_sf_result * result);
+ missing: 5 gsl_sf_exprel_n_CF_e -> /usr/local/include/gsl/gsl_sf_exp.h:int gsl_sf_exprel_n_CF_e(const double n, const double x, gsl_sf_result * result);
+ missing: 5 gsl_sf_exp_err_e -> /usr/local/include/gsl/gsl_sf_exp.h:int gsl_sf_exp_err_e(const double x, const double dx, gsl_sf_result * result);
+ missing: 5 gsl_sf_exp_err_e10_e -> /usr/local/include/gsl/gsl_sf_exp.h:int gsl_sf_exp_err_e10_e(const double x, const double dx, gsl_sf_result_e10 * result);
+ missing: 7 gsl_sf_exp_err_e10_e -> /usr/local/include/gsl/gsl_sf_exp.h:int gsl_sf_exp_mult_err_e(const double x, const double dx, const double y, const double dy, gsl_sf_result * result);
+ missing: 7 gsl_sf_exp_err_e10_e -> /usr/local/include/gsl/gsl_sf_exp.h:int gsl_sf_exp_mult_err_e10_e(const double x, const double dx, const double y, const double dy, gsl_sf_result_e10 * result);
+ missing: 4 gsl_sf_expint_E1_e -> /usr/local/include/gsl/gsl_sf_expint.h:int gsl_sf_expint_E1_e(const double x, gsl_sf_result * result);
+ missing: 4 gsl_sf_expint_E2_e -> /usr/local/include/gsl/gsl_sf_expint.h:int gsl_sf_expint_E2_e(const double x, gsl_sf_result * result);
+ missing: 5 gsl_sf_expint_En_e -> /usr/local/include/gsl/gsl_sf_expint.h:int gsl_sf_expint_En_e(const int n, const double x, gsl_sf_result * result);
+ missing: 4 gsl_sf_expint_E1_scaled_e -> /usr/local/include/gsl/gsl_sf_expint.h:int gsl_sf_expint_E1_scaled_e(const double x, gsl_sf_result * result);
+ missing: 4 gsl_sf_expint_E2_scaled_e -> /usr/local/include/gsl/gsl_sf_expint.h:int gsl_sf_expint_E2_scaled_e(const double x, gsl_sf_result * result);
+ missing: 5 gsl_sf_expint_En_scaled_e -> /usr/local/include/gsl/gsl_sf_expint.h:int gsl_sf_expint_En_scaled_e(const int n, const double x, gsl_sf_result * result);
+ missing: 4 gsl_sf_expint_Ei_e -> /usr/local/include/gsl/gsl_sf_expint.h:int gsl_sf_expint_Ei_e(const double x, gsl_sf_result * result);
+ missing: 4 gsl_sf_expint_Ei_scaled_e -> /usr/local/include/gsl/gsl_sf_expint.h:int gsl_sf_expint_Ei_scaled_e(const double x, gsl_sf_result * result);
+ missing: 4 gsl_sf_Shi_e -> /usr/local/include/gsl/gsl_sf_expint.h:int gsl_sf_Shi_e(const double x, gsl_sf_result * result);
+ missing: 4 gsl_sf_Chi_e -> /usr/local/include/gsl/gsl_sf_expint.h:int gsl_sf_Chi_e(const double x, gsl_sf_result * result);
+ missing: 4 gsl_sf_expint_3_e -> /usr/local/include/gsl/gsl_sf_expint.h:int gsl_sf_expint_3_e(const double x, gsl_sf_result * result);
+ missing: 4 gsl_sf_Si_e -> /usr/local/include/gsl/gsl_sf_expint.h:int gsl_sf_Si_e(const double x, gsl_sf_result * result);
+ missing: 4 gsl_sf_Ci_e -> /usr/local/include/gsl/gsl_sf_expint.h:int gsl_sf_Ci_e(const double x, gsl_sf_result * result);
+ missing: 4 gsl_sf_atanint_e -> /usr/local/include/gsl/gsl_sf_expint.h:int gsl_sf_atanint_e(const double x, gsl_sf_result * result);
+ missing: 4 gsl_sf_fermi_dirac_m1_e -> /usr/local/include/gsl/gsl_sf_fermi_dirac.h:int gsl_sf_fermi_dirac_m1_e(const double x, gsl_sf_result * result);
+ missing: 4 gsl_sf_fermi_dirac_0_e -> /usr/local/include/gsl/gsl_sf_fermi_dirac.h:int gsl_sf_fermi_dirac_0_e(const double x, gsl_sf_result * result);
+ missing: 4 gsl_sf_fermi_dirac_1_e -> /usr/local/include/gsl/gsl_sf_fermi_dirac.h:int gsl_sf_fermi_dirac_1_e(const double x, gsl_sf_result * result);
+ missing: 4 gsl_sf_fermi_dirac_2_e -> /usr/local/include/gsl/gsl_sf_fermi_dirac.h:int gsl_sf_fermi_dirac_2_e(const double x, gsl_sf_result * result);
+ missing: 5 gsl_sf_fermi_dirac_int_e -> /usr/local/include/gsl/gsl_sf_fermi_dirac.h:int gsl_sf_fermi_dirac_int_e(const int j, const double x, gsl_sf_result * result);
+ missing: 4 gsl_sf_fermi_dirac_mhalf_e -> /usr/local/include/gsl/gsl_sf_fermi_dirac.h:int gsl_sf_fermi_dirac_mhalf_e(const double x, gsl_sf_result * result);
+ missing: 4 gsl_sf_fermi_dirac_half_e -> /usr/local/include/gsl/gsl_sf_fermi_dirac.h:int gsl_sf_fermi_dirac_half_e(const double x, gsl_sf_result * result);
+ missing: 4 gsl_sf_fermi_dirac_3half_e -> /usr/local/include/gsl/gsl_sf_fermi_dirac.h:int gsl_sf_fermi_dirac_3half_e(const double x, gsl_sf_result * result);
+ missing: 5 gsl_sf_fermi_dirac_inc_0_e -> /usr/local/include/gsl/gsl_sf_fermi_dirac.h:int gsl_sf_fermi_dirac_inc_0_e(const double x, const double b, gsl_sf_result * result);
+ missing: 4 gsl_sf_lngamma_e -> /usr/local/include/gsl/gsl_sf_gamma.h:int gsl_sf_lngamma_e(double x, gsl_sf_result * result);
+ missing: 5 gsl_sf_lngamma_sgn_e -> /usr/local/include/gsl/gsl_sf_gamma.h:int gsl_sf_lngamma_sgn_e(double x, gsl_sf_result * result_lg, double *sgn);
+ missing: 4 gsl_sf_gamma_e -> /usr/local/include/gsl/gsl_sf_gamma.h:int gsl_sf_gamma_e(const double x, gsl_sf_result * result);
+ missing: 4 gsl_sf_gammastar_e -> /usr/local/include/gsl/gsl_sf_gamma.h:int gsl_sf_gammastar_e(const double x, gsl_sf_result * result);
+ missing: 4 gsl_sf_gammainv_e -> /usr/local/include/gsl/gsl_sf_gamma.h:int gsl_sf_gammainv_e(const double x, gsl_sf_result * result);
+ missing: 5 gsl_sf_taylorcoeff_e -> /usr/local/include/gsl/gsl_sf_gamma.h:int gsl_sf_taylorcoeff_e(const int n, const double x, gsl_sf_result * result);
+ missing: 4 gsl_sf_fact_e -> /usr/local/include/gsl/gsl_sf_gamma.h:int gsl_sf_fact_e(const unsigned int n, gsl_sf_result * result);
+ missing: 4 gsl_sf_doublefact_e -> /usr/local/include/gsl/gsl_sf_gamma.h:int gsl_sf_doublefact_e(const unsigned int n, gsl_sf_result * result);
+ missing: 4 gsl_sf_lnfact_e -> /usr/local/include/gsl/gsl_sf_gamma.h:int gsl_sf_lnfact_e(const unsigned int n, gsl_sf_result * result);
+ missing: 4 gsl_sf_lndoublefact_e -> /usr/local/include/gsl/gsl_sf_gamma.h:int gsl_sf_lndoublefact_e(const unsigned int n, gsl_sf_result * result);
+ missing: 5 gsl_sf_lnchoose_e -> /usr/local/include/gsl/gsl_sf_gamma.h:int gsl_sf_lnchoose_e(unsigned int n, unsigned int m, gsl_sf_result * result);
+ missing: 5 gsl_sf_choose_e -> /usr/local/include/gsl/gsl_sf_gamma.h:int gsl_sf_choose_e(unsigned int n, unsigned int m, gsl_sf_result * result);
+ missing: 5 gsl_sf_lnpoch_e -> /usr/local/include/gsl/gsl_sf_gamma.h:int gsl_sf_lnpoch_e(const double a, const double x, gsl_sf_result * result);
+ missing: 5 gsl_sf_poch_e -> /usr/local/include/gsl/gsl_sf_gamma.h:int gsl_sf_poch_e(const double a, const double x, gsl_sf_result * result);
+ missing: 5 gsl_sf_pochrel_e -> /usr/local/include/gsl/gsl_sf_gamma.h:int gsl_sf_pochrel_e(const double a, const double x, gsl_sf_result * result);
+ missing: 5 gsl_sf_gamma_inc_Q_e -> /usr/local/include/gsl/gsl_sf_gamma.h:int gsl_sf_gamma_inc_Q_e(const double a, const double x, gsl_sf_result * result);
+ missing: 5 gsl_sf_gamma_inc_P_e -> /usr/local/include/gsl/gsl_sf_gamma.h:int gsl_sf_gamma_inc_P_e(const double a, const double x, gsl_sf_result * result);
+ missing: 5 gsl_sf_gamma_inc_e -> /usr/local/include/gsl/gsl_sf_gamma.h:int gsl_sf_gamma_inc_e(const double a, const double x, gsl_sf_result * result);
+ missing: 5 gsl_sf_lnbeta_e -> /usr/local/include/gsl/gsl_sf_gamma.h:int gsl_sf_lnbeta_e(const double a, const double b, gsl_sf_result * result);
+ missing: 5 gsl_sf_beta_e -> /usr/local/include/gsl/gsl_sf_gamma.h:int gsl_sf_beta_e(const double a, const double b, gsl_sf_result * result);
+ missing: 5 gsl_sf_gegenpoly_1_e -> /usr/local/include/gsl/gsl_sf_gegenbauer.h:int gsl_sf_gegenpoly_1_e(double lambda, double x, gsl_sf_result * result);
+ missing: 5 gsl_sf_gegenpoly_2_e -> /usr/local/include/gsl/gsl_sf_gegenbauer.h:int gsl_sf_gegenpoly_2_e(double lambda, double x, gsl_sf_result * result);
+ missing: 5 gsl_sf_gegenpoly_3_e -> /usr/local/include/gsl/gsl_sf_gegenbauer.h:int gsl_sf_gegenpoly_3_e(double lambda, double x, gsl_sf_result * result);
+ missing: 5 gsl_sf_hyperg_0F1_e -> /usr/local/include/gsl/gsl_sf_hyperg.h:int gsl_sf_hyperg_0F1_e(double c, double x, gsl_sf_result * result);
+ missing: 5 gsl_sf_laguerre_1_e -> /usr/local/include/gsl/gsl_sf_laguerre.h:int gsl_sf_laguerre_1_e(const double a, const double x, gsl_sf_result * result);
+ missing: 5 gsl_sf_laguerre_2_e -> /usr/local/include/gsl/gsl_sf_laguerre.h:int gsl_sf_laguerre_2_e(const double a, const double x, gsl_sf_result * result);
+ missing: 5 gsl_sf_laguerre_3_e -> /usr/local/include/gsl/gsl_sf_laguerre.h:int gsl_sf_laguerre_3_e(const double a, const double x, gsl_sf_result * result);
+ missing: 4 gsl_sf_lambert_W0_e -> /usr/local/include/gsl/gsl_sf_lambert.h:int gsl_sf_lambert_W0_e(double x, gsl_sf_result * result);
+ missing: 4 gsl_sf_lambert_Wm1_e -> /usr/local/include/gsl/gsl_sf_lambert.h:int gsl_sf_lambert_Wm1_e(double x, gsl_sf_result * result);
+ missing: 5 gsl_sf_legendre_Pl_e -> /usr/local/include/gsl/gsl_sf_legendre.h:int gsl_sf_legendre_Pl_e(const int l, const double x, gsl_sf_result * result);
+ missing: 4 gsl_sf_legendre_P1_e -> /usr/local/include/gsl/gsl_sf_legendre.h:int gsl_sf_legendre_P1_e(double x, gsl_sf_result * result);
+ missing: 4 gsl_sf_legendre_P2_e -> /usr/local/include/gsl/gsl_sf_legendre.h:int gsl_sf_legendre_P2_e(double x, gsl_sf_result * result);
+ missing: 4 gsl_sf_legendre_P3_e -> /usr/local/include/gsl/gsl_sf_legendre.h:int gsl_sf_legendre_P3_e(double x, gsl_sf_result * result);
+ missing: 4 gsl_sf_legendre_Q0_e -> /usr/local/include/gsl/gsl_sf_legendre.h:int gsl_sf_legendre_Q0_e(const double x, gsl_sf_result * result);
+ missing: 4 gsl_sf_legendre_Q1_e -> /usr/local/include/gsl/gsl_sf_legendre.h:int gsl_sf_legendre_Q1_e(const double x, gsl_sf_result * result);
+ missing: 5 gsl_sf_legendre_Ql_e -> /usr/local/include/gsl/gsl_sf_legendre.h:int gsl_sf_legendre_Ql_e(const int l, const double x, gsl_sf_result * result);
+ missing: 5 gsl_sf_conicalP_half_e -> /usr/local/include/gsl/gsl_sf_legendre.h:int gsl_sf_conicalP_half_e(const double lambda, const double x, gsl_sf_result * result);
+ missing: 5 gsl_sf_conicalP_mhalf_e -> /usr/local/include/gsl/gsl_sf_legendre.h:int gsl_sf_conicalP_mhalf_e(const double lambda, const double x, gsl_sf_result * result);
+ missing: 5 gsl_sf_conicalP_0_e -> /usr/local/include/gsl/gsl_sf_legendre.h:int gsl_sf_conicalP_0_e(const double lambda, const double x, gsl_sf_result * result);
+ missing: 5 gsl_sf_conicalP_1_e -> /usr/local/include/gsl/gsl_sf_legendre.h:int gsl_sf_conicalP_1_e(const double lambda, const double x, gsl_sf_result * result);
+ missing: 5 gsl_sf_legendre_H3d_0_e -> /usr/local/include/gsl/gsl_sf_legendre.h:int gsl_sf_legendre_H3d_0_e(const double lambda, const double eta, gsl_sf_result * result);
+ missing: 5 gsl_sf_legendre_H3d_1_e -> /usr/local/include/gsl/gsl_sf_legendre.h:int gsl_sf_legendre_H3d_1_e(const double lambda, const double eta, gsl_sf_result * result);
+ missing: 4 gsl_sf_log_e -> /usr/local/include/gsl/gsl_sf_log.h:int gsl_sf_log_e(const double x, gsl_sf_result * result);
+ missing: 4 gsl_sf_log_abs_e -> /usr/local/include/gsl/gsl_sf_log.h:int gsl_sf_log_abs_e(const double x, gsl_sf_result * result);
+ missing: 4 gsl_sf_log_1plusx_e -> /usr/local/include/gsl/gsl_sf_log.h:int gsl_sf_log_1plusx_e(const double x, gsl_sf_result * result);
+ missing: 4 gsl_sf_log_1plusx_mx_e -> /usr/local/include/gsl/gsl_sf_log.h:int gsl_sf_log_1plusx_mx_e(const double x, gsl_sf_result * result);
+// -- missing type "gsl_sf_result"
+ missing: 5 gsl_sf_mathieu_a -> /usr/local/include/gsl/gsl_sf_mathieu.h:int gsl_sf_mathieu_a(int order, double qq, gsl_sf_result *result);
+ missing: 5 gsl_sf_mathieu_b -> /usr/local/include/gsl/gsl_sf_mathieu.h:int gsl_sf_mathieu_b(int order, double qq, gsl_sf_result *result);
+ missing: 6 gsl_sf_mathieu_b -> /usr/local/include/gsl/gsl_sf_mathieu.h:int gsl_sf_mathieu_a_coeff(int order, double qq, double aa, double coeff[]);
+ missing: 6 gsl_sf_mathieu_b -> /usr/local/include/gsl/gsl_sf_mathieu.h:int gsl_sf_mathieu_b_coeff(int order, double qq, double aa, double coeff[]);
+ missing: 6 gsl_sf_mathieu_b -> /usr/local/include/gsl/gsl_sf_mathieu.h:int gsl_sf_mathieu_ce(int order, double qq, double zz, gsl_sf_result *result);
+ missing: 6 gsl_sf_mathieu_b -> /usr/local/include/gsl/gsl_sf_mathieu.h:int gsl_sf_mathieu_se(int order, double qq, double zz, gsl_sf_result *result);
+ missing: 5 gsl_sf_pow_int_e -> /usr/local/include/gsl/gsl_sf_pow_int.h:int gsl_sf_pow_int_e(double x, int n, gsl_sf_result * result);
+ missing: 4 gsl_sf_psi_int_e -> /usr/local/include/gsl/gsl_sf_psi.h:int gsl_sf_psi_int_e(const int n, gsl_sf_result * result);
+ missing: 4 gsl_sf_psi_e -> /usr/local/include/gsl/gsl_sf_psi.h:int gsl_sf_psi_e(const double x, gsl_sf_result * result);
+ missing: 4 gsl_sf_psi_1piy_e -> /usr/local/include/gsl/gsl_sf_psi.h:int gsl_sf_psi_1piy_e(const double y, gsl_sf_result * result);
+ missing: 4 gsl_sf_psi_1_int_e -> /usr/local/include/gsl/gsl_sf_psi.h:int gsl_sf_psi_1_int_e(const int n, gsl_sf_result * result);
+ missing: 4 gsl_sf_psi_1_e -> /usr/local/include/gsl/gsl_sf_psi.h:int gsl_sf_psi_1_e(const double x, gsl_sf_result * result);
+ missing: 5 gsl_sf_psi_n_e -> /usr/local/include/gsl/gsl_sf_psi.h:int gsl_sf_psi_n_e(const int n, const double x, gsl_sf_result * result);
+// -- missing type "const gsl_sf_result_e10 *"
+ missing: 4 gsl_sf_result_smash_e -> /usr/local/include/gsl/gsl_sf_result.h:int gsl_sf_result_smash_e(const gsl_sf_result_e10 * re, gsl_sf_result * r);
+ missing: 4 gsl_sf_synchrotron_1_e -> /usr/local/include/gsl/gsl_sf_synchrotron.h:int gsl_sf_synchrotron_1_e(const double x, gsl_sf_result * result);
+ missing: 4 gsl_sf_synchrotron_2_e -> /usr/local/include/gsl/gsl_sf_synchrotron.h:int gsl_sf_synchrotron_2_e(const double x, gsl_sf_result * result);
+ missing: 4 gsl_sf_transport_2_e -> /usr/local/include/gsl/gsl_sf_transport.h:int gsl_sf_transport_2_e(const double x, gsl_sf_result * result);
+ missing: 4 gsl_sf_transport_3_e -> /usr/local/include/gsl/gsl_sf_transport.h:int gsl_sf_transport_3_e(const double x, gsl_sf_result * result);
+ missing: 4 gsl_sf_transport_4_e -> /usr/local/include/gsl/gsl_sf_transport.h:int gsl_sf_transport_4_e(const double x, gsl_sf_result * result);
+ missing: 4 gsl_sf_transport_5_e -> /usr/local/include/gsl/gsl_sf_transport.h:int gsl_sf_transport_5_e(const double x, gsl_sf_result * result);
+ missing: 4 gsl_sf_sin_e -> /usr/local/include/gsl/gsl_sf_trig.h:int gsl_sf_sin_e(double x, gsl_sf_result * result);
+ missing: 4 gsl_sf_cos_e -> /usr/local/include/gsl/gsl_sf_trig.h:int gsl_sf_cos_e(double x, gsl_sf_result * result);
+ missing: 5 gsl_sf_hypot_e -> /usr/local/include/gsl/gsl_sf_trig.h:int gsl_sf_hypot_e(const double x, const double y, gsl_sf_result * result);
+ missing: 4 gsl_sf_sinc_e -> /usr/local/include/gsl/gsl_sf_trig.h:int gsl_sf_sinc_e(double x, gsl_sf_result * result);
+ missing: 4 gsl_sf_lnsinh_e -> /usr/local/include/gsl/gsl_sf_trig.h:int gsl_sf_lnsinh_e(const double x, gsl_sf_result * result);
+ missing: 4 gsl_sf_lncosh_e -> /usr/local/include/gsl/gsl_sf_trig.h:int gsl_sf_lncosh_e(const double x, gsl_sf_result * result);
+ missing: 5 gsl_sf_sin_err_e -> /usr/local/include/gsl/gsl_sf_trig.h:int gsl_sf_sin_err_e(const double x, const double dx, gsl_sf_result * result);
+ missing: 5 gsl_sf_cos_err_e -> /usr/local/include/gsl/gsl_sf_trig.h:int gsl_sf_cos_err_e(const double x, const double dx, gsl_sf_result * result);
+ missing: 3 gsl_sf_angle_restrict_symm_e -> /usr/local/include/gsl/gsl_sf_trig.h:int gsl_sf_angle_restrict_symm_e(double * theta);
+ missing: 3 gsl_sf_angle_restrict_pos_e -> /usr/local/include/gsl/gsl_sf_trig.h:int gsl_sf_angle_restrict_pos_e(double * theta);
+ missing: 4 gsl_sf_angle_restrict_symm_err_e -> /usr/local/include/gsl/gsl_sf_trig.h:int gsl_sf_angle_restrict_symm_err_e(const double theta, gsl_sf_result * result);
+ missing: 4 gsl_sf_angle_restrict_pos_err_e -> /usr/local/include/gsl/gsl_sf_trig.h:int gsl_sf_angle_restrict_pos_err_e(const double theta, gsl_sf_result * result);
+ missing: 4 gsl_sf_zeta_int_e -> /usr/local/include/gsl/gsl_sf_zeta.h:int gsl_sf_zeta_int_e(const int n, gsl_sf_result * result);
+ missing: 4 gsl_sf_zeta_e -> /usr/local/include/gsl/gsl_sf_zeta.h:int gsl_sf_zeta_e(const double s, gsl_sf_result * result);
+ missing: 4 gsl_sf_zetam1_e -> /usr/local/include/gsl/gsl_sf_zeta.h:int gsl_sf_zetam1_e(const double s, gsl_sf_result * result);
+ missing: 4 gsl_sf_zetam1_int_e -> /usr/local/include/gsl/gsl_sf_zeta.h:int gsl_sf_zetam1_int_e(const int s, gsl_sf_result * result);
+ missing: 5 gsl_sf_hzeta_e -> /usr/local/include/gsl/gsl_sf_zeta.h:int gsl_sf_hzeta_e(const double s, const double q, gsl_sf_result * result);
+ missing: 4 gsl_sf_eta_int_e -> /usr/local/include/gsl/gsl_sf_zeta.h:int gsl_sf_eta_int_e(int n, gsl_sf_result * result);
+ missing: 4 gsl_sf_eta_e -> /usr/local/include/gsl/gsl_sf_zeta.h:int gsl_sf_eta_e(const double s, gsl_sf_result * result);
*/
/*****************/
/*****************/
-double gsl_sf_airy_Ai( double x, long y ) { return gsl_sf_airy_Ai( ( const double) x, ( gsl_mode_t) y );}
-double gsl_sf_airy_Bi( double x, long y ) { return gsl_sf_airy_Bi( ( const double) x, ( gsl_mode_t) y );}
-double gsl_sf_airy_Ai_scaled( double x, long y ) { return gsl_sf_airy_Ai_scaled( ( const double) x, ( gsl_mode_t) y );}
-double gsl_sf_airy_Bi_scaled( double x, long y ) { return gsl_sf_airy_Bi_scaled( ( const double) x, ( gsl_mode_t) y );}
-double gsl_sf_airy_Ai_deriv( double x, long y ) { return gsl_sf_airy_Ai_deriv( ( const double) x, ( gsl_mode_t) y );}
-double gsl_sf_airy_Bi_deriv( double x, long y ) { return gsl_sf_airy_Bi_deriv( ( const double) x, ( gsl_mode_t) y );}
-double gsl_sf_airy_Ai_deriv_scaled( double x, long y ) { return gsl_sf_airy_Ai_deriv_scaled( ( const double) x, ( gsl_mode_t) y );}
-double gsl_sf_airy_Bi_deriv_scaled( double x, long y ) { return gsl_sf_airy_Bi_deriv_scaled( ( const double) x, ( gsl_mode_t) y );}
-double gsl_sf_airy_zero_Ai( long x ) { return gsl_sf_airy_zero_Ai( ( unsigned int) x );}
-double gsl_sf_airy_zero_Bi( long x ) { return gsl_sf_airy_zero_Bi( ( unsigned int) x );}
-double gsl_sf_airy_zero_Ai_deriv( long x ) { return gsl_sf_airy_zero_Ai_deriv( ( unsigned int) x );}
-double gsl_sf_airy_zero_Bi_deriv( long x ) { return gsl_sf_airy_zero_Bi_deriv( ( unsigned int) x );}
-double gsl_sf_bessel_Jn( long x, double y ) { return gsl_sf_bessel_Jn( ( const int) x, ( const double) y );}
-double gsl_sf_bessel_Yn( long x, double y ) { return gsl_sf_bessel_Yn( ( const int) x, ( const double) y );}
-double gsl_sf_bessel_In( long x, double y ) { return gsl_sf_bessel_In( ( const int) x, ( const double) y );}
-double gsl_sf_bessel_In_scaled( long x, double y ) { return gsl_sf_bessel_In_scaled( ( const int) x, ( const double) y );}
-double gsl_sf_bessel_Kn( long x, double y ) { return gsl_sf_bessel_Kn( ( const int) x, ( const double) y );}
-double gsl_sf_bessel_Kn_scaled( long x, double y ) { return gsl_sf_bessel_Kn_scaled( ( const int) x, ( const double) y );}
-double gsl_sf_bessel_jl( long x, double y ) { return gsl_sf_bessel_jl( ( const int) x, ( const double) y );}
-double gsl_sf_bessel_yl( long x, double y ) { return gsl_sf_bessel_yl( ( const int) x, ( const double) y );}
-double gsl_sf_bessel_il_scaled( long x, double y ) { return gsl_sf_bessel_il_scaled( ( const int) x, ( const double) y );}
-double gsl_sf_bessel_kl_scaled( long x, double y ) { return gsl_sf_bessel_kl_scaled( ( const int) x, ( const double) y );}
-double gsl_sf_bessel_Jnu( double x, long y ) { return gsl_sf_bessel_Jnu( ( const double) x, ( const double) y );}
-double gsl_sf_bessel_Ynu( double x, long y ) { return gsl_sf_bessel_Ynu( ( const double) x, ( const double) y );}
-double gsl_sf_bessel_Inu_scaled( double x, long y ) { return gsl_sf_bessel_Inu_scaled( ( double) x, ( double) y );}
-double gsl_sf_bessel_Inu( double x, long y ) { return gsl_sf_bessel_Inu( ( double) x, ( double) y );}
-double gsl_sf_bessel_Knu_scaled( double x, long y ) { return gsl_sf_bessel_Knu_scaled( ( const double) x, ( const double) y );}
-double gsl_sf_bessel_Knu( double x, long y ) { return gsl_sf_bessel_Knu( ( const double) x, ( const double) y );}
-double gsl_sf_bessel_lnKnu( double x, long y ) { return gsl_sf_bessel_lnKnu( ( const double) x, ( const double) y );}
-double gsl_sf_bessel_zero_J0( long x ) { return gsl_sf_bessel_zero_J0( ( unsigned int) x );}
-double gsl_sf_bessel_zero_J1( long x ) { return gsl_sf_bessel_zero_J1( ( unsigned int) x );}
-double gsl_sf_bessel_zero_Jnu( double x, long y ) { return gsl_sf_bessel_zero_Jnu( ( double) x, ( unsigned int) y );}
-double gsl_sf_hydrogenicR_1( double x, long y ) { return gsl_sf_hydrogenicR_1( ( const double) x, ( const double) y );}
-double gsl_sf_multiply( double x, long y ) { return gsl_sf_multiply( ( const double) x, ( const double) y );}
-double gsl_sf_ellint_Kcomp( double x, long y ) { return gsl_sf_ellint_Kcomp( ( double) x, ( gsl_mode_t) y );}
-double gsl_sf_ellint_Ecomp( double x, long y ) { return gsl_sf_ellint_Ecomp( ( double) x, ( gsl_mode_t) y );}
-double gsl_sf_ellint_Dcomp( double x, long y ) { return gsl_sf_ellint_Dcomp( ( double) x, ( gsl_mode_t) y );}
-double gsl_sf_exp_mult( double x, long y ) { return gsl_sf_exp_mult( ( const double) x, ( const double) y );}
-double gsl_sf_exprel_n( long x, double y ) { return gsl_sf_exprel_n( ( const int) x, ( const double) y );}
-double gsl_sf_expint_En( long x, double y ) { return gsl_sf_expint_En( ( const int) x, ( const double) y );}
-double gsl_sf_expint_En_scaled( long x, double y ) { return gsl_sf_expint_En_scaled( ( const int) x, ( const double) y );}
-double gsl_sf_fermi_dirac_int( long x, double y ) { return gsl_sf_fermi_dirac_int( ( const int) x, ( const double) y );}
-double gsl_sf_fermi_dirac_inc_0( double x, long y ) { return gsl_sf_fermi_dirac_inc_0( ( const double) x, ( const double) y );}
-double gsl_sf_taylorcoeff( long x, double y ) { return gsl_sf_taylorcoeff( ( const int) x, ( const double) y );}
-double gsl_sf_fact( long x ) { return gsl_sf_fact( ( const unsigned int) x );}
-double gsl_sf_doublefact( long x ) { return gsl_sf_doublefact( ( const unsigned int) x );}
-double gsl_sf_lnfact( long x ) { return gsl_sf_lnfact( ( const unsigned int) x );}
-double gsl_sf_lndoublefact( long x ) { return gsl_sf_lndoublefact( ( const unsigned int) x );}
-double gsl_sf_lnchoose( long x, long y ) { return gsl_sf_lnchoose( ( unsigned int) x, ( unsigned int) y );}
-double gsl_sf_choose( long x, long y ) { return gsl_sf_choose( ( unsigned int) x, ( unsigned int) y );}
-double gsl_sf_lnpoch( double x, long y ) { return gsl_sf_lnpoch( ( const double) x, ( const double) y );}
-double gsl_sf_poch( double x, long y ) { return gsl_sf_poch( ( const double) x, ( const double) y );}
-double gsl_sf_pochrel( double x, long y ) { return gsl_sf_pochrel( ( const double) x, ( const double) y );}
-double gsl_sf_gamma_inc_Q( double x, long y ) { return gsl_sf_gamma_inc_Q( ( const double) x, ( const double) y );}
-double gsl_sf_gamma_inc_P( double x, long y ) { return gsl_sf_gamma_inc_P( ( const double) x, ( const double) y );}
-double gsl_sf_gamma_inc( double x, long y ) { return gsl_sf_gamma_inc( ( const double) x, ( const double) y );}
-double gsl_sf_lnbeta( double x, long y ) { return gsl_sf_lnbeta( ( const double) x, ( const double) y );}
-double gsl_sf_beta( double x, long y ) { return gsl_sf_beta( ( const double) x, ( const double) y );}
-double gsl_sf_gegenpoly_1( double x, long y ) { return gsl_sf_gegenpoly_1( ( double) x, ( double) y );}
-double gsl_sf_gegenpoly_2( double x, long y ) { return gsl_sf_gegenpoly_2( ( double) x, ( double) y );}
-double gsl_sf_gegenpoly_3( double x, long y ) { return gsl_sf_gegenpoly_3( ( double) x, ( double) y );}
-double gsl_sf_hyperg_0F1( double x, long y ) { return gsl_sf_hyperg_0F1( ( const double) x, ( const double) y );}
-double gsl_sf_laguerre_1( double x, long y ) { return gsl_sf_laguerre_1( ( double) x, ( double) y );}
-double gsl_sf_laguerre_2( double x, long y ) { return gsl_sf_laguerre_2( ( double) x, ( double) y );}
-double gsl_sf_laguerre_3( double x, long y ) { return gsl_sf_laguerre_3( ( double) x, ( double) y );}
-double gsl_sf_legendre_Pl( long x, double y ) { return gsl_sf_legendre_Pl( ( const int) x, ( const double) y );}
-double gsl_sf_legendre_Ql( long x, double y ) { return gsl_sf_legendre_Ql( ( const int) x, ( const double) y );}
-double gsl_sf_conicalP_half( double x, long y ) { return gsl_sf_conicalP_half( ( const double) x, ( const double) y );}
-double gsl_sf_conicalP_mhalf( double x, long y ) { return gsl_sf_conicalP_mhalf( ( const double) x, ( const double) y );}
-double gsl_sf_conicalP_0( double x, long y ) { return gsl_sf_conicalP_0( ( const double) x, ( const double) y );}
-double gsl_sf_conicalP_1( double x, long y ) { return gsl_sf_conicalP_1( ( const double) x, ( const double) y );}
-double gsl_sf_legendre_H3d_0( double x, long y ) { return gsl_sf_legendre_H3d_0( ( const double) x, ( const double) y );}
-double gsl_sf_legendre_H3d_1( double x, long y ) { return gsl_sf_legendre_H3d_1( ( const double) x, ( const double) y );}
-double gsl_sf_pow_int( double x, long y ) { return gsl_sf_pow_int( ( const double) x, ( const int) y );}
-double gsl_sf_psi_int( long x ) { return gsl_sf_psi_int( ( const int) x );}
-double gsl_sf_psi_1_int( long x ) { return gsl_sf_psi_1_int( ( const int) x );}
-double gsl_sf_psi_n( long x, double y ) { return gsl_sf_psi_n( ( const int) x, ( const double) y );}
-double gsl_sf_hypot( double x, long y ) { return gsl_sf_hypot( ( const double) x, ( const double) y );}
-double gsl_sf_zeta_int( long x ) { return gsl_sf_zeta_int( ( const int) x );}
-double gsl_sf_zetam1_int( long x ) { return gsl_sf_zetam1_int( ( const int) x );}
-double gsl_sf_hzeta( double x, long y ) { return gsl_sf_hzeta( ( const double) x, ( const double) y );}
-double gsl_sf_eta_int( long x ) { return gsl_sf_eta_int( ( const int) x );}
+double gsl_cdf_ugaussian_P__(double const & x ) { return gsl_cdf_ugaussian_P( (const double) x );}
+double gsl_cdf_ugaussian_Q__(double const & x ) { return gsl_cdf_ugaussian_Q( (const double) x );}
+double gsl_cdf_ugaussian_Pinv__(double const & x ) { return gsl_cdf_ugaussian_Pinv( (const double) x );}
+double gsl_cdf_ugaussian_Qinv__(double const & x ) { return gsl_cdf_ugaussian_Qinv( (const double) x );}
+double gsl_cdf_gaussian_P__(double const & x , double const & y ){ return gsl_cdf_gaussian_P( (const double) x , (const double) y );}
+double gsl_cdf_gaussian_Q__(double const & x , double const & y ){ return gsl_cdf_gaussian_Q( (const double) x , (const double) y );}
+double gsl_cdf_gaussian_Pinv__(double const & x , double const & y ){ return gsl_cdf_gaussian_Pinv( (const double) x , (const double) y );}
+double gsl_cdf_gaussian_Qinv__(double const & x , double const & y ){ return gsl_cdf_gaussian_Qinv( (const double) x , (const double) y );}
+double gsl_cdf_gamma_P__(double const & x , double const & y , double const & z ){ return gsl_cdf_gamma_P( (const double) x , (const double) y , (const double) z );}
+double gsl_cdf_gamma_Q__(double const & x , double const & y , double const & z ){ return gsl_cdf_gamma_Q( (const double) x , (const double) y , (const double) z );}
+double gsl_cdf_gamma_Pinv__(double const & x , double const & y , double const & z ){ return gsl_cdf_gamma_Pinv( (const double) x , (const double) y , (const double) z );}
+double gsl_cdf_gamma_Qinv__(double const & x , double const & y , double const & z ){ return gsl_cdf_gamma_Qinv( (const double) x , (const double) y , (const double) z );}
+double gsl_cdf_cauchy_P__(double const & x , double const & y ){ return gsl_cdf_cauchy_P( (const double) x , (const double) y );}
+double gsl_cdf_cauchy_Q__(double const & x , double const & y ){ return gsl_cdf_cauchy_Q( (const double) x , (const double) y );}
+double gsl_cdf_cauchy_Pinv__(double const & x , double const & y ){ return gsl_cdf_cauchy_Pinv( (const double) x , (const double) y );}
+double gsl_cdf_cauchy_Qinv__(double const & x , double const & y ){ return gsl_cdf_cauchy_Qinv( (const double) x , (const double) y );}
+double gsl_cdf_laplace_P__(double const & x , double const & y ){ return gsl_cdf_laplace_P( (const double) x , (const double) y );}
+double gsl_cdf_laplace_Q__(double const & x , double const & y ){ return gsl_cdf_laplace_Q( (const double) x , (const double) y );}
+double gsl_cdf_laplace_Pinv__(double const & x , double const & y ){ return gsl_cdf_laplace_Pinv( (const double) x , (const double) y );}
+double gsl_cdf_laplace_Qinv__(double const & x , double const & y ){ return gsl_cdf_laplace_Qinv( (const double) x , (const double) y );}
+double gsl_cdf_rayleigh_P__(double const & x , double const & y ){ return gsl_cdf_rayleigh_P( (const double) x , (const double) y );}
+double gsl_cdf_rayleigh_Q__(double const & x , double const & y ){ return gsl_cdf_rayleigh_Q( (const double) x , (const double) y );}
+double gsl_cdf_rayleigh_Pinv__(double const & x , double const & y ){ return gsl_cdf_rayleigh_Pinv( (const double) x , (const double) y );}
+double gsl_cdf_rayleigh_Qinv__(double const & x , double const & y ){ return gsl_cdf_rayleigh_Qinv( (const double) x , (const double) y );}
+double gsl_cdf_chisq_P__(double const & x , double const & y ){ return gsl_cdf_chisq_P( (const double) x , (const double) y );}
+double gsl_cdf_chisq_Q__(double const & x , double const & y ){ return gsl_cdf_chisq_Q( (const double) x , (const double) y );}
+double gsl_cdf_chisq_Pinv__(double const & x , double const & y ){ return gsl_cdf_chisq_Pinv( (const double) x , (const double) y );}
+double gsl_cdf_chisq_Qinv__(double const & x , double const & y ){ return gsl_cdf_chisq_Qinv( (const double) x , (const double) y );}
+double gsl_cdf_exponential_P__(double const & x , double const & y ){ return gsl_cdf_exponential_P( (const double) x , (const double) y );}
+double gsl_cdf_exponential_Q__(double const & x , double const & y ){ return gsl_cdf_exponential_Q( (const double) x , (const double) y );}
+double gsl_cdf_exponential_Pinv__(double const & x , double const & y ){ return gsl_cdf_exponential_Pinv( (const double) x , (const double) y );}
+double gsl_cdf_exponential_Qinv__(double const & x , double const & y ){ return gsl_cdf_exponential_Qinv( (const double) x , (const double) y );}
+double gsl_cdf_exppow_P__(double const & x , double const & y , double const & z ){ return gsl_cdf_exppow_P( (const double) x , (const double) y , (const double) z );}
+double gsl_cdf_exppow_Q__(double const & x , double const & y , double const & z ){ return gsl_cdf_exppow_Q( (const double) x , (const double) y , (const double) z );}
+double gsl_cdf_tdist_P__(double const & x , double const & y ){ return gsl_cdf_tdist_P( (const double) x , (const double) y );}
+double gsl_cdf_tdist_Q__(double const & x , double const & y ){ return gsl_cdf_tdist_Q( (const double) x , (const double) y );}
+double gsl_cdf_tdist_Pinv__(double const & x , double const & y ){ return gsl_cdf_tdist_Pinv( (const double) x , (const double) y );}
+double gsl_cdf_tdist_Qinv__(double const & x , double const & y ){ return gsl_cdf_tdist_Qinv( (const double) x , (const double) y );}
+double gsl_cdf_fdist_P__(double const & x , double const & y , double const & z ){ return gsl_cdf_fdist_P( (const double) x , (const double) y , (const double) z );}
+double gsl_cdf_fdist_Q__(double const & x , double const & y , double const & z ){ return gsl_cdf_fdist_Q( (const double) x , (const double) y , (const double) z );}
+double gsl_cdf_fdist_Pinv__(double const & x , double const & y , double const & z ){ return gsl_cdf_fdist_Pinv( (const double) x , (const double) y , (const double) z );}
+double gsl_cdf_fdist_Qinv__(double const & x , double const & y , double const & z ){ return gsl_cdf_fdist_Qinv( (const double) x , (const double) y , (const double) z );}
+double gsl_cdf_beta_P__(double const & x , double const & y , double const & z ){ return gsl_cdf_beta_P( (const double) x , (const double) y , (const double) z );}
+double gsl_cdf_beta_Q__(double const & x , double const & y , double const & z ){ return gsl_cdf_beta_Q( (const double) x , (const double) y , (const double) z );}
+double gsl_cdf_beta_Pinv__(double const & x , double const & y , double const & z ){ return gsl_cdf_beta_Pinv( (const double) x , (const double) y , (const double) z );}
+double gsl_cdf_beta_Qinv__(double const & x , double const & y , double const & z ){ return gsl_cdf_beta_Qinv( (const double) x , (const double) y , (const double) z );}
+double gsl_cdf_flat_P__(double const & x , double const & y , double const & z ){ return gsl_cdf_flat_P( (const double) x , (const double) y , (const double) z );}
+double gsl_cdf_flat_Q__(double const & x , double const & y , double const & z ){ return gsl_cdf_flat_Q( (const double) x , (const double) y , (const double) z );}
+double gsl_cdf_flat_Pinv__(double const & x , double const & y , double const & z ){ return gsl_cdf_flat_Pinv( (const double) x , (const double) y , (const double) z );}
+double gsl_cdf_flat_Qinv__(double const & x , double const & y , double const & z ){ return gsl_cdf_flat_Qinv( (const double) x , (const double) y , (const double) z );}
+double gsl_cdf_lognormal_P__(double const & x , double const & y , double const & z ){ return gsl_cdf_lognormal_P( (const double) x , (const double) y , (const double) z );}
+double gsl_cdf_lognormal_Q__(double const & x , double const & y , double const & z ){ return gsl_cdf_lognormal_Q( (const double) x , (const double) y , (const double) z );}
+double gsl_cdf_lognormal_Pinv__(double const & x , double const & y , double const & z ){ return gsl_cdf_lognormal_Pinv( (const double) x , (const double) y , (const double) z );}
+double gsl_cdf_lognormal_Qinv__(double const & x , double const & y , double const & z ){ return gsl_cdf_lognormal_Qinv( (const double) x , (const double) y , (const double) z );}
+double gsl_cdf_gumbel1_P__(double const & x , double const & y , double const & z ){ return gsl_cdf_gumbel1_P( (const double) x , (const double) y , (const double) z );}
+double gsl_cdf_gumbel1_Q__(double const & x , double const & y , double const & z ){ return gsl_cdf_gumbel1_Q( (const double) x , (const double) y , (const double) z );}
+double gsl_cdf_gumbel1_Pinv__(double const & x , double const & y , double const & z ){ return gsl_cdf_gumbel1_Pinv( (const double) x , (const double) y , (const double) z );}
+double gsl_cdf_gumbel1_Qinv__(double const & x , double const & y , double const & z ){ return gsl_cdf_gumbel1_Qinv( (const double) x , (const double) y , (const double) z );}
+double gsl_cdf_gumbel2_P__(double const & x , double const & y , double const & z ){ return gsl_cdf_gumbel2_P( (const double) x , (const double) y , (const double) z );}
+double gsl_cdf_gumbel2_Q__(double const & x , double const & y , double const & z ){ return gsl_cdf_gumbel2_Q( (const double) x , (const double) y , (const double) z );}
+double gsl_cdf_gumbel2_Pinv__(double const & x , double const & y , double const & z ){ return gsl_cdf_gumbel2_Pinv( (const double) x , (const double) y , (const double) z );}
+double gsl_cdf_gumbel2_Qinv__(double const & x , double const & y , double const & z ){ return gsl_cdf_gumbel2_Qinv( (const double) x , (const double) y , (const double) z );}
+double gsl_cdf_weibull_P__(double const & x , double const & y , double const & z ){ return gsl_cdf_weibull_P( (const double) x , (const double) y , (const double) z );}
+double gsl_cdf_weibull_Q__(double const & x , double const & y , double const & z ){ return gsl_cdf_weibull_Q( (const double) x , (const double) y , (const double) z );}
+double gsl_cdf_weibull_Pinv__(double const & x , double const & y , double const & z ){ return gsl_cdf_weibull_Pinv( (const double) x , (const double) y , (const double) z );}
+double gsl_cdf_weibull_Qinv__(double const & x , double const & y , double const & z ){ return gsl_cdf_weibull_Qinv( (const double) x , (const double) y , (const double) z );}
+double gsl_cdf_pareto_P__(double const & x , double const & y , double const & z ){ return gsl_cdf_pareto_P( (const double) x , (const double) y , (const double) z );}
+double gsl_cdf_pareto_Q__(double const & x , double const & y , double const & z ){ return gsl_cdf_pareto_Q( (const double) x , (const double) y , (const double) z );}
+double gsl_cdf_pareto_Pinv__(double const & x , double const & y , double const & z ){ return gsl_cdf_pareto_Pinv( (const double) x , (const double) y , (const double) z );}
+double gsl_cdf_pareto_Qinv__(double const & x , double const & y , double const & z ){ return gsl_cdf_pareto_Qinv( (const double) x , (const double) y , (const double) z );}
+double gsl_cdf_logistic_P__(double const & x , double const & y ){ return gsl_cdf_logistic_P( (const double) x , (const double) y );}
+double gsl_cdf_logistic_Q__(double const & x , double const & y ){ return gsl_cdf_logistic_Q( (const double) x , (const double) y );}
+double gsl_cdf_logistic_Pinv__(double const & x , double const & y ){ return gsl_cdf_logistic_Pinv( (const double) x , (const double) y );}
+double gsl_cdf_logistic_Qinv__(double const & x , double const & y ){ return gsl_cdf_logistic_Qinv( (const double) x , (const double) y );}
+double gsl_cdf_binomial_P__(long const & x , double const & y , long const & z ){ return gsl_cdf_binomial_P( (const unsigned int) x , (const double) y , (const unsigned int) z );}
+double gsl_cdf_binomial_Q__(long const & x , double const & y , long const & z ){ return gsl_cdf_binomial_Q( (const unsigned int) x , (const double) y , (const unsigned int) z );}
+double gsl_cdf_poisson_P__(long const & x , double const & y ){ return gsl_cdf_poisson_P( (const unsigned int) x , (const double) y );}
+double gsl_cdf_poisson_Q__(long const & x , double const & y ){ return gsl_cdf_poisson_Q( (const unsigned int) x , (const double) y );}
+double gsl_cdf_geometric_P__(long const & x , double const & y ){ return gsl_cdf_geometric_P( (const unsigned int) x , (const double) y );}
+double gsl_cdf_geometric_Q__(long const & x , double const & y ){ return gsl_cdf_geometric_Q( (const unsigned int) x , (const double) y );}
+double gsl_cdf_negative_binomial_P__(long const & x , double const & y , double const & z ){ return gsl_cdf_negative_binomial_P( (const unsigned int) x , (const double) y , (const double) z );}
+double gsl_cdf_negative_binomial_Q__(long const & x , double const & y , double const & z ){ return gsl_cdf_negative_binomial_Q( (const unsigned int) x , (const double) y , (const double) z );}
+double gsl_cdf_pascal_P__(long const & x , double const & y , long const & z ){ return gsl_cdf_pascal_P( (const unsigned int) x , (const double) y , (const unsigned int) z );}
+double gsl_cdf_pascal_Q__(long const & x , double const & y , long const & z ){ return gsl_cdf_pascal_Q( (const unsigned int) x , (const double) y , (const unsigned int) z );}
+double gsl_ran_bernoulli_pdf__(long const & x , double const & y ){ return gsl_ran_bernoulli_pdf( (const unsigned int) x , (double) y );}
+double gsl_ran_beta__(gsl_rng ** const & x , double const & y , double const & z ){ return gsl_ran_beta( (const gsl_rng *)* x , (const double) y , (const double) z );}
+double gsl_ran_beta_pdf__(double const & x , double const & y , double const & z ){ return gsl_ran_beta_pdf( (const double) x , (const double) y , (const double) z );}
+double gsl_ran_binomial_pdf__(long const & x , double const & y , long const & z ){ return gsl_ran_binomial_pdf( (const unsigned int) x , (const double) y , (const unsigned int) z );}
+double gsl_ran_exponential__(gsl_rng ** const & x , double const & y ){ return gsl_ran_exponential( (const gsl_rng *)* x , (const double) y );}
+double gsl_ran_exponential_pdf__(double const & x , double const & y ){ return gsl_ran_exponential_pdf( (const double) x , (const double) y );}
+double gsl_ran_exppow__(gsl_rng ** const & x , double const & y , double const & z ){ return gsl_ran_exppow( (const gsl_rng *)* x , (const double) y , (const double) z );}
+double gsl_ran_exppow_pdf__(double const & x , double const & y , double const & z ){ return gsl_ran_exppow_pdf( (const double) x , (const double) y , (const double) z );}
+double gsl_ran_cauchy__(gsl_rng ** const & x , double const & y ){ return gsl_ran_cauchy( (const gsl_rng *)* x , (const double) y );}
+double gsl_ran_cauchy_pdf__(double const & x , double const & y ){ return gsl_ran_cauchy_pdf( (const double) x , (const double) y );}
+double gsl_ran_chisq__(gsl_rng ** const & x , double const & y ){ return gsl_ran_chisq( (const gsl_rng *)* x , (const double) y );}
+double gsl_ran_chisq_pdf__(double const & x , double const & y ){ return gsl_ran_chisq_pdf( (const double) x , (const double) y );}
+double gsl_ran_erlang__(gsl_rng ** const & x , double const & y , double const & z ){ return gsl_ran_erlang( (const gsl_rng *)* x , (const double) y , (const double) z );}
+double gsl_ran_erlang_pdf__(double const & x , double const & y , double const & z ){ return gsl_ran_erlang_pdf( (const double) x , (const double) y , (const double) z );}
+double gsl_ran_fdist__(gsl_rng ** const & x , double const & y , double const & z ){ return gsl_ran_fdist( (const gsl_rng *)* x , (const double) y , (const double) z );}
+double gsl_ran_fdist_pdf__(double const & x , double const & y , double const & z ){ return gsl_ran_fdist_pdf( (const double) x , (const double) y , (const double) z );}
+double gsl_ran_flat__(gsl_rng ** const & x , double const & y , double const & z ){ return gsl_ran_flat( (const gsl_rng *)* x , (const double) y , (const double) z );}
+double gsl_ran_flat_pdf__(double const & x , double const & y , double const & z ){ return gsl_ran_flat_pdf( (double) x , (const double) y , (const double) z );}
+double gsl_ran_gamma__(gsl_rng ** const & x , double const & y , double const & z ){ return gsl_ran_gamma( (const gsl_rng *)* x , (const double) y , (const double) z );}
+double gsl_ran_gamma_int__(gsl_rng ** const & x , long const & y ){ return gsl_ran_gamma_int( (const gsl_rng *)* x , (const unsigned int) y );}
+double gsl_ran_gamma_pdf__(double const & x , double const & y , double const & z ){ return gsl_ran_gamma_pdf( (const double) x , (const double) y , (const double) z );}
+double gsl_ran_gamma_mt__(gsl_rng ** const & x , double const & y , double const & z ){ return gsl_ran_gamma_mt( (const gsl_rng *)* x , (const double) y , (const double) z );}
+double gsl_ran_gamma_knuth__(gsl_rng ** const & x , double const & y , double const & z ){ return gsl_ran_gamma_knuth( (const gsl_rng *)* x , (const double) y , (const double) z );}
+double gsl_ran_gaussian__(gsl_rng ** const & x , double const & y ){ return gsl_ran_gaussian( (const gsl_rng *)* x , (const double) y );}
+double gsl_ran_gaussian_ratio_method__(gsl_rng ** const & x , double const & y ){ return gsl_ran_gaussian_ratio_method( (const gsl_rng *)* x , (const double) y );}
+double gsl_ran_gaussian_ziggurat__(gsl_rng ** const & x , double const & y ){ return gsl_ran_gaussian_ziggurat( (const gsl_rng *)* x , (const double) y );}
+double gsl_ran_gaussian_pdf__(double const & x , double const & y ){ return gsl_ran_gaussian_pdf( (const double) x , (const double) y );}
+double gsl_ran_ugaussian__(gsl_rng ** const & x ) { return gsl_ran_ugaussian( (const gsl_rng *)* x );}
+double gsl_ran_ugaussian_ratio_method__(gsl_rng ** const & x ) { return gsl_ran_ugaussian_ratio_method( (const gsl_rng *)* x );}
+double gsl_ran_ugaussian_pdf__(double const & x ) { return gsl_ran_ugaussian_pdf( (const double) x );}
+double gsl_ran_gaussian_tail__(gsl_rng ** const & x , double const & y , double const & z ){ return gsl_ran_gaussian_tail( (const gsl_rng *)* x , (const double) y , (const double) z );}
+double gsl_ran_gaussian_tail_pdf__(double const & x , double const & y , double const & z ){ return gsl_ran_gaussian_tail_pdf( (const double) x , (const double) y , (const double) z );}
+double gsl_ran_ugaussian_tail__(gsl_rng ** const & x , double const & y ){ return gsl_ran_ugaussian_tail( (const gsl_rng *)* x , (const double) y );}
+double gsl_ran_ugaussian_tail_pdf__(double const & x , double const & y ){ return gsl_ran_ugaussian_tail_pdf( (const double) x , (const double) y );}
+double gsl_ran_landau__(gsl_rng ** const & x ) { return gsl_ran_landau( (const gsl_rng *)* x );}
+double gsl_ran_landau_pdf__(double const & x ) { return gsl_ran_landau_pdf( (const double) x );}
+double gsl_ran_geometric_pdf__(long const & x , double const & y ){ return gsl_ran_geometric_pdf( (const unsigned int) x , (const double) y );}
+double gsl_ran_gumbel1__(gsl_rng ** const & x , double const & y , double const & z ){ return gsl_ran_gumbel1( (const gsl_rng *)* x , (const double) y , (const double) z );}
+double gsl_ran_gumbel1_pdf__(double const & x , double const & y , double const & z ){ return gsl_ran_gumbel1_pdf( (const double) x , (const double) y , (const double) z );}
+double gsl_ran_gumbel2__(gsl_rng ** const & x , double const & y , double const & z ){ return gsl_ran_gumbel2( (const gsl_rng *)* x , (const double) y , (const double) z );}
+double gsl_ran_gumbel2_pdf__(double const & x , double const & y , double const & z ){ return gsl_ran_gumbel2_pdf( (const double) x , (const double) y , (const double) z );}
+double gsl_ran_logistic__(gsl_rng ** const & x , double const & y ){ return gsl_ran_logistic( (const gsl_rng *)* x , (const double) y );}
+double gsl_ran_logistic_pdf__(double const & x , double const & y ){ return gsl_ran_logistic_pdf( (const double) x , (const double) y );}
+double gsl_ran_lognormal__(gsl_rng ** const & x , double const & y , double const & z ){ return gsl_ran_lognormal( (const gsl_rng *)* x , (const double) y , (const double) z );}
+double gsl_ran_lognormal_pdf__(double const & x , double const & y , double const & z ){ return gsl_ran_lognormal_pdf( (const double) x , (const double) y , (const double) z );}
+double gsl_ran_logarithmic_pdf__(long const & x , double const & y ){ return gsl_ran_logarithmic_pdf( (const unsigned int) x , (const double) y );}
+double gsl_ran_negative_binomial_pdf__(long const & x , double const & y , double const & z ){ return gsl_ran_negative_binomial_pdf( (const unsigned int) x , (const double) y , (double) z );}
+double gsl_ran_pascal_pdf__(long const & x , double const & y , long const & z ){ return gsl_ran_pascal_pdf( (const unsigned int) x , (const double) y , (unsigned int) z );}
+double gsl_ran_pareto__(gsl_rng ** const & x , double const & y , double const & z ){ return gsl_ran_pareto( (const gsl_rng *)* x , (double) y , (const double) z );}
+double gsl_ran_pareto_pdf__(double const & x , double const & y , double const & z ){ return gsl_ran_pareto_pdf( (const double) x , (const double) y , (const double) z );}
+double gsl_ran_poisson_pdf__(long const & x , double const & y ){ return gsl_ran_poisson_pdf( (const unsigned int) x , (const double) y );}
+double gsl_ran_rayleigh__(gsl_rng ** const & x , double const & y ){ return gsl_ran_rayleigh( (const gsl_rng *)* x , (const double) y );}
+double gsl_ran_rayleigh_pdf__(double const & x , double const & y ){ return gsl_ran_rayleigh_pdf( (const double) x , (const double) y );}
+double gsl_ran_rayleigh_tail__(gsl_rng ** const & x , double const & y , double const & z ){ return gsl_ran_rayleigh_tail( (const gsl_rng *)* x , (const double) y , (const double) z );}
+double gsl_ran_rayleigh_tail_pdf__(double const & x , double const & y , double const & z ){ return gsl_ran_rayleigh_tail_pdf( (const double) x , (const double) y , (const double) z );}
+double gsl_ran_tdist__(gsl_rng ** const & x , double const & y ){ return gsl_ran_tdist( (const gsl_rng *)* x , (const double) y );}
+double gsl_ran_tdist_pdf__(double const & x , double const & y ){ return gsl_ran_tdist_pdf( (const double) x , (const double) y );}
+double gsl_ran_laplace__(gsl_rng ** const & x , double const & y ){ return gsl_ran_laplace( (const gsl_rng *)* x , (const double) y );}
+double gsl_ran_laplace_pdf__(double const & x , double const & y ){ return gsl_ran_laplace_pdf( (const double) x , (const double) y );}
+double gsl_ran_levy__(gsl_rng ** const & x , double const & y , double const & z ){ return gsl_ran_levy( (const gsl_rng *)* x , (const double) y , (const double) z );}
+double gsl_ran_weibull__(gsl_rng ** const & x , double const & y , double const & z ){ return gsl_ran_weibull( (const gsl_rng *)* x , (const double) y , (const double) z );}
+double gsl_ran_weibull_pdf__(double const & x , double const & y , double const & z ){ return gsl_ran_weibull_pdf( (const double) x , (const double) y , (const double) z );}
+double gsl_sf_airy_zero_Ai__(long const & x ) { return gsl_sf_airy_zero_Ai( (unsigned int) x );}
+double gsl_sf_airy_zero_Bi__(long const & x ) { return gsl_sf_airy_zero_Bi( (unsigned int) x );}
+double gsl_sf_airy_zero_Ai_deriv__(long const & x ) { return gsl_sf_airy_zero_Ai_deriv( (unsigned int) x );}
+double gsl_sf_airy_zero_Bi_deriv__(long const & x ) { return gsl_sf_airy_zero_Bi_deriv( (unsigned int) x );}
+double gsl_sf_bessel_J0__(double const & x ) { return gsl_sf_bessel_J0( (const double) x );}
+double gsl_sf_bessel_J1__(double const & x ) { return gsl_sf_bessel_J1( (const double) x );}
+double gsl_sf_bessel_Jn__(long const & x , double const & y ){ return gsl_sf_bessel_Jn( (const int) x , (const double) y );}
+double gsl_sf_bessel_Y0__(double const & x ) { return gsl_sf_bessel_Y0( (const double) x );}
+double gsl_sf_bessel_Y1__(double const & x ) { return gsl_sf_bessel_Y1( (const double) x );}
+double gsl_sf_bessel_Yn__(long const & x , double const & y ){ return gsl_sf_bessel_Yn( (const int) x , (const double) y );}
+double gsl_sf_bessel_I0__(double const & x ) { return gsl_sf_bessel_I0( (const double) x );}
+double gsl_sf_bessel_I1__(double const & x ) { return gsl_sf_bessel_I1( (const double) x );}
+double gsl_sf_bessel_In__(long const & x , double const & y ){ return gsl_sf_bessel_In( (const int) x , (const double) y );}
+double gsl_sf_bessel_I0_scaled__(double const & x ) { return gsl_sf_bessel_I0_scaled( (const double) x );}
+double gsl_sf_bessel_I1_scaled__(double const & x ) { return gsl_sf_bessel_I1_scaled( (const double) x );}
+double gsl_sf_bessel_In_scaled__(long const & x , double const & y ){ return gsl_sf_bessel_In_scaled( (const int) x , (const double) y );}
+double gsl_sf_bessel_K0__(double const & x ) { return gsl_sf_bessel_K0( (const double) x );}
+double gsl_sf_bessel_K1__(double const & x ) { return gsl_sf_bessel_K1( (const double) x );}
+double gsl_sf_bessel_Kn__(long const & x , double const & y ){ return gsl_sf_bessel_Kn( (const int) x , (const double) y );}
+double gsl_sf_bessel_K0_scaled__(double const & x ) { return gsl_sf_bessel_K0_scaled( (const double) x );}
+double gsl_sf_bessel_K1_scaled__(double const & x ) { return gsl_sf_bessel_K1_scaled( (const double) x );}
+double gsl_sf_bessel_Kn_scaled__(long const & x , double const & y ){ return gsl_sf_bessel_Kn_scaled( (const int) x , (const double) y );}
+double gsl_sf_bessel_j0__(double const & x ) { return gsl_sf_bessel_j0( (const double) x );}
+double gsl_sf_bessel_j1__(double const & x ) { return gsl_sf_bessel_j1( (const double) x );}
+double gsl_sf_bessel_j2__(double const & x ) { return gsl_sf_bessel_j2( (const double) x );}
+double gsl_sf_bessel_jl__(long const & x , double const & y ){ return gsl_sf_bessel_jl( (const int) x , (const double) y );}
+double gsl_sf_bessel_y0__(double const & x ) { return gsl_sf_bessel_y0( (const double) x );}
+double gsl_sf_bessel_y1__(double const & x ) { return gsl_sf_bessel_y1( (const double) x );}
+double gsl_sf_bessel_y2__(double const & x ) { return gsl_sf_bessel_y2( (const double) x );}
+double gsl_sf_bessel_yl__(long const & x , double const & y ){ return gsl_sf_bessel_yl( (const int) x , (const double) y );}
+double gsl_sf_bessel_i0_scaled__(double const & x ) { return gsl_sf_bessel_i0_scaled( (const double) x );}
+double gsl_sf_bessel_i1_scaled__(double const & x ) { return gsl_sf_bessel_i1_scaled( (const double) x );}
+double gsl_sf_bessel_i2_scaled__(double const & x ) { return gsl_sf_bessel_i2_scaled( (const double) x );}
+double gsl_sf_bessel_il_scaled__(long const & x , double const & y ){ return gsl_sf_bessel_il_scaled( (const int) x , (const double) y );}
+double gsl_sf_bessel_k0_scaled__(double const & x ) { return gsl_sf_bessel_k0_scaled( (const double) x );}
+double gsl_sf_bessel_k1_scaled__(double const & x ) { return gsl_sf_bessel_k1_scaled( (const double) x );}
+double gsl_sf_bessel_k2_scaled__(double const & x ) { return gsl_sf_bessel_k2_scaled( (const double) x );}
+double gsl_sf_bessel_kl_scaled__(long const & x , double const & y ){ return gsl_sf_bessel_kl_scaled( (const int) x , (const double) y );}
+double gsl_sf_bessel_Jnu__(double const & x , double const & y ){ return gsl_sf_bessel_Jnu( (const double) x , (const double) y );}
+double gsl_sf_bessel_Ynu__(double const & x , double const & y ){ return gsl_sf_bessel_Ynu( (const double) x , (const double) y );}
+double gsl_sf_bessel_Inu_scaled__(double const & x , double const & y ){ return gsl_sf_bessel_Inu_scaled( (double) x , (double) y );}
+double gsl_sf_bessel_Inu__(double const & x , double const & y ){ return gsl_sf_bessel_Inu( (double) x , (double) y );}
+double gsl_sf_bessel_Knu_scaled__(double const & x , double const & y ){ return gsl_sf_bessel_Knu_scaled( (const double) x , (const double) y );}
+double gsl_sf_bessel_Knu__(double const & x , double const & y ){ return gsl_sf_bessel_Knu( (const double) x , (const double) y );}
+double gsl_sf_bessel_lnKnu__(double const & x , double const & y ){ return gsl_sf_bessel_lnKnu( (const double) x , (const double) y );}
+double gsl_sf_bessel_zero_J0__(long const & x ) { return gsl_sf_bessel_zero_J0( (unsigned int) x );}
+double gsl_sf_bessel_zero_J1__(long const & x ) { return gsl_sf_bessel_zero_J1( (unsigned int) x );}
+double gsl_sf_bessel_zero_Jnu__(double const & x , long const & y ){ return gsl_sf_bessel_zero_Jnu( (double) x , (unsigned int) y );}
+double gsl_sf_clausen__(double const & x ) { return gsl_sf_clausen( (const double) x );}
+double gsl_sf_hydrogenicR_1__(double const & x , double const & y ){ return gsl_sf_hydrogenicR_1( (const double) x , (const double) y );}
+double gsl_sf_dawson__(double const & x ) { return gsl_sf_dawson( (double) x );}
+double gsl_sf_debye_1__(double const & x ) { return gsl_sf_debye_1( (const double) x );}
+double gsl_sf_debye_2__(double const & x ) { return gsl_sf_debye_2( (const double) x );}
+double gsl_sf_debye_3__(double const & x ) { return gsl_sf_debye_3( (const double) x );}
+double gsl_sf_debye_4__(double const & x ) { return gsl_sf_debye_4( (const double) x );}
+double gsl_sf_debye_5__(double const & x ) { return gsl_sf_debye_5( (const double) x );}
+double gsl_sf_debye_6__(double const & x ) { return gsl_sf_debye_6( (const double) x );}
+double gsl_sf_dilog__(double const & x ) { return gsl_sf_dilog( (const double) x );}
+double gsl_sf_multiply__(double const & x , double const & y ){ return gsl_sf_multiply( (const double) x , (const double) y );}
+double gsl_sf_erfc__(double const & x ) { return gsl_sf_erfc( (double) x );}
+double gsl_sf_log_erfc__(double const & x ) { return gsl_sf_log_erfc( (double) x );}
+double gsl_sf_erf__(double const & x ) { return gsl_sf_erf( (double) x );}
+double gsl_sf_erf_Z__(double const & x ) { return gsl_sf_erf_Z( (double) x );}
+double gsl_sf_erf_Q__(double const & x ) { return gsl_sf_erf_Q( (double) x );}
+double gsl_sf_hazard__(double const & x ) { return gsl_sf_hazard( (double) x );}
+double gsl_sf_exp__(double const & x ) { return gsl_sf_exp( (const double) x );}
+double gsl_sf_exp_mult__(double const & x , double const & y ){ return gsl_sf_exp_mult( (const double) x , (const double) y );}
+double gsl_sf_expm1__(double const & x ) { return gsl_sf_expm1( (const double) x );}
+double gsl_sf_exprel__(double const & x ) { return gsl_sf_exprel( (const double) x );}
+double gsl_sf_exprel_2__(double const & x ) { return gsl_sf_exprel_2( (const double) x );}
+double gsl_sf_exprel_n__(long const & x , double const & y ){ return gsl_sf_exprel_n( (const int) x , (const double) y );}
+double gsl_sf_expint_E1__(double const & x ) { return gsl_sf_expint_E1( (const double) x );}
+double gsl_sf_expint_E2__(double const & x ) { return gsl_sf_expint_E2( (const double) x );}
+double gsl_sf_expint_En__(long const & x , double const & y ){ return gsl_sf_expint_En( (const int) x , (const double) y );}
+double gsl_sf_expint_E1_scaled__(double const & x ) { return gsl_sf_expint_E1_scaled( (const double) x );}
+double gsl_sf_expint_E2_scaled__(double const & x ) { return gsl_sf_expint_E2_scaled( (const double) x );}
+double gsl_sf_expint_En_scaled__(long const & x , double const & y ){ return gsl_sf_expint_En_scaled( (const int) x , (const double) y );}
+double gsl_sf_expint_Ei__(double const & x ) { return gsl_sf_expint_Ei( (const double) x );}
+double gsl_sf_expint_Ei_scaled__(double const & x ) { return gsl_sf_expint_Ei_scaled( (const double) x );}
+double gsl_sf_Shi__(double const & x ) { return gsl_sf_Shi( (const double) x );}
+double gsl_sf_Chi__(double const & x ) { return gsl_sf_Chi( (const double) x );}
+double gsl_sf_expint_3__(double const & x ) { return gsl_sf_expint_3( (double) x );}
+double gsl_sf_Si__(double const & x ) { return gsl_sf_Si( (const double) x );}
+double gsl_sf_Ci__(double const & x ) { return gsl_sf_Ci( (const double) x );}
+double gsl_sf_atanint__(double const & x ) { return gsl_sf_atanint( (const double) x );}
+double gsl_sf_fermi_dirac_m1__(double const & x ) { return gsl_sf_fermi_dirac_m1( (const double) x );}
+double gsl_sf_fermi_dirac_0__(double const & x ) { return gsl_sf_fermi_dirac_0( (const double) x );}
+double gsl_sf_fermi_dirac_1__(double const & x ) { return gsl_sf_fermi_dirac_1( (const double) x );}
+double gsl_sf_fermi_dirac_2__(double const & x ) { return gsl_sf_fermi_dirac_2( (const double) x );}
+double gsl_sf_fermi_dirac_int__(long const & x , double const & y ){ return gsl_sf_fermi_dirac_int( (const int) x , (const double) y );}
+double gsl_sf_fermi_dirac_mhalf__(double const & x ) { return gsl_sf_fermi_dirac_mhalf( (const double) x );}
+double gsl_sf_fermi_dirac_half__(double const & x ) { return gsl_sf_fermi_dirac_half( (const double) x );}
+double gsl_sf_fermi_dirac_3half__(double const & x ) { return gsl_sf_fermi_dirac_3half( (const double) x );}
+double gsl_sf_fermi_dirac_inc_0__(double const & x , double const & y ){ return gsl_sf_fermi_dirac_inc_0( (const double) x , (const double) y );}
+double gsl_sf_lngamma__(double const & x ) { return gsl_sf_lngamma( (const double) x );}
+double gsl_sf_gamma__(double const & x ) { return gsl_sf_gamma( (const double) x );}
+double gsl_sf_gammastar__(double const & x ) { return gsl_sf_gammastar( (const double) x );}
+double gsl_sf_gammainv__(double const & x ) { return gsl_sf_gammainv( (const double) x );}
+double gsl_sf_taylorcoeff__(long const & x , double const & y ){ return gsl_sf_taylorcoeff( (const int) x , (const double) y );}
+double gsl_sf_fact__(long const & x ) { return gsl_sf_fact( (const unsigned int) x );}
+double gsl_sf_doublefact__(long const & x ) { return gsl_sf_doublefact( (const unsigned int) x );}
+double gsl_sf_lnfact__(long const & x ) { return gsl_sf_lnfact( (const unsigned int) x );}
+double gsl_sf_lndoublefact__(long const & x ) { return gsl_sf_lndoublefact( (const unsigned int) x );}
+double gsl_sf_lnchoose__(long const & x , long const & y ){ return gsl_sf_lnchoose( (unsigned int) x , (unsigned int) y );}
+double gsl_sf_choose__(long const & x , long const & y ){ return gsl_sf_choose( (unsigned int) x , (unsigned int) y );}
+double gsl_sf_lnpoch__(double const & x , double const & y ){ return gsl_sf_lnpoch( (const double) x , (const double) y );}
+double gsl_sf_poch__(double const & x , double const & y ){ return gsl_sf_poch( (const double) x , (const double) y );}
+double gsl_sf_pochrel__(double const & x , double const & y ){ return gsl_sf_pochrel( (const double) x , (const double) y );}
+double gsl_sf_gamma_inc_Q__(double const & x , double const & y ){ return gsl_sf_gamma_inc_Q( (const double) x , (const double) y );}
+double gsl_sf_gamma_inc_P__(double const & x , double const & y ){ return gsl_sf_gamma_inc_P( (const double) x , (const double) y );}
+double gsl_sf_gamma_inc__(double const & x , double const & y ){ return gsl_sf_gamma_inc( (const double) x , (const double) y );}
+double gsl_sf_lnbeta__(double const & x , double const & y ){ return gsl_sf_lnbeta( (const double) x , (const double) y );}
+double gsl_sf_beta__(double const & x , double const & y ){ return gsl_sf_beta( (const double) x , (const double) y );}
+double gsl_sf_beta_inc__(double const & x , double const & y , double const & z ){ return gsl_sf_beta_inc( (const double) x , (const double) y , (const double) z );}
+double gsl_sf_gegenpoly_1__(double const & x , double const & y ){ return gsl_sf_gegenpoly_1( (double) x , (double) y );}
+double gsl_sf_gegenpoly_2__(double const & x , double const & y ){ return gsl_sf_gegenpoly_2( (double) x , (double) y );}
+double gsl_sf_gegenpoly_3__(double const & x , double const & y ){ return gsl_sf_gegenpoly_3( (double) x , (double) y );}
+double gsl_sf_gegenpoly_n__(long const & x , double const & y , double const & z ){ return gsl_sf_gegenpoly_n( (int) x , (double) y , (double) z );}
+double gsl_sf_hyperg_0F1__(double const & x , double const & y ){ return gsl_sf_hyperg_0F1( (const double) x , (const double) y );}
+double gsl_sf_hyperg_1F1_int__(long const & x , long const & y , double const & z ){ return gsl_sf_hyperg_1F1_int( (const int) x , (const int) y , (double) z );}
+double gsl_sf_hyperg_1F1__(double const & x , double const & y , double const & z ){ return gsl_sf_hyperg_1F1( (double) x , (double) y , (double) z );}
+double gsl_sf_hyperg_U_int__(long const & x , long const & y , double const & z ){ return gsl_sf_hyperg_U_int( (const int) x , (const int) y , (const double) z );}
+double gsl_sf_hyperg_U__(double const & x , double const & y , double const & z ){ return gsl_sf_hyperg_U( (const double) x , (const double) y , (const double) z );}
+double gsl_sf_hyperg_2F0__(double const & x , double const & y , double const & z ){ return gsl_sf_hyperg_2F0( (const double) x , (const double) y , (const double) z );}
+double gsl_sf_laguerre_1__(double const & x , double const & y ){ return gsl_sf_laguerre_1( (double) x , (double) y );}
+double gsl_sf_laguerre_2__(double const & x , double const & y ){ return gsl_sf_laguerre_2( (double) x , (double) y );}
+double gsl_sf_laguerre_3__(double const & x , double const & y ){ return gsl_sf_laguerre_3( (double) x , (double) y );}
+double gsl_sf_laguerre_n__(long const & x , double const & y , double const & z ){ return gsl_sf_laguerre_n( (int) x , (double) y , (double) z );}
+double gsl_sf_lambert_W0__(double const & x ) { return gsl_sf_lambert_W0( (double) x );}
+double gsl_sf_lambert_Wm1__(double const & x ) { return gsl_sf_lambert_Wm1( (double) x );}
+double gsl_sf_legendre_Pl__(long const & x , double const & y ){ return gsl_sf_legendre_Pl( (const int) x , (const double) y );}
+double gsl_sf_legendre_P1__(double const & x ) { return gsl_sf_legendre_P1( (const double) x );}
+double gsl_sf_legendre_P2__(double const & x ) { return gsl_sf_legendre_P2( (const double) x );}
+double gsl_sf_legendre_P3__(double const & x ) { return gsl_sf_legendre_P3( (const double) x );}
+double gsl_sf_legendre_Q0__(double const & x ) { return gsl_sf_legendre_Q0( (const double) x );}
+double gsl_sf_legendre_Q1__(double const & x ) { return gsl_sf_legendre_Q1( (const double) x );}
+double gsl_sf_legendre_Ql__(long const & x , double const & y ){ return gsl_sf_legendre_Ql( (const int) x , (const double) y );}
+double gsl_sf_legendre_Plm__(long const & x , long const & y , double const & z ){ return gsl_sf_legendre_Plm( (const int) x , (const int) y , (const double) z );}
+double gsl_sf_legendre_sphPlm__(long const & x , long const & y , double const & z ){ return gsl_sf_legendre_sphPlm( (const int) x , (const int) y , (const double) z );}
+long gsl_sf_legendre_array_size__(long const & x , long const & y ){ return gsl_sf_legendre_array_size( (const int) x , (const int) y );}
+double gsl_sf_conicalP_half__(double const & x , double const & y ){ return gsl_sf_conicalP_half( (const double) x , (const double) y );}
+double gsl_sf_conicalP_mhalf__(double const & x , double const & y ){ return gsl_sf_conicalP_mhalf( (const double) x , (const double) y );}
+double gsl_sf_conicalP_0__(double const & x , double const & y ){ return gsl_sf_conicalP_0( (const double) x , (const double) y );}
+double gsl_sf_conicalP_1__(double const & x , double const & y ){ return gsl_sf_conicalP_1( (const double) x , (const double) y );}
+double gsl_sf_conicalP_sph_reg__(long const & x , double const & y , double const & z ){ return gsl_sf_conicalP_sph_reg( (const int) x , (const double) y , (const double) z );}
+double gsl_sf_conicalP_cyl_reg__(long const & x , double const & y , double const & z ){ return gsl_sf_conicalP_cyl_reg( (const int) x , (const double) y , (const double) z );}
+double gsl_sf_legendre_H3d_0__(double const & x , double const & y ){ return gsl_sf_legendre_H3d_0( (const double) x , (const double) y );}
+double gsl_sf_legendre_H3d_1__(double const & x , double const & y ){ return gsl_sf_legendre_H3d_1( (const double) x , (const double) y );}
+double gsl_sf_legendre_H3d__(long const & x , double const & y , double const & z ){ return gsl_sf_legendre_H3d( (const int) x , (const double) y , (const double) z );}
+double gsl_sf_log__(double const & x ) { return gsl_sf_log( (const double) x );}
+double gsl_sf_log_abs__(double const & x ) { return gsl_sf_log_abs( (const double) x );}
+double gsl_sf_log_1plusx__(double const & x ) { return gsl_sf_log_1plusx( (const double) x );}
+double gsl_sf_log_1plusx_mx__(double const & x ) { return gsl_sf_log_1plusx_mx( (const double) x );}
+double gsl_sf_pow_int__(double const & x , long const & y ){ return gsl_sf_pow_int( (const double) x , (const int) y );}
+double gsl_sf_psi_int__(long const & x ) { return gsl_sf_psi_int( (const int) x );}
+double gsl_sf_psi__(double const & x ) { return gsl_sf_psi( (const double) x );}
+double gsl_sf_psi_1piy__(double const & x ) { return gsl_sf_psi_1piy( (const double) x );}
+double gsl_sf_psi_1_int__(long const & x ) { return gsl_sf_psi_1_int( (const int) x );}
+double gsl_sf_psi_1__(double const & x ) { return gsl_sf_psi_1( (const double) x );}
+double gsl_sf_psi_n__(long const & x , double const & y ){ return gsl_sf_psi_n( (const int) x , (const double) y );}
+double gsl_sf_synchrotron_1__(double const & x ) { return gsl_sf_synchrotron_1( (const double) x );}
+double gsl_sf_synchrotron_2__(double const & x ) { return gsl_sf_synchrotron_2( (const double) x );}
+double gsl_sf_transport_2__(double const & x ) { return gsl_sf_transport_2( (const double) x );}
+double gsl_sf_transport_3__(double const & x ) { return gsl_sf_transport_3( (const double) x );}
+double gsl_sf_transport_4__(double const & x ) { return gsl_sf_transport_4( (const double) x );}
+double gsl_sf_transport_5__(double const & x ) { return gsl_sf_transport_5( (const double) x );}
+double gsl_sf_sin__(double const & x ) { return gsl_sf_sin( (const double) x );}
+double gsl_sf_cos__(double const & x ) { return gsl_sf_cos( (const double) x );}
+double gsl_sf_hypot__(double const & x , double const & y ){ return gsl_sf_hypot( (const double) x , (const double) y );}
+double gsl_sf_sinc__(double const & x ) { return gsl_sf_sinc( (const double) x );}
+double gsl_sf_lnsinh__(double const & x ) { return gsl_sf_lnsinh( (const double) x );}
+double gsl_sf_lncosh__(double const & x ) { return gsl_sf_lncosh( (const double) x );}
+double gsl_sf_angle_restrict_symm__(double const & x ) { return gsl_sf_angle_restrict_symm( (const double) x );}
+double gsl_sf_angle_restrict_pos__(double const & x ) { return gsl_sf_angle_restrict_pos( (const double) x );}
+double gsl_sf_zeta_int__(long const & x ) { return gsl_sf_zeta_int( (const int) x );}
+double gsl_sf_zeta__(double const & x ) { return gsl_sf_zeta( (const double) x );}
+double gsl_sf_zetam1__(double const & x ) { return gsl_sf_zetam1( (const double) x );}
+double gsl_sf_zetam1_int__(long const & x ) { return gsl_sf_zetam1_int( (const int) x );}
+double gsl_sf_hzeta__(double const & x , double const & y ){ return gsl_sf_hzeta( (const double) x , (const double) y );}
+double gsl_sf_eta_int__(long const & x ) { return gsl_sf_eta_int( (const int) x );}
+double gsl_sf_eta__(double const & x ) { return gsl_sf_eta( (const double) x );}
/*****************/
/*****************/
void init_gsl_sf() {
- Global.Add("gslsfairyAi","(",new OneOperator2<double,double,long >( gsl_sf_airy_Ai ));
- Global.Add("gslsfairyBi","(",new OneOperator2<double,double,long >( gsl_sf_airy_Bi ));
- Global.Add("gslsfairyAiscaled","(",new OneOperator2<double,double,long >( gsl_sf_airy_Ai_scaled ));
- Global.Add("gslsfairyBiscaled","(",new OneOperator2<double,double,long >( gsl_sf_airy_Bi_scaled ));
- Global.Add("gslsfairyAideriv","(",new OneOperator2<double,double,long >( gsl_sf_airy_Ai_deriv ));
- Global.Add("gslsfairyBideriv","(",new OneOperator2<double,double,long >( gsl_sf_airy_Bi_deriv ));
- Global.Add("gslsfairyAiderivscaled","(",new OneOperator2<double,double,long >( gsl_sf_airy_Ai_deriv_scaled ));
- Global.Add("gslsfairyBiderivscaled","(",new OneOperator2<double,double,long >( gsl_sf_airy_Bi_deriv_scaled ));
- Global.Add("gslsfairyzeroAi","(",new OneOperator1<double ,long>( gsl_sf_airy_zero_Ai ));
- Global.Add("gslsfairyzeroBi","(",new OneOperator1<double ,long>( gsl_sf_airy_zero_Bi ));
- Global.Add("gslsfairyzeroAideriv","(",new OneOperator1<double ,long>( gsl_sf_airy_zero_Ai_deriv ));
- Global.Add("gslsfairyzeroBideriv","(",new OneOperator1<double ,long>( gsl_sf_airy_zero_Bi_deriv ));
- Global.Add("gslsfbesselJ0","(",new OneOperator1<double ,double>( gsl_sf_bessel_J0 ));
- Global.Add("gslsfbesselJ1","(",new OneOperator1<double ,double>( gsl_sf_bessel_J1 ));
- Global.Add("gslsfbesselJn","(",new OneOperator2<double,long,double >( gsl_sf_bessel_Jn ));
- Global.Add("gslsfbesselY0","(",new OneOperator1<double ,double>( gsl_sf_bessel_Y0 ));
- Global.Add("gslsfbesselY1","(",new OneOperator1<double ,double>( gsl_sf_bessel_Y1 ));
- Global.Add("gslsfbesselYn","(",new OneOperator2<double,long,double >( gsl_sf_bessel_Yn ));
- Global.Add("gslsfbesselI0","(",new OneOperator1<double ,double>( gsl_sf_bessel_I0 ));
- Global.Add("gslsfbesselI1","(",new OneOperator1<double ,double>( gsl_sf_bessel_I1 ));
- Global.Add("gslsfbesselIn","(",new OneOperator2<double,long,double >( gsl_sf_bessel_In ));
- Global.Add("gslsfbesselI0scaled","(",new OneOperator1<double ,double>( gsl_sf_bessel_I0_scaled ));
- Global.Add("gslsfbesselI1scaled","(",new OneOperator1<double ,double>( gsl_sf_bessel_I1_scaled ));
- Global.Add("gslsfbesselInscaled","(",new OneOperator2<double,long,double >( gsl_sf_bessel_In_scaled ));
- Global.Add("gslsfbesselK0","(",new OneOperator1<double ,double>( gsl_sf_bessel_K0 ));
- Global.Add("gslsfbesselK1","(",new OneOperator1<double ,double>( gsl_sf_bessel_K1 ));
- Global.Add("gslsfbesselKn","(",new OneOperator2<double,long,double >( gsl_sf_bessel_Kn ));
- Global.Add("gslsfbesselK0scaled","(",new OneOperator1<double ,double>( gsl_sf_bessel_K0_scaled ));
- Global.Add("gslsfbesselK1scaled","(",new OneOperator1<double ,double>( gsl_sf_bessel_K1_scaled ));
- Global.Add("gslsfbesselKnscaled","(",new OneOperator2<double,long,double >( gsl_sf_bessel_Kn_scaled ));
- Global.Add("gslsfbesselj0","(",new OneOperator1<double ,double>( gsl_sf_bessel_j0 ));
- Global.Add("gslsfbesselj1","(",new OneOperator1<double ,double>( gsl_sf_bessel_j1 ));
- Global.Add("gslsfbesselj2","(",new OneOperator1<double ,double>( gsl_sf_bessel_j2 ));
- Global.Add("gslsfbesseljl","(",new OneOperator2<double,long,double >( gsl_sf_bessel_jl ));
- Global.Add("gslsfbessely0","(",new OneOperator1<double ,double>( gsl_sf_bessel_y0 ));
- Global.Add("gslsfbessely1","(",new OneOperator1<double ,double>( gsl_sf_bessel_y1 ));
- Global.Add("gslsfbessely2","(",new OneOperator1<double ,double>( gsl_sf_bessel_y2 ));
- Global.Add("gslsfbesselyl","(",new OneOperator2<double,long,double >( gsl_sf_bessel_yl ));
- Global.Add("gslsfbesseli0scaled","(",new OneOperator1<double ,double>( gsl_sf_bessel_i0_scaled ));
- Global.Add("gslsfbesseli1scaled","(",new OneOperator1<double ,double>( gsl_sf_bessel_i1_scaled ));
- Global.Add("gslsfbesseli2scaled","(",new OneOperator1<double ,double>( gsl_sf_bessel_i2_scaled ));
- Global.Add("gslsfbesselilscaled","(",new OneOperator2<double,long,double >( gsl_sf_bessel_il_scaled ));
- Global.Add("gslsfbesselk0scaled","(",new OneOperator1<double ,double>( gsl_sf_bessel_k0_scaled ));
- Global.Add("gslsfbesselk1scaled","(",new OneOperator1<double ,double>( gsl_sf_bessel_k1_scaled ));
- Global.Add("gslsfbesselk2scaled","(",new OneOperator1<double ,double>( gsl_sf_bessel_k2_scaled ));
- Global.Add("gslsfbesselklscaled","(",new OneOperator2<double,long,double >( gsl_sf_bessel_kl_scaled ));
- Global.Add("gslsfbesselJnu","(",new OneOperator2<double,double,long >( gsl_sf_bessel_Jnu ));
- Global.Add("gslsfbesselYnu","(",new OneOperator2<double,double,long >( gsl_sf_bessel_Ynu ));
- Global.Add("gslsfbesselInuscaled","(",new OneOperator2<double,double,long >( gsl_sf_bessel_Inu_scaled ));
- Global.Add("gslsfbesselInu","(",new OneOperator2<double,double,long >( gsl_sf_bessel_Inu ));
- Global.Add("gslsfbesselKnuscaled","(",new OneOperator2<double,double,long >( gsl_sf_bessel_Knu_scaled ));
- Global.Add("gslsfbesselKnu","(",new OneOperator2<double,double,long >( gsl_sf_bessel_Knu ));
- Global.Add("gslsfbessellnKnu","(",new OneOperator2<double,double,long >( gsl_sf_bessel_lnKnu ));
- Global.Add("gslsfbesselzeroJ0","(",new OneOperator1<double ,long>( gsl_sf_bessel_zero_J0 ));
- Global.Add("gslsfbesselzeroJ1","(",new OneOperator1<double ,long>( gsl_sf_bessel_zero_J1 ));
- Global.Add("gslsfbesselzeroJnu","(",new OneOperator2<double,double,long >( gsl_sf_bessel_zero_Jnu ));
- Global.Add("gslsfclausen","(",new OneOperator1<double ,double>( gsl_sf_clausen ));
- Global.Add("gslsfhydrogenicR1","(",new OneOperator2<double,double,long >( gsl_sf_hydrogenicR_1 ));
- Global.Add("gslsfdawson","(",new OneOperator1<double ,double>( gsl_sf_dawson ));
- Global.Add("gslsfdebye1","(",new OneOperator1<double ,double>( gsl_sf_debye_1 ));
- Global.Add("gslsfdebye2","(",new OneOperator1<double ,double>( gsl_sf_debye_2 ));
- Global.Add("gslsfdebye3","(",new OneOperator1<double ,double>( gsl_sf_debye_3 ));
- Global.Add("gslsfdebye4","(",new OneOperator1<double ,double>( gsl_sf_debye_4 ));
- Global.Add("gslsfdebye5","(",new OneOperator1<double ,double>( gsl_sf_debye_5 ));
- Global.Add("gslsfdebye6","(",new OneOperator1<double ,double>( gsl_sf_debye_6 ));
- Global.Add("gslsfdilog","(",new OneOperator1<double ,double>( gsl_sf_dilog ));
- Global.Add("gslsfmultiply","(",new OneOperator2<double,double,long >( gsl_sf_multiply ));
- Global.Add("gslsfellintKcomp","(",new OneOperator2<double,double,long >( gsl_sf_ellint_Kcomp ));
- Global.Add("gslsfellintEcomp","(",new OneOperator2<double,double,long >( gsl_sf_ellint_Ecomp ));
- Global.Add("gslsfellintDcomp","(",new OneOperator2<double,double,long >( gsl_sf_ellint_Dcomp ));
- Global.Add("gslsferfc","(",new OneOperator1<double ,double>( gsl_sf_erfc ));
- Global.Add("gslsflogerfc","(",new OneOperator1<double ,double>( gsl_sf_log_erfc ));
- Global.Add("gslsferf","(",new OneOperator1<double ,double>( gsl_sf_erf ));
- Global.Add("gslsferfZ","(",new OneOperator1<double ,double>( gsl_sf_erf_Z ));
- Global.Add("gslsferfQ","(",new OneOperator1<double ,double>( gsl_sf_erf_Q ));
- Global.Add("gslsfhazard","(",new OneOperator1<double ,double>( gsl_sf_hazard ));
- Global.Add("gslsfexp","(",new OneOperator1<double ,double>( gsl_sf_exp ));
- Global.Add("gslsfexpmult","(",new OneOperator2<double,double,long >( gsl_sf_exp_mult ));
- Global.Add("gslsfexpm1","(",new OneOperator1<double ,double>( gsl_sf_expm1 ));
- Global.Add("gslsfexprel","(",new OneOperator1<double ,double>( gsl_sf_exprel ));
- Global.Add("gslsfexprel2","(",new OneOperator1<double ,double>( gsl_sf_exprel_2 ));
- Global.Add("gslsfexpreln","(",new OneOperator2<double,long,double >( gsl_sf_exprel_n ));
- Global.Add("gslsfexpintE1","(",new OneOperator1<double ,double>( gsl_sf_expint_E1 ));
- Global.Add("gslsfexpintE2","(",new OneOperator1<double ,double>( gsl_sf_expint_E2 ));
- Global.Add("gslsfexpintEn","(",new OneOperator2<double,long,double >( gsl_sf_expint_En ));
- Global.Add("gslsfexpintE1scaled","(",new OneOperator1<double ,double>( gsl_sf_expint_E1_scaled ));
- Global.Add("gslsfexpintE2scaled","(",new OneOperator1<double ,double>( gsl_sf_expint_E2_scaled ));
- Global.Add("gslsfexpintEnscaled","(",new OneOperator2<double,long,double >( gsl_sf_expint_En_scaled ));
- Global.Add("gslsfexpintEi","(",new OneOperator1<double ,double>( gsl_sf_expint_Ei ));
- Global.Add("gslsfexpintEiscaled","(",new OneOperator1<double ,double>( gsl_sf_expint_Ei_scaled ));
- Global.Add("gslsfShi","(",new OneOperator1<double ,double>( gsl_sf_Shi ));
- Global.Add("gslsfChi","(",new OneOperator1<double ,double>( gsl_sf_Chi ));
- Global.Add("gslsfexpint3","(",new OneOperator1<double ,double>( gsl_sf_expint_3 ));
- Global.Add("gslsfSi","(",new OneOperator1<double ,double>( gsl_sf_Si ));
- Global.Add("gslsfCi","(",new OneOperator1<double ,double>( gsl_sf_Ci ));
- Global.Add("gslsfatanint","(",new OneOperator1<double ,double>( gsl_sf_atanint ));
- Global.Add("gslsffermidiracm1","(",new OneOperator1<double ,double>( gsl_sf_fermi_dirac_m1 ));
- Global.Add("gslsffermidirac0","(",new OneOperator1<double ,double>( gsl_sf_fermi_dirac_0 ));
- Global.Add("gslsffermidirac1","(",new OneOperator1<double ,double>( gsl_sf_fermi_dirac_1 ));
- Global.Add("gslsffermidirac2","(",new OneOperator1<double ,double>( gsl_sf_fermi_dirac_2 ));
- Global.Add("gslsffermidiracint","(",new OneOperator2<double,long,double >( gsl_sf_fermi_dirac_int ));
- Global.Add("gslsffermidiracmhalf","(",new OneOperator1<double ,double>( gsl_sf_fermi_dirac_mhalf ));
- Global.Add("gslsffermidirachalf","(",new OneOperator1<double ,double>( gsl_sf_fermi_dirac_half ));
- Global.Add("gslsffermidirac3half","(",new OneOperator1<double ,double>( gsl_sf_fermi_dirac_3half ));
- Global.Add("gslsffermidiracinc0","(",new OneOperator2<double,double,long >( gsl_sf_fermi_dirac_inc_0 ));
- Global.Add("gslsflngamma","(",new OneOperator1<double ,double>( gsl_sf_lngamma ));
- Global.Add("gslsfgamma","(",new OneOperator1<double ,double>( gsl_sf_gamma ));
- Global.Add("gslsfgammastar","(",new OneOperator1<double ,double>( gsl_sf_gammastar ));
- Global.Add("gslsfgammainv","(",new OneOperator1<double ,double>( gsl_sf_gammainv ));
- Global.Add("gslsftaylorcoeff","(",new OneOperator2<double,long,double >( gsl_sf_taylorcoeff ));
- Global.Add("gslsffact","(",new OneOperator1<double ,long>( gsl_sf_fact ));
- Global.Add("gslsfdoublefact","(",new OneOperator1<double ,long>( gsl_sf_doublefact ));
- Global.Add("gslsflnfact","(",new OneOperator1<double ,long>( gsl_sf_lnfact ));
- Global.Add("gslsflndoublefact","(",new OneOperator1<double ,long>( gsl_sf_lndoublefact ));
- Global.Add("gslsflnchoose","(",new OneOperator2<double,long,long >( gsl_sf_lnchoose ));
- Global.Add("gslsfchoose","(",new OneOperator2<double,long,long >( gsl_sf_choose ));
- Global.Add("gslsflnpoch","(",new OneOperator2<double,double,long >( gsl_sf_lnpoch ));
- Global.Add("gslsfpoch","(",new OneOperator2<double,double,long >( gsl_sf_poch ));
- Global.Add("gslsfpochrel","(",new OneOperator2<double,double,long >( gsl_sf_pochrel ));
- Global.Add("gslsfgammaincQ","(",new OneOperator2<double,double,long >( gsl_sf_gamma_inc_Q ));
- Global.Add("gslsfgammaincP","(",new OneOperator2<double,double,long >( gsl_sf_gamma_inc_P ));
- Global.Add("gslsfgammainc","(",new OneOperator2<double,double,long >( gsl_sf_gamma_inc ));
- Global.Add("gslsflnbeta","(",new OneOperator2<double,double,long >( gsl_sf_lnbeta ));
- Global.Add("gslsfbeta","(",new OneOperator2<double,double,long >( gsl_sf_beta ));
- Global.Add("gslsfgegenpoly1","(",new OneOperator2<double,double,long >( gsl_sf_gegenpoly_1 ));
- Global.Add("gslsfgegenpoly2","(",new OneOperator2<double,double,long >( gsl_sf_gegenpoly_2 ));
- Global.Add("gslsfgegenpoly3","(",new OneOperator2<double,double,long >( gsl_sf_gegenpoly_3 ));
- Global.Add("gslsfhyperg0F1","(",new OneOperator2<double,double,long >( gsl_sf_hyperg_0F1 ));
- Global.Add("gslsflaguerre1","(",new OneOperator2<double,double,long >( gsl_sf_laguerre_1 ));
- Global.Add("gslsflaguerre2","(",new OneOperator2<double,double,long >( gsl_sf_laguerre_2 ));
- Global.Add("gslsflaguerre3","(",new OneOperator2<double,double,long >( gsl_sf_laguerre_3 ));
- Global.Add("gslsflambertW0","(",new OneOperator1<double ,double>( gsl_sf_lambert_W0 ));
- Global.Add("gslsflambertWm1","(",new OneOperator1<double ,double>( gsl_sf_lambert_Wm1 ));
- Global.Add("gslsflegendrePl","(",new OneOperator2<double,long,double >( gsl_sf_legendre_Pl ));
- Global.Add("gslsflegendreP1","(",new OneOperator1<double ,double>( gsl_sf_legendre_P1 ));
- Global.Add("gslsflegendreP2","(",new OneOperator1<double ,double>( gsl_sf_legendre_P2 ));
- Global.Add("gslsflegendreP3","(",new OneOperator1<double ,double>( gsl_sf_legendre_P3 ));
- Global.Add("gslsflegendreQ0","(",new OneOperator1<double ,double>( gsl_sf_legendre_Q0 ));
- Global.Add("gslsflegendreQ1","(",new OneOperator1<double ,double>( gsl_sf_legendre_Q1 ));
- Global.Add("gslsflegendreQl","(",new OneOperator2<double,long,double >( gsl_sf_legendre_Ql ));
- Global.Add("gslsfconicalPhalf","(",new OneOperator2<double,double,long >( gsl_sf_conicalP_half ));
- Global.Add("gslsfconicalPmhalf","(",new OneOperator2<double,double,long >( gsl_sf_conicalP_mhalf ));
- Global.Add("gslsfconicalP0","(",new OneOperator2<double,double,long >( gsl_sf_conicalP_0 ));
- Global.Add("gslsfconicalP1","(",new OneOperator2<double,double,long >( gsl_sf_conicalP_1 ));
- Global.Add("gslsflegendreH3d0","(",new OneOperator2<double,double,long >( gsl_sf_legendre_H3d_0 ));
- Global.Add("gslsflegendreH3d1","(",new OneOperator2<double,double,long >( gsl_sf_legendre_H3d_1 ));
- Global.Add("gslsflog","(",new OneOperator1<double ,double>( gsl_sf_log ));
- Global.Add("gslsflogabs","(",new OneOperator1<double ,double>( gsl_sf_log_abs ));
- Global.Add("gslsflog1plusx","(",new OneOperator1<double ,double>( gsl_sf_log_1plusx ));
- Global.Add("gslsflog1plusxmx","(",new OneOperator1<double ,double>( gsl_sf_log_1plusx_mx ));
- Global.Add("gslsfpowint","(",new OneOperator2<double,double,long >( gsl_sf_pow_int ));
- Global.Add("gslsfpsiint","(",new OneOperator1<double ,long>( gsl_sf_psi_int ));
- Global.Add("gslsfpsi","(",new OneOperator1<double ,double>( gsl_sf_psi ));
- Global.Add("gslsfpsi1piy","(",new OneOperator1<double ,double>( gsl_sf_psi_1piy ));
- Global.Add("gslsfpsi1int","(",new OneOperator1<double ,long>( gsl_sf_psi_1_int ));
- Global.Add("gslsfpsi1","(",new OneOperator1<double ,double>( gsl_sf_psi_1 ));
- Global.Add("gslsfpsin","(",new OneOperator2<double,long,double >( gsl_sf_psi_n ));
- Global.Add("gslsfsynchrotron1","(",new OneOperator1<double ,double>( gsl_sf_synchrotron_1 ));
- Global.Add("gslsfsynchrotron2","(",new OneOperator1<double ,double>( gsl_sf_synchrotron_2 ));
- Global.Add("gslsftransport2","(",new OneOperator1<double ,double>( gsl_sf_transport_2 ));
- Global.Add("gslsftransport3","(",new OneOperator1<double ,double>( gsl_sf_transport_3 ));
- Global.Add("gslsftransport4","(",new OneOperator1<double ,double>( gsl_sf_transport_4 ));
- Global.Add("gslsftransport5","(",new OneOperator1<double ,double>( gsl_sf_transport_5 ));
- Global.Add("gslsfsin","(",new OneOperator1<double ,double>( gsl_sf_sin ));
- Global.Add("gslsfcos","(",new OneOperator1<double ,double>( gsl_sf_cos ));
- Global.Add("gslsfhypot","(",new OneOperator2<double,double,long >( gsl_sf_hypot ));
- Global.Add("gslsfsinc","(",new OneOperator1<double ,double>( gsl_sf_sinc ));
- Global.Add("gslsflnsinh","(",new OneOperator1<double ,double>( gsl_sf_lnsinh ));
- Global.Add("gslsflncosh","(",new OneOperator1<double ,double>( gsl_sf_lncosh ));
- Global.Add("gslsfanglerestrictsymm","(",new OneOperator1<double ,double>( gsl_sf_angle_restrict_symm ));
- Global.Add("gslsfanglerestrictpos","(",new OneOperator1<double ,double>( gsl_sf_angle_restrict_pos ));
- Global.Add("gslsfzetaint","(",new OneOperator1<double ,long>( gsl_sf_zeta_int ));
- Global.Add("gslsfzeta","(",new OneOperator1<double ,double>( gsl_sf_zeta ));
- Global.Add("gslsfzetam1","(",new OneOperator1<double ,double>( gsl_sf_zetam1 ));
- Global.Add("gslsfzetam1int","(",new OneOperator1<double ,long>( gsl_sf_zetam1_int ));
- Global.Add("gslsfhzeta","(",new OneOperator2<double,double,long >( gsl_sf_hzeta ));
- Global.Add("gslsfetaint","(",new OneOperator1<double ,long>( gsl_sf_eta_int ));
- Global.Add("gslsfeta","(",new OneOperator1<double ,double>( gsl_sf_eta ));
+ Global.Add("gslcdfugaussianP","(",new OneOperator1_<double,double>( gsl_cdf_ugaussian_P__));
+ Global.Add("gslcdfugaussianQ","(",new OneOperator1_<double,double>( gsl_cdf_ugaussian_Q__));
+ Global.Add("gslcdfugaussianPinv","(",new OneOperator1_<double,double>( gsl_cdf_ugaussian_Pinv__));
+ Global.Add("gslcdfugaussianQinv","(",new OneOperator1_<double,double>( gsl_cdf_ugaussian_Qinv__));
+ Global.Add("gslcdfgaussianP","(",new OneOperator2_<double,double,double>( gsl_cdf_gaussian_P__));
+ Global.Add("gslcdfgaussianQ","(",new OneOperator2_<double,double,double>( gsl_cdf_gaussian_Q__));
+ Global.Add("gslcdfgaussianPinv","(",new OneOperator2_<double,double,double>( gsl_cdf_gaussian_Pinv__));
+ Global.Add("gslcdfgaussianQinv","(",new OneOperator2_<double,double,double>( gsl_cdf_gaussian_Qinv__));
+ Global.Add("gslcdfgammaP","(",new OneOperator3_<double,double,double,double>( gsl_cdf_gamma_P__));
+ Global.Add("gslcdfgammaQ","(",new OneOperator3_<double,double,double,double>( gsl_cdf_gamma_Q__));
+ Global.Add("gslcdfgammaPinv","(",new OneOperator3_<double,double,double,double>( gsl_cdf_gamma_Pinv__));
+ Global.Add("gslcdfgammaQinv","(",new OneOperator3_<double,double,double,double>( gsl_cdf_gamma_Qinv__));
+ Global.Add("gslcdfcauchyP","(",new OneOperator2_<double,double,double>( gsl_cdf_cauchy_P__));
+ Global.Add("gslcdfcauchyQ","(",new OneOperator2_<double,double,double>( gsl_cdf_cauchy_Q__));
+ Global.Add("gslcdfcauchyPinv","(",new OneOperator2_<double,double,double>( gsl_cdf_cauchy_Pinv__));
+ Global.Add("gslcdfcauchyQinv","(",new OneOperator2_<double,double,double>( gsl_cdf_cauchy_Qinv__));
+ Global.Add("gslcdflaplaceP","(",new OneOperator2_<double,double,double>( gsl_cdf_laplace_P__));
+ Global.Add("gslcdflaplaceQ","(",new OneOperator2_<double,double,double>( gsl_cdf_laplace_Q__));
+ Global.Add("gslcdflaplacePinv","(",new OneOperator2_<double,double,double>( gsl_cdf_laplace_Pinv__));
+ Global.Add("gslcdflaplaceQinv","(",new OneOperator2_<double,double,double>( gsl_cdf_laplace_Qinv__));
+ Global.Add("gslcdfrayleighP","(",new OneOperator2_<double,double,double>( gsl_cdf_rayleigh_P__));
+ Global.Add("gslcdfrayleighQ","(",new OneOperator2_<double,double,double>( gsl_cdf_rayleigh_Q__));
+ Global.Add("gslcdfrayleighPinv","(",new OneOperator2_<double,double,double>( gsl_cdf_rayleigh_Pinv__));
+ Global.Add("gslcdfrayleighQinv","(",new OneOperator2_<double,double,double>( gsl_cdf_rayleigh_Qinv__));
+ Global.Add("gslcdfchisqP","(",new OneOperator2_<double,double,double>( gsl_cdf_chisq_P__));
+ Global.Add("gslcdfchisqQ","(",new OneOperator2_<double,double,double>( gsl_cdf_chisq_Q__));
+ Global.Add("gslcdfchisqPinv","(",new OneOperator2_<double,double,double>( gsl_cdf_chisq_Pinv__));
+ Global.Add("gslcdfchisqQinv","(",new OneOperator2_<double,double,double>( gsl_cdf_chisq_Qinv__));
+ Global.Add("gslcdfexponentialP","(",new OneOperator2_<double,double,double>( gsl_cdf_exponential_P__));
+ Global.Add("gslcdfexponentialQ","(",new OneOperator2_<double,double,double>( gsl_cdf_exponential_Q__));
+ Global.Add("gslcdfexponentialPinv","(",new OneOperator2_<double,double,double>( gsl_cdf_exponential_Pinv__));
+ Global.Add("gslcdfexponentialQinv","(",new OneOperator2_<double,double,double>( gsl_cdf_exponential_Qinv__));
+ Global.Add("gslcdfexppowP","(",new OneOperator3_<double,double,double,double>( gsl_cdf_exppow_P__));
+ Global.Add("gslcdfexppowQ","(",new OneOperator3_<double,double,double,double>( gsl_cdf_exppow_Q__));
+ Global.Add("gslcdftdistP","(",new OneOperator2_<double,double,double>( gsl_cdf_tdist_P__));
+ Global.Add("gslcdftdistQ","(",new OneOperator2_<double,double,double>( gsl_cdf_tdist_Q__));
+ Global.Add("gslcdftdistPinv","(",new OneOperator2_<double,double,double>( gsl_cdf_tdist_Pinv__));
+ Global.Add("gslcdftdistQinv","(",new OneOperator2_<double,double,double>( gsl_cdf_tdist_Qinv__));
+ Global.Add("gslcdffdistP","(",new OneOperator3_<double,double,double,double>( gsl_cdf_fdist_P__));
+ Global.Add("gslcdffdistQ","(",new OneOperator3_<double,double,double,double>( gsl_cdf_fdist_Q__));
+ Global.Add("gslcdffdistPinv","(",new OneOperator3_<double,double,double,double>( gsl_cdf_fdist_Pinv__));
+ Global.Add("gslcdffdistQinv","(",new OneOperator3_<double,double,double,double>( gsl_cdf_fdist_Qinv__));
+ Global.Add("gslcdfbetaP","(",new OneOperator3_<double,double,double,double>( gsl_cdf_beta_P__));
+ Global.Add("gslcdfbetaQ","(",new OneOperator3_<double,double,double,double>( gsl_cdf_beta_Q__));
+ Global.Add("gslcdfbetaPinv","(",new OneOperator3_<double,double,double,double>( gsl_cdf_beta_Pinv__));
+ Global.Add("gslcdfbetaQinv","(",new OneOperator3_<double,double,double,double>( gsl_cdf_beta_Qinv__));
+ Global.Add("gslcdfflatP","(",new OneOperator3_<double,double,double,double>( gsl_cdf_flat_P__));
+ Global.Add("gslcdfflatQ","(",new OneOperator3_<double,double,double,double>( gsl_cdf_flat_Q__));
+ Global.Add("gslcdfflatPinv","(",new OneOperator3_<double,double,double,double>( gsl_cdf_flat_Pinv__));
+ Global.Add("gslcdfflatQinv","(",new OneOperator3_<double,double,double,double>( gsl_cdf_flat_Qinv__));
+ Global.Add("gslcdflognormalP","(",new OneOperator3_<double,double,double,double>( gsl_cdf_lognormal_P__));
+ Global.Add("gslcdflognormalQ","(",new OneOperator3_<double,double,double,double>( gsl_cdf_lognormal_Q__));
+ Global.Add("gslcdflognormalPinv","(",new OneOperator3_<double,double,double,double>( gsl_cdf_lognormal_Pinv__));
+ Global.Add("gslcdflognormalQinv","(",new OneOperator3_<double,double,double,double>( gsl_cdf_lognormal_Qinv__));
+ Global.Add("gslcdfgumbel1P","(",new OneOperator3_<double,double,double,double>( gsl_cdf_gumbel1_P__));
+ Global.Add("gslcdfgumbel1Q","(",new OneOperator3_<double,double,double,double>( gsl_cdf_gumbel1_Q__));
+ Global.Add("gslcdfgumbel1Pinv","(",new OneOperator3_<double,double,double,double>( gsl_cdf_gumbel1_Pinv__));
+ Global.Add("gslcdfgumbel1Qinv","(",new OneOperator3_<double,double,double,double>( gsl_cdf_gumbel1_Qinv__));
+ Global.Add("gslcdfgumbel2P","(",new OneOperator3_<double,double,double,double>( gsl_cdf_gumbel2_P__));
+ Global.Add("gslcdfgumbel2Q","(",new OneOperator3_<double,double,double,double>( gsl_cdf_gumbel2_Q__));
+ Global.Add("gslcdfgumbel2Pinv","(",new OneOperator3_<double,double,double,double>( gsl_cdf_gumbel2_Pinv__));
+ Global.Add("gslcdfgumbel2Qinv","(",new OneOperator3_<double,double,double,double>( gsl_cdf_gumbel2_Qinv__));
+ Global.Add("gslcdfweibullP","(",new OneOperator3_<double,double,double,double>( gsl_cdf_weibull_P__));
+ Global.Add("gslcdfweibullQ","(",new OneOperator3_<double,double,double,double>( gsl_cdf_weibull_Q__));
+ Global.Add("gslcdfweibullPinv","(",new OneOperator3_<double,double,double,double>( gsl_cdf_weibull_Pinv__));
+ Global.Add("gslcdfweibullQinv","(",new OneOperator3_<double,double,double,double>( gsl_cdf_weibull_Qinv__));
+ Global.Add("gslcdfparetoP","(",new OneOperator3_<double,double,double,double>( gsl_cdf_pareto_P__));
+ Global.Add("gslcdfparetoQ","(",new OneOperator3_<double,double,double,double>( gsl_cdf_pareto_Q__));
+ Global.Add("gslcdfparetoPinv","(",new OneOperator3_<double,double,double,double>( gsl_cdf_pareto_Pinv__));
+ Global.Add("gslcdfparetoQinv","(",new OneOperator3_<double,double,double,double>( gsl_cdf_pareto_Qinv__));
+ Global.Add("gslcdflogisticP","(",new OneOperator2_<double,double,double>( gsl_cdf_logistic_P__));
+ Global.Add("gslcdflogisticQ","(",new OneOperator2_<double,double,double>( gsl_cdf_logistic_Q__));
+ Global.Add("gslcdflogisticPinv","(",new OneOperator2_<double,double,double>( gsl_cdf_logistic_Pinv__));
+ Global.Add("gslcdflogisticQinv","(",new OneOperator2_<double,double,double>( gsl_cdf_logistic_Qinv__));
+ Global.Add("gslcdfbinomialP","(",new OneOperator3_<double,long,double,long>( gsl_cdf_binomial_P__));
+ Global.Add("gslcdfbinomialQ","(",new OneOperator3_<double,long,double,long>( gsl_cdf_binomial_Q__));
+ Global.Add("gslcdfpoissonP","(",new OneOperator2_<double,long,double>( gsl_cdf_poisson_P__));
+ Global.Add("gslcdfpoissonQ","(",new OneOperator2_<double,long,double>( gsl_cdf_poisson_Q__));
+ Global.Add("gslcdfgeometricP","(",new OneOperator2_<double,long,double>( gsl_cdf_geometric_P__));
+ Global.Add("gslcdfgeometricQ","(",new OneOperator2_<double,long,double>( gsl_cdf_geometric_Q__));
+ Global.Add("gslcdfnegativebinomialP","(",new OneOperator3_<double,long,double,double>( gsl_cdf_negative_binomial_P__));
+ Global.Add("gslcdfnegativebinomialQ","(",new OneOperator3_<double,long,double,double>( gsl_cdf_negative_binomial_Q__));
+ Global.Add("gslcdfpascalP","(",new OneOperator3_<double,long,double,long>( gsl_cdf_pascal_P__));
+ Global.Add("gslcdfpascalQ","(",new OneOperator3_<double,long,double,long>( gsl_cdf_pascal_Q__));
+ Global.Add("gslranbernoullipdf","(",new OneOperator2_<double,long,double>( gsl_ran_bernoulli_pdf__));
+ Global.Add("gslranbeta","(",new OneOperator3_<double,gsl_rng **,double,double>( gsl_ran_beta__));
+ Global.Add("gslranbetapdf","(",new OneOperator3_<double,double,double,double>( gsl_ran_beta_pdf__));
+ Global.Add("gslranbinomialpdf","(",new OneOperator3_<double,long,double,long>( gsl_ran_binomial_pdf__));
+ Global.Add("gslranexponential","(",new OneOperator2_<double,gsl_rng **,double>( gsl_ran_exponential__));
+ Global.Add("gslranexponentialpdf","(",new OneOperator2_<double,double,double>( gsl_ran_exponential_pdf__));
+ Global.Add("gslranexppow","(",new OneOperator3_<double,gsl_rng **,double,double>( gsl_ran_exppow__));
+ Global.Add("gslranexppowpdf","(",new OneOperator3_<double,double,double,double>( gsl_ran_exppow_pdf__));
+ Global.Add("gslrancauchy","(",new OneOperator2_<double,gsl_rng **,double>( gsl_ran_cauchy__));
+ Global.Add("gslrancauchypdf","(",new OneOperator2_<double,double,double>( gsl_ran_cauchy_pdf__));
+ Global.Add("gslranchisq","(",new OneOperator2_<double,gsl_rng **,double>( gsl_ran_chisq__));
+ Global.Add("gslranchisqpdf","(",new OneOperator2_<double,double,double>( gsl_ran_chisq_pdf__));
+ Global.Add("gslranerlang","(",new OneOperator3_<double,gsl_rng **,double,double>( gsl_ran_erlang__));
+ Global.Add("gslranerlangpdf","(",new OneOperator3_<double,double,double,double>( gsl_ran_erlang_pdf__));
+ Global.Add("gslranfdist","(",new OneOperator3_<double,gsl_rng **,double,double>( gsl_ran_fdist__));
+ Global.Add("gslranfdistpdf","(",new OneOperator3_<double,double,double,double>( gsl_ran_fdist_pdf__));
+ Global.Add("gslranflat","(",new OneOperator3_<double,gsl_rng **,double,double>( gsl_ran_flat__));
+ Global.Add("gslranflatpdf","(",new OneOperator3_<double,double,double,double>( gsl_ran_flat_pdf__));
+ Global.Add("gslrangamma","(",new OneOperator3_<double,gsl_rng **,double,double>( gsl_ran_gamma__));
+ Global.Add("gslrangammaint","(",new OneOperator2_<double,gsl_rng **,long>( gsl_ran_gamma_int__));
+ Global.Add("gslrangammapdf","(",new OneOperator3_<double,double,double,double>( gsl_ran_gamma_pdf__));
+ Global.Add("gslrangammamt","(",new OneOperator3_<double,gsl_rng **,double,double>( gsl_ran_gamma_mt__));
+ Global.Add("gslrangammaknuth","(",new OneOperator3_<double,gsl_rng **,double,double>( gsl_ran_gamma_knuth__));
+ Global.Add("gslrangaussian","(",new OneOperator2_<double,gsl_rng **,double>( gsl_ran_gaussian__));
+ Global.Add("gslrangaussianratiomethod","(",new OneOperator2_<double,gsl_rng **,double>( gsl_ran_gaussian_ratio_method__));
+ Global.Add("gslrangaussianziggurat","(",new OneOperator2_<double,gsl_rng **,double>( gsl_ran_gaussian_ziggurat__));
+ Global.Add("gslrangaussianpdf","(",new OneOperator2_<double,double,double>( gsl_ran_gaussian_pdf__));
+ Global.Add("gslranugaussian","(",new OneOperator1_<double,gsl_rng **>( gsl_ran_ugaussian__));
+ Global.Add("gslranugaussianratiomethod","(",new OneOperator1_<double,gsl_rng **>( gsl_ran_ugaussian_ratio_method__));
+ Global.Add("gslranugaussianpdf","(",new OneOperator1_<double,double>( gsl_ran_ugaussian_pdf__));
+ Global.Add("gslrangaussiantail","(",new OneOperator3_<double,gsl_rng **,double,double>( gsl_ran_gaussian_tail__));
+ Global.Add("gslrangaussiantailpdf","(",new OneOperator3_<double,double,double,double>( gsl_ran_gaussian_tail_pdf__));
+ Global.Add("gslranugaussiantail","(",new OneOperator2_<double,gsl_rng **,double>( gsl_ran_ugaussian_tail__));
+ Global.Add("gslranugaussiantailpdf","(",new OneOperator2_<double,double,double>( gsl_ran_ugaussian_tail_pdf__));
+ Global.Add("gslranlandau","(",new OneOperator1_<double,gsl_rng **>( gsl_ran_landau__));
+ Global.Add("gslranlandaupdf","(",new OneOperator1_<double,double>( gsl_ran_landau_pdf__));
+ Global.Add("gslrangeometricpdf","(",new OneOperator2_<double,long,double>( gsl_ran_geometric_pdf__));
+ Global.Add("gslrangumbel1","(",new OneOperator3_<double,gsl_rng **,double,double>( gsl_ran_gumbel1__));
+ Global.Add("gslrangumbel1pdf","(",new OneOperator3_<double,double,double,double>( gsl_ran_gumbel1_pdf__));
+ Global.Add("gslrangumbel2","(",new OneOperator3_<double,gsl_rng **,double,double>( gsl_ran_gumbel2__));
+ Global.Add("gslrangumbel2pdf","(",new OneOperator3_<double,double,double,double>( gsl_ran_gumbel2_pdf__));
+ Global.Add("gslranlogistic","(",new OneOperator2_<double,gsl_rng **,double>( gsl_ran_logistic__));
+ Global.Add("gslranlogisticpdf","(",new OneOperator2_<double,double,double>( gsl_ran_logistic_pdf__));
+ Global.Add("gslranlognormal","(",new OneOperator3_<double,gsl_rng **,double,double>( gsl_ran_lognormal__));
+ Global.Add("gslranlognormalpdf","(",new OneOperator3_<double,double,double,double>( gsl_ran_lognormal_pdf__));
+ Global.Add("gslranlogarithmicpdf","(",new OneOperator2_<double,long,double>( gsl_ran_logarithmic_pdf__));
+ Global.Add("gslrannegativebinomialpdf","(",new OneOperator3_<double,long,double,double>( gsl_ran_negative_binomial_pdf__));
+ Global.Add("gslranpascalpdf","(",new OneOperator3_<double,long,double,long>( gsl_ran_pascal_pdf__));
+ Global.Add("gslranpareto","(",new OneOperator3_<double,gsl_rng **,double,double>( gsl_ran_pareto__));
+ Global.Add("gslranparetopdf","(",new OneOperator3_<double,double,double,double>( gsl_ran_pareto_pdf__));
+ Global.Add("gslranpoissonpdf","(",new OneOperator2_<double,long,double>( gsl_ran_poisson_pdf__));
+ Global.Add("gslranrayleigh","(",new OneOperator2_<double,gsl_rng **,double>( gsl_ran_rayleigh__));
+ Global.Add("gslranrayleighpdf","(",new OneOperator2_<double,double,double>( gsl_ran_rayleigh_pdf__));
+ Global.Add("gslranrayleightail","(",new OneOperator3_<double,gsl_rng **,double,double>( gsl_ran_rayleigh_tail__));
+ Global.Add("gslranrayleightailpdf","(",new OneOperator3_<double,double,double,double>( gsl_ran_rayleigh_tail_pdf__));
+ Global.Add("gslrantdist","(",new OneOperator2_<double,gsl_rng **,double>( gsl_ran_tdist__));
+ Global.Add("gslrantdistpdf","(",new OneOperator2_<double,double,double>( gsl_ran_tdist_pdf__));
+ Global.Add("gslranlaplace","(",new OneOperator2_<double,gsl_rng **,double>( gsl_ran_laplace__));
+ Global.Add("gslranlaplacepdf","(",new OneOperator2_<double,double,double>( gsl_ran_laplace_pdf__));
+ Global.Add("gslranlevy","(",new OneOperator3_<double,gsl_rng **,double,double>( gsl_ran_levy__));
+ Global.Add("gslranweibull","(",new OneOperator3_<double,gsl_rng **,double,double>( gsl_ran_weibull__));
+ Global.Add("gslranweibullpdf","(",new OneOperator3_<double,double,double,double>( gsl_ran_weibull_pdf__));
+ Global.Add("gslsfairyzeroAi","(",new OneOperator1_<double,long>( gsl_sf_airy_zero_Ai__));
+ Global.Add("gslsfairyzeroBi","(",new OneOperator1_<double,long>( gsl_sf_airy_zero_Bi__));
+ Global.Add("gslsfairyzeroAideriv","(",new OneOperator1_<double,long>( gsl_sf_airy_zero_Ai_deriv__));
+ Global.Add("gslsfairyzeroBideriv","(",new OneOperator1_<double,long>( gsl_sf_airy_zero_Bi_deriv__));
+ Global.Add("gslsfbesselJ0","(",new OneOperator1_<double,double>( gsl_sf_bessel_J0__));
+ Global.Add("gslsfbesselJ1","(",new OneOperator1_<double,double>( gsl_sf_bessel_J1__));
+ Global.Add("gslsfbesselJn","(",new OneOperator2_<double,long,double>( gsl_sf_bessel_Jn__));
+ Global.Add("gslsfbesselY0","(",new OneOperator1_<double,double>( gsl_sf_bessel_Y0__));
+ Global.Add("gslsfbesselY1","(",new OneOperator1_<double,double>( gsl_sf_bessel_Y1__));
+ Global.Add("gslsfbesselYn","(",new OneOperator2_<double,long,double>( gsl_sf_bessel_Yn__));
+ Global.Add("gslsfbesselI0","(",new OneOperator1_<double,double>( gsl_sf_bessel_I0__));
+ Global.Add("gslsfbesselI1","(",new OneOperator1_<double,double>( gsl_sf_bessel_I1__));
+ Global.Add("gslsfbesselIn","(",new OneOperator2_<double,long,double>( gsl_sf_bessel_In__));
+ Global.Add("gslsfbesselI0scaled","(",new OneOperator1_<double,double>( gsl_sf_bessel_I0_scaled__));
+ Global.Add("gslsfbesselI1scaled","(",new OneOperator1_<double,double>( gsl_sf_bessel_I1_scaled__));
+ Global.Add("gslsfbesselInscaled","(",new OneOperator2_<double,long,double>( gsl_sf_bessel_In_scaled__));
+ Global.Add("gslsfbesselK0","(",new OneOperator1_<double,double>( gsl_sf_bessel_K0__));
+ Global.Add("gslsfbesselK1","(",new OneOperator1_<double,double>( gsl_sf_bessel_K1__));
+ Global.Add("gslsfbesselKn","(",new OneOperator2_<double,long,double>( gsl_sf_bessel_Kn__));
+ Global.Add("gslsfbesselK0scaled","(",new OneOperator1_<double,double>( gsl_sf_bessel_K0_scaled__));
+ Global.Add("gslsfbesselK1scaled","(",new OneOperator1_<double,double>( gsl_sf_bessel_K1_scaled__));
+ Global.Add("gslsfbesselKnscaled","(",new OneOperator2_<double,long,double>( gsl_sf_bessel_Kn_scaled__));
+ Global.Add("gslsfbesselj0","(",new OneOperator1_<double,double>( gsl_sf_bessel_j0__));
+ Global.Add("gslsfbesselj1","(",new OneOperator1_<double,double>( gsl_sf_bessel_j1__));
+ Global.Add("gslsfbesselj2","(",new OneOperator1_<double,double>( gsl_sf_bessel_j2__));
+ Global.Add("gslsfbesseljl","(",new OneOperator2_<double,long,double>( gsl_sf_bessel_jl__));
+ Global.Add("gslsfbessely0","(",new OneOperator1_<double,double>( gsl_sf_bessel_y0__));
+ Global.Add("gslsfbessely1","(",new OneOperator1_<double,double>( gsl_sf_bessel_y1__));
+ Global.Add("gslsfbessely2","(",new OneOperator1_<double,double>( gsl_sf_bessel_y2__));
+ Global.Add("gslsfbesselyl","(",new OneOperator2_<double,long,double>( gsl_sf_bessel_yl__));
+ Global.Add("gslsfbesseli0scaled","(",new OneOperator1_<double,double>( gsl_sf_bessel_i0_scaled__));
+ Global.Add("gslsfbesseli1scaled","(",new OneOperator1_<double,double>( gsl_sf_bessel_i1_scaled__));
+ Global.Add("gslsfbesseli2scaled","(",new OneOperator1_<double,double>( gsl_sf_bessel_i2_scaled__));
+ Global.Add("gslsfbesselilscaled","(",new OneOperator2_<double,long,double>( gsl_sf_bessel_il_scaled__));
+ Global.Add("gslsfbesselk0scaled","(",new OneOperator1_<double,double>( gsl_sf_bessel_k0_scaled__));
+ Global.Add("gslsfbesselk1scaled","(",new OneOperator1_<double,double>( gsl_sf_bessel_k1_scaled__));
+ Global.Add("gslsfbesselk2scaled","(",new OneOperator1_<double,double>( gsl_sf_bessel_k2_scaled__));
+ Global.Add("gslsfbesselklscaled","(",new OneOperator2_<double,long,double>( gsl_sf_bessel_kl_scaled__));
+ Global.Add("gslsfbesselJnu","(",new OneOperator2_<double,double,double>( gsl_sf_bessel_Jnu__));
+ Global.Add("gslsfbesselYnu","(",new OneOperator2_<double,double,double>( gsl_sf_bessel_Ynu__));
+ Global.Add("gslsfbesselInuscaled","(",new OneOperator2_<double,double,double>( gsl_sf_bessel_Inu_scaled__));
+ Global.Add("gslsfbesselInu","(",new OneOperator2_<double,double,double>( gsl_sf_bessel_Inu__));
+ Global.Add("gslsfbesselKnuscaled","(",new OneOperator2_<double,double,double>( gsl_sf_bessel_Knu_scaled__));
+ Global.Add("gslsfbesselKnu","(",new OneOperator2_<double,double,double>( gsl_sf_bessel_Knu__));
+ Global.Add("gslsfbessellnKnu","(",new OneOperator2_<double,double,double>( gsl_sf_bessel_lnKnu__));
+ Global.Add("gslsfbesselzeroJ0","(",new OneOperator1_<double,long>( gsl_sf_bessel_zero_J0__));
+ Global.Add("gslsfbesselzeroJ1","(",new OneOperator1_<double,long>( gsl_sf_bessel_zero_J1__));
+ Global.Add("gslsfbesselzeroJnu","(",new OneOperator2_<double,double,long>( gsl_sf_bessel_zero_Jnu__));
+ Global.Add("gslsfclausen","(",new OneOperator1_<double,double>( gsl_sf_clausen__));
+ Global.Add("gslsfhydrogenicR1","(",new OneOperator2_<double,double,double>( gsl_sf_hydrogenicR_1__));
+ Global.Add("gslsfdawson","(",new OneOperator1_<double,double>( gsl_sf_dawson__));
+ Global.Add("gslsfdebye1","(",new OneOperator1_<double,double>( gsl_sf_debye_1__));
+ Global.Add("gslsfdebye2","(",new OneOperator1_<double,double>( gsl_sf_debye_2__));
+ Global.Add("gslsfdebye3","(",new OneOperator1_<double,double>( gsl_sf_debye_3__));
+ Global.Add("gslsfdebye4","(",new OneOperator1_<double,double>( gsl_sf_debye_4__));
+ Global.Add("gslsfdebye5","(",new OneOperator1_<double,double>( gsl_sf_debye_5__));
+ Global.Add("gslsfdebye6","(",new OneOperator1_<double,double>( gsl_sf_debye_6__));
+ Global.Add("gslsfdilog","(",new OneOperator1_<double,double>( gsl_sf_dilog__));
+ Global.Add("gslsfmultiply","(",new OneOperator2_<double,double,double>( gsl_sf_multiply__));
+ Global.Add("gslsferfc","(",new OneOperator1_<double,double>( gsl_sf_erfc__));
+ Global.Add("gslsflogerfc","(",new OneOperator1_<double,double>( gsl_sf_log_erfc__));
+ Global.Add("gslsferf","(",new OneOperator1_<double,double>( gsl_sf_erf__));
+ Global.Add("gslsferfZ","(",new OneOperator1_<double,double>( gsl_sf_erf_Z__));
+ Global.Add("gslsferfQ","(",new OneOperator1_<double,double>( gsl_sf_erf_Q__));
+ Global.Add("gslsfhazard","(",new OneOperator1_<double,double>( gsl_sf_hazard__));
+ Global.Add("gslsfexp","(",new OneOperator1_<double,double>( gsl_sf_exp__));
+ Global.Add("gslsfexpmult","(",new OneOperator2_<double,double,double>( gsl_sf_exp_mult__));
+ Global.Add("gslsfexpm1","(",new OneOperator1_<double,double>( gsl_sf_expm1__));
+ Global.Add("gslsfexprel","(",new OneOperator1_<double,double>( gsl_sf_exprel__));
+ Global.Add("gslsfexprel2","(",new OneOperator1_<double,double>( gsl_sf_exprel_2__));
+ Global.Add("gslsfexpreln","(",new OneOperator2_<double,long,double>( gsl_sf_exprel_n__));
+ Global.Add("gslsfexpintE1","(",new OneOperator1_<double,double>( gsl_sf_expint_E1__));
+ Global.Add("gslsfexpintE2","(",new OneOperator1_<double,double>( gsl_sf_expint_E2__));
+ Global.Add("gslsfexpintEn","(",new OneOperator2_<double,long,double>( gsl_sf_expint_En__));
+ Global.Add("gslsfexpintE1scaled","(",new OneOperator1_<double,double>( gsl_sf_expint_E1_scaled__));
+ Global.Add("gslsfexpintE2scaled","(",new OneOperator1_<double,double>( gsl_sf_expint_E2_scaled__));
+ Global.Add("gslsfexpintEnscaled","(",new OneOperator2_<double,long,double>( gsl_sf_expint_En_scaled__));
+ Global.Add("gslsfexpintEi","(",new OneOperator1_<double,double>( gsl_sf_expint_Ei__));
+ Global.Add("gslsfexpintEiscaled","(",new OneOperator1_<double,double>( gsl_sf_expint_Ei_scaled__));
+ Global.Add("gslsfShi","(",new OneOperator1_<double,double>( gsl_sf_Shi__));
+ Global.Add("gslsfChi","(",new OneOperator1_<double,double>( gsl_sf_Chi__));
+ Global.Add("gslsfexpint3","(",new OneOperator1_<double,double>( gsl_sf_expint_3__));
+ Global.Add("gslsfSi","(",new OneOperator1_<double,double>( gsl_sf_Si__));
+ Global.Add("gslsfCi","(",new OneOperator1_<double,double>( gsl_sf_Ci__));
+ Global.Add("gslsfatanint","(",new OneOperator1_<double,double>( gsl_sf_atanint__));
+ Global.Add("gslsffermidiracm1","(",new OneOperator1_<double,double>( gsl_sf_fermi_dirac_m1__));
+ Global.Add("gslsffermidirac0","(",new OneOperator1_<double,double>( gsl_sf_fermi_dirac_0__));
+ Global.Add("gslsffermidirac1","(",new OneOperator1_<double,double>( gsl_sf_fermi_dirac_1__));
+ Global.Add("gslsffermidirac2","(",new OneOperator1_<double,double>( gsl_sf_fermi_dirac_2__));
+ Global.Add("gslsffermidiracint","(",new OneOperator2_<double,long,double>( gsl_sf_fermi_dirac_int__));
+ Global.Add("gslsffermidiracmhalf","(",new OneOperator1_<double,double>( gsl_sf_fermi_dirac_mhalf__));
+ Global.Add("gslsffermidirachalf","(",new OneOperator1_<double,double>( gsl_sf_fermi_dirac_half__));
+ Global.Add("gslsffermidirac3half","(",new OneOperator1_<double,double>( gsl_sf_fermi_dirac_3half__));
+ Global.Add("gslsffermidiracinc0","(",new OneOperator2_<double,double,double>( gsl_sf_fermi_dirac_inc_0__));
+ Global.Add("gslsflngamma","(",new OneOperator1_<double,double>( gsl_sf_lngamma__));
+ Global.Add("gslsfgamma","(",new OneOperator1_<double,double>( gsl_sf_gamma__));
+ Global.Add("gslsfgammastar","(",new OneOperator1_<double,double>( gsl_sf_gammastar__));
+ Global.Add("gslsfgammainv","(",new OneOperator1_<double,double>( gsl_sf_gammainv__));
+ Global.Add("gslsftaylorcoeff","(",new OneOperator2_<double,long,double>( gsl_sf_taylorcoeff__));
+ Global.Add("gslsffact","(",new OneOperator1_<double,long>( gsl_sf_fact__));
+ Global.Add("gslsfdoublefact","(",new OneOperator1_<double,long>( gsl_sf_doublefact__));
+ Global.Add("gslsflnfact","(",new OneOperator1_<double,long>( gsl_sf_lnfact__));
+ Global.Add("gslsflndoublefact","(",new OneOperator1_<double,long>( gsl_sf_lndoublefact__));
+ Global.Add("gslsflnchoose","(",new OneOperator2_<double,long,long>( gsl_sf_lnchoose__));
+ Global.Add("gslsfchoose","(",new OneOperator2_<double,long,long>( gsl_sf_choose__));
+ Global.Add("gslsflnpoch","(",new OneOperator2_<double,double,double>( gsl_sf_lnpoch__));
+ Global.Add("gslsfpoch","(",new OneOperator2_<double,double,double>( gsl_sf_poch__));
+ Global.Add("gslsfpochrel","(",new OneOperator2_<double,double,double>( gsl_sf_pochrel__));
+ Global.Add("gslsfgammaincQ","(",new OneOperator2_<double,double,double>( gsl_sf_gamma_inc_Q__));
+ Global.Add("gslsfgammaincP","(",new OneOperator2_<double,double,double>( gsl_sf_gamma_inc_P__));
+ Global.Add("gslsfgammainc","(",new OneOperator2_<double,double,double>( gsl_sf_gamma_inc__));
+ Global.Add("gslsflnbeta","(",new OneOperator2_<double,double,double>( gsl_sf_lnbeta__));
+ Global.Add("gslsfbeta","(",new OneOperator2_<double,double,double>( gsl_sf_beta__));
+ Global.Add("gslsfbetainc","(",new OneOperator3_<double,double,double,double>( gsl_sf_beta_inc__));
+ Global.Add("gslsfgegenpoly1","(",new OneOperator2_<double,double,double>( gsl_sf_gegenpoly_1__));
+ Global.Add("gslsfgegenpoly2","(",new OneOperator2_<double,double,double>( gsl_sf_gegenpoly_2__));
+ Global.Add("gslsfgegenpoly3","(",new OneOperator2_<double,double,double>( gsl_sf_gegenpoly_3__));
+ Global.Add("gslsfgegenpolyn","(",new OneOperator3_<double,long,double,double>( gsl_sf_gegenpoly_n__));
+ Global.Add("gslsfhyperg0F1","(",new OneOperator2_<double,double,double>( gsl_sf_hyperg_0F1__));
+ Global.Add("gslsfhyperg1F1int","(",new OneOperator3_<double,long,long,double>( gsl_sf_hyperg_1F1_int__));
+ Global.Add("gslsfhyperg1F1","(",new OneOperator3_<double,double,double,double>( gsl_sf_hyperg_1F1__));
+ Global.Add("gslsfhypergUint","(",new OneOperator3_<double,long,long,double>( gsl_sf_hyperg_U_int__));
+ Global.Add("gslsfhypergU","(",new OneOperator3_<double,double,double,double>( gsl_sf_hyperg_U__));
+ Global.Add("gslsfhyperg2F0","(",new OneOperator3_<double,double,double,double>( gsl_sf_hyperg_2F0__));
+ Global.Add("gslsflaguerre1","(",new OneOperator2_<double,double,double>( gsl_sf_laguerre_1__));
+ Global.Add("gslsflaguerre2","(",new OneOperator2_<double,double,double>( gsl_sf_laguerre_2__));
+ Global.Add("gslsflaguerre3","(",new OneOperator2_<double,double,double>( gsl_sf_laguerre_3__));
+ Global.Add("gslsflaguerren","(",new OneOperator3_<double,long,double,double>( gsl_sf_laguerre_n__));
+ Global.Add("gslsflambertW0","(",new OneOperator1_<double,double>( gsl_sf_lambert_W0__));
+ Global.Add("gslsflambertWm1","(",new OneOperator1_<double,double>( gsl_sf_lambert_Wm1__));
+ Global.Add("gslsflegendrePl","(",new OneOperator2_<double,long,double>( gsl_sf_legendre_Pl__));
+ Global.Add("gslsflegendreP1","(",new OneOperator1_<double,double>( gsl_sf_legendre_P1__));
+ Global.Add("gslsflegendreP2","(",new OneOperator1_<double,double>( gsl_sf_legendre_P2__));
+ Global.Add("gslsflegendreP3","(",new OneOperator1_<double,double>( gsl_sf_legendre_P3__));
+ Global.Add("gslsflegendreQ0","(",new OneOperator1_<double,double>( gsl_sf_legendre_Q0__));
+ Global.Add("gslsflegendreQ1","(",new OneOperator1_<double,double>( gsl_sf_legendre_Q1__));
+ Global.Add("gslsflegendreQl","(",new OneOperator2_<double,long,double>( gsl_sf_legendre_Ql__));
+ Global.Add("gslsflegendrePlm","(",new OneOperator3_<double,long,long,double>( gsl_sf_legendre_Plm__));
+ Global.Add("gslsflegendresphPlm","(",new OneOperator3_<double,long,long,double>( gsl_sf_legendre_sphPlm__));
+ Global.Add("gslsflegendrearraysize","(",new OneOperator2_<long,long,long>( gsl_sf_legendre_array_size__));
+ Global.Add("gslsfconicalPhalf","(",new OneOperator2_<double,double,double>( gsl_sf_conicalP_half__));
+ Global.Add("gslsfconicalPmhalf","(",new OneOperator2_<double,double,double>( gsl_sf_conicalP_mhalf__));
+ Global.Add("gslsfconicalP0","(",new OneOperator2_<double,double,double>( gsl_sf_conicalP_0__));
+ Global.Add("gslsfconicalP1","(",new OneOperator2_<double,double,double>( gsl_sf_conicalP_1__));
+ Global.Add("gslsfconicalPsphreg","(",new OneOperator3_<double,long,double,double>( gsl_sf_conicalP_sph_reg__));
+ Global.Add("gslsfconicalPcylreg","(",new OneOperator3_<double,long,double,double>( gsl_sf_conicalP_cyl_reg__));
+ Global.Add("gslsflegendreH3d0","(",new OneOperator2_<double,double,double>( gsl_sf_legendre_H3d_0__));
+ Global.Add("gslsflegendreH3d1","(",new OneOperator2_<double,double,double>( gsl_sf_legendre_H3d_1__));
+ Global.Add("gslsflegendreH3d","(",new OneOperator3_<double,long,double,double>( gsl_sf_legendre_H3d__));
+ Global.Add("gslsflog","(",new OneOperator1_<double,double>( gsl_sf_log__));
+ Global.Add("gslsflogabs","(",new OneOperator1_<double,double>( gsl_sf_log_abs__));
+ Global.Add("gslsflog1plusx","(",new OneOperator1_<double,double>( gsl_sf_log_1plusx__));
+ Global.Add("gslsflog1plusxmx","(",new OneOperator1_<double,double>( gsl_sf_log_1plusx_mx__));
+ Global.Add("gslsfpowint","(",new OneOperator2_<double,double,long>( gsl_sf_pow_int__));
+ Global.Add("gslsfpsiint","(",new OneOperator1_<double,long>( gsl_sf_psi_int__));
+ Global.Add("gslsfpsi","(",new OneOperator1_<double,double>( gsl_sf_psi__));
+ Global.Add("gslsfpsi1piy","(",new OneOperator1_<double,double>( gsl_sf_psi_1piy__));
+ Global.Add("gslsfpsi1int","(",new OneOperator1_<double,long>( gsl_sf_psi_1_int__));
+ Global.Add("gslsfpsi1","(",new OneOperator1_<double,double>( gsl_sf_psi_1__));
+ Global.Add("gslsfpsin","(",new OneOperator2_<double,long,double>( gsl_sf_psi_n__));
+ Global.Add("gslsfsynchrotron1","(",new OneOperator1_<double,double>( gsl_sf_synchrotron_1__));
+ Global.Add("gslsfsynchrotron2","(",new OneOperator1_<double,double>( gsl_sf_synchrotron_2__));
+ Global.Add("gslsftransport2","(",new OneOperator1_<double,double>( gsl_sf_transport_2__));
+ Global.Add("gslsftransport3","(",new OneOperator1_<double,double>( gsl_sf_transport_3__));
+ Global.Add("gslsftransport4","(",new OneOperator1_<double,double>( gsl_sf_transport_4__));
+ Global.Add("gslsftransport5","(",new OneOperator1_<double,double>( gsl_sf_transport_5__));
+ Global.Add("gslsfsin","(",new OneOperator1_<double,double>( gsl_sf_sin__));
+ Global.Add("gslsfcos","(",new OneOperator1_<double,double>( gsl_sf_cos__));
+ Global.Add("gslsfhypot","(",new OneOperator2_<double,double,double>( gsl_sf_hypot__));
+ Global.Add("gslsfsinc","(",new OneOperator1_<double,double>( gsl_sf_sinc__));
+ Global.Add("gslsflnsinh","(",new OneOperator1_<double,double>( gsl_sf_lnsinh__));
+ Global.Add("gslsflncosh","(",new OneOperator1_<double,double>( gsl_sf_lncosh__));
+ Global.Add("gslsfanglerestrictsymm","(",new OneOperator1_<double,double>( gsl_sf_angle_restrict_symm__));
+ Global.Add("gslsfanglerestrictpos","(",new OneOperator1_<double,double>( gsl_sf_angle_restrict_pos__));
+ Global.Add("gslsfzetaint","(",new OneOperator1_<double,long>( gsl_sf_zeta_int__));
+ Global.Add("gslsfzeta","(",new OneOperator1_<double,double>( gsl_sf_zeta__));
+ Global.Add("gslsfzetam1","(",new OneOperator1_<double,double>( gsl_sf_zetam1__));
+ Global.Add("gslsfzetam1int","(",new OneOperator1_<double,long>( gsl_sf_zetam1_int__));
+ Global.Add("gslsfhzeta","(",new OneOperator2_<double,double,double>( gsl_sf_hzeta__));
+ Global.Add("gslsfetaint","(",new OneOperator1_<double,long>( gsl_sf_eta_int__));
+ Global.Add("gslsfeta","(",new OneOperator1_<double,double>( gsl_sf_eta__));
}
/*****************/
/*****************/
diff --git a/examples++-load/fflapack.cpp b/examples++-load/fflapack.cpp
index 824c3ea..2c6d3f1 100644
--- a/examples++-load/fflapack.cpp
+++ b/examples++-load/fflapack.cpp
@@ -33,7 +33,7 @@ class Init { public:
Init();
};
-bool lapack_inv(KNM<double>* A)
+long lapack_inv(KNM<double>* A)
{
intblas n=A->N();
intblas m=A->M();
@@ -50,6 +50,23 @@ bool lapack_inv(KNM<double>* A)
return info;
}
+long lapack_inv(KNM<Complex>* A)
+{
+ intblas n=A->N();
+ intblas m=A->M();
+ Complex *a=&(*A)(0,0);
+ intblas info;
+ intblas lda=n;
+ KN<intblas> ipiv(n);
+ intblas lw=10*n;
+ KN<Complex> w(lw);
+ ffassert(n==m);
+ zgetrf_(&n,&n,a,&lda,ipiv,&info);
+ if(info) return info;
+ zgetri_(&n,a,&lda,ipiv,w,&lw,&info);
+ return info;
+}
+
// (computation of the eigenvalues and right eigenvectors of a real nonsymmetric matrix)
long lapack_dgeev(KNM<double> *const &A,KN<Complex> *const &vp,KNM<Complex> *const &vectp)
{
@@ -836,7 +853,7 @@ KNM<R>* mult(KNM<R >* a,Mult<KNM<R >*> bc)
return mult<R,init,ibeta>(a,bc.a->t(),bc.b->t()) ;
else
// should never happen
- return NULL;
+ return NULL;
}
KNM<Complex>* SolveC(KNM<Complex>* a,Inverse<KNM<Complex >*> b)
@@ -948,9 +965,15 @@ Init::Init(){ // le constructeur qui ajoute la fonction "splitmesh3" a freefem
TheOperators->Add("<-", new OneOperator2<KNM<double>*,KNM<double>*,Mult<KNM<double >*> >( mult<double,true,0> ) );
TheOperators->Add("<-", new OneOperator2<KNM<Complex>*,KNM<Complex>*,Mult<KNM<Complex >*> >( mult<Complex,true,0> ) );
- Global.Add("inv","(",new OneOperator1<bool,KNM<double>*>(lapack_inv));
- Global.Add("dgeev","(",new OneOperator3_<long,KNM<double>*,KN<Complex>*,KNM<Complex>*>(lapack_dgeev));
- Global.Add("zgeev","(",new OneOperator3_<long,KNM<Complex>*,KN<Complex>*,KNM<Complex>*>(lapack_zgeev));
+ Global.Add("inv","(",new OneOperator1<long,KNM<double>*>(lapack_inv));
+ Global.Add("inv","(",new OneOperator1<long,KNM<Complex>*>(lapack_inv));
+
+ Global.Add("dgeev","(",new OneOperator3_<long,KNM<double>*,KN<Complex>*,KNM<Complex>*>(lapack_dgeev));
+ Global.Add("zgeev","(",new OneOperator3_<long,KNM<Complex>*,KN<Complex>*,KNM<Complex>*>(lapack_zgeev));
+ // add FH
+ Global.Add("geev","(",new OneOperator3_<long,KNM<double>*,KN<Complex>*,KNM<Complex>*>(lapack_dgeev));
+ Global.Add("geev","(",new OneOperator3_<long,KNM<Complex>*,KN<Complex>*,KNM<Complex>*>(lapack_zgeev));
+
Global.Add("dggev","(",new OneOperator5_<long,KNM<double>*,KNM<double>*,KN<Complex>*,KN<double>*,KNM<Complex>*>(lapack_dggev));
Global.Add("dsygvd","(",new OneOperator4_<long,KNM<double>*,KNM<double>*,KN<double>*,KNM<double>*>(lapack_dsygvd));
Global.Add("dgesdd","(",new OneOperator4_<long,KNM<double>*,KNM<double>*,KN<double>*,KNM<double>*>(lapack_dgesdd));
diff --git a/examples++-load/gsl.awk b/examples++-load/gsl.awk
index 9073d0c..41804c6 100644
--- a/examples++-load/gsl.awk
+++ b/examples++-load/gsl.awk
@@ -1,116 +1,148 @@
# egrep "^int|^double" /opt/local/include/gsl/gsl_sf*
+# egrep "^int|^double|^long" /usr/local/include/gsl/gsl_{cdf,randist,sf_*}.h | egrep -v ',$'
+# export LANG=C
BEGIN {FS="[(),]";
+ FLOAD="gsl"
LANG="C";
- edp="gsl1.edp";
+ edp=FLOAD ".idp";
c="\"";
pp=c "(" c;
print " /* ";
- print "load",c "gsl" c > edp
-}
+ print "// file create: awk -f gsl.awk gsl_list > ff_gsl_awk.hpp " >edp
+ print "load",c FLOAD c > edp
+ print "gslrng ffrng;" >edp
+ print " gslabortonerror=0; " >edp
+ # convertion de type gsl .. ff++
+
+ Tff["double"]="double";
+ Tff["const double"]="double";
+ Tff["int"]="long";
+ Tff["const size_t"]="long";
+ Tff["unsigned int"]="long";
+ Tff["const int"]="long";
+ Tff["const unsigned int"]="long";
+ Tff["const double"]="double";
+ Tff["const gsl_rng *"] = "gsl_rng **";
+# Tff["gsl_mode_t"] = "";
+ Cff["const gsl_rng *"] = "*";
+ V0["double"]= 0.55;
+ V0["const double"]= 0.55;
+ V0["const gsl_rng *"] = "ffrng";
+ }
function f0(f) { xx=f;gsub("_","",xx) ; return xx };
function ff(f) { return c f0(f) c };
-NF ==3 {
- split($1,fff,"[ \t]*");
+function VV(t) { if ( V0[t] !=0) return V0[t]; else return 0;}
+function ana1()
+{
+ ok = 0;
+ xx1=$1;
+ nnn=split($1,xxx,":");
+ if(nnn == 2) xx1= xxx[2];
+
+ fonc=0;
+ split(xx1,fff,"[ \t]*");
f=fff[2];
- split($2,fff,"[ \t]*");
- tt=0;
- i2=1
- ok=1
- nn=0;
- v0=1;
- t="";
- while(ok==1 && nn++<5)
- {
- # print " ---- " , fff[i2] , i2
- if(fff[i2] == "unsigned" ) { t= t " " fff[i2] ;}
- else if(fff[i2] == "int" ) { t= t " " fff[i2] ;tt="long";}
- else if(fff[i2] == "double" ) { t= t " " fff[i2];tt="double"; v0=0.55 ;}
- else if(fff[i2] == "const" ) { t= t " " fff[i2] ;}
- else {i2--;ok=0;}
- i2++;
- }
- p1=fff[i2];
- #print f, " " , t , " " , tt, " " , p1;
- lw="";
- if(tt!=0){
- if(tt=="long")
+ R=fff[1];
+
+ if( R=="int" || R =="double" ) ok=1;
+ #print " xx: " xx1, R, f, ok ;
+
+}
+function anatype(kkk)
+{
+ if( ok !=1) return 0; ;
+ v0=1;
+ t = "";
+
+ nnn=split($(kkk+1),fff,"[ \t]*");
+ i2 =1;
+ while( i2<nnn)
{
- lw ="double " f "( long x ) { return " f "( (" t ") x );}\n" ;
+ if( t=="")
+ t = fff[i2];
+ else
+ t= t " " fff[i2];
+ i2++;
}
- gg = "\n Global.Add("ff(f) "," pp",new OneOperator1<double ," tt ">( " f " )); "
+ tmp=match(fff[nnn],/.*\[\]/);
+ if(tmp) t = t "[]";
+ T[kkk]=t;
+ if( Tff[t] == "") ok=0;
+ if( Tff[t] == "" && T00[t]=="") { print "// -- missing type \"" t "\" ";T00[t]=1;}
+ return ok;
+}
+
+NF ==3 {
+ ana1();
+ #print NF, "******",ok
+ anatype(1);
+ if( ok == 1)
+ {
+ ok==2;
+ lw="";
+
+ lw = Tff[R] " " f "__(" Tff[T[1]] " const & x ) { return " f "( (" T[1] ")" Cff[T[1]] " x );}\n" ;
+
+ gg = "\n Global.Add(" ff(f) "," pp ",new OneOperator1_<" Tff[R] "," Tff[T[1]] ">( " f "__)); "
cw = cw lw;
cm = cm gg;
+ v0 = VV(T[1]);
print "cout << " c f "("v0") = " c " << " f0(f) "("v0") << endl; "> edp
}
- else
- print " missng "f,t,tt
}
-NF > 4 { print " minssing " $0 ; }
+
NF ==4 {
- split($1,fff,"[ \t]*");
- f=fff[2];
-
- split($2,fff,"[ \t]*");
- tt=0;
- i2=1
- ok=1
- nn=0;
- t="";
- while(ok==1 && nn++<5)
- {
- # print " ---- " , fff[i2] , i2
- if(fff[i2] == "unsigned" ) { t= t " " fff[i2] ;}
- else if(fff[i2] == "int" ) { t= t " " fff[i2] ;tt="long";}
- else if(fff[i2] == "double" ) { t= t " " fff[i2];tt="double" ;}
- else if(fff[i2] == "const" ) { t= t " " fff[i2] ;}
- else {i2--;ok=0;}
- i2++;
- }
-
- p1=fff[i2];
- tt1=tt;
- t1=t;
-
- split($3,fff,"[ \t]*");
- tt=0;
- i2=1
- ok=1
- nn=0;
- t="";
- if (fff[i2]==" ") i2++;
- if (fff[i2]=="") i2++;
- if (fff[i2]==" ") i2++;
- while(ok==1 && nn++<5)
+ ana1();
+ anatype(1);
+ anatype(2);
+ if( ok == 1)
{
- # print " ---- " , fff[i2] , i2
- if(fff[i2] == "unsigned" ) { t= t " " fff[i2] ;}
- else if(fff[i2] == "int" ) { t= t " " fff[i2] ;tt="long";}
- else if(fff[i2] == "gsl_mode_t" ) { t= t " " fff[i2] ;tt="long";}
- else if(fff[i2] == "double" ) { t= t " " fff[i2];tt="double" ;}
- else if(fff[i2] == "const" ) { t= t " " fff[i2] ;}
- else {i2--;ok=0;}
- i2++;
- }
-
- p2=fff[i2];
+ ok==2;
+ lw="";
+
+ lw = Tff[R] " " f "__(" Tff[T[1]] " const & x , " Tff[T[2]] " const & y )" \
+ "{ return " f "( (" T[1] ")" Cff[T[1]] " x , (" T[2] ")" Cff[T[2]] " y );}\n" ;
+
+ gg = "\n Global.Add(" ff(f) "," pp ",new OneOperator2_<" Tff[R] "," Tff[T[1]] "," Tff[T[2]] ">( " f "__)); "
+ cw = cw lw;
+ cm = cm gg;
+ v0 = VV(T[1]);
+ v1 = VV(T[2]);
+
+ print "cout << " c f "(" v0 ", "v1 ") = " c " << " f0(f) "(" v0 ",",v1 ") << endl; "> edp
+ }
+}
-# print f, " " , t , " " , tt, " " , p1, p3;
- lw="";
- if(tt && tt1 )
+NF ==5 {
+ ana1();
+ anatype(1);
+ anatype(2);
+ anatype(3);
+ if( ok == 1)
{
- if(tt1=="long" || tt="long")
- {
- lw ="double " f "( " tt1 " x, " tt " y ) { return " f "( (" t1 ") x, (" t ") y );}\n" ;
- }
- gg = "\n Global.Add(" ff(f) "," pp ",new OneOperator2<double," tt1 "," tt " >( " f " )); ";
+ ok==2;
+ lw="";
+
+ lw = Tff[R] " " f "__(" Tff[T[1]] " const & x , " Tff[T[2]] " const & y , " Tff[T[3]] " const & z )" \
+ "{ return " f "( (" T[1] ")" Cff[T[1]] " x , (" T[2] ")" Cff[T[2]] " y , (" T[3] ")" Cff[T[3]] " z );}\n" ;
+
+ gg = "\n Global.Add(" ff(f) "," pp ",new OneOperator3_<" Tff[R] "," Tff[T[1]] "," Tff[T[2]] "," Tff[T[3]] \
+ ">( " f "__)); ";
cw = cw lw;
cm = cm gg;
- }
- else
- print NF, " ", tt1,",",tt," --" t1," ",t " ::: " " missing -- ", f , " (" , $2 "," $3 ") " fff[1] "," fff[2],",", fff[3]
+ v0 = VV(T[1]);
+ v1 = VV(T[2]);
+ v2 = VV(T[3]);
+
+ print "cout << " c f "(" v0 "," v1 "," v2 ") = " c " << " f0(f) "(" v0 "," v1 "," v2 ") << endl; "> edp
+ }
}
+
+ok !=1 {
+ print " missing:",NF," ", f , " -> " $0;
+}
END { print " */ "
print "/*****************/";
print "/*****************/";
diff --git a/examples++-load/gsl.cpp b/examples++-load/gsl.cpp
index 1ded47d..e7db476 100644
--- a/examples++-load/gsl.cpp
+++ b/examples++-load/gsl.cpp
@@ -40,6 +40,10 @@
#include <gsl/gsl_bspline.h>
#include <gsl/gsl_multifit.h>
+#include <gsl/gsl_rng.h>
+#include <gsl/gsl_randist.h>
+#include <gsl/gsl_cdf.h>
+
#include "ff_gsl_awk.hpp"
long gslpolysolvequadratic( KN_<double> a, KN_<double> x)
@@ -66,12 +70,81 @@ long gslpolycomplexsolve( KN_<double> a, KN_<Complex> x)
return ok;
}
+// Ramdom part..
+AnyType init_gsl_rng(Stack,const AnyType &x){
+ gsl_rng ** pp = PGetAny< gsl_rng *>(x);
+ *pp = gsl_rng_alloc(gsl_rng_default) ;
+ return x;
+};
+AnyType delete_gsl_rng(Stack,const AnyType &x)
+{
+ gsl_rng ** pp = PGetAny< gsl_rng *>(x);
+ if(*pp) gsl_rng_free(*pp);
+ *pp=0;
+ return Nothing;
+};
+
+gsl_rng ** init_gsl_rng_type( gsl_rng ** pp, const gsl_rng_type * g)
+{
+ *pp = gsl_rng_alloc(g) ;
+ return pp;
+}
+
+gsl_rng ** set_gsl_rng_type( gsl_rng ** pp, const gsl_rng_type * g)
+{
+ if(*pp) gsl_rng_free(*pp);
+ *pp = gsl_rng_alloc(g) ;
+ return pp;
+}
+gsl_rng ** set_gsl_cpy( gsl_rng ** pp, gsl_rng ** gg)
+{
+ if(*pp) gsl_rng_free(*pp);
+ *pp = gsl_rng_clone(*gg);
+ return pp;
+}
+
+double gslrnguniform( gsl_rng ** pr) { return gsl_rng_uniform(*pr);}
+double gslrnguniformpos( gsl_rng ** pr) { return gsl_rng_uniform_pos(*pr);}
+long gsl_rng_get(gsl_rng ** pr){ return gsl_rng_get(*pr);}
+long gsl_rng_min(gsl_rng ** pr){ return gsl_rng_min(*pr);}
+long gsl_rng_max(gsl_rng ** pr){ return gsl_rng_max(*pr);}
+long gsl_rng_set(gsl_rng ** pr, long s){ gsl_rng_set(*pr,s);return 0; }
+string * gsl_name(Stack s,const gsl_rng_type * const & pr)
+ {return Add2StackOfPtr2Free(s,new string((*pr).name));}
+
+long ngslrng =0;
+long gslabort =1;
+static const gsl_rng_type ** gsl_rngpp;
+
+const gsl_rng_type * gslrngtype(long i)
+{
+ ffassert(i >=0 && i < ngslrng);
+ return gsl_rngpp[i];
+}
+
+extern "C" {
+ void ffhandler (const char * reason,
+ const char * file,
+ int line,
+ int gsl_errno);
+
+}
+void ffhandler (const char * reason,
+ const char * file,
+ int line,
+ int gsl_errno)
+{
+ cerr << "\n GSL Error = " << reason << " in " <<file << " at " << line << " err= " <<gsl_errno << endl;
+ if(gslabort) ExecError("Gsl errorhandler");
+}
+
class Init { public:
Init();
};
LOADINIT(Init);
+using namespace Fem2D ;
Init::Init(){
- init_gsl_sf() ;
+
Global.Add("gslpolysolvequadratic","(",new OneOperator2<long,KN_<double>,KN_<double> >( gslpolysolvequadratic));
Global.Add("gslpolysolvecubic","(",new OneOperator2<long,KN_<double>,KN_<double> >(gslpolysolvecubic));
Global.Add("gslpolycomplexsolve","(",new OneOperator2<long,KN_<double>,KN_<Complex> >( gslpolycomplexsolve));
@@ -82,4 +155,101 @@ Init::Init(){
TheOperators->Add("<-",
new OneOperator3_<gsl_bspline_workspace **,gsl_bspline_workspace **,KNM_<double> >(pBuilQFd<R1>),
*/
+ // a faire ... interface randon of gsl ...
+ gsl_rng_env_setup();
+ gsl_rngpp =gsl_rng_types_setup();
+ for(long i=0; gsl_rngpp[i]; )
+ ngslrng=++i;
+ Dcl_Type< gsl_rng ** > (init_gsl_rng,delete_gsl_rng);
+ Dcl_Type< const gsl_rng_type * > (); //gsl_rng_type
+ Global.New("ngslrng",CConstant<long>(ngslrng));
+//
+// all gsl random generator .???? .
+/*
+Global.New("gslrngborosh13",CConstant<const gsl_rng_type *>(gsl_rng_borosh13));
+Global.New("gslrngcoveyou",CConstant<const gsl_rng_type *>(gsl_rng_coveyou));
+Global.New("gslrngcmrg",CConstant<const gsl_rng_type *>(gsl_rng_cmrg));
+Global.New("gslrngfishman18",CConstant<const gsl_rng_type *>(gsl_rng_fishman18));
+Global.New("gslrngfishman20",CConstant<const gsl_rng_type *>(gsl_rng_fishman20));
+Global.New("gslrngfishman2x",CConstant<const gsl_rng_type *>(gsl_rng_fishman2x));
+Global.New("gslrnggfsr4",CConstant<const gsl_rng_type *>(gsl_rng_gfsr4));
+Global.New("gslrngknuthran",CConstant<const gsl_rng_type *>(gsl_rng_knuthran));
+Global.New("gslrngknuthran2",CConstant<const gsl_rng_type *>(gsl_rng_knuthran2));
+Global.New("gslrngknuthran2002",CConstant<const gsl_rng_type *>(gsl_rng_knuthran2002));
+Global.New("gslrnglecuyer21",CConstant<const gsl_rng_type *>(gsl_rng_lecuyer21));
+Global.New("gslrngminstd",CConstant<const gsl_rng_type *>(gsl_rng_minstd));
+Global.New("gslrngmrg",CConstant<const gsl_rng_type *>(gsl_rng_mrg));
+Global.New("gslrngmt19937",CConstant<const gsl_rng_type *>(gsl_rng_mt19937));
+Global.New("gslrngmt199371999",CConstant<const gsl_rng_type *>(gsl_rng_mt19937_1999));
+Global.New("gslrngmt199371998",CConstant<const gsl_rng_type *>(gsl_rng_mt19937_1998));
+Global.New("gslrngr250",CConstant<const gsl_rng_type *>(gsl_rng_r250));
+Global.New("gslrngran0",CConstant<const gsl_rng_type *>(gsl_rng_ran0));
+Global.New("gslrngran1",CConstant<const gsl_rng_type *>(gsl_rng_ran1));
+Global.New("gslrngran2",CConstant<const gsl_rng_type *>(gsl_rng_ran2));
+Global.New("gslrngran3",CConstant<const gsl_rng_type *>(gsl_rng_ran3));
+Global.New("gslrngrand",CConstant<const gsl_rng_type *>(gsl_rng_rand));
+Global.New("gslrngrand48",CConstant<const gsl_rng_type *>(gsl_rng_rand48));
+Global.New("gslrngrandom128bsd",CConstant<const gsl_rng_type *>(gsl_rng_random128_bsd));
+Global.New("gslrngrandom128glibc2",CConstant<const gsl_rng_type *>(gsl_rng_random128_glibc2));
+Global.New("gslrngrandom128libc5",CConstant<const gsl_rng_type *>(gsl_rng_random128_libc5));
+Global.New("gslrngrandom256bsd",CConstant<const gsl_rng_type *>(gsl_rng_random256_bsd));
+Global.New("gslrngrandom256glibc2",CConstant<const gsl_rng_type *>(gsl_rng_random256_glibc2));
+Global.New("gslrngrandom256libc5",CConstant<const gsl_rng_type *>(gsl_rng_random256_libc5));
+Global.New("gslrngrandom32bsd",CConstant<const gsl_rng_type *>(gsl_rng_random32_bsd));
+Global.New("gslrngrandom32glibc2",CConstant<const gsl_rng_type *>(gsl_rng_random32_glibc2));
+Global.New("gslrngrandom32libc5",CConstant<const gsl_rng_type *>(gsl_rng_random32_libc5));
+Global.New("gslrngrandom64bsd",CConstant<const gsl_rng_type *>(gsl_rng_random64_bsd));
+Global.New("gslrngrandom64glibc2",CConstant<const gsl_rng_type *>(gsl_rng_random64_glibc2));
+Global.New("gslrngrandom64libc5",CConstant<const gsl_rng_type *>(gsl_rng_random64_libc5));
+Global.New("gslrngrandom8bsd",CConstant<const gsl_rng_type *>(gsl_rng_random8_bsd));
+Global.New("gslrngrandom8glibc2",CConstant<const gsl_rng_type *>(gsl_rng_random8_glibc2));
+Global.New("gslrngrandom8libc5",CConstant<const gsl_rng_type *>(gsl_rng_random8_libc5));
+Global.New("gslrngrandombsd",CConstant<const gsl_rng_type *>(gsl_rng_random_bsd));
+Global.New("gslrngrandomglibc2",CConstant<const gsl_rng_type *>(gsl_rng_random_glibc2));
+Global.New("gslrngrandomlibc5",CConstant<const gsl_rng_type *>(gsl_rng_random_libc5));
+Global.New("gslrngrandu",CConstant<const gsl_rng_type *>(gsl_rng_randu));
+Global.New("gslrngranf",CConstant<const gsl_rng_type *>(gsl_rng_ranf));
+Global.New("gslrngranlux",CConstant<const gsl_rng_type *>(gsl_rng_ranlux));
+Global.New("gslrngranlux389",CConstant<const gsl_rng_type *>(gsl_rng_ranlux389));
+Global.New("gslrngranlxd1",CConstant<const gsl_rng_type *>(gsl_rng_ranlxd1));
+Global.New("gslrngranlxd2",CConstant<const gsl_rng_type *>(gsl_rng_ranlxd2));
+Global.New("gslrngranlxs0",CConstant<const gsl_rng_type *>(gsl_rng_ranlxs0));
+Global.New("gslrngranlxs1",CConstant<const gsl_rng_type *>(gsl_rng_ranlxs1));
+Global.New("gslrngranlxs2",CConstant<const gsl_rng_type *>(gsl_rng_ranlxs2));
+Global.New("gslrngranmar",CConstant<const gsl_rng_type *>(gsl_rng_ranmar));
+Global.New("gslrngslatec",CConstant<const gsl_rng_type *>(gsl_rng_slatec));
+Global.New("gslrngtaus",CConstant<const gsl_rng_type *>(gsl_rng_taus));
+Global.New("gslrngtaus2",CConstant<const gsl_rng_type *>(gsl_rng_taus2));
+Global.New("gslrngtaus113",CConstant<const gsl_rng_type *>(gsl_rng_taus113));
+Global.New("gslrngtransputer",CConstant<const gsl_rng_type *>(gsl_rng_transputer));
+Global.New("gslrngtt800",CConstant<const gsl_rng_type *>(gsl_rng_tt800));
+Global.New("gslrnguni",CConstant<const gsl_rng_type *>(gsl_rng_uni));
+Global.New("gslrnguni32",CConstant<const gsl_rng_type *>(gsl_rng_uni32));
+Global.New("gslrngvax",CConstant<const gsl_rng_type *>(gsl_rng_vax));
+Global.New("gslrngwaterman14",CConstant<const gsl_rng_type *>(gsl_rng_waterman14));
+Global.New("gslrngzuf",CConstant<const gsl_rng_type *>(gsl_rng_zuf));
+Global.New("gslrngdefault",CConstant<const gsl_rng_type *>(gsl_rng_default));
+*/
+
+zzzfff->Add("gslrng",atype<gsl_rng ** >());
+TheOperators->Add("<-",new OneOperator2<gsl_rng **,gsl_rng **, const gsl_rng_type * >(init_gsl_rng_type));
+TheOperators->Add("=",new OneOperator2<gsl_rng **,gsl_rng **, const gsl_rng_type * >(set_gsl_rng_type));
+TheOperators->Add("=",new OneOperator2<gsl_rng **,gsl_rng **, gsl_rng ** >(set_gsl_cpy));
+//map_type[typeid(gsl_rng *).name()]->AddCast( new E_F1_funcT<gsl_rng *,gsl_rng **>(UnRef<gsl_rng*>) );
+//map_type[typeid(gsl_rng *).name()]->AddCast( new E_F1_funcT<gsl_rng *,gsl_rng **>(UnRef<gsl_rng*>) );
+
+Global.Add("gslrnguniform","(",new OneOperator1<double,gsl_rng **>( gslrnguniform));
+Global.Add("gslrnguniformpos","(",new OneOperator1<double,gsl_rng **>( gslrnguniformpos));
+
+Global.Add("gslname","(",new OneOperator1s_<string * ,const gsl_rng_type *>( gsl_name));
+Global.Add("gslrngget","(",new OneOperator1<long ,gsl_rng **>( gsl_rng_get));
+Global.Add("gslrngmin","(",new OneOperator1<long ,gsl_rng **>( gsl_rng_min));
+Global.Add("gslrngmax","(",new OneOperator1<long ,gsl_rng **>( gsl_rng_max));
+Global.Add("gslrngset","(",new OneOperator2<long ,gsl_rng **, long>(gsl_rng_set));
+ Global.Add("gslrngtype","(",new OneOperator1<const gsl_rng_type * ,long>(gslrngtype));
+ init_gsl_sf() ;
+ gslabort=1;
+ Global.New("gslabortonerror",CConstant<long*>(&gslabort));
+
+ gsl_set_error_handler(ffhandler);
}
diff --git a/examples++-load/gsl.edp b/examples++-load/gsl.edp
index d40f6fc..abc4165 100644
--- a/examples++-load/gsl.edp
+++ b/examples++-load/gsl.edp
@@ -1,116 +1,4 @@
-load "gsl"
-cout << "gsl_sf_airy_zero_Ai(1) = " << gslsfairyzeroAi(1) << endl;
-cout << "gsl_sf_airy_zero_Bi(1) = " << gslsfairyzeroBi(1) << endl;
-cout << "gsl_sf_airy_zero_Ai_deriv(1) = " << gslsfairyzeroAideriv(1) << endl;
-cout << "gsl_sf_airy_zero_Bi_deriv(1) = " << gslsfairyzeroBideriv(1) << endl;
-cout << "gsl_sf_bessel_J0(0.55) = " << gslsfbesselJ0(0.55) << endl;
-cout << "gsl_sf_bessel_J1(0.55) = " << gslsfbesselJ1(0.55) << endl;
-cout << "gsl_sf_bessel_Y0(0.55) = " << gslsfbesselY0(0.55) << endl;
-cout << "gsl_sf_bessel_Y1(0.55) = " << gslsfbesselY1(0.55) << endl;
-cout << "gsl_sf_bessel_I0(0.55) = " << gslsfbesselI0(0.55) << endl;
-cout << "gsl_sf_bessel_I1(0.55) = " << gslsfbesselI1(0.55) << endl;
-cout << "gsl_sf_bessel_I0_scaled(0.55) = " << gslsfbesselI0scaled(0.55) << endl;
-cout << "gsl_sf_bessel_I1_scaled(0.55) = " << gslsfbesselI1scaled(0.55) << endl;
-cout << "gsl_sf_bessel_K0(0.55) = " << gslsfbesselK0(0.55) << endl;
-cout << "gsl_sf_bessel_K1(0.55) = " << gslsfbesselK1(0.55) << endl;
-cout << "gsl_sf_bessel_K0_scaled(0.55) = " << gslsfbesselK0scaled(0.55) << endl;
-cout << "gsl_sf_bessel_K1_scaled(0.55) = " << gslsfbesselK1scaled(0.55) << endl;
-cout << "gsl_sf_bessel_j0(0.55) = " << gslsfbesselj0(0.55) << endl;
-cout << "gsl_sf_bessel_j1(0.55) = " << gslsfbesselj1(0.55) << endl;
-cout << "gsl_sf_bessel_j2(0.55) = " << gslsfbesselj2(0.55) << endl;
-cout << "gsl_sf_bessel_y0(0.55) = " << gslsfbessely0(0.55) << endl;
-cout << "gsl_sf_bessel_y1(0.55) = " << gslsfbessely1(0.55) << endl;
-cout << "gsl_sf_bessel_y2(0.55) = " << gslsfbessely2(0.55) << endl;
-cout << "gsl_sf_bessel_i0_scaled(0.55) = " << gslsfbesseli0scaled(0.55) << endl;
-cout << "gsl_sf_bessel_i1_scaled(0.55) = " << gslsfbesseli1scaled(0.55) << endl;
-cout << "gsl_sf_bessel_i2_scaled(0.55) = " << gslsfbesseli2scaled(0.55) << endl;
-cout << "gsl_sf_bessel_k0_scaled(0.55) = " << gslsfbesselk0scaled(0.55) << endl;
-cout << "gsl_sf_bessel_k1_scaled(0.55) = " << gslsfbesselk1scaled(0.55) << endl;
-cout << "gsl_sf_bessel_k2_scaled(0.55) = " << gslsfbesselk2scaled(0.55) << endl;
-cout << "gsl_sf_bessel_zero_J0(1) = " << gslsfbesselzeroJ0(1) << endl;
-cout << "gsl_sf_bessel_zero_J1(1) = " << gslsfbesselzeroJ1(1) << endl;
-cout << "gsl_sf_clausen(0.55) = " << gslsfclausen(0.55) << endl;
-cout << "gsl_sf_dawson(0.55) = " << gslsfdawson(0.55) << endl;
-cout << "gsl_sf_debye_1(0.55) = " << gslsfdebye1(0.55) << endl;
-cout << "gsl_sf_debye_2(0.55) = " << gslsfdebye2(0.55) << endl;
-cout << "gsl_sf_debye_3(0.55) = " << gslsfdebye3(0.55) << endl;
-cout << "gsl_sf_debye_4(0.55) = " << gslsfdebye4(0.55) << endl;
-cout << "gsl_sf_debye_5(0.55) = " << gslsfdebye5(0.55) << endl;
-cout << "gsl_sf_debye_6(0.55) = " << gslsfdebye6(0.55) << endl;
-cout << "gsl_sf_dilog(0.55) = " << gslsfdilog(0.55) << endl;
-cout << "gsl_sf_erfc(0.55) = " << gslsferfc(0.55) << endl;
-cout << "gsl_sf_log_erfc(0.55) = " << gslsflogerfc(0.55) << endl;
-cout << "gsl_sf_erf(0.55) = " << gslsferf(0.55) << endl;
-cout << "gsl_sf_erf_Z(0.55) = " << gslsferfZ(0.55) << endl;
-cout << "gsl_sf_erf_Q(0.55) = " << gslsferfQ(0.55) << endl;
-cout << "gsl_sf_hazard(0.55) = " << gslsfhazard(0.55) << endl;
-cout << "gsl_sf_exp(0.55) = " << gslsfexp(0.55) << endl;
-cout << "gsl_sf_expm1(0.55) = " << gslsfexpm1(0.55) << endl;
-cout << "gsl_sf_exprel(0.55) = " << gslsfexprel(0.55) << endl;
-cout << "gsl_sf_exprel_2(0.55) = " << gslsfexprel2(0.55) << endl;
-cout << "gsl_sf_expint_E1(0.55) = " << gslsfexpintE1(0.55) << endl;
-cout << "gsl_sf_expint_E2(0.55) = " << gslsfexpintE2(0.55) << endl;
-cout << "gsl_sf_expint_E1_scaled(0.55) = " << gslsfexpintE1scaled(0.55) << endl;
-cout << "gsl_sf_expint_E2_scaled(0.55) = " << gslsfexpintE2scaled(0.55) << endl;
-cout << "gsl_sf_expint_Ei(0.55) = " << gslsfexpintEi(0.55) << endl;
-cout << "gsl_sf_expint_Ei_scaled(0.55) = " << gslsfexpintEiscaled(0.55) << endl;
-cout << "gsl_sf_Shi(0.55) = " << gslsfShi(0.55) << endl;
-cout << "gsl_sf_Chi(0.55) = " << gslsfChi(0.55) << endl;
-cout << "gsl_sf_expint_3(0.55) = " << gslsfexpint3(0.55) << endl;
-cout << "gsl_sf_Si(0.55) = " << gslsfSi(0.55) << endl;
-cout << "gsl_sf_Ci(0.55) = " << gslsfCi(0.55) << endl;
-cout << "gsl_sf_atanint(0.55) = " << gslsfatanint(0.55) << endl;
-cout << "gsl_sf_fermi_dirac_m1(0.55) = " << gslsffermidiracm1(0.55) << endl;
-cout << "gsl_sf_fermi_dirac_0(0.55) = " << gslsffermidirac0(0.55) << endl;
-cout << "gsl_sf_fermi_dirac_1(0.55) = " << gslsffermidirac1(0.55) << endl;
-cout << "gsl_sf_fermi_dirac_2(0.55) = " << gslsffermidirac2(0.55) << endl;
-cout << "gsl_sf_fermi_dirac_mhalf(0.55) = " << gslsffermidiracmhalf(0.55) << endl;
-cout << "gsl_sf_fermi_dirac_half(0.55) = " << gslsffermidirachalf(0.55) << endl;
-cout << "gsl_sf_fermi_dirac_3half(0.55) = " << gslsffermidirac3half(0.55) << endl;
-cout << "gsl_sf_lngamma(0.55) = " << gslsflngamma(0.55) << endl;
-cout << "gsl_sf_gamma(0.55) = " << gslsfgamma(0.55) << endl;
-cout << "gsl_sf_gammastar(0.55) = " << gslsfgammastar(0.55) << endl;
-cout << "gsl_sf_gammainv(0.55) = " << gslsfgammainv(0.55) << endl;
-cout << "gsl_sf_fact(1) = " << gslsffact(1) << endl;
-cout << "gsl_sf_doublefact(1) = " << gslsfdoublefact(1) << endl;
-cout << "gsl_sf_lnfact(1) = " << gslsflnfact(1) << endl;
-cout << "gsl_sf_lndoublefact(1) = " << gslsflndoublefact(1) << endl;
-cout << "gsl_sf_lambert_W0(0.55) = " << gslsflambertW0(0.55) << endl;
-cout << "gsl_sf_lambert_Wm1(0.55) = " << gslsflambertWm1(0.55) << endl;
-cout << "gsl_sf_legendre_P1(0.55) = " << gslsflegendreP1(0.55) << endl;
-cout << "gsl_sf_legendre_P2(0.55) = " << gslsflegendreP2(0.55) << endl;
-cout << "gsl_sf_legendre_P3(0.55) = " << gslsflegendreP3(0.55) << endl;
-cout << "gsl_sf_legendre_Q0(0.55) = " << gslsflegendreQ0(0.55) << endl;
-cout << "gsl_sf_legendre_Q1(0.55) = " << gslsflegendreQ1(0.55) << endl;
-cout << "gsl_sf_log(0.55) = " << gslsflog(0.55) << endl;
-cout << "gsl_sf_log_abs(0.55) = " << gslsflogabs(0.55) << endl;
-cout << "gsl_sf_log_1plusx(0.55) = " << gslsflog1plusx(0.55) << endl;
-cout << "gsl_sf_log_1plusx_mx(0.55) = " << gslsflog1plusxmx(0.55) << endl;
-cout << "gsl_sf_psi_int(1) = " << gslsfpsiint(1) << endl;
-cout << "gsl_sf_psi(0.55) = " << gslsfpsi(0.55) << endl;
-cout << "gsl_sf_psi_1piy(0.55) = " << gslsfpsi1piy(0.55) << endl;
-cout << "gsl_sf_psi_1_int(1) = " << gslsfpsi1int(1) << endl;
-cout << "gsl_sf_psi_1(0.55) = " << gslsfpsi1(0.55) << endl;
-cout << "gsl_sf_synchrotron_1(0.55) = " << gslsfsynchrotron1(0.55) << endl;
-cout << "gsl_sf_synchrotron_2(0.55) = " << gslsfsynchrotron2(0.55) << endl;
-cout << "gsl_sf_transport_2(0.55) = " << gslsftransport2(0.55) << endl;
-cout << "gsl_sf_transport_3(0.55) = " << gslsftransport3(0.55) << endl;
-cout << "gsl_sf_transport_4(0.55) = " << gslsftransport4(0.55) << endl;
-cout << "gsl_sf_transport_5(0.55) = " << gslsftransport5(0.55) << endl;
-cout << "gsl_sf_sin(0.55) = " << gslsfsin(0.55) << endl;
-cout << "gsl_sf_cos(0.55) = " << gslsfcos(0.55) << endl;
-cout << "gsl_sf_sinc(0.55) = " << gslsfsinc(0.55) << endl;
-cout << "gsl_sf_lnsinh(0.55) = " << gslsflnsinh(0.55) << endl;
-cout << "gsl_sf_lncosh(0.55) = " << gslsflncosh(0.55) << endl;
-cout << "gsl_sf_angle_restrict_symm(0.55) = " << gslsfanglerestrictsymm(0.55) << endl;
-cout << "gsl_sf_angle_restrict_pos(0.55) = " << gslsfanglerestrictpos(0.55) << endl;
-cout << "gsl_sf_zeta_int(2) = " << gslsfzetaint(2) << endl;
-cout << "gsl_sf_zeta(0.55) = " << gslsfzeta(0.55) << endl;
-cout << "gsl_sf_zetam1(0.55) = " << gslsfzetam1(0.55) << endl;
-cout << "gsl_sf_zetam1_int(2) = " << gslsfzetam1int(2) << endl;
-cout << "gsl_sf_eta_int(1) = " << gslsfetaint(1) << endl;
-cout << "gsl_sf_eta(0.55) = " << gslsfeta(0.55) << endl;
-
+include "gsl.idp"
// FFCS - avoid using P2 and P3 which already define something very precise
real [int] p2=[ 2,-3,1];
real [int] p3=[ 8,-10,1,1];
@@ -122,5 +10,13 @@ cout << X[0] << " " << X[1] << endl;
gslpolysolvecubic(p3,X);
cout << X[0] << " " << X[1] << " " << X[2] << endl;
gslpolycomplexsolve(Q4,Z);
-cout << Z[0] << " " << Z[1] << " " << Z[2] << " " << Z[3] <<endl;
+cout << Z[0] << " " << Z[1] << " " << Z[2] << " " << Z[3] <<endl;
+
+cout << "\n\n gsl random :\n\n";
+ cout << " list of generator " << ngslrng << endl;
+ for(int i=0; i <ngslrng ; ++i)
+ cout << i << " name " << gslname(gslrngtype(i)) << endl;
+gslrng r;
+for (int i = 0; i < 10; i++)
+ cout << gslrnguniform(r) << endl;;
\ No newline at end of file
diff --git a/examples++-load/gsl.idp b/examples++-load/gsl.idp
new file mode 100644
index 0000000..07bce8a
--- /dev/null
+++ b/examples++-load/gsl.idp
@@ -0,0 +1,331 @@
+// file create: awk -f gsl.awk gsl_list > ff_gsl_awk.hpp
+load "gsl"
+gslrng ffrng;
+ gslabortonerror=0;
+cout << "gsl_cdf_ugaussian_P(0.55) = " << gslcdfugaussianP(0.55) << endl;
+cout << "gsl_cdf_ugaussian_Q(0.55) = " << gslcdfugaussianQ(0.55) << endl;
+cout << "gsl_cdf_ugaussian_Pinv(0.55) = " << gslcdfugaussianPinv(0.55) << endl;
+cout << "gsl_cdf_ugaussian_Qinv(0.55) = " << gslcdfugaussianQinv(0.55) << endl;
+cout << "gsl_cdf_gaussian_P(0.55, 0.55) = " << gslcdfgaussianP(0.55, 0.55) << endl;
+cout << "gsl_cdf_gaussian_Q(0.55, 0.55) = " << gslcdfgaussianQ(0.55, 0.55) << endl;
+cout << "gsl_cdf_gaussian_Pinv(0.55, 0.55) = " << gslcdfgaussianPinv(0.55, 0.55) << endl;
+cout << "gsl_cdf_gaussian_Qinv(0.55, 0.55) = " << gslcdfgaussianQinv(0.55, 0.55) << endl;
+cout << "gsl_cdf_gamma_P(0.55,0.55,0.55) = " << gslcdfgammaP(0.55,0.55,0.55) << endl;
+cout << "gsl_cdf_gamma_Q(0.55,0.55,0.55) = " << gslcdfgammaQ(0.55,0.55,0.55) << endl;
+cout << "gsl_cdf_gamma_Pinv(0.55,0.55,0.55) = " << gslcdfgammaPinv(0.55,0.55,0.55) << endl;
+cout << "gsl_cdf_gamma_Qinv(0.55,0.55,0.55) = " << gslcdfgammaQinv(0.55,0.55,0.55) << endl;
+cout << "gsl_cdf_cauchy_P(0.55, 0.55) = " << gslcdfcauchyP(0.55, 0.55) << endl;
+cout << "gsl_cdf_cauchy_Q(0.55, 0.55) = " << gslcdfcauchyQ(0.55, 0.55) << endl;
+cout << "gsl_cdf_cauchy_Pinv(0.55, 0.55) = " << gslcdfcauchyPinv(0.55, 0.55) << endl;
+cout << "gsl_cdf_cauchy_Qinv(0.55, 0.55) = " << gslcdfcauchyQinv(0.55, 0.55) << endl;
+cout << "gsl_cdf_laplace_P(0.55, 0.55) = " << gslcdflaplaceP(0.55, 0.55) << endl;
+cout << "gsl_cdf_laplace_Q(0.55, 0.55) = " << gslcdflaplaceQ(0.55, 0.55) << endl;
+cout << "gsl_cdf_laplace_Pinv(0.55, 0.55) = " << gslcdflaplacePinv(0.55, 0.55) << endl;
+cout << "gsl_cdf_laplace_Qinv(0.55, 0.55) = " << gslcdflaplaceQinv(0.55, 0.55) << endl;
+cout << "gsl_cdf_rayleigh_P(0.55, 0.55) = " << gslcdfrayleighP(0.55, 0.55) << endl;
+cout << "gsl_cdf_rayleigh_Q(0.55, 0.55) = " << gslcdfrayleighQ(0.55, 0.55) << endl;
+cout << "gsl_cdf_rayleigh_Pinv(0.55, 0.55) = " << gslcdfrayleighPinv(0.55, 0.55) << endl;
+cout << "gsl_cdf_rayleigh_Qinv(0.55, 0.55) = " << gslcdfrayleighQinv(0.55, 0.55) << endl;
+cout << "gsl_cdf_chisq_P(0.55, 0.55) = " << gslcdfchisqP(0.55, 0.55) << endl;
+cout << "gsl_cdf_chisq_Q(0.55, 0.55) = " << gslcdfchisqQ(0.55, 0.55) << endl;
+cout << "gsl_cdf_chisq_Pinv(0.55, 0.55) = " << gslcdfchisqPinv(0.55, 0.55) << endl;
+cout << "gsl_cdf_chisq_Qinv(0.55, 0.55) = " << gslcdfchisqQinv(0.55, 0.55) << endl;
+cout << "gsl_cdf_exponential_P(0.55, 0.55) = " << gslcdfexponentialP(0.55, 0.55) << endl;
+cout << "gsl_cdf_exponential_Q(0.55, 0.55) = " << gslcdfexponentialQ(0.55, 0.55) << endl;
+cout << "gsl_cdf_exponential_Pinv(0.55, 0.55) = " << gslcdfexponentialPinv(0.55, 0.55) << endl;
+cout << "gsl_cdf_exponential_Qinv(0.55, 0.55) = " << gslcdfexponentialQinv(0.55, 0.55) << endl;
+cout << "gsl_cdf_exppow_P(0.55,0.55,0.55) = " << gslcdfexppowP(0.55,0.55,0.55) << endl;
+cout << "gsl_cdf_exppow_Q(0.55,0.55,0.55) = " << gslcdfexppowQ(0.55,0.55,0.55) << endl;
+cout << "gsl_cdf_tdist_P(0.55, 0.55) = " << gslcdftdistP(0.55, 0.55) << endl;
+cout << "gsl_cdf_tdist_Q(0.55, 0.55) = " << gslcdftdistQ(0.55, 0.55) << endl;
+cout << "gsl_cdf_tdist_Pinv(0.55, 0.55) = " << gslcdftdistPinv(0.55, 0.55) << endl;
+cout << "gsl_cdf_tdist_Qinv(0.55, 0.55) = " << gslcdftdistQinv(0.55, 0.55) << endl;
+cout << "gsl_cdf_fdist_P(0.55,0.55,0.55) = " << gslcdffdistP(0.55,0.55,0.55) << endl;
+cout << "gsl_cdf_fdist_Q(0.55,0.55,0.55) = " << gslcdffdistQ(0.55,0.55,0.55) << endl;
+cout << "gsl_cdf_fdist_Pinv(0.55,0.55,0.55) = " << gslcdffdistPinv(0.55,0.55,0.55) << endl;
+cout << "gsl_cdf_fdist_Qinv(0.55,0.55,0.55) = " << gslcdffdistQinv(0.55,0.55,0.55) << endl;
+cout << "gsl_cdf_beta_P(0.55,0.55,0.55) = " << gslcdfbetaP(0.55,0.55,0.55) << endl;
+cout << "gsl_cdf_beta_Q(0.55,0.55,0.55) = " << gslcdfbetaQ(0.55,0.55,0.55) << endl;
+cout << "gsl_cdf_beta_Pinv(0.55,0.55,0.55) = " << gslcdfbetaPinv(0.55,0.55,0.55) << endl;
+cout << "gsl_cdf_beta_Qinv(0.55,0.55,0.55) = " << gslcdfbetaQinv(0.55,0.55,0.55) << endl;
+cout << "gsl_cdf_flat_P(0.55,0.55,0.55) = " << gslcdfflatP(0.55,0.55,0.55) << endl;
+cout << "gsl_cdf_flat_Q(0.55,0.55,0.55) = " << gslcdfflatQ(0.55,0.55,0.55) << endl;
+cout << "gsl_cdf_flat_Pinv(0.55,0.55,0.55) = " << gslcdfflatPinv(0.55,0.55,0.55) << endl;
+cout << "gsl_cdf_flat_Qinv(0.55,0.55,0.55) = " << gslcdfflatQinv(0.55,0.55,0.55) << endl;
+cout << "gsl_cdf_lognormal_P(0.55,0.55,0.55) = " << gslcdflognormalP(0.55,0.55,0.55) << endl;
+cout << "gsl_cdf_lognormal_Q(0.55,0.55,0.55) = " << gslcdflognormalQ(0.55,0.55,0.55) << endl;
+cout << "gsl_cdf_lognormal_Pinv(0.55,0.55,0.55) = " << gslcdflognormalPinv(0.55,0.55,0.55) << endl;
+cout << "gsl_cdf_lognormal_Qinv(0.55,0.55,0.55) = " << gslcdflognormalQinv(0.55,0.55,0.55) << endl;
+cout << "gsl_cdf_gumbel1_P(0.55,0.55,0.55) = " << gslcdfgumbel1P(0.55,0.55,0.55) << endl;
+cout << "gsl_cdf_gumbel1_Q(0.55,0.55,0.55) = " << gslcdfgumbel1Q(0.55,0.55,0.55) << endl;
+cout << "gsl_cdf_gumbel1_Pinv(0.55,0.55,0.55) = " << gslcdfgumbel1Pinv(0.55,0.55,0.55) << endl;
+cout << "gsl_cdf_gumbel1_Qinv(0.55,0.55,0.55) = " << gslcdfgumbel1Qinv(0.55,0.55,0.55) << endl;
+cout << "gsl_cdf_gumbel2_P(0.55,0.55,0.55) = " << gslcdfgumbel2P(0.55,0.55,0.55) << endl;
+cout << "gsl_cdf_gumbel2_Q(0.55,0.55,0.55) = " << gslcdfgumbel2Q(0.55,0.55,0.55) << endl;
+cout << "gsl_cdf_gumbel2_Pinv(0.55,0.55,0.55) = " << gslcdfgumbel2Pinv(0.55,0.55,0.55) << endl;
+cout << "gsl_cdf_gumbel2_Qinv(0.55,0.55,0.55) = " << gslcdfgumbel2Qinv(0.55,0.55,0.55) << endl;
+cout << "gsl_cdf_weibull_P(0.55,0.55,0.55) = " << gslcdfweibullP(0.55,0.55,0.55) << endl;
+cout << "gsl_cdf_weibull_Q(0.55,0.55,0.55) = " << gslcdfweibullQ(0.55,0.55,0.55) << endl;
+cout << "gsl_cdf_weibull_Pinv(0.55,0.55,0.55) = " << gslcdfweibullPinv(0.55,0.55,0.55) << endl;
+cout << "gsl_cdf_weibull_Qinv(0.55,0.55,0.55) = " << gslcdfweibullQinv(0.55,0.55,0.55) << endl;
+cout << "gsl_cdf_pareto_P(0.55,0.55,0.55) = " << gslcdfparetoP(0.55,0.55,0.55) << endl;
+cout << "gsl_cdf_pareto_Q(0.55,0.55,0.55) = " << gslcdfparetoQ(0.55,0.55,0.55) << endl;
+cout << "gsl_cdf_pareto_Pinv(0.55,0.55,0.55) = " << gslcdfparetoPinv(0.55,0.55,0.55) << endl;
+cout << "gsl_cdf_pareto_Qinv(0.55,0.55,0.55) = " << gslcdfparetoQinv(0.55,0.55,0.55) << endl;
+cout << "gsl_cdf_logistic_P(0.55, 0.55) = " << gslcdflogisticP(0.55, 0.55) << endl;
+cout << "gsl_cdf_logistic_Q(0.55, 0.55) = " << gslcdflogisticQ(0.55, 0.55) << endl;
+cout << "gsl_cdf_logistic_Pinv(0.55, 0.55) = " << gslcdflogisticPinv(0.55, 0.55) << endl;
+cout << "gsl_cdf_logistic_Qinv(0.55, 0.55) = " << gslcdflogisticQinv(0.55, 0.55) << endl;
+cout << "gsl_cdf_binomial_P(0,0.55,0) = " << gslcdfbinomialP(0,0.55,0) << endl;
+cout << "gsl_cdf_binomial_Q(0,0.55,0) = " << gslcdfbinomialQ(0,0.55,0) << endl;
+cout << "gsl_cdf_poisson_P(0, 0.55) = " << gslcdfpoissonP(0, 0.55) << endl;
+cout << "gsl_cdf_poisson_Q(0, 0.55) = " << gslcdfpoissonQ(0, 0.55) << endl;
+cout << "gsl_cdf_geometric_P(0, 0.55) = " << gslcdfgeometricP(0, 0.55) << endl;
+cout << "gsl_cdf_geometric_Q(0, 0.55) = " << gslcdfgeometricQ(0, 0.55) << endl;
+cout << "gsl_cdf_negative_binomial_P(0,0.55,0.55) = " << gslcdfnegativebinomialP(0,0.55,0.55) << endl;
+cout << "gsl_cdf_negative_binomial_Q(0,0.55,0.55) = " << gslcdfnegativebinomialQ(0,0.55,0.55) << endl;
+cout << "gsl_cdf_pascal_P(0,0.55,0) = " << gslcdfpascalP(0,0.55,0) << endl;
+cout << "gsl_cdf_pascal_Q(0,0.55,0) = " << gslcdfpascalQ(0,0.55,0) << endl;
+cout << "gsl_ran_bernoulli_pdf(0, 0.55) = " << gslranbernoullipdf(0, 0.55) << endl;
+cout << "gsl_ran_beta(ffrng,0.55,0.55) = " << gslranbeta(ffrng,0.55,0.55) << endl;
+cout << "gsl_ran_beta_pdf(0.55,0.55,0.55) = " << gslranbetapdf(0.55,0.55,0.55) << endl;
+cout << "gsl_ran_binomial_pdf(0,0.55,0) = " << gslranbinomialpdf(0,0.55,0) << endl;
+cout << "gsl_ran_exponential(ffrng, 0.55) = " << gslranexponential(ffrng, 0.55) << endl;
+cout << "gsl_ran_exponential_pdf(0.55, 0.55) = " << gslranexponentialpdf(0.55, 0.55) << endl;
+cout << "gsl_ran_exppow(ffrng,0.55,0.55) = " << gslranexppow(ffrng,0.55,0.55) << endl;
+cout << "gsl_ran_exppow_pdf(0.55,0.55,0.55) = " << gslranexppowpdf(0.55,0.55,0.55) << endl;
+cout << "gsl_ran_cauchy(ffrng, 0.55) = " << gslrancauchy(ffrng, 0.55) << endl;
+cout << "gsl_ran_cauchy_pdf(0.55, 0.55) = " << gslrancauchypdf(0.55, 0.55) << endl;
+cout << "gsl_ran_chisq(ffrng, 0.55) = " << gslranchisq(ffrng, 0.55) << endl;
+cout << "gsl_ran_chisq_pdf(0.55, 0.55) = " << gslranchisqpdf(0.55, 0.55) << endl;
+cout << "gsl_ran_erlang(ffrng,0.55,0.55) = " << gslranerlang(ffrng,0.55,0.55) << endl;
+cout << "gsl_ran_erlang_pdf(0.55,0.55,0.55) = " << gslranerlangpdf(0.55,0.55,0.55) << endl;
+cout << "gsl_ran_fdist(ffrng,0.55,0.55) = " << gslranfdist(ffrng,0.55,0.55) << endl;
+cout << "gsl_ran_fdist_pdf(0.55,0.55,0.55) = " << gslranfdistpdf(0.55,0.55,0.55) << endl;
+cout << "gsl_ran_flat(ffrng,0.55,0.55) = " << gslranflat(ffrng,0.55,0.55) << endl;
+cout << "gsl_ran_flat_pdf(0.55,0.55,0.55) = " << gslranflatpdf(0.55,0.55,0.55) << endl;
+cout << "gsl_ran_gamma(ffrng,0.55,0.55) = " << gslrangamma(ffrng,0.55,0.55) << endl;
+cout << "gsl_ran_gamma_int(ffrng, 0) = " << gslrangammaint(ffrng, 0) << endl;
+cout << "gsl_ran_gamma_pdf(0.55,0.55,0.55) = " << gslrangammapdf(0.55,0.55,0.55) << endl;
+cout << "gsl_ran_gamma_mt(ffrng,0.55,0.55) = " << gslrangammamt(ffrng,0.55,0.55) << endl;
+cout << "gsl_ran_gamma_knuth(ffrng,0.55,0.55) = " << gslrangammaknuth(ffrng,0.55,0.55) << endl;
+cout << "gsl_ran_gaussian(ffrng, 0.55) = " << gslrangaussian(ffrng, 0.55) << endl;
+cout << "gsl_ran_gaussian_ratio_method(ffrng, 0.55) = " << gslrangaussianratiomethod(ffrng, 0.55) << endl;
+cout << "gsl_ran_gaussian_ziggurat(ffrng, 0.55) = " << gslrangaussianziggurat(ffrng, 0.55) << endl;
+cout << "gsl_ran_gaussian_pdf(0.55, 0.55) = " << gslrangaussianpdf(0.55, 0.55) << endl;
+cout << "gsl_ran_ugaussian(ffrng) = " << gslranugaussian(ffrng) << endl;
+cout << "gsl_ran_ugaussian_ratio_method(ffrng) = " << gslranugaussianratiomethod(ffrng) << endl;
+cout << "gsl_ran_ugaussian_pdf(0.55) = " << gslranugaussianpdf(0.55) << endl;
+cout << "gsl_ran_gaussian_tail(ffrng,0.55,0.55) = " << gslrangaussiantail(ffrng,0.55,0.55) << endl;
+cout << "gsl_ran_gaussian_tail_pdf(0.55,0.55,0.55) = " << gslrangaussiantailpdf(0.55,0.55,0.55) << endl;
+cout << "gsl_ran_ugaussian_tail(ffrng, 0.55) = " << gslranugaussiantail(ffrng, 0.55) << endl;
+cout << "gsl_ran_ugaussian_tail_pdf(0.55, 0.55) = " << gslranugaussiantailpdf(0.55, 0.55) << endl;
+cout << "gsl_ran_landau(ffrng) = " << gslranlandau(ffrng) << endl;
+cout << "gsl_ran_landau_pdf(0.55) = " << gslranlandaupdf(0.55) << endl;
+cout << "gsl_ran_geometric_pdf(0, 0.55) = " << gslrangeometricpdf(0, 0.55) << endl;
+cout << "gsl_ran_gumbel1(ffrng,0.55,0.55) = " << gslrangumbel1(ffrng,0.55,0.55) << endl;
+cout << "gsl_ran_gumbel1_pdf(0.55,0.55,0.55) = " << gslrangumbel1pdf(0.55,0.55,0.55) << endl;
+cout << "gsl_ran_gumbel2(ffrng,0.55,0.55) = " << gslrangumbel2(ffrng,0.55,0.55) << endl;
+cout << "gsl_ran_gumbel2_pdf(0.55,0.55,0.55) = " << gslrangumbel2pdf(0.55,0.55,0.55) << endl;
+cout << "gsl_ran_logistic(ffrng, 0.55) = " << gslranlogistic(ffrng, 0.55) << endl;
+cout << "gsl_ran_logistic_pdf(0.55, 0.55) = " << gslranlogisticpdf(0.55, 0.55) << endl;
+cout << "gsl_ran_lognormal(ffrng,0.55,0.55) = " << gslranlognormal(ffrng,0.55,0.55) << endl;
+cout << "gsl_ran_lognormal_pdf(0.55,0.55,0.55) = " << gslranlognormalpdf(0.55,0.55,0.55) << endl;
+cout << "gsl_ran_logarithmic_pdf(0, 0.55) = " << gslranlogarithmicpdf(0, 0.55) << endl;
+cout << "gsl_ran_negative_binomial_pdf(0,0.55,0.55) = " << gslrannegativebinomialpdf(0,0.55,0.55) << endl;
+cout << "gsl_ran_pascal_pdf(0,0.55,0) = " << gslranpascalpdf(0,0.55,0) << endl;
+cout << "gsl_ran_pareto(ffrng,0.55,0.55) = " << gslranpareto(ffrng,0.55,0.55) << endl;
+cout << "gsl_ran_pareto_pdf(0.55,0.55,0.55) = " << gslranparetopdf(0.55,0.55,0.55) << endl;
+cout << "gsl_ran_poisson_pdf(0, 0.55) = " << gslranpoissonpdf(0, 0.55) << endl;
+cout << "gsl_ran_rayleigh(ffrng, 0.55) = " << gslranrayleigh(ffrng, 0.55) << endl;
+cout << "gsl_ran_rayleigh_pdf(0.55, 0.55) = " << gslranrayleighpdf(0.55, 0.55) << endl;
+cout << "gsl_ran_rayleigh_tail(ffrng,0.55,0.55) = " << gslranrayleightail(ffrng,0.55,0.55) << endl;
+cout << "gsl_ran_rayleigh_tail_pdf(0.55,0.55,0.55) = " << gslranrayleightailpdf(0.55,0.55,0.55) << endl;
+cout << "gsl_ran_tdist(ffrng, 0.55) = " << gslrantdist(ffrng, 0.55) << endl;
+cout << "gsl_ran_tdist_pdf(0.55, 0.55) = " << gslrantdistpdf(0.55, 0.55) << endl;
+cout << "gsl_ran_laplace(ffrng, 0.55) = " << gslranlaplace(ffrng, 0.55) << endl;
+cout << "gsl_ran_laplace_pdf(0.55, 0.55) = " << gslranlaplacepdf(0.55, 0.55) << endl;
+cout << "gsl_ran_levy(ffrng,0.55,0.55) = " << gslranlevy(ffrng,0.55,0.55) << endl;
+cout << "gsl_ran_weibull(ffrng,0.55,0.55) = " << gslranweibull(ffrng,0.55,0.55) << endl;
+cout << "gsl_ran_weibull_pdf(0.55,0.55,0.55) = " << gslranweibullpdf(0.55,0.55,0.55) << endl;
+cout << "gsl_sf_airy_zero_Ai(0) = " << gslsfairyzeroAi(0) << endl;
+cout << "gsl_sf_airy_zero_Bi(0) = " << gslsfairyzeroBi(0) << endl;
+cout << "gsl_sf_airy_zero_Ai_deriv(0) = " << gslsfairyzeroAideriv(0) << endl;
+cout << "gsl_sf_airy_zero_Bi_deriv(0) = " << gslsfairyzeroBideriv(0) << endl;
+cout << "gsl_sf_bessel_J0(0.55) = " << gslsfbesselJ0(0.55) << endl;
+cout << "gsl_sf_bessel_J1(0.55) = " << gslsfbesselJ1(0.55) << endl;
+cout << "gsl_sf_bessel_Jn(0, 0.55) = " << gslsfbesselJn(0, 0.55) << endl;
+cout << "gsl_sf_bessel_Y0(0.55) = " << gslsfbesselY0(0.55) << endl;
+cout << "gsl_sf_bessel_Y1(0.55) = " << gslsfbesselY1(0.55) << endl;
+cout << "gsl_sf_bessel_Yn(0, 0.55) = " << gslsfbesselYn(0, 0.55) << endl;
+cout << "gsl_sf_bessel_I0(0.55) = " << gslsfbesselI0(0.55) << endl;
+cout << "gsl_sf_bessel_I1(0.55) = " << gslsfbesselI1(0.55) << endl;
+cout << "gsl_sf_bessel_In(0, 0.55) = " << gslsfbesselIn(0, 0.55) << endl;
+cout << "gsl_sf_bessel_I0_scaled(0.55) = " << gslsfbesselI0scaled(0.55) << endl;
+cout << "gsl_sf_bessel_I1_scaled(0.55) = " << gslsfbesselI1scaled(0.55) << endl;
+cout << "gsl_sf_bessel_In_scaled(0, 0.55) = " << gslsfbesselInscaled(0, 0.55) << endl;
+cout << "gsl_sf_bessel_K0(0.55) = " << gslsfbesselK0(0.55) << endl;
+cout << "gsl_sf_bessel_K1(0.55) = " << gslsfbesselK1(0.55) << endl;
+cout << "gsl_sf_bessel_Kn(0, 0.55) = " << gslsfbesselKn(0, 0.55) << endl;
+cout << "gsl_sf_bessel_K0_scaled(0.55) = " << gslsfbesselK0scaled(0.55) << endl;
+cout << "gsl_sf_bessel_K1_scaled(0.55) = " << gslsfbesselK1scaled(0.55) << endl;
+cout << "gsl_sf_bessel_Kn_scaled(0, 0.55) = " << gslsfbesselKnscaled(0, 0.55) << endl;
+cout << "gsl_sf_bessel_j0(0.55) = " << gslsfbesselj0(0.55) << endl;
+cout << "gsl_sf_bessel_j1(0.55) = " << gslsfbesselj1(0.55) << endl;
+cout << "gsl_sf_bessel_j2(0.55) = " << gslsfbesselj2(0.55) << endl;
+cout << "gsl_sf_bessel_jl(0, 0.55) = " << gslsfbesseljl(0, 0.55) << endl;
+cout << "gsl_sf_bessel_y0(0.55) = " << gslsfbessely0(0.55) << endl;
+cout << "gsl_sf_bessel_y1(0.55) = " << gslsfbessely1(0.55) << endl;
+cout << "gsl_sf_bessel_y2(0.55) = " << gslsfbessely2(0.55) << endl;
+cout << "gsl_sf_bessel_yl(0, 0.55) = " << gslsfbesselyl(0, 0.55) << endl;
+cout << "gsl_sf_bessel_i0_scaled(0.55) = " << gslsfbesseli0scaled(0.55) << endl;
+cout << "gsl_sf_bessel_i1_scaled(0.55) = " << gslsfbesseli1scaled(0.55) << endl;
+cout << "gsl_sf_bessel_i2_scaled(0.55) = " << gslsfbesseli2scaled(0.55) << endl;
+cout << "gsl_sf_bessel_il_scaled(0, 0.55) = " << gslsfbesselilscaled(0, 0.55) << endl;
+cout << "gsl_sf_bessel_k0_scaled(0.55) = " << gslsfbesselk0scaled(0.55) << endl;
+cout << "gsl_sf_bessel_k1_scaled(0.55) = " << gslsfbesselk1scaled(0.55) << endl;
+cout << "gsl_sf_bessel_k2_scaled(0.55) = " << gslsfbesselk2scaled(0.55) << endl;
+cout << "gsl_sf_bessel_kl_scaled(0, 0.55) = " << gslsfbesselklscaled(0, 0.55) << endl;
+cout << "gsl_sf_bessel_Jnu(0.55, 0.55) = " << gslsfbesselJnu(0.55, 0.55) << endl;
+cout << "gsl_sf_bessel_Ynu(0.55, 0.55) = " << gslsfbesselYnu(0.55, 0.55) << endl;
+cout << "gsl_sf_bessel_Inu_scaled(0.55, 0.55) = " << gslsfbesselInuscaled(0.55, 0.55) << endl;
+cout << "gsl_sf_bessel_Inu(0.55, 0.55) = " << gslsfbesselInu(0.55, 0.55) << endl;
+cout << "gsl_sf_bessel_Knu_scaled(0.55, 0.55) = " << gslsfbesselKnuscaled(0.55, 0.55) << endl;
+cout << "gsl_sf_bessel_Knu(0.55, 0.55) = " << gslsfbesselKnu(0.55, 0.55) << endl;
+cout << "gsl_sf_bessel_lnKnu(0.55, 0.55) = " << gslsfbessellnKnu(0.55, 0.55) << endl;
+cout << "gsl_sf_bessel_zero_J0(0) = " << gslsfbesselzeroJ0(0) << endl;
+cout << "gsl_sf_bessel_zero_J1(0) = " << gslsfbesselzeroJ1(0) << endl;
+cout << "gsl_sf_bessel_zero_Jnu(0.55, 0) = " << gslsfbesselzeroJnu(0.55, 0) << endl;
+cout << "gsl_sf_clausen(0.55) = " << gslsfclausen(0.55) << endl;
+cout << "gsl_sf_hydrogenicR_1(0.55, 0.55) = " << gslsfhydrogenicR1(0.55, 0.55) << endl;
+cout << "gsl_sf_dawson(0.55) = " << gslsfdawson(0.55) << endl;
+cout << "gsl_sf_debye_1(0.55) = " << gslsfdebye1(0.55) << endl;
+cout << "gsl_sf_debye_2(0.55) = " << gslsfdebye2(0.55) << endl;
+cout << "gsl_sf_debye_3(0.55) = " << gslsfdebye3(0.55) << endl;
+cout << "gsl_sf_debye_4(0.55) = " << gslsfdebye4(0.55) << endl;
+cout << "gsl_sf_debye_5(0.55) = " << gslsfdebye5(0.55) << endl;
+cout << "gsl_sf_debye_6(0.55) = " << gslsfdebye6(0.55) << endl;
+cout << "gsl_sf_dilog(0.55) = " << gslsfdilog(0.55) << endl;
+cout << "gsl_sf_multiply(0.55, 0.55) = " << gslsfmultiply(0.55, 0.55) << endl;
+cout << "gsl_sf_erfc(0.55) = " << gslsferfc(0.55) << endl;
+cout << "gsl_sf_log_erfc(0.55) = " << gslsflogerfc(0.55) << endl;
+cout << "gsl_sf_erf(0.55) = " << gslsferf(0.55) << endl;
+cout << "gsl_sf_erf_Z(0.55) = " << gslsferfZ(0.55) << endl;
+cout << "gsl_sf_erf_Q(0.55) = " << gslsferfQ(0.55) << endl;
+cout << "gsl_sf_hazard(0.55) = " << gslsfhazard(0.55) << endl;
+cout << "gsl_sf_exp(0.55) = " << gslsfexp(0.55) << endl;
+cout << "gsl_sf_exp_mult(0.55, 0.55) = " << gslsfexpmult(0.55, 0.55) << endl;
+cout << "gsl_sf_expm1(0.55) = " << gslsfexpm1(0.55) << endl;
+cout << "gsl_sf_exprel(0.55) = " << gslsfexprel(0.55) << endl;
+cout << "gsl_sf_exprel_2(0.55) = " << gslsfexprel2(0.55) << endl;
+cout << "gsl_sf_exprel_n(0, 0.55) = " << gslsfexpreln(0, 0.55) << endl;
+cout << "gsl_sf_expint_E1(0.55) = " << gslsfexpintE1(0.55) << endl;
+cout << "gsl_sf_expint_E2(0.55) = " << gslsfexpintE2(0.55) << endl;
+cout << "gsl_sf_expint_En(0, 0.55) = " << gslsfexpintEn(0, 0.55) << endl;
+cout << "gsl_sf_expint_E1_scaled(0.55) = " << gslsfexpintE1scaled(0.55) << endl;
+cout << "gsl_sf_expint_E2_scaled(0.55) = " << gslsfexpintE2scaled(0.55) << endl;
+cout << "gsl_sf_expint_En_scaled(0, 0.55) = " << gslsfexpintEnscaled(0, 0.55) << endl;
+cout << "gsl_sf_expint_Ei(0.55) = " << gslsfexpintEi(0.55) << endl;
+cout << "gsl_sf_expint_Ei_scaled(0.55) = " << gslsfexpintEiscaled(0.55) << endl;
+cout << "gsl_sf_Shi(0.55) = " << gslsfShi(0.55) << endl;
+cout << "gsl_sf_Chi(0.55) = " << gslsfChi(0.55) << endl;
+cout << "gsl_sf_expint_3(0.55) = " << gslsfexpint3(0.55) << endl;
+cout << "gsl_sf_Si(0.55) = " << gslsfSi(0.55) << endl;
+cout << "gsl_sf_Ci(0.55) = " << gslsfCi(0.55) << endl;
+cout << "gsl_sf_atanint(0.55) = " << gslsfatanint(0.55) << endl;
+cout << "gsl_sf_fermi_dirac_m1(0.55) = " << gslsffermidiracm1(0.55) << endl;
+cout << "gsl_sf_fermi_dirac_0(0.55) = " << gslsffermidirac0(0.55) << endl;
+cout << "gsl_sf_fermi_dirac_1(0.55) = " << gslsffermidirac1(0.55) << endl;
+cout << "gsl_sf_fermi_dirac_2(0.55) = " << gslsffermidirac2(0.55) << endl;
+cout << "gsl_sf_fermi_dirac_int(0, 0.55) = " << gslsffermidiracint(0, 0.55) << endl;
+cout << "gsl_sf_fermi_dirac_mhalf(0.55) = " << gslsffermidiracmhalf(0.55) << endl;
+cout << "gsl_sf_fermi_dirac_half(0.55) = " << gslsffermidirachalf(0.55) << endl;
+cout << "gsl_sf_fermi_dirac_3half(0.55) = " << gslsffermidirac3half(0.55) << endl;
+cout << "gsl_sf_fermi_dirac_inc_0(0.55, 0.55) = " << gslsffermidiracinc0(0.55, 0.55) << endl;
+cout << "gsl_sf_lngamma(0.55) = " << gslsflngamma(0.55) << endl;
+cout << "gsl_sf_gamma(0.55) = " << gslsfgamma(0.55) << endl;
+cout << "gsl_sf_gammastar(0.55) = " << gslsfgammastar(0.55) << endl;
+cout << "gsl_sf_gammainv(0.55) = " << gslsfgammainv(0.55) << endl;
+cout << "gsl_sf_taylorcoeff(0, 0.55) = " << gslsftaylorcoeff(0, 0.55) << endl;
+cout << "gsl_sf_fact(0) = " << gslsffact(0) << endl;
+cout << "gsl_sf_doublefact(0) = " << gslsfdoublefact(0) << endl;
+cout << "gsl_sf_lnfact(0) = " << gslsflnfact(0) << endl;
+cout << "gsl_sf_lndoublefact(0) = " << gslsflndoublefact(0) << endl;
+cout << "gsl_sf_lnchoose(0, 0) = " << gslsflnchoose(0, 0) << endl;
+cout << "gsl_sf_choose(0, 0) = " << gslsfchoose(0, 0) << endl;
+cout << "gsl_sf_lnpoch(0.55, 0.55) = " << gslsflnpoch(0.55, 0.55) << endl;
+cout << "gsl_sf_poch(0.55, 0.55) = " << gslsfpoch(0.55, 0.55) << endl;
+cout << "gsl_sf_pochrel(0.55, 0.55) = " << gslsfpochrel(0.55, 0.55) << endl;
+cout << "gsl_sf_gamma_inc_Q(0.55, 0.55) = " << gslsfgammaincQ(0.55, 0.55) << endl;
+cout << "gsl_sf_gamma_inc_P(0.55, 0.55) = " << gslsfgammaincP(0.55, 0.55) << endl;
+cout << "gsl_sf_gamma_inc(0.55, 0.55) = " << gslsfgammainc(0.55, 0.55) << endl;
+cout << "gsl_sf_lnbeta(0.55, 0.55) = " << gslsflnbeta(0.55, 0.55) << endl;
+cout << "gsl_sf_beta(0.55, 0.55) = " << gslsfbeta(0.55, 0.55) << endl;
+cout << "gsl_sf_beta_inc(0.55,0.55,0.55) = " << gslsfbetainc(0.55,0.55,0.55) << endl;
+cout << "gsl_sf_gegenpoly_1(0.55, 0.55) = " << gslsfgegenpoly1(0.55, 0.55) << endl;
+cout << "gsl_sf_gegenpoly_2(0.55, 0.55) = " << gslsfgegenpoly2(0.55, 0.55) << endl;
+cout << "gsl_sf_gegenpoly_3(0.55, 0.55) = " << gslsfgegenpoly3(0.55, 0.55) << endl;
+cout << "gsl_sf_gegenpoly_n(0,0.55,0.55) = " << gslsfgegenpolyn(0,0.55,0.55) << endl;
+cout << "gsl_sf_hyperg_0F1(0.55, 0.55) = " << gslsfhyperg0F1(0.55, 0.55) << endl;
+cout << "gsl_sf_hyperg_1F1_int(0,0,0.55) = " << gslsfhyperg1F1int(0,0,0.55) << endl;
+cout << "gsl_sf_hyperg_1F1(0.55,0.55,0.55) = " << gslsfhyperg1F1(0.55,0.55,0.55) << endl;
+cout << "gsl_sf_hyperg_U_int(0,0,0.55) = " << gslsfhypergUint(0,0,0.55) << endl;
+cout << "gsl_sf_hyperg_U(0.55,0.55,0.55) = " << gslsfhypergU(0.55,0.55,0.55) << endl;
+cout << "gsl_sf_hyperg_2F0(0.55,0.55,0.55) = " << gslsfhyperg2F0(0.55,0.55,0.55) << endl;
+cout << "gsl_sf_laguerre_1(0.55, 0.55) = " << gslsflaguerre1(0.55, 0.55) << endl;
+cout << "gsl_sf_laguerre_2(0.55, 0.55) = " << gslsflaguerre2(0.55, 0.55) << endl;
+cout << "gsl_sf_laguerre_3(0.55, 0.55) = " << gslsflaguerre3(0.55, 0.55) << endl;
+cout << "gsl_sf_laguerre_n(0,0.55,0.55) = " << gslsflaguerren(0,0.55,0.55) << endl;
+cout << "gsl_sf_lambert_W0(0.55) = " << gslsflambertW0(0.55) << endl;
+cout << "gsl_sf_lambert_Wm1(0.55) = " << gslsflambertWm1(0.55) << endl;
+cout << "gsl_sf_legendre_Pl(0, 0.55) = " << gslsflegendrePl(0, 0.55) << endl;
+cout << "gsl_sf_legendre_P1(0.55) = " << gslsflegendreP1(0.55) << endl;
+cout << "gsl_sf_legendre_P2(0.55) = " << gslsflegendreP2(0.55) << endl;
+cout << "gsl_sf_legendre_P3(0.55) = " << gslsflegendreP3(0.55) << endl;
+cout << "gsl_sf_legendre_Q0(0.55) = " << gslsflegendreQ0(0.55) << endl;
+cout << "gsl_sf_legendre_Q1(0.55) = " << gslsflegendreQ1(0.55) << endl;
+cout << "gsl_sf_legendre_Ql(0, 0.55) = " << gslsflegendreQl(0, 0.55) << endl;
+cout << "gsl_sf_legendre_Plm(0,0,0.55) = " << gslsflegendrePlm(0,0,0.55) << endl;
+cout << "gsl_sf_legendre_sphPlm(0,0,0.55) = " << gslsflegendresphPlm(0,0,0.55) << endl;
+cout << "gsl_sf_legendre_array_size(0, 0) = " << gslsflegendrearraysize(0, 0) << endl;
+cout << "gsl_sf_conicalP_half(0.55, 0.55) = " << gslsfconicalPhalf(0.55, 0.55) << endl;
+cout << "gsl_sf_conicalP_mhalf(0.55, 0.55) = " << gslsfconicalPmhalf(0.55, 0.55) << endl;
+cout << "gsl_sf_conicalP_0(0.55, 0.55) = " << gslsfconicalP0(0.55, 0.55) << endl;
+cout << "gsl_sf_conicalP_1(0.55, 0.55) = " << gslsfconicalP1(0.55, 0.55) << endl;
+cout << "gsl_sf_conicalP_sph_reg(0,0.55,0.55) = " << gslsfconicalPsphreg(0,0.55,0.55) << endl;
+cout << "gsl_sf_conicalP_cyl_reg(0,0.55,0.55) = " << gslsfconicalPcylreg(0,0.55,0.55) << endl;
+cout << "gsl_sf_legendre_H3d_0(0.55, 0.55) = " << gslsflegendreH3d0(0.55, 0.55) << endl;
+cout << "gsl_sf_legendre_H3d_1(0.55, 0.55) = " << gslsflegendreH3d1(0.55, 0.55) << endl;
+cout << "gsl_sf_legendre_H3d(0,0.55,0.55) = " << gslsflegendreH3d(0,0.55,0.55) << endl;
+cout << "gsl_sf_log(0.55) = " << gslsflog(0.55) << endl;
+cout << "gsl_sf_log_abs(0.55) = " << gslsflogabs(0.55) << endl;
+cout << "gsl_sf_log_1plusx(0.55) = " << gslsflog1plusx(0.55) << endl;
+cout << "gsl_sf_log_1plusx_mx(0.55) = " << gslsflog1plusxmx(0.55) << endl;
+cout << "gsl_sf_pow_int(0.55, 0) = " << gslsfpowint(0.55, 0) << endl;
+cout << "gsl_sf_psi_int(0) = " << gslsfpsiint(0) << endl;
+cout << "gsl_sf_psi(0.55) = " << gslsfpsi(0.55) << endl;
+cout << "gsl_sf_psi_1piy(0.55) = " << gslsfpsi1piy(0.55) << endl;
+cout << "gsl_sf_psi_1_int(0) = " << gslsfpsi1int(0) << endl;
+cout << "gsl_sf_psi_1(0.55) = " << gslsfpsi1(0.55) << endl;
+cout << "gsl_sf_psi_n(0, 0.55) = " << gslsfpsin(0, 0.55) << endl;
+cout << "gsl_sf_synchrotron_1(0.55) = " << gslsfsynchrotron1(0.55) << endl;
+cout << "gsl_sf_synchrotron_2(0.55) = " << gslsfsynchrotron2(0.55) << endl;
+cout << "gsl_sf_transport_2(0.55) = " << gslsftransport2(0.55) << endl;
+cout << "gsl_sf_transport_3(0.55) = " << gslsftransport3(0.55) << endl;
+cout << "gsl_sf_transport_4(0.55) = " << gslsftransport4(0.55) << endl;
+cout << "gsl_sf_transport_5(0.55) = " << gslsftransport5(0.55) << endl;
+cout << "gsl_sf_sin(0.55) = " << gslsfsin(0.55) << endl;
+cout << "gsl_sf_cos(0.55) = " << gslsfcos(0.55) << endl;
+cout << "gsl_sf_hypot(0.55, 0.55) = " << gslsfhypot(0.55, 0.55) << endl;
+cout << "gsl_sf_sinc(0.55) = " << gslsfsinc(0.55) << endl;
+cout << "gsl_sf_lnsinh(0.55) = " << gslsflnsinh(0.55) << endl;
+cout << "gsl_sf_lncosh(0.55) = " << gslsflncosh(0.55) << endl;
+cout << "gsl_sf_angle_restrict_symm(0.55) = " << gslsfanglerestrictsymm(0.55) << endl;
+cout << "gsl_sf_angle_restrict_pos(0.55) = " << gslsfanglerestrictpos(0.55) << endl;
+cout << "gsl_sf_zeta_int(0) = " << gslsfzetaint(0) << endl;
+cout << "gsl_sf_zeta(0.55) = " << gslsfzeta(0.55) << endl;
+cout << "gsl_sf_zetam1(0.55) = " << gslsfzetam1(0.55) << endl;
+cout << "gsl_sf_zetam1_int(0) = " << gslsfzetam1int(0) << endl;
+cout << "gsl_sf_hzeta(0.55, 0.55) = " << gslsfhzeta(0.55, 0.55) << endl;
+cout << "gsl_sf_eta_int(0) = " << gslsfetaint(0) << endl;
+cout << "gsl_sf_eta(0.55) = " << gslsfeta(0.55) << endl;
diff --git a/examples++-load/lapack.cpp b/examples++-load/lapack.cpp
index 0d28dbf..2c6d3f1 100644
--- a/examples++-load/lapack.cpp
+++ b/examples++-load/lapack.cpp
@@ -50,6 +50,23 @@ long lapack_inv(KNM<double>* A)
return info;
}
+long lapack_inv(KNM<Complex>* A)
+{
+ intblas n=A->N();
+ intblas m=A->M();
+ Complex *a=&(*A)(0,0);
+ intblas info;
+ intblas lda=n;
+ KN<intblas> ipiv(n);
+ intblas lw=10*n;
+ KN<Complex> w(lw);
+ ffassert(n==m);
+ zgetrf_(&n,&n,a,&lda,ipiv,&info);
+ if(info) return info;
+ zgetri_(&n,a,&lda,ipiv,w,&lw,&info);
+ return info;
+}
+
// (computation of the eigenvalues and right eigenvectors of a real nonsymmetric matrix)
long lapack_dgeev(KNM<double> *const &A,KN<Complex> *const &vp,KNM<Complex> *const &vectp)
{
@@ -949,8 +966,14 @@ Init::Init(){ // le constructeur qui ajoute la fonction "splitmesh3" a freefem
TheOperators->Add("<-", new OneOperator2<KNM<Complex>*,KNM<Complex>*,Mult<KNM<Complex >*> >( mult<Complex,true,0> ) );
Global.Add("inv","(",new OneOperator1<long,KNM<double>*>(lapack_inv));
- Global.Add("dgeev","(",new OneOperator3_<long,KNM<double>*,KN<Complex>*,KNM<Complex>*>(lapack_dgeev));
- Global.Add("zgeev","(",new OneOperator3_<long,KNM<Complex>*,KN<Complex>*,KNM<Complex>*>(lapack_zgeev));
+ Global.Add("inv","(",new OneOperator1<long,KNM<Complex>*>(lapack_inv));
+
+ Global.Add("dgeev","(",new OneOperator3_<long,KNM<double>*,KN<Complex>*,KNM<Complex>*>(lapack_dgeev));
+ Global.Add("zgeev","(",new OneOperator3_<long,KNM<Complex>*,KN<Complex>*,KNM<Complex>*>(lapack_zgeev));
+ // add FH
+ Global.Add("geev","(",new OneOperator3_<long,KNM<double>*,KN<Complex>*,KNM<Complex>*>(lapack_dgeev));
+ Global.Add("geev","(",new OneOperator3_<long,KNM<Complex>*,KN<Complex>*,KNM<Complex>*>(lapack_zgeev));
+
Global.Add("dggev","(",new OneOperator5_<long,KNM<double>*,KNM<double>*,KN<Complex>*,KN<double>*,KNM<Complex>*>(lapack_dggev));
Global.Add("dsygvd","(",new OneOperator4_<long,KNM<double>*,KNM<double>*,KN<double>*,KNM<double>*>(lapack_dsygvd));
Global.Add("dgesdd","(",new OneOperator4_<long,KNM<double>*,KNM<double>*,KN<double>*,KNM<double>*>(lapack_dgesdd));
diff --git a/examples++-load/lapack.edp b/examples++-load/lapack.edp
index 1fbbf08..4bd400f 100644
--- a/examples++-load/lapack.edp
+++ b/examples++-load/lapack.edp
@@ -1,97 +1,63 @@
-load "fflapack"
+load "lapack"
+// test of lapack load file ...
+// .......................
// load "fflapack" obsolete (F. Hecht version 3.8)
-{
+// use load "lapack"
+int nerr=0; // nomber of err ..
+// to set a full matrix ..
+macro SETM(A,i,j,fij)
+{
+ for(int i=0;i<A.n;++i)
+ for(int j=0;j<A.m;++j)
+ A(i,j)= (fij) ;
+}//EOM
+
+// The of Eigen Problem ..
+NewMacro TEST(Type,Typevp,vtype,ComputeEV)
+{
+cout << "\n\n ***************** VP \n\n\n";
int n=5;
-real[int,int] A(n,n),A1(n,n),B(n,n);
-for(int i=0;i<n;++i)
-for(int j=0;j<n;++j)
- A(i,j)= (i==j) ? n+1 : 1;
- A(0,n-1)=-100;
+Type[int,int] A(n,n),A1(n,n),B(n,n),Id(n,n);
+SETM(A,i,j,(i==j) ? n+1 : 1);
+SETM(Id,i,j,real(i==j));
+A(0,n-1)=vtype;
+
cout << A << endl;
A1=A^-1;
cout << A1 << endl;
- complex[int] vp(n);
- complex[int,int] VP(n,n),KK(n,n);
+Typevp[int] vp(n);
+Typevp[int,int] VP(n,n),KK(n,n);
- int nn= dgeev(A,vp,VP);
+int nn= ComputeEV(A,vp,VP);
cout << " vp = " <<vp << endl;
cout << " VP = " << VP << endl;
+
+ // verification ...
KK =0.;
for(int i=0;i<n;++i)
for(int j=0;j<n;++j)
for(int k=0;k<n;++k)
KK(i,j) += (A(i,k) - vp[j]* real(i==k) ) *VP(k,j);
- cout <<" KK " << KK << endl;
+ cout <<" ||KK|| " << KK.linfty << endl;
+ nerr += KK.linfty > 1e-9;
B=0;
-for(int i=0;i<n;++i)
- for(int j=0;j<n;++j)
- for(int k=0;k<n;++k)
- B(i,j) +=A(i,k)*A1(k,j);
-cout << B << endl;
- B = A*A1; // version 3.13
-cout << B << " ++++++ "<< endl;
-// A1+A^-1; attention ne marche pas
-
+B = A*A1; // version 3.13
+B -= Id;
+cout <<" ||A*A1-Id|| " << B.linfty << endl;
+nerr += B.linfty > 1e-9;
inv(A1);
-cout << A1 << endl;
+A1 -= A;
+cout << "|| inv(A1) - A ||" << A1.linfty << endl;
+nerr += A1.linfty > 1e-9;
}
-{
- cout << " ***************** complex VP \n";
-int n=5;
-complex[int,int] A(n,n),A1(n,n),B(n,n);
-for(int i=0;i<n;++i)
-for(int j=0;j<n;++j)
- A(i,j)= (i==j) ? n+1 : 1;
-A(0,n-1)=-100i;
-cout << A << endl;
-A1=A^-1;
-cout << A1 << endl;
-
- complex[int] vp(n);
- complex[int,int] VP(n,n),KK(n,n);
+EndMacro
- int nn= zgeev(A,vp,VP);
- cout << " vp = " <<vp << endl;
- cout << " VP = " << VP << endl;
- KK =0.;
- for(int i=0;i<n;++i)
- for(int j=0;j<n;++j)
- for(int k=0;k<n;++k)
- KK(i,j) += (A(i,k) - vp[j]* real(i==k) ) *VP(k,j);
- cout <<" KK " << KK << endl;
- assert( KK.linfty < 1e-10);
-B=0;
-for(int i=0;i<n;++i)
- for(int j=0;j<n;++j)
- for(int k=0;k<n;++k)
- B(i,j) +=A(i,k)*A1(k,j);
-cout << B << endl;
-// A1+A^-1; attention ne marche pas
-
-//inv(A1);
-//cout << A1 << endl;
- cout << " ***************** fin --complex VP \n";
-}
+TEST(real,complex,-100.,dgeev)
+TEST(complex,complex,100i,zgeev)
+TEST(real,real,1,dsyev)
+assert(nerr==0);
-{
- int n=5;
- complex[int,int] A(n,n),A1(n,n),B(n,n);
- for(int i=0;i<n;++i)
- for(int j=0;j<n;++j)
- A(i,j)= (i==j) ? (n+1)*1i : 1+0i;
- cout << A << endl;
- A1=A^-1;
- cout << A1 << endl;
-
- B=0;
- for(int i=0;i<n;++i)
- for(int j=0;j<n;++j)
- for(int k=0;k<n;++k)
- B(i,j) +=A(i,k)*A1(k,j);
- cout << B << endl;
- // A1+A^-1; attention ne marche pas
-}
// FFCS - value for regression checks
real regtest=0;
@@ -100,7 +66,6 @@ real regtest=0;
int n=5;
real [int,int] A(n,n), B(n,n), C(n,n);
-macro SETM(A,i,j,fij) { for(int i=0;i<A.n;++i) for(int j=0;j<A.m;++j) A(i,j)= (fij) ;}//
SETM(C,i,j,1./(1+i+j)) ;
SETM(B,i,j,i==j?2.:1./n) ;
diff --git a/examples++-load/msh3.cpp b/examples++-load/msh3.cpp
index 7b1f9aa..780b174 100644
--- a/examples++-load/msh3.cpp
+++ b/examples++-load/msh3.cpp
@@ -4899,11 +4899,13 @@ struct Op_trunc_mesh3 : public OneOperator {
class Op: public E_F0mps {
public:
static basicAC_F0::name_and_type name_param[] ;
- static const int n_name_param =2;
+ static const int n_name_param =4;
Expression nargs[n_name_param];
Expression getmesh,bbb;
long arg(int i,Stack stack,long a) const{ return nargs[i] ? GetAny<long>( (*nargs[i])(stack) ): a;}
+ KN<long> * arg(int i,Stack stack) const{ return nargs[i] ? GetAny<KN<long> *>( (*nargs[i])(stack) ): 0;}
+
Op(const basicAC_F0 & args,Expression t,Expression b) : getmesh(t),bbb(b)
{ args.SetNameParam(n_name_param,name_param,nargs); }
AnyType operator()(Stack s) const ;
@@ -4918,8 +4920,10 @@ struct Op_trunc_mesh3 : public OneOperator {
basicAC_F0::name_and_type Op_trunc_mesh3::Op::name_param[Op_trunc_mesh3::Op::n_name_param] =
{
{ "split", &typeid(long)},
- { "label", &typeid(long)}
-
+ { "label", &typeid(long)},
+ { "new2old", &typeid(KN<long>*)}, // ajout FH pour P. Jovilet jan 2014
+ { "old2new", &typeid(KN<long>*)} // ajout FH pour P. Jovilet jan 2014
+
};
@@ -5260,11 +5264,14 @@ AnyType Op_trunc_mesh3::Op::operator()(Stack stack) const {
Mesh3 &Th = *pTh;
long kkksplit =arg(0,stack,1L);
long label =arg(1,stack,2L);
+ KN<long> * pn2o = arg(2,stack);
+KN<long> * po2n = arg(3,stack);
+
KN<int> split(Th.nt);
split=kkksplit;
MeshPoint *mp= MeshPointStack(stack),mps=*mp;
long kk=0;
-
+ long ks=kkksplit*kkksplit*kkksplit;
for (int k=0;k<Th.nt;k++)
{
const Tet & K( Th.elements[k] );
@@ -5278,10 +5285,33 @@ AnyType Op_trunc_mesh3::Op::operator()(Stack stack) const {
cout << " -- Trunc mesh: Nb of Tetrahedrons = " << kk << " label=" <<label <<endl;
Mesh3 * Tht = truncmesh(Th,kkksplit,split,false,label);
+ if(pn2o)
+ {
+ pn2o->resize(kk*ks);
+ KN<long> &n2o(*pn2o);
+ int l=0;
+ for(int k=0; k< Th.nt; ++k)
+ if( split[k] )
+ for(int i=0; i< ks; ++i)
+ n2o[l++] = k;
+ }
+ if(po2n)
+ {
+ po2n->resize(Th.nt);
+ KN<long> &o2n(*po2n);
+ int l=0;
+ for(int k=0; k< Th.nt; ++k)
+ if( split[k] )
+ {
+ o2n[k] = l;
+ l+=ks;
+ }
+ else o2n[k]=-1;
+ }
- Add2StackOfPtr2FreeRC(stack,Tht);// 07/2008 FH
+ Add2StackOfPtr2FreeRC(stack,Tht);// 07/2008 FH
*mp=mps;
- return Tht;
+ return Tht;
};
//////////////////
diff --git a/examples++-mpi/._AddLayer2d.idp b/examples++-mpi/._AddLayer2d.idp
new file mode 100644
index 0000000..f7a8f68
Binary files /dev/null and b/examples++-mpi/._AddLayer2d.idp differ
diff --git a/examples++-mpi/Laplace3d-hips.edp b/examples++-mpi/Laplace3d-hips.edp
index b2d24f5..66c39ae 100644
--- a/examples++-mpi/Laplace3d-hips.edp
+++ b/examples++-mpi/Laplace3d-hips.edp
@@ -10,6 +10,7 @@ int[int] iparm(16);
real[int] dparm(6);
iparm=-1;
dparm=-1;
+/* the sol trap if we use...
iparm[0]=1; // use iterative solver 0 => trap why ???? FH .....
iparm[1]=0; // PCG as Krylov method
iparm[4]=1; // Matrix are symmetric
@@ -20,7 +21,7 @@ dparm[1]=5e-4; // Threshold in ILUT
dparm[2]=5e-4; // Threshold for Schur preconditionner
dparm[4]=1e-2; // drop tol
dparm[5]=1e-2; // drop tol
-
+*/
int nn=10;
mesh Th2=square(nn,nn,region=0);
fespace Vh2(Th2,P2);
diff --git a/examples++-tutorial/._mesh.edp b/examples++-tutorial/._mesh.edp
new file mode 100644
index 0000000..f7a8f68
Binary files /dev/null and b/examples++-tutorial/._mesh.edp differ
diff --git a/examples++-tutorial/._sparse-matrix.edp b/examples++-tutorial/._sparse-matrix.edp
new file mode 100644
index 0000000..f7a8f68
Binary files /dev/null and b/examples++-tutorial/._sparse-matrix.edp differ
diff --git a/examples++-tutorial/mesh.edp b/examples++-tutorial/mesh.edp
index 87eb49d..6b9098a 100644
--- a/examples++-tutorial/mesh.edp
+++ b/examples++-tutorial/mesh.edp
@@ -127,6 +127,7 @@ plot(rh,ps="lshape.eps");
// ------------------------------------------------------------
{ // trunc mesh tools exemples
mesh Th=square(3,3);
+ int[int] n2o(1);
fespace Vh(Th,P1);
Vh u;
int i,n=u.n;
@@ -135,8 +136,9 @@ plot(rh,ps="lshape.eps");
{
u[][i]=1;
plot(u,wait=1);
- mesh Shi=trunc(Th,abs(u)>1e-10,split=5,label=2);
+ mesh Shi=trunc(Th,abs(u)>1e-10,split=2,label=2,new2old=n2o);
plot(Th,Shi,wait=1,ps="trunc"+i+".eps");
+ cout << " n2o " << n2o << endl; // where the element come
u[][i]=0;
}
}
diff --git a/examples++-tutorial/sparse-matrix.edp b/examples++-tutorial/sparse-matrix.edp
index 5bb4483..c032b27 100644
--- a/examples++-tutorial/sparse-matrix.edp
+++ b/examples++-tutorial/sparse-matrix.edp
@@ -227,3 +227,15 @@ aM[9]= MM;
cout << MM << endl;
MM.resize(10,100);
cout << MM << endl;
+
+{ // test renumbering of sub mesh ..
+ func Pk=P2;
+ int[int] n2ok(1);
+ mesh ThC = trunc(Th,x < 0.5,new2old=n2ok);
+ fespace VFh(Th,Pk);
+ fespace VCh(ThC,Pk);
+ verbosity= 100;
+ int[int] n2o=restrict(VCh,VFh,n2ok);
+ cout << " n2o " << n2o << endl;
+
+}
diff --git a/src/bamglib/Mesh2.cpp b/src/bamglib/Mesh2.cpp
index 9d52828..bb69b1c 100644
--- a/src/bamglib/Mesh2.cpp
+++ b/src/bamglib/Mesh2.cpp
@@ -1696,8 +1696,11 @@ Int4 Triangles::SplitInternalEdgeWithBorderVertices()
nbv = iv;
}
if (NbSplitEdge > nbv-nbvold)
+ {
cout << " Warning not enough vertices to split all internal edges " << endl
<< " we lost " << NbSplitEdge - ( nbv-nbvold) << " Edges Sorry " << endl;
+ warning = 2;
+ }
if (verbosity>2)
cout << "SplitInternalEdgeWithBorderVertices: Number of splited edge " << NbSplitEdge << endl;
return NbSplitEdge;
@@ -2885,6 +2888,7 @@ void Triangles::FindSubDomain(int OutSide=0)
break;}
Int4 it = Number(t);
if (mark[it] >=0) {
+
if(verbosity>10)
cerr << " Warning: the sub domain " << i << " ref = " << subdomains[i].ref
<< " is previouly defined with " <<mark[it] << " ref = " << subdomains[mark[it]].ref
@@ -3201,7 +3205,7 @@ void Triangles::PreInit(Int4 inbvx,char *fname)
CrackedEdges =0;
nbe = 0;
name = fname ;
-
+ warning=0;
if (inbvx) {
vertices=new Vertex[nbvx];
assert(vertices);
diff --git a/src/bamglib/Mesh2.h b/src/bamglib/Mesh2.h
index 315969a..3b5eee8 100644
--- a/src/bamglib/Mesh2.h
+++ b/src/bamglib/Mesh2.h
@@ -794,6 +794,7 @@ public:
Vertex ** ordre;
SubDomain * subdomains;
ListofIntersectionTriangles lIntTria;
+ int warning ;
// end of variable
Triangles(Int4 i);//:BTh(*this),Gh(*new Geometry()){PreInit(i);}
diff --git a/src/femlib/._RNM.hpp b/src/femlib/._splitsimplex.cpp
similarity index 100%
copy from src/femlib/._RNM.hpp
copy to src/femlib/._splitsimplex.cpp
diff --git a/src/femlib/FESpacen.cpp b/src/femlib/FESpacen.cpp
index 38a70fb..c3bccb6 100644
--- a/src/femlib/FESpacen.cpp
+++ b/src/femlib/FESpacen.cpp
@@ -565,8 +565,8 @@ template<class MMesh>
KN<R> GFESpace<MMesh>::newSaveDraw(const KN_<R> & U,int componante,int & lg,KN<Rd> &Psub,KN<int> &Ksub,int op_U) const
{
const int d = Rd::d;
- Rd *Ps;
- int *Ks;
+ Rd *Ps=0;
+ int *Ks=0;
int nsb = TFE[0]->nbsubdivision;
int nvsub,nksub;
SplitSimplex<Rd>(nsb, nvsub, Ps, nksub , Ks);
diff --git a/src/femlib/MatriceCreuse.hpp b/src/femlib/MatriceCreuse.hpp
index 048828d..7dbae76 100644
--- a/src/femlib/MatriceCreuse.hpp
+++ b/src/femlib/MatriceCreuse.hpp
@@ -151,11 +151,11 @@ public:
}
virtual R & operator() (int i,int j) =0;
- virtual void call(int ,int ie,int label,void * data) =0; //
+ virtual void call(int ,int ie,int label,void * data,void *Q=0) =0; //
const LinearComb<pair<MGauche,MDroit>,C_F0> * bilinearform;
- MatriceElementaire & operator()(int k,int ie,int label,void * s=0) {
- call(k,ie,label,s);
+ MatriceElementaire & operator()(int k,int ie,int label,void * s=0,void *B=0) {
+ call(k,ie,label,s,B);
return *this;}
};
@@ -227,8 +227,8 @@ public:
~MatriceElementaireFES() {}
const LinearComb<pair<MGauche,MDroit>,C_F0> * bilinearform;
- MatriceElementaireFES & operator()(int k,int ie,int label,void * s=0) {
- this->call(k,ie,label,s);
+ MatriceElementaireFES & operator()(int k,int ie,int label,void * s=0,void *Q=0) {
+ this->call(k,ie,label,s,Q);
return *this;}
};
@@ -247,16 +247,18 @@ public:
typedef typename FESpace::Mesh Mesh;
typedef typename FESpace::QFElement QFElement;
typedef typename FESpace::QFBorderElement QFBorderElement;
- typedef typename FESpace::FElement FElement;
+ typedef typename FESpace::FElement FElement;
+ typedef typename FESpace::Mesh::Rd Rd;
+
R & operator() (int i,int j) {return this->a[i*this->m+j];}
// MatPleineElementFunc element;
- void (* element)(MatriceElementairePleine &,const FElement &,const FElement &, double*,int ie,int label,void *) ;
- void (* faceelement)(MatriceElementairePleine &,const FElement &,const FElement &,const FElement &,const FElement &, double*,int ie,int iee, int label,void *) ;
- void call(int k,int ie,int label,void *);
+ void (* element)(MatriceElementairePleine &,const FElement &,const FElement &, double*,int ie,int label,void *,Rd *) ;
+ void (* faceelement)(MatriceElementairePleine &,const FElement &,const FElement &,const FElement &,const FElement &, double*,int ie,int iee, int label,void *,Rd *) ;
+ void call(int k,int ie,int label,void *,void *B);
- MatriceElementairePleine & operator()(int k,int ie,int label,void * stack=0)
- {call(k,ie,label,stack);return *this;}
+ MatriceElementairePleine & operator()(int k,int ie,int label,void * stack=0,Rd *Q=0)
+ {call(k,ie,label,stack,Q);return *this;}
MatriceElementairePleine(const FESpace & VVh,
const QFElement & fit=*QFElement::Default,
const QFBorderElement & fie =*QFBorderElement::Default)
@@ -306,12 +308,12 @@ public:
typedef typename FESpace::QFElement QFElement;
typedef typename FESpace::QFBorderElement QFBorderElement;
typedef typename FESpace::FElement FElement;
-
+ typedef typename FESpace::Mesh::Rd Rd;
R & operator()(int i,int j)
{return j < i ? this->a[(i*(i+1))/2 + j] : this->a[(j*(j+1))/2 + i] ;}
- void (* element)(MatriceElementaireSymetrique &,const FElement &, double*,int ie,int label,void *) ;
- void (* mortar)(MatriceElementaireSymetrique &,const FMortar &,void *) ;
- void call(int k,int ie,int label,void * stack);
+ void (* element)(MatriceElementaireSymetrique &,const FElement &, double*,int ie,int label,void *,Rd *) ;
+ void (* mortar)(MatriceElementaireSymetrique &,const FMortar &,void *) ;
+ void call(int k,int ie,int label,void * stack,void *B);
MatriceElementaireSymetrique(const FESpace & VVh,
const QFElement & fit=*QFElement::Default,
const QFBorderElement & fie =*QFBorderElement::Default)
@@ -321,8 +323,8 @@ public:
new int[VVh.MaximalNbOfDF()],this->Symmetric,
fit,fie),
element(0),mortar(0) {}
- MatriceElementaireSymetrique & operator()(int k,int ie,int label,void * stack=0)
- {this->call(k,ie,label,stack);return *this;};
+ MatriceElementaireSymetrique & operator()(int k,int ie,int label,void * stack=0,Rd *B=0)
+ {this->call(k,ie,label,stack,B);return *this;};
};
diff --git a/src/femlib/MatriceCreuse_tpl.hpp b/src/femlib/MatriceCreuse_tpl.hpp
index be8d691..c93ae6a 100644
--- a/src/femlib/MatriceCreuse_tpl.hpp
+++ b/src/femlib/MatriceCreuse_tpl.hpp
@@ -136,7 +136,7 @@ inline int BuildMEK_KK(const int l,int *p,int *pk,int *pkk,const FElement * pKE
} // BuildMEK_KK
template<class R,class FES>
-void MatriceElementairePleine<R,FES>::call(int k,int ie,int label,void * stack) {
+void MatriceElementairePleine<R,FES>::call(int k,int ie,int label,void * stack,void *B) {
for (int i=0;i<this->lga;i++)
this->a[i]=0;
if(this->onFace)
@@ -154,7 +154,7 @@ void MatriceElementairePleine<R,FES>::call(int k,int ie,int label,void * stack)
this->n=this->m=BuildMEK_KK<FElement>(this->lnk,this->ni,this->nik,this->nikk,&Kv,0);
int n2 =this->m*this->n;
for (int i=0;i<n2;i++) this->a[i]=0;
- faceelement(*this,Kv,Kv,Kv,Kv,this->data,ie,iie,label,stack);
+ faceelement(*this,Kv,Kv,Kv,Kv,this->data,ie,iie,label,stack,reinterpret_cast<Rd*>(B));
}
else
{
@@ -162,7 +162,7 @@ void MatriceElementairePleine<R,FES>::call(int k,int ie,int label,void * stack)
this->n=this->m=BuildMEK_KK<FElement>(this->lnk,this->ni,this->nik,this->nikk,&Kv,&KKv);
- faceelement(*this,Kv,KKv,Kv,KKv,this->data,ie,iie,label,stack);
+ faceelement(*this,Kv,KKv,Kv,KKv,this->data,ie,iie,label,stack,reinterpret_cast<Rd*>(B));
}
}
@@ -189,20 +189,20 @@ void MatriceElementairePleine<R,FES>::call(int k,int ie,int label,void * stack)
this->m=nbdf;
int n2 =this->m*this->n;
for (int i=0;i<n2;i++) this->a[i]=0;
- element(*this,Ku,Kv,this->data,ie,label,stack);
+ element(*this,Ku,Kv,this->data,ie,label,stack,reinterpret_cast<Rd*>(B));
}
else
{
int n2 =this->m*this->n;
for (int i=0;i<n2;i++) this->a[i]=0;
- element(*this,Kv,Kv,this->data,ie,label,stack);
+ element(*this,Kv,Kv,this->data,ie,label,stack,reinterpret_cast<Rd*>(B));
// call the elementary mat
}
}
}
template<class R,class FES>
-void MatriceElementaireSymetrique<R,FES>::call(int k,int ie,int label,void * stack) {
+void MatriceElementaireSymetrique<R,FES>::call(int k,int ie,int label,void * stack,void *B) {
// mise a zero de la matrice elementaire, plus sur
for (int i=0;i<this->lga;i++)
this->a[i]=0;
@@ -221,7 +221,7 @@ void MatriceElementaireSymetrique<R,FES>::call(int k,int ie,int label,void * sta
this->ni[i] = K(i); // copy the numbering
this->m=this->n = nbdf;
- element(*this,K,this->data,ie,label,stack);
+ element(*this,K,this->data,ie,label,stack,static_cast<Rd*>(B));
}// call the elementary mat
else
{
diff --git a/src/femlib/RNM.hpp b/src/femlib/RNM.hpp
index b3895f6..5cfb734 100644
--- a/src/femlib/RNM.hpp
+++ b/src/femlib/RNM.hpp
@@ -159,7 +159,7 @@ inline float real(const float &x){return x;}
template<class T> T real(const complex<T>& v){ return std::real(v);}
inline double norm2(const double x){return x*x;}
inline float norm2(const float x){return x*x;}
-template<class T> T norm2(const complex<T>& v){ return norm(v);}
+template<class T> T norm2(const complex<T>& v){ return std::norm(v);}
template<class T> inline complex<T> conj(const complex<T>& v){ return std::conj<T>(v);}
template<class T> inline T Min (const T &a,const T &b){return a < b ? a : b;}
diff --git a/src/femlib/splitsimplex.cpp b/src/femlib/splitsimplex.cpp
index 6893785..8ba28c1 100644
--- a/src/femlib/splitsimplex.cpp
+++ b/src/femlib/splitsimplex.cpp
@@ -217,7 +217,7 @@ void SplitSimplex(int N,R3 *P,int *tet,int op=0,R3* Khat=0)
}
}
- if(verbosity>5)
+ if(verbosity>199)
{
cout << " SplitSimplex " << endl;
@@ -245,7 +245,7 @@ void SplitSurfaceSimplex(int N,int &ntri2,int *&tri)
// face i=0
int l=0;
- if(verbosity>100)
+ if(verbosity>200)
cout << "face i=0" << endl;
for (int i=0;i<N;++i)
for (int j=0;j<N;++j){
@@ -262,11 +262,11 @@ void SplitSurfaceSimplex(int N,int &ntri2,int *&tri)
tri[l++]= op+NumSimplex3(0,N-i-1,N-j);
}
//cout << "i,j " << i << "," << j << endl;
- if(verbosity>100)
+ if(verbosity>200)
cout << "l="<< l/3 << " "<< tri[l-3] <<" "<< tri[l-2] <<" "<< tri[l-1] <<" "<< endl;
}
// face j=0
- if(verbosity>100)
+ if(verbosity>200)
cout << "face j=0" << endl;
for (int i=0;i<N;++i)
for (int j=0;j<N;++j){
@@ -283,11 +283,11 @@ void SplitSurfaceSimplex(int N,int &ntri2,int *&tri)
tri[l++]= op+NumSimplex3(N-i,0,N-j-1);
}
//cout << "i,j " << i << "," << j << endl;
- if(verbosity>100)
+ if(verbosity>200)
cout << "l="<< l/3 << " "<< tri[l-3] <<" "<< tri[l-2] <<" "<< tri[l-1] <<" "<< endl;
}
// face k=0
- if(verbosity>100)
+ if(verbosity>200)
cout << "face k=0" << endl;
for (int i=0;i<N;++i)
for (int j=0;j<N;++j){
@@ -306,11 +306,11 @@ void SplitSurfaceSimplex(int N,int &ntri2,int *&tri)
//tri[l++]= op+NumSimplex3(N-i,N-j-1,0);
}
//cout << "i,j " << i << "," << j << endl;
- if(verbosity>100)
+ if(verbosity>200)
cout << "l="<< l/3 << " "<< tri[l-3] <<" "<< tri[l-2] <<" "<< tri[l-1] <<" "<< endl;
}
// face i+j+k=1
- if(verbosity>100)
+ if(verbosity>200)
cout << "dernier face " << endl;
for (int k=0;k<N;++k)
for (int j=0;j<N;++j){
@@ -328,10 +328,10 @@ void SplitSurfaceSimplex(int N,int &ntri2,int *&tri)
tri[l++]= op+NumSimplex3( i-1, N-j, N-k);
tri[l++]= op+NumSimplex3( i, N-j, N-k-1);
}
- if(verbosity>100)
+ if(verbosity>200)
cout << "l="<< l/3 << " "<< tri[l-3] <<" "<< tri[l-2] <<" "<< tri[l-1] <<" "<< endl;
}
- if(verbosity>100)
+ if(verbosity>200)
cout << "l= " << l << " ntri=" << ntri << endl;
assert( l == ntri);
}
@@ -399,7 +399,7 @@ void SplitSimplex(int N,int & nv, R2 *& P, int & nk , int *& K)
template<class Rd>
void SplitSimplex(int N,int & nv, Rd *& P, int & nk , int *& K)
{
- const int d = Rd::d;
+ const int d = Rd::d,d1 =d+1;
int cas = (N>0) ? 1 : d+1;
assert(N);
N=abs(N);
@@ -412,22 +412,37 @@ void SplitSimplex(int N,int & nv, Rd *& P, int & nk , int *& K)
}
nv = cas*nv1;
nk = cas*nk1;
- P = new Rd[nv];
- K = new int[nk*(d+1)];
+ P = new Rd[nv]; // no bug correct jan 2024 FH (thank to OP)
+ K = new int[nk*d1]; // no bug correct jan 2024 FH (thank to OP)
if( cas ==1)
SplitSimplex( N, P,K);
else
{
- Rd G=Rd::diag(1./(d+1));
+ Rd G=Rd::diag(1./(d1));
for(int i=0;i<=d;++i)
{
Rd Khat[d+1];
for (int j=1;j<=d;++j)
- Khat[j][j]=1;
+ Khat[j][j-1]=1;// bug correct jan 2024 FH (thank to OP)
Khat[i]=G;
- SplitSimplex( N, P,K+nk1*i,nv1*i,Khat);
+ SplitSimplex( N, P,K+(nk1*d1)*i,nv1*i,Khat); // FH no recursion here ...
}
}
+ if(verbosity>99)
+ {
+ cout << "SplitSimplex : nv =" << nv << " nk :" << nk << " " << N << endl ;
+ for(int i=0; i< nv ; ++i)
+ cout << i << " / " << P[i] << endl;
+
+ for(int k=0,kk=0; k < nk; ++k)
+ {
+ cout << k << " " << kk << " : ";
+ for(int m=0;m<d+1;++m)
+ cout << K[kk++] << " " ;
+ cout << endl;
+ }
+
+ }
}
template void SplitSimplex<R1>(int N,int & nv, R1 *& P, int & nk , int *& K);
diff --git a/src/femlib/._RNM.hpp b/src/fflib/._AFunction.cpp
similarity index 100%
copy from src/femlib/._RNM.hpp
copy to src/fflib/._AFunction.cpp
diff --git a/src/femlib/._RNM.hpp b/src/fflib/._lgfem.cpp
similarity index 100%
copy from src/femlib/._RNM.hpp
copy to src/fflib/._lgfem.cpp
diff --git a/src/femlib/._RNM.hpp b/src/fflib/._lgmat.cpp
similarity index 100%
copy from src/femlib/._RNM.hpp
copy to src/fflib/._lgmat.cpp
diff --git a/src/femlib/._RNM.hpp b/src/fflib/._lgmesh.cpp
similarity index 100%
copy from src/femlib/._RNM.hpp
copy to src/fflib/._lgmesh.cpp
diff --git a/src/femlib/._RNM.hpp b/src/fflib/._problem.cpp
similarity index 100%
rename from src/femlib/._RNM.hpp
rename to src/fflib/._problem.cpp
diff --git a/src/fflib/AFunction.cpp b/src/fflib/AFunction.cpp
index 4defd2c..0a181c3 100644
--- a/src/fflib/AFunction.cpp
+++ b/src/fflib/AFunction.cpp
@@ -1017,6 +1017,7 @@ void Init_map_type()
Global.New("searchMethod",CPValue<long>(searchMethod)); //pichon
Global.New("cout",CConstant<ostream*>(&cout));
+ Global.New("cerr",CConstant<ostream*>(&cerr));// add jan 2014 FH.
Global.New("cin",CConstant<istream*>(&cin));
Global.New("append",CConstant<ios::openmode>(ios::app));
Global.New("endl",CConstant<const char*>("\n"));
@@ -1430,6 +1431,8 @@ void Init_map_type()
Global.Add("max","(",new OneOperator2_<long,long>(Max));
Global.Add("min","(",new OneOperator2_<long,long>(Min));
Global.Add("atan2","(",new OneOperator2<double>(atan2));
+ Global.Add("hypot","(",new OneOperator2<double>(hypot));// add Jan 2014
+
Global.Add("atan","(",new OneOperator2<double>(atan2));
Global.Add("sqrt","(",new OneOperator1<double>(sqrt,2));
Global.Add("abs","(",new OneOperator1<double>(Abs));
diff --git a/src/fflib/lgmat.cpp b/src/fflib/lgmat.cpp
index 628797e..c92eabd 100644
--- a/src/fflib/lgmat.cpp
+++ b/src/fflib/lgmat.cpp
@@ -276,16 +276,180 @@ struct Op2_ListMMadd: public binary_function< Matrice_Creuse<R> *,
};
+// Fin Add FH Houston --------
+
+// for Jolivet to build restriction jan 2014
+// t[int] I= restrict(VCh,VGh,IPG); // ou
+template<class pfes>
+class RestrictArray : public OneOperator { public:
+ template< typename T > struct Base { typedef T B; };
+ template< typename T > struct Base< T* >{ typedef T B;};
+
+ typedef typename Base<pfes>::B::FESpace FESpace;
+ typedef typename FESpace::FElement FElement;
+ // typedef FESpace FESpace;
+
+ class Op : public E_F0info { public: // passe de l'info ..
+ typedef pfes * A;
+ Expression a,b,c,d;
+ // if c = 0 => a,b FESpace
+ // if c != a FESpace et b,c KN_<double>
+ static const int n_name_param =0;
+ // static basicAC_F0::name_and_type name_param[] ;
+ Expression nargs[n_name_param];
+ bool arg(int i,Stack stack,bool a) const{ return nargs[i] ? GetAny<bool>( (*nargs[i])(stack) ): a;}
+ long arg(int i,Stack stack,long a) const{ return nargs[i] ? GetAny<long>( (*nargs[i])(stack) ): a;}
+ KN_<long> arg(int i,Stack stack,KN_<long> a ) const{ return nargs[i] ? GetAny<KN_<long> >( (*nargs[i])(stack) ): a;}
+
+ public:
+ Op(const basicAC_F0 & args,Expression aa,Expression bb,Expression cc) : a(aa),b(bb),c(cc),d(0) {
+ args.SetNameParam(n_name_param,0,nargs);
+
+ }
+ /*
+ AnyType operator()(Stack stack) const
+ {
+ if( verbosity>9) cout << " -- RestrictArray "<< endl;
+ pfes * pCUh = GetAny< pfes * >((* a)(stack));
+ pfes * pFVh = GetAny< pfes * >((* b)(stack));
+ // verif same FE.
+ KN_<long> ncf= GetAny< KN_<long> >((* c)(stack));
+ FESpace * pVCh = **pCUh;
+ FESpace * pVFh = **pFVh;
+ FESpace VCh = *pVCh;
+ FESpace VFh = *pVFh;
+ long neC = VCh.NbOfElements ;
+ long neF = VFh.NbOfElements ;
+ long ndfC = VCh.NbOfDF ;
+ long ndfF = VFh.NbOfDF ;
+
+ KN_<long> nc2f= ncf;
+
+ KN<long> *pnum=new KN<long>(ndfC);
+ KN<long> inj=*pnum;
+ inj = -1; // un set ..
+ if( verbosity>9) cout<< " ne =" << neC << " " << neF << endl;
+
+ for(int kc=0; kc <VCh.NbOfElements; kc++)
+ {
+
+ int kf = nc2f(kc);
+ FElement KC(pVCh,kc);
+ FElement KF(pVFh,kf);
+
+ int ndofKC = KC.NbDoF() ;
+ int ndofKF = KF.NbDoF() ;
+ if( verbosity>99) cout << kc << " " << kf << " : " <<ndofKC << " " << ndofKF << endl;
+ ffassert(ndofKC== ndofKF );
+ ffassert( kf >= 0 && kf < neF);
+ ffassert( kc >= 0 && kc< neC);
+
+ for(int df=0; df<ndofKC; df++)
+ {
+ int dfC =KC(df), dfF=KF(df);
+ if( verbosity>99) cout << dfC <<" -> "<< dfF << endl;
+ assert(dfC >= 0 && dfC < ndfC);
+ inj[dfC] = dfF;
+ }
+
+ }
+
+ if( verbosity>9) cout << " restrict: Inject= " << inj << endl;
+ ffassert(inj.min() != -1);
+ //Add2StackOfPtr2FreeRC(stack,pnum);
+
+ return pnum;
+ }
+ */
+ };
+ RestrictArray() : OneOperator( atype<const typename RestrictArray<pfes>::Op *>(),//atype<KN<long>* >(),
+ atype<pfes *>(),
+ atype<pfes *>(),
+ atype<KN_<long> >()) {}
+
+ E_F0 * code(const basicAC_F0 & args) const
+ {
+ if(args.size()!=3)CompileError("Bug in RestrictArray code nb of args != 3 ????? bizarre" );
+ return new Op(args,t[0]->CastTo(args[0]),
+ t[1]->CastTo(args[1]),
+ t[2]->CastTo(args[2]));
+ }
+};
+// end restrict ...
+template< typename T > struct Base { typedef T B; };
+template< typename T > struct Base< T* >{ typedef T B;};
+
+template<class pfes, int INIT>
+AnyType SetRestrict(Stack stack,Expression einj,Expression erest)
+{
+
+ typedef typename Base<pfes>::B::FESpace FESpace;
+ typedef typename FESpace::FElement FElement;
+
+ KN<long> * pinj =GetAny<KN<long>*>((*einj)(stack));
+ const typename RestrictArray<pfes>::Op * ar(dynamic_cast<const typename RestrictArray<pfes>::Op *>(erest));
+ ffassert(ar);
+ if( verbosity>9) cout << " -- RestrictArray "<< endl;
+ pfes * pCUh = GetAny< pfes * >((* ar->a)(stack));
+ pfes * pFVh = GetAny< pfes * >((* ar->b)(stack));
+ // verif same FE.
+ KN_<long> ncf= GetAny< KN_<long> >((* ar->c)(stack));
+ FESpace * pVCh = **pCUh;
+ FESpace * pVFh = **pFVh;
+ FESpace & VCh = *pVCh;
+ FESpace & VFh = *pVFh;
+ long neC = VCh.NbOfElements ;
+ long neF = VFh.NbOfElements ;
+ long ndfC = VCh.NbOfDF ;
+ long ndfF = VFh.NbOfDF ;
+
+ KN_<long> nc2f= ncf;
+ if(INIT==0)
+ pinj->init(ndfC);
+ else pinj->resize(ndfC);
+ // KN<long> *pnum= INIT ==0 ? new KN<long>(ndfC): pnum;
+ KN<long> & inj=*pinj;
+ inj = -1; // un set ..
+ if( verbosity>9) cout<< " ne =" << neC << " " << neF << endl;
+
+ for(int kc=0; kc <VCh.NbOfElements; kc++)
+ {
+
+ int kf = nc2f(kc);
+ FElement KC(pVCh,kc);
+ FElement KF(pVFh,kf);
+
+ int ndofKC = KC.NbDoF() ;
+ int ndofKF = KF.NbDoF() ;
+ if( verbosity>99) cout << kc << " " << kf << " : " <<ndofKC << " " << ndofKF << endl;
+ ffassert(ndofKC== ndofKF );
+ ffassert( kf >= 0 && kf < neF);
+ ffassert( kc >= 0 && kc< neC);
+
+ for(int df=0; df<ndofKC; df++)
+ {
+ int dfC =KC(df), dfF=KF(df);
+ if( verbosity>99) cout << dfC <<" -> "<< dfF << endl;
+ assert(dfC >= 0 && dfC < ndfC);
+ inj[dfC] = dfF;
+ }
+
+ }
+ if( verbosity>9) cout << " restrict: Inject= " << inj << endl;
+ ffassert(inj.min() != -1);
+
+ return pinj;
+}
// Fin Add FH Houston --------
template<class pfes>
-class MatrixInterpolation : public OneOperator { public:
+class MatrixInterpolation : public OneOperator { public:
class Op : public E_F0info { public:
typedef pfes * A;
- Expression a,b,c,d;
+ Expression a,b,c,d;
// if c = 0 => a,b FESpace
- // if c != a FESpace et b,c KN_<double>
+ // if c != a FESpace et b,c KN_<double>
static const int n_name_param =5;
static basicAC_F0::name_and_type name_param[] ;
Expression nargs[n_name_param];
@@ -2747,6 +2911,25 @@ void init_lgmat()
Add<const MatrixInterpolation<pfes>::Op *>("<-","(", new MatrixInterpolation<pfes>(1));
Add<const MatrixInterpolation<pfes>::Op *>("<-","(", new MatrixInterpolation<pfes3>);
Add<const MatrixInterpolation<pfes>::Op *>("<-","(", new MatrixInterpolation<pfes3>(1,1));
+
+ Dcl_Type<const RestrictArray<pfes>::Op *>();
+ Dcl_Type<const RestrictArray<pfes3>::Op *>();
+ // Add<const RestrictArray<pfes>::Op *>("<-","(", new RestrictArray<pfes>);
+ // Add<const RestrictArray<pfes3>::Op *>("<-","(", new RestrictArray<pfes3>);
+
+ Global.Add("restrict","(",new RestrictArray<pfes>);// FH Jan 2014
+ Global.Add("restrict","(",new RestrictArray<pfes3>);// FH Jan 2014
+
+ TheOperators->Add("=",
+ new OneOperator2_<KN<long>*,KN<long>*,const RestrictArray<pfes>::Op*,E_F_StackF0F0>(SetRestrict<pfes,1>),
+ new OneOperator2_<KN<long>*,KN<long>*,const RestrictArray<pfes3>::Op*,E_F_StackF0F0>(SetRestrict<pfes3,1>)
+ );
+ TheOperators->Add("<-",
+ new OneOperator2_<KN<long>*,KN<long>*,const RestrictArray<pfes>::Op*,E_F_StackF0F0>(SetRestrict<pfes,0>),
+ new OneOperator2_<KN<long>*,KN<long>*,const RestrictArray<pfes3>::Op*,E_F_StackF0F0>(SetRestrict<pfes3,0>)
+ );
+
+
Global.Add("interpolate","(",new MatrixInterpolation<pfes>);
Global.Add("interpolate","(",new MatrixInterpolation<pfes>(1));
Global.Add("interpolate","(",new MatrixInterpolation<pfes3>);
@@ -2778,7 +2961,8 @@ void init_lgmat()
new OneOperator2_<Matrice_Creuse<R>*,Matrice_Creuse<R>*,const MatrixInterpolation<pfes>::Op*,E_F_StackF0F0>(SetMatrixInterpolation),
new OneOperator2_<Matrice_Creuse<R>*,Matrice_Creuse<R>*,const MatrixInterpolation<pfes3>::Op*,E_F_StackF0F0>(SetMatrixInterpolation3)
);
-
+
+
TheOperators->Add("<-",
new OneOperator2_<Matrice_Creuse<R>*,Matrice_Creuse<R>*,const MatrixInterpolation<pfes>::Op*,E_F_StackF0F0>(SetMatrixInterpolation),
new OneOperator2_<Matrice_Creuse<R>*,Matrice_Creuse<R>*,const MatrixInterpolation<pfes3>::Op*,E_F_StackF0F0>(SetMatrixInterpolation3)
diff --git a/src/fflib/lgmesh.cpp b/src/fflib/lgmesh.cpp
index 62cb3c1..e2bcd44 100644
--- a/src/fflib/lgmesh.cpp
+++ b/src/fflib/lgmesh.cpp
@@ -58,7 +58,9 @@ using namespace std;
#include "BamgFreeFem.hpp"
#include "lgfem.hpp"
*/
+
#include "ff++.hpp"
+#include "AFunction_ext.hpp"
using Fem2D::Mesh;
using Fem2D::MeshPoint;
@@ -316,7 +318,7 @@ class Adaptation : public E_F0mps { public:
typedef pmesh Result;
static basicAC_F0::name_and_type name_param[] ;
- static const int n_name_param =27;
+ static const int n_name_param =28;
int nbsol;
Expression nargs[n_name_param];
@@ -330,6 +332,7 @@ class Adaptation : public E_F0mps { public:
double arg(int i,Stack stack,double a) const { return nargs[i] ? GetAny<double>( (*nargs[i])(stack) ): a;}
long arg(int i,Stack stack,long a) const{ return nargs[i] ? GetAny<long>( (*nargs[i])(stack) ): a;}
+ long* arg(int i,Stack stack,long* a) const{ return nargs[i] ? GetAny<long*>( (*nargs[i])(stack) ): a;}
bool arg(int i,Stack stack,bool a) const{ return nargs[i] ? GetAny<bool>( (*nargs[i])(stack) ): a;}
int arg(int i,Stack stack,int a) const{ return nargs[i] ? GetAny<int>( (*nargs[i])(stack) ): a;}
@@ -433,19 +436,23 @@ class Adaptation : public E_F0mps { public:
{ "nomeshgeneration", &typeid(bool) },
{ "metric" , &typeid(E_Array)}, // 24
{ "periodic" , &typeid(E_Array) },// 25
- { "requirededges", &typeid(KN_<long> ) } // 26
+ { "requirededges", &typeid(KN_<long> ) }, // 26
+ { "warning", &typeid(long *) } // 27
+
};
struct Op_trunc_mesh : public OneOperator {
class Op: public E_F0mps { public:
static basicAC_F0::name_and_type name_param[] ;
- static const int n_name_param =2;
+ static const int n_name_param =4;
Expression nargs[n_name_param];
Expression getmesh,bbb;
long arg(int i,Stack stack,long a) const{ return nargs[i] ? GetAny<long>( (*nargs[i])(stack) ): a;}
- Op(const basicAC_F0 & args,Expression t,Expression b) : getmesh(t),bbb(b)
+
+ KN<long> * arg(int i,Stack stack) const{ return nargs[i] ? GetAny<KN<long> *>( (*nargs[i])(stack) ): 0;}
+ Op(const basicAC_F0 & args,Expression t,Expression b) : getmesh(t),bbb(b)
{ args.SetNameParam(n_name_param,name_param,nargs); }
AnyType operator()(Stack s) const ;
};
@@ -458,7 +465,9 @@ struct Op_trunc_mesh : public OneOperator {
basicAC_F0::name_and_type Op_trunc_mesh::Op::name_param[Op_trunc_mesh::Op::n_name_param] =
{
{ "split", &typeid(long)},
- { "label", &typeid(long)}
+ { "label", &typeid(long)},
+ { "new2old", &typeid(KN<long>*)}, // ajout FH pour P. Jovilet jan 2014
+ { "old2new", &typeid(KN<long>*)} // ajout FH pour P. Jovilet jan 2014
};
@@ -471,6 +480,7 @@ AnyType classBuildMesh::operator()(Stack stack) const {
long nbvx = arg(0,stack,0L);
bool requireborder= arg(1,stack,false);
ffassert( nbvx >= 0);
+
return SetAny<pmesh>(Add2StackOfPtr2FreeRC(stack,BuildMesh(stack,borders,false,nbvx,requireborder)));
}
@@ -490,8 +500,11 @@ AnyType Op_trunc_mesh::Op::operator()(Stack stack) const {
Mesh & Th = *GetAny<pmesh>((*getmesh)(stack));
long kkksplit =arg(0,stack,1L);
long label =arg(1,stack,2L);
+ KN<long> * pn2o = arg(2,stack);
+ KN<long> * po2n = arg(3,stack);
KN<int> split(Th.nt);
split=kkksplit;
+ long ks=kkksplit*kkksplit;
MeshPoint *mp= MeshPointStack(stack),mps=*mp;
long kk=0;
for (int k=0;k<Th.nt;k++)
@@ -502,6 +515,32 @@ AnyType Op_trunc_mesh::Op::operator()(Stack stack) const {
if ( GetAny<bool>((*bbb)(stack)) ) kk++;
else split[k]=0 ;
}
+
+ if(pn2o)
+ {
+ pn2o->resize(kk*ks);
+ KN<long> &n2o(*pn2o);
+ int l=0;
+ for(int k=0; k< Th.nt; ++k)
+ if( split[k] )
+ for(int i=0; i< ks; ++i)
+ n2o[l++] = k;
+ }
+ if(po2n)
+ {
+ po2n->resize(Th.nt);
+ KN<long> &o2n(*po2n);
+ int l=0;
+ for(int k=0; k< Th.nt; ++k)
+ if( split[k] )
+ {
+ o2n[k] = l;
+ l+=ks;
+ }
+ else o2n[k]=-1;
+ }
+
+
*mp=mps;
if (verbosity>1)
cout << " -- Trunc mesh: Nb of Triangle = " << kk << " label=" <<label <<endl;
@@ -696,6 +735,11 @@ AnyType Adaptation::operator()(Stack stack) const
double cutoffradian = arg(21,stack,-1.0)* bamg::Pi/180. ;
bool split = arg(22,stack,false) ;
bool nomeshgeneration = arg(23,stack,false) ;
+ long lwarning=0;
+
+ long * pwarning = arg(27,stack,&lwarning) ;
+ long &warning=*pwarning; // get get warning message ...
+
// the 24th param is metrix and is store at compilation time
// const E_Array * expmetrix = dynamic_cast<const E_Array *>(nargs[24]);
// the 25th param is periodic and it store at compilation time
@@ -863,7 +907,6 @@ AnyType Adaptation::operator()(Stack stack) const
if ( ! nomeshgeneration)
{
nTh= new Triangles(nbsx,Th,KeepBackVertices); // Adaption is here
-
if (split)
nTh->SplitElement(1); // modif FH mai 2009 (thank J-M Mirebeau) : Th ->nTh
@@ -892,6 +935,7 @@ AnyType Adaptation::operator()(Stack stack) const
Metric M(hmax);
for (iv=0;iv < Th.nbv;iv++)
Th[iv].m = M;
+ warning = nTh->warning;
Mesh * g= bamg2msh(nTh,true);
@@ -1686,6 +1730,63 @@ AnyType CheckMoveMesh::operator()(Stack stack) const
}
+bool SameMesh(Mesh * const & pTh1,Mesh * const & pTh2)
+{
+ typedef Mesh::Element Element;
+ if( !pTh1) return 0;
+ if( !pTh2) return 0;
+ if( pTh1 == pTh2) return 1;
+ if( pTh1->nv != pTh2->nv) return 0;
+ if( pTh1->nt != pTh2->nt) return 0;
+ Mesh & Th1=*pTh1, & Th2 = *pTh2;
+ ffassert(0); // a faire..
+
+ return 1;
+}
+
+bool AddLayers(Mesh * const & pTh, KN<double> * const & psupp, long const & nlayer,KN<double> * const & pphi)
+{
+ ffassert(pTh && psupp && pphi);
+ const int nve = Mesh::Element::NbV;
+ Mesh & Th= *pTh;
+ int nt = Th.nt;
+ int nv = Th.nv;
+
+ KN<double> & supp(*psupp);
+ KN<double> u(nv), s(nt);
+ KN<double> & phi(*pphi);
+ ffassert(supp.N()==nt);//P0
+ ffassert(phi.N()==nv); // P1
+ s = supp;
+
+ supp = 0.;
+ for(int step=0; step < nlayer; ++ step)
+ {
+
+ phi=0.;
+ u = 0.;
+ for(int k=0; k<nt; ++k)
+ for(int i=0; i<nve; ++i)
+ u[Th(k,i)] += supp[k];
+
+ for(int v=0; v < nv; ++nv)
+ u[v] = u[v] >0.;
+
+ supp += u;
+
+ s = 0.;
+ for(int k=0; k<nt; ++k)
+ for(int i=0; i<nve; ++i)
+ s[k] += u[Th(k,i)];
+
+ for(int v=0; v < nt; ++nv)
+ s[v] = s[v] > 0.;
+ }
+ phi = u*(1./nlayer);
+ supp =s;
+ return true;
+}
+
void init_lgmesh() {
if(verbosity&&(mpirank==0) ) cout <<"lg_mesh ";
bamg::MeshIstreamErrorHandler = MeshErrorIO;
@@ -1710,8 +1811,10 @@ void init_lgmesh() {
Global.Add("triangulate","(",new OneOperator2_<pmesh,KN_<double>,KN_<double>,E_F_F0F0_Add2RC<pmesh,KN_<double>,KN_<double>,E_F0> >(Triangulate));
TheOperators->Add("<-",
new OneOperator2_<pmesh*,pmesh*,string* >(&initMesh));
-
- // use for : mesh Th = readmesh ( ...);
+ // Thg,suppi[],nnn,unssd[]
+ Global.Add("AddLayers","(",new OneOperator4_<bool, Mesh * , KN<double> * , long ,KN<double> * >(AddLayers));
+ Global.Add("AddLayers","(",new OneOperator2_<bool, Mesh * , Mesh * >(SameMesh));
+ // use for : mesh Th = readmesh ( ...);
TheOperators->Add("<-",
new OneOperator2_<pmesh*,pmesh*,pmesh >(&set_copy_incr));
extern void init_glumesh2D();
diff --git a/src/fflib/problem.cpp b/src/fflib/problem.cpp
index e15d102..dc519a3 100644
--- a/src/fflib/problem.cpp
+++ b/src/fflib/problem.cpp
@@ -266,7 +266,7 @@ void Check(const Opera &Op,int N,int M)
void Element_OpVF(MatriceElementairePleine<R,FESpace3> & mat,
const FElement3 & Ku,const FElement3 & KKu,
const FElement3 & Kv,const FElement3 & KKv,
- double * p,int ie,int iie, int label,void *bstack)
+ double * p,int ie,int iie, int label,void *bstack,R3 *B)
{
ffassert(0);
}
@@ -275,9 +275,9 @@ void Check(const Opera &Op,int N,int M)
void Element_OpVF(MatriceElementairePleine<R,FESpace> & mat,
const FElement & Ku,const FElement & KKu,
const FElement & Kv,const FElement & KKv,
- double * p,int ie,int iie, int label,void *bstack)
+ double * p,int ie,int iie, int label,void *bstack,R2 *B)
{
-
+ ffassert(B==0);
pair_stack_double * bs=static_cast<pair_stack_double *>(bstack);
Stack stack= bs->first;
double binside = *bs->second; // truc FH pour fluide de grad2 (decentrage bizard)
@@ -563,7 +563,7 @@ void Check(const Opera &Op,int N,int M)
}
else if (sym) {
mates= new MatriceElementaireSymetrique<R,FESpace>(Uh,FIT,FIE);
- mates->element = Element_Op<R>;
+ mates->element = Element_Op<R>;
}
else {
matep= new MatriceElementairePleine<R,FESpace>(Uh,Vh,FIT,FIE);
@@ -612,7 +612,8 @@ void Check(const Opera &Op,int N,int M)
Element_rhs<R>(Vh[t],*l->l,buf,stack,*B,FIE,Q[0],Q[1]);
}
else*/
- InternalError(" No levelSet on Diff mesh : to day int1d of Matrix");
+ // InternalError(" No levelSet on Diff mesh : to day int1d of Matrix");
+ A += mate(0,0,0,stack,Q);
}
if(sptrclean) sptrclean=sptr->clean();
}
@@ -1647,8 +1648,9 @@ void Check(const Opera &Op,int N,int M)
template<class R>
- void Element_Op(MatriceElementairePleine<R,FESpace3> & mat,const FElement3 & Ku,const FElement3 & Kv,double * p,int ie,int label,void *vstack)
+ void Element_Op(MatriceElementairePleine<R,FESpace3> & mat,const FElement3 & Ku,const FElement3 & Kv,double * p,int ie,int label,void *vstack,R3 *B)
{
+ ffassert(B==0);
Stack stack=pvoid2Stack(vstack);
// ffassert(0);
typedef FElement3::Element Element;
@@ -1809,9 +1811,9 @@ void Check(const Opera &Op,int N,int M)
}
// xxxxxxxxxxxxxxxxx modif a faire
template<class R>
- void Element_Op(MatriceElementairePleine<R,FESpace> & mat,const FElement & Ku,const FElement & Kv,double * p,int ie,int label,void *vstack)
+ void Element_Op(MatriceElementairePleine<R,FESpace> & mat,const FElement & Ku,const FElement & Kv,double * p,int ie,int label,void *vstack,R2 *B)
{
- Stack stack=pvoid2Stack(vstack);
+ Stack stack=pvoid2Stack(vstack);
typedef FElement::Element Element;
MeshPoint mp= *MeshPointStack(stack);
R ** copt = Stack_Ptr<R*>(stack,ElemMatPtrOffset);
@@ -1852,7 +1854,7 @@ void Check(const Opera &Op,int N,int M)
for (i=0;i< nx;i++)
*pa++ = 0.;
- if (ie<0)
+ if (ie<0 && B==0)
for (npi=0;npi<FI.n;npi++) // loop on the integration point
{
QuadraturePoint pi(FI[npi]);
@@ -1943,7 +1945,67 @@ void Check(const Opera &Op,int N,int M)
}
*/
}
- else // int on edge ie
+ else if(B)
+ { // int on isovalue ...
+ R2 PA(B[0]),PB(B[0]);
+ R2 A=T(PA),B=T(PB);
+ R2 E(A,B);
+ double le = sqrt((E,E));
+ if(le > 1e-15) // bofbof ????
+ for (npi=0;npi<FIb.n;npi++) // loop on the integration point
+ {
+ pa =a;
+ QuadratureFormular1dPoint pi( FIb[npi]);
+ double coef = le*pi.a;
+ double sa=pi.x,sb=1-sa;
+ R2 Pt(PA*sa+PB*sb ); //
+ Ku.BF(Dop,Pt,fu);
+ if (!same) Kv.BF(Dop,Pt,fv);
+ // int label=-999999; // a passer en argument
+ MeshPointStack(stack)->set(T(Pt),Pt,Kv,-1,R2(E.y,-E.x)/le,-1);
+ if (classoptm) (*Op.optiexpK)(stack); // call optim version
+ int il=0;
+ for (BilinearOperator::const_iterator l=Op.v.begin();l!=Op.v.end();l++,il++)
+ { // attention la fonction test donne la ligne
+ // et la fonction test est en second
+ BilinearOperator::K ll(*l);
+ // pair<int,int> jj(ll.first.first),ii(ll.first.second);
+ long jcomp= ll.first.first.first,jop=ll.first.first.second;
+ long icomp= ll.first.second.first,iop=ll.first.second.second;
+
+
+ R ccc = copt ? *(copt[il]) : GetAny<R>(ll.second.eval(stack));
+ if ( copt && Kv.number <1)
+ {
+ R cc = GetAny<R>(ll.second.eval(stack));
+ //cout << *(copt[il]) << " == " << cc << endl;
+ if ( ccc != cc) {
+ cerr << cc << " != " << ccc << " => ";
+ cerr << "Sorry error in Optimization (a) add: int2d(Th,optimize=0)(...)" << endl;
+ ExecError("In Optimized version "); }
+ }
+ int fi=Kv.dfcbegin(icomp);
+ int li=Kv.dfcend(icomp);
+ int fj=Ku.dfcbegin(jcomp);
+ int lj=Ku.dfcend(jcomp);
+ ccc *= coef;
+
+ // attention la fonction test donne la ligne
+ // et la fonction test est en second
+
+ for ( i=fi; i<li; i++ )
+ {
+ for ( j=fj; j<lj; j++ )
+ {
+ R w_i = fv(i,icomp,iop);
+ R w_j = fu(j,jcomp,jop);
+ mat(i,j) += ccc * w_i*w_j;
+ }
+ }
+ }
+ }
+ }
+ else // int on edge ie
for (npi=0;npi<FIb.n;npi++) // loop on the integration point
{
pa =a;
@@ -2054,8 +2116,9 @@ void Check(const Opera &Op,int N,int M)
template<class R>
- void Element_Op(MatriceElementaireSymetrique<R,FESpace3> & mat,const FElement3 & Ku,double * p,int ie,int label, void * vstack)
+ void Element_Op(MatriceElementaireSymetrique<R,FESpace3> & mat,const FElement3 & Ku,double * p,int ie,int label, void * vstack,R3 *B)
{
+ ffassert(B==0);
Stack stack=pvoid2Stack(vstack);
typedef FESpace3 FESpace;
typedef typename FESpace3::Mesh Mesh;
@@ -2235,7 +2298,7 @@ void Check(const Opera &Op,int N,int M)
// xxxxxxxxxxxxxxxxx modif a faire
template<class R>
- void Element_Op(MatriceElementaireSymetrique<R,FESpace> & mat,const FElement & Ku,double * p,int ie,int label, void * vstack)
+ void Element_Op(MatriceElementaireSymetrique<R,FESpace> & mat,const FElement & Ku,double * p,int ie,int label, void * vstack,R2*B)
{
Stack stack=pvoid2Stack(vstack);
MeshPoint mp= *MeshPointStack(stack);
@@ -2363,7 +2426,69 @@ void Check(const Opera &Op,int N,int M)
}*/
}
- else // int on edge ie
+ else if(B)
+ {
+ R2 PA(B[0]),PB(B[0]);
+ R2 A=T(PA),B=T(PB);
+ R2 E(A,B);
+ double le = sqrt((E,E));
+ if(le > 1e-15)
+ for (npi=0;npi<FIb.n;npi++) // loop on the integration point
+ {
+
+ pa =a;
+ QuadratureFormular1dPoint pi( FIb[npi]);
+
+ double coef = le*pi.a;
+ double sa=pi.x,sb=1-sa;
+ R2 Pt(PA*sa+PB*sb ); //
+ Ku.BF(Dop,Pt,fu);
+ // int label=-999999; // a passer en argument
+ MeshPointStack(stack)->set(T(Pt),Pt,Ku,0,R2(E.y,-E.x)/le,0);
+ if (classoptm) (*Op.optiexpK)(stack); // call optim version
+
+ int il=0;
+ for (BilinearOperator::const_iterator l=Op.v.begin();l!=Op.v.end();l++,il++)
+ { // attention la fonction test donne la ligne
+ // et la fonction test est en second
+ BilinearOperator::K ll(*l);
+ // pair<int,int> jj(ll.first.first),ii(ll.first.second);
+ long jcomp= ll.first.first.first,jop=ll.first.first.second;
+ long icomp= ll.first.second.first,iop=ll.first.second.second;
+
+ R c = copt ? *(copt[il]): GetAny<R>(ll.second.eval(stack));
+ if ( copt && Ku.number <1)
+ {
+ R cc = GetAny<R>(ll.second.eval(stack));
+ // cout << *(copt[il]) << " == " << cc << endl;
+ if ( c != cc) {
+ cerr << c << " != " << cc << " => ";
+ cerr << "Sorry error in Optimization (c) add: int2d(Th,optimize=0)(...)" << endl;
+ ExecError("In Optimized version "); }
+ }
+ c *= coef ;
+ long fi=Ku.dfcbegin(icomp);
+ long li=Ku.dfcend(icomp);
+ long fj=Ku.dfcbegin(jcomp);
+ long lj=Ku.dfcend(jcomp);
+
+ for ( i=fi; i<li; i++ )
+ for ( j=fj; j<min(lj,i+1); j++,pa++ ) //
+ {
+ R w_i = fu(i,icomp,iop);
+ R w_j = fu(j,jcomp,jop);
+
+ mat(i,j) += c * w_i*w_j;
+ /*
+ if (Ku.Vh.Th(T) < 1 && npi < 1 && i < 1 && j < 1 )
+ cout <<" + " << c << " (" <<coef << " " << w_i << " " << w_j << " " << jj.first << " " << jj.second << ") " ;
+ */
+ }
+
+ }
+ }
+ }
+ else // int on edge ie
for (npi=0;npi<FIb.n;npi++) // loop on the integration point
{
diff --git a/src/fflib/problem.hpp b/src/fflib/problem.hpp
index fdb47f0..33b9774 100644
--- a/src/fflib/problem.hpp
+++ b/src/fflib/problem.hpp
@@ -996,8 +996,8 @@ namespace Fem2D {
template<class R> void Element_rhs(const FElement3 & Kv,int ie,int label,const LOperaD &Op,double * p,void * stack,KN_<R> & B,bool all);
template<class R> void Element_rhs(const FElement3 & Kv,const LOperaD &Op,double * p,void * stack,KN_<R> & B);
- template<class R> void Element_Op(MatriceElementairePleine<R,FESpace3> & mat,const FElement3 & Ku,const FElement3 & Kv,double * p,int ie,int label, void *stack);
- template<class R> void Element_Op(MatriceElementaireSymetrique<R,FESpace3> & mat,const FElement3 & Ku,double * p,int ie,int label, void * stack);
+ template<class R> void Element_Op(MatriceElementairePleine<R,FESpace3> & mat,const FElement3 & Ku,const FElement3 & Kv,double * p,int ie,int label, void *stack,R3 *B);
+ template<class R> void Element_Op(MatriceElementaireSymetrique<R,FESpace3> & mat,const FElement3 & Ku,double * p,int ie,int label, void * stack,R3 *B);
template<class R,class FESpace>
void AssembleBC(Stack stack,const typename FESpace::Mesh & Th,const FESpace & Uh,const FESpace & Vh,bool sym,
@@ -1007,8 +1007,8 @@ namespace Fem2D {
template<class R> void Element_rhs(const FElement & Kv,int ie,int label,const LOperaD &Op,double * p,void * stack,KN_<R> & B,bool all);
template<class R> void Element_rhs(const FElement & Kv,const LOperaD &Op,double * p,void * stack,KN_<R> & B);
- template<class R> void Element_Op(MatriceElementairePleine<R,FESpace> & mat,const FElement & Ku,const FElement & Kv,double * p,int ie,int label, void *stack);
- template<class R> void Element_Op(MatriceElementaireSymetrique<R,FESpace> & mat,const FElement & Ku,double * p,int ie,int label, void * stack);
+ template<class R> void Element_Op(MatriceElementairePleine<R,FESpace> & mat,const FElement & Ku,const FElement & Kv,double * p,int ie,int label, void *stack,R2 *B);
+ template<class R> void Element_Op(MatriceElementaireSymetrique<R,FESpace> & mat,const FElement & Ku,double * p,int ie,int label, void * stack,R2 *B);
/*template<class R> void AssembleBilinearForm(Stack stack,const Mesh & Th,const FESpace & Uh,const FESpace & Vh,bool sym,
MatriceCreuse<R> & A, const FormBilinear * b );
diff --git a/src/fflib/strversionnumber.cpp b/src/fflib/strversionnumber.cpp
index 592c068..73dcc86 100644
--- a/src/fflib/strversionnumber.cpp
+++ b/src/fflib/strversionnumber.cpp
@@ -18,6 +18,6 @@ string StrVersionNumber(){
// buffer.precision(8);
// buffer<<VersionNumber();
static char buffer[100];
- sprintf(buffer," %9f (date Jeu 28 nov 2013 11:11:34 CET)",VersionNumber());
- return buffer; //.str()+" (date Jeu 28 nov 2013 11:11:34 CET)" ;
+ sprintf(buffer," %9f (date Dim 2 fév 2014 20:26:12 CET)",VersionNumber());
+ return buffer; //.str()+" (date Dim 2 fév 2014 20:26:12 CET)" ;
}
--
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/debian-science/packages/freefempp.git
More information about the debian-science-commits
mailing list