diff -rc2P -x *.info -x *.info-* gsl-1.4/BUGS gsl-1.5/BUGS *** gsl-1.4/BUGS Tue Aug 12 11:12:05 2003 --- gsl-1.5/BUGS Fri Jun 18 15:21:21 2004 *************** *** 36,55 **** Stegun 15.3.10 ! ---------------------------------------------------------------------- ! BUG#4 -- gsl_linalg_solve_symm_cyc_tridiag() crashes ! From: David Necas (Yeti) ! To: Brian Gough ! Subject: Re: gsl_linalg_solve_symm_cyc_tridiag problem ! Date: Sun, 14 Apr 2002 18:02:21 +0200 ! ! The function gsl_linalg_solve_symm_cyc_tridiag() crashes when run with ! N = 1 (and doesn't make sense even with N = 2) -- it should return ! some error code instead (the same applies to its non-cyclic ! counterpair). ! ! Both cyclic and non-cyclic solvers return zero error code when feed ! with singular matrices, or fail for another reason (so the results are ! only bunches of NaN's). They should return some error code instead. ---------------------------------------------------------------------- --- 36,53 ---- Stegun 15.3.10 ! As reported by Lee Warren another set of ! arguments which fail are: ! ! #include ! #include ! ! int main (void) ! { ! gsl_sf_result r; ! gsl_sf_hyperg_2F1_e (-1, -1, -0.5, 1.5, &r); ! printf("r = %g %g\n", r.val, r.err); ! } ! The correct value is -2. ---------------------------------------------------------------------- *************** *** 153,285 **** ---------------------------------------------------------------------- ! BUG#11 -- SVD does not handle N=1 ! From: Tiago de Paula Peixoto ! To: gsl-discuss@sources.redhat.com ! Subject: Problem with least-squares fitting. ! Date: Mon, 4 Nov 2002 14:46:02 -0200 ! I'm experiencing a weird error message using the GSL linear least squares ! multi-parameter fitting. When I try to fit a function with only one ! parameter, such as "y = a * x", I get the following error: ! ! subvector_source.c:28: vector length n must be positive integer ! (gsl_error: invalid argument supplied by user) ! ! The fit results seem OK, and I don't know what I'm doing wrong. When I fit ! with 2 parameters or more, everything works fine. ! ! The calling stack is: ! ! #0 least_gsl_error_handler ( ! reason=0x4019be80 "vector length n must be positive integer", ! file=0x4019be4e "subvector_source.c", line=28, gsl_errno=4) ! at least_test.c:11 ! #1 0x4008fc92 in gsl_error () from /usr/lib/libgsl.so.0 ! #2 0x40169857 in gsl_vector_subvector () from /usr/lib/libgsl.so.0 ! #3 0x400ba859 in gsl_linalg_SV_decomp () from /usr/lib/libgsl.so.0 ! #4 0x400bb4c4 in gsl_linalg_SV_decomp_mod () from /usr/lib/libgsl.so.0 ! #5 0x400ea171 in gsl_multifit_linear () from /usr/lib/libgsl.so.0 ! #6 0x080489a5 in main () at least_test.c:50 ! ! #include ! #include ! #include ! #include ! void least_gsl_error_handler( const char * reason, ! const char * file, ! int line, ! int gsl_errno) ! { ! printf("%s:%d: %s (gsl_error: %s)\n", ! file, line, reason, gsl_strerror(gsl_errno)); ! } ! int main() ! { ! gsl_vector *x,*y,*p; ! gsl_multifit_linear_workspace *workspace; ! gsl_matrix *X, *cov; ! double chi2; ! int i; ! double xi[5] = {1.0, 2.0, 3.0, 4.0, 5.0}; ! double yi[5] = {4.0, 8.0, 12.0, 16.0, 20.0}; ! gsl_set_error_handler( &least_gsl_error_handler ); ! workspace = gsl_multifit_linear_alloc(5, 1); ! cov = gsl_matrix_alloc(1, 1); ! p = gsl_vector_alloc(1); ! x = gsl_vector_alloc(5); ! y = gsl_vector_alloc(5); ! X = gsl_matrix_alloc( 5, 1 ); ! for (i = 0; i < 5; i++) ! { ! gsl_vector_set(x, i, xi[i]); ! gsl_vector_set(y, i, yi[i]); ! gsl_matrix_set(X, i, 0, xi[i]); /* straight line */ ! } ! gsl_multifit_linear(X, y, p, cov, &chi2, workspace); ! printf(" a = %e +/- %e\n chi2 = %e\n", ! gsl_vector_get(p, 0), sqrt(gsl_matrix_get(cov,0,0)), chi2); ! return 0; ! } ---------------------------------------------------------------------- ! BUG#13 -- gsl_diff functions don't handle large arguments ! The step size in the gsl_diff functions is fixed, and so does not work ! for large arguments due to loss of precision. ! > From: eknecronzontas ! > Subject: Unusual behaviour in gsl_diff_central? ! > Date: Tue, 1 Apr 2003 06:36:38 -0800 (PST) ! > ! > Hello! ! > ! > I notice that gsl_diff_central seems to fail ! > for large values of the function argument (see code ! > below). (I am using gsl 1.3 on Redhat 6.2.) I would ! > expect it to return a non-zero value in this case, ! > but it returns zero, in spite of trying to evaluate ! > the function at x=NaN. ! > Am I missing something here? ! > ! > Thanks, ! > Andrew Steiner ! > ! > double testfun(double x, void *pa) { ! > return sin(x); ! > } ! > ! > int main(void) { ! > void *vp=0; ! > int val; ! > double res, err; ! > ! > gsl_function *gslfunc=new gsl_function; ! > gslfunc->function=testfun; ! > gslfunc->params=vp; ! > ! > cout.setf(ios::scientific); ! > cout.precision(10); ! > ! > val=gsl_diff_central(gslfunc,1.0e5,&res,&err); ! > cout << val << " " << res << " " << err << " " << ! > cos(1.0e5) << endl; ! > val=gsl_diff_central(gslfunc,1.0e10,&res,&err); ! > cout << val << " " << res << " " << err << " " << ! > cos(1.0e10) << endl; ! > ! > return 0; ! > ! > } ---------------------------------------------------------------------- ! BUG#14 -- qagil - The extrapolation used in qags gives negative results when integrating - the small tails of probability distributions using qagil, even though - each individual term in the sequence is positive and increasing (!). - This is a feature of the original quadpack and appears to be due to - the extrapolation algorithm, which should probably be tweaked to avoid - this undesirable behavior. --- 151,224 ---- ---------------------------------------------------------------------- + BUG#14 -- qagil ! The extrapolation used in qags gives negative results when integrating ! the small tails of probability distributions using qagil, even though ! each individual term in the sequence is positive and increasing (!). ! This is a feature of the original quadpack and appears to be due to ! the extrapolation algorithm, which should probably be tweaked to avoid ! this undesirable behavior. ! ---------------------------------------------------------------------- ! BUG#17 -- ode failures ! When an ODE function returns an error code the higher level ode ! functions should recover transparently and not modify the state, so ! that the step can be retried cleanly with a different value of h. ! Currently the solver may partially modify the state, if the error ! occurs in the middle of an RK step calculation for example. ---------------------------------------------------------------------- + BUG#18 -- R250 discrepancy, and initialisation in R250 / GSFR4 + + This bug report is correct. The original paper has the same discrepancy. + + From: Andreas Schneider <1@c07.de> + To: bug-gsl@gnu.org + Subject: [Bug-gsl] Wrong algorithm in gsl_rng_r250 + Date: Sun, 25 Apr 2004 13:23:39 +0200 ! The documentation claims that gsl_rng_r250 does ! x_n = x_{n-103} ^ x_{n-250}, ! but actually the implementation does ! ! x_n = x_{n-147} ^ x_{n-250}. ! ! This error seems to be very common. It must have been introduced long time ago. ! ! I fed some data from both variants into Marsaglia's diehard and found that the ! documented version is better in most tests. Thus the error is probably in the ! implementation and the documentation is right. ! ! The orthogonalisation routine for R250 is different from the original ! paper (it should be k=7*i+3 instead of k=7+i*3) ! ! Also in the initialisation of GSFR, the initial lower 6695 indices ! never participate in calculations of subsequent random numbers, so the ! "orthogonalisation" has no effect. Check whether this also affects ! R250. ---------------------------------------------------------------------- ! BUG#20 -- seg fault from gsl_sf_legendre_sphPlm_e (underflow) ! ! In the following bit of code, the first call works, but the second call ! fails with an internal underflow gsl: exp.c:541: ERROR: underflow ! ! #include ! #include ! #include ! #include ! ! int main() { ! gsl_sf_result y; ! gsl_sf_legendre_sphPlm_e(140,135,1,&y); ! gsl_sf_legendre_sphPlm_e(140,135,0.99998689456491752,&y); ! return(0); ! } ! ! Reported by "Kevin M. Huffenberger" ! ---------------------------------------------------------------------- ! diff -rc2P -x *.info -x *.info-* gsl-1.4/ChangeLog gsl-1.5/ChangeLog *** gsl-1.4/ChangeLog Tue Jun 17 21:05:10 2003 --- gsl-1.5/ChangeLog Sun Jun 6 15:45:17 2004 *************** *** 1,2 **** --- 1,21 ---- + 2004-05-28 Brian Gough + + * configure.ac: ran configure script through Autoconf's autoupdate + to use latest macro names + + 2004-05-17 Brian Gough + + * gsl.m4: fix m4 quoting of first argument to AC_DEFUN + + 2004-03-17 Brian Gough + + * gsl/Makefile.am (header-links): use test -r instead of test -e + (to avoid problem on Solaris as described in autoconf + documentation) + + 2003-12-20 Brian Gough + + * configure.ac: define _GNU_SOURCE when looking for fenv.h + 2003-06-17 Brian Gough diff -rc2P -x *.info -x *.info-* gsl-1.4/INSTALL gsl-1.5/INSTALL *** gsl-1.4/INSTALL Tue Aug 12 13:34:54 2003 --- gsl-1.5/INSTALL Fri Jun 18 15:16:18 2004 *************** *** 122,126 **** LDFLAGS="-Wl,-bbigtoc" ./configure - Hints for Compaq/DEC Alpha ========================== --- 122,125 ---- *************** *** 137,153 **** halfway through. - Hints for DOS - ============= - - When using DJGPP The default stack size of 512k may be insufficient for - the specfunc tests and will cause them to crash. To increase the - stack size by a suitable amount use, - - stubedit test.exe minstack=1536k - - on the executable and then rerun it manually. (5/01: The specfunc - tests have been rewritten to use less stack space now). - - Hints for HP-UX =============== --- 136,139 ---- *************** *** 162,178 **** To switch on optimization use CFLAGS="-Ae -O". - - Hints for Intel (Pentium) - ======================== - - For the Pentium 4 with GCC-3.2 the flags, - - CFLAGS="-O2 -march=pentium4 -mfpmath=sse -msse -msse2" - - increase performance (as reported by Sam Halliday ). - - Note that P3 machines can also use the above CFLAGS, if the "-msse2" - is removed and "pentium4" is changed to "pentium3". - Hints for IRIX (SGI) ==================== --- 148,151 ---- *************** *** 222,233 **** ./configure --disable-shared ! To build shared libraries you can install MacOS X versions of libtool, ! automake and autoconf, and then reconfigure: ! ! 1. Get the fink packaging tool (http://fink.sourceforge.net) ! 2, Install fink's libtool14, automake, autoconf25. ! 3. Regenerate GSL's configuration using ./autogen.sh in the ! top-level directory. ! 4. ./configure, make To avoid warnings about long-double, use the flag --- 195,202 ---- ./configure --disable-shared ! It has been reported that shared libraries can be built if MacOS X ! specific versions of libtool, automake and autoconf from ! http://fink.sourceforge.net/ are installed, and the GSL source is ! reconfigured from scratch (./autogen.sh; ./configure; make) To avoid warnings about long-double, use the flag *************** *** 240,246 **** =========================== ! A separate version of the library is available for Microsoft Visual ! C++. See the website http://sources.redhat.com/gsl/ or the directory ! msvc/ in the CVS repository. Hints for OpenBSD --- 209,218 ---- =========================== ! GSL should compile with GCC under Cygwin or MinGW+MSYS on Microsoft ! Windows. ! ! There are some scripts for converting makefiles into Microsoft Visual ! C++ project files in the msvc/ directory of the CVS repository on ! sources.redhat.com. Hints for OpenBSD diff -rc2P -x *.info -x *.info-* gsl-1.4/Makefile.am gsl-1.5/Makefile.am *** gsl-1.4/Makefile.am Tue Jul 29 19:50:29 2003 --- gsl-1.5/Makefile.am Sat Mar 20 23:07:20 2004 *************** *** 3,9 **** # AUTOMAKE_OPTIONS = readme-alpha ! SUBDIRS = gsl utils sys test err const complex cheb block vector matrix permutation combination sort ieee-utils cblas blas linalg eigen specfunc dht qrng rng randist fft poly fit multifit statistics siman sum integration interpolation histogram ode-initval roots multiroots min multimin monte ntuple diff cdf doc ! SUBLIBS = block/libgslblock.la blas/libgslblas.la complex/libgslcomplex.la cheb/libgslcheb.la dht/libgsldht.la diff/libgsldiff.la eigen/libgsleigen.la err/libgslerr.la fft/libgslfft.la fit/libgslfit.la histogram/libgslhistogram.la ieee-utils/libgslieeeutils.la integration/libgslintegration.la interpolation/libgslinterpolation.la linalg/libgsllinalg.la matrix/libgslmatrix.la min/libgslmin.la monte/libgslmonte.la multifit/libgslmultifit.la multimin/libgslmultimin.la multiroots/libgslmultiroots.la ntuple/libgslntuple.la ode-initval/libgslodeiv.la permutation/libgslpermutation.la combination/libgslcombination.la poly/libgslpoly.la qrng/libgslqrng.la randist/libgslrandist.la rng/libgslrng.la roots/libgslroots.la siman/libgslsiman.la sort/libgslsort.la specfunc/libgslspecfunc.la statistics/libgslstatistics.la sum/libgslsum.la sys/libgslsys.la test/libgsltest.la utils/libutils.la vector/libgslvector.la cdf/libgslcdf.la pkginclude_HEADERS = gsl_math.h gsl_pow_int.h gsl_nan.h gsl_machine.h gsl_mode.h gsl_precision.h gsl_types.h gsl_version.h --- 3,9 ---- # AUTOMAKE_OPTIONS = readme-alpha ! SUBDIRS = gsl utils sys test err const complex cheb block vector matrix permutation combination sort ieee-utils cblas blas linalg eigen specfunc dht qrng rng randist fft poly fit multifit statistics siman sum integration interpolation histogram ode-initval roots multiroots min multimin monte ntuple diff deriv cdf doc ! SUBLIBS = block/libgslblock.la blas/libgslblas.la complex/libgslcomplex.la cheb/libgslcheb.la dht/libgsldht.la diff/libgsldiff.la deriv/libgslderiv.la eigen/libgsleigen.la err/libgslerr.la fft/libgslfft.la fit/libgslfit.la histogram/libgslhistogram.la ieee-utils/libgslieeeutils.la integration/libgslintegration.la interpolation/libgslinterpolation.la linalg/libgsllinalg.la matrix/libgslmatrix.la min/libgslmin.la monte/libgslmonte.la multifit/libgslmultifit.la multimin/libgslmultimin.la multiroots/libgslmultiroots.la ntuple/libgslntuple.la ode-initval/libgslodeiv.la permutation/libgslpermutation.la combination/libgslcombination.la poly/libgslpoly.la qrng/libgslqrng.la randist/libgslrandist.la rng/libgslrng.la roots/libgslroots.la siman/libgslsiman.la sort/libgslsort.la specfunc/libgslspecfunc.la statistics/libgslstatistics.la sum/libgslsum.la sys/libgslsys.la test/libgsltest.la utils/libutils.la vector/libgslvector.la cdf/libgslcdf.la pkginclude_HEADERS = gsl_math.h gsl_pow_int.h gsl_nan.h gsl_machine.h gsl_mode.h gsl_precision.h gsl_types.h gsl_version.h diff -rc2P -x *.info -x *.info-* gsl-1.4/Makefile.in gsl-1.5/Makefile.in *** gsl-1.4/Makefile.in Thu Aug 14 12:28:36 2003 --- gsl-1.5/Makefile.in Thu Jun 24 10:49:35 2004 *************** *** 144,150 **** target_alias = @target_alias@ ! SUBDIRS = gsl utils sys test err const complex cheb block vector matrix permutation combination sort ieee-utils cblas blas linalg eigen specfunc dht qrng rng randist fft poly fit multifit statistics siman sum integration interpolation histogram ode-initval roots multiroots min multimin monte ntuple diff cdf doc ! SUBLIBS = block/libgslblock.la blas/libgslblas.la complex/libgslcomplex.la cheb/libgslcheb.la dht/libgsldht.la diff/libgsldiff.la eigen/libgsleigen.la err/libgslerr.la fft/libgslfft.la fit/libgslfit.la histogram/libgslhistogram.la ieee-utils/libgslieeeutils.la integration/libgslintegration.la interpolation/libgslinterpolation.la linalg/libgsllinalg.la matrix/libgslmatrix.la min/libgslmin.la monte/libgslmonte.la multifit/libgslmultifit.la multimin/libgslmultimin.la multiroots/libgslmultiroots.la ntuple/libgslntuple.la ode-initval/libgslodeiv.la permutation/libgslpermutation.la combination/libgslcombination.la poly/libgslpoly.la qrng/libgslqrng.la randist/libgslrandist.la rng/libgslrng.la roots/libgslroots.la siman/libgslsiman.la sort/libgslsort.la specfunc/libgslspecfunc.la statistics/libgslstatistics.la sum/libgslsum.la sys/libgslsys.la test/libgsltest.la utils/libutils.la vector/libgslvector.la cdf/libgslcdf.la pkginclude_HEADERS = gsl_math.h gsl_pow_int.h gsl_nan.h gsl_machine.h gsl_mode.h gsl_precision.h gsl_types.h gsl_version.h --- 144,150 ---- target_alias = @target_alias@ ! SUBDIRS = gsl utils sys test err const complex cheb block vector matrix permutation combination sort ieee-utils cblas blas linalg eigen specfunc dht qrng rng randist fft poly fit multifit statistics siman sum integration interpolation histogram ode-initval roots multiroots min multimin monte ntuple diff deriv cdf doc ! SUBLIBS = block/libgslblock.la blas/libgslblas.la complex/libgslcomplex.la cheb/libgslcheb.la dht/libgsldht.la diff/libgsldiff.la deriv/libgslderiv.la eigen/libgsleigen.la err/libgslerr.la fft/libgslfft.la fit/libgslfit.la histogram/libgslhistogram.la ieee-utils/libgslieeeutils.la integration/libgslintegration.la interpolation/libgslinterpolation.la linalg/libgsllinalg.la matrix/libgslmatrix.la min/libgslmin.la monte/libgslmonte.la multifit/libgslmultifit.la multimin/libgslmultimin.la multiroots/libgslmultiroots.la ntuple/libgslntuple.la ode-initval/libgslodeiv.la permutation/libgslpermutation.la combination/libgslcombination.la poly/libgslpoly.la qrng/libgslqrng.la randist/libgslrandist.la rng/libgslrng.la roots/libgslroots.la siman/libgslsiman.la sort/libgslsort.la specfunc/libgslspecfunc.la statistics/libgslstatistics.la sum/libgslsum.la sys/libgslsys.la test/libgsltest.la utils/libutils.la vector/libgslvector.la cdf/libgslcdf.la pkginclude_HEADERS = gsl_math.h gsl_pow_int.h gsl_nan.h gsl_machine.h gsl_mode.h gsl_precision.h gsl_types.h gsl_version.h *************** *** 185,191 **** libgsl_la_DEPENDENCIES = block/libgslblock.la blas/libgslblas.la \ complex/libgslcomplex.la cheb/libgslcheb.la dht/libgsldht.la \ ! diff/libgsldiff.la eigen/libgsleigen.la err/libgslerr.la \ ! fft/libgslfft.la fit/libgslfit.la histogram/libgslhistogram.la \ ! ieee-utils/libgslieeeutils.la integration/libgslintegration.la \ interpolation/libgslinterpolation.la linalg/libgsllinalg.la \ matrix/libgslmatrix.la min/libgslmin.la monte/libgslmonte.la \ --- 185,192 ---- libgsl_la_DEPENDENCIES = block/libgslblock.la blas/libgslblas.la \ complex/libgslcomplex.la cheb/libgslcheb.la dht/libgsldht.la \ ! diff/libgsldiff.la deriv/libgslderiv.la eigen/libgsleigen.la \ ! err/libgslerr.la fft/libgslfft.la fit/libgslfit.la \ ! histogram/libgslhistogram.la ieee-utils/libgslieeeutils.la \ ! integration/libgslintegration.la \ interpolation/libgslinterpolation.la linalg/libgsllinalg.la \ matrix/libgslmatrix.la min/libgslmin.la monte/libgslmonte.la \ diff -rc2P -x *.info -x *.info-* gsl-1.4/NEWS gsl-1.5/NEWS *** gsl-1.4/NEWS Sat Aug 2 16:15:12 2003 --- gsl-1.5/NEWS Fri Jun 18 15:17:18 2004 *************** *** 1,3 **** ! * What is new in gsl-1.4: ** Added cumulative distribution functions and their inverses for the --- 1,59 ---- ! * What is new in gsl-1.5: ! ! ** Multifit routines now handle iterations where |f| is already ! minimised to zero, without division by zero. ! ! ** Fixed the singular value tolerance test in the multifit covariance ! calculation from < to <= to match the original MINPACK code. ! ! ** The macro HAVE_INLINE is now tested with #ifdef instead of #if as ! in versions prior to 1.4, to match the documentation, and the macro ! GSL_RANGE_CHECK_OFF now works correctly. An alternative macro ! GSL_RANGE_CHECK={0,1} can be used to control range-checking. ! ! ** Fixed a potential array overflow in gsl_ran_landau. ! ! ** Fixed a small discrepancy in the tolerance calculation of the ! one-dimensional brent minimiser. ! ! ** Numerical derivatives should now be calculated using the ! gsl_deriv_forward, gsl_deriv_central and gsl_deriv_backward functions, ! which accept a step-size argument in addition to the position x. The ! original gsl_diff functions (without the step-size) are deprecated. ! ! ** Corrected documentation for gsl_ran_hypergeometric_pdf() ! ! ** The tridiagonal matrix solvers gsl_linalg_solve_symm_tridiag, ! gsl_linalg_solve_tridiag, gsl_linalg_solve_symm_cyc_tridiag, ! gsl_linalg_solve_cyc_tridiag now use the GSL_ERROR macro to report ! errors, instead of simply returning an error code. The arguments to ! these functions must now use exact lengths with no additional ! elements. For cyclic systems all vectors must be of length N, for ! tridiagonal systems the offdiagonal elements must be of length N-1. ! ! ** The singular value decomposition routines gsl_linalg_SV_decomp and ! gsl_linalg_SV_decomp_mod now handle the SVD of a column vector (N=1, ! arbitrary M), which can occur in linear fitting. ! ! ** Restored missing header files gsl_const_mks.h and gsl_const_cgs.h. ! The incorrect values of the electrical units for gsl_const_cgs ! (VACUUM_PERMEABILITY and VACUUM_PERMITTIVITY) have been removed. ! ! ** Fixed gsl_linalg_SV_decomp() to avoid an infinite loop when ! computing the SVD of matrices containing Inf and Nan. ! ! ** Fixed gsl_linalg_balance_columns() to avoid an infinite loop when ! rescaling matrices containing Inf and NaN. ! ! ** Fixed header file to include declarations for ! error codes in inline versions of gsl_sf_log functions ! ! ** Fixed header file to include new MKSA and CGSM ! header files. ! ! ** Added Stefan-Boltzmann constant and Thomson cross section to ! physical constants ! ! * What was new in gsl-1.4: ** Added cumulative distribution functions and their inverses for the diff -rc2P -x *.info -x *.info-* gsl-1.4/THANKS gsl-1.5/THANKS *** gsl-1.4/THANKS Tue Aug 12 19:55:30 2003 --- gsl-1.5/THANKS Fri Jun 18 15:26:57 2004 *************** *** 216,222 **** * Maarten De Munck bug fix for vector/matrix get ! * Axel Hutt bug fix for QAWC integration ! * Martin Jansche bug reports * Gregory Soyez documentation bug report --- 216,223 ---- * Maarten De Munck bug fix for vector/matrix get ! * Axel Hutt bug fix for QAWC integration, ! documentation bug fix ! * Martin Jansche various bug reports * Gregory Soyez documentation bug report *************** *** 263,264 **** --- 264,297 ---- * Jamie Lokier for testing + + * Grant Lythe documentation bug report + + * Jussi Piitulainen documentation bug report + + * Aaron Schweiger bug report for SVD/column balancing + + * Carlo Ferrigno bug report about const problems + + * Jussi Piitulainen documenation bug report for + gsl_ran_hypergeometric_pdf + + * Bas Zoetekouw documentation bug report + + * Paul Sydney bug report and patch for min/brent.c + + * Alexei Podtelezhnikov patch for sphere.c + + * Neil Bushong documentation typo bug report + + * Brad Bell documentation bug report + + * Andreas Schneider <1@c07.de> bug report for R250 + + * Luigi Ballabio fix m4 quoting in gsl.m4 + + * Zbigniew Koza documentation bug fix for odes + + * James Scott fix for linalg tests on MSVC + + * Rémi Butel fixes for multimin overflow + conditions diff -rc2P -x *.info -x *.info-* gsl-1.4/acconfig.h gsl-1.5/acconfig.h *** gsl-1.4/acconfig.h Tue Aug 5 15:15:10 2003 --- gsl-1.5/acconfig.h Fri Jun 18 15:17:38 2004 *************** *** 125,128 **** #if defined(GSL_RANGE_CHECK_OFF) || !defined(GSL_RANGE_CHECK) ! #define GSL_RANGE_CHECK 0 /* turn off range checking by default */ #endif --- 125,128 ---- #if defined(GSL_RANGE_CHECK_OFF) || !defined(GSL_RANGE_CHECK) ! #define GSL_RANGE_CHECK 0 /* turn off range checking by default internally */ #endif diff -rc2P -x *.info -x *.info-* gsl-1.4/aclocal.m4 gsl-1.5/aclocal.m4 *** gsl-1.4/aclocal.m4 Thu Aug 14 12:28:27 2003 --- gsl-1.5/aclocal.m4 Thu Jun 24 10:49:25 2004 *************** *** 819,848 **** fi])]) - # Like AC_CONFIG_HEADER, but automatically create stamp file. -*- Autoconf -*- - - # Copyright 1996, 1997, 2000, 2001 Free Software Foundation, Inc. - - # This program is free software; you can redistribute it and/or modify - # it under the terms of the GNU General Public License as published by - # the Free Software Foundation; either version 2, or (at your option) - # any later version. - - # This program is distributed in the hope that it will be useful, - # but WITHOUT ANY WARRANTY; without even the implied warranty of - # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - # GNU General Public License for more details. - - # You should have received a copy of the GNU General Public License - # along with this program; if not, write to the Free Software - # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA - # 02111-1307, USA. - - AC_PREREQ([2.52]) - - # serial 6 - - # AM_CONFIG_HEADER is obsolete. It has been replaced by AC_CONFIG_HEADERS. - AU_DEFUN([AM_CONFIG_HEADER], [AC_CONFIG_HEADERS($@)]) - # Add --enable-maintainer-mode option to configure. # From Jim Meyering --- 819,822 ---- diff -rc2P -x *.info -x *.info-* gsl-1.4/block/ChangeLog gsl-1.5/block/ChangeLog *** gsl-1.4/block/ChangeLog Sat Jul 15 20:45:20 2000 --- gsl-1.5/block/ChangeLog Sun Jun 6 15:47:49 2004 *************** *** 1,2 **** --- 1,7 ---- + 2004-06-03 Brian Gough + + * gsl_check_range.h: provide backwards-compatible support for + GSL_RANGE_CHECK_OFF and GSL_RANGE_CHECK + Sat Jul 15 21:45:10 2000 Brian Gough diff -rc2P -x *.info -x *.info-* gsl-1.4/block/gsl_check_range.h gsl-1.5/block/gsl_check_range.h *** gsl-1.4/block/gsl_check_range.h Fri Jul 25 15:18:17 2003 --- gsl-1.5/block/gsl_check_range.h Sun Jun 20 18:41:17 2004 *************** *** 1,5 **** /* vector/gsl_check_range.h * ! * Copyright (C) 2003 Brian Gough * * This program is free software; you can redistribute it and/or modify --- 1,5 ---- /* vector/gsl_check_range.h * ! * Copyright (C) 2003, 2004 Brian Gough * * This program is free software; you can redistribute it and/or modify *************** *** 37,40 **** --- 37,55 ---- GSL_VAR int gsl_check_range; + + /* Turn range checking on by default, unless the user defines + GSL_RANGE_CHECK_OFF, or defines GSL_RANGE_CHECK to 0 explicitly */ + + #ifdef GSL_RANGE_CHECK_OFF + # ifndef GSL_RANGE_CHECK + # define GSL_RANGE_CHECK 0 + # else + # error "cannot set both GSL_RANGE_CHECK and GSL_RANGE_CHECK_OFF" + # endif + #else + # ifndef GSL_RANGE_CHECK + # define GSL_RANGE_CHECK 1 + # endif + #endif __END_DECLS diff -rc2P -x *.info -x *.info-* gsl-1.4/cdf/ChangeLog gsl-1.5/cdf/ChangeLog *** gsl-1.4/cdf/ChangeLog Sun Jul 27 19:44:03 2003 --- gsl-1.5/cdf/ChangeLog Wed Aug 27 10:41:03 2003 *************** *** 1,2 **** --- 1,7 ---- + 2003-08-27 Brian Gough + + * gauss.c: use parentheses around constant macros to avoid -(-X) + being interpreted as --X + 2003-07-27 Brian Gough diff -rc2P -x *.info -x *.info-* gsl-1.4/cdf/gauss.c gsl-1.5/cdf/gauss.c *** gsl-1.4/cdf/gauss.c Fri Jul 25 15:18:09 2003 --- gsl-1.5/cdf/gauss.c Sun Jun 20 18:41:17 2004 *************** *** 1,5 **** /* cdf/gauss.c * ! * Copyright (C) 2002 Jason H. Stover. * * This program is free software; you can redistribute it and/or modify --- 1,5 ---- /* cdf/gauss.c * ! * Copyright (C) 2002, 2004 Jason H. Stover. * * This program is free software; you can redistribute it and/or modify *************** *** 62,70 **** */ ! #define GAUSS_EPSILON GSL_DBL_EPSILON / 2 ! #define GAUSS_XUPPER 8.572 ! #define GAUSS_XLOWER -37.519 ! #define GAUSS_SCALE 16.0 static double --- 62,70 ---- */ ! #define GAUSS_EPSILON (GSL_DBL_EPSILON / 2) ! #define GAUSS_XUPPER (8.572) ! #define GAUSS_XLOWER (-37.519) ! #define GAUSS_SCALE (16.0) static double *************** *** 315,324 **** return result; } ! else if (x > (-GAUSS_XLOWER)) { result = 0.0; return result; } ! else if (x < (-GAUSS_XUPPER)) { result = 1.0; --- 315,324 ---- return result; } ! else if (x > -(GAUSS_XLOWER)) { result = 0.0; return result; } ! else if (x < -(GAUSS_XUPPER)) { result = 1.0; diff -rc2P -x *.info -x *.info-* gsl-1.4/combination/gsl_combination.h gsl-1.5/combination/gsl_combination.h *** gsl-1.4/combination/gsl_combination.h Fri Jul 25 15:18:17 2003 --- gsl-1.5/combination/gsl_combination.h Sun Jun 6 15:47:49 2004 *************** *** 70,74 **** int gsl_combination_prev (gsl_combination * c); ! #if HAVE_INLINE extern inline --- 70,74 ---- int gsl_combination_prev (gsl_combination * c); ! #ifdef HAVE_INLINE extern inline diff -rc2P -x *.info -x *.info-* gsl-1.4/complex/gsl_complex_math.h gsl-1.5/complex/gsl_complex_math.h *** gsl-1.4/complex/gsl_complex_math.h Fri Jul 25 15:18:17 2003 --- gsl-1.5/complex/gsl_complex_math.h Sun Jun 20 18:41:17 2004 *************** *** 1,5 **** /* complex/gsl_complex_math.h * ! * Copyright (C) 1996, 1997, 1998, 1999, 2000 Jorma Olavi Tähtinen, Brian Gough * * This program is free software; you can redistribute it and/or modify --- 1,5 ---- /* complex/gsl_complex_math.h * ! * Copyright (C) 1996, 1997, 1998, 1999, 2000, 2004 Jorma Olavi Tähtinen, Brian Gough * * This program is free software; you can redistribute it and/or modify *************** *** 39,43 **** gsl_complex gsl_complex_polar (double r, double theta); /* r= r e^(i theta) */ ! #if HAVE_INLINE extern inline gsl_complex gsl_complex_rect (double x, double y) --- 39,43 ---- gsl_complex gsl_complex_polar (double r, double theta); /* r= r e^(i theta) */ ! #ifdef HAVE_INLINE extern inline gsl_complex gsl_complex_rect (double x, double y) diff -rc2P -x *.info -x *.info-* gsl-1.4/config.h.in gsl-1.5/config.h.in *** gsl-1.4/config.h.in Thu Aug 14 12:36:02 2003 --- gsl-1.5/config.h.in Thu Jun 24 10:50:58 2004 *************** *** 135,141 **** #undef VERSION ! /* Define as `__inline' if that's what the C compiler calls it, or to nothing ! if it is not supported. */ #undef inline /* Define to `unsigned' if does not define. */ --- 135,143 ---- #undef VERSION ! /* Define to `__inline__' or `__inline' if that's what the C compiler ! calls it, or to nothing if 'inline' is not supported under any name. */ ! #ifndef __cplusplus #undef inline + #endif /* Define to `unsigned' if does not define. */ *************** *** 270,273 **** #if defined(GSL_RANGE_CHECK_OFF) || !defined(GSL_RANGE_CHECK) ! #define GSL_RANGE_CHECK 0 /* turn off range checking by default */ #endif --- 272,275 ---- #if defined(GSL_RANGE_CHECK_OFF) || !defined(GSL_RANGE_CHECK) ! #define GSL_RANGE_CHECK 0 /* turn off range checking by default internally */ #endif diff -rc2P -x *.info -x *.info-* gsl-1.4/configure gsl-1.5/configure *** gsl-1.4/configure Thu Aug 14 12:28:38 2003 --- gsl-1.5/configure Thu Jun 24 10:50:00 2004 *************** *** 1,8 **** #! /bin/sh # Guess values for system-dependent variables and create Makefiles. ! # Generated by GNU Autoconf 2.57 for gsl 1.4. # ! # Copyright 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, 2002 ! # Free Software Foundation, Inc. # This configure script is free software; the Free Software Foundation # gives unlimited permission to copy, distribute and modify it. --- 1,7 ---- #! /bin/sh # Guess values for system-dependent variables and create Makefiles. ! # Generated by GNU Autoconf 2.59 for gsl 1.5. # ! # Copyright (C) 2003 Free Software Foundation, Inc. # This configure script is free software; the Free Software Foundation # gives unlimited permission to copy, distribute and modify it. *************** *** 21,27 **** set -o posix fi # Support unset when possible. ! if (FOO=FOO; unset FOO) >/dev/null 2>&1; then as_unset=unset else --- 20,27 ---- set -o posix fi + DUALCASE=1; export DUALCASE # for MKS sh # Support unset when possible. ! if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then as_unset=unset else *************** *** 42,46 **** LC_TELEPHONE LC_TIME do ! if (set +x; test -n "`(eval $as_var=C; export $as_var) 2>&1`"); then eval $as_var=C; export $as_var else --- 42,46 ---- LC_TELEPHONE LC_TIME do ! if (set +x; test -z "`(eval $as_var=C; export $as_var) 2>&1`"); then eval $as_var=C; export $as_var else *************** *** 219,222 **** --- 219,223 ---- as_mkdir_p=: else + test -d ./-p && rmdir ./-p as_mkdir_p=false fi *************** *** 225,232 **** # Sed expression to map a string onto a valid CPP name. ! as_tr_cpp="sed y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g" # Sed expression to map a string onto a valid variable name. ! as_tr_sh="sed y%*+%pp%;s%[^_$as_cr_alnum]%_%g" --- 226,233 ---- # Sed expression to map a string onto a valid CPP name. ! as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" # Sed expression to map a string onto a valid variable name. ! as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" *************** *** 426,431 **** PACKAGE_NAME='gsl' PACKAGE_TARNAME='gsl' ! PACKAGE_VERSION='1.4' ! PACKAGE_STRING='gsl 1.4' PACKAGE_BUGREPORT='' --- 427,432 ---- PACKAGE_NAME='gsl' PACKAGE_TARNAME='gsl' ! PACKAGE_VERSION='1.5' ! PACKAGE_STRING='gsl 1.5' PACKAGE_BUGREPORT='' *************** *** 827,831 **** # Be sure to have absolute paths. for ac_var in bindir sbindir libexecdir datadir sysconfdir sharedstatedir \ ! localstatedir libdir includedir oldincludedir infodir mandir do eval ac_val=$`echo $ac_var` --- 828,832 ---- # Be sure to have absolute paths. for ac_var in bindir sbindir libexecdir datadir sysconfdir sharedstatedir \ ! localstatedir libdir includedir oldincludedir infodir mandir do eval ac_val=$`echo $ac_var` *************** *** 867,874 **** ac_confdir=`(dirname "$0") 2>/dev/null || $as_expr X"$0" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ ! X"$0" : 'X\(//\)[^/]' \| \ ! X"$0" : 'X\(//\)$' \| \ ! X"$0" : 'X\(/\)' \| \ ! . : '\(.\)' 2>/dev/null || echo X"$0" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } --- 868,875 ---- ac_confdir=`(dirname "$0") 2>/dev/null || $as_expr X"$0" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ ! X"$0" : 'X\(//\)[^/]' \| \ ! X"$0" : 'X\(//\)$' \| \ ! X"$0" : 'X\(/\)' \| \ ! . : '\(.\)' 2>/dev/null || echo X"$0" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } *************** *** 937,941 **** # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF ! \`configure' configures gsl 1.4 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... --- 938,942 ---- # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF ! \`configure' configures gsl 1.5 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... *************** *** 962,968 **** Installation directories: --prefix=PREFIX install architecture-independent files in PREFIX ! [$ac_default_prefix] --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX ! [PREFIX] By default, \`make install' will install all the files in --- 963,969 ---- Installation directories: --prefix=PREFIX install architecture-independent files in PREFIX ! [$ac_default_prefix] --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX ! [PREFIX] By default, \`make install' will install all the files in *************** *** 1003,1007 **** if test -n "$ac_init_help"; then case $ac_init_help in ! short | recursive ) echo "Configuration of gsl 1.4:";; esac cat <<\_ACEOF --- 1004,1008 ---- if test -n "$ac_init_help"; then case $ac_init_help in ! short | recursive ) echo "Configuration of gsl 1.5:";; esac cat <<\_ACEOF *************** *** 1068,1077 **** ac_top_srcdir=$ac_top_builddir$srcdir ;; esac ! # Don't blindly perform a `cd "$ac_dir"/$ac_foo && pwd` since $ac_foo can be ! # absolute. ! ac_abs_builddir=`cd "$ac_dir" && cd $ac_builddir && pwd` ! ac_abs_top_builddir=`cd "$ac_dir" && cd ${ac_top_builddir}. && pwd` ! ac_abs_srcdir=`cd "$ac_dir" && cd $ac_srcdir && pwd` ! ac_abs_top_srcdir=`cd "$ac_dir" && cd $ac_top_srcdir && pwd` cd $ac_dir --- 1069,1111 ---- ac_top_srcdir=$ac_top_builddir$srcdir ;; esac ! ! # Do not use `cd foo && pwd` to compute absolute paths, because ! # the directories may not exist. ! case `pwd` in ! .) ac_abs_builddir="$ac_dir";; ! *) ! case "$ac_dir" in ! .) ac_abs_builddir=`pwd`;; ! [\\/]* | ?:[\\/]* ) ac_abs_builddir="$ac_dir";; ! *) ac_abs_builddir=`pwd`/"$ac_dir";; ! esac;; ! esac ! case $ac_abs_builddir in ! .) ac_abs_top_builddir=${ac_top_builddir}.;; ! *) ! case ${ac_top_builddir}. in ! .) ac_abs_top_builddir=$ac_abs_builddir;; ! [\\/]* | ?:[\\/]* ) ac_abs_top_builddir=${ac_top_builddir}.;; ! *) ac_abs_top_builddir=$ac_abs_builddir/${ac_top_builddir}.;; ! esac;; ! esac ! case $ac_abs_builddir in ! .) ac_abs_srcdir=$ac_srcdir;; ! *) ! case $ac_srcdir in ! .) ac_abs_srcdir=$ac_abs_builddir;; ! [\\/]* | ?:[\\/]* ) ac_abs_srcdir=$ac_srcdir;; ! *) ac_abs_srcdir=$ac_abs_builddir/$ac_srcdir;; ! esac;; ! esac ! case $ac_abs_builddir in ! .) ac_abs_top_srcdir=$ac_top_srcdir;; ! *) ! case $ac_top_srcdir in ! .) ac_abs_top_srcdir=$ac_abs_builddir;; ! [\\/]* | ?:[\\/]* ) ac_abs_top_srcdir=$ac_top_srcdir;; ! *) ac_abs_top_srcdir=$ac_abs_builddir/$ac_top_srcdir;; ! esac;; ! esac cd $ac_dir *************** *** 1084,1088 **** $SHELL $ac_srcdir/configure --help=recursive elif test -f $ac_srcdir/configure.ac || ! test -f $ac_srcdir/configure.in; then echo $ac_configure --help --- 1118,1122 ---- $SHELL $ac_srcdir/configure --help=recursive elif test -f $ac_srcdir/configure.ac || ! test -f $ac_srcdir/configure.in; then echo $ac_configure --help *************** *** 1097,1105 **** if $ac_init_version; then cat <<\_ACEOF ! gsl configure 1.4 ! generated by GNU Autoconf 2.57 ! Copyright 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, 2002 ! Free Software Foundation, Inc. This configure script is free software; the Free Software Foundation gives unlimited permission to copy, distribute and modify it. --- 1131,1138 ---- if $ac_init_version; then cat <<\_ACEOF ! gsl configure 1.5 ! generated by GNU Autoconf 2.59 ! Copyright (C) 2003 Free Software Foundation, Inc. This configure script is free software; the Free Software Foundation gives unlimited permission to copy, distribute and modify it. *************** *** 1112,1117 **** running configure, to aid debugging if configure makes a mistake. ! It was created by gsl $as_me 1.4, which was ! generated by GNU Autoconf 2.57. Invocation command line was $ $0 $@ --- 1145,1150 ---- running configure, to aid debugging if configure makes a mistake. ! It was created by gsl $as_me 1.5, which was ! generated by GNU Autoconf 2.59. Invocation command line was $ $0 $@ *************** *** 1190,1206 **** ac_configure_args1="$ac_configure_args1 '$ac_arg'" if test $ac_must_keep_next = true; then ! ac_must_keep_next=false # Got value, back to normal. else ! case $ac_arg in ! *=* | --config-cache | -C | -disable-* | --disable-* \ ! | -enable-* | --enable-* | -gas | --g* | -nfp | --nf* \ ! | -q | -quiet | --q* | -silent | --sil* | -v | -verb* \ ! | -with-* | --with-* | -without-* | --without-* | --x) ! case "$ac_configure_args0 " in ! "$ac_configure_args1"*" '$ac_arg' "* ) continue ;; ! esac ! ;; ! -* ) ac_must_keep_next=true ;; ! esac fi ac_configure_args="$ac_configure_args$ac_sep'$ac_arg'" --- 1223,1239 ---- ac_configure_args1="$ac_configure_args1 '$ac_arg'" if test $ac_must_keep_next = true; then ! ac_must_keep_next=false # Got value, back to normal. else ! case $ac_arg in ! *=* | --config-cache | -C | -disable-* | --disable-* \ ! | -enable-* | --enable-* | -gas | --g* | -nfp | --nf* \ ! | -q | -quiet | --q* | -silent | --sil* | -v | -verb* \ ! | -with-* | --with-* | -without-* | --without-* | --x) ! case "$ac_configure_args0 " in ! "$ac_configure_args1"*" '$ac_arg' "* ) continue ;; ! esac ! ;; ! -* ) ac_must_keep_next=true ;; ! esac fi ac_configure_args="$ac_configure_args$ac_sep'$ac_arg'" *************** *** 1236,1245 **** *ac_space=\ *) sed -n \ ! "s/'"'"'/'"'"'\\\\'"'"''"'"'/g; ! s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='"'"'\\2'"'"'/p" ;; *) sed -n \ ! "s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1=\\2/p" ;; esac; --- 1269,1278 ---- *ac_space=\ *) sed -n \ ! "s/'"'"'/'"'"'\\\\'"'"''"'"'/g; ! s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='"'"'\\2'"'"'/p" ;; *) sed -n \ ! "s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1=\\2/p" ;; esac; *************** *** 1270,1274 **** do eval ac_val=$`echo $ac_var` ! echo "$ac_var='"'"'$ac_val'"'"'" done | sort echo --- 1303,1307 ---- do eval ac_val=$`echo $ac_var` ! echo "$ac_var='"'"'$ac_val'"'"'" done | sort echo *************** *** 1289,1293 **** echo "$as_me: exit $exit_status" } >&5 ! rm -f core core.* *.core && rm -rf conftest* confdefs* conf$$* $ac_clean_files && exit $exit_status --- 1322,1326 ---- echo "$as_me: exit $exit_status" } >&5 ! rm -f core *.core && rm -rf conftest* confdefs* conf$$* $ac_clean_files && exit $exit_status *************** *** 1369,1373 **** ac_cache_corrupted=false for ac_var in `(set) 2>&1 | ! sed -n 's/^ac_env_\([a-zA-Z_0-9]*\)_set=.*/\1/p'`; do eval ac_old_set=\$ac_cv_env_${ac_var}_set eval ac_new_set=\$ac_env_${ac_var}_set --- 1402,1406 ---- ac_cache_corrupted=false for ac_var in `(set) 2>&1 | ! sed -n 's/^ac_env_\([a-zA-Z_0-9]*\)_set=.*/\1/p'`; do eval ac_old_set=\$ac_cv_env_${ac_var}_set eval ac_new_set=\$ac_env_${ac_var}_set *************** *** 1386,1396 **** *) if test "x$ac_old_val" != "x$ac_new_val"; then ! { echo "$as_me:$LINENO: error: \`$ac_var' has changed since the previous run:" >&5 echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;} ! { echo "$as_me:$LINENO: former value: $ac_old_val" >&5 echo "$as_me: former value: $ac_old_val" >&2;} ! { echo "$as_me:$LINENO: current value: $ac_new_val" >&5 echo "$as_me: current value: $ac_new_val" >&2;} ! ac_cache_corrupted=: fi;; esac --- 1419,1429 ---- *) if test "x$ac_old_val" != "x$ac_new_val"; then ! { echo "$as_me:$LINENO: error: \`$ac_var' has changed since the previous run:" >&5 echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;} ! { echo "$as_me:$LINENO: former value: $ac_old_val" >&5 echo "$as_me: former value: $ac_old_val" >&2;} ! { echo "$as_me:$LINENO: current value: $ac_new_val" >&5 echo "$as_me: current value: $ac_new_val" >&2;} ! ac_cache_corrupted=: fi;; esac *************** *** 1487,1490 **** --- 1520,1524 ---- # AFS /usr/afsws/bin/install, which mishandles nonexistent args # SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" + # OS/2's system install, which has a completely different semantic # ./install, which can be erroneously created by make from ./install.sh. echo "$as_me:$LINENO: checking for a BSD-compatible install" >&5 *************** *** 1503,1506 **** --- 1537,1541 ---- ./ | .// | /cC/* | \ /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \ + ?:\\/os2\\/install\\/* | ?:\\/OS2\\/INSTALL\\/* | \ /usr/ucb/* ) ;; *) *************** *** 1510,1527 **** for ac_prog in ginstall scoinst install; do for ac_exec_ext in '' $ac_executable_extensions; do ! if $as_executable_p "$as_dir/$ac_prog$ac_exec_ext"; then ! if test $ac_prog = install && ! grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then ! # AIX install. It has an incompatible calling convention. ! : ! elif test $ac_prog = install && ! grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then ! # program-specific install script used by HP pwplus--don't use. ! : ! else ! ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c" ! break 3 ! fi ! fi done done --- 1545,1562 ---- for ac_prog in ginstall scoinst install; do for ac_exec_ext in '' $ac_executable_extensions; do ! if $as_executable_p "$as_dir/$ac_prog$ac_exec_ext"; then ! if test $ac_prog = install && ! grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then ! # AIX install. It has an incompatible calling convention. ! : ! elif test $ac_prog = install && ! grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then ! # program-specific install script used by HP pwplus--don't use. ! : ! else ! ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c" ! break 3 ! fi ! fi done done *************** *** 1667,1671 **** echo "$as_me:$LINENO: checking whether ${MAKE-make} sets \$(MAKE)" >&5 echo $ECHO_N "checking whether ${MAKE-make} sets \$(MAKE)... $ECHO_C" >&6 ! set dummy ${MAKE-make}; ac_make=`echo "$2" | sed 'y,./+-,__p_,'` if eval "test \"\${ac_cv_prog_make_${ac_make}_set+set}\" = set"; then echo $ECHO_N "(cached) $ECHO_C" >&6 --- 1702,1706 ---- echo "$as_me:$LINENO: checking whether ${MAKE-make} sets \$(MAKE)" >&5 echo $ECHO_N "checking whether ${MAKE-make} sets \$(MAKE)... $ECHO_C" >&6 ! set dummy ${MAKE-make}; ac_make=`echo "$2" | sed 'y,:./+-,___p_,'` if eval "test \"\${ac_cv_prog_make_${ac_make}_set+set}\" = set"; then echo $ECHO_N "(cached) $ECHO_C" >&6 *************** *** 1723,1727 **** # Define the identity of the package. PACKAGE='gsl' ! VERSION='1.4' --- 1758,1762 ---- # Define the identity of the package. PACKAGE='gsl' ! VERSION='1.5' *************** *** 1877,1881 **** ! GSL_LT_VERSION="5:0:5" GSL_LT_CBLAS_VERSION="0:0:0" --- 1912,1916 ---- ! GSL_LT_VERSION="6:0:6" GSL_LT_CBLAS_VERSION="0:0:0" *************** *** 1900,1904 **** echo "$as_me:$LINENO: checking whether ${MAKE-make} sets \$(MAKE)" >&5 echo $ECHO_N "checking whether ${MAKE-make} sets \$(MAKE)... $ECHO_C" >&6 ! set dummy ${MAKE-make}; ac_make=`echo "$2" | sed 'y,./+-,__p_,'` if eval "test \"\${ac_cv_prog_make_${ac_make}_set+set}\" = set"; then echo $ECHO_N "(cached) $ECHO_C" >&6 --- 1935,1939 ---- echo "$as_me:$LINENO: checking whether ${MAKE-make} sets \$(MAKE)" >&5 echo $ECHO_N "checking whether ${MAKE-make} sets \$(MAKE)... $ECHO_C" >&6 ! set dummy ${MAKE-make}; ac_make=`echo "$2" | sed 'y,:./+-,___p_,'` if eval "test \"\${ac_cv_prog_make_${ac_make}_set+set}\" = set"; then echo $ECHO_N "(cached) $ECHO_C" >&6 *************** *** 2325,2329 **** cat >conftest.$ac_ext <<_ACEOF - #line $LINENO "configure" /* confdefs.h. */ _ACEOF --- 2360,2363 ---- *************** *** 2345,2350 **** # It will help us diagnose broken compilers, and finding out an intuition # of exeext. ! echo "$as_me:$LINENO: checking for C compiler default output" >&5 ! echo $ECHO_N "checking for C compiler default output... $ECHO_C" >&6 ac_link_default=`echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'` if { (eval echo "$as_me:$LINENO: \"$ac_link_default\"") >&5 --- 2379,2384 ---- # It will help us diagnose broken compilers, and finding out an intuition # of exeext. ! echo "$as_me:$LINENO: checking for C compiler default output file name" >&5 ! echo $ECHO_N "checking for C compiler default output file name... $ECHO_C" >&6 ac_link_default=`echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'` if { (eval echo "$as_me:$LINENO: \"$ac_link_default\"") >&5 *************** *** 2366,2386 **** case $ac_file in *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.o | *.obj ) ! ;; conftest.$ac_ext ) ! # This is the source file. ! ;; [ab].out ) ! # We found the default executable, but exeext='' is most ! # certainly right. ! break;; *.* ) ! ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` ! # FIXME: I believe we export ac_cv_exeext for Libtool, ! # but it would be cool to find out if it's true. Does anybody ! # maintain Libtool? --akim. ! export ac_cv_exeext ! break;; * ) ! break;; esac done --- 2400,2420 ---- case $ac_file in *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.o | *.obj ) ! ;; conftest.$ac_ext ) ! # This is the source file. ! ;; [ab].out ) ! # We found the default executable, but exeext='' is most ! # certainly right. ! break;; *.* ) ! ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` ! # FIXME: I believe we export ac_cv_exeext for Libtool, ! # but it would be cool to find out if it's true. Does anybody ! # maintain Libtool? --akim. ! export ac_cv_exeext ! break;; * ) ! break;; esac done *************** *** 2456,2461 **** *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.o | *.obj ) ;; *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` ! export ac_cv_exeext ! break;; * ) break;; esac --- 2490,2495 ---- *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.o | *.obj ) ;; *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` ! export ac_cv_exeext ! break;; * ) break;; esac *************** *** 2482,2486 **** else cat >conftest.$ac_ext <<_ACEOF - #line $LINENO "configure" /* confdefs.h. */ _ACEOF --- 2516,2519 ---- *************** *** 2533,2537 **** else cat >conftest.$ac_ext <<_ACEOF - #line $LINENO "configure" /* confdefs.h. */ _ACEOF --- 2566,2569 ---- *************** *** 2553,2561 **** rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 ! (eval $ac_compile) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && ! { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 --- 2585,2603 ---- rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 ! (eval $ac_compile) 2>conftest.er1 ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && ! { ac_try='test -z "$ac_c_werror_flag" ! || test ! -s conftest.err' ! { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ! (eval $ac_try) 2>&5 ! ac_status=$? ! echo "$as_me:$LINENO: \$? = $ac_status" >&5 ! (exit $ac_status); }; } && ! { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 *************** *** 2570,2574 **** ac_compiler_gnu=no fi ! rm -f conftest.$ac_objext conftest.$ac_ext ac_cv_c_compiler_gnu=$ac_compiler_gnu --- 2612,2616 ---- ac_compiler_gnu=no fi ! rm -f conftest.err conftest.$ac_objext conftest.$ac_ext ac_cv_c_compiler_gnu=$ac_compiler_gnu *************** *** 2586,2590 **** else cat >conftest.$ac_ext <<_ACEOF - #line $LINENO "configure" /* confdefs.h. */ _ACEOF --- 2628,2631 ---- *************** *** 2603,2611 **** rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 ! (eval $ac_compile) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && ! { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 --- 2644,2662 ---- rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 ! (eval $ac_compile) 2>conftest.er1 ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && ! { ac_try='test -z "$ac_c_werror_flag" ! || test ! -s conftest.err' ! { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ! (eval $ac_try) 2>&5 ! ac_status=$? ! echo "$as_me:$LINENO: \$? = $ac_status" >&5 ! (exit $ac_status); }; } && ! { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 *************** *** 2620,2624 **** ac_cv_prog_cc_g=no fi ! rm -f conftest.$ac_objext conftest.$ac_ext fi echo "$as_me:$LINENO: result: $ac_cv_prog_cc_g" >&5 --- 2671,2675 ---- ac_cv_prog_cc_g=no fi ! rm -f conftest.err conftest.$ac_objext conftest.$ac_ext fi echo "$as_me:$LINENO: result: $ac_cv_prog_cc_g" >&5 *************** *** 2647,2651 **** ac_save_CC=$CC cat >conftest.$ac_ext <<_ACEOF - #line $LINENO "configure" /* confdefs.h. */ _ACEOF --- 2698,2701 ---- *************** *** 2675,2678 **** --- 2725,2738 ---- return s; } + + /* OSF 4.0 Compaq cc is some sort of almost-ANSI by default. It has + function prototypes and stuff, but not '\xHH' hex character constants. + These don't provoke an error unfortunately, instead are silently treated + as 'x'. The following induces an error, until -std1 is added to get + proper ANSI mode. Curiously '\x00'!='x' always comes out true, for an + array size at least. It's necessary to write '\x00'==0 to get something + that's true only with -std1. */ + int osf4_cc_array ['\x00' == 0 ? 1 : -1]; + int test (int i, double x); struct s1 {int (*f) (int a);}; *************** *** 2701,2709 **** rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 ! (eval $ac_compile) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && ! { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 --- 2761,2779 ---- rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 ! (eval $ac_compile) 2>conftest.er1 ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && ! { ac_try='test -z "$ac_c_werror_flag" ! || test ! -s conftest.err' ! { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ! (eval $ac_try) 2>&5 ! ac_status=$? ! echo "$as_me:$LINENO: \$? = $ac_status" >&5 ! (exit $ac_status); }; } && ! { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 *************** *** 2718,2722 **** fi ! rm -f conftest.$ac_objext done rm -f conftest.$ac_ext conftest.$ac_objext --- 2788,2792 ---- fi ! rm -f conftest.err conftest.$ac_objext done rm -f conftest.$ac_ext conftest.$ac_objext *************** *** 2746,2754 **** rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 ! (eval $ac_compile) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && ! { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 --- 2816,2834 ---- rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 ! (eval $ac_compile) 2>conftest.er1 ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && ! { ac_try='test -z "$ac_c_werror_flag" ! || test ! -s conftest.err' ! { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ! (eval $ac_try) 2>&5 ! ac_status=$? ! echo "$as_me:$LINENO: \$? = $ac_status" >&5 ! (exit $ac_status); }; } && ! { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 *************** *** 2757,2762 **** (exit $ac_status); }; }; then for ac_declaration in \ ! ''\ ! '#include ' \ 'extern "C" void std::exit (int) throw (); using std::exit;' \ 'extern "C" void std::exit (int); using std::exit;' \ --- 2837,2841 ---- (exit $ac_status); }; }; then for ac_declaration in \ ! '' \ 'extern "C" void std::exit (int) throw (); using std::exit;' \ 'extern "C" void std::exit (int); using std::exit;' \ *************** *** 2766,2770 **** do cat >conftest.$ac_ext <<_ACEOF - #line $LINENO "configure" /* confdefs.h. */ _ACEOF --- 2845,2848 ---- *************** *** 2772,2777 **** cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ - #include $ac_declaration int main () --- 2850,2855 ---- cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_declaration + #include int main () *************** *** 2784,2792 **** rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 ! (eval $ac_compile) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && ! { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 --- 2862,2880 ---- rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 ! (eval $ac_compile) 2>conftest.er1 ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && ! { ac_try='test -z "$ac_c_werror_flag" ! || test ! -s conftest.err' ! { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ! (eval $ac_try) 2>&5 ! ac_status=$? ! echo "$as_me:$LINENO: \$? = $ac_status" >&5 ! (exit $ac_status); }; } && ! { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 *************** *** 2801,2807 **** continue fi ! rm -f conftest.$ac_objext conftest.$ac_ext cat >conftest.$ac_ext <<_ACEOF - #line $LINENO "configure" /* confdefs.h. */ _ACEOF --- 2889,2894 ---- continue fi ! rm -f conftest.err conftest.$ac_objext conftest.$ac_ext cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF *************** *** 2820,2828 **** rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 ! (eval $ac_compile) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && ! { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 --- 2907,2925 ---- rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 ! (eval $ac_compile) 2>conftest.er1 ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && ! { ac_try='test -z "$ac_c_werror_flag" ! || test ! -s conftest.err' ! { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ! (eval $ac_try) 2>&5 ! ac_status=$? ! echo "$as_me:$LINENO: \$? = $ac_status" >&5 ! (exit $ac_status); }; } && ! { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 *************** *** 2836,2840 **** fi ! rm -f conftest.$ac_objext conftest.$ac_ext done rm -f conftest* --- 2933,2937 ---- fi ! rm -f conftest.err conftest.$ac_objext conftest.$ac_ext done rm -f conftest* *************** *** 2850,2854 **** fi ! rm -f conftest.$ac_objext conftest.$ac_ext ac_ext=c ac_cpp='$CPP $CPPFLAGS' --- 2947,2951 ---- fi ! rm -f conftest.err conftest.$ac_objext conftest.$ac_ext ac_ext=c ac_cpp='$CPP $CPPFLAGS' *************** *** 2885,2889 **** # not just through cpp. "Syntax error" is here to catch this case. cat >conftest.$ac_ext <<_ACEOF - #line $LINENO "configure" /* confdefs.h. */ _ACEOF --- 2982,2985 ---- *************** *** 2896,2900 **** # include #endif ! Syntax error _ACEOF if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 --- 2992,2996 ---- # include #endif ! Syntax error _ACEOF if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 *************** *** 2908,2911 **** --- 3004,3008 ---- if test -s conftest.err; then ac_cpp_err=$ac_c_preproc_warn_flag + ac_cpp_err=$ac_cpp_err$ac_c_werror_flag else ac_cpp_err= *************** *** 2928,2932 **** # can be detected and how. cat >conftest.$ac_ext <<_ACEOF - #line $LINENO "configure" /* confdefs.h. */ _ACEOF --- 3025,3028 ---- *************** *** 2946,2949 **** --- 3042,3046 ---- if test -s conftest.err; then ac_cpp_err=$ac_c_preproc_warn_flag + ac_cpp_err=$ac_cpp_err$ac_c_werror_flag else ac_cpp_err= *************** *** 2992,2996 **** # not just through cpp. "Syntax error" is here to catch this case. cat >conftest.$ac_ext <<_ACEOF - #line $LINENO "configure" /* confdefs.h. */ _ACEOF --- 3089,3092 ---- *************** *** 3003,3007 **** # include #endif ! Syntax error _ACEOF if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 --- 3099,3103 ---- # include #endif ! Syntax error _ACEOF if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 *************** *** 3015,3018 **** --- 3111,3115 ---- if test -s conftest.err; then ac_cpp_err=$ac_c_preproc_warn_flag + ac_cpp_err=$ac_cpp_err$ac_c_werror_flag else ac_cpp_err= *************** *** 3035,3039 **** # can be detected and how. cat >conftest.$ac_ext <<_ACEOF - #line $LINENO "configure" /* confdefs.h. */ _ACEOF --- 3132,3135 ---- *************** *** 3053,3056 **** --- 3149,3153 ---- if test -s conftest.err; then ac_cpp_err=$ac_c_preproc_warn_flag + ac_cpp_err=$ac_cpp_err$ac_c_werror_flag else ac_cpp_err= *************** *** 3102,3105 **** --- 3199,3203 ---- # AFS /usr/afsws/bin/install, which mishandles nonexistent args # SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" + # OS/2's system install, which has a completely different semantic # ./install, which can be erroneously created by make from ./install.sh. echo "$as_me:$LINENO: checking for a BSD-compatible install" >&5 *************** *** 3118,3121 **** --- 3216,3220 ---- ./ | .// | /cC/* | \ /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \ + ?:\\/os2\\/install\\/* | ?:\\/OS2\\/INSTALL\\/* | \ /usr/ucb/* ) ;; *) *************** *** 3125,3142 **** for ac_prog in ginstall scoinst install; do for ac_exec_ext in '' $ac_executable_extensions; do ! if $as_executable_p "$as_dir/$ac_prog$ac_exec_ext"; then ! if test $ac_prog = install && ! grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then ! # AIX install. It has an incompatible calling convention. ! : ! elif test $ac_prog = install && ! grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then ! # program-specific install script used by HP pwplus--don't use. ! : ! else ! ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c" ! break 3 ! fi ! fi done done --- 3224,3241 ---- for ac_prog in ginstall scoinst install; do for ac_exec_ext in '' $ac_executable_extensions; do ! if $as_executable_p "$as_dir/$ac_prog$ac_exec_ext"; then ! if test $ac_prog = install && ! grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then ! # AIX install. It has an incompatible calling convention. ! : ! elif test $ac_prog = install && ! grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then ! # program-specific install script used by HP pwplus--don't use. ! : ! else ! ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c" ! break 3 ! fi ! fi done done *************** *** 4066,4070 **** else cat >conftest.$ac_ext <<_ACEOF - #line $LINENO "configure" /* confdefs.h. */ _ACEOF --- 4165,4168 ---- *************** *** 4087,4095 **** rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 ! (eval $ac_compile) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && ! { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 --- 4185,4203 ---- rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 ! (eval $ac_compile) 2>conftest.er1 ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && ! { ac_try='test -z "$ac_c_werror_flag" ! || test ! -s conftest.err' ! { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ! (eval $ac_try) 2>&5 ! ac_status=$? ! echo "$as_me:$LINENO: \$? = $ac_status" >&5 ! (exit $ac_status); }; } && ! { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 *************** *** 4104,4113 **** ac_cv_header_stdc=no fi ! rm -f conftest.$ac_objext conftest.$ac_ext if test $ac_cv_header_stdc = yes; then # SunOS 4.x string.h does not declare mem*, contrary to ANSI. cat >conftest.$ac_ext <<_ACEOF - #line $LINENO "configure" /* confdefs.h. */ _ACEOF --- 4212,4220 ---- ac_cv_header_stdc=no fi ! rm -f conftest.err conftest.$ac_objext conftest.$ac_ext if test $ac_cv_header_stdc = yes; then # SunOS 4.x string.h does not declare mem*, contrary to ANSI. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF *************** *** 4131,4135 **** # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI. cat >conftest.$ac_ext <<_ACEOF - #line $LINENO "configure" /* confdefs.h. */ _ACEOF --- 4238,4241 ---- *************** *** 4156,4160 **** else cat >conftest.$ac_ext <<_ACEOF - #line $LINENO "configure" /* confdefs.h. */ _ACEOF --- 4262,4265 ---- *************** *** 4168,4174 **** #else # define ISLOWER(c) \ ! (('a' <= (c) && (c) <= 'i') \ ! || ('j' <= (c) && (c) <= 'r') \ ! || ('s' <= (c) && (c) <= 'z')) # define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c)) #endif --- 4273,4279 ---- #else # define ISLOWER(c) \ ! (('a' <= (c) && (c) <= 'i') \ ! || ('j' <= (c) && (c) <= 'r') \ ! || ('s' <= (c) && (c) <= 'z')) # define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c)) #endif *************** *** 4181,4185 **** for (i = 0; i < 256; i++) if (XOR (islower (i), ISLOWER (i)) ! || toupper (i) != TOUPPER (i)) exit(2); exit (0); --- 4286,4290 ---- for (i = 0; i < 256; i++) if (XOR (islower (i), ISLOWER (i)) ! || toupper (i) != TOUPPER (i)) exit(2); exit (0); *************** *** 4206,4210 **** ac_cv_header_stdc=no fi ! rm -f core core.* *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext fi fi --- 4311,4315 ---- ac_cv_header_stdc=no fi ! rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext fi fi *************** *** 4231,4235 **** for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \ ! inttypes.h stdint.h unistd.h do as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` --- 4336,4340 ---- for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \ ! inttypes.h stdint.h unistd.h do as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` *************** *** 4240,4244 **** else cat >conftest.$ac_ext <<_ACEOF - #line $LINENO "configure" /* confdefs.h. */ _ACEOF --- 4345,4348 ---- *************** *** 4252,4260 **** rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 ! (eval $ac_compile) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && ! { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 --- 4356,4374 ---- rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 ! (eval $ac_compile) 2>conftest.er1 ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && ! { ac_try='test -z "$ac_c_werror_flag" ! || test ! -s conftest.err' ! { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ! (eval $ac_try) 2>&5 ! ac_status=$? ! echo "$as_me:$LINENO: \$? = $ac_status" >&5 ! (exit $ac_status); }; } && ! { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 *************** *** 4269,4273 **** eval "$as_ac_Header=no" fi ! rm -f conftest.$ac_objext conftest.$ac_ext fi echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 --- 4383,4387 ---- eval "$as_ac_Header=no" fi ! rm -f conftest.err conftest.$ac_objext conftest.$ac_ext fi echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 *************** *** 4300,4304 **** echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6 cat >conftest.$ac_ext <<_ACEOF - #line $LINENO "configure" /* confdefs.h. */ _ACEOF --- 4414,4417 ---- *************** *** 4311,4319 **** rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 ! (eval $ac_compile) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && ! { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 --- 4424,4442 ---- rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 ! (eval $ac_compile) 2>conftest.er1 ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && ! { ac_try='test -z "$ac_c_werror_flag" ! || test ! -s conftest.err' ! { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ! (eval $ac_try) 2>&5 ! ac_status=$? ! echo "$as_me:$LINENO: \$? = $ac_status" >&5 ! (exit $ac_status); }; } && ! { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 *************** *** 4328,4332 **** ac_header_compiler=no fi ! rm -f conftest.$ac_objext conftest.$ac_ext echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 echo "${ECHO_T}$ac_header_compiler" >&6 --- 4451,4455 ---- ac_header_compiler=no fi ! rm -f conftest.err conftest.$ac_objext conftest.$ac_ext echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 echo "${ECHO_T}$ac_header_compiler" >&6 *************** *** 4336,4340 **** echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6 cat >conftest.$ac_ext <<_ACEOF - #line $LINENO "configure" /* confdefs.h. */ _ACEOF --- 4459,4462 ---- *************** *** 4354,4357 **** --- 4476,4480 ---- if test -s conftest.err; then ac_cpp_err=$ac_c_preproc_warn_flag + ac_cpp_err=$ac_cpp_err$ac_c_werror_flag else ac_cpp_err= *************** *** 4373,4403 **** # So? What about this header? ! case $ac_header_compiler:$ac_header_preproc in ! yes:no ) { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} ! { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 ! echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} ! ( ! cat <<\_ASBOX ! ## ------------------------------------ ## ! ## Report this to bug-autoconf@gnu.org. ## ! ## ------------------------------------ ## ! _ASBOX ! ) | ! sed "s/^/$as_me: WARNING: /" >&2 ;; ! no:yes ) { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} ! { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 ! echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} ( cat <<\_ASBOX ! ## ------------------------------------ ## ! ## Report this to bug-autoconf@gnu.org. ## ! ## ------------------------------------ ## _ASBOX ) | --- 4496,4525 ---- # So? What about this header? ! case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in ! yes:no: ) { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} ! { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 ! echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} ! ac_header_preproc=yes ;; ! no:yes:* ) { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} ! { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 ! echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} ! { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 ! echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} ! { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 ! echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 + echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} ( cat <<\_ASBOX ! ## ------------------------------ ## ! ## Report this to the gsl lists. ## ! ## ------------------------------ ## _ASBOX ) | *************** *** 4410,4414 **** echo $ECHO_N "(cached) $ECHO_C" >&6 else ! eval "$as_ac_Header=$ac_header_preproc" fi echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 --- 4532,4536 ---- echo $ECHO_N "(cached) $ECHO_C" >&6 else ! eval "$as_ac_Header=\$ac_header_preproc" fi echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 *************** *** 4745,4749 **** *-*-irix6*) # Find out which ABI we are using. ! echo '#line 4747 "configure"' > conftest.$ac_ext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 --- 4867,4871 ---- *-*-irix6*) # Find out which ABI we are using. ! echo '#line 4869 "configure"' > conftest.$ac_ext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 *************** *** 4784,4788 **** cat >conftest.$ac_ext <<_ACEOF - #line $LINENO "configure" /* confdefs.h. */ _ACEOF --- 4906,4909 ---- *************** *** 4801,4809 **** rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 ! (eval $ac_link) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && ! { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 --- 4922,4940 ---- rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 ! (eval $ac_link) 2>conftest.er1 ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && ! { ac_try='test -z "$ac_c_werror_flag" ! || test ! -s conftest.err' ! { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ! (eval $ac_try) 2>&5 ! ac_status=$? ! echo "$as_me:$LINENO: \$? = $ac_status" >&5 ! (exit $ac_status); }; } && ! { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 *************** *** 4818,4822 **** lt_cv_cc_needs_belf=no fi ! rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ac_ext=c ac_cpp='$CPP $CPPFLAGS' --- 4949,4954 ---- lt_cv_cc_needs_belf=no fi ! rm -f conftest.err conftest.$ac_objext \ ! conftest$ac_exeext conftest.$ac_ext ac_ext=c ac_cpp='$CPP $CPPFLAGS' *************** *** 5113,5117 **** CFLAGS="$CFLAGS $lt_cv_prog_cc_pic -DPIC" cat >conftest.$ac_ext <<_ACEOF - #line $LINENO "configure" /* confdefs.h. */ _ACEOF --- 5245,5248 ---- *************** *** 5130,5138 **** rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 ! (eval $ac_compile) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && ! { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 --- 5261,5279 ---- rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 ! (eval $ac_compile) 2>conftest.er1 ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && ! { ac_try='test -z "$ac_c_werror_flag" ! || test ! -s conftest.err' ! { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ! (eval $ac_try) 2>&5 ! ac_status=$? ! echo "$as_me:$LINENO: \$? = $ac_status" >&5 ! (exit $ac_status); }; } && ! { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 *************** *** 5163,5167 **** fi ! rm -f conftest.$ac_objext conftest.$ac_ext CFLAGS="$save_CFLAGS" --- 5304,5308 ---- fi ! rm -f conftest.err conftest.$ac_objext conftest.$ac_ext CFLAGS="$save_CFLAGS" *************** *** 5201,5205 **** LDFLAGS="$LDFLAGS $lt_cv_prog_cc_static" cat >conftest.$ac_ext <<_ACEOF - #line $LINENO "configure" /* confdefs.h. */ _ACEOF --- 5342,5345 ---- *************** *** 5218,5226 **** rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 ! (eval $ac_link) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && ! { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 --- 5358,5376 ---- rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 ! (eval $ac_link) 2>conftest.er1 ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && ! { ac_try='test -z "$ac_c_werror_flag" ! || test ! -s conftest.err' ! { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ! (eval $ac_try) 2>&5 ! ac_status=$? ! echo "$as_me:$LINENO: \$? = $ac_status" >&5 ! (exit $ac_status); }; } && ! { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 *************** *** 5234,5238 **** fi ! rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext LDFLAGS="$save_LDFLAGS" --- 5384,5389 ---- fi ! rm -f conftest.err conftest.$ac_objext \ ! conftest$ac_exeext conftest.$ac_ext LDFLAGS="$save_LDFLAGS" *************** *** 5274,5278 **** CFLAGS="$CFLAGS -o out/conftest2.$ac_objext" compiler_c_o=no ! if { (eval echo configure:5276: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>out/conftest.err; } && test -s out/conftest2.$ac_objext; then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings --- 5425,5429 ---- CFLAGS="$CFLAGS -o out/conftest2.$ac_objext" compiler_c_o=no ! if { (eval echo configure:5427: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>out/conftest.err; } && test -s out/conftest2.$ac_objext; then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings *************** *** 5315,5319 **** ac_objext=lo cat >conftest.$ac_ext <<_ACEOF - #line $LINENO "configure" /* confdefs.h. */ _ACEOF --- 5466,5469 ---- *************** *** 5332,5340 **** rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 ! (eval $ac_compile) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && ! { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 --- 5482,5500 ---- rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 ! (eval $ac_compile) 2>conftest.er1 ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && ! { ac_try='test -z "$ac_c_werror_flag" ! || test ! -s conftest.err' ! { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ! (eval $ac_try) 2>&5 ! ac_status=$? ! echo "$as_me:$LINENO: \$? = $ac_status" >&5 ! (exit $ac_status); }; } && ! { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 *************** *** 5355,5359 **** fi ! rm -f conftest.$ac_objext conftest.$ac_ext ac_objext="$save_objext" CFLAGS="$save_CFLAGS" --- 5515,5519 ---- fi ! rm -f conftest.err conftest.$ac_objext conftest.$ac_ext ac_objext="$save_objext" CFLAGS="$save_CFLAGS" *************** *** 5400,5404 **** compiler_rtti_exceptions=no cat >conftest.$ac_ext <<_ACEOF - #line $LINENO "configure" /* confdefs.h. */ _ACEOF --- 5560,5563 ---- *************** *** 5417,5425 **** rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 ! (eval $ac_compile) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && ! { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 --- 5576,5594 ---- rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 ! (eval $ac_compile) 2>conftest.er1 ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && ! { ac_try='test -z "$ac_c_werror_flag" ! || test ! -s conftest.err' ! { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ! (eval $ac_try) 2>&5 ! ac_status=$? ! echo "$as_me:$LINENO: \$? = $ac_status" >&5 ! (exit $ac_status); }; } && ! { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 *************** *** 5440,5444 **** fi ! rm -f conftest.$ac_objext conftest.$ac_ext CFLAGS="$save_CFLAGS" echo "$as_me:$LINENO: result: $compiler_rtti_exceptions" >&5 --- 5609,5613 ---- fi ! rm -f conftest.err conftest.$ac_objext conftest.$ac_ext CFLAGS="$save_CFLAGS" echo "$as_me:$LINENO: result: $compiler_rtti_exceptions" >&5 *************** *** 6687,6691 **** else cat >conftest.$ac_ext <<_ACEOF - #line $LINENO "configure" /* confdefs.h. */ _ACEOF --- 6856,6859 ---- *************** *** 6693,6700 **** --- 6861,6873 ---- cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ + /* Define shl_load to an innocuous variant, in case declares shl_load. + For example, HP-UX 11i declares gettimeofday. */ + #define shl_load innocuous_shl_load + /* System header to define __stub macros and hopefully few prototypes, which can conflict with char shl_load (); below. Prefer to if __STDC__ is defined, since exists even on freestanding compilers. */ + #ifdef __STDC__ # include *************** *** 6702,6705 **** --- 6875,6881 ---- # include #endif + + #undef shl_load + /* Override any gcc2 internal prototype to avoid an error. */ #ifdef __cplusplus *************** *** 6732,6740 **** rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 ! (eval $ac_link) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && ! { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 --- 6908,6926 ---- rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 ! (eval $ac_link) 2>conftest.er1 ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && ! { ac_try='test -z "$ac_c_werror_flag" ! || test ! -s conftest.err' ! { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ! (eval $ac_try) 2>&5 ! ac_status=$? ! echo "$as_me:$LINENO: \$? = $ac_status" >&5 ! (exit $ac_status); }; } && ! { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 *************** *** 6749,6753 **** ac_cv_func_shl_load=no fi ! rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext fi echo "$as_me:$LINENO: result: $ac_cv_func_shl_load" >&5 --- 6935,6940 ---- ac_cv_func_shl_load=no fi ! rm -f conftest.err conftest.$ac_objext \ ! conftest$ac_exeext conftest.$ac_ext fi echo "$as_me:$LINENO: result: $ac_cv_func_shl_load" >&5 *************** *** 6764,6768 **** LIBS="-ldld $LIBS" cat >conftest.$ac_ext <<_ACEOF - #line $LINENO "configure" /* confdefs.h. */ _ACEOF --- 6951,6954 ---- *************** *** 6788,6796 **** rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 ! (eval $ac_link) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && ! { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 --- 6974,6992 ---- rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 ! (eval $ac_link) 2>conftest.er1 ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && ! { ac_try='test -z "$ac_c_werror_flag" ! || test ! -s conftest.err' ! { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ! (eval $ac_try) 2>&5 ! ac_status=$? ! echo "$as_me:$LINENO: \$? = $ac_status" >&5 ! (exit $ac_status); }; } && ! { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 *************** *** 6805,6809 **** ac_cv_lib_dld_shl_load=no fi ! rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi --- 7001,7006 ---- ac_cv_lib_dld_shl_load=no fi ! rm -f conftest.err conftest.$ac_objext \ ! conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi *************** *** 6819,6823 **** else cat >conftest.$ac_ext <<_ACEOF - #line $LINENO "configure" /* confdefs.h. */ _ACEOF --- 7016,7019 ---- *************** *** 6825,6832 **** --- 7021,7033 ---- cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ + /* Define dlopen to an innocuous variant, in case declares dlopen. + For example, HP-UX 11i declares gettimeofday. */ + #define dlopen innocuous_dlopen + /* System header to define __stub macros and hopefully few prototypes, which can conflict with char dlopen (); below. Prefer to if __STDC__ is defined, since exists even on freestanding compilers. */ + #ifdef __STDC__ # include *************** *** 6834,6837 **** --- 7035,7041 ---- # include #endif + + #undef dlopen + /* Override any gcc2 internal prototype to avoid an error. */ #ifdef __cplusplus *************** *** 6864,6872 **** rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 ! (eval $ac_link) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && ! { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 --- 7068,7086 ---- rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 ! (eval $ac_link) 2>conftest.er1 ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && ! { ac_try='test -z "$ac_c_werror_flag" ! || test ! -s conftest.err' ! { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ! (eval $ac_try) 2>&5 ! ac_status=$? ! echo "$as_me:$LINENO: \$? = $ac_status" >&5 ! (exit $ac_status); }; } && ! { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 *************** *** 6881,6885 **** ac_cv_func_dlopen=no fi ! rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext fi echo "$as_me:$LINENO: result: $ac_cv_func_dlopen" >&5 --- 7095,7100 ---- ac_cv_func_dlopen=no fi ! rm -f conftest.err conftest.$ac_objext \ ! conftest$ac_exeext conftest.$ac_ext fi echo "$as_me:$LINENO: result: $ac_cv_func_dlopen" >&5 *************** *** 6896,6900 **** LIBS="-ldl $LIBS" cat >conftest.$ac_ext <<_ACEOF - #line $LINENO "configure" /* confdefs.h. */ _ACEOF --- 7111,7114 ---- *************** *** 6920,6928 **** rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 ! (eval $ac_link) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && ! { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 --- 7134,7152 ---- rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 ! (eval $ac_link) 2>conftest.er1 ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && ! { ac_try='test -z "$ac_c_werror_flag" ! || test ! -s conftest.err' ! { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ! (eval $ac_try) 2>&5 ! ac_status=$? ! echo "$as_me:$LINENO: \$? = $ac_status" >&5 ! (exit $ac_status); }; } && ! { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 *************** *** 6937,6941 **** ac_cv_lib_dl_dlopen=no fi ! rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi --- 7161,7166 ---- ac_cv_lib_dl_dlopen=no fi ! rm -f conftest.err conftest.$ac_objext \ ! conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi *************** *** 6953,6957 **** LIBS="-lsvld $LIBS" cat >conftest.$ac_ext <<_ACEOF - #line $LINENO "configure" /* confdefs.h. */ _ACEOF --- 7178,7181 ---- *************** *** 6977,6985 **** rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 ! (eval $ac_link) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && ! { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 --- 7201,7219 ---- rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 ! (eval $ac_link) 2>conftest.er1 ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && ! { ac_try='test -z "$ac_c_werror_flag" ! || test ! -s conftest.err' ! { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ! (eval $ac_try) 2>&5 ! ac_status=$? ! echo "$as_me:$LINENO: \$? = $ac_status" >&5 ! (exit $ac_status); }; } && ! { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 *************** *** 6994,6998 **** ac_cv_lib_svld_dlopen=no fi ! rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi --- 7228,7233 ---- ac_cv_lib_svld_dlopen=no fi ! rm -f conftest.err conftest.$ac_objext \ ! conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi *************** *** 7010,7014 **** LIBS="-ldld $LIBS" cat >conftest.$ac_ext <<_ACEOF - #line $LINENO "configure" /* confdefs.h. */ _ACEOF --- 7245,7248 ---- *************** *** 7034,7042 **** rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 ! (eval $ac_link) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && ! { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 --- 7268,7286 ---- rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 ! (eval $ac_link) 2>conftest.er1 ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && ! { ac_try='test -z "$ac_c_werror_flag" ! || test ! -s conftest.err' ! { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ! (eval $ac_try) 2>&5 ! ac_status=$? ! echo "$as_me:$LINENO: \$? = $ac_status" >&5 ! (exit $ac_status); }; } && ! { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 *************** *** 7051,7055 **** ac_cv_lib_dld_dld_link=no fi ! rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi --- 7295,7300 ---- ac_cv_lib_dld_dld_link=no fi ! rm -f conftest.err conftest.$ac_objext \ ! conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi *************** *** 7106,7110 **** lt_status=$lt_dlunknown cat > conftest.$ac_ext < conftest.$ac_ext < conftest.$ac_ext < conftest.$ac_ext <conftest.$ac_ext <<_ACEOF - #line $LINENO "configure" /* confdefs.h. */ _ACEOF --- 8183,8186 ---- *************** *** 7958,7966 **** rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 ! (eval $ac_compile) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && ! { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 --- 8202,8220 ---- rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 ! (eval $ac_compile) 2>conftest.er1 ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && ! { ac_try='test -z "$ac_c_werror_flag" ! || test ! -s conftest.err' ! { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ! (eval $ac_try) 2>&5 ! ac_status=$? ! echo "$as_me:$LINENO: \$? = $ac_status" >&5 ! (exit $ac_status); }; } && ! { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 *************** *** 7975,7979 **** ac_cv_type_size_t=no fi ! rm -f conftest.$ac_objext conftest.$ac_ext fi echo "$as_me:$LINENO: result: $ac_cv_type_size_t" >&5 --- 8229,8233 ---- ac_cv_type_size_t=no fi ! rm -f conftest.err conftest.$ac_objext conftest.$ac_ext fi echo "$as_me:$LINENO: result: $ac_cv_type_size_t" >&5 *************** *** 7995,7999 **** else cat >conftest.$ac_ext <<_ACEOF - #line $LINENO "configure" /* confdefs.h. */ _ACEOF --- 8249,8252 ---- *************** *** 8014,8022 **** rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 ! (eval $ac_compile) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && ! { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 --- 8267,8285 ---- rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 ! (eval $ac_compile) 2>conftest.er1 ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && ! { ac_try='test -z "$ac_c_werror_flag" ! || test ! -s conftest.err' ! { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ! (eval $ac_try) 2>&5 ! ac_status=$? ! echo "$as_me:$LINENO: \$? = $ac_status" >&5 ! (exit $ac_status); }; } && ! { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 *************** *** 8031,8035 **** ac_cv_c_volatile=no fi ! rm -f conftest.$ac_objext conftest.$ac_ext fi echo "$as_me:$LINENO: result: $ac_cv_c_volatile" >&5 --- 8294,8298 ---- ac_cv_c_volatile=no fi ! rm -f conftest.err conftest.$ac_objext conftest.$ac_ext fi echo "$as_me:$LINENO: result: $ac_cv_c_volatile" >&5 *************** *** 8051,8055 **** for ac_kw in inline __inline__ __inline; do cat >conftest.$ac_ext <<_ACEOF - #line $LINENO "configure" /* confdefs.h. */ _ACEOF --- 8314,8317 ---- *************** *** 8066,8074 **** rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 ! (eval $ac_compile) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && ! { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 --- 8328,8346 ---- rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 ! (eval $ac_compile) 2>conftest.er1 ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && ! { ac_try='test -z "$ac_c_werror_flag" ! || test ! -s conftest.err' ! { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ! (eval $ac_try) 2>&5 ! ac_status=$? ! echo "$as_me:$LINENO: \$? = $ac_status" >&5 ! (exit $ac_status); }; } && ! { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 *************** *** 8082,8086 **** fi ! rm -f conftest.$ac_objext conftest.$ac_ext done --- 8354,8358 ---- fi ! rm -f conftest.err conftest.$ac_objext conftest.$ac_ext done *************** *** 8088,8102 **** echo "$as_me:$LINENO: result: $ac_cv_c_inline" >&5 echo "${ECHO_T}$ac_cv_c_inline" >&6 case $ac_cv_c_inline in inline | yes) ;; ! no) ! cat >>confdefs.h <<\_ACEOF ! #define inline ! _ACEOF ! ;; ! *) cat >>confdefs.h <<_ACEOF ! #define inline $ac_cv_c_inline _ACEOF ! ;; esac --- 8360,8378 ---- echo "$as_me:$LINENO: result: $ac_cv_c_inline" >&5 echo "${ECHO_T}$ac_cv_c_inline" >&6 + + case $ac_cv_c_inline in inline | yes) ;; ! *) ! case $ac_cv_c_inline in ! no) ac_val=;; ! *) ac_val=$ac_cv_c_inline;; ! esac ! cat >>confdefs.h <<_ACEOF ! #ifndef __cplusplus ! #define inline $ac_val ! #endif _ACEOF ! ;; esac *************** *** 8115,8119 **** ac_cv_c_extern_inline=no cat >conftest.$ac_ext <<_ACEOF - #line $LINENO "configure" /* confdefs.h. */ _ACEOF --- 8391,8394 ---- *************** *** 8134,8142 **** rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 ! (eval $ac_compile) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && ! { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 --- 8409,8427 ---- rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 ! (eval $ac_compile) 2>conftest.er1 ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && ! { ac_try='test -z "$ac_c_werror_flag" ! || test ! -s conftest.err' ! { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ! (eval $ac_try) 2>&5 ! ac_status=$? ! echo "$as_me:$LINENO: \$? = $ac_status" >&5 ! (exit $ac_status); }; } && ! { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 *************** *** 8150,8154 **** fi ! rm -f conftest.$ac_objext conftest.$ac_ext fi --- 8435,8439 ---- fi ! rm -f conftest.err conftest.$ac_objext conftest.$ac_ext fi *************** *** 8177,8181 **** else cat >conftest.$ac_ext <<_ACEOF - #line $LINENO "configure" /* confdefs.h. */ _ACEOF --- 8462,8465 ---- *************** *** 8183,8190 **** --- 8467,8479 ---- cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ + /* Define $ac_func to an innocuous variant, in case declares $ac_func. + For example, HP-UX 11i declares gettimeofday. */ + #define $ac_func innocuous_$ac_func + /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $ac_func (); below. Prefer to if __STDC__ is defined, since exists even on freestanding compilers. */ + #ifdef __STDC__ # include *************** *** 8192,8195 **** --- 8481,8487 ---- # include #endif + + #undef $ac_func + /* Override any gcc2 internal prototype to avoid an error. */ #ifdef __cplusplus *************** *** 8222,8230 **** rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 ! (eval $ac_link) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && ! { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 --- 8514,8532 ---- rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 ! (eval $ac_link) 2>conftest.er1 ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && ! { ac_try='test -z "$ac_c_werror_flag" ! || test ! -s conftest.err' ! { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ! (eval $ac_try) 2>&5 ! ac_status=$? ! echo "$as_me:$LINENO: \$? = $ac_status" >&5 ! (exit $ac_status); }; } && ! { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 *************** *** 8239,8243 **** eval "$as_ac_var=no" fi ! rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext fi echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 --- 8541,8546 ---- eval "$as_ac_var=no" fi ! rm -f conftest.err conftest.$ac_objext \ ! conftest$ac_exeext conftest.$ac_ext fi echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 *************** *** 8254,8258 **** else cat >conftest.$ac_ext <<_ACEOF - #line $LINENO "configure" /* confdefs.h. */ _ACEOF --- 8557,8560 ---- *************** *** 8260,8267 **** --- 8562,8574 ---- cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ + /* Define _doprnt to an innocuous variant, in case declares _doprnt. + For example, HP-UX 11i declares gettimeofday. */ + #define _doprnt innocuous__doprnt + /* System header to define __stub macros and hopefully few prototypes, which can conflict with char _doprnt (); below. Prefer to if __STDC__ is defined, since exists even on freestanding compilers. */ + #ifdef __STDC__ # include *************** *** 8269,8272 **** --- 8576,8582 ---- # include #endif + + #undef _doprnt + /* Override any gcc2 internal prototype to avoid an error. */ #ifdef __cplusplus *************** *** 8299,8307 **** rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 ! (eval $ac_link) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && ! { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 --- 8609,8627 ---- rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 ! (eval $ac_link) 2>conftest.er1 ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && ! { ac_try='test -z "$ac_c_werror_flag" ! || test ! -s conftest.err' ! { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ! (eval $ac_try) 2>&5 ! ac_status=$? ! echo "$as_me:$LINENO: \$? = $ac_status" >&5 ! (exit $ac_status); }; } && ! { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 *************** *** 8316,8320 **** ac_cv_func__doprnt=no fi ! rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext fi echo "$as_me:$LINENO: result: $ac_cv_func__doprnt" >&5 --- 8636,8641 ---- ac_cv_func__doprnt=no fi ! rm -f conftest.err conftest.$ac_objext \ ! conftest$ac_exeext conftest.$ac_ext fi echo "$as_me:$LINENO: result: $ac_cv_func__doprnt" >&5 *************** *** 8347,8351 **** else cat >conftest.$ac_ext <<_ACEOF - #line $LINENO "configure" /* confdefs.h. */ _ACEOF --- 8668,8671 ---- *************** *** 8353,8360 **** --- 8673,8685 ---- cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ + /* Define $ac_func to an innocuous variant, in case declares $ac_func. + For example, HP-UX 11i declares gettimeofday. */ + #define $ac_func innocuous_$ac_func + /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $ac_func (); below. Prefer to if __STDC__ is defined, since exists even on freestanding compilers. */ + #ifdef __STDC__ # include *************** *** 8362,8365 **** --- 8687,8693 ---- # include #endif + + #undef $ac_func + /* Override any gcc2 internal prototype to avoid an error. */ #ifdef __cplusplus *************** *** 8392,8400 **** rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 ! (eval $ac_link) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && ! { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 --- 8720,8738 ---- rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 ! (eval $ac_link) 2>conftest.er1 ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && ! { ac_try='test -z "$ac_c_werror_flag" ! || test ! -s conftest.err' ! { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ! (eval $ac_try) 2>&5 ! ac_status=$? ! echo "$as_me:$LINENO: \$? = $ac_status" >&5 ! (exit $ac_status); }; } && ! { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 *************** *** 8409,8413 **** eval "$as_ac_var=no" fi ! rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext fi echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 --- 8747,8752 ---- eval "$as_ac_var=no" fi ! rm -f conftest.err conftest.$ac_objext \ ! conftest$ac_exeext conftest.$ac_ext fi echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 *************** *** 8419,8423 **** else ! LIBOBJS="$LIBOBJS $ac_func.$ac_objext" fi done --- 8758,8769 ---- else ! case $LIBOBJS in ! "$ac_func.$ac_objext" | \ ! *" $ac_func.$ac_objext" | \ ! "$ac_func.$ac_objext "* | \ ! *" $ac_func.$ac_objext "* ) ;; ! *) LIBOBJS="$LIBOBJS $ac_func.$ac_objext" ;; ! esac ! fi done *************** *** 8431,8435 **** else cat >conftest.$ac_ext <<_ACEOF - #line $LINENO "configure" /* confdefs.h. */ _ACEOF --- 8777,8780 ---- *************** *** 8475,8479 **** LIBS="-lm $LIBS" cat >conftest.$ac_ext <<_ACEOF - #line $LINENO "configure" /* confdefs.h. */ _ACEOF --- 8820,8823 ---- *************** *** 8499,8507 **** rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 ! (eval $ac_link) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && ! { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 --- 8843,8861 ---- rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 ! (eval $ac_link) 2>conftest.er1 ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && ! { ac_try='test -z "$ac_c_werror_flag" ! || test ! -s conftest.err' ! { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ! (eval $ac_try) 2>&5 ! ac_status=$? ! echo "$as_me:$LINENO: \$? = $ac_status" >&5 ! (exit $ac_status); }; } && ! { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 *************** *** 8516,8520 **** ac_cv_lib_m_cos=no fi ! rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi --- 8870,8875 ---- ac_cv_lib_m_cos=no fi ! rm -f conftest.err conftest.$ac_objext \ ! conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi *************** *** 8538,8542 **** else cat >conftest.$ac_ext <<_ACEOF - #line $LINENO "configure" /* confdefs.h. */ _ACEOF --- 8893,8896 ---- *************** *** 8544,8548 **** cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ ! #include int --- 8898,8903 ---- cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ ! #define _GNU_SOURCE 1 ! #include int *************** *** 8559,8567 **** rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 ! (eval $ac_compile) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && ! { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 --- 8914,8932 ---- rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 ! (eval $ac_compile) 2>conftest.er1 ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && ! { ac_try='test -z "$ac_c_werror_flag" ! || test ! -s conftest.err' ! { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ! (eval $ac_try) 2>&5 ! ac_status=$? ! echo "$as_me:$LINENO: \$? = $ac_status" >&5 ! (exit $ac_status); }; } && ! { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 *************** *** 8576,8580 **** ac_cv_have_decl_feenableexcept=no fi ! rm -f conftest.$ac_objext conftest.$ac_ext fi echo "$as_me:$LINENO: result: $ac_cv_have_decl_feenableexcept" >&5 --- 8941,8945 ---- ac_cv_have_decl_feenableexcept=no fi ! rm -f conftest.err conftest.$ac_objext conftest.$ac_ext fi echo "$as_me:$LINENO: result: $ac_cv_have_decl_feenableexcept" >&5 *************** *** 8602,8606 **** else cat >conftest.$ac_ext <<_ACEOF - #line $LINENO "configure" /* confdefs.h. */ _ACEOF --- 8967,8970 ---- *************** *** 8608,8612 **** cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ ! #include int --- 8972,8977 ---- cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ ! #define _GNU_SOURCE 1 ! #include int *************** *** 8623,8631 **** rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 ! (eval $ac_compile) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && ! { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 --- 8988,9006 ---- rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 ! (eval $ac_compile) 2>conftest.er1 ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && ! { ac_try='test -z "$ac_c_werror_flag" ! || test ! -s conftest.err' ! { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ! (eval $ac_try) 2>&5 ! ac_status=$? ! echo "$as_me:$LINENO: \$? = $ac_status" >&5 ! (exit $ac_status); }; } && ! { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 *************** *** 8640,8644 **** ac_cv_have_decl_fesettrapenable=no fi ! rm -f conftest.$ac_objext conftest.$ac_ext fi echo "$as_me:$LINENO: result: $ac_cv_have_decl_fesettrapenable" >&5 --- 9015,9019 ---- ac_cv_have_decl_fesettrapenable=no fi ! rm -f conftest.err conftest.$ac_objext conftest.$ac_ext fi echo "$as_me:$LINENO: result: $ac_cv_have_decl_fesettrapenable" >&5 *************** *** 8666,8670 **** else cat >conftest.$ac_ext <<_ACEOF - #line $LINENO "configure" /* confdefs.h. */ _ACEOF --- 9041,9044 ---- *************** *** 8687,8695 **** rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 ! (eval $ac_compile) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && ! { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 --- 9061,9079 ---- rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 ! (eval $ac_compile) 2>conftest.er1 ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && ! { ac_try='test -z "$ac_c_werror_flag" ! || test ! -s conftest.err' ! { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ! (eval $ac_try) 2>&5 ! ac_status=$? ! echo "$as_me:$LINENO: \$? = $ac_status" >&5 ! (exit $ac_status); }; } && ! { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 *************** *** 8704,8708 **** ac_cv_have_decl_hypot=no fi ! rm -f conftest.$ac_objext conftest.$ac_ext fi echo "$as_me:$LINENO: result: $ac_cv_have_decl_hypot" >&5 --- 9088,9092 ---- ac_cv_have_decl_hypot=no fi ! rm -f conftest.err conftest.$ac_objext conftest.$ac_ext fi echo "$as_me:$LINENO: result: $ac_cv_have_decl_hypot" >&5 *************** *** 8730,8734 **** else cat >conftest.$ac_ext <<_ACEOF - #line $LINENO "configure" /* confdefs.h. */ _ACEOF --- 9114,9117 ---- *************** *** 8751,8759 **** rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 ! (eval $ac_compile) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && ! { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 --- 9134,9152 ---- rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 ! (eval $ac_compile) 2>conftest.er1 ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && ! { ac_try='test -z "$ac_c_werror_flag" ! || test ! -s conftest.err' ! { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ! (eval $ac_try) 2>&5 ! ac_status=$? ! echo "$as_me:$LINENO: \$? = $ac_status" >&5 ! (exit $ac_status); }; } && ! { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 *************** *** 8768,8772 **** ac_cv_have_decl_expm1=no fi ! rm -f conftest.$ac_objext conftest.$ac_ext fi echo "$as_me:$LINENO: result: $ac_cv_have_decl_expm1" >&5 --- 9161,9165 ---- ac_cv_have_decl_expm1=no fi ! rm -f conftest.err conftest.$ac_objext conftest.$ac_ext fi echo "$as_me:$LINENO: result: $ac_cv_have_decl_expm1" >&5 *************** *** 8794,8798 **** else cat >conftest.$ac_ext <<_ACEOF - #line $LINENO "configure" /* confdefs.h. */ _ACEOF --- 9187,9190 ---- *************** *** 8815,8823 **** rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 ! (eval $ac_compile) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && ! { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 --- 9207,9225 ---- rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 ! (eval $ac_compile) 2>conftest.er1 ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && ! { ac_try='test -z "$ac_c_werror_flag" ! || test ! -s conftest.err' ! { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ! (eval $ac_try) 2>&5 ! ac_status=$? ! echo "$as_me:$LINENO: \$? = $ac_status" >&5 ! (exit $ac_status); }; } && ! { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 *************** *** 8832,8836 **** ac_cv_have_decl_acosh=no fi ! rm -f conftest.$ac_objext conftest.$ac_ext fi echo "$as_me:$LINENO: result: $ac_cv_have_decl_acosh" >&5 --- 9234,9238 ---- ac_cv_have_decl_acosh=no fi ! rm -f conftest.err conftest.$ac_objext conftest.$ac_ext fi echo "$as_me:$LINENO: result: $ac_cv_have_decl_acosh" >&5 *************** *** 8858,8862 **** else cat >conftest.$ac_ext <<_ACEOF - #line $LINENO "configure" /* confdefs.h. */ _ACEOF --- 9260,9263 ---- *************** *** 8879,8887 **** rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 ! (eval $ac_compile) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && ! { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 --- 9280,9298 ---- rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 ! (eval $ac_compile) 2>conftest.er1 ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && ! { ac_try='test -z "$ac_c_werror_flag" ! || test ! -s conftest.err' ! { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ! (eval $ac_try) 2>&5 ! ac_status=$? ! echo "$as_me:$LINENO: \$? = $ac_status" >&5 ! (exit $ac_status); }; } && ! { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 *************** *** 8896,8900 **** ac_cv_have_decl_asinh=no fi ! rm -f conftest.$ac_objext conftest.$ac_ext fi echo "$as_me:$LINENO: result: $ac_cv_have_decl_asinh" >&5 --- 9307,9311 ---- ac_cv_have_decl_asinh=no fi ! rm -f conftest.err conftest.$ac_objext conftest.$ac_ext fi echo "$as_me:$LINENO: result: $ac_cv_have_decl_asinh" >&5 *************** *** 8922,8926 **** else cat >conftest.$ac_ext <<_ACEOF - #line $LINENO "configure" /* confdefs.h. */ _ACEOF --- 9333,9336 ---- *************** *** 8943,8951 **** rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 ! (eval $ac_compile) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && ! { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 --- 9353,9371 ---- rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 ! (eval $ac_compile) 2>conftest.er1 ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && ! { ac_try='test -z "$ac_c_werror_flag" ! || test ! -s conftest.err' ! { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ! (eval $ac_try) 2>&5 ! ac_status=$? ! echo "$as_me:$LINENO: \$? = $ac_status" >&5 ! (exit $ac_status); }; } && ! { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 *************** *** 8960,8964 **** ac_cv_have_decl_atanh=no fi ! rm -f conftest.$ac_objext conftest.$ac_ext fi echo "$as_me:$LINENO: result: $ac_cv_have_decl_atanh" >&5 --- 9380,9384 ---- ac_cv_have_decl_atanh=no fi ! rm -f conftest.err conftest.$ac_objext conftest.$ac_ext fi echo "$as_me:$LINENO: result: $ac_cv_have_decl_atanh" >&5 *************** *** 8986,8990 **** else cat >conftest.$ac_ext <<_ACEOF - #line $LINENO "configure" /* confdefs.h. */ _ACEOF --- 9406,9409 ---- *************** *** 9007,9015 **** rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 ! (eval $ac_compile) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && ! { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 --- 9426,9444 ---- rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 ! (eval $ac_compile) 2>conftest.er1 ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && ! { ac_try='test -z "$ac_c_werror_flag" ! || test ! -s conftest.err' ! { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ! (eval $ac_try) 2>&5 ! ac_status=$? ! echo "$as_me:$LINENO: \$? = $ac_status" >&5 ! (exit $ac_status); }; } && ! { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 *************** *** 9024,9028 **** ac_cv_have_decl_ldexp=no fi ! rm -f conftest.$ac_objext conftest.$ac_ext fi echo "$as_me:$LINENO: result: $ac_cv_have_decl_ldexp" >&5 --- 9453,9457 ---- ac_cv_have_decl_ldexp=no fi ! rm -f conftest.err conftest.$ac_objext conftest.$ac_ext fi echo "$as_me:$LINENO: result: $ac_cv_have_decl_ldexp" >&5 *************** *** 9050,9054 **** else cat >conftest.$ac_ext <<_ACEOF - #line $LINENO "configure" /* confdefs.h. */ _ACEOF --- 9479,9482 ---- *************** *** 9071,9079 **** rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 ! (eval $ac_compile) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && ! { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 --- 9499,9517 ---- rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 ! (eval $ac_compile) 2>conftest.er1 ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && ! { ac_try='test -z "$ac_c_werror_flag" ! || test ! -s conftest.err' ! { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ! (eval $ac_try) 2>&5 ! ac_status=$? ! echo "$as_me:$LINENO: \$? = $ac_status" >&5 ! (exit $ac_status); }; } && ! { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 *************** *** 9088,9092 **** ac_cv_have_decl_frexp=no fi ! rm -f conftest.$ac_objext conftest.$ac_ext fi echo "$as_me:$LINENO: result: $ac_cv_have_decl_frexp" >&5 --- 9526,9530 ---- ac_cv_have_decl_frexp=no fi ! rm -f conftest.err conftest.$ac_objext conftest.$ac_ext fi echo "$as_me:$LINENO: result: $ac_cv_have_decl_frexp" >&5 *************** *** 9114,9118 **** else cat >conftest.$ac_ext <<_ACEOF - #line $LINENO "configure" /* confdefs.h. */ _ACEOF --- 9552,9555 ---- *************** *** 9135,9143 **** rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 ! (eval $ac_compile) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && ! { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 --- 9572,9590 ---- rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 ! (eval $ac_compile) 2>conftest.er1 ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && ! { ac_try='test -z "$ac_c_werror_flag" ! || test ! -s conftest.err' ! { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ! (eval $ac_try) 2>&5 ! ac_status=$? ! echo "$as_me:$LINENO: \$? = $ac_status" >&5 ! (exit $ac_status); }; } && ! { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 *************** *** 9152,9156 **** ac_cv_have_decl_isinf=no fi ! rm -f conftest.$ac_objext conftest.$ac_ext fi echo "$as_me:$LINENO: result: $ac_cv_have_decl_isinf" >&5 --- 9599,9603 ---- ac_cv_have_decl_isinf=no fi ! rm -f conftest.err conftest.$ac_objext conftest.$ac_ext fi echo "$as_me:$LINENO: result: $ac_cv_have_decl_isinf" >&5 *************** *** 9178,9182 **** else cat >conftest.$ac_ext <<_ACEOF - #line $LINENO "configure" /* confdefs.h. */ _ACEOF --- 9625,9628 ---- *************** *** 9199,9207 **** rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 ! (eval $ac_compile) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && ! { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 --- 9645,9663 ---- rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 ! (eval $ac_compile) 2>conftest.er1 ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && ! { ac_try='test -z "$ac_c_werror_flag" ! || test ! -s conftest.err' ! { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ! (eval $ac_try) 2>&5 ! ac_status=$? ! echo "$as_me:$LINENO: \$? = $ac_status" >&5 ! (exit $ac_status); }; } && ! { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 *************** *** 9216,9220 **** ac_cv_have_decl_finite=no fi ! rm -f conftest.$ac_objext conftest.$ac_ext fi echo "$as_me:$LINENO: result: $ac_cv_have_decl_finite" >&5 --- 9672,9676 ---- ac_cv_have_decl_finite=no fi ! rm -f conftest.err conftest.$ac_objext conftest.$ac_ext fi echo "$as_me:$LINENO: result: $ac_cv_have_decl_finite" >&5 *************** *** 9242,9246 **** else cat >conftest.$ac_ext <<_ACEOF - #line $LINENO "configure" /* confdefs.h. */ _ACEOF --- 9698,9701 ---- *************** *** 9263,9271 **** rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 ! (eval $ac_compile) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && ! { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 --- 9718,9736 ---- rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 ! (eval $ac_compile) 2>conftest.er1 ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && ! { ac_try='test -z "$ac_c_werror_flag" ! || test ! -s conftest.err' ! { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ! (eval $ac_try) 2>&5 ! ac_status=$? ! echo "$as_me:$LINENO: \$? = $ac_status" >&5 ! (exit $ac_status); }; } && ! { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 *************** *** 9280,9284 **** ac_cv_have_decl_isfinite=no fi ! rm -f conftest.$ac_objext conftest.$ac_ext fi echo "$as_me:$LINENO: result: $ac_cv_have_decl_isfinite" >&5 --- 9745,9749 ---- ac_cv_have_decl_isfinite=no fi ! rm -f conftest.err conftest.$ac_objext conftest.$ac_ext fi echo "$as_me:$LINENO: result: $ac_cv_have_decl_isfinite" >&5 *************** *** 9306,9310 **** else cat >conftest.$ac_ext <<_ACEOF - #line $LINENO "configure" /* confdefs.h. */ _ACEOF --- 9771,9774 ---- *************** *** 9327,9335 **** rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 ! (eval $ac_compile) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && ! { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 --- 9791,9809 ---- rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 ! (eval $ac_compile) 2>conftest.er1 ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && ! { ac_try='test -z "$ac_c_werror_flag" ! || test ! -s conftest.err' ! { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ! (eval $ac_try) 2>&5 ! ac_status=$? ! echo "$as_me:$LINENO: \$? = $ac_status" >&5 ! (exit $ac_status); }; } && ! { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 *************** *** 9344,9348 **** ac_cv_have_decl_isnan=no fi ! rm -f conftest.$ac_objext conftest.$ac_ext fi echo "$as_me:$LINENO: result: $ac_cv_have_decl_isnan" >&5 --- 9818,9822 ---- ac_cv_have_decl_isnan=no fi ! rm -f conftest.err conftest.$ac_objext conftest.$ac_ext fi echo "$as_me:$LINENO: result: $ac_cv_have_decl_isnan" >&5 *************** *** 9377,9381 **** else cat >conftest.$ac_ext <<_ACEOF - #line $LINENO "configure" /* confdefs.h. */ _ACEOF --- 9851,9854 ---- *************** *** 9398,9406 **** rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 ! (eval $ac_compile) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && ! { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 --- 9871,9889 ---- rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 ! (eval $ac_compile) 2>conftest.er1 ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && ! { ac_try='test -z "$ac_c_werror_flag" ! || test ! -s conftest.err' ! { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ! (eval $ac_try) 2>&5 ! ac_status=$? ! echo "$as_me:$LINENO: \$? = $ac_status" >&5 ! (exit $ac_status); }; } && ! { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 *************** *** 9415,9419 **** ac_cv_have_decl_log1p=no fi ! rm -f conftest.$ac_objext conftest.$ac_ext fi echo "$as_me:$LINENO: result: $ac_cv_have_decl_log1p" >&5 --- 9898,9902 ---- ac_cv_have_decl_log1p=no fi ! rm -f conftest.err conftest.$ac_objext conftest.$ac_ext fi echo "$as_me:$LINENO: result: $ac_cv_have_decl_log1p" >&5 *************** *** 9447,9451 **** else cat >conftest.$ac_ext <<_ACEOF - #line $LINENO "configure" /* confdefs.h. */ _ACEOF --- 9930,9933 ---- *************** *** 9484,9488 **** ac_cv_func_printf_longdouble="no" fi ! rm -f core core.* *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext fi fi --- 9966,9970 ---- ac_cv_func_printf_longdouble="no" fi ! rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext fi fi *************** *** 9519,9523 **** ac_cv_c_extended_fp=yes ;; ! *86*-*-*) ac_cv_c_extended_fp=yes ;; --- 10001,10008 ---- ac_cv_c_extended_fp=yes ;; ! *86-*-*) ! ac_cv_c_extended_fp=yes ! ;; ! x86_64-*-*) ac_cv_c_extended_fp=yes ;; *************** *** 9610,9614 **** ac_cv_c_fpu_setcw=no cat >conftest.$ac_ext <<_ACEOF - #line $LINENO "configure" /* confdefs.h. */ _ACEOF --- 10095,10098 ---- *************** *** 9632,9640 **** rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 ! (eval $ac_compile) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && ! { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 --- 10116,10134 ---- rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 ! (eval $ac_compile) 2>conftest.er1 ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && ! { ac_try='test -z "$ac_c_werror_flag" ! || test ! -s conftest.err' ! { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ! (eval $ac_try) 2>&5 ! ac_status=$? ! echo "$as_me:$LINENO: \$? = $ac_status" >&5 ! (exit $ac_status); }; } && ! { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 *************** *** 9649,9653 **** ac_cv_c_ieee_interface=unknown fi ! rm -f conftest.$ac_objext conftest.$ac_ext fi --- 10143,10147 ---- ac_cv_c_ieee_interface=unknown fi ! rm -f conftest.err conftest.$ac_objext conftest.$ac_ext fi *************** *** 9703,9707 **** CFLAGS="$ieee_flags $CFLAGS" cat >conftest.$ac_ext <<_ACEOF - #line $LINENO "configure" /* confdefs.h. */ _ACEOF --- 10197,10200 ---- *************** *** 9720,9728 **** rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 ! (eval $ac_compile) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && ! { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 --- 10213,10231 ---- rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 ! (eval $ac_compile) 2>conftest.er1 ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && ! { ac_try='test -z "$ac_c_werror_flag" ! || test ! -s conftest.err' ! { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ! (eval $ac_try) 2>&5 ! ac_status=$? ! echo "$as_me:$LINENO: \$? = $ac_status" >&5 ! (exit $ac_status); }; } && ! { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 *************** *** 9737,9741 **** ac_cv_c_ieee_flags="none" fi ! rm -f conftest.$ac_objext conftest.$ac_ext else ac_cv_c_ieee_flags="none" --- 10240,10244 ---- ac_cv_c_ieee_flags="none" fi ! rm -f conftest.err conftest.$ac_objext conftest.$ac_ext else ac_cv_c_ieee_flags="none" *************** *** 9760,9764 **** else cat >conftest.$ac_ext <<_ACEOF - #line $LINENO "configure" /* confdefs.h. */ _ACEOF --- 10263,10266 ---- *************** *** 9797,9801 **** ac_cv_c_ieee_comparisons="no" fi ! rm -f core core.* *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext fi --- 10299,10303 ---- ac_cv_c_ieee_comparisons="no" fi ! rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext fi *************** *** 9821,9825 **** else cat >conftest.$ac_ext <<_ACEOF - #line $LINENO "configure" /* confdefs.h. */ _ACEOF --- 10323,10326 ---- *************** *** 9859,9863 **** ac_cv_c_ieee_denormals="no" fi ! rm -f core core.* *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext fi --- 10360,10364 ---- ac_cv_c_ieee_denormals="no" fi ! rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext fi *************** *** 9874,9878 **** fi ! ac_config_files="$ac_config_files gsl-config gsl.pc gsl_version.h gsl.spec gsl/Makefile test/Makefile err/Makefile sys/Makefile utils/Makefile const/Makefile min/Makefile multimin/Makefile ieee-utils/Makefile fft/Makefile specfunc/Makefile dht/Makefile fit/Makefile multifit/Makefile statistics/Makefile sum/Makefile roots/Makefile multiroots/Makefile ntuple/Makefile poly/Makefile qrng/Makefile rng/Makefile randist/Makefile siman/Makefile integration/Makefile interpolation/Makefile doc/Makefile block/Makefile vector/Makefile matrix/Makefile histogram/Makefile monte/Makefile ode-initval/Makefile cblas/Makefile blas/Makefile linalg/Makefile eigen/Makefile permutation/Makefile combination/Makefile sort/Makefile complex/Makefile diff/Makefile cheb/Makefile cdf/Makefile Makefile" cat >confcache <<\_ACEOF # This file is a shell script that caches the results of configure --- 10375,10380 ---- fi ! ac_config_files="$ac_config_files gsl-config gsl.pc gsl_version.h gsl.spec gsl/Makefile test/Makefile err/Makefile sys/Makefile utils/Makefile const/Makefile min/Makefile multimin/Makefile ieee-utils/Makefile fft/Makefile specfunc/Makefile dht/Makefile fit/Makefile multifit/Makefile statistics/Makefile sum/Makefile roots/Makefile multiroots/Makefile ntuple/Makefile poly/Makefile qrng/Makefile rng/Makefile randist/Makefile siman/Makefile integration/Makefile interpolation/Makefile doc/Makefile block/Makefile vector/Makefile matrix/Makefile histogram/Makefile monte/Makefile ode-initval/Makefile cblas/Makefile blas/Makefile linalg/Makefile eigen/Makefile permutation/Makefile combination/Makefile sort/Makefile complex/Makefile diff/Makefile deriv/Makefile cheb/Makefile cdf/Makefile Makefile" ! cat >confcache <<\_ACEOF # This file is a shell script that caches the results of configure *************** *** 9903,9913 **** # substitution turns \\\\ into \\, and sed turns \\ into \). sed -n \ ! "s/'/'\\\\''/g; ! s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p" ;; *) # `set' quotes correctly as required by POSIX, so do not add quotes. sed -n \ ! "s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1=\\2/p" ;; esac; --- 10405,10415 ---- # substitution turns \\\\ into \\, and sed turns \\ into \). sed -n \ ! "s/'/'\\\\''/g; ! s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p" ;; *) # `set' quotes correctly as required by POSIX, so do not add quotes. sed -n \ ! "s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1=\\2/p" ;; esac; *************** *** 9939,9949 **** # (actually we leave an empty line to preserve line numbers). if test "x$srcdir" = x.; then ! ac_vpsub='/^[ ]*VPATH[ ]*=/{ s/:*\$(srcdir):*/:/; s/:*\${srcdir}:*/:/; s/:*@srcdir@:*/:/; ! s/^\([^=]*=[ ]*\):*/\1/; s/:*$//; ! s/^[^=]*=[ ]*$//; }' fi --- 10441,10451 ---- # (actually we leave an empty line to preserve line numbers). if test "x$srcdir" = x.; then ! ac_vpsub='/^[ ]*VPATH[ ]*=/{ s/:*\$(srcdir):*/:/; s/:*\${srcdir}:*/:/; s/:*@srcdir@:*/:/; ! s/^\([^=]*=[ ]*\):*/\1/; s/:*$//; ! s/^[^=]*=[ ]*$//; }' fi *************** *** 9956,9960 **** # 1. Remove the extension, and $U if already installed. ac_i=`echo "$ac_i" | ! sed 's/\$U\././;s/\.o$//;s/\.obj$//'` # 2. Add them. ac_libobjs="$ac_libobjs $ac_i\$U.$ac_objext" --- 10458,10462 ---- # 1. Remove the extension, and $U if already installed. ac_i=`echo "$ac_i" | ! sed 's/\$U\././;s/\.o$//;s/\.obj$//'` # 2. Add them. ac_libobjs="$ac_libobjs $ac_i\$U.$ac_objext" *************** *** 10007,10013 **** set -o posix fi # Support unset when possible. ! if (FOO=FOO; unset FOO) >/dev/null 2>&1; then as_unset=unset else --- 10509,10516 ---- set -o posix fi + DUALCASE=1; export DUALCASE # for MKS sh # Support unset when possible. ! if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then as_unset=unset else *************** *** 10028,10032 **** LC_TELEPHONE LC_TIME do ! if (set +x; test -n "`(eval $as_var=C; export $as_var) 2>&1`"); then eval $as_var=C; export $as_var else --- 10531,10535 ---- LC_TELEPHONE LC_TIME do ! if (set +x; test -z "`(eval $as_var=C; export $as_var) 2>&1`"); then eval $as_var=C; export $as_var else *************** *** 10207,10210 **** --- 10710,10714 ---- as_mkdir_p=: else + test -d ./-p && rmdir ./-p as_mkdir_p=false fi *************** *** 10213,10220 **** # Sed expression to map a string onto a valid CPP name. ! as_tr_cpp="sed y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g" # Sed expression to map a string onto a valid variable name. ! as_tr_sh="sed y%*+%pp%;s%[^_$as_cr_alnum]%_%g" --- 10717,10724 ---- # Sed expression to map a string onto a valid CPP name. ! as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" # Sed expression to map a string onto a valid variable name. ! as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" *************** *** 10242,10247 **** cat >&5 <<_CSEOF ! This file was extended by gsl $as_me 1.4, which was ! generated by GNU Autoconf 2.57. Invocation command line was CONFIG_FILES = $CONFIG_FILES --- 10746,10751 ---- cat >&5 <<_CSEOF ! This file was extended by gsl $as_me 1.5, which was ! generated by GNU Autoconf 2.59. Invocation command line was CONFIG_FILES = $CONFIG_FILES *************** *** 10287,10293 **** --recheck update $as_me by reconfiguring in the same conditions --file=FILE[:TEMPLATE] ! instantiate the configuration file FILE --header=FILE[:TEMPLATE] ! instantiate the configuration header FILE Configuration files: --- 10791,10797 ---- --recheck update $as_me by reconfiguring in the same conditions --file=FILE[:TEMPLATE] ! instantiate the configuration file FILE --header=FILE[:TEMPLATE] ! instantiate the configuration header FILE Configuration files: *************** *** 10302,10311 **** cat >>$CONFIG_STATUS <<_ACEOF ac_cs_version="\\ ! gsl config.status 1.4 ! configured by $0, generated by GNU Autoconf 2.57, with options \\"`echo "$ac_configure_args" | sed 's/[\\""\`\$]/\\\\&/g'`\\" ! Copyright 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001 ! Free Software Foundation, Inc. This config.status script is free software; the Free Software Foundation gives unlimited permission to copy, distribute and modify it." --- 10806,10814 ---- cat >>$CONFIG_STATUS <<_ACEOF ac_cs_version="\\ ! gsl config.status 1.5 ! configured by $0, generated by GNU Autoconf 2.59, with options \\"`echo "$ac_configure_args" | sed 's/[\\""\`\$]/\\\\&/g'`\\" ! Copyright (C) 2003 Free Software Foundation, Inc. This config.status script is free software; the Free Software Foundation gives unlimited permission to copy, distribute and modify it." *************** *** 10452,10455 **** --- 10955,10959 ---- "complex/Makefile" ) CONFIG_FILES="$CONFIG_FILES complex/Makefile" ;; "diff/Makefile" ) CONFIG_FILES="$CONFIG_FILES diff/Makefile" ;; + "deriv/Makefile" ) CONFIG_FILES="$CONFIG_FILES deriv/Makefile" ;; "cheb/Makefile" ) CONFIG_FILES="$CONFIG_FILES cheb/Makefile" ;; "cdf/Makefile" ) CONFIG_FILES="$CONFIG_FILES cdf/Makefile" ;; *************** *** 10643,10649 **** /@[a-zA-Z_][a-zA-Z_0-9]*@/!b' && cat $tmp/subs.frag) >$tmp/subs-$ac_sed_frag.sed if test -z "$ac_sed_cmds"; then ! ac_sed_cmds="sed -f $tmp/subs-$ac_sed_frag.sed" else ! ac_sed_cmds="$ac_sed_cmds | sed -f $tmp/subs-$ac_sed_frag.sed" fi ac_sed_frag=`expr $ac_sed_frag + 1` --- 11147,11153 ---- /@[a-zA-Z_][a-zA-Z_0-9]*@/!b' && cat $tmp/subs.frag) >$tmp/subs-$ac_sed_frag.sed if test -z "$ac_sed_cmds"; then ! ac_sed_cmds="sed -f $tmp/subs-$ac_sed_frag.sed" else ! ac_sed_cmds="$ac_sed_cmds | sed -f $tmp/subs-$ac_sed_frag.sed" fi ac_sed_frag=`expr $ac_sed_frag + 1` *************** *** 10663,10671 **** case $ac_file in - | *:- | *:-:* ) # input from stdin ! cat >$tmp/stdin ! ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'` ! ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;; *:* ) ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'` ! ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;; * ) ac_file_in=$ac_file.in ;; esac --- 11167,11175 ---- case $ac_file in - | *:- | *:-:* ) # input from stdin ! cat >$tmp/stdin ! ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'` ! ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;; *:* ) ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'` ! ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;; * ) ac_file_in=$ac_file.in ;; esac *************** *** 10674,10681 **** ac_dir=`(dirname "$ac_file") 2>/dev/null || $as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ ! X"$ac_file" : 'X\(//\)[^/]' \| \ ! X"$ac_file" : 'X\(//\)$' \| \ ! X"$ac_file" : 'X\(/\)' \| \ ! . : '\(.\)' 2>/dev/null || echo X"$ac_file" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } --- 11178,11185 ---- ac_dir=`(dirname "$ac_file") 2>/dev/null || $as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ ! X"$ac_file" : 'X\(//\)[^/]' \| \ ! X"$ac_file" : 'X\(//\)$' \| \ ! X"$ac_file" : 'X\(/\)' \| \ ! . : '\(.\)' 2>/dev/null || echo X"$ac_file" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } *************** *** 10693,10700 **** as_dir=`(dirname "$as_dir") 2>/dev/null || $as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ ! X"$as_dir" : 'X\(//\)[^/]' \| \ ! X"$as_dir" : 'X\(//\)$' \| \ ! X"$as_dir" : 'X\(/\)' \| \ ! . : '\(.\)' 2>/dev/null || echo X"$as_dir" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } --- 11197,11204 ---- as_dir=`(dirname "$as_dir") 2>/dev/null || $as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ ! X"$as_dir" : 'X\(//\)[^/]' \| \ ! X"$as_dir" : 'X\(//\)$' \| \ ! X"$as_dir" : 'X\(/\)' \| \ ! . : '\(.\)' 2>/dev/null || echo X"$as_dir" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } *************** *** 10734,10743 **** ac_top_srcdir=$ac_top_builddir$srcdir ;; esac ! # Don't blindly perform a `cd "$ac_dir"/$ac_foo && pwd` since $ac_foo can be ! # absolute. ! ac_abs_builddir=`cd "$ac_dir" && cd $ac_builddir && pwd` ! ac_abs_top_builddir=`cd "$ac_dir" && cd ${ac_top_builddir}. && pwd` ! ac_abs_srcdir=`cd "$ac_dir" && cd $ac_srcdir && pwd` ! ac_abs_top_srcdir=`cd "$ac_dir" && cd $ac_top_srcdir && pwd` --- 11238,11280 ---- ac_top_srcdir=$ac_top_builddir$srcdir ;; esac ! ! # Do not use `cd foo && pwd` to compute absolute paths, because ! # the directories may not exist. ! case `pwd` in ! .) ac_abs_builddir="$ac_dir";; ! *) ! case "$ac_dir" in ! .) ac_abs_builddir=`pwd`;; ! [\\/]* | ?:[\\/]* ) ac_abs_builddir="$ac_dir";; ! *) ac_abs_builddir=`pwd`/"$ac_dir";; ! esac;; ! esac ! case $ac_abs_builddir in ! .) ac_abs_top_builddir=${ac_top_builddir}.;; ! *) ! case ${ac_top_builddir}. in ! .) ac_abs_top_builddir=$ac_abs_builddir;; ! [\\/]* | ?:[\\/]* ) ac_abs_top_builddir=${ac_top_builddir}.;; ! *) ac_abs_top_builddir=$ac_abs_builddir/${ac_top_builddir}.;; ! esac;; ! esac ! case $ac_abs_builddir in ! .) ac_abs_srcdir=$ac_srcdir;; ! *) ! case $ac_srcdir in ! .) ac_abs_srcdir=$ac_abs_builddir;; ! [\\/]* | ?:[\\/]* ) ac_abs_srcdir=$ac_srcdir;; ! *) ac_abs_srcdir=$ac_abs_builddir/$ac_srcdir;; ! esac;; ! esac ! case $ac_abs_builddir in ! .) ac_abs_top_srcdir=$ac_top_srcdir;; ! *) ! case $ac_top_srcdir in ! .) ac_abs_top_srcdir=$ac_abs_builddir;; ! [\\/]* | ?:[\\/]* ) ac_abs_top_srcdir=$ac_top_srcdir;; ! *) ac_abs_top_srcdir=$ac_abs_builddir/$ac_top_srcdir;; ! esac;; ! esac *************** *** 10761,10765 **** fi configure_input=$configure_input"Generated from `echo $ac_file_in | ! sed 's,.*/,,'` by configure." # First look for the input files in the build tree, otherwise in the --- 11298,11302 ---- fi configure_input=$configure_input"Generated from `echo $ac_file_in | ! sed 's,.*/,,'` by configure." # First look for the input files in the build tree, otherwise in the *************** *** 10770,10791 **** -) echo $tmp/stdin ;; [\\/$]*) ! # Absolute (can't be DOS-style, as IFS=:) ! test -f "$f" || { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5 echo "$as_me: error: cannot find input file: $f" >&2;} { (exit 1); exit 1; }; } ! echo $f;; *) # Relative ! if test -f "$f"; then ! # Build tree ! echo $f ! elif test -f "$srcdir/$f"; then ! # Source tree ! echo $srcdir/$f ! else ! # /dev/null tree ! { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5 echo "$as_me: error: cannot find input file: $f" >&2;} { (exit 1); exit 1; }; } ! fi;; esac done` || { (exit 1); exit 1; } --- 11307,11328 ---- -) echo $tmp/stdin ;; [\\/$]*) ! # Absolute (can't be DOS-style, as IFS=:) ! test -f "$f" || { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5 echo "$as_me: error: cannot find input file: $f" >&2;} { (exit 1); exit 1; }; } ! echo "$f";; *) # Relative ! if test -f "$f"; then ! # Build tree ! echo "$f" ! elif test -f "$srcdir/$f"; then ! # Source tree ! echo "$srcdir/$f" ! else ! # /dev/null tree ! { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5 echo "$as_me: error: cannot find input file: $f" >&2;} { (exit 1); exit 1; }; } ! fi;; esac done` || { (exit 1); exit 1; } *************** *** 10829,10838 **** # # ac_d sets the value in "#define NAME VALUE" lines. ! ac_dA='s,^\([ ]*\)#\([ ]*define[ ][ ]*\)' ! ac_dB='[ ].*$,\1#\2' ac_dC=' ' ac_dD=',;t' # ac_u turns "#undef NAME" without trailing blanks into "#define NAME VALUE". ! ac_uA='s,^\([ ]*\)#\([ ]*\)undef\([ ][ ]*\)' ac_uB='$,\1#\2define\3' ac_uC=' ' --- 11366,11375 ---- # # ac_d sets the value in "#define NAME VALUE" lines. ! ac_dA='s,^\([ ]*\)#\([ ]*define[ ][ ]*\)' ! ac_dB='[ ].*$,\1#\2' ac_dC=' ' ac_dD=',;t' # ac_u turns "#undef NAME" without trailing blanks into "#define NAME VALUE". ! ac_uA='s,^\([ ]*\)#\([ ]*\)undef\([ ][ ]*\)' ac_uB='$,\1#\2define\3' ac_uC=' ' *************** *** 10843,10851 **** case $ac_file in - | *:- | *:-:* ) # input from stdin ! cat >$tmp/stdin ! ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'` ! ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;; *:* ) ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'` ! ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;; * ) ac_file_in=$ac_file.in ;; esac --- 11380,11388 ---- case $ac_file in - | *:- | *:-:* ) # input from stdin ! cat >$tmp/stdin ! ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'` ! ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;; *:* ) ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'` ! ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;; * ) ac_file_in=$ac_file.in ;; esac *************** *** 10861,10886 **** -) echo $tmp/stdin ;; [\\/$]*) ! # Absolute (can't be DOS-style, as IFS=:) ! test -f "$f" || { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5 echo "$as_me: error: cannot find input file: $f" >&2;} { (exit 1); exit 1; }; } ! echo $f;; *) # Relative ! if test -f "$f"; then ! # Build tree ! echo $f ! elif test -f "$srcdir/$f"; then ! # Source tree ! echo $srcdir/$f ! else ! # /dev/null tree ! { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5 echo "$as_me: error: cannot find input file: $f" >&2;} { (exit 1); exit 1; }; } ! fi;; esac done` || { (exit 1); exit 1; } # Remove the trailing spaces. ! sed 's/[ ]*$//' $ac_file_inputs >$tmp/in _ACEOF --- 11398,11424 ---- -) echo $tmp/stdin ;; [\\/$]*) ! # Absolute (can't be DOS-style, as IFS=:) ! test -f "$f" || { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5 echo "$as_me: error: cannot find input file: $f" >&2;} { (exit 1); exit 1; }; } ! # Do quote $f, to prevent DOS paths from being IFS'd. ! echo "$f";; *) # Relative ! if test -f "$f"; then ! # Build tree ! echo "$f" ! elif test -f "$srcdir/$f"; then ! # Source tree ! echo "$srcdir/$f" ! else ! # /dev/null tree ! { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5 echo "$as_me: error: cannot find input file: $f" >&2;} { (exit 1); exit 1; }; } ! fi;; esac done` || { (exit 1); exit 1; } # Remove the trailing spaces. ! sed 's/[ ]*$//' $ac_file_inputs >$tmp/in _ACEOF *************** *** 10905,10911 **** t clear : clear ! s,^[ ]*#[ ]*define[ ][ ]*\([^ (][^ (]*\)\(([^)]*)\)[ ]*\(.*\)$,${ac_dA}\1${ac_dB}\1\2${ac_dC}\3${ac_dD},gp t end ! s,^[ ]*#[ ]*define[ ][ ]*\([^ ][^ ]*\)[ ]*\(.*\)$,${ac_dA}\1${ac_dB}\1${ac_dC}\2${ac_dD},gp : end _ACEOF --- 11443,11449 ---- t clear : clear ! s,^[ ]*#[ ]*define[ ][ ]*\([^ (][^ (]*\)\(([^)]*)\)[ ]*\(.*\)$,${ac_dA}\1${ac_dB}\1\2${ac_dC}\3${ac_dD},gp t end ! s,^[ ]*#[ ]*define[ ][ ]*\([^ ][^ ]*\)[ ]*\(.*\)$,${ac_dA}\1${ac_dB}\1${ac_dC}\2${ac_dD},gp : end _ACEOF *************** *** 10921,10925 **** # on some systems where configure will not decide to define it. cat >>conftest.undefs <<\_ACEOF ! s,^[ ]*#[ ]*undef[ ][ ]*[a-zA-Z_][a-zA-Z_0-9]*,/* & */, _ACEOF --- 11459,11463 ---- # on some systems where configure will not decide to define it. cat >>conftest.undefs <<\_ACEOF ! s,^[ ]*#[ ]*undef[ ][ ]*[a-zA-Z_][a-zA-Z_0-9]*,/* & */, _ACEOF *************** *** 10927,10931 **** # of here documents, and old seds have small limits too (100 cmds). echo ' # Handle all the #define templates only if necessary.' >>$CONFIG_STATUS ! echo ' if grep "^[ ]*#[ ]*define" $tmp/in >/dev/null; then' >>$CONFIG_STATUS echo ' # If there are no defines, we may have an empty if/fi' >>$CONFIG_STATUS echo ' :' >>$CONFIG_STATUS --- 11465,11469 ---- # of here documents, and old seds have small limits too (100 cmds). echo ' # Handle all the #define templates only if necessary.' >>$CONFIG_STATUS ! echo ' if grep "^[ ]*#[ ]*define" $tmp/in >/dev/null; then' >>$CONFIG_STATUS echo ' # If there are no defines, we may have an empty if/fi' >>$CONFIG_STATUS echo ' :' >>$CONFIG_STATUS *************** *** 10936,10940 **** echo ' cat >$tmp/defines.sed <>$CONFIG_STATUS # Speed up: don't consider the non `#define' lines. ! echo '/^[ ]*#[ ]*define/!b' >>$CONFIG_STATUS # Work around the forget-to-reset-the-flag bug. echo 't clr' >>$CONFIG_STATUS --- 11474,11478 ---- echo ' cat >$tmp/defines.sed <>$CONFIG_STATUS # Speed up: don't consider the non `#define' lines. ! echo '/^[ ]*#[ ]*define/!b' >>$CONFIG_STATUS # Work around the forget-to-reset-the-flag bug. echo 't clr' >>$CONFIG_STATUS *************** *** 10963,10967 **** echo ' cat >$tmp/undefs.sed <>$CONFIG_STATUS # Speed up: don't consider the non `#undef' ! echo '/^[ ]*#[ ]*undef/!b' >>$CONFIG_STATUS # Work around the forget-to-reset-the-flag bug. echo 't clr' >>$CONFIG_STATUS --- 11501,11505 ---- echo ' cat >$tmp/undefs.sed <>$CONFIG_STATUS # Speed up: don't consider the non `#undef' ! echo '/^[ ]*#[ ]*undef/!b' >>$CONFIG_STATUS # Work around the forget-to-reset-the-flag bug. echo 't clr' >>$CONFIG_STATUS *************** *** 10997,11004 **** ac_dir=`(dirname "$ac_file") 2>/dev/null || $as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ ! X"$ac_file" : 'X\(//\)[^/]' \| \ ! X"$ac_file" : 'X\(//\)$' \| \ ! X"$ac_file" : 'X\(/\)' \| \ ! . : '\(.\)' 2>/dev/null || echo X"$ac_file" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } --- 11535,11542 ---- ac_dir=`(dirname "$ac_file") 2>/dev/null || $as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ ! X"$ac_file" : 'X\(//\)[^/]' \| \ ! X"$ac_file" : 'X\(//\)$' \| \ ! X"$ac_file" : 'X\(/\)' \| \ ! . : '\(.\)' 2>/dev/null || echo X"$ac_file" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } *************** *** 11016,11023 **** as_dir=`(dirname "$as_dir") 2>/dev/null || $as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ ! X"$as_dir" : 'X\(//\)[^/]' \| \ ! X"$as_dir" : 'X\(//\)$' \| \ ! X"$as_dir" : 'X\(/\)' \| \ ! . : '\(.\)' 2>/dev/null || echo X"$as_dir" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } --- 11554,11561 ---- as_dir=`(dirname "$as_dir") 2>/dev/null || $as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ ! X"$as_dir" : 'X\(//\)[^/]' \| \ ! X"$as_dir" : 'X\(//\)$' \| \ ! X"$as_dir" : 'X\(/\)' \| \ ! . : '\(.\)' 2>/dev/null || echo X"$as_dir" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } *************** *** 11051,11058 **** echo "timestamp for $ac_file" >`(dirname $ac_file) 2>/dev/null || $as_expr X$ac_file : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ ! X$ac_file : 'X\(//\)[^/]' \| \ ! X$ac_file : 'X\(//\)$' \| \ ! X$ac_file : 'X\(/\)' \| \ ! . : '\(.\)' 2>/dev/null || echo X$ac_file | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } --- 11589,11596 ---- echo "timestamp for $ac_file" >`(dirname $ac_file) 2>/dev/null || $as_expr X$ac_file : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ ! X$ac_file : 'X\(//\)[^/]' \| \ ! X$ac_file : 'X\(//\)$' \| \ ! X$ac_file : 'X\(/\)' \| \ ! . : '\(.\)' 2>/dev/null || echo X$ac_file | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } diff -rc2P -x *.info -x *.info-* gsl-1.4/configure.ac gsl-1.5/configure.ac *** gsl-1.4/configure.ac Thu Aug 14 11:38:44 2003 --- gsl-1.5/configure.ac Thu Jun 24 10:19:09 2004 *************** *** 1,9 **** dnl Process this file with autoconf to produce a configure script. ! AC_INIT(gsl,1.4) AC_CONFIG_SRCDIR(gsl_math.h) AM_INIT_AUTOMAKE([gnu no-dependencies]) ! AM_CONFIG_HEADER(config.h) AM_MAINTAINER_MODE --- 1,9 ---- dnl Process this file with autoconf to produce a configure script. ! AC_INIT([gsl],[1.5]) AC_CONFIG_SRCDIR(gsl_math.h) AM_INIT_AUTOMAKE([gnu no-dependencies]) ! AC_CONFIG_HEADERS([config.h]) AM_MAINTAINER_MODE *************** *** 17,22 **** dnl gsl-1.3 libgsl 4:0:4 libgslcblas 0:0:0 dnl gsl-1.4 libgsl 5:0:5 libgslcblas 0:0:0 ! GSL_LT_VERSION="5:0:5" AC_SUBST(GSL_LT_VERSION) GSL_LT_CBLAS_VERSION="0:0:0" --- 17,23 ---- dnl gsl-1.3 libgsl 4:0:4 libgslcblas 0:0:0 dnl gsl-1.4 libgsl 5:0:5 libgslcblas 0:0:0 + dnl gsl-1.5 libgsl 6:0:6 libgslcblas 0:0:0 ! GSL_LT_VERSION="6:0:6" AC_SUBST(GSL_LT_VERSION) GSL_LT_CBLAS_VERSION="0:0:0" *************** *** 68,76 **** AC_CACHE_CHECK([for extern inline], ac_cv_c_extern_inline, [ac_cv_c_extern_inline=no ! AC_TRY_COMPILE([extern $ac_cv_c_inline double foo(double x); extern $ac_cv_c_inline double foo(double x) { return x + 1.0 ; } ; ! double foo (double x) { return x + 1.0 ; };], ! [ foo(1.0) ], ! [ac_cv_c_extern_inline="yes"]) ]) --- 69,75 ---- AC_CACHE_CHECK([for extern inline], ac_cv_c_extern_inline, [ac_cv_c_extern_inline=no ! AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[extern $ac_cv_c_inline double foo(double x); extern $ac_cv_c_inline double foo(double x) { return x + 1.0 ; } ; ! double foo (double x) { return x + 1.0 ; };]], [[ foo(1.0) ]])],[ac_cv_c_extern_inline="yes"],[]) ]) *************** *** 120,125 **** dnl Remember to put a definition in acconfig.h for each of these ! AC_CHECK_DECLS(feenableexcept,,,[#include ]) ! AC_CHECK_DECLS(fesettrapenable,,,[#include ]) AC_CHECK_DECLS(hypot,,,[#include ]) AC_CHECK_DECLS(expm1,,,[#include ]) --- 119,126 ---- dnl Remember to put a definition in acconfig.h for each of these ! AC_CHECK_DECLS(feenableexcept,,,[#define _GNU_SOURCE 1 ! #include ]) ! AC_CHECK_DECLS(fesettrapenable,,,[#define _GNU_SOURCE 1 ! #include ]) AC_CHECK_DECLS(hypot,,,[#include ]) AC_CHECK_DECLS(expm1,,,[#include ]) *************** *** 145,149 **** AC_CACHE_CHECK([for long double stdio], ac_cv_func_printf_longdouble, ! [AC_TRY_RUN([ #include #include --- 146,150 ---- AC_CACHE_CHECK([for long double stdio], ac_cv_func_printf_longdouble, ! [AC_RUN_IFELSE([AC_LANG_SOURCE([[ #include #include *************** *** 154,161 **** sscanf(s, "%Lg", &x); if (x == 5678) {exit (0);} else {exit(1); }; ! }], ! ac_cv_func_printf_longdouble="yes", ! ac_cv_func_printf_longdouble="no", ! ac_cv_func_printf_longdouble="no")]) if test "$ac_cv_func_printf_longdouble" != no; then --- 155,159 ---- sscanf(s, "%Lg", &x); if (x == 5678) {exit (0);} else {exit(1); }; ! }]])],[ac_cv_func_printf_longdouble="yes"],[ac_cv_func_printf_longdouble="no"],[ac_cv_func_printf_longdouble="no"])]) if test "$ac_cv_func_printf_longdouble" != no; then *************** *** 181,185 **** ac_cv_c_extended_fp=yes ;; ! *86*-*-*) ac_cv_c_extended_fp=yes ;; --- 179,186 ---- ac_cv_c_extended_fp=yes ;; ! *86-*-*) ! ac_cv_c_extended_fp=yes ! ;; ! x86_64-*-*) ac_cv_c_extended_fp=yes ;; *************** *** 254,264 **** AC_CACHE_CHECK([for FPU_SETCW], ac_cv_c_fpu_setcw, [ac_cv_c_fpu_setcw=no ! AC_TRY_COMPILE([#include #ifndef _FPU_SETCW #include #define _FPU_SETCW(cw) __setfpucw(cw) #endif ! ], [ unsigned short mode = 0 ; _FPU_SETCW(mode); ], ! [ac_cv_c_fpu_setcw="yes"],[ac_cv_c_ieee_interface=unknown]) ]) fi --- 255,264 ---- AC_CACHE_CHECK([for FPU_SETCW], ac_cv_c_fpu_setcw, [ac_cv_c_fpu_setcw=no ! AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include #ifndef _FPU_SETCW #include #define _FPU_SETCW(cw) __setfpucw(cw) #endif ! ]], [[ unsigned short mode = 0 ; _FPU_SETCW(mode); ]])],[ac_cv_c_fpu_setcw="yes"],[ac_cv_c_ieee_interface=unknown]) ]) fi *************** *** 303,309 **** if test X"$ieee_flags" != X ; then CFLAGS="$ieee_flags $CFLAGS" ! AC_TRY_COMPILE(,[int foo;], ! ac_cv_c_ieee_flags="$ieee_flags", ! ac_cv_c_ieee_flags="none") else ac_cv_c_ieee_flags="none" --- 303,307 ---- if test X"$ieee_flags" != X ; then CFLAGS="$ieee_flags $CFLAGS" ! AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[]], [[int foo;]])],[ac_cv_c_ieee_flags="$ieee_flags"],[ac_cv_c_ieee_flags="none"]) else ac_cv_c_ieee_flags="none" *************** *** 319,323 **** dnl AC_CACHE_CHECK([for IEEE comparisons], ac_cv_c_ieee_comparisons, ! [AC_TRY_RUN([ #include int main (void) --- 317,321 ---- dnl AC_CACHE_CHECK([for IEEE comparisons], ac_cv_c_ieee_comparisons, ! [AC_RUN_IFELSE([AC_LANG_SOURCE([[ #include int main (void) *************** *** 328,335 **** status = (nan == nan); exit (status); ! }], ! ac_cv_c_ieee_comparisons="yes", ! ac_cv_c_ieee_comparisons="no", ! ac_cv_c_ieee_comparisons="yes") ]) --- 326,330 ---- status = (nan == nan); exit (status); ! }]])],[ac_cv_c_ieee_comparisons="yes"],[ac_cv_c_ieee_comparisons="no"],[ac_cv_c_ieee_comparisons="yes"]) ]) *************** *** 342,346 **** dnl AC_CACHE_CHECK([for IEEE denormalized values], ac_cv_c_ieee_denormals, ! [AC_TRY_RUN([ #include int main (void) --- 337,341 ---- dnl AC_CACHE_CHECK([for IEEE denormalized values], ac_cv_c_ieee_denormals, ! [AC_RUN_IFELSE([AC_LANG_SOURCE([[ #include int main (void) *************** *** 352,359 **** status = (z == 0.0); exit (status); ! }], ! ac_cv_c_ieee_denormals="yes", ! ac_cv_c_ieee_denormals="no", ! ac_cv_c_ieee_denormals="yes") ]) --- 347,351 ---- status = (z == 0.0); exit (status); ! }]])],[ac_cv_c_ieee_denormals="yes"],[ac_cv_c_ieee_denormals="no"],[ac_cv_c_ieee_denormals="yes"]) ]) *************** *** 364,366 **** dnl ! AC_OUTPUT(gsl-config gsl.pc gsl_version.h gsl.spec gsl/Makefile test/Makefile err/Makefile sys/Makefile utils/Makefile const/Makefile min/Makefile multimin/Makefile ieee-utils/Makefile fft/Makefile specfunc/Makefile dht/Makefile fit/Makefile multifit/Makefile statistics/Makefile sum/Makefile roots/Makefile multiroots/Makefile ntuple/Makefile poly/Makefile qrng/Makefile rng/Makefile randist/Makefile siman/Makefile integration/Makefile interpolation/Makefile doc/Makefile block/Makefile vector/Makefile matrix/Makefile histogram/Makefile monte/Makefile ode-initval/Makefile cblas/Makefile blas/Makefile linalg/Makefile eigen/Makefile permutation/Makefile combination/Makefile sort/Makefile complex/Makefile diff/Makefile cheb/Makefile cdf/Makefile Makefile) --- 356,359 ---- dnl ! AC_CONFIG_FILES([gsl-config gsl.pc gsl_version.h gsl.spec gsl/Makefile test/Makefile err/Makefile sys/Makefile utils/Makefile const/Makefile min/Makefile multimin/Makefile ieee-utils/Makefile fft/Makefile specfunc/Makefile dht/Makefile fit/Makefile multifit/Makefile statistics/Makefile sum/Makefile roots/Makefile multiroots/Makefile ntuple/Makefile poly/Makefile qrng/Makefile rng/Makefile randist/Makefile siman/Makefile integration/Makefile interpolation/Makefile doc/Makefile block/Makefile vector/Makefile matrix/Makefile histogram/Makefile monte/Makefile ode-initval/Makefile cblas/Makefile blas/Makefile linalg/Makefile eigen/Makefile permutation/Makefile combination/Makefile sort/Makefile complex/Makefile diff/Makefile deriv/Makefile cheb/Makefile cdf/Makefile Makefile]) ! AC_OUTPUT diff -rc2P -x *.info -x *.info-* gsl-1.4/const/ChangeLog gsl-1.5/const/ChangeLog *** gsl-1.4/const/ChangeLog Mon Jun 9 17:29:56 2003 --- gsl-1.5/const/ChangeLog Thu May 27 12:05:35 2004 *************** *** 1,2 **** --- 1,22 ---- + 2004-05-26 Brian Gough + + * test.c: added stdlib.h for exit() + + 2004-03-05 Brian Gough + + * const.el: added CGS and MKS systems back in, with CGSM electrical + units excluded from CGS, for backwards compatibility + + 2003-11-27 Brian Gough + + * const.el (gsl-constants): added stefan-boltzmann constant and + thomson cross section + + 2003-09-18 Brian Gough + + * test.c: added a test program + + * gsl_const.h: fixed to use new header files for MKSA and CGSM + 2003-06-09 Brian Gough diff -rc2P -x *.info -x *.info-* gsl-1.4/const/Makefile.am gsl-1.5/const/Makefile.am *** gsl-1.4/const/Makefile.am Sun Jul 27 09:49:48 2003 --- gsl-1.5/const/Makefile.am Thu May 27 12:03:07 2004 *************** *** 1,8 **** ! pkginclude_HEADERS = gsl_const.h gsl_const_cgsm.h gsl_const_mksa.h gsl_const_num.h - check_PROGRAMS = #demo - #demo_SOURCES = demo.c - INCLUDES= -I$(top_builddir) --- 1,15 ---- ! pkginclude_HEADERS = gsl_const.h gsl_const_cgs.h gsl_const_mks.h gsl_const_cgsm.h gsl_const_mksa.h gsl_const_num.h ! ! INCLUDES= -I$(top_builddir) ! ! TESTS = test ! ! check_PROGRAMS = test ! ! test_SOURCES = test.c ! ! test_LDADD = ../ieee-utils/libgslieeeutils.la ../err/libgslerr.la ../test/libgsltest.la ../sys/libgslsys.la ../utils/libutils.la diff -rc2P -x *.info -x *.info-* gsl-1.4/const/Makefile.in gsl-1.5/const/Makefile.in *** gsl-1.4/const/Makefile.in Thu Aug 14 12:31:14 2003 --- gsl-1.5/const/Makefile.in Thu Jun 24 10:49:40 2004 *************** *** 141,151 **** sysconfdir = @sysconfdir@ target_alias = @target_alias@ ! pkginclude_HEADERS = gsl_const.h gsl_const_cgsm.h gsl_const_mksa.h gsl_const_num.h ! check_PROGRAMS = #demo ! #demo_SOURCES = demo.c ! INCLUDES = -I$(top_builddir) subdir = const ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 --- 141,155 ---- sysconfdir = @sysconfdir@ target_alias = @target_alias@ ! pkginclude_HEADERS = gsl_const.h gsl_const_cgs.h gsl_const_mks.h gsl_const_cgsm.h gsl_const_mksa.h gsl_const_num.h ! INCLUDES = -I$(top_builddir) + TESTS = test ! check_PROGRAMS = test ! ! test_SOURCES = test.c ! ! test_LDADD = ../ieee-utils/libgslieeeutils.la ../err/libgslerr.la ../test/libgsltest.la ../sys/libgslsys.la ../utils/libutils.la subdir = const ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 *************** *** 153,167 **** CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = ! check_PROGRAMS = depcomp = am__depfiles_maybe = ! DIST_SOURCES = HEADERS = $(pkginclude_HEADERS) DIST_COMMON = $(pkginclude_HEADERS) ChangeLog Makefile.am Makefile.in \ TODO all: all-am .SUFFIXES: $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ Makefile.am $(top_srcdir)/configure.ac $(ACLOCAL_M4) cd $(top_srcdir) && \ --- 157,188 ---- CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = ! check_PROGRAMS = test$(EXEEXT) ! am_test_OBJECTS = test.$(OBJEXT) ! test_OBJECTS = $(am_test_OBJECTS) ! test_DEPENDENCIES = ../ieee-utils/libgslieeeutils.la ../err/libgslerr.la \ ! ../test/libgsltest.la ../sys/libgslsys.la ../utils/libutils.la ! test_LDFLAGS = ! ! DEFAULT_INCLUDES = -I. -I$(srcdir) -I$(top_builddir) depcomp = am__depfiles_maybe = ! COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ ! $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) ! LTCOMPILE = $(LIBTOOL) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) \ ! $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) ! CCLD = $(CC) ! LINK = $(LIBTOOL) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ ! $(AM_LDFLAGS) $(LDFLAGS) -o $@ ! DIST_SOURCES = $(test_SOURCES) HEADERS = $(pkginclude_HEADERS) DIST_COMMON = $(pkginclude_HEADERS) ChangeLog Makefile.am Makefile.in \ TODO + SOURCES = $(test_SOURCES) + all: all-am .SUFFIXES: + .SUFFIXES: .c .lo .o .obj $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ Makefile.am $(top_srcdir)/configure.ac $(ACLOCAL_M4) cd $(top_srcdir) && \ *************** *** 176,179 **** --- 197,218 ---- rm -f $$p $$f ; \ done + test$(EXEEXT): $(test_OBJECTS) $(test_DEPENDENCIES) + @rm -f test$(EXEEXT) + $(LINK) $(test_LDFLAGS) $(test_OBJECTS) $(test_LDADD) $(LIBS) + + mostlyclean-compile: + -rm -f *.$(OBJEXT) core *.core + + distclean-compile: + -rm -f *.tab.c + + .c.o: + $(COMPILE) -c `test -f '$<' || echo '$(srcdir)/'`$< + + .c.obj: + $(COMPILE) -c `if test -f '$<'; then $(CYGPATH_W) '$<'; else $(CYGPATH_W) '$(srcdir)/$<'; fi` + + .c.lo: + $(LTCOMPILE) -c -o $@ `test -f '$<' || echo '$(srcdir)/'`$< mostlyclean-libtool: *************** *** 258,261 **** --- 297,373 ---- distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags + + check-TESTS: $(TESTS) + @failed=0; all=0; xfail=0; xpass=0; skip=0; \ + srcdir=$(srcdir); export srcdir; \ + list='$(TESTS)'; \ + if test -n "$$list"; then \ + for tst in $$list; do \ + if test -f ./$$tst; then dir=./; \ + elif test -f $$tst; then dir=; \ + else dir="$(srcdir)/"; fi; \ + if $(TESTS_ENVIRONMENT) $${dir}$$tst; then \ + all=`expr $$all + 1`; \ + case " $(XFAIL_TESTS) " in \ + *" $$tst "*) \ + xpass=`expr $$xpass + 1`; \ + failed=`expr $$failed + 1`; \ + echo "XPASS: $$tst"; \ + ;; \ + *) \ + echo "PASS: $$tst"; \ + ;; \ + esac; \ + elif test $$? -ne 77; then \ + all=`expr $$all + 1`; \ + case " $(XFAIL_TESTS) " in \ + *" $$tst "*) \ + xfail=`expr $$xfail + 1`; \ + echo "XFAIL: $$tst"; \ + ;; \ + *) \ + failed=`expr $$failed + 1`; \ + echo "FAIL: $$tst"; \ + ;; \ + esac; \ + else \ + skip=`expr $$skip + 1`; \ + echo "SKIP: $$tst"; \ + fi; \ + done; \ + if test "$$failed" -eq 0; then \ + if test "$$xfail" -eq 0; then \ + banner="All $$all tests passed"; \ + else \ + banner="All $$all tests behaved as expected ($$xfail expected failures)"; \ + fi; \ + else \ + if test "$$xpass" -eq 0; then \ + banner="$$failed of $$all tests failed"; \ + else \ + banner="$$failed of $$all tests did not behave as expected ($$xpass unexpected passes)"; \ + fi; \ + fi; \ + dashes="$$banner"; \ + skipped=""; \ + if test "$$skip" -ne 0; then \ + skipped="($$skip tests were not run)"; \ + test `echo "$$skipped" | wc -c` -gt `echo "$$banner" | wc -c` && \ + dashes="$$skipped"; \ + fi; \ + report=""; \ + if test "$$failed" -ne 0 && test -n "$(PACKAGE_BUGREPORT)"; then \ + report="Please report to $(PACKAGE_BUGREPORT)"; \ + test `echo "$$report" | wc -c` -gt `echo "$$banner" | wc -c` && \ + dashes="$$report"; \ + fi; \ + dashes=`echo "$$dashes" | sed s/./=/g`; \ + echo "$$dashes"; \ + echo "$$banner"; \ + test -n "$$skipped" && echo "$$skipped"; \ + test -n "$$report" && echo "$$report"; \ + echo "$$dashes"; \ + test "$$failed" -eq 0; \ + else :; fi DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) *************** *** 292,295 **** --- 404,408 ---- check-am: all-am $(MAKE) $(AM_MAKEFLAGS) $(check_PROGRAMS) + $(MAKE) $(AM_MAKEFLAGS) check-TESTS check: check-am all-am: Makefile $(HEADERS) *************** *** 327,332 **** distclean: distclean-am ! distclean-am: clean-am distclean-generic distclean-libtool \ ! distclean-tags dvi: dvi-am --- 440,445 ---- distclean: distclean-am ! distclean-am: clean-am distclean-compile distclean-generic \ ! distclean-libtool distclean-tags dvi: dvi-am *************** *** 354,358 **** mostlyclean: mostlyclean-am ! mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-am --- 467,472 ---- mostlyclean: mostlyclean-am ! mostlyclean-am: mostlyclean-compile mostlyclean-generic \ ! mostlyclean-libtool pdf: pdf-am *************** *** 366,379 **** uninstall-am: uninstall-info-am uninstall-pkgincludeHEADERS ! .PHONY: CTAGS GTAGS all all-am check check-am clean clean-checkPROGRAMS \ ! clean-generic clean-libtool ctags distclean distclean-generic \ ! distclean-libtool distclean-tags distdir dvi dvi-am info \ ! info-am install install-am install-data install-data-am \ ! install-exec install-exec-am install-info install-info-am \ ! install-man install-pkgincludeHEADERS install-strip \ ! installcheck installcheck-am installdirs maintainer-clean \ ! maintainer-clean-generic mostlyclean mostlyclean-generic \ ! mostlyclean-libtool pdf pdf-am ps ps-am tags uninstall \ ! uninstall-am uninstall-info-am uninstall-pkgincludeHEADERS # Tell versions [3.59,3.63) of GNU make to not export all variables. --- 480,495 ---- uninstall-am: uninstall-info-am uninstall-pkgincludeHEADERS ! .PHONY: CTAGS GTAGS all all-am check check-TESTS check-am clean \ ! clean-checkPROGRAMS clean-generic clean-libtool ctags distclean \ ! distclean-compile distclean-generic distclean-libtool \ ! distclean-tags distdir dvi dvi-am info info-am install \ ! install-am install-data install-data-am install-exec \ ! install-exec-am install-info install-info-am install-man \ ! install-pkgincludeHEADERS install-strip installcheck \ ! installcheck-am installdirs maintainer-clean \ ! maintainer-clean-generic mostlyclean mostlyclean-compile \ ! mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ ! tags uninstall uninstall-am uninstall-info-am \ ! uninstall-pkgincludeHEADERS # Tell versions [3.59,3.63) of GNU make to not export all variables. diff -rc2P -x *.info -x *.info-* gsl-1.4/const/gsl_const.h gsl-1.5/const/gsl_const.h *** gsl-1.4/const/gsl_const.h Fri Jul 25 15:18:18 2003 --- gsl-1.5/const/gsl_const.h Sun Jun 20 18:41:17 2004 *************** *** 1,5 **** /* const/gsl_const.h * ! * Copyright (C) 1996, 1997, 1998, 1999, 2000 Brian Gough * * This program is free software; you can redistribute it and/or modify --- 1,5 ---- /* const/gsl_const.h * ! * Copyright (C) 1996, 1997, 1998, 1999, 2000, 2004 Brian Gough * * This program is free software; you can redistribute it and/or modify *************** *** 22,27 **** --- 22,31 ---- #include + #include #include + + #include + #include #endif /* __GSL_CONST__ */ diff -rc2P -x *.info -x *.info-* gsl-1.4/const/gsl_const_cgs.h gsl-1.5/const/gsl_const_cgs.h *** gsl-1.4/const/gsl_const_cgs.h Thu Jan 1 00:00:00 1970 --- gsl-1.5/const/gsl_const_cgs.h Fri Mar 5 15:15:22 2004 *************** *** 0 **** --- 1,122 ---- + /* const/gsl_const_cgs.h + * + * Copyright (C) 1996, 1997, 1998, 1999, 2000 Brian Gough + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or (at + * your option) any later version. + * + * This program is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + */ + + #ifndef __GSL_CONST_CGS__ + #define __GSL_CONST_CGS__ + + #define GSL_CONST_CGS_SPEED_OF_LIGHT (2.99792458e10) /* cm / s */ + #define GSL_CONST_CGS_GRAVITATIONAL_CONSTANT (6.673e-8) /* cm^3 / g s^2 */ + #define GSL_CONST_CGS_PLANCKS_CONSTANT_H (6.62606876e-27) /* g cm^2 / s */ + #define GSL_CONST_CGS_PLANCKS_CONSTANT_HBAR (1.05457159642e-27) /* g cm^2 / s */ + #define GSL_CONST_CGS_ASTRONOMICAL_UNIT (1.49597870691e13) /* cm */ + #define GSL_CONST_CGS_LIGHT_YEAR (9.46053620707e17) /* cm */ + #define GSL_CONST_CGS_PARSEC (3.08567758135e18) /* cm */ + #define GSL_CONST_CGS_GRAV_ACCEL (9.80665e2) /* cm / s^2 */ + #define GSL_CONST_CGS_ELECTRON_VOLT (1.602176462e-12) /* g cm^2 / s^2 */ + #define GSL_CONST_CGS_MASS_ELECTRON (9.10938188e-28) /* g */ + #define GSL_CONST_CGS_MASS_MUON (1.88353109e-25) /* g */ + #define GSL_CONST_CGS_MASS_PROTON (1.67262158e-24) /* g */ + #define GSL_CONST_CGS_MASS_NEUTRON (1.67492716e-24) /* g */ + #define GSL_CONST_CGS_RYDBERG (2.17987190389e-11) /* g cm^2 / s^2 */ + #define GSL_CONST_CGS_BOLTZMANN (1.3806503e-16) /* g cm^2 / K s^2 */ + #define GSL_CONST_CGS_BOHR_MAGNETON (9.27400899e-20) /* A cm^2 */ + #define GSL_CONST_CGS_NUCLEAR_MAGNETON (5.05078317e-23) /* A cm^2 */ + #define GSL_CONST_CGS_ELECTRON_MAGNETIC_MOMENT (9.28476362e-20) /* A cm^2 */ + #define GSL_CONST_CGS_PROTON_MAGNETIC_MOMENT (1.410606633e-22) /* A cm^2 */ + #define GSL_CONST_CGS_MOLAR_GAS (8.314472e7) /* g cm^2 / K mol s^2 */ + #define GSL_CONST_CGS_STANDARD_GAS_VOLUME (2.2710981e4) /* cm^3 / mol */ + #define GSL_CONST_CGS_MINUTE (6e1) /* s */ + #define GSL_CONST_CGS_HOUR (3.6e3) /* s */ + #define GSL_CONST_CGS_DAY (8.64e4) /* s */ + #define GSL_CONST_CGS_WEEK (6.048e5) /* s */ + #define GSL_CONST_CGS_INCH (2.54e0) /* cm */ + #define GSL_CONST_CGS_FOOT (3.048e1) /* cm */ + #define GSL_CONST_CGS_YARD (9.144e1) /* cm */ + #define GSL_CONST_CGS_MILE (1.609344e5) /* cm */ + #define GSL_CONST_CGS_NAUTICAL_MILE (1.852e5) /* cm */ + #define GSL_CONST_CGS_FATHOM (1.8288e2) /* cm */ + #define GSL_CONST_CGS_MIL (2.54e-3) /* cm */ + #define GSL_CONST_CGS_POINT (3.52777777778e-2) /* cm */ + #define GSL_CONST_CGS_TEXPOINT (3.51459803515e-2) /* cm */ + #define GSL_CONST_CGS_MICRON (1e-4) /* cm */ + #define GSL_CONST_CGS_ANGSTROM (1e-8) /* cm */ + #define GSL_CONST_CGS_HECTARE (1e8) /* cm^2 */ + #define GSL_CONST_CGS_ACRE (4.04685642241e7) /* cm^2 */ + #define GSL_CONST_CGS_BARN (1e-24) /* cm^2 */ + #define GSL_CONST_CGS_LITER (1e3) /* cm^3 */ + #define GSL_CONST_CGS_US_GALLON (3.78541178402e3) /* cm^3 */ + #define GSL_CONST_CGS_QUART (9.46352946004e2) /* cm^3 */ + #define GSL_CONST_CGS_PINT (4.73176473002e2) /* cm^3 */ + #define GSL_CONST_CGS_CUP (2.36588236501e2) /* cm^3 */ + #define GSL_CONST_CGS_FLUID_OUNCE (2.95735295626e1) /* cm^3 */ + #define GSL_CONST_CGS_TABLESPOON (1.47867647813e1) /* cm^3 */ + #define GSL_CONST_CGS_TEASPOON (4.92892159375e0) /* cm^3 */ + #define GSL_CONST_CGS_CANADIAN_GALLON (4.54609e3) /* cm^3 */ + #define GSL_CONST_CGS_UK_GALLON (4.546092e3) /* cm^3 */ + #define GSL_CONST_CGS_MILES_PER_HOUR (4.4704e1) /* cm / s */ + #define GSL_CONST_CGS_KILOMETERS_PER_HOUR (2.77777777778e1) /* cm / s */ + #define GSL_CONST_CGS_KNOT (5.14444444444e1) /* cm / s */ + #define GSL_CONST_CGS_POUND_MASS (4.5359237e2) /* g */ + #define GSL_CONST_CGS_OUNCE_MASS (2.8349523125e1) /* g */ + #define GSL_CONST_CGS_TON (9.0718474e5) /* g */ + #define GSL_CONST_CGS_METRIC_TON (1e6) /* g */ + #define GSL_CONST_CGS_UK_TON (1.0160469088e6) /* g */ + #define GSL_CONST_CGS_TROY_OUNCE (3.1103475e1) /* g */ + #define GSL_CONST_CGS_CARAT (2e-1) /* g */ + #define GSL_CONST_CGS_UNIFIED_ATOMIC_MASS (1.66053873e-24) /* g */ + #define GSL_CONST_CGS_GRAM_FORCE (9.80665e2) /* cm g / s^2 */ + #define GSL_CONST_CGS_POUND_FORCE (4.44822161526e5) /* cm g / s^2 */ + #define GSL_CONST_CGS_KILOPOUND_FORCE (4.44822161526e8) /* cm g / s^2 */ + #define GSL_CONST_CGS_POUNDAL (1.38255e4) /* cm g / s^2 */ + #define GSL_CONST_CGS_CALORIE (4.1868e7) /* g cm^2 / s^2 */ + #define GSL_CONST_CGS_BTU (1.05505585262e10) /* g cm^2 / s^2 */ + #define GSL_CONST_CGS_THERM (1.05506e15) /* g cm^2 / s^2 */ + #define GSL_CONST_CGS_HORSEPOWER (7.457e9) /* g cm^2 / s^3 */ + #define GSL_CONST_CGS_BAR (1e6) /* g / cm s^2 */ + #define GSL_CONST_CGS_STD_ATMOSPHERE (1.01325e6) /* g / cm s^2 */ + #define GSL_CONST_CGS_TORR (1.33322368421e3) /* g / cm s^2 */ + #define GSL_CONST_CGS_METER_OF_MERCURY (1.33322368421e6) /* g / cm s^2 */ + #define GSL_CONST_CGS_INCH_OF_MERCURY (3.38638815789e4) /* g / cm s^2 */ + #define GSL_CONST_CGS_INCH_OF_WATER (2.490889e3) /* g / cm s^2 */ + #define GSL_CONST_CGS_PSI (6.89475729317e4) /* g / cm s^2 */ + #define GSL_CONST_CGS_POISE (1e0) /* g / cm s */ + #define GSL_CONST_CGS_STOKES (1e0) /* cm^2 / s */ + #define GSL_CONST_CGS_FARADAY (9.6485341472e4) /* A s / mol */ + #define GSL_CONST_CGS_ELECTRON_CHARGE (1.602176462e-19) /* A s */ + #define GSL_CONST_CGS_GAUSS (1e-1) /* g / A s^2 */ + #define GSL_CONST_CGS_STILB (1e0) /* cd / cm^2 */ + #define GSL_CONST_CGS_LUMEN (1e0) /* cd sr */ + #define GSL_CONST_CGS_LUX (1e-4) /* cd sr / cm^2 */ + #define GSL_CONST_CGS_PHOT (1e0) /* cd sr / cm^2 */ + #define GSL_CONST_CGS_FOOTCANDLE (1.076e-3) /* cd sr / cm^2 */ + #define GSL_CONST_CGS_LAMBERT (1e0) /* cd sr / cm^2 */ + #define GSL_CONST_CGS_FOOTLAMBERT (1.07639104e-3) /* cd sr / cm^2 */ + #define GSL_CONST_CGS_CURIE (3.7e10) /* 1 / s */ + #define GSL_CONST_CGS_ROENTGEN (2.58e-7) /* A s / g */ + #define GSL_CONST_CGS_RAD (1e2) /* cm^2 / s^2 */ + #define GSL_CONST_CGS_SOLAR_MASS (1.98892e33) /* g */ + #define GSL_CONST_CGS_BOHR_RADIUS (5.291772083e-9) /* cm */ + #define GSL_CONST_CGS_NEWTON (1e5) /* cm g / s^2 */ + #define GSL_CONST_CGS_DYNE (1e0) /* cm g / s^2 */ + #define GSL_CONST_CGS_JOULE (1e7) /* g cm^2 / s^2 */ + #define GSL_CONST_CGS_ERG (1e0) /* g cm^2 / s^2 */ + #define GSL_CONST_CGS_STEFAN_BOLTZMANN_CONSTANT (5.67039934436e-5) /* g / K^4 s^3 */ + #define GSL_CONST_CGS_THOMSON_CROSS_SECTION (6.65245853542e-25) /* cm^2 */ + + #endif /* __GSL_CONST_CGS__ */ diff -rc2P -x *.info -x *.info-* gsl-1.4/const/gsl_const_cgsm.h gsl-1.5/const/gsl_const_cgsm.h *** gsl-1.4/const/gsl_const_cgsm.h Fri Jul 25 15:18:18 2003 --- gsl-1.5/const/gsl_const_cgsm.h Sun Jun 20 18:41:17 2004 *************** *** 1,5 **** /* const/gsl_const_cgsm.h * ! * Copyright (C) 1996, 1997, 1998, 1999, 2000 Brian Gough * * This program is free software; you can redistribute it and/or modify --- 1,5 ---- /* const/gsl_const_cgsm.h * ! * Copyright (C) 1996, 1997, 1998, 1999, 2000, 2004 Brian Gough * * This program is free software; you can redistribute it and/or modify *************** *** 117,120 **** --- 117,122 ---- #define GSL_CONST_CGSM_JOULE (1e7) /* g cm^2 / s^2 */ #define GSL_CONST_CGSM_ERG (1e0) /* g cm^2 / s^2 */ + #define GSL_CONST_CGSM_STEFAN_BOLTZMANN_CONSTANT (5.67039934436e-5) /* g / K^4 s^3 */ + #define GSL_CONST_CGSM_THOMSON_CROSS_SECTION (6.65245853542e-25) /* cm^2 */ #endif /* __GSL_CONST_CGSM__ */ diff -rc2P -x *.info -x *.info-* gsl-1.4/const/gsl_const_mks.h gsl-1.5/const/gsl_const_mks.h *** gsl-1.4/const/gsl_const_mks.h Thu Jan 1 00:00:00 1970 --- gsl-1.5/const/gsl_const_mks.h Fri Mar 5 15:15:22 2004 *************** *** 0 **** --- 1,124 ---- + /* const/gsl_const_mks.h + * + * Copyright (C) 1996, 1997, 1998, 1999, 2000 Brian Gough + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or (at + * your option) any later version. + * + * This program is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + */ + + #ifndef __GSL_CONST_MKS__ + #define __GSL_CONST_MKS__ + + #define GSL_CONST_MKS_SPEED_OF_LIGHT (2.99792458e8) /* m / s */ + #define GSL_CONST_MKS_GRAVITATIONAL_CONSTANT (6.673e-11) /* m^3 / kg s^2 */ + #define GSL_CONST_MKS_PLANCKS_CONSTANT_H (6.62606876e-34) /* kg m^2 / s */ + #define GSL_CONST_MKS_PLANCKS_CONSTANT_HBAR (1.05457159642e-34) /* kg m^2 / s */ + #define GSL_CONST_MKS_ASTRONOMICAL_UNIT (1.49597870691e11) /* m */ + #define GSL_CONST_MKS_LIGHT_YEAR (9.46053620707e15) /* m */ + #define GSL_CONST_MKS_PARSEC (3.08567758135e16) /* m */ + #define GSL_CONST_MKS_GRAV_ACCEL (9.80665e0) /* m / s^2 */ + #define GSL_CONST_MKS_ELECTRON_VOLT (1.602176462e-19) /* kg m^2 / s^2 */ + #define GSL_CONST_MKS_MASS_ELECTRON (9.10938188e-31) /* kg */ + #define GSL_CONST_MKS_MASS_MUON (1.88353109e-28) /* kg */ + #define GSL_CONST_MKS_MASS_PROTON (1.67262158e-27) /* kg */ + #define GSL_CONST_MKS_MASS_NEUTRON (1.67492716e-27) /* kg */ + #define GSL_CONST_MKS_RYDBERG (2.17987190389e-18) /* kg m^2 / s^2 */ + #define GSL_CONST_MKS_BOLTZMANN (1.3806503e-23) /* kg m^2 / K s^2 */ + #define GSL_CONST_MKS_BOHR_MAGNETON (9.27400899e-24) /* A m^2 */ + #define GSL_CONST_MKS_NUCLEAR_MAGNETON (5.05078317e-27) /* A m^2 */ + #define GSL_CONST_MKS_ELECTRON_MAGNETIC_MOMENT (9.28476362e-24) /* A m^2 */ + #define GSL_CONST_MKS_PROTON_MAGNETIC_MOMENT (1.410606633e-26) /* A m^2 */ + #define GSL_CONST_MKS_MOLAR_GAS (8.314472e0) /* kg m^2 / K mol s^2 */ + #define GSL_CONST_MKS_STANDARD_GAS_VOLUME (2.2710981e-2) /* m^3 / mol */ + #define GSL_CONST_MKS_MINUTE (6e1) /* s */ + #define GSL_CONST_MKS_HOUR (3.6e3) /* s */ + #define GSL_CONST_MKS_DAY (8.64e4) /* s */ + #define GSL_CONST_MKS_WEEK (6.048e5) /* s */ + #define GSL_CONST_MKS_INCH (2.54e-2) /* m */ + #define GSL_CONST_MKS_FOOT (3.048e-1) /* m */ + #define GSL_CONST_MKS_YARD (9.144e-1) /* m */ + #define GSL_CONST_MKS_MILE (1.609344e3) /* m */ + #define GSL_CONST_MKS_NAUTICAL_MILE (1.852e3) /* m */ + #define GSL_CONST_MKS_FATHOM (1.8288e0) /* m */ + #define GSL_CONST_MKS_MIL (2.54e-5) /* m */ + #define GSL_CONST_MKS_POINT (3.52777777778e-4) /* m */ + #define GSL_CONST_MKS_TEXPOINT (3.51459803515e-4) /* m */ + #define GSL_CONST_MKS_MICRON (1e-6) /* m */ + #define GSL_CONST_MKS_ANGSTROM (1e-10) /* m */ + #define GSL_CONST_MKS_HECTARE (1e4) /* m^2 */ + #define GSL_CONST_MKS_ACRE (4.04685642241e3) /* m^2 */ + #define GSL_CONST_MKS_BARN (1e-28) /* m^2 */ + #define GSL_CONST_MKS_LITER (1e-3) /* m^3 */ + #define GSL_CONST_MKS_US_GALLON (3.78541178402e-3) /* m^3 */ + #define GSL_CONST_MKS_QUART (9.46352946004e-4) /* m^3 */ + #define GSL_CONST_MKS_PINT (4.73176473002e-4) /* m^3 */ + #define GSL_CONST_MKS_CUP (2.36588236501e-4) /* m^3 */ + #define GSL_CONST_MKS_FLUID_OUNCE (2.95735295626e-5) /* m^3 */ + #define GSL_CONST_MKS_TABLESPOON (1.47867647813e-5) /* m^3 */ + #define GSL_CONST_MKS_TEASPOON (4.92892159375e-6) /* m^3 */ + #define GSL_CONST_MKS_CANADIAN_GALLON (4.54609e-3) /* m^3 */ + #define GSL_CONST_MKS_UK_GALLON (4.546092e-3) /* m^3 */ + #define GSL_CONST_MKS_MILES_PER_HOUR (4.4704e-1) /* m / s */ + #define GSL_CONST_MKS_KILOMETERS_PER_HOUR (2.77777777778e-1) /* m / s */ + #define GSL_CONST_MKS_KNOT (5.14444444444e-1) /* m / s */ + #define GSL_CONST_MKS_POUND_MASS (4.5359237e-1) /* kg */ + #define GSL_CONST_MKS_OUNCE_MASS (2.8349523125e-2) /* kg */ + #define GSL_CONST_MKS_TON (9.0718474e2) /* kg */ + #define GSL_CONST_MKS_METRIC_TON (1e3) /* kg */ + #define GSL_CONST_MKS_UK_TON (1.0160469088e3) /* kg */ + #define GSL_CONST_MKS_TROY_OUNCE (3.1103475e-2) /* kg */ + #define GSL_CONST_MKS_CARAT (2e-4) /* kg */ + #define GSL_CONST_MKS_UNIFIED_ATOMIC_MASS (1.66053873e-27) /* kg */ + #define GSL_CONST_MKS_GRAM_FORCE (9.80665e-3) /* kg m / s^2 */ + #define GSL_CONST_MKS_POUND_FORCE (4.44822161526e0) /* kg m / s^2 */ + #define GSL_CONST_MKS_KILOPOUND_FORCE (4.44822161526e3) /* kg m / s^2 */ + #define GSL_CONST_MKS_POUNDAL (1.38255e-1) /* kg m / s^2 */ + #define GSL_CONST_MKS_CALORIE (4.1868e0) /* kg m^2 / s^2 */ + #define GSL_CONST_MKS_BTU (1.05505585262e3) /* kg m^2 / s^2 */ + #define GSL_CONST_MKS_THERM (1.05506e8) /* kg m^2 / s^2 */ + #define GSL_CONST_MKS_HORSEPOWER (7.457e2) /* kg m^2 / s^3 */ + #define GSL_CONST_MKS_BAR (1e5) /* kg / m s^2 */ + #define GSL_CONST_MKS_STD_ATMOSPHERE (1.01325e5) /* kg / m s^2 */ + #define GSL_CONST_MKS_TORR (1.33322368421e2) /* kg / m s^2 */ + #define GSL_CONST_MKS_METER_OF_MERCURY (1.33322368421e5) /* kg / m s^2 */ + #define GSL_CONST_MKS_INCH_OF_MERCURY (3.38638815789e3) /* kg / m s^2 */ + #define GSL_CONST_MKS_INCH_OF_WATER (2.490889e2) /* kg / m s^2 */ + #define GSL_CONST_MKS_PSI (6.89475729317e3) /* kg / m s^2 */ + #define GSL_CONST_MKS_POISE (1e-1) /* kg m^-1 s^-1 */ + #define GSL_CONST_MKS_STOKES (1e-4) /* m^2 / s */ + #define GSL_CONST_MKS_FARADAY (9.6485341472e4) /* A s / mol */ + #define GSL_CONST_MKS_ELECTRON_CHARGE (1.602176462e-19) /* A s */ + #define GSL_CONST_MKS_GAUSS (1e-4) /* kg / A s^2 */ + #define GSL_CONST_MKS_STILB (1e4) /* cd / m^2 */ + #define GSL_CONST_MKS_LUMEN (1e0) /* cd sr */ + #define GSL_CONST_MKS_LUX (1e0) /* cd sr / m^2 */ + #define GSL_CONST_MKS_PHOT (1e4) /* cd sr / m^2 */ + #define GSL_CONST_MKS_FOOTCANDLE (1.076e1) /* cd sr / m^2 */ + #define GSL_CONST_MKS_LAMBERT (1e4) /* cd sr / m^2 */ + #define GSL_CONST_MKS_FOOTLAMBERT (1.07639104e1) /* cd sr / m^2 */ + #define GSL_CONST_MKS_CURIE (3.7e10) /* 1 / s */ + #define GSL_CONST_MKS_ROENTGEN (2.58e-4) /* A s / kg */ + #define GSL_CONST_MKS_RAD (1e-2) /* m^2 / s^2 */ + #define GSL_CONST_MKS_SOLAR_MASS (1.98892e30) /* kg */ + #define GSL_CONST_MKS_BOHR_RADIUS (5.291772083e-11) /* m */ + #define GSL_CONST_MKS_NEWTON (1e0) /* kg m / s^2 */ + #define GSL_CONST_MKS_DYNE (1e-5) /* kg m / s^2 */ + #define GSL_CONST_MKS_JOULE (1e0) /* kg m^2 / s^2 */ + #define GSL_CONST_MKS_ERG (1e-7) /* kg m^2 / s^2 */ + #define GSL_CONST_MKS_STEFAN_BOLTZMANN_CONSTANT (5.67039934436e-8) /* kg / K^4 s^3 */ + #define GSL_CONST_MKS_THOMSON_CROSS_SECTION (6.65245853542e-29) /* m^2 */ + #define GSL_CONST_MKS_VACUUM_PERMITTIVITY (8.854187817e-12) /* A^2 s^4 / kg m^3 */ + #define GSL_CONST_MKS_VACUUM_PERMEABILITY (1.25663706144e-6) /* kg m / A^2 s^2 */ + + #endif /* __GSL_CONST_MKS__ */ diff -rc2P -x *.info -x *.info-* gsl-1.4/const/gsl_const_mksa.h gsl-1.5/const/gsl_const_mksa.h *** gsl-1.4/const/gsl_const_mksa.h Fri Jul 25 15:18:18 2003 --- gsl-1.5/const/gsl_const_mksa.h Sun Jun 20 18:41:17 2004 *************** *** 1,5 **** /* const/gsl_const_mksa.h * ! * Copyright (C) 1996, 1997, 1998, 1999, 2000 Brian Gough * * This program is free software; you can redistribute it and/or modify --- 1,5 ---- /* const/gsl_const_mksa.h * ! * Copyright (C) 1996, 1997, 1998, 1999, 2000, 2004 Brian Gough * * This program is free software; you can redistribute it and/or modify *************** *** 117,120 **** --- 117,122 ---- #define GSL_CONST_MKSA_JOULE (1e0) /* kg m^2 / s^2 */ #define GSL_CONST_MKSA_ERG (1e-7) /* kg m^2 / s^2 */ + #define GSL_CONST_MKSA_STEFAN_BOLTZMANN_CONSTANT (5.67039934436e-8) /* kg / K^4 s^3 */ + #define GSL_CONST_MKSA_THOMSON_CROSS_SECTION (6.65245853542e-29) /* m^2 */ #define GSL_CONST_MKSA_VACUUM_PERMITTIVITY (8.854187817e-12) /* A^2 s^4 / kg m^3 */ #define GSL_CONST_MKSA_VACUUM_PERMEABILITY (1.25663706144e-6) /* kg m / A^2 s^2 */ diff -rc2P -x *.info -x *.info-* gsl-1.4/const/test.c gsl-1.5/const/test.c *** gsl-1.4/const/test.c Thu Jan 1 00:00:00 1970 --- gsl-1.5/const/test.c Thu May 27 12:05:35 2004 *************** *** 0 **** --- 1,77 ---- + /* const/test.c + * + * Copyright (C) 2003 Brian Gough + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or (at + * your option) any later version. + * + * This program is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + */ + + #include + #include + #include + #include + #include + + #include + + int + main (void) + { + gsl_ieee_env_setup (); + + /* Basic check to make sure the header files are functioning */ + + { + double c = GSL_CONST_MKS_SPEED_OF_LIGHT; + double eps = GSL_CONST_MKS_VACUUM_PERMITTIVITY; + double mu = GSL_CONST_MKS_VACUUM_PERMEABILITY; + + gsl_test_rel (c, 1.0/sqrt(eps*mu), 1e-6, "speed of light (mks)"); + } + + { + double ly = GSL_CONST_CGS_LIGHT_YEAR; + double c = GSL_CONST_CGS_SPEED_OF_LIGHT; + double y = 365.2425 * GSL_CONST_CGS_DAY; + + gsl_test_rel (ly, c * y, 1e-6, "light year (cgs)"); + } + + { + double c = GSL_CONST_MKSA_SPEED_OF_LIGHT; + double eps = GSL_CONST_MKSA_VACUUM_PERMITTIVITY; + double mu = GSL_CONST_MKSA_VACUUM_PERMEABILITY; + + gsl_test_rel (c, 1.0/sqrt(eps*mu), 1e-6, "speed of light (mksa)"); + } + + { + double ly = GSL_CONST_CGSM_LIGHT_YEAR; + double c = GSL_CONST_CGSM_SPEED_OF_LIGHT; + double y = 365.2425 * GSL_CONST_CGSM_DAY; + + gsl_test_rel (ly, c * y, 1e-6, "light year (cgsm)"); + } + + { + double micro = GSL_CONST_NUM_MICRO; + double mega = GSL_CONST_NUM_MEGA; + double kilo = GSL_CONST_NUM_KILO; + + gsl_test_rel (mega/kilo, 1/(micro*kilo), 1e-10, "kilo (mega/kilo, 1/(micro*kilo))"); + } + + exit (gsl_test_summary ()); + } + diff -rc2P -x *.info -x *.info-* gsl-1.4/deriv/ChangeLog gsl-1.5/deriv/ChangeLog *** gsl-1.4/deriv/ChangeLog Thu Jan 1 00:00:00 1970 --- gsl-1.5/deriv/ChangeLog Sat Mar 20 23:07:20 2004 *************** *** 0 **** --- 1,4 ---- + 2004-03-06 Brian Gough + + * reworking API of gsl_diff + diff -rc2P -x *.info -x *.info-* gsl-1.4/deriv/Makefile.am gsl-1.5/deriv/Makefile.am *** gsl-1.4/deriv/Makefile.am Thu Jan 1 00:00:00 1970 --- gsl-1.5/deriv/Makefile.am Sat Mar 20 23:07:20 2004 *************** *** 0 **** --- 1,16 ---- + noinst_LTLIBRARIES = libgslderiv.la + + INCLUDES= -I$(top_builddir) + + libgslderiv_la_SOURCES = deriv.c + + pkginclude_HEADERS = gsl_deriv.h + + TESTS = test + check_PROGRAMS = test #demo + + test_SOURCES = test.c + test_LDADD = libgslderiv.la ../vector/libgslvector.la ../block/libgslblock.la ../ieee-utils/libgslieeeutils.la ../err/libgslerr.la ../test/libgsltest.la ../sys/libgslsys.la + + #demo_SOURCES = demo.c + #demo_LDADD = libgslderiv.la ../vector/libgslvector.la ../block/libgslblock.la ../err/libgslerr.la ../test/libgsltest.la ../sys/libgslsys.la diff -rc2P -x *.info -x *.info-* gsl-1.4/deriv/Makefile.in gsl-1.5/deriv/Makefile.in *** gsl-1.4/deriv/Makefile.in Thu Jan 1 00:00:00 1970 --- gsl-1.5/deriv/Makefile.in Thu Jun 24 10:49:40 2004 *************** *** 0 **** --- 1,520 ---- + # Makefile.in generated by automake 1.7.5 from Makefile.am. + # @configure_input@ + + # Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003 + # Free Software Foundation, Inc. + # This Makefile.in is free software; the Free Software Foundation + # gives unlimited permission to copy and/or distribute it, + # with or without modifications, as long as this notice is preserved. + + # This program is distributed in the hope that it will be useful, + # but WITHOUT ANY WARRANTY, to the extent permitted by law; without + # even the implied warranty of MERCHANTABILITY or FITNESS FOR A + # PARTICULAR PURPOSE. + + @SET_MAKE@ + + srcdir = @srcdir@ + top_srcdir = @top_srcdir@ + VPATH = @srcdir@ + pkgdatadir = $(datadir)/@PACKAGE@ + pkglibdir = $(libdir)/@PACKAGE@ + pkgincludedir = $(includedir)/@PACKAGE@ + top_builddir = .. + + am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd + INSTALL = @INSTALL@ + install_sh_DATA = $(install_sh) -c -m 644 + install_sh_PROGRAM = $(install_sh) -c + install_sh_SCRIPT = $(install_sh) -c + INSTALL_HEADER = $(INSTALL_DATA) + transform = $(program_transform_name) + NORMAL_INSTALL = : + PRE_INSTALL = : + POST_INSTALL = : + NORMAL_UNINSTALL = : + PRE_UNINSTALL = : + POST_UNINSTALL = : + host_triplet = @host@ + ACLOCAL = @ACLOCAL@ + AMTAR = @AMTAR@ + AR = @AR@ + AUTOCONF = @AUTOCONF@ + AUTOHEADER = @AUTOHEADER@ + AUTOMAKE = @AUTOMAKE@ + AWK = @AWK@ + CC = @CC@ + CFLAGS = @CFLAGS@ + CPP = @CPP@ + CPPFLAGS = @CPPFLAGS@ + CYGPATH_W = @CYGPATH_W@ + DEFS = @DEFS@ + ECHO = @ECHO@ + ECHO_C = @ECHO_C@ + ECHO_N = @ECHO_N@ + ECHO_T = @ECHO_T@ + EGREP = @EGREP@ + EXEEXT = @EXEEXT@ + GSL_CFLAGS = @GSL_CFLAGS@ + GSL_LIBS = @GSL_LIBS@ + GSL_LT_CBLAS_VERSION = @GSL_LT_CBLAS_VERSION@ + GSL_LT_VERSION = @GSL_LT_VERSION@ + HAVE_AIX_IEEE_INTERFACE = @HAVE_AIX_IEEE_INTERFACE@ + HAVE_DARWIN_IEEE_INTERFACE = @HAVE_DARWIN_IEEE_INTERFACE@ + HAVE_EXTENDED_PRECISION_REGISTERS = @HAVE_EXTENDED_PRECISION_REGISTERS@ + HAVE_FREEBSD_IEEE_INTERFACE = @HAVE_FREEBSD_IEEE_INTERFACE@ + HAVE_GNUM68K_IEEE_INTERFACE = @HAVE_GNUM68K_IEEE_INTERFACE@ + HAVE_GNUPPC_IEEE_INTERFACE = @HAVE_GNUPPC_IEEE_INTERFACE@ + HAVE_GNUSPARC_IEEE_INTERFACE = @HAVE_GNUSPARC_IEEE_INTERFACE@ + HAVE_GNUX86_IEEE_INTERFACE = @HAVE_GNUX86_IEEE_INTERFACE@ + HAVE_HPUX11_IEEE_INTERFACE = @HAVE_HPUX11_IEEE_INTERFACE@ + HAVE_HPUX_IEEE_INTERFACE = @HAVE_HPUX_IEEE_INTERFACE@ + HAVE_IEEE_COMPARISONS = @HAVE_IEEE_COMPARISONS@ + HAVE_IEEE_DENORMALS = @HAVE_IEEE_DENORMALS@ + HAVE_INLINE = @HAVE_INLINE@ + HAVE_IRIX_IEEE_INTERFACE = @HAVE_IRIX_IEEE_INTERFACE@ + HAVE_NETBSD_IEEE_INTERFACE = @HAVE_NETBSD_IEEE_INTERFACE@ + HAVE_OPENBSD_IEEE_INTERFACE = @HAVE_OPENBSD_IEEE_INTERFACE@ + HAVE_OS2EMX_IEEE_INTERFACE = @HAVE_OS2EMX_IEEE_INTERFACE@ + HAVE_PRINTF_LONGDOUBLE = @HAVE_PRINTF_LONGDOUBLE@ + HAVE_SOLARIS_IEEE_INTERFACE = @HAVE_SOLARIS_IEEE_INTERFACE@ + HAVE_SUNOS4_IEEE_INTERFACE = @HAVE_SUNOS4_IEEE_INTERFACE@ + HAVE_TRU64_IEEE_INTERFACE = @HAVE_TRU64_IEEE_INTERFACE@ + INSTALL_DATA = @INSTALL_DATA@ + INSTALL_PROGRAM = @INSTALL_PROGRAM@ + INSTALL_SCRIPT = @INSTALL_SCRIPT@ + INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ + LDFLAGS = @LDFLAGS@ + LIBOBJS = @LIBOBJS@ + LIBS = @LIBS@ + LIBTOOL = @LIBTOOL@ + LN_S = @LN_S@ + LTLIBOBJS = @LTLIBOBJS@ + MAINT = @MAINT@ + MAINTAINER_MODE_FALSE = @MAINTAINER_MODE_FALSE@ + MAINTAINER_MODE_TRUE = @MAINTAINER_MODE_TRUE@ + MAKEINFO = @MAKEINFO@ + OBJEXT = @OBJEXT@ + PACKAGE = @PACKAGE@ + PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ + PACKAGE_NAME = @PACKAGE_NAME@ + PACKAGE_STRING = @PACKAGE_STRING@ + PACKAGE_TARNAME = @PACKAGE_TARNAME@ + PACKAGE_VERSION = @PACKAGE_VERSION@ + PATH_SEPARATOR = @PATH_SEPARATOR@ + RANLIB = @RANLIB@ + RELEASED = @RELEASED@ + SET_MAKE = @SET_MAKE@ + SHELL = @SHELL@ + STRIP = @STRIP@ + VERSION = @VERSION@ + ac_ct_AR = @ac_ct_AR@ + ac_ct_CC = @ac_ct_CC@ + ac_ct_RANLIB = @ac_ct_RANLIB@ + ac_ct_STRIP = @ac_ct_STRIP@ + am__leading_dot = @am__leading_dot@ + bindir = @bindir@ + build = @build@ + build_alias = @build_alias@ + build_cpu = @build_cpu@ + build_os = @build_os@ + build_vendor = @build_vendor@ + datadir = @datadir@ + exec_prefix = @exec_prefix@ + host = @host@ + host_alias = @host_alias@ + host_cpu = @host_cpu@ + host_os = @host_os@ + host_vendor = @host_vendor@ + includedir = @includedir@ + infodir = @infodir@ + install_sh = @install_sh@ + libdir = @libdir@ + libexecdir = @libexecdir@ + localstatedir = @localstatedir@ + mandir = @mandir@ + oldincludedir = @oldincludedir@ + prefix = @prefix@ + program_transform_name = @program_transform_name@ + sbindir = @sbindir@ + sharedstatedir = @sharedstatedir@ + sysconfdir = @sysconfdir@ + target_alias = @target_alias@ + noinst_LTLIBRARIES = libgslderiv.la + + INCLUDES = -I$(top_builddir) + + libgslderiv_la_SOURCES = deriv.c + + pkginclude_HEADERS = gsl_deriv.h + + TESTS = test + check_PROGRAMS = test #demo + + test_SOURCES = test.c + test_LDADD = libgslderiv.la ../vector/libgslvector.la ../block/libgslblock.la ../ieee-utils/libgslieeeutils.la ../err/libgslerr.la ../test/libgsltest.la ../sys/libgslsys.la + subdir = deriv + ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 + mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs + CONFIG_HEADER = $(top_builddir)/config.h + CONFIG_CLEAN_FILES = + LTLIBRARIES = $(noinst_LTLIBRARIES) + + libgslderiv_la_LDFLAGS = + libgslderiv_la_LIBADD = + am_libgslderiv_la_OBJECTS = deriv.lo + libgslderiv_la_OBJECTS = $(am_libgslderiv_la_OBJECTS) + check_PROGRAMS = test$(EXEEXT) + am_test_OBJECTS = test.$(OBJEXT) + test_OBJECTS = $(am_test_OBJECTS) + test_DEPENDENCIES = libgslderiv.la ../vector/libgslvector.la \ + ../block/libgslblock.la ../ieee-utils/libgslieeeutils.la \ + ../err/libgslerr.la ../test/libgsltest.la ../sys/libgslsys.la + test_LDFLAGS = + + DEFAULT_INCLUDES = -I. -I$(srcdir) -I$(top_builddir) + depcomp = + am__depfiles_maybe = + COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ + $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) + LTCOMPILE = $(LIBTOOL) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) \ + $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) + CCLD = $(CC) + LINK = $(LIBTOOL) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ + $(AM_LDFLAGS) $(LDFLAGS) -o $@ + DIST_SOURCES = $(libgslderiv_la_SOURCES) $(test_SOURCES) + HEADERS = $(pkginclude_HEADERS) + + DIST_COMMON = $(pkginclude_HEADERS) ChangeLog Makefile.am Makefile.in + SOURCES = $(libgslderiv_la_SOURCES) $(test_SOURCES) + + all: all-am + + .SUFFIXES: + .SUFFIXES: .c .lo .o .obj + $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ Makefile.am $(top_srcdir)/configure.ac $(ACLOCAL_M4) + cd $(top_srcdir) && \ + $(AUTOMAKE) --gnu deriv/Makefile + Makefile: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.in $(top_builddir)/config.status + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe) + + clean-noinstLTLIBRARIES: + -test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES) + @list='$(noinst_LTLIBRARIES)'; for p in $$list; do \ + dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ + test "$$dir" = "$$p" && dir=.; \ + echo "rm -f \"$${dir}/so_locations\""; \ + rm -f "$${dir}/so_locations"; \ + done + libgslderiv.la: $(libgslderiv_la_OBJECTS) $(libgslderiv_la_DEPENDENCIES) + $(LINK) $(libgslderiv_la_LDFLAGS) $(libgslderiv_la_OBJECTS) $(libgslderiv_la_LIBADD) $(LIBS) + + clean-checkPROGRAMS: + @list='$(check_PROGRAMS)'; for p in $$list; do \ + f=`echo $$p|sed 's/$(EXEEXT)$$//'`; \ + echo " rm -f $$p $$f"; \ + rm -f $$p $$f ; \ + done + test$(EXEEXT): $(test_OBJECTS) $(test_DEPENDENCIES) + @rm -f test$(EXEEXT) + $(LINK) $(test_LDFLAGS) $(test_OBJECTS) $(test_LDADD) $(LIBS) + + mostlyclean-compile: + -rm -f *.$(OBJEXT) core *.core + + distclean-compile: + -rm -f *.tab.c + + .c.o: + $(COMPILE) -c `test -f '$<' || echo '$(srcdir)/'`$< + + .c.obj: + $(COMPILE) -c `if test -f '$<'; then $(CYGPATH_W) '$<'; else $(CYGPATH_W) '$(srcdir)/$<'; fi` + + .c.lo: + $(LTCOMPILE) -c -o $@ `test -f '$<' || echo '$(srcdir)/'`$< + + mostlyclean-libtool: + -rm -f *.lo + + clean-libtool: + -rm -rf .libs _libs + + distclean-libtool: + -rm -f libtool + uninstall-info-am: + pkgincludeHEADERS_INSTALL = $(INSTALL_HEADER) + install-pkgincludeHEADERS: $(pkginclude_HEADERS) + @$(NORMAL_INSTALL) + $(mkinstalldirs) $(DESTDIR)$(pkgincludedir) + @list='$(pkginclude_HEADERS)'; for p in $$list; do \ + if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ + f="`echo $$p | sed -e 's|^.*/||'`"; \ + echo " $(pkgincludeHEADERS_INSTALL) $$d$$p $(DESTDIR)$(pkgincludedir)/$$f"; \ + $(pkgincludeHEADERS_INSTALL) $$d$$p $(DESTDIR)$(pkgincludedir)/$$f; \ + done + + uninstall-pkgincludeHEADERS: + @$(NORMAL_UNINSTALL) + @list='$(pkginclude_HEADERS)'; for p in $$list; do \ + f="`echo $$p | sed -e 's|^.*/||'`"; \ + echo " rm -f $(DESTDIR)$(pkgincludedir)/$$f"; \ + rm -f $(DESTDIR)$(pkgincludedir)/$$f; \ + done + + ETAGS = etags + ETAGSFLAGS = + + CTAGS = ctags + CTAGSFLAGS = + + tags: TAGS + + ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) ' { files[$$0] = 1; } \ + END { for (i in files) print i; }'`; \ + mkid -fID $$unique + + TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ + $(TAGS_FILES) $(LISP) + tags=; \ + here=`pwd`; \ + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) ' { files[$$0] = 1; } \ + END { for (i in files) print i; }'`; \ + test -z "$(ETAGS_ARGS)$$tags$$unique" \ + || $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + $$tags $$unique + + ctags: CTAGS + CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ + $(TAGS_FILES) $(LISP) + tags=; \ + here=`pwd`; \ + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) ' { files[$$0] = 1; } \ + END { for (i in files) print i; }'`; \ + test -z "$(CTAGS_ARGS)$$tags$$unique" \ + || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ + $$tags $$unique + + GTAGS: + here=`$(am__cd) $(top_builddir) && pwd` \ + && cd $(top_srcdir) \ + && gtags -i $(GTAGS_ARGS) $$here + + distclean-tags: + -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags + + check-TESTS: $(TESTS) + @failed=0; all=0; xfail=0; xpass=0; skip=0; \ + srcdir=$(srcdir); export srcdir; \ + list='$(TESTS)'; \ + if test -n "$$list"; then \ + for tst in $$list; do \ + if test -f ./$$tst; then dir=./; \ + elif test -f $$tst; then dir=; \ + else dir="$(srcdir)/"; fi; \ + if $(TESTS_ENVIRONMENT) $${dir}$$tst; then \ + all=`expr $$all + 1`; \ + case " $(XFAIL_TESTS) " in \ + *" $$tst "*) \ + xpass=`expr $$xpass + 1`; \ + failed=`expr $$failed + 1`; \ + echo "XPASS: $$tst"; \ + ;; \ + *) \ + echo "PASS: $$tst"; \ + ;; \ + esac; \ + elif test $$? -ne 77; then \ + all=`expr $$all + 1`; \ + case " $(XFAIL_TESTS) " in \ + *" $$tst "*) \ + xfail=`expr $$xfail + 1`; \ + echo "XFAIL: $$tst"; \ + ;; \ + *) \ + failed=`expr $$failed + 1`; \ + echo "FAIL: $$tst"; \ + ;; \ + esac; \ + else \ + skip=`expr $$skip + 1`; \ + echo "SKIP: $$tst"; \ + fi; \ + done; \ + if test "$$failed" -eq 0; then \ + if test "$$xfail" -eq 0; then \ + banner="All $$all tests passed"; \ + else \ + banner="All $$all tests behaved as expected ($$xfail expected failures)"; \ + fi; \ + else \ + if test "$$xpass" -eq 0; then \ + banner="$$failed of $$all tests failed"; \ + else \ + banner="$$failed of $$all tests did not behave as expected ($$xpass unexpected passes)"; \ + fi; \ + fi; \ + dashes="$$banner"; \ + skipped=""; \ + if test "$$skip" -ne 0; then \ + skipped="($$skip tests were not run)"; \ + test `echo "$$skipped" | wc -c` -gt `echo "$$banner" | wc -c` && \ + dashes="$$skipped"; \ + fi; \ + report=""; \ + if test "$$failed" -ne 0 && test -n "$(PACKAGE_BUGREPORT)"; then \ + report="Please report to $(PACKAGE_BUGREPORT)"; \ + test `echo "$$report" | wc -c` -gt `echo "$$banner" | wc -c` && \ + dashes="$$report"; \ + fi; \ + dashes=`echo "$$dashes" | sed s/./=/g`; \ + echo "$$dashes"; \ + echo "$$banner"; \ + test -n "$$skipped" && echo "$$skipped"; \ + test -n "$$report" && echo "$$report"; \ + echo "$$dashes"; \ + test "$$failed" -eq 0; \ + else :; fi + DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) + + top_distdir = .. + distdir = $(top_distdir)/$(PACKAGE)-$(VERSION) + + distdir: $(DISTFILES) + @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \ + list='$(DISTFILES)'; for file in $$list; do \ + case $$file in \ + $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \ + $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \ + esac; \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test "$$dir" != "$$file" && test "$$dir" != "."; then \ + dir="/$$dir"; \ + $(mkinstalldirs) "$(distdir)$$dir"; \ + else \ + dir=''; \ + fi; \ + if test -d $$d/$$file; then \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ + fi; \ + cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ + else \ + test -f $(distdir)/$$file \ + || cp -p $$d/$$file $(distdir)/$$file \ + || exit 1; \ + fi; \ + done + check-am: all-am + $(MAKE) $(AM_MAKEFLAGS) $(check_PROGRAMS) + $(MAKE) $(AM_MAKEFLAGS) check-TESTS + check: check-am + all-am: Makefile $(LTLIBRARIES) $(HEADERS) + + installdirs: + $(mkinstalldirs) $(DESTDIR)$(pkgincludedir) + install: install-am + install-exec: install-exec-am + install-data: install-data-am + uninstall: uninstall-am + + install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + + installcheck: installcheck-am + install-strip: + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + INSTALL_STRIP_FLAG=-s \ + `test -z '$(STRIP)' || \ + echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install + mostlyclean-generic: + + clean-generic: + + distclean-generic: + -rm -f Makefile $(CONFIG_CLEAN_FILES) + + maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." + clean: clean-am + + clean-am: clean-checkPROGRAMS clean-generic clean-libtool \ + clean-noinstLTLIBRARIES mostlyclean-am + + distclean: distclean-am + + distclean-am: clean-am distclean-compile distclean-generic \ + distclean-libtool distclean-tags + + dvi: dvi-am + + dvi-am: + + info: info-am + + info-am: + + install-data-am: install-pkgincludeHEADERS + + install-exec-am: + + install-info: install-info-am + + install-man: + + installcheck-am: + + maintainer-clean: maintainer-clean-am + + maintainer-clean-am: distclean-am maintainer-clean-generic + + mostlyclean: mostlyclean-am + + mostlyclean-am: mostlyclean-compile mostlyclean-generic \ + mostlyclean-libtool + + pdf: pdf-am + + pdf-am: + + ps: ps-am + + ps-am: + + uninstall-am: uninstall-info-am uninstall-pkgincludeHEADERS + + .PHONY: CTAGS GTAGS all all-am check check-TESTS check-am clean \ + clean-checkPROGRAMS clean-generic clean-libtool \ + clean-noinstLTLIBRARIES ctags distclean distclean-compile \ + distclean-generic distclean-libtool distclean-tags distdir dvi \ + dvi-am info info-am install install-am install-data \ + install-data-am install-exec install-exec-am install-info \ + install-info-am install-man install-pkgincludeHEADERS \ + install-strip installcheck installcheck-am installdirs \ + maintainer-clean maintainer-clean-generic mostlyclean \ + mostlyclean-compile mostlyclean-generic mostlyclean-libtool pdf \ + pdf-am ps ps-am tags uninstall uninstall-am uninstall-info-am \ + uninstall-pkgincludeHEADERS + + + #demo_SOURCES = demo.c + #demo_LDADD = libgslderiv.la ../vector/libgslvector.la ../block/libgslblock.la ../err/libgslerr.la ../test/libgsltest.la ../sys/libgslsys.la + # Tell versions [3.59,3.63) of GNU make to not export all variables. + # Otherwise a system limit (for SysV at least) may be exceeded. + .NOEXPORT: diff -rc2P -x *.info -x *.info-* gsl-1.4/deriv/deriv.c gsl-1.5/deriv/deriv.c *** gsl-1.4/deriv/deriv.c Thu Jan 1 00:00:00 1970 --- gsl-1.5/deriv/deriv.c Sat Mar 20 23:07:20 2004 *************** *** 0 **** --- 1,174 ---- + /* deriv/deriv.c + * + * Copyright (C) 2004 Brian Gough + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or (at + * your option) any later version. + * + * This program is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + */ + + #include + #include + #include + #include + #include + + static void + central_deriv (const gsl_function * f, double x, double h, + double *result, double *abserr_round, double *abserr_trunc) + { + /* Compute the derivative using the 5-point rule (x-h, x-h/2, x, + x+h/2, x+h). Note that the central point is not used. + + Compute the error using the difference between the 5-point and + the 3-point rule (x-h,x,x+h). Again the central point is not + used. */ + + double fm1 = GSL_FN_EVAL (f, x - h); + double fp1 = GSL_FN_EVAL (f, x + h); + + double fmh = GSL_FN_EVAL (f, x - h / 2); + double fph = GSL_FN_EVAL (f, x + h / 2); + + double r3 = 0.5 * (fp1 - fm1); + double r5 = (4.0 / 3.0) * (fph - fmh) - (1.0 / 3.0) * r3; + + double e3 = (fabs (fp1) + fabs (fm1)) * GSL_DBL_EPSILON; + double e5 = 2.0 * (fabs (fph) + fabs (fmh)) * GSL_DBL_EPSILON + e3; + + double dy = GSL_MAX (fabs (r3), fabs (r5)) * fabs (x) * GSL_DBL_EPSILON; + + /* The truncation error in the r5 approximation itself is O(h^4). + However, for safety, we estimate the error from r5-r3, which is + O(h^2). By scaling h we will minimise this estimated error, not + the actual truncation error in r5. */ + + *result = r5 / h; + *abserr_trunc = fabs ((r5 - r3) / h); /* Estimated truncation error O(h^2) */ + *abserr_round = fabs (e5 / h) + dy; /* Rounding error (cancellations) */ + } + + int + gsl_deriv_central (const gsl_function * f, double x, double h, + double *result, double *abserr) + { + double r_0, round, trunc, error; + central_deriv (f, x, h, &r_0, &round, &trunc); + error = round + trunc; + + if (round < trunc && (round > 0 && trunc > 0)) + { + double r_opt, round_opt, trunc_opt, error_opt; + + /* Compute an optimised stepsize to minimize the total error, + using the scaling of the truncation error (O(h^2)) and + rounding error (O(1/h)). */ + + double h_opt = h * pow (round / (2.0 * trunc), 1.0 / 3.0); + central_deriv (f, x, h_opt, &r_opt, &round_opt, &trunc_opt); + error_opt = round_opt + trunc_opt; + + /* Check that the new error is smaller, and that the new derivative + is consistent with the error bounds of the original estimate. */ + + if (error_opt < error && fabs (r_opt - r_0) < 4.0 * error) + { + r_0 = r_opt; + error = error_opt; + } + } + + *result = r_0; + *abserr = error; + + return GSL_SUCCESS; + } + + + static void + forward_deriv (const gsl_function * f, double x, double h, + double *result, double *abserr_round, double *abserr_trunc) + { + /* Compute the derivative using the 4-point rule (x+h/4, x+h/2, + x+3h/4, x+h). + + Compute the error using the difference between the 4-point and + the 2-point rule (x+h/2,x+h). */ + + double f1 = GSL_FN_EVAL (f, x + h / 4.0); + double f2 = GSL_FN_EVAL (f, x + h / 2.0); + double f3 = GSL_FN_EVAL (f, x + (3.0 / 4.0) * h); + double f4 = GSL_FN_EVAL (f, x + h); + + double r2 = 2.0*(f4 - f2); + double r4 = (22.0 / 3.0) * (f4 - f3) - (62.0 / 3.0) * (f3 - f2) + + (52.0 / 3.0) * (f2 - f1); + + /* Estimate the rounding error for r4 */ + + double e4 = 2 * 20.67 * (fabs (f4) + fabs (f3) + fabs (f2) + fabs (f1)) * GSL_DBL_EPSILON; + + double dy = GSL_MAX (fabs (r2), fabs (r4)) * fabs (x) * GSL_DBL_EPSILON; + + /* The truncation error in the r4 approximation itself is O(h^3). + However, for safety, we estimate the error from r4-r2, which is + O(h). By scaling h we will minimise this estimated error, not + the actual truncation error in r4. */ + + *result = r4 / h; + *abserr_trunc = fabs ((r4 - r2) / h); /* Estimated truncation error O(h) */ + *abserr_round = fabs (e4 / h) + dy; + } + + int + gsl_deriv_forward (const gsl_function * f, double x, double h, + double *result, double *abserr) + { + double r_0, round, trunc, error; + forward_deriv (f, x, h, &r_0, &round, &trunc); + error = round + trunc; + + if (round < trunc && (round > 0 && trunc > 0)) + { + double r_opt, round_opt, trunc_opt, error_opt; + + /* Compute an optimised stepsize to minimize the total error, + using the scaling of the estimated truncation error (O(h)) and + rounding error (O(1/h)). */ + + double h_opt = h * pow (round / (trunc), 1.0 / 2.0); + forward_deriv (f, x, h_opt, &r_opt, &round_opt, &trunc_opt); + error_opt = round_opt + trunc_opt; + + /* Check that the new error is smaller, and that the new derivative + is consistent with the error bounds of the original estimate. */ + + if (error_opt < error && fabs (r_opt - r_0) < 4.0 * error) + { + r_0 = r_opt; + error = error_opt; + } + } + + *result = r_0; + *abserr = error; + + return GSL_SUCCESS; + } + + int + gsl_deriv_backward (const gsl_function * f, double x, double h, + double *result, double *abserr) + { + return gsl_deriv_forward (f, x, -h, result, abserr); + } diff -rc2P -x *.info -x *.info-* gsl-1.4/deriv/gsl_deriv.h gsl-1.5/deriv/gsl_deriv.h *** gsl-1.4/deriv/gsl_deriv.h Thu Jan 1 00:00:00 1970 --- gsl-1.5/deriv/gsl_deriv.h Sat Mar 20 23:07:20 2004 *************** *** 0 **** --- 1,50 ---- + /* deriv/gsl_deriv.h + * + * Copyright (C) 2000 David Morrison + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or (at + * your option) any later version. + * + * This program is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + */ + + #ifndef __GSL_DERIV_H__ + #define __GSL_DERIV_H__ + #include + + #undef __BEGIN_DECLS + #undef __END_DECLS + #ifdef __cplusplus + # define __BEGIN_DECLS extern "C" { + # define __END_DECLS } + #else + # define __BEGIN_DECLS /* empty */ + # define __END_DECLS /* empty */ + #endif + + __BEGIN_DECLS + + int gsl_deriv_central (const gsl_function *f, + double x, double h, + double *result, double *abserr); + + int gsl_deriv_backward (const gsl_function *f, + double x, double h, + double *result, double *abserr); + + int gsl_deriv_forward (const gsl_function *f, + double x, double h, + double *result, double *abserr); + + __END_DECLS + + #endif /* __GSL_DERIV_H__ */ diff -rc2P -x *.info -x *.info-* gsl-1.4/deriv/test.c gsl-1.5/deriv/test.c *** gsl-1.4/deriv/test.c Thu Jan 1 00:00:00 1970 --- gsl-1.5/deriv/test.c Sat Mar 20 23:07:20 2004 *************** *** 0 **** --- 1,209 ---- + /* deriv/test.c + * + * Copyright (C) 2000 David Morrison + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or (at + * your option) any later version. + * + * This program is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + */ + + #include + #include + #include + #include + #include + #include + #include + #include + #include + + double + f1 (double x, void *params) + { + return exp (x); + } + + double + df1 (double x, void *params) + { + return exp (x); + } + + double + f2 (double x, void *params) + { + if (x >= 0.0) + { + return x * sqrt (x); + } + else + { + return 0.0; + } + } + + double + df2 (double x, void *params) + { + if (x >= 0.0) + { + return 1.5 * sqrt (x); + } + else + { + return 0.0; + } + } + + double + f3 (double x, void *params) + { + if (x != 0.0) + { + return sin (1 / x); + } + else + { + return 0.0; + } + } + + double + df3 (double x, void *params) + { + if (x != 0.0) + { + return -cos (1 / x) / (x * x); + } + else + { + return 0.0; + } + } + + double + f4 (double x, void *params) + { + return exp (-x * x); + } + + double + df4 (double x, void *params) + { + return -2.0 * x * exp (-x * x); + } + + double + f5 (double x, void *params) + { + return x * x; + } + + double + df5 (double x, void *params) + { + return 2.0 * x; + } + + double + f6 (double x, void *params) + { + return 1.0 / x; + } + + double + df6 (double x, void *params) + { + return -1.0 / (x * x); + } + + typedef int (deriv_fn) (const gsl_function * f, double x, double h, double * res, double *abserr); + + void + test (deriv_fn * deriv, gsl_function * f, gsl_function * df, double x, + const char * desc) + { + double result, abserr; + double expected = GSL_FN_EVAL (df, x); + (*deriv) (f, x, 1e-4, &result, &abserr); + + gsl_test_abs (result, expected, GSL_MIN(1e-4,fabs(expected)) + GSL_DBL_EPSILON, desc); + + if (abserr < fabs(result-expected)) + { + gsl_test_factor (abserr, fabs(result-expected), 2, "%s error estimate", desc); + } + else if (result == expected || expected == 0.0) + { + gsl_test_abs (abserr, 0.0, 1e-6, "%s abserr", desc); + } + else + { + double d = fabs(result - expected); + gsl_test_abs (abserr, fabs(result-expected), 1e6*d, "%s abserr", desc); + } + } + + int + main () + { + gsl_function F1, DF1, F2, DF2, F3, DF3, F4, DF4, F5, DF5, F6, DF6; + + gsl_ieee_env_setup (); + + F1.function = &f1; + DF1.function = &df1; + + F2.function = &f2; + DF2.function = &df2; + + F3.function = &f3; + DF3.function = &df3; + + F4.function = &f4; + DF4.function = &df4; + + F5.function = &f5; + DF5.function = &df5; + + F6.function = &f6; + DF6.function = &df6; + + test (&gsl_deriv_central, &F1, &DF1, 1.0, "exp(x), x=1, central deriv"); + test (&gsl_deriv_forward, &F1, &DF1, 1.0, "exp(x), x=1, forward deriv"); + test (&gsl_deriv_backward, &F1, &DF1, 1.0, "exp(x), x=1, backward deriv"); + + test (&gsl_deriv_central, &F2, &DF2, 0.1, "x^(3/2), x=0.1, central deriv"); + test (&gsl_deriv_forward, &F2, &DF2, 0.1, "x^(3/2), x=0.1, forward deriv"); + test (&gsl_deriv_backward, &F2, &DF2, 0.1, "x^(3/2), x=0.1, backward deriv"); + + test (&gsl_deriv_central, &F3, &DF3, 0.45, "sin(1/x), x=0.45, central deriv"); + test (&gsl_deriv_forward, &F3, &DF3, 0.45, "sin(1/x), x=0.45, forward deriv"); + test (&gsl_deriv_backward, &F3, &DF3, 0.45, "sin(1/x), x=0.45, backward deriv"); + + test (&gsl_deriv_central, &F4, &DF4, 0.5, "exp(-x^2), x=0.5, central deriv"); + test (&gsl_deriv_forward, &F4, &DF4, 0.5, "exp(-x^2), x=0.5, forward deriv"); + test (&gsl_deriv_backward, &F4, &DF4, 0.5, "exp(-x^2), x=0.5, backward deriv"); + + test (&gsl_deriv_central, &F5, &DF5, 0.0, "x^2, x=0, central deriv"); + test (&gsl_deriv_forward, &F5, &DF5, 0.0, "x^2, x=0, forward deriv"); + test (&gsl_deriv_backward, &F5, &DF5, 0.0, "x^2, x=0, backward deriv"); + + test (&gsl_deriv_central, &F6, &DF6, 10.0, "1/x, x=10, central deriv"); + test (&gsl_deriv_forward, &F6, &DF6, 10.0, "1/x, x=10, forward deriv"); + test (&gsl_deriv_backward, &F6, &DF6, 10.0, "1/x, x=10, backward deriv"); + + exit (gsl_test_summary ()); + } + + diff -rc2P -x *.info -x *.info-* gsl-1.4/doc/blas.texi gsl-1.5/doc/blas.texi *** gsl-1.4/doc/blas.texi Mon Jun 2 15:26:48 2003 --- gsl-1.5/doc/blas.texi Thu Jun 24 14:18:54 2004 *************** *** 635,639 **** @node BLAS References and Further Reading @section References and Further Reading ! @noindent Information on the @sc{blas} standards, including both the legacy and draft interface standards, is available online from the @sc{blas} --- 635,639 ---- @node BLAS References and Further Reading @section References and Further Reading ! Information on the @sc{blas} standards, including both the legacy and draft interface standards, is available online from the @sc{blas} *************** *** 643,650 **** @item @cite{BLAS Homepage} ! @url{http://www.netlib.org/blas/} @item @cite{BLAS Technical Forum} ! @url{http://www.netlib.org/cgi-bin/checkout/blast/blast.pl} @end itemize @noindent --- 643,650 ---- @item @cite{BLAS Homepage} ! @uref{http://www.netlib.org/blas/} @item @cite{BLAS Technical Forum} ! @uref{http://www.netlib.org/cgi-bin/checkout/blast/blast.pl} @end itemize @noindent *************** *** 670,673 **** @noindent Postscript versions of the latter two papers are available from ! @url{http://www.netlib.org/blas/}. A @sc{cblas} wrapper for Fortran @sc{blas} libraries is available from the same location. --- 670,673 ---- @noindent Postscript versions of the latter two papers are available from ! @uref{http://www.netlib.org/blas/}. A @sc{cblas} wrapper for Fortran @sc{blas} libraries is available from the same location. diff -rc2P -x *.info -x *.info-* gsl-1.4/doc/cheb.texi gsl-1.5/doc/cheb.texi *** gsl-1.4/doc/cheb.texi Mon Jun 9 15:24:27 2003 --- gsl-1.5/doc/cheb.texi Thu Jun 24 14:18:54 2004 *************** *** 165,169 **** @section References and Further Reading - @noindent The following paper describes the use of Chebyshev series, --- 165,168 ---- diff -rc2P -x *.info -x *.info-* gsl-1.4/doc/combination.texi gsl-1.5/doc/combination.texi *** gsl-1.4/doc/combination.texi Mon Jun 2 15:38:04 2003 --- gsl-1.5/doc/combination.texi Thu Jun 24 14:18:54 2004 *************** *** 183,187 **** @section Examples The example program below prints all subsets of the set ! @math{@{1,2,3,4@}} ordered by size. Subsets of the same size are ordered lexicographically. --- 183,187 ---- @section Examples The example program below prints all subsets of the set ! @math{@{0,1,2,3@}} ordered by size. Subsets of the same size are ordered lexicographically. *************** *** 205,209 **** @node Combination References and Further Reading @section References and Further Reading ! @noindent Further information on combinations can be found in, --- 205,209 ---- @node Combination References and Further Reading @section References and Further Reading ! Further information on combinations can be found in, diff -rc2P -x *.info -x *.info-* gsl-1.4/doc/complex.texi gsl-1.5/doc/complex.texi *** gsl-1.4/doc/complex.texi Thu May 8 18:58:51 2003 --- gsl-1.5/doc/complex.texi Thu Jun 24 14:18:54 2004 *************** *** 448,452 **** @node Complex Number References and Further Reading @section References and Further Reading ! @noindent The implementations of the elementary and trigonometric functions are based on the following papers, --- 448,452 ---- @node Complex Number References and Further Reading @section References and Further Reading ! The implementations of the elementary and trigonometric functions are based on the following papers, diff -rc2P -x *.info -x *.info-* gsl-1.4/doc/const.texi gsl-1.5/doc/const.texi *** gsl-1.4/doc/const.texi Wed Jun 11 12:03:34 2003 --- gsl-1.5/doc/const.texi Thu Jun 24 14:18:54 2004 *************** *** 50,57 **** @item GSL_CONST_MKSA_VACUUM_PERMEABILITY ! The permeability of free space, @math{\mu_0} @item GSL_CONST_MKSA_VACUUM_PERMITTIVITY ! The permittivity of free space, @math{\epsilon_0}. @item GSL_CONST_NUM_AVOGADRO --- 50,65 ---- @item GSL_CONST_MKSA_VACUUM_PERMEABILITY ! The permeability of free space, @math{\mu_0}. This constant is defined ! in the MKSA system only. @item GSL_CONST_MKSA_VACUUM_PERMITTIVITY ! The permittivity of free space, @math{\epsilon_0}. This constant is ! defined in the MKSA system only. ! ! @item GSL_CONST_MKSA_PLANCKS_CONSTANT_H ! Planck's constant, @math{h}. ! ! @item GSL_CONST_MKSA_PLANCKS_CONSTANT_HBAR ! Planck's constant divided by @math{2\pi}, @math{\hbar}. @item GSL_CONST_NUM_AVOGADRO *************** *** 70,73 **** --- 78,84 ---- The standard gas volume, @math{V_0}. + @item GSL_CONST_MKSA_STEFAN_BOLTZMANN_CONSTANT + The Stefan-Boltzmann radiation constant, @math{\sigma}. + @item GSL_CONST_MKSA_GAUSS The magnetic field of 1 Gauss. *************** *** 163,166 **** --- 174,180 ---- @item GSL_CONST_MKSA_PROTON_MAGNETIC_MOMENT The magnetic moment of the proton, @math{\mu_p}. + + @item GSL_CONST_MKSA_THOMSON_CROSS_SECTION + The Thomson cross section, @math{\sigma_T}. @end table *************** *** 543,547 **** @node Physical Constant References and Further Reading @section References and Further Reading ! @noindent Further information on the values of physical constants is available from the NIST website, --- 557,561 ---- @node Physical Constant References and Further Reading @section References and Further Reading ! Further information on the values of physical constants is available from the NIST website, *************** *** 549,552 **** @itemize @asis @item ! @url{http://www.physics.nist.gov/cuu/Constants/index.html} @end itemize --- 563,566 ---- @itemize @asis @item ! @uref{http://www.physics.nist.gov/cuu/Constants/index.html} @end itemize diff -rc2P -x *.info -x *.info-* gsl-1.4/doc/debug.texi gsl-1.5/doc/debug.texi *** gsl-1.4/doc/debug.texi Mon Jun 2 10:34:50 2003 --- gsl-1.5/doc/debug.texi Thu Jun 24 14:18:54 2004 *************** *** 356,360 **** @node Debugging References @section References and Further Reading ! @noindent The following books are essential reading for anyone writing and debugging numerical programs with @sc{gcc} and @sc{gdb}. --- 356,360 ---- @node Debugging References @section References and Further Reading ! The following books are essential reading for anyone writing and debugging numerical programs with @sc{gcc} and @sc{gdb}. diff -rc2P -x *.info -x *.info-* gsl-1.4/doc/dht.texi gsl-1.5/doc/dht.texi *** gsl-1.4/doc/dht.texi Thu May 8 18:58:51 2003 --- gsl-1.5/doc/dht.texi Thu Jun 24 14:18:54 2004 *************** *** 125,129 **** @node Discrete Hankel Transform References @section References and Further Reading ! @noindent The algorithms used by these functions are described in the following papers, --- 125,129 ---- @node Discrete Hankel Transform References @section References and Further Reading ! The algorithms used by these functions are described in the following papers, diff -rc2P -x *.info -x *.info-* gsl-1.4/doc/diff.texi gsl-1.5/doc/diff.texi *** gsl-1.4/doc/diff.texi Sun Jul 27 08:39:16 2003 --- gsl-1.5/doc/diff.texi Thu Jun 24 14:18:54 2004 *************** *** 3,11 **** @cindex derivatives, calculating numerically @cindex numerical derivatives The functions described in this chapter compute numerical derivatives by finite differencing. An adaptive algorithm is used to find the best choice of finite difference and to estimate the error in the derivative. ! These functions are declared in the header file @file{gsl_diff.h} @menu --- 3,12 ---- @cindex derivatives, calculating numerically @cindex numerical derivatives + @cindex slope, see numerical derivative The functions described in this chapter compute numerical derivatives by finite differencing. An adaptive algorithm is used to find the best choice of finite difference and to estimate the error in the derivative. ! These functions are declared in the header file @file{gsl_deriv.h} @menu *************** *** 18,48 **** @section Functions ! @deftypefun int gsl_diff_central (const gsl_function *@var{f}, double @var{x}, double *@var{result}, double *@var{abserr}) This function computes the numerical derivative of the function @var{f} ! at the point @var{x} using an adaptive central difference algorithm. ! The derivative is returned in @var{result} and an estimate of its ! absolute error is returned in @var{abserr}. @end deftypefun ! ! @deftypefun int gsl_diff_forward (const gsl_function *@var{f}, double @var{x}, double *@var{result}, double *@var{abserr}) This function computes the numerical derivative of the function @var{f} ! at the point @var{x} using an adaptive forward difference algorithm. The ! function is evaluated only at points greater than @var{x} and at @var{x} ! itself. The derivative is returned in @var{result} and an estimate of ! its absolute error is returned in @var{abserr}. This function should be ! used if @math{f(x)} has a singularity or is undefined for values less ! than @var{x}. @end deftypefun ! ! @deftypefun int gsl_diff_backward (const gsl_function *@var{f}, double @var{x}, double *@var{result}, double *@var{abserr}) This function computes the numerical derivative of the function @var{f} ! at the point @var{x} using an adaptive backward difference ! algorithm. The function is evaluated only at points less than @var{x} ! and at @var{x} itself. The derivative is returned in @var{result} and ! an estimate of its absolute error is returned in @var{abserr}. This ! function should be used if @math{f(x)} has a singularity or is undefined ! for values greater than @var{x}. @end deftypefun --- 19,69 ---- @section Functions ! @deftypefun int gsl_deriv_central (const gsl_function *@var{f}, double @var{x}, double @var{h}, double *@var{result}, double *@var{abserr}) This function computes the numerical derivative of the function @var{f} ! at the point @var{x} using an adaptive central difference algorithm with ! a step-size of @var{h}. The derivative is returned in @var{result} and an ! estimate of its absolute error is returned in @var{abserr}. ! ! The initial value of @var{h} is used to estimate an optimal step-size, ! based on the scaling of the truncation error and round-off error in the ! derivative calculation. The derivative is computed using a 5-point rule ! for equally spaced abscissae at @math{x-h}, @math{x-h/2}, @math{x}, ! @math{x+h/2}, @math{x}, with an error estimate taken from the difference ! between the 5-point rule and the corresponding 3-point rule @math{x-h}, ! @math{x}, @math{x+h}. Note that the value of the function at @math{x} ! does not contribute to the derivative calculation, so only 4-points are ! actually used. @end deftypefun ! @deftypefun int gsl_deriv_forward (const gsl_function *@var{f}, double @var{x}, double @var{h}, double *@var{result}, double *@var{abserr}) This function computes the numerical derivative of the function @var{f} ! at the point @var{x} using an adaptive forward difference algorithm with ! a step-size of @var{h}. The function is evaluated only at points greater ! than @var{x}, and never at @var{x} itself. The derivative is returned in ! @var{result} and an estimate of its absolute error is returned in ! @var{abserr}. This function should be used if @math{f(x)} has a ! discontinuity at @var{x}, or is undefined for values less than @var{x}. ! ! The initial value of @var{h} is used to estimate an optimal step-size, ! based on the scaling of the truncation error and round-off error in the ! derivative calculation. The derivative at @math{x} is computed using an ! ``open'' 4-point rule for equally spaced abscissae at @math{x+h/4}, ! @math{x+h/2}, @math{x+3h/4}, @math{x+h}, with an error estimate taken ! from the difference between the 4-point rule and the corresponding ! 2-point rule @math{x+h/2}, @math{x+h}. @end deftypefun ! @deftypefun int gsl_deriv_backward (const gsl_function *@var{f}, double @var{x}, double @var{h}, double *@var{result}, double *@var{abserr}) This function computes the numerical derivative of the function @var{f} ! at the point @var{x} using an adaptive backward difference algorithm ! with a step-size of @var{h}. The function is evaluated only at points ! less than @var{x}, and never at @var{x} itself. The derivative is ! returned in @var{result} and an estimate of its absolute error is ! returned in @var{abserr}. This function should be used if @math{f(x)} ! has a discontinuity at @var{x}, or is undefined for values greater than ! @var{x}. ! ! This function is equivalent to calling @code{gsl_deriv_forward} with a ! negative step-size. @end deftypefun *************** *** 55,59 **** at @math{x=2} and at @math{x=0}. The function @math{f(x)} is undefined for @math{x<0} so the derivative at @math{x=0} is computed ! using @code{gsl_diff_forward}. @example --- 76,80 ---- at @math{x=2} and at @math{x=0}. The function @math{f(x)} is undefined for @math{x<0} so the derivative at @math{x=0} is computed ! using @code{gsl_deriv_forward}. @example *************** *** 70,77 **** @node Numerical Differentiation References @section References and Further Reading ! @noindent ! The algorithms used by these functions are described in the following book, @itemize @asis @item S.D. Conte and Carl de Boor, @cite{Elementary Numerical Analysis: An --- 91,102 ---- @node Numerical Differentiation References @section References and Further Reading ! ! The algorithms used by these functions are described in the following sources: @itemize @asis + @item + Abramowitz and Stegun, @cite{Handbook of Mathematical Functions}, + Section 25.3.4, and Table 25.5 (Coefficients for Differentiation). + @item S.D. Conte and Carl de Boor, @cite{Elementary Numerical Analysis: An diff -rc2P -x *.info -x *.info-* gsl-1.4/doc/eigen.texi gsl-1.5/doc/eigen.texi *** gsl-1.4/doc/eigen.texi Mon Jun 2 15:40:59 2003 --- gsl-1.5/doc/eigen.texi Thu Jun 24 14:18:54 2004 *************** *** 217,221 **** @node Eigenvalue and Eigenvector References @section References and Further Reading ! @noindent Further information on the algorithms described in this section can be found in the following book, --- 217,221 ---- @node Eigenvalue and Eigenvector References @section References and Further Reading ! Further information on the algorithms described in this section can be found in the following book, *************** *** 234,238 **** ISBN 0-89871-447-8. ! @url{http://www.netlib.org/lapack} @end itemize @noindent --- 234,238 ---- ISBN 0-89871-447-8. ! @uref{http://www.netlib.org/lapack} @end itemize @noindent diff -rc2P -x *.info -x *.info-* gsl-1.4/doc/examples/diff.c gsl-1.5/doc/examples/diff.c *** gsl-1.4/doc/examples/diff.c Mon Jun 2 15:40:08 2003 --- gsl-1.5/doc/examples/diff.c Sat Mar 20 23:07:20 2004 *************** *** 1,5 **** #include #include ! #include double f (double x, void * params) --- 1,5 ---- #include #include ! #include double f (double x, void * params) *************** *** 19,30 **** printf ("f(x) = x^(3/2)\n"); ! gsl_diff_central (&F, 2.0, &result, &abserr); printf ("x = 2.0\n"); ! printf ("f'(x) = %.10f +/- %.5f\n", result, abserr); printf ("exact = %.10f\n\n", 1.5 * sqrt(2.0)); ! gsl_diff_forward (&F, 0.0, &result, &abserr); printf ("x = 0.0\n"); ! printf ("f'(x) = %.10f +/- %.5f\n", result, abserr); printf ("exact = %.10f\n", 0.0); --- 19,30 ---- printf ("f(x) = x^(3/2)\n"); ! gsl_deriv_central (&F, 2.0, 1e-8, &result, &abserr); printf ("x = 2.0\n"); ! printf ("f'(x) = %.10f +/- %.10f\n", result, abserr); printf ("exact = %.10f\n\n", 1.5 * sqrt(2.0)); ! gsl_deriv_forward (&F, 0.0, 1e-8, &result, &abserr); printf ("x = 0.0\n"); ! printf ("f'(x) = %.10f +/- %.10f\n", result, abserr); printf ("exact = %.10f\n", 0.0); diff -rc2P -x *.info -x *.info-* gsl-1.4/doc/examples/diff.out gsl-1.5/doc/examples/diff.out *** gsl-1.4/doc/examples/diff.out Mon Jun 2 15:40:27 2003 --- gsl-1.5/doc/examples/diff.out Sat Mar 20 23:07:20 2004 *************** *** 1,9 **** f(x) = x^(3/2) - x = 2.0 ! f'(x) = 2.1213203435 +/- 0.01490 exact = 2.1213203436 x = 0.0 ! f'(x) = 0.0012172897 +/- 0.05028 exact = 0.0000000000 --- 1,8 ---- f(x) = x^(3/2) x = 2.0 ! f'(x) = 2.1213203120 +/- 0.0000004064 exact = 2.1213203436 x = 0.0 ! f'(x) = 0.0000000160 +/- 0.0000000339 exact = 0.0000000000 diff -rc2P -x *.info -x *.info-* gsl-1.4/doc/examples/matrix.c gsl-1.5/doc/examples/matrix.c *** gsl-1.4/doc/examples/matrix.c Mon Jun 2 16:19:51 2003 --- gsl-1.5/doc/examples/matrix.c Fri Mar 5 14:12:41 2004 *************** *** 12,16 **** gsl_matrix_set (m, i, j, 0.23 + 100*i + j); ! for (i = 0; i < 100; i++) for (j = 0; j < 3; j++) printf ("m(%d,%d) = %g\n", i, j, --- 12,16 ---- gsl_matrix_set (m, i, j, 0.23 + 100*i + j); ! for (i = 0; i < 10; i++) for (j = 0; j < 3; j++) printf ("m(%d,%d) = %g\n", i, j, diff -rc2P -x *.info -x *.info-* gsl-1.4/doc/examples/odefixed.c gsl-1.5/doc/examples/odefixed.c *** gsl-1.4/doc/examples/odefixed.c Mon Jun 2 16:05:19 2003 --- gsl-1.5/doc/examples/odefixed.c Fri Jun 18 15:17:57 2004 *************** *** 14,21 **** double h = 1e-2; double y[2] = { 1.0, 0.0 }, y_err[2]; ! double dfdy[4], dydt_in[2], dydt_out[2]; ! /* initialise dydt_in */ ! GSL_ODEIV_JA_EVAL(&sys, t, y, dfdy, dydt_in); while (t < t1) --- 14,21 ---- double h = 1e-2; double y[2] = { 1.0, 0.0 }, y_err[2]; ! double dydt_in[2], dydt_out[2]; ! /* initialise dydt_in from system parameters */ ! GSL_ODEIV_FN_EVAL(&sys, t, y, dydt_in); while (t < t1) diff -rc2P -x *.info -x *.info-* gsl-1.4/doc/fdl.texi gsl-1.5/doc/fdl.texi *** gsl-1.4/doc/fdl.texi Sun Aug 10 16:54:53 2003 --- gsl-1.5/doc/fdl.texi Sun Jun 20 18:40:13 2004 *************** *** 1,11 **** @cindex FDL, GNU Free Documentation License ! @center Version 1.1, March 2000 @display ! Copyright @copyright{} 2000 Free Software Foundation, Inc. 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA ! Everyone is permitted to copy and distribute verbatim copies of this ! license document, but changing it is not allowed. @end display --- 1,11 ---- @cindex FDL, GNU Free Documentation License ! @center Version 1.2, November 2002 @display ! Copyright @copyright{} 2000,2001,2002 Free Software Foundation, Inc. 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA ! Everyone is permitted to copy and distribute verbatim copies ! of this license document, but changing it is not allowed. @end display *************** *** 15,24 **** The purpose of this License is to make a manual, textbook, or other ! written document @dfn{free} in the sense of freedom: to assure everyone ! the effective freedom to copy and redistribute it, with or without ! modifying it, either commercially or noncommercially. Secondarily, ! this License preserves for the author and publisher a way to get ! credit for their work, while not being considered responsible for ! modifications made by others. This License is a kind of ``copyleft'', which means that derivative --- 15,24 ---- The purpose of this License is to make a manual, textbook, or other ! functional and useful document @dfn{free} in the sense of freedom: to ! assure everyone the effective freedom to copy and redistribute it, ! with or without modifying it, either commercially or noncommercially. ! Secondarily, this License preserves for the author and publisher a way ! to get credit for their work, while not being considered responsible ! for modifications made by others. This License is a kind of ``copyleft'', which means that derivative *************** *** 38,46 **** APPLICABILITY AND DEFINITIONS ! This License applies to any manual or other work that contains a ! notice placed by the copyright holder saying it can be distributed ! under the terms of this License. The ``Document'', below, refers to any ! such manual or work. Any member of the public is a licensee, and is ! addressed as ``you''. A ``Modified Version'' of the Document means any work containing the --- 38,50 ---- APPLICABILITY AND DEFINITIONS ! This License applies to any manual or other work, in any medium, that ! contains a notice placed by the copyright holder saying it can be ! distributed under the terms of this License. Such a notice grants a ! world-wide, royalty-free license, unlimited in duration, to use that ! work under the conditions stated herein. The ``Document'', below, ! refers to any such manual or work. Any member of the public is a ! licensee, and is addressed as ``you''. You accept the license if you ! copy, modify or distribute the work in a way requiring permission ! under copyright law. A ``Modified Version'' of the Document means any work containing the *************** *** 48,58 **** modifications and/or translated into another language. ! A ``Secondary Section'' is a named appendix or a front-matter section of ! the Document that deals exclusively with the relationship of the ! publishers or authors of the Document to the Document's overall subject ! (or to related matters) and contains nothing that could fall directly ! within that overall subject. (For example, if the Document is in part a ! textbook of mathematics, a Secondary Section may not explain any ! mathematics.) The relationship could be a matter of historical connection with the subject or with related matters, or of legal, commercial, philosophical, ethical or political position regarding --- 52,62 ---- modifications and/or translated into another language. ! A ``Secondary Section'' is a named appendix or a front-matter section ! of the Document that deals exclusively with the relationship of the ! publishers or authors of the Document to the Document's overall ! subject (or to related matters) and contains nothing that could fall ! directly within that overall subject. (Thus, if the Document is in ! part a textbook of mathematics, a Secondary Section may not explain ! any mathematics.) The relationship could be a matter of historical connection with the subject or with related matters, or of legal, commercial, philosophical, ethical or political position regarding *************** *** 61,73 **** The ``Invariant Sections'' are certain Secondary Sections whose titles are designated, as being those of Invariant Sections, in the notice ! that says that the Document is released under this License. The ``Cover Texts'' are certain short passages of text that are listed, as Front-Cover Texts or Back-Cover Texts, in the notice that says that ! the Document is released under this License. A ``Transparent'' copy of the Document means a machine-readable copy, represented in a format whose specification is available to the ! general public, whose contents can be viewed and edited directly and straightforwardly with generic text editors or (for images composed of pixels) generic paint programs or (for drawings) some widely available --- 65,82 ---- The ``Invariant Sections'' are certain Secondary Sections whose titles are designated, as being those of Invariant Sections, in the notice ! that says that the Document is released under this License. If a ! section does not fit the above definition of Secondary then it is not ! allowed to be designated as Invariant. The Document may contain zero ! Invariant Sections. If the Document does not identify any Invariant ! Sections then there are none. The ``Cover Texts'' are certain short passages of text that are listed, as Front-Cover Texts or Back-Cover Texts, in the notice that says that ! the Document is released under this License. A Front-Cover Text may ! be at most 5 words, and a Back-Cover Text may be at most 25 words. A ``Transparent'' copy of the Document means a machine-readable copy, represented in a format whose specification is available to the ! general public, that is suitable for revising the document straightforwardly with generic text editors or (for images composed of pixels) generic paint programs or (for drawings) some widely available *************** *** 75,92 **** for automatic translation to a variety of formats suitable for input to text formatters. A copy made in an otherwise Transparent file ! format whose markup has been designed to thwart or discourage ! subsequent modification by readers is not Transparent. A copy that is ! not ``Transparent'' is called ``Opaque''. Examples of suitable formats for Transparent copies include plain ! @sc{ascii} without markup, Texinfo input format, La@TeX{} input format, ! @acronym{SGML} or @acronym{XML} using a publicly available ! @acronym{DTD}, and standard-conforming simple @acronym{HTML} designed ! for human modification. Opaque formats include PostScript, ! @acronym{PDF}, proprietary formats that can be read and edited only by ! proprietary word processors, @acronym{SGML} or @acronym{XML} for which ! the @acronym{DTD} and/or processing tools are not generally available, ! and the machine-generated @acronym{HTML} produced by some word ! processors for output purposes only. The ``Title Page'' means, for a printed book, the title page itself, --- 84,104 ---- for automatic translation to a variety of formats suitable for input to text formatters. A copy made in an otherwise Transparent file ! format whose markup, or absence of markup, has been arranged to thwart ! or discourage subsequent modification by readers is not Transparent. ! An image format is not Transparent if used for any substantial amount ! of text. A copy that is not ``Transparent'' is called ``Opaque''. Examples of suitable formats for Transparent copies include plain ! @sc{ascii} without markup, Texinfo input format, La@TeX{} input ! format, @acronym{SGML} or @acronym{XML} using a publicly available ! @acronym{DTD}, and standard-conforming simple @acronym{HTML}, ! PostScript or @acronym{PDF} designed for human modification. Examples ! of transparent image formats include @acronym{PNG}, @acronym{XCF} and ! @acronym{JPG}. Opaque formats include proprietary formats that can be ! read and edited only by proprietary word processors, @acronym{SGML} or ! @acronym{XML} for which the @acronym{DTD} and/or processing tools are ! not generally available, and the machine-generated @acronym{HTML}, ! PostScript or @acronym{PDF} produced by some word processors for ! output purposes only. The ``Title Page'' means, for a printed book, the title page itself, *************** *** 97,100 **** --- 109,127 ---- preceding the beginning of the body of the text. + A section ``Entitled XYZ'' means a named subunit of the Document whose + title either is precisely XYZ or contains XYZ in parentheses following + text that translates XYZ in another language. (Here XYZ stands for a + specific section name mentioned below, such as ``Acknowledgements'', + ``Dedications'', ``Endorsements'', or ``History''.) To ``Preserve the Title'' + of such a section when you modify the Document means that it remains a + section ``Entitled XYZ'' according to this definition. + + The Document may include Warranty Disclaimers next to the notice which + states that this License applies to the Document. These Warranty + Disclaimers are considered to be included by reference in this + License, but only as regards disclaiming warranties: any other + implication that these Warranty Disclaimers may have is void and has + no effect on the meaning of this License. + @item VERBATIM COPYING *************** *** 116,122 **** COPYING IN QUANTITY ! If you publish printed copies of the Document numbering more than 100, ! and the Document's license notice requires Cover Texts, you must enclose ! the copies in covers that carry, clearly and legibly, all these Cover Texts: Front-Cover Texts on the front cover, and Back-Cover Texts on the back cover. Both covers must also clearly and legibly identify --- 143,150 ---- COPYING IN QUANTITY ! If you publish printed copies (or copies in media that commonly have ! printed covers) of the Document, numbering more than 100, and the ! Document's license notice requires Cover Texts, you must enclose the ! copies in covers that carry, clearly and legibly, all these Cover Texts: Front-Cover Texts on the front cover, and Back-Cover Texts on the back cover. Both covers must also clearly and legibly identify *************** *** 136,149 **** more than 100, you must either include a machine-readable Transparent copy along with each Opaque copy, or state in or with each Opaque copy ! a publicly-accessible computer-network location containing a complete ! Transparent copy of the Document, free of added material, which the ! general network-using public has access to download anonymously at no ! charge using public-standard network protocols. If you use the latter ! option, you must take reasonably prudent steps, when you begin ! distribution of Opaque copies in quantity, to ensure that this ! Transparent copy will remain thus accessible at the stated location ! until at least one year after the last time you distribute an Opaque ! copy (directly or through your agents or retailers) of that edition to ! the public. It is requested, but not required, that you contact the authors of the --- 164,176 ---- more than 100, you must either include a machine-readable Transparent copy along with each Opaque copy, or state in or with each Opaque copy ! a computer-network location from which the general network-using ! public has access to download using public-standard network protocols ! a complete Transparent copy of the Document, free of added material. ! If you use the latter option, you must take reasonably prudent steps, ! when you begin distribution of Opaque copies in quantity, to ensure ! that this Transparent copy will remain thus accessible at the stated ! location until at least one year after the last time you distribute an ! Opaque copy (directly or through your agents or retailers) of that ! edition to the public. It is requested, but not required, that you contact the authors of the *************** *** 173,177 **** responsible for authorship of the modifications in the Modified Version, together with at least five of the principal authors of the ! Document (all of its principal authors, if it has less than five). @item --- 200,205 ---- responsible for authorship of the modifications in the Modified Version, together with at least five of the principal authors of the ! Document (all of its principal authors, if it has fewer than five), ! unless they release you from this requirement. @item *************** *** 199,206 **** @item ! Preserve the section entitled ``History'', and its title, and add to ! it an item stating at least the title, year, new authors, and publisher of the Modified Version as given on the Title Page. If ! there is no section entitled ``History'' in the Document, create one stating the title, year, authors, and publisher of the Document as given on its Title Page, then add an item describing the Modified --- 227,234 ---- @item ! Preserve the section Entitled ``History'', Preserve its Title, and add ! to it an item stating at least the title, year, new authors, and publisher of the Modified Version as given on the Title Page. If ! there is no section Entitled ``History'' in the Document, create one stating the title, year, authors, and publisher of the Document as given on its Title Page, then add an item describing the Modified *************** *** 217,224 **** @item ! In any section entitled ``Acknowledgments'' or ``Dedications'', ! preserve the section's title, and preserve in the section all the ! substance and tone of each of the contributor acknowledgments ! and/or dedications given therein. @item --- 245,252 ---- @item ! For any section Entitled ``Acknowledgements'' or ``Dedications'', Preserve ! the Title of the section, and preserve in the section all the ! substance and tone of each of the contributor acknowledgements and/or ! dedications given therein. @item *************** *** 228,237 **** @item ! Delete any section entitled ``Endorsements''. Such a section may not be included in the Modified Version. @item ! Do not retitle any existing section as ``Endorsements'' ! or to conflict in title with any Invariant Section. @end enumerate --- 256,268 ---- @item ! Delete any section Entitled ``Endorsements''. Such a section may not be included in the Modified Version. @item ! Do not retitle any existing section to be Entitled ``Endorsements'' or ! to conflict in title with any Invariant Section. ! ! @item ! Preserve any Warranty Disclaimers. @end enumerate *************** *** 243,247 **** These titles must be distinct from any other section titles. ! You may add a section entitled ``Endorsements'', provided it contains nothing but endorsements of your Modified Version by various parties---for example, statements of peer review or that the text has --- 274,278 ---- These titles must be distinct from any other section titles. ! You may add a section Entitled ``Endorsements'', provided it contains nothing but endorsements of your Modified Version by various parties---for example, statements of peer review or that the text has *************** *** 271,275 **** Invariant Sections of all of the original documents, unmodified, and list them all as Invariant Sections of your combined work in its ! license notice. The combined work need only contain one copy of this License, and --- 302,306 ---- Invariant Sections of all of the original documents, unmodified, and list them all as Invariant Sections of your combined work in its ! license notice, and that you preserve all their Warranty Disclaimers. The combined work need only contain one copy of this License, and *************** *** 282,290 **** Invariant Sections in the license notice of the combined work. ! In the combination, you must combine any sections entitled ``History'' ! in the various original documents, forming one section entitled ! ``History''; likewise combine any sections entitled ``Acknowledgments'', ! and any sections entitled ``Dedications''. You must delete all sections ! entitled ``Endorsements.'' @item --- 313,321 ---- Invariant Sections in the license notice of the combined work. ! In the combination, you must combine any sections Entitled ``History'' ! in the various original documents, forming one section Entitled ! ``History''; likewise combine any sections Entitled ``Acknowledgements'', ! and any sections Entitled ``Dedications''. You must delete all ! sections Entitled ``Endorsements.'' @item *************** *** 307,322 **** A compilation of the Document or its derivatives with other separate and independent documents or works, in or on a volume of a storage or ! distribution medium, does not as a whole count as a Modified Version ! of the Document, provided no compilation copyright is claimed for the ! compilation. Such a compilation is called an ``aggregate'', and this ! License does not apply to the other self-contained works thus compiled ! with the Document, on account of their being thus compiled, if they ! are not themselves derivative works of the Document. If the Cover Text requirement of section 3 is applicable to these ! copies of the Document, then if the Document is less than one quarter ! of the entire aggregate, the Document's Cover Texts may be placed on ! covers that surround only the Document within the aggregate. ! Otherwise they must appear on covers around the whole aggregate. @item --- 338,355 ---- A compilation of the Document or its derivatives with other separate and independent documents or works, in or on a volume of a storage or ! distribution medium, is called an ``aggregate'' if the copyright ! resulting from the compilation is not used to limit the legal rights ! of the compilation's users beyond what the individual works permit. ! When the Document is included in an aggregate, this License does not ! apply to the other works in the aggregate which are not themselves ! derivative works of the Document. If the Cover Text requirement of section 3 is applicable to these ! copies of the Document, then if the Document is less than one half of ! the entire aggregate, the Document's Cover Texts may be placed on ! covers that bracket the Document within the aggregate, or the ! electronic equivalent of covers if the Document is in electronic form. ! Otherwise they must appear on printed covers that bracket the whole ! aggregate. @item *************** *** 329,336 **** translations of some or all Invariant Sections in addition to the original versions of these Invariant Sections. You may include a ! translation of this License provided that you also include the ! original English version of this License. In case of a disagreement ! between the translation and the original English version of this ! License, the original English version will prevail. @item --- 362,376 ---- translations of some or all Invariant Sections in addition to the original versions of these Invariant Sections. You may include a ! translation of this License, and all the license notices in the ! Document, and any Warranty Disclaimers, provided that you also include ! the original English version of this License and the original versions ! of those notices and disclaimers. In case of a disagreement between ! the translation and the original version of this License or a notice ! or disclaimer, the original version will prevail. ! ! If a section in the Document is Entitled ``Acknowledgements'', ! ``Dedications'', or ``History'', the requirement (section 4) to Preserve ! its Title (section 1) will typically require changing the actual ! title. @item *************** *** 373,392 **** @smallexample @group ! Copyright (C) @var{year} @var{your name}. Permission is ! granted to copy, distribute and/or modify this document ! under the terms of the GNU Free Documentation License, ! Version 1.1 or any later version published by the Free ! Software Foundation; with the Invariant Sections being ! @var{list their titles}, with the Front-Cover Texts being ! @var{list}, and with the Back-Cover Texts being ! @var{list}. A copy of the license is included in the ! section entitled ``GNU Free Documentation License''. @end group @end smallexample ! If you have no Invariant Sections, write ``with no Invariant Sections'' ! instead of saying which ones are invariant. If you have no ! Front-Cover Texts, write ``no Front-Cover Texts'' instead of ! ``Front-Cover Texts being @var{list}''; likewise for Back-Cover Texts. If your document contains nontrivial examples of program code, we --- 413,440 ---- @smallexample @group ! Copyright (C) @var{year} @var{your name}. ! Permission is granted to copy, distribute and/or modify this document ! under the terms of the GNU Free Documentation License, Version 1.2 ! or any later version published by the Free Software Foundation; ! with no Invariant Sections, no Front-Cover Texts, and no Back-Cover ! Texts. A copy of the license is included in the section entitled ``GNU ! Free Documentation License''. ! @end group ! @end smallexample ! ! If you have Invariant Sections, Front-Cover Texts and Back-Cover Texts, ! replace the ``with...Texts.'' line with this: ! ! @smallexample ! @group ! with the Invariant Sections being @var{list their titles}, with ! the Front-Cover Texts being @var{list}, and with the Back-Cover Texts ! being @var{list}. @end group @end smallexample ! If you have Invariant Sections without Cover Texts, or some other ! combination of the three, merge those two alternatives to suit the ! situation. If your document contains nontrivial examples of program code, we diff -rc2P -x *.info -x *.info-* gsl-1.4/doc/fft.texi gsl-1.5/doc/fft.texi *** gsl-1.4/doc/fft.texi Mon Jun 2 15:46:19 2003 --- gsl-1.5/doc/fft.texi Thu Jun 24 14:18:54 2004 *************** *** 702,706 **** known to be zero by the symmetry. ! The next table shows the output for an even-length sequence, @math{n=5} In the even case there are two values which are purely real, --- 702,706 ---- known to be zero by the symmetry. ! The next table shows the output for an even-length sequence, @math{n=6} In the even case there are two values which are purely real, *************** *** 875,879 **** @section References and Further Reading - @noindent A good starting point for learning more about the FFT is the review article @cite{Fast Fourier Transforms: A Tutorial Review and A State of --- 875,878 ---- *************** *** 969,973 **** @itemize @asis @item ! FFTW Website, @url{http://www.fftw.org/} @end itemize @noindent --- 968,972 ---- @itemize @asis @item ! FFTW Website, @uref{http://www.fftw.org/} @end itemize @noindent *************** *** 976,980 **** @itemize @asis @item ! FFTPACK, @url{http://www.netlib.org/fftpack/} @end itemize --- 975,979 ---- @itemize @asis @item ! FFTPACK, @uref{http://www.netlib.org/fftpack/} @end itemize diff -rc2P -x *.info -x *.info-* gsl-1.4/doc/fitting.texi gsl-1.5/doc/fitting.texi *** gsl-1.4/doc/fitting.texi Mon Jun 2 15:47:55 2003 --- gsl-1.5/doc/fitting.texi Thu Jun 24 14:18:54 2004 *************** *** 394,398 **** @node Fitting References and Further Reading @section References and Further Reading ! @noindent A summary of formulas and techniques for least squares fitting can be found in the "Statistics" chapter of the Annual Review of Particle --- 394,398 ---- @node Fitting References and Further Reading @section References and Further Reading ! A summary of formulas and techniques for least squares fitting can be found in the "Statistics" chapter of the Annual Review of Particle *************** *** 403,407 **** @cite{Review of Particle Properties} R.M. Barnett et al., Physical Review D54, 1 (1996) ! @url{http://pdg.lbl.gov/} @end itemize @noindent --- 403,407 ---- @cite{Review of Particle Properties} R.M. Barnett et al., Physical Review D54, 1 (1996) ! @uref{http://pdg.lbl.gov/} @end itemize @noindent *************** *** 416,420 **** available from NIST at the following website, ! @center @url{http://www.nist.gov/itl/div898/strd/index.html}. --- 416,420 ---- available from NIST at the following website, ! @center @uref{http://www.nist.gov/itl/div898/strd/index.html}. diff -rc2P -x *.info -x *.info-* gsl-1.4/doc/freemanuals.texi gsl-1.5/doc/freemanuals.texi *** gsl-1.4/doc/freemanuals.texi Sun Aug 10 16:52:36 2003 --- gsl-1.5/doc/freemanuals.texi Thu Jun 24 14:18:54 2004 *************** *** 93,95 **** The Free Software Foundation maintains a list of free documentation published by other publishers, at ! @url{http://www.fsf.org/doc/other-free-books.html}. --- 93,95 ---- The Free Software Foundation maintains a list of free documentation published by other publishers, at ! @uref{http://www.fsf.org/doc/other-free-books.html}. diff -rc2P -x *.info -x *.info-* gsl-1.4/doc/gsl-design.texi gsl-1.5/doc/gsl-design.texi *** gsl-1.4/doc/gsl-design.texi Wed Jul 23 13:57:52 2003 --- gsl-1.5/doc/gsl-design.texi Thu Jun 24 14:18:54 2004 *************** *** 18,22 **** This file documents the @value{GSL}. ! Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001 The GSL Project. Permission is granted to make and distribute verbatim copies of --- 18,22 ---- This file documents the @value{GSL}. ! Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2004 The GSL Project. Permission is granted to make and distribute verbatim copies of *************** *** 57,61 **** @page @vskip 0pt plus 1filll ! Copyright @copyright{} 1996,1997,1998,1999,2000,2001 The GSL Project. Permission is granted to make and distribute verbatim copies of --- 57,61 ---- @page @vskip 0pt plus 1filll ! Copyright @copyright{} 1996,1997,1998,1999,2000,2001,2004 The GSL Project. Permission is granted to make and distribute verbatim copies of *************** *** 84,88 **** More information about GSL can be found at the project homepage, ! @url{http://www.gnu.org/software/gsl/}. @end ifinfo --- 84,88 ---- More information about GSL can be found at the project homepage, ! @uref{http://www.gnu.org/software/gsl/}. @end ifinfo *************** *** 174,178 **** @emph{ESSL} and @emph{SCSL} are proprietary libraries from IBM and SGI. ! Forth Scientific Library [see the URL http://www.taygeta.com/fsl/sciforth.html]. Mainly of interest to Forth users. --- 174,178 ---- @emph{ESSL} and @emph{SCSL} are proprietary libraries from IBM and SGI. ! @emph{Forth Scientific Library} [see the URL http://www.taygeta.com/fsl/sciforth.html]. Mainly of interest to Forth users. *************** *** 228,231 **** --- 228,232 ---- * Standards and conventions:: * Background and Preparation:: + * Choice of Algorithms:: * Documentation:: * Namespace:: *************** *** 369,374 **** "closed". In mathematics objects can be combined and operated on in an infinite number of ways. For example, I can take the derivative of a ! scalar field wrt a vector and the derivative of a vector field wrt a ! scalar (along a path). There is a definite tendency to unconsciously try to reproduce all these --- 370,375 ---- "closed". In mathematics objects can be combined and operated on in an infinite number of ways. For example, I can take the derivative of a ! scalar field with respect to a vector and the derivative of a vector ! field wrt a scalar (along a path). There is a definite tendency to unconsciously try to reproduce all these *************** *** 391,403 **** are going to draw the line. - Whenever possible choose algorithms which scale well and always remember - to handle asymptotic cases. This is particularly relevant for functions - with integer arguments. It is tempting to implement these using the - simple @math{O(n)} algorithms used to define the functions, such as the - many recurrence relations found in Abramowitz and Stegun. While such - methods might be acceptable for @math{n=O(10-100)} they will not be - satisfactory for a user who needs to compute the same function for - @math{n=1000000}. - @node Code Reuse, Standards and conventions, Design of Numerical Libraries, Design @section Code Reuse --- 392,395 ---- *************** *** 456,462 **** @noindent It is available from ! @url{http://www.research.att.com/sw/tools/sfio/dm-spe.ps} or the earlier technical report Kiem-Phong Vo, "An Architecture for Reusable Libraries" ! @url{http://citeseer.nj.nec.com/48973.html}. There are associated papers on Vmalloc, SFIO, and CDT which are also --- 448,454 ---- @noindent It is available from ! @uref{http://www.research.att.com/sw/tools/sfio/dm-spe.ps} or the earlier technical report Kiem-Phong Vo, "An Architecture for Reusable Libraries" ! @uref{http://citeseer.nj.nec.com/48973.html}. There are associated papers on Vmalloc, SFIO, and CDT which are also *************** *** 468,482 **** Allocator''. Software Practice & Experience, 26:1--18, 1996. ! @url{http://www.research.att.com/sw/tools/vmalloc/vmalloc.ps} @item Kiem-Phong Vo. ``Cdt: A Container Data Type Library''. Soft. Prac. & Exp., 27:1177--1197, 1997 ! @url{http://www.research.att.com/sw/tools/cdt/cdt.ps} @item David G. Korn and Kiem-Phong Vo, ``Sfio: Safe/Fast String/File IO'', Proceedings of the Summer '91 Usenix Conference, pp. 235-256, 1991. ! @url{http://citeseer.nj.nec.com/korn91sfio.html} @end itemize --- 460,474 ---- Allocator''. Software Practice & Experience, 26:1--18, 1996. ! @uref{http://www.research.att.com/sw/tools/vmalloc/vmalloc.ps} @item Kiem-Phong Vo. ``Cdt: A Container Data Type Library''. Soft. Prac. & Exp., 27:1177--1197, 1997 ! @uref{http://www.research.att.com/sw/tools/cdt/cdt.ps} @item David G. Korn and Kiem-Phong Vo, ``Sfio: Safe/Fast String/File IO'', Proceedings of the Summer '91 Usenix Conference, pp. 235-256, 1991. ! @uref{http://citeseer.nj.nec.com/korn91sfio.html} @end itemize *************** *** 490,494 **** The @code{-nut} option converts tabs into spaces. ! @node Background and Preparation, Documentation, Standards and conventions, Design @section Background and Preparation --- 482,486 ---- The @code{-nut} option converts tabs into spaces. ! @node Background and Preparation, Choice of Algorithms, Standards and conventions, Design @section Background and Preparation *************** *** 529,534 **** @end itemize @end enumerate ! @node Documentation, Namespace, Background and Preparation, Design @section Documentation Documentation: the project leaders should give examples of how things --- 521,550 ---- @end itemize @end enumerate + @noindent + Keep in mind that GSL is not a research project. Making a good + implementation is difficult enough, without also needing to invent new + algorithms. We want to implement existing algorithms whenever + possible. Making minor improvements is ok, but don't let it be a + time-sink. + + @node Choice of Algorithms, Documentation, Background and Preparation, Design + @section Choice of Algorithms + + Whenever possible choose algorithms which scale well and always remember + to handle asymptotic cases. This is particularly relevant for functions + with integer arguments. It is tempting to implement these using the + simple @math{O(n)} algorithms used to define the functions, such as the + many recurrence relations found in Abramowitz and Stegun. While such + methods might be acceptable for @math{n=O(10-100)} they will not be + satisfactory for a user who needs to compute the same function for + @math{n=1000000}. + + Similarly, do not make the implicit assumption that multivariate data + has been scaled to have components of the same size or O(1). Algorithms + should take care of any necessary scaling or balancing internally, and + use appropriate norms (e.g. |Dx| where D is a diagonal scaling matrix, + rather than |x|). ! @node Documentation, Namespace, Choice of Algorithms, Design @section Documentation Documentation: the project leaders should give examples of how things *************** *** 1170,1178 **** License (GPL). This means getting a disclaimer from your employer. @item ! We must understand ownership of existing code and algorithms. @item Each contributor can retain ownership of their code, or sign it over to ! FSF as they prefer. In the event of any legal uncertainty code will ! simply be removed from the library. There is a standard disclaimer in the GPL (take a look at it). The more --- 1186,1193 ---- License (GPL). This means getting a disclaimer from your employer. @item ! We must clearly understand ownership of existing code and algorithms. @item Each contributor can retain ownership of their code, or sign it over to ! FSF as they prefer. There is a standard disclaimer in the GPL (take a look at it). The more diff -rc2P -x *.info -x *.info-* gsl-1.4/doc/gsl-ref.texi gsl-1.5/doc/gsl-ref.texi *** gsl-1.4/doc/gsl-ref.texi Tue Aug 12 11:28:36 2003 --- gsl-1.5/doc/gsl-ref.texi Thu Jun 24 14:18:54 2004 *************** *** 109,116 **** @iftex @copying ! Copyright @copyright{} 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003 The GSL Team. Permission is granted to copy, distribute and/or modify this document ! under the terms of the GNU Free Documentation License, Version 1.1 or any later version published by the Free Software Foundation; with the Invariant Sections being "GNU General Public License" and "Free Software --- 109,116 ---- @iftex @copying ! Copyright @copyright{} 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004 The GSL Team. Permission is granted to copy, distribute and/or modify this document ! under the terms of the GNU Free Documentation License, Version 1.2 or any later version published by the Free Software Foundation; with the Invariant Sections being "GNU General Public License" and "Free Software *************** *** 125,128 **** --- 125,133 ---- The Texinfo source for this manual may be obtained from @code{ftp.gnu.org/gnu/gsl/} + + @ifclear publish + Printed copies of this manual can be purchased from Network Theory Ltd + at@* @uref{http://www.network-theory.co.uk/gsl/manual/}. + @end ifclear @end copying @end iftex *************** *** 192,199 **** More information about GSL can be found at the project homepage, ! @url{http://www.gnu.org/software/gsl/}. Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License. @end ifnottex --- 197,207 ---- More information about GSL can be found at the project homepage, ! @uref{http://www.gnu.org/software/gsl/}. Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License. + + Printed copies of this manual can be purchased from Network Theory Ltd + at @uref{http://www.network-theory.co.uk/gsl/manual/}. @end ifnottex diff -rc2P -x *.info -x *.info-* gsl-1.4/doc/ieee754.texi gsl-1.5/doc/ieee754.texi *** gsl-1.4/doc/ieee754.texi Mon Jun 2 15:55:40 2003 --- gsl-1.5/doc/ieee754.texi Thu Jun 24 14:18:54 2004 *************** *** 389,393 **** @node IEEE References and Further Reading @section References and Further Reading ! @noindent The reference for the IEEE standard is, --- 389,393 ---- @node IEEE References and Further Reading @section References and Further Reading ! The reference for the IEEE standard is, diff -rc2P -x *.info -x *.info-* gsl-1.4/doc/integration.texi gsl-1.5/doc/integration.texi *** gsl-1.4/doc/integration.texi Mon Jun 2 15:56:36 2003 --- gsl-1.5/doc/integration.texi Thu Jun 24 14:18:54 2004 *************** *** 800,804 **** @section References and Further Reading - @noindent The following book is the definitive reference for @sc{quadpack}, and was written by the original authors. It provides descriptions of the --- 800,803 ---- diff -rc2P -x *.info -x *.info-* gsl-1.4/doc/interp.texi gsl-1.5/doc/interp.texi *** gsl-1.4/doc/interp.texi Mon Jun 2 15:57:02 2003 --- gsl-1.5/doc/interp.texi Thu Jun 24 14:18:54 2004 *************** *** 256,260 **** @node Interpolation References and Further Reading @section References and Further Reading ! @noindent Descriptions of the interpolation algorithms and further references can be found in the following book, --- 256,260 ---- @node Interpolation References and Further Reading @section References and Further Reading ! Descriptions of the interpolation algorithms and further references can be found in the following book, diff -rc2P -x *.info -x *.info-* gsl-1.4/doc/intro.texi gsl-1.5/doc/intro.texi *** gsl-1.4/doc/intro.texi Thu Aug 14 10:11:20 2003 --- gsl-1.5/doc/intro.texi Thu Jun 24 14:18:54 2004 *************** *** 12,19 **** * GSL is Free Software:: * Obtaining GSL:: - * An Example Program:: * No Warranty:: * Reporting Bugs:: * Further Information:: @end menu --- 12,19 ---- * GSL is Free Software:: * Obtaining GSL:: * No Warranty:: * Reporting Bugs:: * Further Information:: + * Conventions used in this manual:: @end menu *************** *** 90,95 **** @itemize @asis @item ! @url{http://www.gnu.org/copyleft/gpl-faq.html} @end itemize @node Obtaining GSL --- 90,98 ---- @itemize @asis @item ! @uref{http://www.gnu.org/copyleft/gpl-faq.html} @end itemize + @noindent + The Free Software Foundation also operates a license consulting service + for commercial users. @node Obtaining GSL *************** *** 106,110 **** @itemize @asis @item ! @url{http://www.gnu.org/software/gsl/} @end itemize @noindent --- 109,113 ---- @itemize @asis @item ! @uref{http://www.gnu.org/software/gsl/} @end itemize @noindent *************** *** 116,124 **** Announcements of new releases, updates and other relevant events are ! made on the @code{gsl-announce} mailing list. To subscribe to this ! low-volume list, send an email of the following form, @example ! To: gsl-announce-request@@sources.redhat.com Subject: subscribe @end example --- 119,127 ---- Announcements of new releases, updates and other relevant events are ! made on the @code{info-gsl@@gnu.org} mailing list. To subscribe to this ! low-volume list, send an email of the following form: @example ! To: info-gsl-request@@gnu.org Subject: subscribe @end example *************** *** 146,150 **** the @file{INSTALL} file. ! If you find a bug which is not listed in these files please report it to @email{bug-gsl@@gnu.org}. --- 149,153 ---- the @file{INSTALL} file. ! If you find a bug which is not listed in these files, please report it to @email{bug-gsl@@gnu.org}. *************** *** 174,184 **** Additional information, including online copies of this manual, links to related projects, and mailing list archives are available from the ! development website mentioned above. The developers of the library can ! be reached via the project's public mailing list, ! @itemize @asis ! @code{gsl-discuss@@sources.redhat.com} ! @end itemize @noindent This mailing list can be used to ask questions not covered by this manual. --- 177,219 ---- Additional information, including online copies of this manual, links to related projects, and mailing list archives are available from the ! website mentioned above. ! Any questions about the use and installation of the library can be asked ! on the mailing list @code{help-gsl@@gnu.org}. To subscribe to this ! list, send an email of the following form: ! ! @example ! To: help-gsl-request@@gnu.org ! Subject: subscribe ! @end example @noindent This mailing list can be used to ask questions not covered by this manual. + + The developers of the library can be reached via the development + mailing list @code{gsl-discuss@@sources.redhat.com}. + + @node Conventions used in this manual + @section Conventions used in this manual + @cindex conventions, used in manual + @cindex examples, conventions used in + @cindex shell prompt + @cindex @code{$}, shell prompt + This manual contains many examples which can be typed at the keyboard. + A command entered at the terminal is shown like this, + + @example + $ @i{command} + @end example + @noindent + @cindex dollar sign @code{$}, shell prompt + The first character on the line is the terminal prompt, and should not + be typed. The dollar sign @samp{$} is used as the standard prompt in + this manual, although some systems may use a different character. + + The examples assume the use of the GNU operating system. There may be + minor differences in the output on other systems. The commands for + setting environment variables use the Bourne shell syntax of the + standard GNU shell (@code{bash}). + + diff -rc2P -x *.info -x *.info-* gsl-1.4/doc/linalg.texi gsl-1.5/doc/linalg.texi *** gsl-1.4/doc/linalg.texi Mon Jun 2 15:59:05 2003 --- gsl-1.5/doc/linalg.texi Thu Jun 24 14:18:54 2004 *************** *** 115,119 **** @cindex matrix inverse @deftypefun int gsl_linalg_LU_invert (const gsl_matrix * @var{LU}, const gsl_permutation * @var{p}, gsl_matrix * @var{inverse}) ! @deftypefunx int gsl_complex_linalg_LU_invert (const gsl_matrix_complex * @var{LU}, const gsl_permutation * @var{p}, gsl_matrix_complex * @var{inverse}) These functions compute the inverse of a matrix @math{A} from its @math{LU} decomposition (@var{LU},@var{p}), storing the result in the --- 115,119 ---- @cindex matrix inverse @deftypefun int gsl_linalg_LU_invert (const gsl_matrix * @var{LU}, const gsl_permutation * @var{p}, gsl_matrix * @var{inverse}) ! @deftypefunx int gsl_linalg_complex_LU_invert (const gsl_matrix_complex * @var{LU}, const gsl_permutation * @var{p}, gsl_matrix_complex * @var{inverse}) These functions compute the inverse of a matrix @math{A} from its @math{LU} decomposition (@var{LU},@var{p}), storing the result in the *************** *** 700,704 **** Householder transformations efficiently. ! @deftypefun double gsl_linalg_houlsehoulder_transform (gsl_vector * @var{v}) This function prepares a Householder transformation @math{P = I - \tau v v^T} which can be used to zero all the elements of the input vector except --- 700,704 ---- Householder transformations efficiently. ! @deftypefun double gsl_linalg_householder_transform (gsl_vector * @var{v}) This function prepares a Householder transformation @math{P = I - \tau v v^T} which can be used to zero all the elements of the input vector except *************** *** 753,768 **** @section Tridiagonal Systems @cindex tridiagonal systems @deftypefun int gsl_linalg_solve_symm_tridiag (const gsl_vector * @var{diag}, const gsl_vector * @var{e}, const gsl_vector * @var{b}, gsl_vector * @var{x}) This function solves the general @math{N}-by-@math{N} system @math{A x = ! b} where @var{A} is symmetric tridiagonal. The form of @var{A} for the ! 4-by-4 case is shown below, @tex \beforedisplay $$ ! A = \pmatrix{d_0&e_0& & \cr ! e_0&d_1&e_1& \cr ! &e_1&d_2&e_2\cr ! & &e_2&d_3\cr} $$ \afterdisplay --- 753,799 ---- @section Tridiagonal Systems @cindex tridiagonal systems + + @deftypefun int gsl_linalg_solve_tridiag (const gsl_vector * @var{diag}, const gsl_vector * @var{e}, const gsl_vector * @var{f}, const gsl_vector * @var{b}, gsl_vector * @var{x}) + This function solves the general @math{N}-by-@math{N} system @math{A x = + b} where @var{A} is tridiagonal (@c{$N\geq 2$} + @math{N >= 2}). The super-diagonal and + sub-diagonal vectors @var{e} and @var{f} must be one element shorter + than the diagonal vector @var{diag}. The form of @var{A} for the 4-by-4 + case is shown below, + + @tex + \beforedisplay + $$ + A = \pmatrix{d_0&e_0& 0& 0\cr + f_0&d_1&e_1& 0\cr + 0 &f_1&d_2&e_2\cr + 0 &0 &f_2&d_3\cr} + $$ + \afterdisplay + @end tex + @ifinfo + @example + A = ( d_0 e_0 0 0 ) + ( f_0 d_1 e_1 0 ) + ( 0 f_1 d_2 e_2 ) + ( 0 0 f_2 d_3 ) + @end example + @end ifinfo + @end deftypefun + @deftypefun int gsl_linalg_solve_symm_tridiag (const gsl_vector * @var{diag}, const gsl_vector * @var{e}, const gsl_vector * @var{b}, gsl_vector * @var{x}) This function solves the general @math{N}-by-@math{N} system @math{A x = ! b} where @var{A} is symmetric tridiagonal (@c{$N\geq 2$} ! @math{N >= 2}). The off-diagonal vector ! @var{e} must be one element shorter than the diagonal vector @var{diag}. ! The form of @var{A} for the 4-by-4 case is shown below, @tex \beforedisplay $$ ! A = \pmatrix{d_0&e_0& 0& 0\cr ! e_0&d_1&e_1& 0\cr ! 0 &e_1&d_2&e_2\cr ! 0 &0 &e_2&d_3\cr} $$ \afterdisplay *************** *** 770,794 **** @ifinfo @example ! A = ( d_0 e_0 ) ! ( e_0 d_1 e_1 ) ! ( e_1 d_2 e_2 ) ! ( e_2 d_3 ) @end example @end ifinfo @end deftypefun @deftypefun int gsl_linalg_solve_symm_cyc_tridiag (const gsl_vector * @var{diag}, const gsl_vector * @var{e}, const gsl_vector * @var{b}, gsl_vector * @var{x}) This function solves the general @math{N}-by-@math{N} system @math{A x = ! b} where @var{A} is symmetric cyclic tridiagonal. The form of @var{A} ! for the 4-by-4 case is shown below, @tex \beforedisplay $$ ! A = \pmatrix{d_0&e_0& &e_3\cr ! e_0&d_1&e_1& \cr ! &e_1&d_2&e_2\cr ! e_3& &e_2&d_3\cr} $$ \afterdisplay --- 801,856 ---- @ifinfo @example ! A = ( d_0 e_0 0 0 ) ! ( e_0 d_1 e_1 0 ) ! ( 0 e_1 d_2 e_2 ) ! ( 0 0 e_2 d_3 ) @end example @end ifinfo + @end deftypefun + @deftypefun int gsl_linalg_solve_cyc_tridiag (const gsl_vector * @var{diag}, const gsl_vector * @var{e}, const gsl_vector * @var{f}, const gsl_vector * @var{b}, gsl_vector * @var{x}) + This function solves the general @math{N}-by-@math{N} system @math{A x = + b} where @var{A} is cyclic tridiagonal (@c{$N\geq 3$} + @math{N >= 3}). The cyclic super-diagonal and + sub-diagonal vectors @var{e} and @var{f} must have the same number of + elements as the diagonal vector @var{diag}. The form of @var{A} for the + 4-by-4 case is shown below, + + @tex + \beforedisplay + $$ + A = \pmatrix{d_0&e_0& 0 &f_3\cr + f_0&d_1&e_1& 0 \cr + 0 &f_1&d_2&e_2\cr + e_3& 0 &f_2&d_3\cr} + $$ + \afterdisplay + @end tex + @ifinfo + @example + A = ( d_0 e_0 0 f_3 ) + ( f_0 d_1 e_1 0 ) + ( 0 f_1 d_2 e_2 ) + ( e_3 0 f_2 d_3 ) + @end example + @end ifinfo @end deftypefun + @deftypefun int gsl_linalg_solve_symm_cyc_tridiag (const gsl_vector * @var{diag}, const gsl_vector * @var{e}, const gsl_vector * @var{b}, gsl_vector * @var{x}) This function solves the general @math{N}-by-@math{N} system @math{A x = ! b} where @var{A} is symmetric cyclic tridiagonal (@c{$N\geq 3$} ! @math{N >= 3}). The cyclic ! off-diagonal vector @var{e} must have the same number of elements as the ! diagonal vector @var{diag}. The form of @var{A} for the 4-by-4 case is ! shown below, @tex \beforedisplay $$ ! A = \pmatrix{d_0&e_0& 0 &e_3\cr ! e_0&d_1&e_1& 0 \cr ! 0 &e_1&d_2&e_2\cr ! e_3& 0 &e_2&d_3\cr} $$ \afterdisplay *************** *** 796,806 **** @ifinfo @example ! A = ( d_0 e_0 e_3 ) ! ( e_0 d_1 e_1 ) ! ( e_1 d_2 e_2 ) ! ( e_3 e_2 d_3 ) @end example @end ifinfo - @end deftypefun --- 858,867 ---- @ifinfo @example ! A = ( d_0 e_0 0 e_3 ) ! ( e_0 d_1 e_1 0 ) ! ( 0 e_1 d_2 e_2 ) ! ( e_3 0 e_2 d_3 ) @end example @end ifinfo @end deftypefun *************** *** 881,885 **** @node Linear Algebra References and Further Reading @section References and Further Reading ! @noindent Further information on the algorithms described in this section can be found in the following book, --- 942,946 ---- @node Linear Algebra References and Further Reading @section References and Further Reading ! Further information on the algorithms described in this section can be found in the following book, *************** *** 898,902 **** ISBN 0-89871-447-8. ! @url{http://www.netlib.org/lapack} @end itemize @noindent --- 959,963 ---- ISBN 0-89871-447-8. ! @uref{http://www.netlib.org/lapack} @end itemize @noindent *************** *** 926,930 **** James Demmel, Kresimir Veselic, "Jacobi's Method is more accurate than QR", @cite{Lapack Working Note 15} (LAWN-15), October 1989. Available ! from netlib, @url{http://www.netlib.org/lapack/} in the @code{lawns} or @code{lawnspdf} directories. @end itemize --- 987,991 ---- James Demmel, Kresimir Veselic, "Jacobi's Method is more accurate than QR", @cite{Lapack Working Note 15} (LAWN-15), October 1989. Available ! from netlib, @uref{http://www.netlib.org/lapack/} in the @code{lawns} or @code{lawnspdf} directories. @end itemize diff -rc2P -x *.info -x *.info-* gsl-1.4/doc/min.texi gsl-1.5/doc/min.texi *** gsl-1.4/doc/min.texi Mon Jun 2 16:00:02 2003 --- gsl-1.5/doc/min.texi Thu Jun 24 14:18:54 2004 *************** *** 391,395 **** @node Minimization References and Further Reading @section References and Further Reading ! @noindent Further information on Brent's algorithm is available in the following book, --- 391,395 ---- @node Minimization References and Further Reading @section References and Further Reading ! Further information on Brent's algorithm is available in the following book, diff -rc2P -x *.info -x *.info-* gsl-1.4/doc/montecarlo.texi gsl-1.5/doc/montecarlo.texi *** gsl-1.4/doc/montecarlo.texi Wed Jul 16 14:44:45 2003 --- gsl-1.5/doc/montecarlo.texi Thu Jun 24 14:18:54 2004 *************** *** 108,112 **** double ! my_f (double x, size_t dim, void * p) @{ struct my_f_params * fp = (struct my_f_params *)p; --- 108,112 ---- double ! my_f (double x[], size_t dim, void * p) @{ struct my_f_params * fp = (struct my_f_params *)p; *************** *** 125,129 **** struct my_f_params params = @{ 3.0, 2.0, 1.0 @}; ! F.function = &my_f; F.dim = 2; F.params = ¶ms; --- 125,129 ---- struct my_f_params params = @{ 3.0, 2.0, 1.0 @}; ! F.f = &my_f; F.dim = 2; F.params = ¶ms; *************** *** 134,138 **** @example #define GSL_MONTE_FN_EVAL(F,x) ! (*((F)->function))(x,(F)->dim,(F)->params) @end example --- 134,138 ---- @example #define GSL_MONTE_FN_EVAL(F,x) ! (*((F)->f))(x,(F)->dim,(F)->params) @end example *************** *** 676,680 **** @section References and Further Reading - @noindent The @sc{miser} algorithm is described in the following article, --- 676,679 ---- diff -rc2P -x *.info -x *.info-* gsl-1.4/doc/multifit.texi gsl-1.5/doc/multifit.texi *** gsl-1.4/doc/multifit.texi Wed Jul 16 14:51:52 2003 --- gsl-1.5/doc/multifit.texi Thu Jun 24 14:18:54 2004 *************** *** 706,710 **** @node References and Further Reading for Nonlinear Least-Squares Fitting @section References and Further Reading ! @noindent The @sc{minpack} algorithm is described in the following article, --- 706,710 ---- @node References and Further Reading for Nonlinear Least-Squares Fitting @section References and Further Reading ! The @sc{minpack} algorithm is described in the following article, diff -rc2P -x *.info -x *.info-* gsl-1.4/doc/multimin.texi gsl-1.5/doc/multimin.texi *** gsl-1.4/doc/multimin.texi Wed Jul 16 14:51:51 2003 --- gsl-1.5/doc/multimin.texi Thu Jun 24 14:18:54 2004 *************** *** 691,695 **** @node Multimin References and Further Reading @section References and Further Reading ! @noindent A brief description of multidimensional minimization algorithms and further references can be found in the following book, --- 691,695 ---- @node Multimin References and Further Reading @section References and Further Reading ! A brief description of multidimensional minimization algorithms and further references can be found in the following book, diff -rc2P -x *.info -x *.info-* gsl-1.4/doc/multiroots.texi gsl-1.5/doc/multiroots.texi *** gsl-1.4/doc/multiroots.texi Sun Aug 10 14:38:20 2003 --- gsl-1.5/doc/multiroots.texi Thu Jun 24 14:18:54 2004 *************** *** 1021,1025 **** @node References and Further Reading for Multidimensional Root Finding @section References and Further Reading ! @noindent The original version of the Hybrid method is described in the following articles by Powell, --- 1021,1025 ---- @node References and Further Reading for Multidimensional Root Finding @section References and Further Reading ! The original version of the Hybrid method is described in the following articles by Powell, diff -rc2P -x *.info -x *.info-* gsl-1.4/doc/ntuple.texi gsl-1.5/doc/ntuple.texi *** gsl-1.4/doc/ntuple.texi Sun Jul 27 08:38:52 2003 --- gsl-1.5/doc/ntuple.texi Thu Jun 24 14:18:54 2004 *************** *** 183,187 **** @cindex PAW @cindex HBOOK ! @noindent Further information on the use of ntuples can be found in the documentation for the @sc{cern} packages @sc{paw} and @sc{hbook} --- 183,187 ---- @cindex PAW @cindex HBOOK ! Further information on the use of ntuples can be found in the documentation for the @sc{cern} packages @sc{paw} and @sc{hbook} diff -rc2P -x *.info -x *.info-* gsl-1.4/doc/ode-initval.texi gsl-1.5/doc/ode-initval.texi *** gsl-1.4/doc/ode-initval.texi Sun Aug 10 11:14:51 2003 --- gsl-1.5/doc/ode-initval.texi Thu Jun 24 14:18:54 2004 *************** *** 140,144 **** @cindex RK2, Runge-Kutta Method @cindex Runge-Kutta methods, ordinary differential equations ! Embedded 2nd order Runge-Kutta with 3rd order error estimate. @end deffn --- 140,144 ---- @cindex RK2, Runge-Kutta Method @cindex Runge-Kutta methods, ordinary differential equations ! Embedded Runge-Kutta (2, 3) method. @end deffn *************** *** 151,156 **** @cindex Fehlberg method, differential equations @cindex RKF45, Runge-Kutta-Fehlberg method ! Embedded 4th order Runge-Kutta-Fehlberg method with 5th order error ! estimate. This method is a good general-purpose integrator. @end deffn --- 151,156 ---- @cindex Fehlberg method, differential equations @cindex RKF45, Runge-Kutta-Fehlberg method ! Embedded Runge-Kutta-Fehlberg (4, 5) method. This method is a good ! general-purpose integrator. @end deffn *************** *** 158,163 **** @cindex Runge-Kutta Cash-Karp method @cindex Cash-Karp, Runge-Kutta method ! Embedded 4th order Runge-Kutta Cash-Karp method with 5th order error ! estimate. @end deffn --- 158,162 ---- @cindex Runge-Kutta Cash-Karp method @cindex Cash-Karp, Runge-Kutta method ! Embedded Runge-Kutta Cash-Karp (4, 5) method. @end deffn *************** *** 165,170 **** @cindex Runge-Kutta Prince-Dormand method @cindex Prince-Dormand, Runge-Kutta method ! Embedded 8th order Runge-Kutta Prince-Dormand method with 9th order ! error estimate. @end deffn --- 164,168 ---- @cindex Runge-Kutta Prince-Dormand method @cindex Prince-Dormand, Runge-Kutta method ! Embedded Runge-Kutta Prince-Dormand (8,9) method. @end deffn *************** *** 232,236 **** \beforedisplay $$ ! h_{new} = h_{old} * S * (D/E)^{1/q} $$ \afterdisplay --- 230,234 ---- \beforedisplay $$ ! h_{new} = h_{old} * S * (E/D)^{-1/q} $$ \afterdisplay *************** *** 238,242 **** @ifinfo @example ! h_new = h_old * S * (D/E)^(1/q) @end example @end ifinfo --- 236,240 ---- @ifinfo @example ! h_new = h_old * S * (E/D)^(-1/q) @end example @end ifinfo *************** *** 244,252 **** where @math{q} is the consistency order of method (e.g. @math{q=4} for 4(5) embedded RK), and @math{S} is a safety factor of 0.9. The ratio ! @math{D/E} is taken to be the maximum of the ratios ! @math{D_i/E_i}. If the observed error @math{E} is less than 50% of the desired error ! level @var{D} for the maximum ratio @math{D_i/E_i} then the algorithm takes the opportunity to increase the step-size to bring the error in line with the desired level, --- 242,250 ---- where @math{q} is the consistency order of method (e.g. @math{q=4} for 4(5) embedded RK), and @math{S} is a safety factor of 0.9. The ratio ! @math{E/D} is taken to be the maximum of the ratios ! @math{E_i/D_i}. If the observed error @math{E} is less than 50% of the desired error ! level @var{D} for the maximum ratio @math{E_i/D_i} then the algorithm takes the opportunity to increase the step-size to bring the error in line with the desired level, *************** *** 255,259 **** \beforedisplay $$ ! h_{new} = h_{old} * S * (E/D)^{1/(q+1)} $$ \afterdisplay --- 253,257 ---- \beforedisplay $$ ! h_{new} = h_{old} * S * (E/D)^{-1/(q+1)} $$ \afterdisplay *************** *** 261,269 **** @ifinfo @example ! h_new = h_old * S * (E/D)^(1/(q+1)) @end example @end ifinfo @noindent ! This encompasses all the standard error scaling methods. @end deftypefun --- 259,269 ---- @ifinfo @example ! h_new = h_old * S * (E/D)^(-1/(q+1)) @end example @end ifinfo @noindent ! This encompasses all the standard error scaling methods. To avoid ! uncontrolled changes in the stepsize, the overall scaling factor is ! limited to the range @math{1/5} to 5. @end deftypefun *************** *** 488,499 **** @end example @noindent ! The derivatives and jacobian must be initialised for the starting point ! @math{t=0} before the first step is taken. Subsequent steps use the ! output derivatives @var{dydt_out} as inputs to the next step by copying ! their values into @var{dydt_in}. @node ODE References and Further Reading @section References and Further Reading ! @noindent Many of the basic Runge-Kutta formulas can be found in the Handbook of Mathematical Functions, --- 488,499 ---- @end example @noindent ! The derivatives must be initialised for the starting point @math{t=0} ! before the first step is taken. Subsequent steps use the output ! derivatives @var{dydt_out} as inputs to the next step by copying their ! values into @var{dydt_in}. @node ODE References and Further Reading @section References and Further Reading ! Many of the basic Runge-Kutta formulas can be found in the Handbook of Mathematical Functions, diff -rc2P -x *.info -x *.info-* gsl-1.4/doc/permutation.texi gsl-1.5/doc/permutation.texi *** gsl-1.4/doc/permutation.texi Mon Jun 2 16:05:59 2003 --- gsl-1.5/doc/permutation.texi Thu Jun 24 14:18:54 2004 *************** *** 349,353 **** @node Permutation References and Further Reading @section References and Further Reading ! @noindent The subject of permutations is covered extensively in Knuth's @cite{Sorting and Searching}, --- 349,353 ---- @node Permutation References and Further Reading @section References and Further Reading ! The subject of permutations is covered extensively in Knuth's @cite{Sorting and Searching}, diff -rc2P -x *.info -x *.info-* gsl-1.4/doc/poly.texi gsl-1.5/doc/poly.texi *** gsl-1.4/doc/poly.texi Mon Jun 2 16:07:03 2003 --- gsl-1.5/doc/poly.texi Thu Jun 24 14:18:54 2004 *************** *** 262,266 **** @node Roots of Polynomials References and Further Reading @section References and Further Reading ! @noindent The balanced-QR method and its error analysis are described in the following papers. --- 262,266 ---- @node Roots of Polynomials References and Further Reading @section References and Further Reading ! The balanced-QR method and its error analysis are described in the following papers. diff -rc2P -x *.info -x *.info-* gsl-1.4/doc/randist.texi gsl-1.5/doc/randist.texi *** gsl-1.4/doc/randist.texi Tue Aug 12 11:30:26 2003 --- gsl-1.5/doc/randist.texi Thu Jun 24 14:18:54 2004 *************** *** 52,56 **** * The Logistic Distribution:: * The Pareto Distribution:: ! * The Spherical Distribution (2D & 3D):: * The Weibull Distribution:: * The Type-1 Gumbel Distribution:: --- 52,56 ---- * The Logistic Distribution:: * The Pareto Distribution:: ! * Spherical Vector Distributions:: * The Weibull Distribution:: * The Type-1 Gumbel Distribution:: *************** *** 60,65 **** * The Poisson Distribution:: * The Bernoulli Distribution:: ! * The Binomial Distribution:: ! * The Multinomial Distribution:: * The Negative Binomial Distribution:: * The Pascal Distribution:: --- 60,65 ---- * The Poisson Distribution:: * The Bernoulli Distribution:: ! * The Binomial Distribution:: ! * The Multinomial Distribution:: * The Negative Binomial Distribution:: * The Pascal Distribution:: *************** *** 100,104 **** \beforedisplay $$ ! Q(x) = \int_{x}^{-\infty} dx' p(x') $$ \afterdisplay --- 100,104 ---- \beforedisplay $$ ! Q(x) = \int_{x}^{+\infty} dx' p(x') $$ \afterdisplay *************** *** 106,114 **** @ifinfo @example ! P(x) = \int_@{x@}^@{-\infty@} dx' p(x') @end example @end ifinfo @noindent ! and gives the probability of a variate taking a greater than @math{x}. The upper and lower cumulative distribution functions are related by @math{P(x) + Q(x) = 1} and satisfy @c{$0 \le P(x) \le 1$} --- 106,114 ---- @ifinfo @example ! Q(x) = \int_@{x@}^@{+\infty@} dx' p(x') @end example @end ifinfo @noindent ! and gives the probability of a variate taking a value greater than @math{x}. The upper and lower cumulative distribution functions are related by @math{P(x) + Q(x) = 1} and satisfy @c{$0 \le P(x) \le 1$} *************** *** 852,856 **** @node The Chi-squared Distribution @section The Chi-squared Distribution ! The chi-squared distribution arises in statistics If @math{Y_i} are @math{n} independent gaussian random variates with unit variance then the sum-of-squares, --- 852,856 ---- @node The Chi-squared Distribution @section The Chi-squared Distribution ! The chi-squared distribution arises in statistics. If @math{Y_i} are @math{n} independent gaussian random variates with unit variance then the sum-of-squares, *************** *** 979,984 **** @end tex ! @deftypefun double gsl_cdf_Fdist_P (double @var{x}, double @var{nu1}, double @var{nu2}) ! @deftypefunx double gsl_cdf_Fdist_Q (double @var{x}, double @var{nu1}, double @var{nu2}) These functions compute the cumulative distribution functions @math{P(x)} and @math{Q(x)} for the F-distribution with @var{nu1} and --- 979,984 ---- @end tex ! @deftypefun double gsl_cdf_fdist_P (double @var{x}, double @var{nu1}, double @var{nu2}) ! @deftypefunx double gsl_cdf_fdist_Q (double @var{x}, double @var{nu1}, double @var{nu2}) These functions compute the cumulative distribution functions @math{P(x)} and @math{Q(x)} for the F-distribution with @var{nu1} and *************** *** 1187,1192 **** @page ! @node The Spherical Distribution (2D & 3D) ! @section The Spherical Distribution (2D & 3D) The spherical distributions generate random vectors, located on a --- 1187,1192 ---- @page ! @node Spherical Vector Distributions ! @section Spherical Vector Distributions The spherical distributions generate random vectors, located on a *************** *** 1216,1224 **** this approach, @var{u} and @var{v} are chosen at random from the interior of a unit circle, and then @math{x=(u^2-v^2)/(u^2+v^2)} and ! @math{y=uv/(u^2+v^2)}. @end deftypefn - - @deftypefn Random void gsl_ran_dir_3d (const gsl_rng * @var{r}, double *@var{x}, double *@var{y}, double * @var{z}) @cindex 3D random direction vector --- 1216,1222 ---- this approach, @var{u} and @var{v} are chosen at random from the interior of a unit circle, and then @math{x=(u^2-v^2)/(u^2+v^2)} and ! @math{y=2uv/(u^2+v^2)}. @end deftypefn @deftypefn Random void gsl_ran_dir_3d (const gsl_rng * @var{r}, double *@var{x}, double *@var{y}, double * @var{z}) @cindex 3D random direction vector *************** *** 1844,1847 **** --- 1842,1846 ---- @node The Hypergeometric Distribution @section The Hypergeometric Distribution + @cindex hypergeometric random variates @deftypefn Random {unsigned int} gsl_ran_hypergeometric (const gsl_rng * @var{r}, unsigned int @var{n1}, unsigned int @var{n2}, unsigned int @var{t}) @cindex Geometric random variates *************** *** 1853,1857 **** \beforedisplay $$ ! p(k) = C(n_1,k) C(n_2, t-k) / C(n_1+n_2,k) $$ \afterdisplay --- 1852,1856 ---- \beforedisplay $$ ! p(k) = C(n_1, k) C(n_2, t - k) / C(n_1 + n_2, t) $$ \afterdisplay *************** *** 1859,1869 **** @ifinfo @example ! p(k) = C(n_1,k) C(n_2, t-k) / C(n_1 + n_2,k) @end example @end ifinfo @noindent ! where @math{C(a,b) = a!/(b!(a-b)!)}. The domain of @math{k} is ! @c{$\hbox{max}(0\,t-n_2), \ldots, \hbox{max}(t,n_1)$} ! @math{max(0,t-n_2), ..., max(t,n_1)}. @end deftypefn --- 1858,1871 ---- @ifinfo @example ! p(k) = C(n_1, k) C(n_2, t - k) / C(n_1 + n_2, t) @end example @end ifinfo @noindent ! where @math{C(a,b) = a!/(b!(a-b)!)} and ! @c{$t \leq n_1 + n_2$} ! @math{t <= n_1 + n_2}. The ! domain of @math{k} is ! @c{$\hbox{max}(0,t-n_2), \ldots, \hbox{min}(t,n_1)$} ! @math{max(0,t-n_2), ..., min(t,n_1)}. @end deftypefn *************** *** 1871,1875 **** This function computes the probability @math{p(k)} of obtaining @var{k} from a hypergeometric distribution with parameters @var{n1}, @var{n2}, ! @var{n3}, using the formula given above. @end deftypefun --- 1873,1877 ---- This function computes the probability @math{p(k)} of obtaining @var{k} from a hypergeometric distribution with parameters @var{n1}, @var{n2}, ! @var{t}, using the formula given above. @end deftypefun *************** *** 2060,2064 **** @node Random Number Distribution References and Further Reading @section References and Further Reading ! @noindent For an encyclopaedic coverage of the subject readers are advised to consult the book @cite{Non-Uniform Random Variate Generation} by Luc --- 2062,2066 ---- @node Random Number Distribution References and Further Reading @section References and Further Reading ! For an encyclopaedic coverage of the subject readers are advised to consult the book @cite{Non-Uniform Random Variate Generation} by Luc *************** *** 2090,2094 **** @cite{Review of Particle Properties} R.M. Barnett et al., Physical Review D54, 1 (1996) ! @url{http://pdg.lbl.gov/}. @end itemize --- 2092,2096 ---- @cite{Review of Particle Properties} R.M. Barnett et al., Physical Review D54, 1 (1996) ! @uref{http://pdg.lbl.gov/}. @end itemize diff -rc2P -x *.info -x *.info-* gsl-1.4/doc/rng.texi gsl-1.5/doc/rng.texi *** gsl-1.4/doc/rng.texi Tue Jul 29 09:39:01 2003 --- gsl-1.5/doc/rng.texi Thu Jun 24 14:18:54 2004 *************** *** 687,691 **** generators. One consequence of this is that the period of this 32-bit generator is the same as for the one-bit generator. ! Moreover, this inedpendence means that all 32-bit patterns are equally likely, and in particular that 0 is an allowed random value. (We are grateful to Heiko Bauke for clarifying for us these --- 687,691 ---- generators. One consequence of this is that the period of this 32-bit generator is the same as for the one-bit generator. ! Moreover, this independence means that all 32-bit patterns are equally likely, and in particular that 0 is an allowed random value. (We are grateful to Heiko Bauke for clarifying for us these *************** *** 872,876 **** 2 and 3, 4 and 5, etc produce the same sequences. ! The generator compatibile with the CRAY MATHLIB routine RANF. It produces double precision floating point numbers which should be identical to those from the original RANF. --- 872,876 ---- 2 and 3, 4 and 5, etc produce the same sequences. ! The generator compatible with the CRAY MATHLIB routine RANF. It produces double precision floating point numbers which should be identical to those from the original RANF. *************** *** 1411,1415 **** @node Random Number References and Further Reading @section References and Further Reading ! @noindent The subject of random number generation and testing is reviewed extensively in Knuth's @cite{Seminumerical Algorithms}. --- 1411,1415 ---- @node Random Number References and Further Reading @section References and Further Reading ! The subject of random number generation and testing is reviewed extensively in Knuth's @cite{Seminumerical Algorithms}. *************** *** 1428,1437 **** Handbook on Simulation, Jerry Banks Ed., Wiley, 1998, 93--137. ! @url{http://www.iro.umontreal.ca/~lecuyer/papers.html} in the file @file{handsim.ps}. @end itemize @noindent On the World Wide Web, see the pLab home page ! (@url{http://random.mat.sbg.ac.at/}) for a lot of information on the state-of-the-art in random number generation, and for numerous links to various "random" WWW sites. --- 1428,1437 ---- Handbook on Simulation, Jerry Banks Ed., Wiley, 1998, 93--137. ! @uref{http://www.iro.umontreal.ca/~lecuyer/papers.html} in the file @file{handsim.ps}. @end itemize @noindent On the World Wide Web, see the pLab home page ! (@uref{http://random.mat.sbg.ac.at/}) for a lot of information on the state-of-the-art in random number generation, and for numerous links to various "random" WWW sites. *************** *** 1445,1449 **** @cite{DIEHARD source code} G. Marsaglia, @item ! @url{http://stat.fsu.edu/pub/diehard/} @end itemize --- 1445,1449 ---- @cite{DIEHARD source code} G. Marsaglia, @item ! @uref{http://stat.fsu.edu/pub/diehard/} @end itemize *************** *** 1458,1467 **** Generators for Cryptographic Applications". @item ! @url{http://csrc.nist.gov/rng/} @end itemize @node Random Number Acknowledgements @section Acknowledgements ! @noindent Thanks to Makoto Matsumoto, Takuji Nishimura and Yoshiharu Kurita for making the source code to their generators (MT19937, MM&TN; TT800, --- 1458,1467 ---- Generators for Cryptographic Applications". @item ! @uref{http://csrc.nist.gov/rng/} @end itemize @node Random Number Acknowledgements @section Acknowledgements ! Thanks to Makoto Matsumoto, Takuji Nishimura and Yoshiharu Kurita for making the source code to their generators (MT19937, MM&TN; TT800, diff -rc2P -x *.info -x *.info-* gsl-1.4/doc/roots.texi gsl-1.5/doc/roots.texi *** gsl-1.4/doc/roots.texi Wed Jul 16 14:51:00 2003 --- gsl-1.5/doc/roots.texi Thu Jun 24 14:18:54 2004 *************** *** 474,478 **** @end deftypefun ! @deftypefun int gsl_root_test_delta (double @var{x1}, double @var{x0}, double @var{epsrel}, double @var{epsabs}) This function tests for the convergence of the sequence @dots{}, @var{x0}, --- 474,478 ---- @end deftypefun ! @deftypefun int gsl_root_test_delta (double @var{x1}, double @var{x0}, double @var{epsabs}, double @var{epsrel}) This function tests for the convergence of the sequence @dots{}, @var{x0}, *************** *** 902,906 **** @node Root Finding References and Further Reading @section References and Further Reading ! @noindent For information on the Brent-Dekker algorithm see the following two papers, --- 902,906 ---- @node Root Finding References and Further Reading @section References and Further Reading ! For information on the Brent-Dekker algorithm see the following two papers, diff -rc2P -x *.info -x *.info-* gsl-1.4/doc/sort.texi gsl-1.5/doc/sort.texi *** gsl-1.4/doc/sort.texi Tue Jul 29 09:51:43 2003 --- gsl-1.5/doc/sort.texi Thu Jun 24 14:18:54 2004 *************** *** 291,295 **** @node Sorting References and Further Reading @section References and Further Reading ! @noindent The subject of sorting is covered extensively in Knuth's @cite{Sorting and Searching}, --- 291,295 ---- @node Sorting References and Further Reading @section References and Further Reading ! The subject of sorting is covered extensively in Knuth's @cite{Sorting and Searching}, diff -rc2P -x *.info -x *.info-* gsl-1.4/doc/specfunc-erf.texi gsl-1.5/doc/specfunc-erf.texi *** gsl-1.4/doc/specfunc-erf.texi Thu May 8 18:58:51 2003 --- gsl-1.5/doc/specfunc-erf.texi Sun Jun 20 18:40:53 2004 *************** *** 58,63 **** @deftypefun double gsl_sf_erf_Z (double @var{x}) @deftypefunx int gsl_sf_erf_Z_e (double @var{x}, gsl_sf_result * @var{result}) ! These routines compute the Gaussian probability function @math{Z(x) = ! (1/(2\pi)) \exp(-x^2/2)}. @end deftypefun --- 58,64 ---- @deftypefun double gsl_sf_erf_Z (double @var{x}) @deftypefunx int gsl_sf_erf_Z_e (double @var{x}, gsl_sf_result * @var{result}) ! These routines compute the Gaussian probability density function ! @c{$Z(x) = (1/\sqrt{2\pi}) \exp(-x^2/2)$} ! @math{Z(x) = (1/\sqrt@{2\pi@}) \exp(-x^2/2)}. @end deftypefun *************** *** 65,69 **** @deftypefunx int gsl_sf_erf_Q_e (double @var{x}, gsl_sf_result * @var{result}) These routines compute the upper tail of the Gaussian probability ! function @math{Q(x) = (1/(2\pi)) \int_x^\infty dt \exp(-t^2/2)}. @comment Exceptional Return Values: none @end deftypefun --- 66,72 ---- @deftypefunx int gsl_sf_erf_Q_e (double @var{x}, gsl_sf_result * @var{result}) These routines compute the upper tail of the Gaussian probability ! function ! @c{$Q(x) = (1/\sqrt{2\pi}) \int_x^\infty dt \exp(-t^2/2)$} ! @math{Q(x) = (1/\sqrt@{2\pi@}) \int_x^\infty dt \exp(-t^2/2)}. @comment Exceptional Return Values: none @end deftypefun *************** *** 71,75 **** @cindex hazard function, normal distribution @cindex Mill's ratio, inverse ! The @dfn{hazard function} for the normal distrbution, also known as the inverse Mill's ratio, is defined as @math{h(x) = Z(x)/Q(x) = \sqrt{2/\pi} \exp(-x^2 / 2) / \erfc(x/\sqrt 2)}. --- 74,78 ---- @cindex hazard function, normal distribution @cindex Mill's ratio, inverse ! The @dfn{hazard function} for the normal distribution, also known as the inverse Mill's ratio, is defined as @math{h(x) = Z(x)/Q(x) = \sqrt{2/\pi} \exp(-x^2 / 2) / \erfc(x/\sqrt 2)}. diff -rc2P -x *.info -x *.info-* gsl-1.4/doc/specfunc-psi.texi gsl-1.5/doc/specfunc-psi.texi *** gsl-1.4/doc/specfunc-psi.texi Wed Aug 22 14:59:00 2001 --- gsl-1.5/doc/specfunc-psi.texi Fri Jan 23 12:06:28 2004 *************** *** 31,35 **** These routines compute the digamma function @math{\psi(x)} for general @math{x}, @math{x \ne 0}. ! @comment Domain: x != 0.0 @comment Exceptional Return Values: GSL_EDOM, GSL_ELOSS @end deftypefun --- 31,35 ---- These routines compute the digamma function @math{\psi(x)} for general @math{x}, @math{x \ne 0}. ! @comment Domain: x != 0.0, -1.0, -2.0, ... @comment Exceptional Return Values: GSL_EDOM, GSL_ELOSS @end deftypefun *************** *** 56,59 **** --- 56,66 ---- @end deftypefun + @deftypefun double gsl_sf_psi_1 (double @var{x}) + @deftypefunx int gsl_sf_psi_1_e (double @var{x}, gsl_sf_result * @var{result}) + These routines compute the Trigamma function @math{\psi'(x)} for + general @math{x}. + @comment Domain: x != 0.0, -1.0, -2.0, ... + @comment Exceptional Return Values: GSL_EDOM, GSL_ELOSS + @end deftypefun @node Polygamma Function *************** *** 64,68 **** These routines compute the polygamma function @c{$\psi^{(m)}(x)$} @math{\psi^@{(m)@}(x)} for ! @c{$c \ge 0$} @math{m >= 0}, @math{x > 0}. @comment Domain: m >= 0, x > 0.0 --- 71,75 ---- These routines compute the polygamma function @c{$\psi^{(m)}(x)$} @math{\psi^@{(m)@}(x)} for ! @c{$m \ge 0$} @math{m >= 0}, @math{x > 0}. @comment Domain: m >= 0, x > 0.0 diff -rc2P -x *.info -x *.info-* gsl-1.4/doc/specfunc-zeta.texi gsl-1.5/doc/specfunc-zeta.texi *** gsl-1.4/doc/specfunc-zeta.texi Thu Oct 18 10:59:00 2001 --- gsl-1.5/doc/specfunc-zeta.texi Fri Jan 23 12:06:28 2004 *************** *** 6,12 **** @menu ! * Riemann Zeta Function:: ! * Hurwitz Zeta Function:: ! * Eta Function:: @end menu --- 6,13 ---- @menu ! * Riemann Zeta Function:: ! * Riemann Zeta Function Minus One:: ! * Hurwitz Zeta Function:: ! * Eta Function:: @end menu *************** *** 35,38 **** --- 36,64 ---- @comment Exceptional Return Values: GSL_EDOM, GSL_EOVRFLW @end deftypefun + + + @node Riemann Zeta Function Minus One + @subsection Riemann Zeta Function Minus One + + For large positive argument, the Riemann zeta function approaches one. + In this region the fractional part is interesting, and therefore we + need a function to evaluate it explicitly. + + @deftypefun double gsl_sf_zetam1_int (int @var{n}) + @deftypefunx int gsl_sf_zetam1_int_e (int @var{n}, gsl_sf_result * @var{result}) + These routines compute @math{\zeta(n) - 1} for integer @var{n}, + @math{n \ne 1}. + @comment Domain: n integer, n != 1 + @comment Exceptional Return Values: GSL_EDOM, GSL_EOVRFLW + @end deftypefun + + @deftypefun double gsl_sf_zetam1 (double @var{s}) + @deftypefunx int gsl_sf_zetam1_e (double @var{s}, gsl_sf_result * @var{result}) + These routines compute @math{\zeta(s) - 1} for arbitrary @var{s}, + @math{s \ne 1}. + @comment Domain: s != 1.0 + @comment Exceptional Return Values: GSL_EDOM, GSL_EOVRFLW + @end deftypefun + @node Hurwitz Zeta Function diff -rc2P -x *.info -x *.info-* gsl-1.4/doc/specfunc.texi gsl-1.5/doc/specfunc.texi *** gsl-1.4/doc/specfunc.texi Mon Jun 2 16:16:02 2003 --- gsl-1.5/doc/specfunc.texi Thu Jun 24 14:18:54 2004 *************** *** 297,301 **** @node Special Functions References and Further Reading @section References and Further Reading ! @noindent The library follows the conventions of @cite{Abramowitz & Stegun} where possible, --- 297,301 ---- @node Special Functions References and Further Reading @section References and Further Reading ! The library follows the conventions of @cite{Abramowitz & Stegun} where possible, diff -rc2P -x *.info -x *.info-* gsl-1.4/doc/stamp-vti gsl-1.5/doc/stamp-vti *** gsl-1.4/doc/stamp-vti Thu Aug 14 12:36:37 2003 --- gsl-1.5/doc/stamp-vti Thu Jun 24 15:42:17 2004 *************** *** 1,4 **** ! @set UPDATED 12 August 2003 ! @set UPDATED-MONTH August 2003 ! @set EDITION 1.4 ! @set VERSION 1.4 --- 1,4 ---- ! @set UPDATED 24 June 2004 ! @set UPDATED-MONTH June 2004 ! @set EDITION 1.5 ! @set VERSION 1.5 diff -rc2P -x *.info -x *.info-* gsl-1.4/doc/statistics.texi gsl-1.5/doc/statistics.texi *** gsl-1.4/doc/statistics.texi Sun Jul 27 08:40:56 2003 --- gsl-1.5/doc/statistics.texi Thu Jun 24 14:18:54 2004 *************** *** 692,696 **** @node Statistics References and Further Reading @section References and Further Reading ! @noindent The standard reference for almost any topic in statistics is the multi-volume @cite{Advanced Theory of Statistics} by Kendall and Stuart. --- 692,696 ---- @node Statistics References and Further Reading @section References and Further Reading ! The standard reference for almost any topic in statistics is the multi-volume @cite{Advanced Theory of Statistics} by Kendall and Stuart. *************** *** 726,730 **** @noindent The Review of Particle Physics is available online at ! @url{http://pdg.lbl.gov/}. --- 726,730 ---- @noindent The Review of Particle Physics is available online at ! @uref{http://pdg.lbl.gov/}. diff -rc2P -x *.info -x *.info-* gsl-1.4/doc/sum.texi gsl-1.5/doc/sum.texi *** gsl-1.4/doc/sum.texi Sun Jul 27 08:28:08 2003 --- gsl-1.5/doc/sum.texi Thu Jun 24 14:18:54 2004 *************** *** 154,158 **** @node Series Acceleration References @section References and Further Reading ! @noindent The algorithms used by these functions are described in the following papers, --- 154,158 ---- @node Series Acceleration References @section References and Further Reading ! The algorithms used by these functions are described in the following papers, *************** *** 180,183 **** @item Herbert H. H. Homeier, Scalar Levin-Type Sequence Transformations, ! @url{http://xxx.lanl.gov/abs/math/0005209} @end itemize --- 180,183 ---- @item Herbert H. H. Homeier, Scalar Levin-Type Sequence Transformations, ! @uref{http://xxx.lanl.gov/abs/math/0005209} @end itemize diff -rc2P -x *.info -x *.info-* gsl-1.4/doc/usage.texi gsl-1.5/doc/usage.texi *** gsl-1.4/doc/usage.texi Sat Aug 2 16:16:53 2003 --- gsl-1.5/doc/usage.texi Tue Oct 21 20:59:59 2003 *************** *** 7,13 **** @menu ! * ANSI C Compliance:: * Compiling and Linking:: * Shared Libraries:: * Inline functions:: * Long double:: --- 7,14 ---- @menu ! * An Example Program:: * Compiling and Linking:: * Shared Libraries:: + * ANSI C Compliance:: * Inline functions:: * Long double:: *************** *** 20,23 **** --- 21,25 ---- * Code Reuse:: @end menu + @node An Example Program @section An Example Program *************** *** 40,66 **** sections. - @node ANSI C Compliance - @section ANSI C Compliance - - The library is written in ANSI C and is intended to conform to the ANSI - C standard. It should be portable to any system with a working ANSI C - compiler. - - The library does not rely on any non-ANSI extensions in the interface it - exports to the user. Programs you write using GSL can be ANSI - compliant. Extensions which can be used in a way compatible with pure - ANSI C are supported, however, via conditional compilation. This allows - the library to take advantage of compiler extensions on those platforms - which support them. - - When an ANSI C feature is known to be broken on a particular system the - library will exclude any related functions at compile-time. This should - make it impossible to link a program that would use these functions and - give incorrect results. - - To avoid namespace conflicts all exported function names and variables - have the prefix @code{gsl_}, while exported macros have the prefix - @code{GSL_}. - @node Compiling and Linking @section Compiling and Linking --- 42,45 ---- *************** *** 84,88 **** @code{gcc} is, @example ! gcc -I/usr/local/include -c example.c @end example @noindent --- 63,67 ---- @code{gcc} is, @example ! $ gcc -Wall -I/usr/local/include -c example.c @end example @noindent *************** *** 98,102 **** version of the library is also installed on systems that support shared libraries. The default location of these files is ! @file{/usr/local/lib}. To link against the library you need to specify both the main library and a supporting @sc{cblas} library, which provides standard basic linear algebra subroutines. A suitable --- 77,85 ---- version of the library is also installed on systems that support shared libraries. The default location of these files is ! @file{/usr/local/lib}. If this directory is not on the standard search ! path of your linker you will also need to provide its location as a ! command line flag. ! ! To link against the library you need to specify both the main library and a supporting @sc{cblas} library, which provides standard basic linear algebra subroutines. A suitable *************** *** 106,117 **** @example ! gcc example.o -lgsl -lgslcblas -lm @end example @noindent The following command line shows how you would link the same application with an alternative blas library called @file{libcblas}, @example ! gcc example.o -lgsl -lcblas -lm @end example @noindent --- 89,104 ---- @example ! $ gcc -L/usr/local/lib example.o -lgsl -lgslcblas -lm @end example @noindent + The default library path for @code{gcc} searches @file{/usr/local/lib} + automatically so the @code{-L} option can be omitted when GSL is + installed in its default location. + The following command line shows how you would link the same application with an alternative blas library called @file{libcblas}, @example ! $ gcc example.o -lgsl -lcblas -lm @end example @noindent *************** *** 125,129 **** @example ! gcc example.o -lgsl -lcblas -latlas -lm @end example @noindent --- 112,116 ---- @example ! $ gcc example.o -lgsl -lcblas -latlas -lm @end example @noindent *************** *** 135,139 **** @example ! bash$ gsl-config --prefix /usr/local @end example --- 122,126 ---- @example ! $ gsl-config --prefix /usr/local @end example *************** *** 153,159 **** @example ! LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH ! export LD_LIBRARY_PATH ! ./example @end example @noindent --- 140,146 ---- @example ! $ LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH ! $ export LD_LIBRARY_PATH ! $ ./example @end example @noindent *************** *** 162,167 **** @example ! setenv LD_LIBRARY_PATH /usr/local/lib:$LD_LIBRARY_PATH @end example To save retyping these commands each session they should be placed in an --- 149,157 ---- @example ! % setenv LD_LIBRARY_PATH /usr/local/lib:$LD_LIBRARY_PATH @end example + @noindent + The standard prompt for the C-shell in the example above is the percent + character @samp{%}, and should not be typed as part of the command. To save retyping these commands each session they should be placed in an *************** *** 172,178 **** @example ! gcc -static example.o -lgsl -lgslcblas -lm @end example @node Inline functions @section Inline functions --- 162,191 ---- @example ! $ gcc -static example.o -lgsl -lgslcblas -lm @end example + @node ANSI C Compliance + @section ANSI C Compliance + + The library is written in ANSI C and is intended to conform to the ANSI + C standard. It should be portable to any system with a working ANSI C + compiler. + + The library does not rely on any non-ANSI extensions in the interface it + exports to the user. Programs you write using GSL can be ANSI + compliant. Extensions which can be used in a way compatible with pure + ANSI C are supported, however, via conditional compilation. This allows + the library to take advantage of compiler extensions on those platforms + which support them. + + When an ANSI C feature is known to be broken on a particular system the + library will exclude any related functions at compile-time. This should + make it impossible to link a program that would use these functions and + give incorrect results. + + To avoid namespace conflicts all exported function names and variables + have the prefix @code{gsl_}, while exported macros have the prefix + @code{GSL_}. + @node Inline functions @section Inline functions *************** *** 188,192 **** @example ! gcc -c -DHAVE_INLINE example.c @end example @noindent --- 201,205 ---- @example ! $ gcc -Wall -c -DHAVE_INLINE example.c @end example @noindent diff -rc2P -x *.info -x *.info-* gsl-1.4/doc/vectors.texi gsl-1.5/doc/vectors.texi *** gsl-1.4/doc/vectors.texi Sun Aug 3 15:52:56 2003 --- gsl-1.5/doc/vectors.texi Thu Jun 24 14:18:54 2004 *************** *** 283,292 **** The functions for accessing the elements of a vector or matrix are defined in @file{gsl_vector.h} and declared @code{extern inline} to ! eliminate function-call overhead. If necessary you can turn off range ! checking completely without modifying any source files by recompiling ! your program with the preprocessor definition ! @code{GSL_RANGE_CHECK_OFF}. Provided your compiler supports inline ! functions the effect of turning off range checking is to replace calls ! to @code{gsl_vector_get(v,i)} by @code{v->data[i*v->stride]} and calls to @code{gsl_vector_set(v,i,x)} by @code{v->data[i*v->stride]=x}. Thus there should be no performance penalty for using the range checking --- 283,293 ---- The functions for accessing the elements of a vector or matrix are defined in @file{gsl_vector.h} and declared @code{extern inline} to ! eliminate function-call overhead. You must compile your program with ! the macro @code{HAVE_INLINE} defined to use these functions. If ! necessary you can turn off range checking completely without modifying ! any source files by recompiling your program with the preprocessor ! definition @code{GSL_RANGE_CHECK_OFF}. Provided your compiler supports ! inline functions the effect of turning off range checking is to replace ! calls to @code{gsl_vector_get(v,i)} by @code{v->data[i*v->stride]} and calls to @code{gsl_vector_set(v,i,x)} by @code{v->data[i*v->stride]=x}. Thus there should be no performance penalty for using the range checking *************** *** 930,933 **** --- 931,940 ---- @cindex matrices, initializing @cindex initializing matrices + @cindex identity matrix + @cindex matrix, identity + @cindex zero matrix + @cindex matrix, zero + @cindex constant matrix + @cindex matrix, constant @deftypefun void gsl_matrix_set_all (gsl_matrix * @var{m}, double @var{x}) *************** *** 1256,1259 **** --- 1263,1268 ---- @end deftypefun + @cindex matrix diagonal + @cindex diagonal, of a matrix @deftypefun gsl_vector_view gsl_matrix_diagonal (gsl_matrix * @var{m}) @deftypefunx {gsl_vector_const_view} gsl_matrix_const_diagonal (const gsl_matrix * @var{m}) *************** *** 1268,1271 **** --- 1277,1282 ---- @end deftypefun + @cindex matrix subdiagonal + @cindex subdiagonal, of a matrix @deftypefun gsl_vector_view gsl_matrix_subdiagonal (gsl_matrix * @var{m}, size_t @var{k}) @deftypefunx {gsl_vector_const_view} gsl_matrix_const_subdiagonal (const gsl_matrix * @var{m}, size_t @var{k}) *************** *** 1279,1282 **** --- 1290,1295 ---- @end deftypefun + @cindex matrix superdiagonal + @cindex superdiagonal, matrix @deftypefun gsl_vector_view gsl_matrix_superdiagonal (gsl_matrix * @var{m}, size_t @var{k}) @deftypefunx {gsl_vector_const_view} gsl_matrix_const_superdiagonal (const gsl_matrix * @var{m}, size_t @var{k}) *************** *** 1539,1543 **** @node Vector and Matrix References and Further Reading @section References and Further Reading ! @noindent The block, vector and matrix objects in GSL follow the @code{valarray} model of C++. A description of this model can be found in the following --- 1552,1556 ---- @node Vector and Matrix References and Further Reading @section References and Further Reading ! The block, vector and matrix objects in GSL follow the @code{valarray} model of C++. A description of this model can be found in the following diff -rc2P -x *.info -x *.info-* gsl-1.4/doc/version-ref.texi gsl-1.5/doc/version-ref.texi *** gsl-1.4/doc/version-ref.texi Thu Aug 14 12:36:37 2003 --- gsl-1.5/doc/version-ref.texi Thu Jun 24 15:42:17 2004 *************** *** 1,4 **** ! @set UPDATED 12 August 2003 ! @set UPDATED-MONTH August 2003 ! @set EDITION 1.4 ! @set VERSION 1.4 --- 1,4 ---- ! @set UPDATED 24 June 2004 ! @set UPDATED-MONTH June 2004 ! @set EDITION 1.5 ! @set VERSION 1.5 diff -rc2P -x *.info -x *.info-* gsl-1.4/gsl/Makefile.am gsl-1.5/gsl/Makefile.am *** gsl-1.4/gsl/Makefile.am Sun Jul 27 09:49:48 2003 --- gsl-1.5/gsl/Makefile.am Sat Mar 20 23:06:56 2004 *************** *** 4,8 **** for h in $$HEADERLIST; do \ BASENAME=`basename $$h`; \ ! test -e $$BASENAME || $(LN_S) $$h $$BASENAME; \ done --- 4,8 ---- for h in $$HEADERLIST; do \ BASENAME=`basename $$h`; \ ! test -r $$BASENAME || $(LN_S) $$h $$BASENAME; \ done diff -rc2P -x *.info -x *.info-* gsl-1.4/gsl/Makefile.in gsl-1.5/gsl/Makefile.in *** gsl-1.4/gsl/Makefile.in Thu Aug 14 12:31:29 2003 --- gsl-1.5/gsl/Makefile.in Thu Jun 24 10:49:44 2004 *************** *** 294,298 **** for h in $$HEADERLIST; do \ BASENAME=`basename $$h`; \ ! test -e $$BASENAME || $(LN_S) $$h $$BASENAME; \ done --- 294,298 ---- for h in $$HEADERLIST; do \ BASENAME=`basename $$h`; \ ! test -r $$BASENAME || $(LN_S) $$h $$BASENAME; \ done diff -rc2P -x *.info -x *.info-* gsl-1.4/gsl.m4 gsl-1.5/gsl.m4 *** gsl-1.4/gsl.m4 Sat Sep 29 16:50:41 2001 --- gsl-1.5/gsl.m4 Thu May 27 12:02:54 2004 *************** *** 3,7 **** ! AC_DEFUN(AM_PATH_GSL, [ AC_ARG_WITH(gsl-prefix,[ --with-gsl-prefix=PFX Prefix where GSL is installed (optional)], --- 3,7 ---- ! AC_DEFUN([AM_PATH_GSL], [ AC_ARG_WITH(gsl-prefix,[ --with-gsl-prefix=PFX Prefix where GSL is installed (optional)], diff -rc2P -x *.info -x *.info-* gsl-1.4/gsl.spec.in gsl-1.5/gsl.spec.in *** gsl-1.4/gsl.spec.in Thu Dec 19 17:01:17 2002 --- gsl-1.5/gsl.spec.in Tue Feb 24 15:22:36 2004 *************** *** 9,13 **** Vendor: The GSL Team Distribution: research software - Copyright: Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002 The GSL Team Source: gsl-%{version}.tar.gz Group: Libraries/Research --- 9,12 ---- *************** *** 35,38 **** --- 34,38 ---- Further information can be found in the GSL Reference Manual. + Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004 The GSL Team. Install the gsl package if you need a library for high-level *************** *** 70,74 **** %files %doc {NEWS,ChangeLog,INSTALL,README,AUTHORS,THANKS,BUGS} ! %doc /usr/info/gsl-ref* /usr/bin/gsl-config /usr/bin/gsl-histogram --- 70,74 ---- %files %doc {NEWS,ChangeLog,INSTALL,README,AUTHORS,THANKS,BUGS} ! %doc /usr/info/* /usr/bin/gsl-config /usr/bin/gsl-histogram *************** *** 77,78 **** --- 77,79 ---- /usr/include/gsl /usr/share/aclocal/gsl.m4 + /usr/share/man diff -rc2P -x *.info -x *.info-* gsl-1.4/gsl_math.h gsl-1.5/gsl_math.h *** gsl-1.4/gsl_math.h Fri Jul 25 15:19:22 2003 --- gsl-1.5/gsl_math.h Sun Jun 20 18:41:17 2004 *************** *** 1,5 **** /* gsl_math.h * ! * Copyright (C) 1996, 1997, 1998, 1999, 2000 Gerard Jungman, Brian Gough * * This program is free software; you can redistribute it and/or modify --- 1,5 ---- /* gsl_math.h * ! * Copyright (C) 1996, 1997, 1998, 1999, 2000, 2004 Gerard Jungman, Brian Gough * * This program is free software; you can redistribute it and/or modify *************** *** 128,132 **** /* inline-friendly strongly typed versions */ ! #if HAVE_INLINE extern inline int GSL_MAX_INT (int a, int b); --- 128,132 ---- /* inline-friendly strongly typed versions */ ! #ifdef HAVE_INLINE extern inline int GSL_MAX_INT (int a, int b); diff -rc2P -x *.info -x *.info-* gsl-1.4/gsl_mode.h gsl-1.5/gsl_mode.h *** gsl-1.4/gsl_mode.h Fri Jul 25 15:19:22 2003 --- gsl-1.5/gsl_mode.h Sun Jun 20 18:41:17 2004 *************** *** 1,5 **** /* gsl_mode.h * ! * Copyright (C) 1996, 1997, 1998, 1999, 2000 Gerard Jungman * * This program is free software; you can redistribute it and/or modify --- 1,5 ---- /* gsl_mode.h * ! * Copyright (C) 1996, 1997, 1998, 1999, 2000, 2004 Gerard Jungman * * This program is free software; you can redistribute it and/or modify *************** *** 67,71 **** #define GSL_PREC_APPROX 2 ! #if HAVE_INLINE extern inline unsigned int GSL_MODE_PREC(gsl_mode_t mt); --- 67,71 ---- #define GSL_PREC_APPROX 2 ! #ifdef HAVE_INLINE extern inline unsigned int GSL_MODE_PREC(gsl_mode_t mt); diff -rc2P -x *.info -x *.info-* gsl-1.4/gsl_pow_int.h gsl-1.5/gsl_pow_int.h *** gsl-1.4/gsl_pow_int.h Fri Jul 25 15:19:22 2003 --- gsl-1.5/gsl_pow_int.h Sun Jun 20 18:41:17 2004 *************** *** 1,5 **** /* gsl_pow_int.h * ! * Copyright (C) 1996, 1997, 1998, 1999, 2000 Gerard Jungman, Brian Gough * * This program is free software; you can redistribute it and/or modify --- 1,5 ---- /* gsl_pow_int.h * ! * Copyright (C) 1996, 1997, 1998, 1999, 2000, 2004 Gerard Jungman, Brian Gough * * This program is free software; you can redistribute it and/or modify *************** *** 33,37 **** __BEGIN_DECLS ! #if HAVE_INLINE extern inline double gsl_pow_2(const double x); extern inline double gsl_pow_3(const double x); --- 33,37 ---- __BEGIN_DECLS ! #ifdef HAVE_INLINE extern inline double gsl_pow_2(const double x); extern inline double gsl_pow_3(const double x); diff -rc2P -x *.info -x *.info-* gsl-1.4/gsl_version.h gsl-1.5/gsl_version.h *** gsl-1.4/gsl_version.h Thu Aug 14 12:36:01 2003 --- gsl-1.5/gsl_version.h Fri Jun 25 10:07:12 2004 *************** *** 16,20 **** ! #define GSL_VERSION "1.4" GSL_VAR const char * gsl_version; --- 16,20 ---- ! #define GSL_VERSION "1.5" GSL_VAR const char * gsl_version; diff -rc2P -x *.info -x *.info-* gsl-1.4/ieee-utils/ChangeLog gsl-1.5/ieee-utils/ChangeLog *** gsl-1.4/ieee-utils/ChangeLog Mon Jul 21 17:19:21 2003 --- gsl-1.5/ieee-utils/ChangeLog Sat Dec 20 17:38:02 2003 *************** *** 1,2 **** --- 1,7 ---- + 2003-12-20 Brian Gough + + * fp-gnuc99.c (_GNU_SOURCE): define _GNU_SOURCE when including + fenv.h + 2003-07-21 Brian Gough diff -rc2P -x *.info -x *.info-* gsl-1.4/ieee-utils/fp-gnuc99.c gsl-1.5/ieee-utils/fp-gnuc99.c *** gsl-1.4/ieee-utils/fp-gnuc99.c Fri Jul 25 15:18:11 2003 --- gsl-1.5/ieee-utils/fp-gnuc99.c Sun Jun 20 18:41:17 2004 *************** *** 1,5 **** /* ieee-utils/fp-gnuc99.c * ! * Copyright (C) 2003 Brian Gough * * This program is free software; you can redistribute it and/or modify --- 1,5 ---- /* ieee-utils/fp-gnuc99.c * ! * Copyright (C) 2003, 2004 Brian Gough * * This program is free software; you can redistribute it and/or modify *************** *** 17,20 **** --- 17,22 ---- * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ + + #define _GNU_SOURCE 1 #include diff -rc2P -x *.info -x *.info-* gsl-1.4/interpolation/ChangeLog gsl-1.5/interpolation/ChangeLog *** gsl-1.4/interpolation/ChangeLog Thu Jul 24 16:55:44 2003 --- gsl-1.5/interpolation/ChangeLog Mon Mar 15 17:39:20 2004 *************** *** 1,2 **** --- 1,6 ---- + 2004-03-15 Brian Gough + + * cspline.c (cspline_init): handle the case N=1 specially + 2003-07-24 Brian Gough diff -rc2P -x *.info -x *.info-* gsl-1.4/interpolation/bsearch.h gsl-1.5/interpolation/bsearch.h *** gsl-1.4/interpolation/bsearch.h Fri Jul 25 15:18:21 2003 --- gsl-1.5/interpolation/bsearch.h Sun Jun 20 18:41:17 2004 *************** *** 1,5 **** /* interpolation/bsearch.h * ! * Copyright (C) 1996, 1997, 1998, 1999, 2000 Gerard Jungman * * This program is free software; you can redistribute it and/or modify --- 1,5 ---- /* interpolation/bsearch.h * ! * Copyright (C) 1996, 1997, 1998, 1999, 2000, 2004 Gerard Jungman * * This program is free software; you can redistribute it and/or modify *************** *** 53,57 **** ! #if HAVE_INLINE extern inline --- 53,57 ---- ! #ifdef HAVE_INLINE extern inline diff -rc2P -x *.info -x *.info-* gsl-1.4/interpolation/cspline.c gsl-1.5/interpolation/cspline.c *** gsl-1.4/interpolation/cspline.c Fri Jul 25 15:18:11 2003 --- gsl-1.5/interpolation/cspline.c Sun Jun 20 18:41:17 2004 *************** *** 1,5 **** /* interpolation/cspline.c * ! * Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002 Gerard Jungman * * This program is free software; you can redistribute it and/or modify --- 1,5 ---- /* interpolation/cspline.c * ! * Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2004 Gerard Jungman * * This program is free software; you can redistribute it and/or modify *************** *** 118,133 **** } ! { ! gsl_vector_view g_vec = gsl_vector_view_array(state->g, sys_size); ! gsl_vector_view diag_vec = gsl_vector_view_array(state->diag, sys_size); ! gsl_vector_view offdiag_vec = gsl_vector_view_array(state->offdiag, sys_size); ! gsl_vector_view solution_vec = gsl_vector_view_array ((state->c) + 1, sys_size); ! ! int status = gsl_linalg_solve_symm_tridiag(&diag_vec.vector, ! &offdiag_vec.vector, ! &g_vec.vector, ! &solution_vec.vector); ! return status; ! } } --- 118,139 ---- } ! if (sys_size == 1) ! { ! state->c[1] = state->g[0] / state->diag[0]; ! return GSL_SUCCESS; ! } ! else ! { ! gsl_vector_view g_vec = gsl_vector_view_array(state->g, sys_size); ! gsl_vector_view diag_vec = gsl_vector_view_array(state->diag, sys_size); ! gsl_vector_view offdiag_vec = gsl_vector_view_array(state->offdiag, sys_size - 1); ! gsl_vector_view solution_vec = gsl_vector_view_array ((state->c) + 1, sys_size); ! ! int status = gsl_linalg_solve_symm_tridiag(&diag_vec.vector, ! &offdiag_vec.vector, ! &g_vec.vector, ! &solution_vec.vector); ! return status; ! } } diff -rc2P -x *.info -x *.info-* gsl-1.4/interpolation/gsl_interp.h gsl-1.5/interpolation/gsl_interp.h *** gsl-1.4/interpolation/gsl_interp.h Fri Jul 25 15:18:21 2003 --- gsl-1.5/interpolation/gsl_interp.h Sun Jun 20 18:41:17 2004 *************** *** 1,5 **** /* interpolation/gsl_interp.h * ! * Copyright (C) 1996, 1997, 1998, 1999, 2000 Gerard Jungman * * This program is free software; you can redistribute it and/or modify --- 1,5 ---- /* interpolation/gsl_interp.h * ! * Copyright (C) 1996, 1997, 1998, 1999, 2000, 2004 Gerard Jungman * * This program is free software; you can redistribute it and/or modify *************** *** 152,156 **** size_t index_lo, size_t index_hi); ! #if HAVE_INLINE extern inline size_t gsl_interp_bsearch(const double x_array[], double x, --- 152,156 ---- size_t index_lo, size_t index_hi); ! #ifdef HAVE_INLINE extern inline size_t gsl_interp_bsearch(const double x_array[], double x, *************** *** 175,179 **** #endif ! #if HAVE_INLINE extern inline size_t gsl_interp_accel_find(gsl_interp_accel * a, const double xa[], size_t len, double x) --- 175,179 ---- #endif ! #ifdef HAVE_INLINE extern inline size_t gsl_interp_accel_find(gsl_interp_accel * a, const double xa[], size_t len, double x) diff -rc2P -x *.info -x *.info-* gsl-1.4/linalg/ChangeLog gsl-1.5/linalg/ChangeLog *** gsl-1.4/linalg/ChangeLog Thu Jul 24 16:42:25 2003 --- gsl-1.5/linalg/ChangeLog Sun Jun 6 15:46:57 2004 *************** *** 1,2 **** --- 1,47 ---- + 2004-05-30 Brian Gough + + * test.c (test_LU_solve): increase test tolerance to accommodate + gcc-3.3.3 w/ bounds checking + + 2004-05-26 Brian Gough + + * householder.c (gsl_linalg_householder_hm): + (gsl_linalg_householder_mh): + (gsl_linalg_householder_hm1): added blas code (but ifdef'd out) + + * test.c (test_SV_decomp_dim): skip NaNs in test + (test_SV_decomp_mod_dim): skip NaNs in test + + 2004-04-26 Brian Gough + + * test.c (test_TDN_solve): increased tolerance for tests + (test_TDN_cyc_solve): increased tolerance for tests + + 2004-03-15 Brian Gough + + * tridiag.c: (gsl_linalg_solve_symm_tridiag): + (gsl_linalg_solve_tridiag): + (gsl_linalg_solve_symm_cyc_tridiag): + (gsl_linalg_solve_cyc_tridiag): use GSL_ERROR macro to report + errors, make size restrictions tighter (no unused elements allowed + to be passed in). + + 2004-03-06 Brian Gough + + * test.c (test_SV_decomp_mod_dim): added tests for SV_decomp_mod + + * svd.c (gsl_linalg_SV_decomp): handle the case N=1 (SVD of a + column vector) + (gsl_linalg_SV_decomp_mod): handle the case N=1 (SVD of a column + vector) + + 2004-03-05 Brian Gough + + * test.c (test_SV_decomp): add tests with inf/nan + + * svd.c (gsl_linalg_SV_decomp): handle nans in block reduction + + * balance.c: handle infinity/nan when scaling input matrix + 2003-07-24 Brian Gough diff -rc2P -x *.info -x *.info-* gsl-1.4/linalg/balance.c gsl-1.5/linalg/balance.c *** gsl-1.4/linalg/balance.c Fri Jul 25 15:18:11 2003 --- gsl-1.5/linalg/balance.c Sun Jun 20 18:41:17 2004 *************** *** 1,5 **** /* linalg/balance.c * ! * Copyright (C) 2001 Brian Gough * * This program is free software; you can redistribute it and/or modify --- 1,5 ---- /* linalg/balance.c * ! * Copyright (C) 2001, 2004 Brian Gough * * This program is free software; you can redistribute it and/or modify *************** *** 55,59 **** double f = 1.0; ! if (s == 0.0) { gsl_vector_set (D, j, f); --- 55,59 ---- double f = 1.0; ! if (s == 0.0 || !gsl_finite(s)) { gsl_vector_set (D, j, f); diff -rc2P -x *.info -x *.info-* gsl-1.4/linalg/householder.c gsl-1.5/linalg/householder.c *** gsl-1.4/linalg/householder.c Fri Jul 25 15:18:12 2003 --- gsl-1.5/linalg/householder.c Sun Jun 20 18:41:17 2004 *************** *** 1,5 **** /* linalg/householder.c * ! * Copyright (C) 1996, 1997, 1998, 1999, 2000 Gerard Jungman, Brian Gough * * This program is free software; you can redistribute it and/or modify --- 1,5 ---- /* linalg/householder.c * ! * Copyright (C) 1996, 1997, 1998, 1999, 2000, 2004 Gerard Jungman, Brian Gough * * This program is free software; you can redistribute it and/or modify *************** *** 75,78 **** --- 75,99 ---- } + #ifdef USE_BLAS + { + gsl_vector_const_view v1 = gsl_vector_const_subvector (v, 1, v->size - 1); + gsl_matrix_view A1 = gsl_matrix_submatrix (A, 1, 0, A->size1 - 1, A->size2); + + for (j = 0; j < A->size2; j++) + { + double wj = 0.0; + gsl_vector_view A1j = gsl_matrix_column(&A1.matrix, j); + gsl_blas_ddot (&A1j.vector, &v1.vector, &wj); + wj += gsl_matrix_get(A,0,j); + + { + double A0j = gsl_matrix_get (A, 0, j); + gsl_matrix_set (A, 0, j, A0j - tau * wj); + } + + gsl_blas_daxpy (-tau * wj, &v1.vector, &A1j.vector); + } + } + #else for (j = 0; j < A->size2; j++) { *************** *** 103,106 **** --- 124,128 ---- } } + #endif return GSL_SUCCESS; *************** *** 120,123 **** --- 142,166 ---- /* A = A - tau w v' */ + #ifdef USE_BLAS + { + gsl_vector_const_view v1 = gsl_vector_const_subvector (v, 1, v->size - 1); + gsl_matrix_view A1 = gsl_matrix_submatrix (A, 0, 1, A->size1, A->size2-1); + + for (i = 0; i < A->size1; i++) + { + double wi = 0.0; + gsl_vector_view A1i = gsl_matrix_row(&A1.matrix, i); + gsl_blas_ddot (&A1i.vector, &v1.vector, &wi); + wi += gsl_matrix_get(A,i,0); + + { + double Ai0 = gsl_matrix_get (A, i, 0); + gsl_matrix_set (A, i, 0, Ai0 - tau * wi); + } + + gsl_blas_daxpy(-tau * wi, &v1.vector, &A1i.vector); + } + } + #else for (i = 0; i < A->size1; i++) { *************** *** 145,148 **** --- 188,192 ---- } } + #endif return GSL_SUCCESS; *************** *** 213,216 **** --- 257,284 ---- /* w = A' v */ + #ifdef USE_BLAS + { + gsl_matrix_view A1 = gsl_matrix_submatrix (A, 1, 0, A->size1 - 1, A->size2); + gsl_vector_view v1 = gsl_matrix_column (&A1.matrix, 0); + + for (j = 1; j < A->size2; j++) + { + double wj = 0.0; /* A0j * v0 */ + + gsl_vector_view A1j = gsl_matrix_column(&A1.matrix, j); + gsl_blas_ddot (&A1j.vector, &v1.vector, &wj); + + /* A = A - tau v w' */ + + gsl_matrix_set (A, 0, j, - tau * wj); + + gsl_blas_daxpy(-tau*wj, &v1.vector, &A1j.vector); + } + + gsl_blas_dscal(-tau, &v1.vector); + + gsl_matrix_set (A, 0, 0, 1.0 - tau); + } + #else for (j = 1; j < A->size2; j++) { *************** *** 242,245 **** --- 310,314 ---- gsl_matrix_set (A, 0, 0, 1.0 - tau); + #endif return GSL_SUCCESS; diff -rc2P -x *.info -x *.info-* gsl-1.4/linalg/svd.c gsl-1.5/linalg/svd.c *** gsl-1.4/linalg/svd.c Fri Jul 25 15:18:12 2003 --- gsl-1.5/linalg/svd.c Sun Jun 20 18:41:17 2004 *************** *** 1,5 **** /* linalg/svd.c * ! * Copyright (C) 1996, 1997, 1998, 1999, 2000 Gerard Jungman, Brian Gough * * This program is free software; you can redistribute it and/or modify --- 1,5 ---- /* linalg/svd.c * ! * Copyright (C) 1996, 1997, 1998, 1999, 2000, 2004 Gerard Jungman, Brian Gough * * This program is free software; you can redistribute it and/or modify *************** *** 81,84 **** --- 81,101 ---- } + /* Handle the case of N = 1 (SVD of a column vector) */ + + if (N == 1) + { + gsl_vector_view column = gsl_matrix_column (A, 0); + double norm = gsl_blas_dnrm2 (&column.vector); + + gsl_vector_set (S, 0, norm); + gsl_matrix_set (V, 0, 0, 1.0); + + if (norm != 0.0) + { + gsl_blas_dscal (1.0/norm, &column.vector); + } + + return GSL_SUCCESS; + } { *************** *** 100,104 **** while (b > 0) { ! if (gsl_vector_get (&f.vector, b - 1) == 0.0) { b--; --- 117,123 ---- while (b > 0) { ! double fbm1 = gsl_vector_get (&f.vector, b - 1); ! ! if (fbm1 == 0.0 || gsl_isnan (fbm1)) { b--; *************** *** 113,117 **** while (a > 0) { ! if (gsl_vector_get (&f.vector, a - 1) == 0.0) { break; --- 132,138 ---- while (a > 0) { ! double fam1 = gsl_vector_get (&f.vector, a - 1); ! ! if (fam1 == 0.0 || gsl_isnan (fam1)) { break; *************** *** 233,236 **** --- 254,273 ---- GSL_ERROR ("length of workspace must match second dimension of matrix A", GSL_EBADLEN); + } + + if (N == 1) + { + gsl_vector_view column = gsl_matrix_column (A, 0); + double norm = gsl_blas_dnrm2 (&column.vector); + + gsl_vector_set (S, 0, norm); + gsl_matrix_set (V, 0, 0, 1.0); + + if (norm != 0.0) + { + gsl_blas_dscal (1.0/norm, &column.vector); + } + + return GSL_SUCCESS; } diff -rc2P -x *.info -x *.info-* gsl-1.4/linalg/test.c gsl-1.5/linalg/test.c *** gsl-1.4/linalg/test.c Fri Jul 25 15:18:12 2003 --- gsl-1.5/linalg/test.c Sun Jun 20 18:41:17 2004 *************** *** 1,5 **** /* linalg/test.c * ! * Copyright (C) 1996, 1997, 1998, 1999, 2000 Gerard Jungman, Brian Gough * * This program is free software; you can redistribute it and/or modify --- 1,5 ---- /* linalg/test.c * ! * Copyright (C) 1996, 1997, 1998, 1999, 2000, 2004 Gerard Jungman, Brian Gough * * This program is free software; you can redistribute it and/or modify *************** *** 37,40 **** --- 37,42 ---- gsl_matrix * create_row_matrix(size_t size1, size_t size2); gsl_matrix * create_2x2_matrix(double a11, double a12, double a21, double a22); + gsl_matrix * create_diagonal_matrix(double a[], size_t size); + int test_matmult(void); int test_matmult_mod(void); *************** *** 63,66 **** --- 65,70 ---- int test_SV_decomp_dim(const gsl_matrix * m, double eps); int test_SV_decomp(void); + int test_SV_decomp_mod_dim(const gsl_matrix * m, double eps); + int test_SV_decomp_mod(void); int test_cholesky_solve_dim(const gsl_matrix * m, const double * actual, double eps); int test_cholesky_solve(void); *************** *** 69,79 **** int test_HH_solve_dim(const gsl_matrix * m, const double * actual, double eps); int test_HH_solve(void); ! int test_TD_solve_dim(size_t dim, double d, double od, const double * actual, double eps); ! int test_TD_solve(void); int test_TDN_solve_dim(size_t dim, double d, double a, double b, const double * actual, double eps); int test_TDN_solve(void); ! int test_TD_cyc_solve_one(const size_t dim, const double * d, const double * od, const double * r, const double * actual, double eps); ! int test_TD_cyc_solve(void); int test_TDN_cyc_solve_dim(size_t dim, double d, double a, double b, const double * actual, double eps); int test_TDN_cyc_solve(void); --- 73,83 ---- int test_HH_solve_dim(const gsl_matrix * m, const double * actual, double eps); int test_HH_solve(void); ! int test_TDS_solve_dim(size_t dim, double d, double od, const double * actual, double eps); ! int test_TDS_solve(void); int test_TDN_solve_dim(size_t dim, double d, double a, double b, const double * actual, double eps); int test_TDN_solve(void); ! int test_TDS_cyc_solve_one(const size_t dim, const double * d, const double * od, const double * r, const double * actual, double eps); ! int test_TDS_cyc_solve(void); int test_TDN_cyc_solve_dim(size_t dim, double d, double a, double b, const double * actual, double eps); int test_TDN_cyc_solve(void); *************** *** 84,91 **** check (double x, double actual, double eps) { ! if (actual == 0) ! return fabs(x) > eps; else ! return (fabs(x - actual)/fabs(actual)) > eps; } --- 88,103 ---- check (double x, double actual, double eps) { ! if (x == actual) ! { ! return 0; ! } ! else if (actual == 0) ! { ! return fabs(x) > eps; ! } else ! { ! return (fabs(x - actual)/fabs(actual)) > eps; ! } } *************** *** 198,201 **** --- 210,228 ---- } + gsl_matrix * + create_diagonal_matrix(double a[], size_t size) + { + size_t i; + gsl_matrix * m = gsl_matrix_calloc(size, size); + for(i=0; isize1, N = m->size2; + + gsl_matrix * v = gsl_matrix_alloc(M,N); + gsl_matrix * a = gsl_matrix_alloc(M,N); + gsl_matrix * q = gsl_matrix_alloc(N,N); + gsl_matrix * x = gsl_matrix_alloc(N,N); + gsl_matrix * dqt = gsl_matrix_alloc(N,N); + gsl_vector * d = gsl_vector_alloc(N); + gsl_vector * w = gsl_vector_alloc(N); + + gsl_matrix_memcpy(v,m); + + s += gsl_linalg_SV_decomp_mod(v, x, q, d, w); + + /* Check that singular values are non-negative and in non-decreasing + order */ + + di1 = 0.0; + + for (i = 0; i < N; i++) + { + double di = gsl_vector_get (d, i); + + if (gsl_isnan (di)) + { + continue; /* skip NaNs */ + } + + if (di < 0) { + s++; + printf("singular value %d = %22.18g < 0\n", i, di); + } + + if(i > 0 && di > di1) { + s++; + printf("singular value %d = %22.18g vs previous %22.18g\n", i, di, di1); + } + + di1 = di; + } + + /* Scale dqt = D Q^T */ + + for (i = 0; i < N ; i++) + { + double di = gsl_vector_get (d, i); + + for (j = 0; j < N; j++) + { + double qji = gsl_matrix_get(q, j, i); + gsl_matrix_set (dqt, i, j, qji * di); + } + } + + /* compute a = v dqt */ + gsl_blas_dgemm (CblasNoTrans, CblasNoTrans, 1.0, v, dqt, 0.0, a); + + for(i=0; idata; + + for (i=0; i<9; i++) { + a[i] = lower; + } + + while (carry == 0.0) { + f = test_SV_decomp_mod_dim(A33, 64 * GSL_DBL_EPSILON); + gsl_test(f, " SV_decomp_mod (3x3) A=[ %g, %g, %g; %g, %g, %g; %g, %g, %g]", + a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]); + + /* increment */ + carry=1.0; + for (i=9; i>0 && i--;) + { + double v=a[i]+carry; + carry = (v>upper) ? 1.0 : 0.0; + a[i] = (v>upper) ? lower : v; + } + } + } + + #ifdef TEST_SVD_4X4 + { + int i; + double carry = 0, lower = 0, upper = 1; + double *a = A44->data; + + for (i=0; i<16; i++) { + a[i] = lower; + } + + while (carry == 0.0) { + f = test_SV_decomp_mod_dim(A44, 64 * GSL_DBL_EPSILON); + gsl_test(f, " SV_decomp_mod (4x4) A=[ %g, %g, %g, %g; %g, %g, %g, %g; %g, %g, %g, %g; %g, %g, %g, %g]", + a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], + a[10], a[11], a[12], a[13], a[14], a[15]); + + /* increment */ + carry=1.0; + for (i=16; i>0 && i--;) + { + double v=a[i]+carry; + carry = (v>upper) ? 1.0 : 0.0; + a[i] = (v>upper) ? lower : v; + } + } + } + #endif + + return s; + } + + + int test_cholesky_solve_dim(const gsl_matrix * m, const double * actual, double eps) { *************** *** 1805,1809 **** int ! test_TD_solve_dim(size_t dim, double d, double od, const double * actual, double eps) { int s = 0; --- 2102,2106 ---- int ! test_TDS_solve_dim(size_t dim, double d, double od, const double * actual, double eps) { int s = 0; *************** *** 1844,1873 **** ! int test_TD_solve(void) { int f; int s = 0; - double actual[16]; ! actual[0] = 0.0; ! actual[1] = 2.0; ! f = test_TD_solve_dim(2, 1.0, 0.5, actual, 8.0 * GSL_DBL_EPSILON); ! gsl_test(f, " solve_TD dim=2 A"); ! s += f; ! actual[0] = 3.0/8.0; ! actual[1] = 15.0/8.0; ! f = test_TD_solve_dim(2, 1.0, 1.0/3.0, actual, 8.0 * GSL_DBL_EPSILON); ! gsl_test(f, " solve_TD dim=2 B"); ! s += f; ! actual[0] = 5.0/8.0; ! actual[1] = 9.0/8.0; ! actual[2] = 2.0; ! actual[3] = 15.0/8.0; ! actual[4] = 35.0/8.0; ! f = test_TD_solve_dim(5, 1.0, 1.0/3.0, actual, 8.0 * GSL_DBL_EPSILON); ! gsl_test(f, " solve_TD dim=5"); ! s += f; return s; --- 2141,2169 ---- ! int test_TDS_solve(void) { int f; int s = 0; ! { ! double actual[] = {0.0, 2.0}; ! f = test_TDS_solve_dim(2, 1.0, 0.5, actual, 8.0 * GSL_DBL_EPSILON); ! gsl_test(f, " solve_TDS dim=2 A"); ! s += f; ! } ! { ! double actual[] = {3.0/8.0, 15.0/8.0}; ! f = test_TDS_solve_dim(2, 1.0, 1.0/3.0, actual, 8.0 * GSL_DBL_EPSILON); ! gsl_test(f, " solve_TDS dim=2 B"); ! s += f; ! } ! { ! double actual[] = {5.0/8.0, 9.0/8.0, 2.0, 15.0/8.0, 35.0/8.0}; ! f = test_TDS_solve_dim(5, 1.0, 1.0/3.0, actual, 8.0 * GSL_DBL_EPSILON); ! gsl_test(f, " solve_TDS dim=5"); ! s += f; ! } return s; *************** *** 1875,1879 **** int ! test_TD_cyc_solve_one(const size_t dim, const double * d, const double * od, const double * r, const double * actual, double eps) { --- 2171,2175 ---- int ! test_TDS_cyc_solve_one(const size_t dim, const double * d, const double * od, const double * r, const double * actual, double eps) { *************** *** 1912,1941 **** } ! int test_TD_cyc_solve(void) { int f; int s = 0; ! double diag_1[] = { 1, 1, 1 }; ! double offdiag_1[] = { 3, 3, 3 }; ! double rhs_1[] = { 7, -7, 7 }; ! double actual_1[] = { -2, 5, -2 }; ! size_t dim_1 = sizeof(diag_1)/sizeof(double); ! double diag_2[] = { 4, 2, 1, 2, 4 }; ! double offdiag_2[] = { 1, 1, 1, 1, 1 }; ! double rhs_2[] = { 30, -24, 3, 21, -30 }; ! double actual_2[] = { 12, 3, -42, 42, -21 }; ! size_t dim_2 = sizeof(diag_2)/sizeof(double); ! f = test_TD_cyc_solve_one(dim_1, diag_1, offdiag_1, rhs_1, actual_1, 28.0 * GSL_DBL_EPSILON); ! gsl_test(f, " solve_TD_cyc dim=%u A", dim_1); ! s += f; ! /* f = test_TD_cyc_solve_one(dim_2, diag_2, offdiag_2, rhs_2, actual_2, 7.0 * GSL_DBL_EPSILON); ! FIXME: bad accuracy */ ! f = test_TD_cyc_solve_one(dim_2, diag_2, offdiag_2, rhs_2, actual_2, 35.0 * GSL_DBL_EPSILON); ! gsl_test(f, " solve_TD_cyc dim=%u B", dim_2); ! s += f; return s; --- 2208,2267 ---- } ! int test_TDS_cyc_solve(void) { int f; int s = 0; ! #ifdef SUPPORT_UNDERSIZE_CYC ! { ! size_t dim = 1; ! double diag[] = { 2 }; ! double offdiag[] = { 3 }; ! double rhs[] = { 7 }; ! double actual[] = { 3.5 }; ! ! f = test_TDS_cyc_solve_one(dim, diag, offdiag, rhs, actual, 28.0 * GSL_DBL_EPSILON); ! gsl_test(f, " solve_TDS_cyc dim=%u A", dim); ! s += f; ! } ! { ! size_t dim = 2; ! double diag[] = { 1, 2 }; ! double offdiag[] = { 3, 4 }; ! double rhs[] = { 7, -7 }; ! double actual[] = { -5, 4 }; ! ! f = test_TDS_cyc_solve_one(dim, diag, offdiag, rhs, actual, 28.0 * GSL_DBL_EPSILON); ! gsl_test(f, " solve_TDS_cyc dim=%u A", dim); ! s += f; ! } ! #endif ! { ! size_t dim = 3; ! double diag[] = { 1, 1, 1 }; ! double offdiag[] = { 3, 3, 3 }; ! double rhs[] = { 7, -7, 7 }; ! double actual[] = { -2, 5, -2 }; ! ! f = test_TDS_cyc_solve_one(dim, diag, offdiag, rhs, actual, 28.0 * GSL_DBL_EPSILON); ! gsl_test(f, " solve_TDS_cyc dim=%u A", dim); ! s += f; ! } ! { ! size_t dim = 5; ! double diag[] = { 4, 2, 1, 2, 4 }; ! double offdiag[] = { 1, 1, 1, 1, 1 }; ! double rhs[] = { 30, -24, 3, 21, -30 }; ! double actual[] = { 12, 3, -42, 42, -21 }; ! ! /* f = test_TDS_cyc_solve_one(dim, diag, offdiag, rhs, actual, 7.0 * GSL_DBL_EPSILON); ! FIXME: bad accuracy */ ! f = test_TDS_cyc_solve_one(dim, diag, offdiag, rhs, actual, 35.0 * GSL_DBL_EPSILON); ! gsl_test(f, " solve_TDS_cyc dim=%u B", dim); ! s += f; ! } return s; *************** *** 1991,2003 **** double actual[16]; ! actual[0] = 3.0; ! actual[1] = -1.0; ! f = test_TDN_solve_dim(2, 1.0, 2.0, 1.0, actual, 1.0 * GSL_DBL_EPSILON); gsl_test(f, " solve_TDN dim=2 A"); s += f; ! actual[0] = 2.0/5.0; ! actual[1] = 9.0/5.0; ! f = test_TDN_solve_dim(2, 1.0, 1.0/3.0, 1.0/2.0, actual, 1.0 * GSL_DBL_EPSILON); gsl_test(f, " solve_TDN dim=2 B"); s += f; --- 2317,2331 ---- double actual[16]; ! actual[0] = -7.0/3.0; ! actual[1] = 5.0/3.0; ! actual[2] = 4.0/3.0; ! f = test_TDN_solve_dim(3, 1.0, 2.0, 1.0, actual, 2.0 * GSL_DBL_EPSILON); gsl_test(f, " solve_TDN dim=2 A"); s += f; ! actual[0] = 0.75; ! actual[1] = 0.75; ! actual[2] = 2.625; ! f = test_TDN_solve_dim(3, 1.0, 1.0/3.0, 1.0/2.0, actual, 2.0 * GSL_DBL_EPSILON); gsl_test(f, " solve_TDN dim=2 B"); s += f; *************** *** 2067,2071 **** actual[1] = -1.0/2.0; actual[2] = 1.0/2.0; ! f = test_TDN_cyc_solve_dim(3, 1.0, 2.0, 1.0, actual, 4.0 * GSL_DBL_EPSILON); gsl_test(f, " solve_TDN_cyc dim=2 A"); s += f; --- 2395,2399 ---- actual[1] = -1.0/2.0; actual[2] = 1.0/2.0; ! f = test_TDN_cyc_solve_dim(3, 1.0, 2.0, 1.0, actual, 32.0 * GSL_DBL_EPSILON); gsl_test(f, " solve_TDN_cyc dim=2 A"); s += f; *************** *** 2192,2195 **** --- 2520,2526 ---- gsl_ieee_env_setup (); + m11 = create_general_matrix(1,1); + m51 = create_general_matrix(5,1); + m35 = create_general_matrix(3,5); m53 = create_general_matrix(5,3); *************** *** 2221,2224 **** --- 2552,2562 ---- A44 = gsl_matrix_alloc(4,4); + inf5 = create_diagonal_matrix (inf5_data, 5); + gsl_matrix_set(inf5, 3, 3, GSL_POSINF); + + nan5 = create_diagonal_matrix (inf5_data, 5); + gsl_matrix_set(nan5, 3, 3, GSL_NAN); + + /* Matmult now obsolete */ #ifdef MATMULT *************** *** 2238,2252 **** gsl_test(test_QRPT_QRsolve(), "QRPT QR Solve"); gsl_test(test_SV_decomp(), "Singular Value Decomposition"); gsl_test(test_SV_solve(), "SVD Solve"); gsl_test(test_cholesky_decomp(),"Cholesky Decomposition"); gsl_test(test_cholesky_solve(), "Cholesky Solve"); gsl_test(test_HH_solve(), "Householder solve"); ! gsl_test(test_TD_solve(), "Tridiagonal symmetric solve"); ! gsl_test(test_TD_cyc_solve(), "Tridiagonal symmetric cyclic solve"); ! ! #ifdef NONSYM gsl_test(test_TDN_solve(), "Tridiagonal nonsymmetric solve"); gsl_test(test_TDN_cyc_solve(), "Tridiagonal nonsymmetric cyclic solve"); - #endif gsl_matrix_free(m35); --- 2576,2588 ---- gsl_test(test_QRPT_QRsolve(), "QRPT QR Solve"); gsl_test(test_SV_decomp(), "Singular Value Decomposition"); + gsl_test(test_SV_decomp_mod(), "Singular Value Decomposition (Mod)"); gsl_test(test_SV_solve(), "SVD Solve"); gsl_test(test_cholesky_decomp(),"Cholesky Decomposition"); gsl_test(test_cholesky_solve(), "Cholesky Solve"); gsl_test(test_HH_solve(), "Householder solve"); ! gsl_test(test_TDS_solve(), "Tridiagonal symmetric solve"); ! gsl_test(test_TDS_cyc_solve(), "Tridiagonal symmetric cyclic solve"); gsl_test(test_TDN_solve(), "Tridiagonal nonsymmetric solve"); gsl_test(test_TDN_cyc_solve(), "Tridiagonal nonsymmetric cyclic solve"); gsl_matrix_free(m35); diff -rc2P -x *.info -x *.info-* gsl-1.4/linalg/tridiag.c gsl-1.5/linalg/tridiag.c *** gsl-1.4/linalg/tridiag.c Fri Jul 25 15:18:12 2003 --- gsl-1.5/linalg/tridiag.c Sun Jun 20 18:41:17 2004 *************** *** 1,5 **** /* linalg/tridiag.c * ! * Copyright (C) 1996, 1997, 1998, 1999, 2000, 2002 Gerard Jungman, * Brian Gough, David Necas * --- 1,5 ---- /* linalg/tridiag.c * ! * Copyright (C) 1996, 1997, 1998, 1999, 2000, 2002, 2004 Gerard Jungman, * Brian Gough, David Necas * *************** *** 221,224 **** --- 221,230 ---- /* factor */ + if (N == 1) + { + x[0] = b[0] / diag[0]; + return GSL_SUCCESS; + } + alpha[0] = diag[0]; gamma[0] = offdiag[0] / alpha[0]; *************** *** 231,240 **** --- 237,250 ---- delta[i] = -delta[i - 1] * offdiag[o_stride * (i-1)] / alpha[i]; } + for (i = 0; i < N - 2; i++) { sum += alpha[i] * delta[i] * delta[i]; } + alpha[N - 2] = diag[d_stride * (N - 2)] - offdiag[o_stride * (N - 3)] * gamma[N - 3]; + gamma[N - 2] = (offdiag[o_stride * (N - 2)] - offdiag[o_stride * (N - 3)] * delta[N - 3]) / alpha[N - 2]; + alpha[N - 1] = diag[d_stride * (N - 1)] - sum - alpha[(N - 2)] * gamma[N - 2] * gamma[N - 2]; *************** *** 418,434 **** gsl_vector * solution) { ! if(diag->size != rhs->size || ! (offdiag->size != rhs->size && offdiag->size != rhs->size-1) || ! (solution->size != rhs->size) ! ) { ! return GSL_EBADLEN; ! } ! else { ! return solve_tridiag(diag->data, diag->stride, ! offdiag->data, offdiag->stride, ! rhs->data, rhs->stride, ! solution->data, solution->stride, ! diag->size); ! } } --- 428,451 ---- gsl_vector * solution) { ! if(diag->size != rhs->size) ! { ! GSL_ERROR ("size of diag must match rhs", GSL_EBADLEN); ! } ! else if (offdiag->size != rhs->size-1) ! { ! GSL_ERROR ("size of offdiag must match rhs-1", GSL_EBADLEN); ! } ! else if (solution->size != rhs->size) ! { ! GSL_ERROR ("size of solution must match rhs", GSL_EBADLEN); ! } ! else ! { ! return solve_tridiag(diag->data, diag->stride, ! offdiag->data, offdiag->stride, ! rhs->data, rhs->stride, ! solution->data, solution->stride, ! diag->size); ! } } *************** *** 441,458 **** gsl_vector * solution) { ! if (diag->size != rhs->size ! || (abovediag->size != rhs->size && abovediag->size != rhs->size-1) ! || (belowdiag->size != rhs->size && belowdiag->size != rhs->size-1) ! || (solution->size != rhs->size)) { ! return GSL_EBADLEN; ! } ! else { ! return solve_tridiag_nonsym(diag->data, diag->stride, ! abovediag->data, abovediag->stride, ! belowdiag->data, belowdiag->stride, ! rhs->data, rhs->stride, ! solution->data, solution->stride, ! diag->size); ! } } --- 458,486 ---- gsl_vector * solution) { ! if(diag->size != rhs->size) ! { ! GSL_ERROR ("size of diag must match rhs", GSL_EBADLEN); ! } ! else if (abovediag->size != rhs->size-1) ! { ! GSL_ERROR ("size of abovediag must match rhs-1", GSL_EBADLEN); ! } ! else if (belowdiag->size != rhs->size-1) ! { ! GSL_ERROR ("size of belowdiag must match rhs-1", GSL_EBADLEN); ! } ! else if (solution->size != rhs->size) ! { ! GSL_ERROR ("size of solution must match rhs", GSL_EBADLEN); ! } ! else ! { ! return solve_tridiag_nonsym(diag->data, diag->stride, ! abovediag->data, abovediag->stride, ! belowdiag->data, belowdiag->stride, ! rhs->data, rhs->stride, ! solution->data, solution->stride, ! diag->size); ! } } *************** *** 465,481 **** gsl_vector * solution) { ! if(diag->size != rhs->size || ! offdiag->size != rhs->size || ! solution->size != rhs->size ! ) { ! return GSL_EBADLEN; ! } ! else { ! return solve_cyc_tridiag(diag->data, diag->stride, ! offdiag->data, offdiag->stride, ! rhs->data, rhs->stride, ! solution->data, solution->stride, ! diag->size); ! } } --- 493,520 ---- gsl_vector * solution) { ! if(diag->size != rhs->size) ! { ! GSL_ERROR ("size of diag must match rhs", GSL_EBADLEN); ! } ! else if (offdiag->size != rhs->size) ! { ! GSL_ERROR ("size of offdiag must match rhs", GSL_EBADLEN); ! } ! else if (solution->size != rhs->size) ! { ! GSL_ERROR ("size of solution must match rhs", GSL_EBADLEN); ! } ! else if (diag->size < 3) ! { ! GSL_ERROR ("size of cyclic system must be 3 or more", GSL_EBADLEN); ! } ! else ! { ! return solve_cyc_tridiag(diag->data, diag->stride, ! offdiag->data, offdiag->stride, ! rhs->data, rhs->stride, ! solution->data, solution->stride, ! diag->size); ! } } *************** *** 488,504 **** gsl_vector * solution) { ! if (diag->size != rhs->size ! || abovediag->size != rhs->size ! || belowdiag->size != rhs->size ! || solution->size != rhs->size) { ! return GSL_EBADLEN; ! } ! else { ! return solve_cyc_tridiag_nonsym(diag->data, diag->stride, ! abovediag->data, abovediag->stride, ! belowdiag->data, belowdiag->stride, ! rhs->data, rhs->stride, ! solution->data, solution->stride, ! diag->size); ! } } --- 527,558 ---- gsl_vector * solution) { ! if(diag->size != rhs->size) ! { ! GSL_ERROR ("size of diag must match rhs", GSL_EBADLEN); ! } ! else if (abovediag->size != rhs->size) ! { ! GSL_ERROR ("size of abovediag must match rhs", GSL_EBADLEN); ! } ! else if (belowdiag->size != rhs->size) ! { ! GSL_ERROR ("size of belowdiag must match rhs", GSL_EBADLEN); ! } ! else if (solution->size != rhs->size) ! { ! GSL_ERROR ("size of solution must match rhs", GSL_EBADLEN); ! } ! else if (diag->size < 3) ! { ! GSL_ERROR ("size of cyclic system must be 3 or more", GSL_EBADLEN); ! } ! else ! { ! return solve_cyc_tridiag_nonsym(diag->data, diag->stride, ! abovediag->data, abovediag->stride, ! belowdiag->data, belowdiag->stride, ! rhs->data, rhs->stride, ! solution->data, solution->stride, ! diag->size); ! } } diff -rc2P -x *.info -x *.info-* gsl-1.4/matrix/gsl_matrix_char.h gsl-1.5/matrix/gsl_matrix_char.h *** gsl-1.4/matrix/gsl_matrix_char.h Fri Jul 25 15:18:21 2003 --- gsl-1.5/matrix/gsl_matrix_char.h Sun Jun 6 15:47:49 2004 *************** *** 241,245 **** /* inline functions if you are using GCC */ ! #if HAVE_INLINE extern inline char --- 241,245 ---- /* inline functions if you are using GCC */ ! #ifdef HAVE_INLINE extern inline char diff -rc2P -x *.info -x *.info-* gsl-1.4/matrix/gsl_matrix_complex_double.h gsl-1.5/matrix/gsl_matrix_complex_double.h *** gsl-1.4/matrix/gsl_matrix_complex_double.h Fri Jul 25 15:18:21 2003 --- gsl-1.5/matrix/gsl_matrix_complex_double.h Sun Jun 6 15:47:49 2004 *************** *** 229,233 **** int gsl_matrix_complex_set_col(gsl_matrix_complex * m, const size_t j, const gsl_vector_complex * v); ! #if HAVE_INLINE extern inline --- 229,233 ---- int gsl_matrix_complex_set_col(gsl_matrix_complex * m, const size_t j, const gsl_vector_complex * v); ! #ifdef HAVE_INLINE extern inline diff -rc2P -x *.info -x *.info-* gsl-1.4/matrix/gsl_matrix_complex_float.h gsl-1.5/matrix/gsl_matrix_complex_float.h *** gsl-1.4/matrix/gsl_matrix_complex_float.h Fri Jul 25 15:18:21 2003 --- gsl-1.5/matrix/gsl_matrix_complex_float.h Sun Jun 6 15:47:49 2004 *************** *** 229,233 **** int gsl_matrix_complex_float_set_col(gsl_matrix_complex_float * m, const size_t j, const gsl_vector_complex_float * v); ! #if HAVE_INLINE extern inline --- 229,233 ---- int gsl_matrix_complex_float_set_col(gsl_matrix_complex_float * m, const size_t j, const gsl_vector_complex_float * v); ! #ifdef HAVE_INLINE extern inline diff -rc2P -x *.info -x *.info-* gsl-1.4/matrix/gsl_matrix_complex_long_double.h gsl-1.5/matrix/gsl_matrix_complex_long_double.h *** gsl-1.4/matrix/gsl_matrix_complex_long_double.h Fri Jul 25 15:18:21 2003 --- gsl-1.5/matrix/gsl_matrix_complex_long_double.h Sun Jun 6 15:47:49 2004 *************** *** 229,233 **** int gsl_matrix_complex_long_double_set_col(gsl_matrix_complex_long_double * m, const size_t j, const gsl_vector_complex_long_double * v); ! #if HAVE_INLINE extern inline --- 229,233 ---- int gsl_matrix_complex_long_double_set_col(gsl_matrix_complex_long_double * m, const size_t j, const gsl_vector_complex_long_double * v); ! #ifdef HAVE_INLINE extern inline diff -rc2P -x *.info -x *.info-* gsl-1.4/matrix/gsl_matrix_double.h gsl-1.5/matrix/gsl_matrix_double.h *** gsl-1.4/matrix/gsl_matrix_double.h Fri Jul 25 15:18:21 2003 --- gsl-1.5/matrix/gsl_matrix_double.h Sun Jun 6 15:47:49 2004 *************** *** 241,245 **** /* inline functions if you are using GCC */ ! #if HAVE_INLINE extern inline double --- 241,245 ---- /* inline functions if you are using GCC */ ! #ifdef HAVE_INLINE extern inline double diff -rc2P -x *.info -x *.info-* gsl-1.4/matrix/gsl_matrix_float.h gsl-1.5/matrix/gsl_matrix_float.h *** gsl-1.4/matrix/gsl_matrix_float.h Fri Jul 25 15:18:21 2003 --- gsl-1.5/matrix/gsl_matrix_float.h Sun Jun 6 15:47:49 2004 *************** *** 241,245 **** /* inline functions if you are using GCC */ ! #if HAVE_INLINE extern inline float --- 241,245 ---- /* inline functions if you are using GCC */ ! #ifdef HAVE_INLINE extern inline float diff -rc2P -x *.info -x *.info-* gsl-1.4/matrix/gsl_matrix_int.h gsl-1.5/matrix/gsl_matrix_int.h *** gsl-1.4/matrix/gsl_matrix_int.h Fri Jul 25 15:18:21 2003 --- gsl-1.5/matrix/gsl_matrix_int.h Sun Jun 6 15:47:49 2004 *************** *** 241,245 **** /* inline functions if you are using GCC */ ! #if HAVE_INLINE extern inline int --- 241,245 ---- /* inline functions if you are using GCC */ ! #ifdef HAVE_INLINE extern inline int diff -rc2P -x *.info -x *.info-* gsl-1.4/matrix/gsl_matrix_long.h gsl-1.5/matrix/gsl_matrix_long.h *** gsl-1.4/matrix/gsl_matrix_long.h Fri Jul 25 15:18:21 2003 --- gsl-1.5/matrix/gsl_matrix_long.h Sun Jun 6 15:47:49 2004 *************** *** 241,245 **** /* inline functions if you are using GCC */ ! #if HAVE_INLINE extern inline long --- 241,245 ---- /* inline functions if you are using GCC */ ! #ifdef HAVE_INLINE extern inline long diff -rc2P -x *.info -x *.info-* gsl-1.4/matrix/gsl_matrix_long_double.h gsl-1.5/matrix/gsl_matrix_long_double.h *** gsl-1.4/matrix/gsl_matrix_long_double.h Fri Jul 25 15:18:21 2003 --- gsl-1.5/matrix/gsl_matrix_long_double.h Sun Jun 6 15:47:49 2004 *************** *** 241,245 **** /* inline functions if you are using GCC */ ! #if HAVE_INLINE extern inline long double --- 241,245 ---- /* inline functions if you are using GCC */ ! #ifdef HAVE_INLINE extern inline long double diff -rc2P -x *.info -x *.info-* gsl-1.4/matrix/gsl_matrix_short.h gsl-1.5/matrix/gsl_matrix_short.h *** gsl-1.4/matrix/gsl_matrix_short.h Fri Jul 25 15:18:21 2003 --- gsl-1.5/matrix/gsl_matrix_short.h Sun Jun 6 15:47:49 2004 *************** *** 241,245 **** /* inline functions if you are using GCC */ ! #if HAVE_INLINE extern inline short --- 241,245 ---- /* inline functions if you are using GCC */ ! #ifdef HAVE_INLINE extern inline short diff -rc2P -x *.info -x *.info-* gsl-1.4/matrix/gsl_matrix_uchar.h gsl-1.5/matrix/gsl_matrix_uchar.h *** gsl-1.4/matrix/gsl_matrix_uchar.h Fri Jul 25 15:18:21 2003 --- gsl-1.5/matrix/gsl_matrix_uchar.h Sun Jun 6 15:47:49 2004 *************** *** 241,245 **** /* inline functions if you are using GCC */ ! #if HAVE_INLINE extern inline unsigned char --- 241,245 ---- /* inline functions if you are using GCC */ ! #ifdef HAVE_INLINE extern inline unsigned char diff -rc2P -x *.info -x *.info-* gsl-1.4/matrix/gsl_matrix_uint.h gsl-1.5/matrix/gsl_matrix_uint.h *** gsl-1.4/matrix/gsl_matrix_uint.h Fri Jul 25 15:18:21 2003 --- gsl-1.5/matrix/gsl_matrix_uint.h Sun Jun 6 15:47:49 2004 *************** *** 241,245 **** /* inline functions if you are using GCC */ ! #if HAVE_INLINE extern inline unsigned int --- 241,245 ---- /* inline functions if you are using GCC */ ! #ifdef HAVE_INLINE extern inline unsigned int diff -rc2P -x *.info -x *.info-* gsl-1.4/matrix/gsl_matrix_ulong.h gsl-1.5/matrix/gsl_matrix_ulong.h *** gsl-1.4/matrix/gsl_matrix_ulong.h Fri Jul 25 15:18:21 2003 --- gsl-1.5/matrix/gsl_matrix_ulong.h Sun Jun 6 15:47:49 2004 *************** *** 241,245 **** /* inline functions if you are using GCC */ ! #if HAVE_INLINE extern inline unsigned long --- 241,245 ---- /* inline functions if you are using GCC */ ! #ifdef HAVE_INLINE extern inline unsigned long diff -rc2P -x *.info -x *.info-* gsl-1.4/matrix/gsl_matrix_ushort.h gsl-1.5/matrix/gsl_matrix_ushort.h *** gsl-1.4/matrix/gsl_matrix_ushort.h Fri Jul 25 15:18:21 2003 --- gsl-1.5/matrix/gsl_matrix_ushort.h Sun Jun 6 15:47:49 2004 *************** *** 241,245 **** /* inline functions if you are using GCC */ ! #if HAVE_INLINE extern inline unsigned short --- 241,245 ---- /* inline functions if you are using GCC */ ! #ifdef HAVE_INLINE extern inline unsigned short diff -rc2P -x *.info -x *.info-* gsl-1.4/min/ChangeLog gsl-1.5/min/ChangeLog *** gsl-1.4/min/ChangeLog Sun Apr 7 14:23:41 2002 --- gsl-1.5/min/ChangeLog Tue Apr 13 14:10:26 2004 *************** *** 1,2 **** --- 1,7 ---- + 2004-04-13 Brian Gough + + * brent.c (brent_iterate): corrected condition for setting to + +/-tolerance. + Sun Apr 7 15:22:11 2002 Brian Gough diff -rc2P -x *.info -x *.info-* gsl-1.4/min/brent.c gsl-1.5/min/brent.c *** gsl-1.4/min/brent.c Fri Jul 25 15:18:12 2003 --- gsl-1.5/min/brent.c Tue Apr 13 14:10:26 2004 *************** *** 133,137 **** u = z + d; ! if ((u - x_left) < t2 || (x_right - z) < t2) { d = (z < midpoint) ? tolerance : -tolerance ; --- 133,137 ---- u = z + d; ! if ((u - x_left) < t2 || (x_right - u) < t2) { d = (z < midpoint) ? tolerance : -tolerance ; diff -rc2P -x *.info -x *.info-* gsl-1.4/monte/ChangeLog gsl-1.5/monte/ChangeLog *** gsl-1.4/monte/ChangeLog Mon Apr 23 12:24:04 2001 --- gsl-1.5/monte/ChangeLog Sun Jun 6 15:47:10 2004 *************** *** 1,2 **** --- 1,7 ---- + 2004-06-02 Brian Gough + + * test_main.c: handle the case where sd==0 && error[i] !=0 more + carefully + Mon Apr 23 13:23:47 2001 Brian Gough diff -rc2P -x *.info -x *.info-* gsl-1.4/monte/test_main.c gsl-1.5/monte/test_main.c *** gsl-1.4/monte/test_main.c Fri Jul 25 15:18:12 2003 --- gsl-1.5/monte/test_main.c Sun Jun 6 15:47:10 2004 *************** *** 49,60 **** sd = sqrt(sumd2 / (TRIALS-1.0)) ; ! if (sd < TRIALS * GSL_DBL_EPSILON * mean) { ! sd = 0 ; } for (i = 0; i < TRIALS; i++) { ! gsl_test_factor (error[i], sd, 5.0, NAME ", %s, abserr[%d] vs sd", I->description, i); --- 49,64 ---- sd = sqrt(sumd2 / (TRIALS-1.0)) ; ! if (sd < TRIALS * GSL_DBL_EPSILON * fabs (mean)) { ! sd = 0; } for (i = 0; i < TRIALS; i++) { ! if (sd == 0 && fabs(error[i]) < GSL_DBL_EPSILON * fabs(result[i])) ! { ! error[i] = 0.0; ! } ! gsl_test_factor (error[i], sd, 5.0, NAME ", %s, abserr[%d] vs sd", I->description, i); diff -rc2P -x *.info -x *.info-* gsl-1.4/multifit/ChangeLog gsl-1.5/multifit/ChangeLog *** gsl-1.4/multifit/ChangeLog Sat Mar 22 17:30:45 2003 --- gsl-1.5/multifit/ChangeLog Fri Jun 18 15:17:18 2004 *************** *** 1,2 **** --- 1,10 ---- + 2004-06-14 Brian Gough + + * lmiterate.c (iterate): handle case where fnorm = 0 to avoid + division by zero + + * covar.c (gsl_multifit_covar): change tolerance test to match + original code, and handle case where tolr = 0 + 2003-03-21 Brian Gough diff -rc2P -x *.info -x *.info-* gsl-1.4/multifit/covar.c gsl-1.5/multifit/covar.c *** gsl-1.4/multifit/covar.c Fri Jul 25 15:18:12 2003 --- gsl-1.5/multifit/covar.c Sun Jun 20 18:41:17 2004 *************** *** 1,5 **** /* multifit/covar.c * ! * Copyright (C) 1996, 1997, 1998, 1999, 2000 Brian Gough * * This program is free software; you can redistribute it and/or modify --- 1,5 ---- /* multifit/covar.c * ! * Copyright (C) 1996, 1997, 1998, 1999, 2000, 2004 Brian Gough * * This program is free software; you can redistribute it and/or modify *************** *** 77,81 **** double rkk = gsl_matrix_get(r, k, k); ! if (fabs(rkk) < tolr) { break; --- 77,81 ---- double rkk = gsl_matrix_get(r, k, k); ! if (fabs(rkk) <= tolr) { break; diff -rc2P -x *.info -x *.info-* gsl-1.4/multifit/lmiterate.c gsl-1.5/multifit/lmiterate.c *** gsl-1.4/multifit/lmiterate.c Fri Jul 25 15:18:12 2003 --- gsl-1.5/multifit/lmiterate.c Fri Jun 18 15:17:18 2004 *************** *** 27,30 **** --- 27,35 ---- double p1 = 0.1, p25 = 0.25, p5 = 0.5, p75 = 0.75, p0001 = 0.0001; + if (state->fnorm == 0.0) + { + return GSL_SUCCESS; + } + /* Compute qtf = Q^T f */ *************** *** 47,52 **** iter++ ; ! ! lmpar (r, perm, qtf, diag, state->delta, &(state->par), newton, gradient, sdiag, dx, w); /* Take a trial step */ --- 52,61 ---- iter++ ; ! ! { ! int status = lmpar (r, perm, qtf, diag, state->delta, &(state->par), newton, gradient, sdiag, dx, w); ! if (status) ! return status; ! } /* Take a trial step */ diff -rc2P -x *.info -x *.info-* gsl-1.4/ntuple/ChangeLog gsl-1.5/ntuple/ChangeLog *** gsl-1.4/ntuple/ChangeLog Thu Jan 1 00:00:00 1970 --- gsl-1.5/ntuple/ChangeLog Sun Jun 6 15:46:04 2004 *************** *** 0 **** --- 1,5 ---- + 2004-05-30 Brian Gough + + * ntuple/test.c (main): choose ratio 1/(i+1.5) to avoid values + exactly on test cutoff x=0.1 + diff -rc2P -x *.info -x *.info-* gsl-1.4/ntuple/Makefile.in gsl-1.5/ntuple/Makefile.in *** gsl-1.4/ntuple/Makefile.in Thu Aug 14 12:29:10 2003 --- gsl-1.5/ntuple/Makefile.in Thu Jun 24 10:49:50 2004 *************** *** 196,200 **** HEADERS = $(pkginclude_HEADERS) ! DIST_COMMON = $(pkginclude_HEADERS) Makefile.am Makefile.in SOURCES = $(libgslntuple_la_SOURCES) $(test_SOURCES) --- 196,200 ---- HEADERS = $(pkginclude_HEADERS) ! DIST_COMMON = $(pkginclude_HEADERS) ChangeLog Makefile.am Makefile.in SOURCES = $(libgslntuple_la_SOURCES) $(test_SOURCES) diff -rc2P -x *.info -x *.info-* gsl-1.4/ntuple/test.c gsl-1.5/ntuple/test.c *** gsl-1.4/ntuple/test.c Sat Jul 26 17:31:05 2003 --- gsl-1.5/ntuple/test.c Sun Jun 6 15:46:04 2004 *************** *** 46,50 **** for (i = 0; i < 1000; i++) { ! double xi = 1.0 / (i + 1.0); double yi = xi * xi ; double zi = xi * xi * xi; --- 46,50 ---- for (i = 0; i < 1000; i++) { ! double xi = 1.0 / (i + 1.5); double yi = xi * xi ; double zi = xi * xi * xi; diff -rc2P -x *.info -x *.info-* gsl-1.4/ode-initval/ChangeLog gsl-1.5/ode-initval/ChangeLog *** gsl-1.4/ode-initval/ChangeLog Sat Aug 3 18:03:04 2002 --- gsl-1.5/ode-initval/ChangeLog Sun Jun 6 15:46:17 2004 *************** *** 1,2 **** --- 1,7 ---- + 2004-05-28 Brian Gough + + * bsimp.c (bsimp_apply): fix prototype of function to match + definition in typedef by removing const on double args. + Sat Aug 3 19:02:37 2002 Brian Gough diff -rc2P -x *.info -x *.info-* gsl-1.4/ode-initval/TODO gsl-1.5/ode-initval/TODO *** gsl-1.4/ode-initval/TODO Sat Feb 23 17:40:50 2002 --- gsl-1.5/ode-initval/TODO Thu May 27 12:03:50 2004 *************** *** 12,13 **** --- 12,16 ---- RKSUITE, etc + * Roundoff error needs to be taken into account to prevent the + step-size being made arbitrarily small + diff -rc2P -x *.info -x *.info-* gsl-1.4/ode-initval/bsimp.c gsl-1.5/ode-initval/bsimp.c *** gsl-1.4/ode-initval/bsimp.c Fri Jul 25 15:18:13 2003 --- gsl-1.5/ode-initval/bsimp.c Sun Jun 20 18:41:17 2004 *************** *** 1,5 **** /* ode-initval/bsimp.c * ! * Copyright (C) 1996, 1997, 1998, 1999, 2000 Gerard Jungman * * This program is free software; you can redistribute it and/or modify --- 1,5 ---- /* ode-initval/bsimp.c * ! * Copyright (C) 1996, 1997, 1998, 1999, 2000, 2004 Gerard Jungman * * This program is free software; you can redistribute it and/or modify *************** *** 376,381 **** bsimp_apply (void *vstate, size_t dim, ! const double t, ! const double h, double y[], double yerr[], --- 376,381 ---- bsimp_apply (void *vstate, size_t dim, ! double t, ! double h, double y[], double yerr[], diff -rc2P -x *.info -x *.info-* gsl-1.4/ode-initval/rkf45.c gsl-1.5/ode-initval/rkf45.c *** gsl-1.4/ode-initval/rkf45.c Fri Jul 25 15:18:13 2003 --- gsl-1.5/ode-initval/rkf45.c Sun Jun 20 18:41:17 2004 *************** *** 1,5 **** /* ode-initval/rkf45.c * ! * Copyright (C) 2001 Brian Gough * * This program is free software; you can redistribute it and/or modify --- 1,5 ---- /* ode-initval/rkf45.c * ! * Copyright (C) 2001, 2004 Brian Gough * * This program is free software; you can redistribute it and/or modify *************** *** 263,269 **** /* difference between 4th and 5th order */ for (i = 0; i < dim; i++) ! yerr[i] = ! h * (ec[1] * k1[i] + ec[3] * k3[i] + ec[4] * k4[i] + ec[5] * k5[i] + ! ec[6] * k6[i]); return status; --- 263,270 ---- /* difference between 4th and 5th order */ for (i = 0; i < dim; i++) ! yerr[i] = ! h * (ec[1] * k1[i] + ec[3] * k3[i] + ec[4] * k4[i] + ec[5] * k5[i] + ! ec[6] * k6[i]); ! return status; diff -rc2P -x *.info -x *.info-* gsl-1.4/ode-initval/test.c gsl-1.5/ode-initval/test.c *** gsl-1.4/ode-initval/test.c Fri Jul 25 15:18:13 2003 --- gsl-1.5/ode-initval/test.c Sun Jun 20 18:41:17 2004 *************** *** 1,5 **** /* ode-initval/test_odeiv.c * ! * Copyright (C) 1996, 1997, 1998, 1999, 2000 Gerard Jungman * * This program is free software; you can redistribute it and/or modify --- 1,5 ---- /* ode-initval/test_odeiv.c * ! * Copyright (C) 1996, 1997, 1998, 1999, 2000, 2004 Gerard Jungman * * This program is free software; you can redistribute it and/or modify *************** *** 416,419 **** --- 416,472 ---- void + test_stepper_err (const gsl_odeiv_step_type * T, double h, double base_prec) + { + int s = 0; + double y[2]; + double yerr[2]; + double t; + double del; + double delmax = 0.0, errmax = 0.0; + int count = 0; + + gsl_odeiv_step *stepper = gsl_odeiv_step_alloc (T, 2); + + y[0] = 1.0; + y[1] = 0.0; + + for (t = 0.0; t < M_PI; t += h) + { + /* int stat; */ + double y1_t = y[1]; + /* double sin_th = sin(t+h); */ + /* next line gives dy_exp = sin(t+h) - sin(t) */ + double dy_exp = cos(t)*sin(h)-2*sin(t)*pow(sin(h/2),2.0); + double dy_t; + gsl_odeiv_step_apply (stepper, t, h, y, yerr, 0, 0, &rhs_func_sin); + dy_t = y[1] - y1_t; + del = fabs (dy_t - dy_exp); + + if (t > 0.1 && t < 0.2) { + int stat = (del > 10.0*fabs(yerr[1]) + GSL_DBL_EPSILON*fabs(y[1])); + + if (stat != 0) + { + delmax = del; + errmax = fabs(yerr[1]); + + printf ("SIN(%.18e) %.5e %.5e %e %e %e\n", t + h, y[1], + dy_t, dy_exp, del, yerr[1]); + + s += stat; + break; + } + } + count++; + } + + gsl_test (s, "%s, sine [0,pi], accurary of estimate error = %g vs %g", + gsl_odeiv_step_name (stepper), delmax, errmax); + + gsl_odeiv_step_free (stepper); + } + + + void test_evolve_system_flat (gsl_odeiv_step * step, const gsl_odeiv_system * sys, *************** *** 593,596 **** --- 646,655 ---- gsl_ieee_env_setup (); + + for (i = 0; p[i].type != 0; i++) + { + test_stepper_err (p[i].type, p[i].h, GSL_SQRT_DBL_EPSILON); + } + for (i = 0; p[i].type != 0; i++) diff -rc2P -x *.info -x *.info-* gsl-1.4/permutation/gsl_permutation.h gsl-1.5/permutation/gsl_permutation.h *** gsl-1.4/permutation/gsl_permutation.h Fri Jul 25 15:18:21 2003 --- gsl-1.5/permutation/gsl_permutation.h Sun Jun 20 18:41:17 2004 *************** *** 1,5 **** /* permutation/gsl_permutation.h * ! * Copyright (C) 1996, 1997, 1998, 1999, 2000 Brian Gough * * This program is free software; you can redistribute it and/or modify --- 1,5 ---- /* permutation/gsl_permutation.h * ! * Copyright (C) 1996, 1997, 1998, 1999, 2000, 2004 Brian Gough * * This program is free software; you can redistribute it and/or modify *************** *** 77,81 **** size_t gsl_permutation_canonical_cycles (const gsl_permutation * q); ! #if HAVE_INLINE extern inline --- 77,81 ---- size_t gsl_permutation_canonical_cycles (const gsl_permutation * q); ! #ifdef HAVE_INLINE extern inline diff -rc2P -x *.info -x *.info-* gsl-1.4/poly/gsl_poly.h gsl-1.5/poly/gsl_poly.h *** gsl-1.4/poly/gsl_poly.h Fri Jul 25 15:18:22 2003 --- gsl-1.5/poly/gsl_poly.h Sun Jun 20 18:41:17 2004 *************** *** 1,5 **** /* poly/gsl_poly.h * ! * Copyright (C) 1996, 1997, 1998, 1999, 2000 Brian Gough * * This program is free software; you can redistribute it and/or modify --- 1,5 ---- /* poly/gsl_poly.h * ! * Copyright (C) 1996, 1997, 1998, 1999, 2000, 2004 Brian Gough * * This program is free software; you can redistribute it and/or modify *************** *** 46,50 **** ! #if HAVE_INLINE extern inline double gsl_poly_eval(const double c[], const int len, const double x) --- 46,50 ---- ! #ifdef HAVE_INLINE extern inline double gsl_poly_eval(const double c[], const int len, const double x) *************** *** 66,70 **** gsl_poly_dd_eval (const double dd[], const double xa[], const size_t size, const double x); ! #if HAVE_INLINE extern inline double gsl_poly_dd_eval(const double dd[], const double xa[], const size_t size, const double x) --- 66,70 ---- gsl_poly_dd_eval (const double dd[], const double xa[], const size_t size, const double x); ! #ifdef HAVE_INLINE extern inline double gsl_poly_dd_eval(const double dd[], const double xa[], const size_t size, const double x) diff -rc2P -x *.info -x *.info-* gsl-1.4/qrng/ChangeLog gsl-1.5/qrng/ChangeLog *** gsl-1.4/qrng/ChangeLog Sat Nov 16 19:06:01 2002 --- gsl-1.5/qrng/ChangeLog Thu May 27 12:05:35 2004 *************** *** 1,2 **** --- 1,6 ---- + 2004-05-26 Brian Gough + + * test.c: added for exit() + 2002-11-16 Brian Gough diff -rc2P -x *.info -x *.info-* gsl-1.4/qrng/gsl_qrng.h gsl-1.5/qrng/gsl_qrng.h *** gsl-1.4/qrng/gsl_qrng.h Fri Jul 25 15:18:22 2003 --- gsl-1.5/qrng/gsl_qrng.h Sun Jun 6 15:47:49 2004 *************** *** 95,99 **** ! #if HAVE_INLINE extern inline int gsl_qrng_get (const gsl_qrng * r, double x[]); extern inline int gsl_qrng_get (const gsl_qrng * r, double x[]) --- 95,99 ---- ! #ifdef HAVE_INLINE extern inline int gsl_qrng_get (const gsl_qrng * r, double x[]); extern inline int gsl_qrng_get (const gsl_qrng * r, double x[]) diff -rc2P -x *.info -x *.info-* gsl-1.4/qrng/test.c gsl-1.5/qrng/test.c *** gsl-1.4/qrng/test.c Fri Jul 25 15:18:13 2003 --- gsl-1.5/qrng/test.c Thu May 27 12:05:35 2004 *************** *** 2,5 **** --- 2,6 ---- */ #include + #include #include diff -rc2P -x *.info -x *.info-* gsl-1.4/randist/ChangeLog gsl-1.5/randist/ChangeLog *** gsl-1.4/randist/ChangeLog Fri Jul 25 10:36:08 2003 --- gsl-1.5/randist/ChangeLog Sun Jun 6 15:46:43 2004 *************** *** 1,2 **** --- 1,11 ---- + 2004-05-30 Brian Gough + + * landau.c (gsl_ran_landau): fix potential array bounds overflow + by extending array. + + 2004-04-22 Brian Gough + + * sphere.c (gsl_ran_dir_3d): removed unnecessary check for s==0.0 + 2003-07-25 Brian Gough diff -rc2P -x *.info -x *.info-* gsl-1.4/randist/landau.c gsl-1.5/randist/landau.c *** gsl-1.4/randist/landau.c Fri Jul 25 15:18:13 2003 --- gsl-1.5/randist/landau.c Sun Jun 20 18:41:17 2004 *************** *** 1,5 **** /* randist/landau.c * ! * Copyright (C) 2001 David Morrison * * This program is free software; you can redistribute it and/or modify --- 1,5 ---- /* randist/landau.c * ! * Copyright (C) 2001, 2004 David Morrison * * This program is free software; you can redistribute it and/or modify *************** *** 317,322 **** gsl_ran_landau(const gsl_rng * r) { ! static double F[982] = { 00.000000, 00.000000, 00.000000, 00.000000, 00.000000, -2.244733, -2.204365, -2.168163, -2.135219, -2.104898, --- 317,324 ---- gsl_ran_landau(const gsl_rng * r) { ! static double F[983] = { + 0.0000000, /* Add empty element [0] to account for difference + between C and Fortran convention for lower bound. */ 00.000000, 00.000000, 00.000000, 00.000000, 00.000000, -2.244733, -2.204365, -2.168163, -2.135219, -2.104898, *************** *** 518,531 **** }; double X, U, V, RANLAN; ! int I, i; X = gsl_rng_uniform_pos(r); U = 1000.0 * X; ! i = U; ! U = U - i; ! ! /* Account for difference between C and Fortran convention for lower ! bound. */ ! I = i - 1; if (I >= 70 && I <= 800) --- 520,529 ---- }; double X, U, V, RANLAN; ! int I; X = gsl_rng_uniform_pos(r); U = 1000.0 * X; ! I = U; ! U = U - I; if (I >= 70 && I <= 800) *************** *** 535,540 **** else if (I >= 7 && I <= 980) { ! RANLAN = F[I] + U * (F[I + 1] - F[I] - ! 0.25 * (1 - U) * (F[I + 2] - F[I + 1] - F[I] + F[I - 1])); } else if (I < 7) --- 533,539 ---- else if (I >= 7 && I <= 980) { ! RANLAN = F[I] ! + U * (F[I + 1] - F[I] ! - 0.25 * (1 - U) * (F[I + 2] - F[I + 1] - F[I] + F[I - 1])); } else if (I < 7) diff -rc2P -x *.info -x *.info-* gsl-1.4/randist/sphere.c gsl-1.5/randist/sphere.c *** gsl-1.4/randist/sphere.c Fri Jul 25 15:18:14 2003 --- gsl-1.5/randist/sphere.c Sun Jun 20 18:41:17 2004 *************** *** 1,5 **** /* randist/sphere.c * ! * Copyright (C) 1996, 1997, 1998, 1999, 2000 James Theiler, Brian Gough * * This program is free software; you can redistribute it and/or modify --- 1,5 ---- /* randist/sphere.c * ! * Copyright (C) 1996, 1997, 1998, 1999, 2000, 2004 James Theiler, Brian Gough * * This program is free software; you can redistribute it and/or modify *************** *** 82,86 **** s = (*x) * (*x) + (*y) * (*y); } ! while (s > 1.0 || s == 0.0); *z = -1 + 2 * s; /* z uniformly distributed from -1 to 1 */ --- 82,86 ---- s = (*x) * (*x) + (*y) * (*y); } ! while (s > 1.0); *z = -1 + 2 * s; /* z uniformly distributed from -1 to 1 */ diff -rc2P -x *.info -x *.info-* gsl-1.4/rng/TODO gsl-1.5/rng/TODO *** gsl-1.4/rng/TODO Wed Jul 16 15:21:51 2003 --- gsl-1.5/rng/TODO Tue Nov 25 19:30:17 2003 *************** *** 30,35 **** GSFR4 generator is particularly likely to benefit from this procedure. - * Add read/write functions for saving the state - * Add SWNS generator Phys.Rev.E 50 (2) p. 1607-1615 (1994), Phys.Rev.E 60 (6), p.7626-7628 (1999) --- 30,33 ---- diff -rc2P -x *.info -x *.info-* gsl-1.4/rng/gsl_rng.h gsl-1.5/rng/gsl_rng.h *** gsl-1.4/rng/gsl_rng.h Fri Jul 25 15:18:22 2003 --- gsl-1.5/rng/gsl_rng.h Sun Jun 20 18:41:17 2004 *************** *** 1,5 **** /* rng/gsl_rng.h * ! * Copyright (C) 1996, 1997, 1998, 1999, 2000 James Theiler, Brian Gough * * This program is free software; you can redistribute it and/or modify --- 1,5 ---- /* rng/gsl_rng.h * ! * Copyright (C) 1996, 1997, 1998, 1999, 2000, 2004 James Theiler, Brian Gough * * This program is free software; you can redistribute it and/or modify *************** *** 153,157 **** ! #if HAVE_INLINE extern inline unsigned long int gsl_rng_get (const gsl_rng * r); --- 153,157 ---- ! #ifdef HAVE_INLINE extern inline unsigned long int gsl_rng_get (const gsl_rng * r); diff -rc2P -x *.info -x *.info-* gsl-1.4/specfunc/ChangeLog gsl-1.5/specfunc/ChangeLog *** gsl-1.4/specfunc/ChangeLog Mon Aug 11 09:09:29 2003 --- gsl-1.5/specfunc/ChangeLog Sun Jun 6 15:47:36 2004 *************** *** 1,2 **** --- 1,10 ---- + 2004-06-03 Brian Gough + + * psi.c (psi_n_xg0): added missing return type int + + 2003-11-30 Brian Gough + + * gsl_sf_log.h: added missing headers for inline functions + 2003-08-11 Brian Gough diff -rc2P -x *.info -x *.info-* gsl-1.4/specfunc/TODO gsl-1.5/specfunc/TODO *** gsl-1.4/specfunc/TODO Tue Aug 12 11:06:15 2003 --- gsl-1.5/specfunc/TODO Sun Oct 12 20:12:08 2003 *************** *** 579,580 **** --- 579,673 ---- * Weierstrass elliptic functions. + + ---------------------------------------------------------------------- + + Improve accuracy of ERF + + NNTP-Posting-Date: Thu, 11 Sep 2003 07:41:42 -0500 + From: "George Marsaglia" + Newsgroups: comp.lang.c + References: + Subject: Re: When (32-bit) double precision isn't precise enough + Date: Thu, 11 Sep 2003 08:41:40 -0400 + X-Priority: 3 + X-MSMail-Priority: Normal + X-Newsreader: Microsoft Outlook Express 6.00.2800.1158 + X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2800.1165 + Message-ID: + Lines: 265 + NNTP-Posting-Host: 68.35.247.101 + X-Trace: sv3-4YY+jkhhdeQvGKAREa99vDBFHJoKVqVBdUTSuRxA71OwlgxX0uUFnKYs54FlnUs0Xb6BRngKigkd75d!tKin8l8rAQKylaP+4vzTI3AO33bivOw1lKDZUUtXe4lUMW1qn+goUp/Pfksstg== + X-Complaints-To: abuse@comcast.net + X-DMCA-Complaints-To: dmca@comcast.net + X-Abuse-and-DMCA-Info: Please be sure to forward a copy of ALL headers + X-Abuse-and-DMCA-Info: Otherwise we will be unable to process your complaint properly + X-Postfilter: 1.1 + + + Why most of those who deal with the normal integral in probability + theory are still stuck with the historical baggage of the error function + is a puzzle to me, as is the poor quality of the results one gets from + standard library implementations of erf(). (One of the most common + is based on ALGORITHM AS66, APPL. STATIST.(1973) Vol.22, .424 by HILL, + which gives only 6-8 digit accuracy). + + Here is a listing of my method: + + /* + Marsaglia Complementary Normal Distribution Function + cPhi(x) = integral from x to infinity of exp(-.5*t^2)/sqrt(2*pi), x<15 + 15-digit accuracy for x<15, returns 0 for x>15. + #include + */ + + double cPhi(double x){ + long double v[]={0.,.65567954241879847154L, + .42136922928805447322L,.30459029871010329573L, + .23665238291356067062L,.19280810471531576488L, + .16237766089686746182L,.14010418345305024160L, + .12313196325793229628L,.10978728257830829123L, + .99028596471731921395e-1L,.90175675501064682280e-1L, + .82766286501369177252e-1L,.76475761016248502993e-1L, + .71069580538852107091e-1L,.66374235823250173591e-1L}; + long double h,a,b,z,t,sum,pwr; + int i,j; + if(x>15.) return (0.); + if(x<-15.) return (1.); + j=fabs(x)+1.; + z=j; + h=fabs(x)-z; + a=v[j]; + b=z*a-1.; + pwr=1.; + sum=a+h*b; + for(i=2;i<60;i+=2){ + a=(a+z*b)/i; + b=(b+z*a)/(i+1); + pwr=pwr*h*h; + t=sum; + sum=sum+pwr*(a+h*b); + if(sum==t) break; } + sum=sum*exp(-.5*x*x-.91893853320467274178L); + if(x<0.) sum=1.-sum; + return ((double) sum); + } + */ + end of listing + */ + + The method is based on defining phi(x)=exp(-x^2)/sqrt(2pi) and + + R(x)=cPhi(x)/phi(x). + + The function R(x) is well-behaved and terms of its Taylor + series are readily obtained by a two-term recursion. With an accurate + representation of R(x) at ,say, x=0,1,2,...,15, a simple evaluation + of the Taylor series at intermediate points provides up to + 15 digits of accuracy. + An article describing the method will be in the new version of + my Diehard CDROM. A new version of the Diehard tests + of randomness (but not yet the new DVDROM) is at + http://www.csis.hku.hk/~diehard/ + + + George Marsaglia \ No newline at end of file diff -rc2P -x *.info -x *.info-* gsl-1.4/specfunc/gsl_sf_exp.h gsl-1.5/specfunc/gsl_sf_exp.h *** gsl-1.4/specfunc/gsl_sf_exp.h Fri Jul 25 15:18:22 2003 --- gsl-1.5/specfunc/gsl_sf_exp.h Sun Jun 20 18:41:17 2004 *************** *** 1,5 **** /* specfunc/gsl_sf_exp.h * ! * Copyright (C) 1996, 1997, 1998, 1999, 2000 Gerard Jungman * * This program is free software; you can redistribute it and/or modify --- 1,5 ---- /* specfunc/gsl_sf_exp.h * ! * Copyright (C) 1996, 1997, 1998, 1999, 2000, 2004 Gerard Jungman * * This program is free software; you can redistribute it and/or modify *************** *** 131,135 **** ! #if HAVE_INLINE #include #include --- 131,135 ---- ! #ifdef HAVE_INLINE #include #include diff -rc2P -x *.info -x *.info-* gsl-1.4/specfunc/gsl_sf_legendre.h gsl-1.5/specfunc/gsl_sf_legendre.h *** gsl-1.4/specfunc/gsl_sf_legendre.h Fri Jul 25 15:18:22 2003 --- gsl-1.5/specfunc/gsl_sf_legendre.h Sun Jun 20 18:41:17 2004 *************** *** 1,5 **** /* specfunc/gsl_sf_legendre.h * ! * Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002 Gerard Jungman * * This program is free software; you can redistribute it and/or modify --- 1,5 ---- /* specfunc/gsl_sf_legendre.h * ! * Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2004 Gerard Jungman * * This program is free software; you can redistribute it and/or modify *************** *** 312,316 **** ! #if HAVE_INLINE extern inline int --- 312,316 ---- ! #ifdef HAVE_INLINE extern inline int diff -rc2P -x *.info -x *.info-* gsl-1.4/specfunc/gsl_sf_log.h gsl-1.5/specfunc/gsl_sf_log.h *** gsl-1.4/specfunc/gsl_sf_log.h Fri Jul 25 15:18:22 2003 --- gsl-1.5/specfunc/gsl_sf_log.h Sun Jun 20 18:41:17 2004 *************** *** 1,5 **** /* specfunc/gsl_sf_log.h * ! * Copyright (C) 1996, 1997, 1998, 1999, 2000 Gerard Jungman * * This program is free software; you can redistribute it and/or modify --- 1,5 ---- /* specfunc/gsl_sf_log.h * ! * Copyright (C) 1996, 1997, 1998, 1999, 2000, 2004 Gerard Jungman * * This program is free software; you can redistribute it and/or modify *************** *** 79,83 **** ! #if HAVE_INLINE extern inline int --- 79,86 ---- ! #ifdef HAVE_INLINE ! #include ! #include ! extern inline int diff -rc2P -x *.info -x *.info-* gsl-1.4/specfunc/gsl_sf_psi.h gsl-1.5/specfunc/gsl_sf_psi.h *** gsl-1.4/specfunc/gsl_sf_psi.h Fri Jul 25 15:18:22 2003 --- gsl-1.5/specfunc/gsl_sf_psi.h Sun Jun 20 18:41:17 2004 *************** *** 1,5 **** /* specfunc/gsl_sf_psi.h * ! * Copyright (C) 1996, 1997, 1998, 1999, 2000 Gerard Jungman * * This program is free software; you can redistribute it and/or modify --- 1,5 ---- /* specfunc/gsl_sf_psi.h * ! * Copyright (C) 1996, 1997, 1998, 1999, 2000, 2004 Gerard Jungman * * This program is free software; you can redistribute it and/or modify *************** *** 44,48 **** ! /* Di-Gamma Function psi(n) * * n > 0 --- 44,48 ---- ! /* Di-Gamma Function psi(n) = psi(0,n) * * n > 0 *************** *** 50,63 **** */ int gsl_sf_psi_int_e(const int n, gsl_sf_result * result); ! double gsl_sf_psi_int(const int n); ! /* Di-Gamma Function psi(x) * ! * x != 0.0 * exceptions: GSL_EDOM, GSL_ELOSS */ int gsl_sf_psi_e(const double x, gsl_sf_result * result); ! double gsl_sf_psi(const double x); --- 50,63 ---- */ int gsl_sf_psi_int_e(const int n, gsl_sf_result * result); ! double gsl_sf_psi_int(const int n); ! /* Di-Gamma Function psi(x) = psi(0, x) * ! * x != 0.0, -1.0, -2.0, ... * exceptions: GSL_EDOM, GSL_ELOSS */ int gsl_sf_psi_e(const double x, gsl_sf_result * result); ! double gsl_sf_psi(const double x); *************** *** 67,71 **** */ int gsl_sf_psi_1piy_e(const double y, gsl_sf_result * result); ! double gsl_sf_psi_1piy(const double y); --- 67,71 ---- */ int gsl_sf_psi_1piy_e(const double y, gsl_sf_result * result); ! double gsl_sf_psi_1piy(const double y); *************** *** 76,80 **** */ int gsl_sf_psi_1_int_e(const int n, gsl_sf_result * result); ! double gsl_sf_psi_1_int(const int n); --- 76,89 ---- */ int gsl_sf_psi_1_int_e(const int n, gsl_sf_result * result); ! double gsl_sf_psi_1_int(const int n); ! ! ! /* Tri-Gamma Function psi^(1)(x) ! * ! * x != 0.0, -1.0, -2.0, ... ! * exceptions: GSL_EDOM, GSL_ELOSS ! */ ! int gsl_sf_psi_1_e(const double x, gsl_sf_result * result); ! double gsl_sf_psi_1(const double x); *************** *** 85,89 **** */ int gsl_sf_psi_n_e(const int n, const double x, gsl_sf_result * result); ! double gsl_sf_psi_n(const int n, const double x); --- 94,98 ---- */ int gsl_sf_psi_n_e(const int n, const double x, gsl_sf_result * result); ! double gsl_sf_psi_n(const int n, const double x); diff -rc2P -x *.info -x *.info-* gsl-1.4/specfunc/gsl_sf_zeta.h gsl-1.5/specfunc/gsl_sf_zeta.h *** gsl-1.4/specfunc/gsl_sf_zeta.h Fri Jul 25 15:18:22 2003 --- gsl-1.5/specfunc/gsl_sf_zeta.h Sun Jun 20 18:41:17 2004 *************** *** 1,5 **** /* specfunc/gsl_sf_zeta.h * ! * Copyright (C) 1996, 1997, 1998, 1999, 2000 Gerard Jungman * * This program is free software; you can redistribute it and/or modify --- 1,5 ---- /* specfunc/gsl_sf_zeta.h * ! * Copyright (C) 1996, 1997, 1998, 1999, 2000, 2004 Gerard Jungman * * This program is free software; you can redistribute it and/or modify *************** *** 56,59 **** --- 56,81 ---- int gsl_sf_zeta_e(const double s, gsl_sf_result * result); double gsl_sf_zeta(const double s); + + + /* Riemann Zeta Function minus 1 + * useful for evaluating the fractional part + * of Riemann zeta for large argument + * + * s != 1.0 + * exceptions: GSL_EDOM, GSL_EOVRFLW + */ + int gsl_sf_zetam1_e(const double s, gsl_sf_result * result); + double gsl_sf_zetam1(const double s); + + + /* Riemann Zeta Function minus 1 for integer arg + * useful for evaluating the fractional part + * of Riemann zeta for large argument + * + * s != 1.0 + * exceptions: GSL_EDOM, GSL_EOVRFLW + */ + int gsl_sf_zetam1_int_e(const int s, gsl_sf_result * result); + double gsl_sf_zetam1_int(const int s); diff -rc2P -x *.info -x *.info-* gsl-1.4/specfunc/hyperg_2F1.c gsl-1.5/specfunc/hyperg_2F1.c *** gsl-1.4/specfunc/hyperg_2F1.c Fri Jul 25 15:18:15 2003 --- gsl-1.5/specfunc/hyperg_2F1.c Sun Jun 20 18:41:17 2004 *************** *** 1,5 **** /* specfunc/hyperg_2F1.c * ! * Copyright (C) 1996, 1997, 1998, 1999, 2000 Gerard Jungman * * This program is free software; you can redistribute it and/or modify --- 1,5 ---- /* specfunc/hyperg_2F1.c * ! * Copyright (C) 1996, 1997, 1998, 1999, 2000, 2004 Gerard Jungman * * This program is free software; you can redistribute it and/or modify *************** *** 422,427 **** stat_e = gsl_sf_exp_mult_err_e(ln_pre1_val, ln_pre1_err, ! sum1, GSL_DBL_EPSILON*fabs(sum1), ! &F1); if(stat_e == GSL_EOVRFLW) { OVERFLOW_ERROR(result); --- 422,427 ---- stat_e = gsl_sf_exp_mult_err_e(ln_pre1_val, ln_pre1_err, ! sum1, GSL_DBL_EPSILON*fabs(sum1), ! &F1); if(stat_e == GSL_EOVRFLW) { OVERFLOW_ERROR(result); *************** *** 444,449 **** * Proceed with evaluation. */ ! const int maxiter = 1000; ! int i; double psi_1 = -M_EULER; gsl_sf_result psi_1pd; --- 444,448 ---- * Proceed with evaluation. */ ! const int maxiter = 2000; double psi_1 = -M_EULER; gsl_sf_result psi_1pd; *************** *** 456,481 **** double psi_val = psi_1 + psi_1pd.val - psi_apd1.val - psi_bpd1.val - ln_omx; ! double psi_err = psi_1pd.err + psi_apd1.err + psi_bpd1.err; double fact = 1.0; double sum2_val = psi_val; double sum2_err = psi_err; double ln_pre2_val = lng_c.val + d1*ln_omx - lng_ad2.val - lng_bd2.val; ! double ln_pre2_err = lng_c.val + lng_ad2.val + lng_bd2.val + GSL_DBL_EPSILON * fabs(ln_pre2_val); int stat_e; /* Do F2 sum. */ ! for(i=1; ival = 0.0; --- 489,494 ---- else { stat_e = gsl_sf_exp_mult_err_e(ln_pre2_val, ln_pre2_err, ! sum2_val, sum2_err, ! &F2); if(stat_e == GSL_EOVRFLW) { result->val = 0.0; *************** *** 646,651 **** } ! if(a >= 0.0 && b >= 0.0 && c >=0.0 && x >= 0.0) { ! /* Series has all positive definite terms. */ return hyperg_2F1_series(a, b, c, x, result); --- 650,656 ---- } ! if(a >= 0.0 && b >= 0.0 && c >=0.0 && x >= 0.0 && x < 0.995) { ! /* Series has all positive definite ! * terms and x is not close to 1. */ return hyperg_2F1_series(a, b, c, x, result); diff -rc2P -x *.info -x *.info-* gsl-1.4/specfunc/psi.c gsl-1.5/specfunc/psi.c *** gsl-1.4/specfunc/psi.c Fri Jul 25 15:18:15 2003 --- gsl-1.5/specfunc/psi.c Sun Jun 20 18:41:17 2004 *************** *** 1,5 **** /* specfunc/psi.c * ! * Copyright (C) 1996, 1997, 1998, 1999, 2000 Gerard Jungman * * This program is free software; you can redistribute it and/or modify --- 1,5 ---- /* specfunc/psi.c * ! * Copyright (C) 1996, 1997, 1998, 1999, 2000, 2004 Gerard Jungman * * This program is free software; you can redistribute it and/or modify *************** *** 369,408 **** ! /*-*-*-*-*-*-*-*-*-*-*-* Functions with Error Codes *-*-*-*-*-*-*-*-*-*-*-*/ ! ! int gsl_sf_psi_int_e(const int n, gsl_sf_result * result) ! { ! /* CHECK_POINTER(result) */ ! ! if(n <= 0) { ! DOMAIN_ERROR(result); ! } ! else if(n <= PSI_TABLE_NMAX) { ! result->val = psi_table[n]; ! result->err = GSL_DBL_EPSILON * fabs(result->val); ! return GSL_SUCCESS; ! } ! else { ! /* Abramowitz+Stegun 6.3.18 */ ! const double c2 = -1.0/12.0; ! const double c3 = 1.0/120.0; ! const double c4 = -1.0/252.0; ! const double c5 = 1.0/240.0; ! const double ni2 = (1.0/n)*(1.0/n); ! const double ser = ni2 * (c2 + ni2 * (c3 + ni2 * (c4 + ni2*c5))); ! result->val = log(n) - 0.5/n + ser; ! result->err = GSL_DBL_EPSILON * (fabs(log(n)) + fabs(0.5/n) + fabs(ser)); ! result->err += GSL_DBL_EPSILON * fabs(result->val); ! return GSL_SUCCESS; ! } ! } ! ! ! int gsl_sf_psi_e(const double x, gsl_sf_result * result) { const double y = fabs(x); - /* CHECK_POINTER(result) */ - if(x == 0.0 || x == -1.0 || x == -2.0) { DOMAIN_ERROR(result); --- 369,381 ---- ! /* digamma for x both positive and negative; we do both ! * cases here because of the way we use even/odd parts ! * of the function ! */ ! static int ! psi_x(const double x, gsl_sf_result * result) { const double y = fabs(x); if(x == 0.0 || x == -1.0 || x == -2.0) { DOMAIN_ERROR(result); *************** *** 479,482 **** --- 452,517 ---- + + /* generic polygamma; assumes n >= 0 and x > 0 + */ + static int + psi_n_xg0(const int n, const double x, gsl_sf_result * result) + { + if(n == 0) { + return gsl_sf_psi_e(x, result); + } + else { + /* Abramowitz + Stegun 6.4.10 */ + gsl_sf_result ln_nf; + gsl_sf_result hzeta; + int stat_hz = gsl_sf_hzeta_e(n+1.0, x, &hzeta); + int stat_nf = gsl_sf_lnfact_e((unsigned int) n, &ln_nf); + int stat_e = gsl_sf_exp_mult_err_e(ln_nf.val, ln_nf.err, + hzeta.val, hzeta.err, + result); + if(GSL_IS_EVEN(n)) result->val = -result->val; + return GSL_ERROR_SELECT_3(stat_e, stat_nf, stat_hz); + } + } + + + + /*-*-*-*-*-*-*-*-*-*-*-* Functions with Error Codes *-*-*-*-*-*-*-*-*-*-*-*/ + + int gsl_sf_psi_int_e(const int n, gsl_sf_result * result) + { + /* CHECK_POINTER(result) */ + + if(n <= 0) { + DOMAIN_ERROR(result); + } + else if(n <= PSI_TABLE_NMAX) { + result->val = psi_table[n]; + result->err = GSL_DBL_EPSILON * fabs(result->val); + return GSL_SUCCESS; + } + else { + /* Abramowitz+Stegun 6.3.18 */ + const double c2 = -1.0/12.0; + const double c3 = 1.0/120.0; + const double c4 = -1.0/252.0; + const double c5 = 1.0/240.0; + const double ni2 = (1.0/n)*(1.0/n); + const double ser = ni2 * (c2 + ni2 * (c3 + ni2 * (c4 + ni2*c5))); + result->val = log(n) - 0.5/n + ser; + result->err = GSL_DBL_EPSILON * (fabs(log(n)) + fabs(0.5/n) + fabs(ser)); + result->err += GSL_DBL_EPSILON * fabs(result->val); + return GSL_SUCCESS; + } + } + + + int gsl_sf_psi_e(const double x, gsl_sf_result * result) + { + /* CHECK_POINTER(result) */ + return psi_x(x, result); + } + + int gsl_sf_psi_1piy_e(const double y, gsl_sf_result * result) *************** *** 584,596 **** ! int gsl_sf_psi_n_e(const int n, const double x, gsl_sf_result * result) { /* CHECK_POINTER(result) */ ! if(n < 0 || x <= 0.0) { DOMAIN_ERROR(result); } ! else if(n == 0) { return gsl_sf_psi_e(x, result); } else { --- 619,682 ---- ! int gsl_sf_psi_1_e(const double x, gsl_sf_result * result) { /* CHECK_POINTER(result) */ ! if(x == 0.0 || x == -1.0 || x == -2.0) { DOMAIN_ERROR(result); } ! else if(x > 0.0) ! { ! return psi_n_xg0(1, x, result); ! } ! else if(x > -5.0) ! { ! /* Abramowitz + Stegun 6.4.6 */ ! int M = -floor(x); ! double fx = x + M; ! double sum = 0.0; ! int m; ! ! if(fx == 0.0) ! DOMAIN_ERROR(result); ! ! for(m = 0; m < M; ++m) ! sum += 1.0/((x+m)*(x+m)); ! ! { ! int stat_psi = psi_n_xg0(1, fx, result); ! result->val += sum; ! result->err += M * GSL_DBL_EPSILON * sum; ! return stat_psi; ! } ! } ! else ! { ! /* Abramowitz + Stegun 6.4.7 */ ! const double sin_px = sin(M_PI * x); ! const double d = M_PI*M_PI/(sin_px*sin_px); ! gsl_sf_result r; ! int stat_psi = psi_n_xg0(1, 1.0-x, &r); ! result->val = d - r.val; ! result->err = r.err + 2.0*GSL_DBL_EPSILON*d; ! return stat_psi; ! } ! } ! ! ! int gsl_sf_psi_n_e(const int n, const double x, gsl_sf_result * result) ! { ! /* CHECK_POINTER(result) */ ! ! if(n == 0) ! { return gsl_sf_psi_e(x, result); + } + else if(n == 1) + { + return gsl_sf_psi_1_e(x, result); + } + else if(n < 0 || x <= 0.0) { + DOMAIN_ERROR(result); } else { diff -rc2P -x *.info -x *.info-* gsl-1.4/specfunc/test_hyperg.c gsl-1.5/specfunc/test_hyperg.c *** gsl-1.4/specfunc/test_hyperg.c Wed Jul 30 09:30:03 2003 --- gsl-1.5/specfunc/test_hyperg.c Sun Jun 20 18:41:17 2004 *************** *** 1,5 **** /* specfunc/test_hyperg.c * ! * Copyright (C) 1996, 1997, 1998, 1999, 2000 Gerard Jungman * * This program is free software; you can redistribute it and/or modify --- 1,5 ---- /* specfunc/test_hyperg.c * ! * Copyright (C) 1996, 1997, 1998, 1999, 2000, 2004 Gerard Jungman * * This program is free software; you can redistribute it and/or modify *************** *** 416,419 **** --- 416,430 ---- TEST_SF(s, gsl_sf_hyperg_2F1_e, (9, 9, -100.5, -0.99, &r), 2.4454358338375677520, TEST_TOL1, GSL_SUCCESS); TEST_SF(s, gsl_sf_hyperg_2F1_e, (25, 25, 1, -0.5, &r), -2.9995530823639545027e-06, TEST_SQRT_TOL0, GSL_SUCCESS); + + TEST_SF(s, gsl_sf_hyperg_2F1_e, (1.5, 0.5, 2.0, 1.0-1.0/64.0, &r), 3.17175539044729373926, TEST_TOL3, GSL_SUCCESS); + TEST_SF(s, gsl_sf_hyperg_2F1_e, (1.5, 0.5, 2.0, 1.0-1.0/128.0, &r), 3.59937243502024563424, TEST_TOL2, GSL_SUCCESS); + TEST_SF(s, gsl_sf_hyperg_2F1_e, (1.5, 0.5, 2.0, 1.0-1.0/256.0, &r), 4.03259299524392504369, TEST_TOL1, GSL_SUCCESS); + TEST_SF(s, gsl_sf_hyperg_2F1_e, (1.5, 0.5, 2.0, 1.0-1.0/1024.0, &r), 4.90784159359675398250, TEST_TOL1, GSL_SUCCESS); + TEST_SF(s, gsl_sf_hyperg_2F1_e, (1.5, 0.5, 2.0, 1.0-1.0/65536.0, &r), 7.552266033399683914, TEST_TOL1, GSL_SUCCESS); + TEST_SF(s, gsl_sf_hyperg_2F1_e, (1.5, 0.5, 2.0, 1.0-1.0/16777216.0, &r), 11.08235454026043830363, TEST_TOL1, GSL_SUCCESS); + + TEST_SF(s, gsl_sf_hyperg_2F1_e, (1.5, 0.5, 2.0, -1.0+1.0/1024.0, &r), 0.762910940909954974527, TEST_TOL0, GSL_SUCCESS); + TEST_SF(s, gsl_sf_hyperg_2F1_e, (1.5, 0.5, 2.0, -1.0+1.0/65536.0, &r), 0.762762124908845424449, TEST_TOL0, GSL_SUCCESS); + TEST_SF(s, gsl_sf_hyperg_2F1_e, (1.5, 0.5, 2.0, -1.0+1.0/1048576.0, &r), 0.762759911089064738044, TEST_TOL0, GSL_SUCCESS); diff -rc2P -x *.info -x *.info-* gsl-1.4/specfunc/test_legendre.c gsl-1.5/specfunc/test_legendre.c *** gsl-1.4/specfunc/test_legendre.c Sun Jul 27 17:21:06 2003 --- gsl-1.5/specfunc/test_legendre.c Sun Jun 20 18:41:17 2004 *************** *** 1,5 **** /* specfunc/test_legendre.c * ! * Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002 Gerard Jungman * * This program is free software; you can redistribute it and/or modify --- 1,5 ---- /* specfunc/test_legendre.c * ! * Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2004 Gerard Jungman * * This program is free software; you can redistribute it and/or modify *************** *** 426,430 **** TEST_SF(s, gsl_sf_conicalP_cyl_reg_e, (30, 1.0, -0.5, &r), 5.579714972260536827e-26, TEST_TOL2, GSL_SUCCESS); TEST_SF(s, gsl_sf_conicalP_cyl_reg_e, (10, 1.0, 0.5, &r), 1.1674078819646475282e-09, TEST_TOL0, GSL_SUCCESS); ! TEST_SF(s, gsl_sf_conicalP_cyl_reg_e, (20, 1.0, 0.5, &r), 7.066408031229072207e-24, TEST_TOL0, GSL_SUCCESS); TEST_SF(s, gsl_sf_conicalP_cyl_reg_e, (30, 1.0, 0.5, &r), 2.6541973286862588488e-40, TEST_TOL1, GSL_SUCCESS); TEST_SF(s, gsl_sf_conicalP_cyl_reg_e, (10, 1.0, 2.0, &r), 1.0736109751890863051e-09, TEST_TOL2, GSL_SUCCESS); --- 426,430 ---- TEST_SF(s, gsl_sf_conicalP_cyl_reg_e, (30, 1.0, -0.5, &r), 5.579714972260536827e-26, TEST_TOL2, GSL_SUCCESS); TEST_SF(s, gsl_sf_conicalP_cyl_reg_e, (10, 1.0, 0.5, &r), 1.1674078819646475282e-09, TEST_TOL0, GSL_SUCCESS); ! TEST_SF(s, gsl_sf_conicalP_cyl_reg_e, (20, 1.0, 0.5, &r), 7.066408031229072207e-24, TEST_TOL1, GSL_SUCCESS); TEST_SF(s, gsl_sf_conicalP_cyl_reg_e, (30, 1.0, 0.5, &r), 2.6541973286862588488e-40, TEST_TOL1, GSL_SUCCESS); TEST_SF(s, gsl_sf_conicalP_cyl_reg_e, (10, 1.0, 2.0, &r), 1.0736109751890863051e-09, TEST_TOL2, GSL_SUCCESS); diff -rc2P -x *.info -x *.info-* gsl-1.4/specfunc/test_sf.c gsl-1.5/specfunc/test_sf.c *** gsl-1.4/specfunc/test_sf.c Mon Aug 11 09:02:17 2003 --- gsl-1.5/specfunc/test_sf.c Sun Jun 20 18:41:17 2004 *************** *** 1,5 **** /* specfunc/test_sf.c * ! * Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002 Gerard Jungman * * This program is free software; you can redistribute it and/or modify --- 1,5 ---- /* specfunc/test_sf.c * ! * Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2004 Gerard Jungman * * This program is free software; you can redistribute it and/or modify *************** *** 1315,1324 **** TEST_SF(s, gsl_sf_psi_int_e, (5000, &r), 8.517093188082904107, TEST_TOL0, GSL_SUCCESS); - TEST_SF(s, gsl_sf_psi_e, (5.0, &r), 1.5061176684318004727, TEST_TOL0, GSL_SUCCESS); TEST_SF(s, gsl_sf_psi_e, (5000.0, &r), 8.517093188082904107, TEST_TOL0, GSL_SUCCESS); ! TEST_SF(s, gsl_sf_psi_e, (-100.5, &r), 4.615124601338064117, TEST_TOL2, GSL_SUCCESS); TEST_SF(s, gsl_sf_psi_e, (-1.0e+5-0.5, &r), 11.512935464924395337, 4.0*TEST_TOL4, GSL_SUCCESS); ! TEST_SF(s, gsl_sf_psi_1piy_e, (0.8, &r), -0.07088340212750589223, TEST_TOL1, GSL_SUCCESS); TEST_SF(s, gsl_sf_psi_1piy_e, (1.0, &r), 0.09465032062247697727, TEST_TOL0, GSL_SUCCESS); --- 1315,1325 ---- TEST_SF(s, gsl_sf_psi_int_e, (5000, &r), 8.517093188082904107, TEST_TOL0, GSL_SUCCESS); TEST_SF(s, gsl_sf_psi_e, (5000.0, &r), 8.517093188082904107, TEST_TOL0, GSL_SUCCESS); ! TEST_SF(s, gsl_sf_psi_e, (5.0, &r), 1.5061176684318004727, TEST_TOL0, GSL_SUCCESS); ! TEST_SF(s, gsl_sf_psi_e, (-10.5, &r), 2.3982391295357816134, TEST_TOL0, GSL_SUCCESS); TEST_SF(s, gsl_sf_psi_e, (-100.5, &r), 4.615124601338064117, TEST_TOL2, GSL_SUCCESS); TEST_SF(s, gsl_sf_psi_e, (-1.0e+5-0.5, &r), 11.512935464924395337, 4.0*TEST_TOL4, GSL_SUCCESS); ! TEST_SF(s, gsl_sf_psi_e, (-262144.0-0.5, &r), 12.476653064769611581, 4.0*TEST_TOL4, GSL_SUCCESS); ! TEST_SF(s, gsl_sf_psi_1piy_e, (0.8, &r), -0.07088340212750589223, TEST_TOL1, GSL_SUCCESS); TEST_SF(s, gsl_sf_psi_1piy_e, (1.0, &r), 0.09465032062247697727, TEST_TOL0, GSL_SUCCESS); *************** *** 1336,1357 **** Abramowitz & Stegun 6.4.6 */ ! TEST_SF(s, gsl_sf_psi_1_int_e, (1, &r), 1.6449340668482264364, TEST_TOL0, GSL_SUCCESS); ! TEST_SF(s, gsl_sf_psi_1_int_e, (2, &r), 0.64493406684822643647, TEST_TOL0, GSL_SUCCESS); ! TEST_SF(s, gsl_sf_psi_1_int_e, (3, &r), 0.39493406684822643647, TEST_TOL0, GSL_SUCCESS); ! TEST_SF(s, gsl_sf_psi_1_int_e, (4, &r), 0.28382295573711532536, TEST_TOL0, GSL_SUCCESS); ! ! TEST_SF(s, gsl_sf_psi_1_int_e, (5, &r), 0.22132295573711532536, TEST_TOL0, GSL_SUCCESS); ! TEST_SF(s, gsl_sf_psi_1_int_e, (100, &r), 0.010050166663333571395, TEST_TOL0, GSL_SUCCESS); ! TEST_SF(s, gsl_sf_psi_1_int_e, (110, &r), 0.009132356622022545705, TEST_TOL0, GSL_SUCCESS); TEST_SF(s, gsl_sf_psi_1_int_e, (500, &r), 0.0020020013333322666697, TEST_TOL0, GSL_SUCCESS); ! TEST_SF(s, gsl_sf_psi_n_e, (1, 1, &r), 1.6449340668482264364, TEST_TOL0, GSL_SUCCESS); ! TEST_SF(s, gsl_sf_psi_n_e, (1, 2, &r), 0.64493406684822643647, TEST_TOL0, GSL_SUCCESS); ! TEST_SF(s, gsl_sf_psi_n_e, (1, 3, &r), 0.39493406684822643647, TEST_TOL0, GSL_SUCCESS); ! TEST_SF(s, gsl_sf_psi_n_e, (1, 4, &r), 0.28382295573711532536, TEST_TOL0, GSL_SUCCESS); ! ! TEST_SF(s, gsl_sf_psi_n_e, (1, 5, &r), 0.22132295573711532536, TEST_TOL0, GSL_SUCCESS); ! TEST_SF(s, gsl_sf_psi_n_e, (1, 100, &r), 0.010050166663333571395, TEST_TOL0, GSL_SUCCESS); ! TEST_SF(s, gsl_sf_psi_n_e, (1, 110, &r), 0.009132356622022545705, TEST_TOL0, GSL_SUCCESS); TEST_SF(s, gsl_sf_psi_n_e, (1, 500, &r), 0.0020020013333322666697, TEST_TOL0, GSL_SUCCESS); --- 1337,1373 ---- Abramowitz & Stegun 6.4.6 */ ! TEST_SF(s, gsl_sf_psi_1_int_e, (1, &r), 1.6449340668482264364, TEST_TOL0, GSL_SUCCESS); ! TEST_SF(s, gsl_sf_psi_1_int_e, (2, &r), 0.64493406684822643647, TEST_TOL0, GSL_SUCCESS); ! TEST_SF(s, gsl_sf_psi_1_int_e, (3, &r), 0.39493406684822643647, TEST_TOL0, GSL_SUCCESS); ! TEST_SF(s, gsl_sf_psi_1_int_e, (4, &r), 0.28382295573711532536, TEST_TOL0, GSL_SUCCESS); ! ! TEST_SF(s, gsl_sf_psi_1_int_e, (1, &r), 1.6449340668482264365, TEST_TOL0, GSL_SUCCESS); ! TEST_SF(s, gsl_sf_psi_1_int_e, (5, &r), 0.22132295573711532536, TEST_TOL0, GSL_SUCCESS); ! TEST_SF(s, gsl_sf_psi_1_int_e, (100, &r), 0.010050166663333571395, TEST_TOL0, GSL_SUCCESS); ! TEST_SF(s, gsl_sf_psi_1_int_e, (110, &r), 0.009132356622022545705, TEST_TOL0, GSL_SUCCESS); TEST_SF(s, gsl_sf_psi_1_int_e, (500, &r), 0.0020020013333322666697, TEST_TOL0, GSL_SUCCESS); ! TEST_SF(s, gsl_sf_psi_1_e, (1.0/32.0, &r), 1025.5728544782377089, TEST_TOL0, GSL_SUCCESS); ! TEST_SF(s, gsl_sf_psi_1_e, (1.0, &r), 1.6449340668482264365, TEST_TOL0, GSL_SUCCESS); ! TEST_SF(s, gsl_sf_psi_1_e, (5.0, &r), 0.22132295573711532536, TEST_TOL0, GSL_SUCCESS); ! TEST_SF(s, gsl_sf_psi_1_e, (100.0, &r), 0.010050166663333571395, TEST_TOL0, GSL_SUCCESS); ! TEST_SF(s, gsl_sf_psi_1_e, (110.0, &r), 0.009132356622022545705, TEST_TOL0, GSL_SUCCESS); ! TEST_SF(s, gsl_sf_psi_1_e, (500.0, &r), 0.0020020013333322666697, TEST_TOL0, GSL_SUCCESS); ! ! TEST_SF(s, gsl_sf_psi_1_e, (-1.0 - 1.0/128.0, &r), 16386.648472598746587, TEST_TOL0, GSL_SUCCESS); ! TEST_SF(s, gsl_sf_psi_1_e, (-1.50, &r), 9.3792466449891237539, TEST_TOL0, GSL_SUCCESS); ! TEST_SF(s, gsl_sf_psi_1_e, (-10.5, &r), 9.7787577398148123845, TEST_TOL0, GSL_SUCCESS); ! TEST_SF(s, gsl_sf_psi_1_e, (-15.5, &r), 9.8071247184113896201, TEST_TOL0, GSL_SUCCESS); ! TEST_SF(s, gsl_sf_psi_1_e, (-50.5, &r), 9.8499971860824842274, TEST_TOL0, GSL_SUCCESS); ! TEST_SF(s, gsl_sf_psi_1_e, (-1000.5, &r), 9.8686054001734414233, TEST_TOL0, GSL_SUCCESS); ! ! TEST_SF(s, gsl_sf_psi_n_e, (1, 1, &r), 1.6449340668482264364, TEST_TOL0, GSL_SUCCESS); ! TEST_SF(s, gsl_sf_psi_n_e, (1, 2, &r), 0.64493406684822643647, TEST_TOL0, GSL_SUCCESS); ! TEST_SF(s, gsl_sf_psi_n_e, (1, 3, &r), 0.39493406684822643647, TEST_TOL0, GSL_SUCCESS); ! TEST_SF(s, gsl_sf_psi_n_e, (1, 4, &r), 0.28382295573711532536, TEST_TOL0, GSL_SUCCESS); ! ! TEST_SF(s, gsl_sf_psi_n_e, (1, 5, &r), 0.22132295573711532536, TEST_TOL0, GSL_SUCCESS); ! TEST_SF(s, gsl_sf_psi_n_e, (1, 100, &r), 0.010050166663333571395, TEST_TOL0, GSL_SUCCESS); ! TEST_SF(s, gsl_sf_psi_n_e, (1, 110, &r), 0.009132356622022545705, TEST_TOL0, GSL_SUCCESS); TEST_SF(s, gsl_sf_psi_n_e, (1, 500, &r), 0.0020020013333322666697, TEST_TOL0, GSL_SUCCESS); *************** *** 1361,1364 **** --- 1377,1383 ---- TEST_SF(s, gsl_sf_psi_n_e, (10, 50.0, &r), -4.101091112731268288e-12, TEST_TOL0, GSL_SUCCESS); + TEST_SF(s, gsl_sf_psi_n_e, (0, -1.5, &r), 0.70315664064524318723, TEST_TOL0, GSL_SUCCESS); + TEST_SF(s, gsl_sf_psi_n_e, (1, -1.5, &r), 9.3792466449891237539, TEST_TOL0, GSL_SUCCESS); + return s; } *************** *** 1628,1635 **** int s = 0; ! TEST_SF(s, gsl_sf_zeta_int_e, (-61, &r), -3.30660898765775767257e+34, TEST_TOL0, GSL_SUCCESS); ! TEST_SF(s, gsl_sf_zeta_int_e, (-5, &r), -0.003968253968253968253968, TEST_TOL0, GSL_SUCCESS); ! TEST_SF(s, gsl_sf_zeta_int_e, (5, &r), 1.0369277551433699263313655, TEST_TOL0, GSL_SUCCESS); ! TEST_SF(s, gsl_sf_zeta_int_e, (31, &r), 1.0000000004656629065033784, TEST_TOL0, GSL_SUCCESS); TEST_SF(s, gsl_sf_zeta_e, (-151, &r), 8.195215221831378294e+143, TEST_TOL2, GSL_SUCCESS); --- 1647,1659 ---- int s = 0; ! TEST_SF(s, gsl_sf_zeta_int_e, (-61.0, &r), -3.30660898765775767257e+34, TEST_TOL0, GSL_SUCCESS); ! TEST_SF(s, gsl_sf_zeta_int_e, (-5.0, &r), -0.003968253968253968253968, TEST_TOL0, GSL_SUCCESS); ! TEST_SF(s, gsl_sf_zeta_int_e, ( 5.0, &r), 1.0369277551433699263313655, TEST_TOL0, GSL_SUCCESS); ! TEST_SF(s, gsl_sf_zeta_int_e, (31.0, &r), 1.0000000004656629065033784, TEST_TOL0, GSL_SUCCESS); ! ! TEST_SF(s, gsl_sf_zetam1_int_e, (-61.0, &r), -3.30660898765775767257e+34, TEST_TOL0, GSL_SUCCESS); ! TEST_SF(s, gsl_sf_zetam1_int_e, (-5.0, &r), -1.003968253968253968253968, TEST_TOL0, GSL_SUCCESS); ! TEST_SF(s, gsl_sf_zetam1_int_e, ( 5.0, &r), 0.0369277551433699263313655, TEST_TOL0, GSL_SUCCESS); ! TEST_SF(s, gsl_sf_zetam1_int_e, (31.0, &r), 0.0000000004656629065033784, TEST_TOL0, GSL_SUCCESS); TEST_SF(s, gsl_sf_zeta_e, (-151, &r), 8.195215221831378294e+143, TEST_TOL2, GSL_SUCCESS); *************** *** 1639,1660 **** TEST_SF(s, gsl_sf_zeta_e, (-1e-10, &r), -0.49999999990810614668948, TEST_TOL1, GSL_SUCCESS); ! ! TEST_SF(s, gsl_sf_zeta_e, (0, &r), -0.5, TEST_TOL0, GSL_SUCCESS); ! ! TEST_SF(s, gsl_sf_zeta_e, (1e-10, &r), -0.50000000009189385333058, TEST_TOL0, GSL_SUCCESS); TEST_SF(s, gsl_sf_zeta_e, (0.5, &r), -1.460354508809586812889499, TEST_TOL0, GSL_SUCCESS); TEST_SF(s, gsl_sf_zeta_e, (1.0-1.0/1024.0, &r), -1023.4228554489429787, TEST_TOL0, GSL_SUCCESS); TEST_SF(s, gsl_sf_zeta_e, (1.0+1.0/1048576, &r), 1.0485765772157343441e+06, TEST_TOL0, GSL_SUCCESS); ! TEST_SF(s, gsl_sf_zeta_e, (5, &r), 1.036927755143369926331365, TEST_TOL0, GSL_SUCCESS); TEST_SF(s, gsl_sf_zeta_e, (25.5, &r), 1.000000021074106110269959, TEST_TOL0, GSL_SUCCESS); ! TEST_SF(s, gsl_sf_hzeta_e, (2, 1.0, &r), 1.6449340668482264365, TEST_TOL0, GSL_SUCCESS); ! TEST_SF(s, gsl_sf_hzeta_e, (2, 10.0, &r), 0.1051663356816857461, TEST_TOL0, GSL_SUCCESS); ! TEST_SF(s, gsl_sf_hzeta_e, (5, 1.0, &r), 1.0369277551433699263, TEST_TOL0, GSL_SUCCESS); ! TEST_SF(s, gsl_sf_hzeta_e, (5, 10.0, &r), 0.000030413798676470276, TEST_TOL0, GSL_SUCCESS); ! TEST_SF(s, gsl_sf_hzeta_e, (9, 0.1, &r), 1.0000000004253980e+09, TEST_TOL0, GSL_SUCCESS); ! TEST_SF(s, gsl_sf_hzeta_e, (30, 0.5, &r), 1.0737418240000053e+09, TEST_TOL0, GSL_SUCCESS); ! TEST_SF(s, gsl_sf_hzeta_e, (30, 0.9, &r), 2.3589824880264765e+01, TEST_TOL1, GSL_SUCCESS); TEST_SF(s, gsl_sf_hzeta_e, (75, 0.25, &r), 1.4272476927059599e+45, TEST_TOL1, GSL_SUCCESS); --- 1663,1694 ---- TEST_SF(s, gsl_sf_zeta_e, (-1e-10, &r), -0.49999999990810614668948, TEST_TOL1, GSL_SUCCESS); ! TEST_SF(s, gsl_sf_zeta_e, (0.0, &r), -0.5, TEST_TOL0, GSL_SUCCESS); ! TEST_SF(s, gsl_sf_zeta_e, (1e-10, &r), -0.50000000009189385333058, TEST_TOL0, GSL_SUCCESS); TEST_SF(s, gsl_sf_zeta_e, (0.5, &r), -1.460354508809586812889499, TEST_TOL0, GSL_SUCCESS); TEST_SF(s, gsl_sf_zeta_e, (1.0-1.0/1024.0, &r), -1023.4228554489429787, TEST_TOL0, GSL_SUCCESS); TEST_SF(s, gsl_sf_zeta_e, (1.0+1.0/1048576, &r), 1.0485765772157343441e+06, TEST_TOL0, GSL_SUCCESS); ! TEST_SF(s, gsl_sf_zeta_e, (5.0, &r), 1.036927755143369926331365, TEST_TOL0, GSL_SUCCESS); TEST_SF(s, gsl_sf_zeta_e, (25.5, &r), 1.000000021074106110269959, TEST_TOL0, GSL_SUCCESS); ! TEST_SF(s, gsl_sf_zetam1_e, (0.5, &r), -2.460354508809586812889499, TEST_TOL0, GSL_SUCCESS); ! TEST_SF(s, gsl_sf_zetam1_e, (2.0, &r), 0.64493406684822643647, TEST_TOL1, GSL_SUCCESS); ! TEST_SF(s, gsl_sf_zetam1_e, (3.0, &r), 0.20205690315959428540, TEST_TOL1, GSL_SUCCESS); ! TEST_SF(s, gsl_sf_zetam1_e, (5.0, &r), 0.0369277551433699263314, TEST_TOL1, GSL_SUCCESS); ! TEST_SF(s, gsl_sf_zetam1_e, (9.5, &r), 0.0014125906121736622712, TEST_TOL1, GSL_SUCCESS); ! TEST_SF(s, gsl_sf_zetam1_e, (10.5, &r), 0.000700842641736155219500, TEST_TOL1, GSL_SUCCESS); ! TEST_SF(s, gsl_sf_zetam1_e, (12.5, &r), 0.000173751733643178193390, TEST_TOL1, GSL_SUCCESS); ! TEST_SF(s, gsl_sf_zetam1_e, (13.5, &r), 0.000086686727462338155188, TEST_TOL1, GSL_SUCCESS); ! TEST_SF(s, gsl_sf_zetam1_e, (15.5, &r), 0.000021619904246069108133, TEST_TOL1, GSL_SUCCESS); ! TEST_SF(s, gsl_sf_zetam1_e, (16.5, &r), 0.000010803124900178547671, TEST_TOL0, GSL_SUCCESS); ! TEST_SF(s, gsl_sf_zetam1_e, (25.5, &r), 0.000000021074106110269959, TEST_TOL0, GSL_SUCCESS); ! ! TEST_SF(s, gsl_sf_hzeta_e, (2, 1.0, &r), 1.6449340668482264365, TEST_TOL0, GSL_SUCCESS); ! TEST_SF(s, gsl_sf_hzeta_e, (2, 10.0, &r), 0.1051663356816857461, TEST_TOL0, GSL_SUCCESS); ! TEST_SF(s, gsl_sf_hzeta_e, (5, 1.0, &r), 1.0369277551433699263, TEST_TOL0, GSL_SUCCESS); ! TEST_SF(s, gsl_sf_hzeta_e, (5, 10.0, &r), 0.000030413798676470276, TEST_TOL0, GSL_SUCCESS); ! TEST_SF(s, gsl_sf_hzeta_e, (9, 0.1, &r), 1.0000000004253980e+09, TEST_TOL0, GSL_SUCCESS); ! TEST_SF(s, gsl_sf_hzeta_e, (30, 0.5, &r), 1.0737418240000053e+09, TEST_TOL0, GSL_SUCCESS); ! TEST_SF(s, gsl_sf_hzeta_e, (30, 0.9, &r), 2.3589824880264765e+01, TEST_TOL1, GSL_SUCCESS); TEST_SF(s, gsl_sf_hzeta_e, (75, 0.25, &r), 1.4272476927059599e+45, TEST_TOL1, GSL_SUCCESS); diff -rc2P -x *.info -x *.info-* gsl-1.4/specfunc/zeta.c gsl-1.5/specfunc/zeta.c *** gsl-1.4/specfunc/zeta.c Fri Jul 25 15:18:16 2003 --- gsl-1.5/specfunc/zeta.c Sun Jun 20 18:41:17 2004 *************** *** 1,5 **** /* specfunc/zeta.c * ! * Copyright (C) 1996, 1997, 1998, 1999, 2000 Gerard Jungman * * This program is free software; you can redistribute it and/or modify --- 1,5 ---- /* specfunc/zeta.c * ! * Copyright (C) 1996, 1997, 1998, 1999, 2000, 2004 Gerard Jungman * * This program is free software; you can redistribute it and/or modify *************** *** 110,113 **** --- 110,152 ---- + /* chebyshev fit for Ln[Zeta[s(t)] - 1 - 2^(-s(t))] + * s(t)= 10 + 5t + * -1 <= t <= 1; 5 <= s <= 15 + */ + static double zetam1_inter_data[24] = { + -21.7509435653088483422022339374, + -5.63036877698121782876372020472, + 0.0528041358684229425504861579635, + -0.0156381809179670789342700883562, + 0.00408218474372355881195080781927, + -0.0010264867349474874045036628282, + 0.000260469880409886900143834962387, + -0.0000676175847209968878098566819447, + 0.0000179284472587833525426660171124, + -4.83238651318556188834107605116e-6, + 1.31913788964999288471371329447e-6, + -3.63760500656329972578222188542e-7, + 1.01146847513194744989748396574e-7, + -2.83215225141806501619105289509e-8, + 7.97733710252021423361012829496e-9, + -2.25850168553956886676250696891e-9, + 6.42269392950164306086395744145e-10, + -1.83363861846127284505060843614e-10, + 5.25309763895283179960368072104e-11, + -1.50958687042589821074710575446e-11, + 4.34997545516049244697776942981e-12, + -1.25597782748190416118082322061e-12, + 3.61280740072222650030134104162e-13, + -9.66437239205745207188920348801e-14 + }; + static cheb_series zetam1_inter_cs = { + zetam1_inter_data, + 22, + -1, 1, + 12 + }; + + + /* assumes s >= 0 and s != 1.0 */ inline *************** *** 141,147 **** } inline static int ! riemann_zeta1m_slt0(double s, gsl_sf_result * result) { if(s > -19.0) { --- 180,187 ---- } + inline static int ! riemann_zeta1ms_slt0(double s, gsl_sf_result * result) { if(s > -19.0) { *************** *** 164,170 **** } /* zeta(n) */ #define ZETA_POS_TABLE_NMAX 100 ! static double zeta_pos_int_table[ZETA_POS_TABLE_NMAX+1] = { -0.50000000000000000000000000000, /* zeta(0) */ 0.0 /* FIXME: DirectedInfinity() */, /* zeta(1) */ --- 204,261 ---- } + + /* works for 5 < s < 15*/ + static int + riemann_zeta_minus_1_intermediate_s(double s, gsl_sf_result * result) + { + double t = (s - 10.0)/5.0; + gsl_sf_result c; + cheb_eval_e(&zetam1_inter_cs, t, &c); + result->val = exp(c.val) + pow(2.0, -s); + result->err = (c.err + 2.0*GSL_DBL_EPSILON)*result->val; + return GSL_SUCCESS; + } + + + /* assumes s is large and positive + * write: zeta(s) - 1 = zeta(s) * (1 - 1/zeta(s)) + * and expand a few terms of the product formula to evaluate 1 - 1/zeta(s) + * + * works well for s > 15 + */ + static int + riemann_zeta_minus1_large_s(double s, gsl_sf_result * result) + { + double a = pow( 2.0,-s); + double b = pow( 3.0,-s); + double c = pow( 5.0,-s); + double d = pow( 7.0,-s); + double e = pow(11.0,-s); + double f = pow(13.0,-s); + double t1 = a + b + c + d + e + f; + double t2 = a*(b+c+d+e+f) + b*(c+d+e+f) + c*(d+e+f) + d*(e+f) + e*f; + /* + double t3 = a*(b*(c+d+e+f) + c*(d+e+f) + d*(e+f) + e*f) + + b*(c*(d+e+f) + d*(e+f) + e*f) + + c*(d*(e+f) + e*f) + + d*e*f; + double t4 = a*(b*(c*(d + e + f) + d*(e + f) + e*f) + c*(d*(e+f) + e*f) + d*e*f) + + b*(c*(d*(e+f) + e*f) + d*e*f) + + c*d*e*f; + double t5 = b*c*d*e*f + a*c*d*e*f+ a*b*d*e*f+ a*b*c*e*f+ a*b*c*d*f+ a*b*c*d*e; + double t6 = a*b*c*d*e*f; + */ + double numt = t1 - t2 /* + t3 - t4 + t5 - t6 */; + double zeta = 1.0/((1.0-a)*(1.0-b)*(1.0-c)*(1.0-d)*(1.0-e)*(1.0-f)); + result->val = numt*zeta; + result->err = (15.0/s + 1.0) * 6.0*GSL_DBL_EPSILON*result->val; + return GSL_SUCCESS; + } + + + #if 0 /* zeta(n) */ #define ZETA_POS_TABLE_NMAX 100 ! static double zeta_pos_int_table_OLD[ZETA_POS_TABLE_NMAX+1] = { -0.50000000000000000000000000000, /* zeta(0) */ 0.0 /* FIXME: DirectedInfinity() */, /* zeta(1) */ *************** *** 269,272 **** --- 360,473 ---- 1.00000000000000000000000000000 }; + #endif /* 0 */ + + + /* zeta(n) - 1 */ + #define ZETA_POS_TABLE_NMAX 100 + static double zetam1_pos_int_table[ZETA_POS_TABLE_NMAX+1] = { + -1.5, /* zeta(0) */ + 0.0, /* FIXME: Infinity */ /* zeta(1) - 1 */ + 0.644934066848226436472415166646, /* zeta(2) - 1 */ + 0.202056903159594285399738161511, + 0.082323233711138191516003696541, + 0.036927755143369926331365486457, + 0.017343061984449139714517929790, + 0.008349277381922826839797549849, + 0.004077356197944339378685238508, + 0.002008392826082214417852769232, + 0.000994575127818085337145958900, + 0.000494188604119464558702282526, + 0.000246086553308048298637998047, + 0.000122713347578489146751836526, + 0.000061248135058704829258545105, + 0.000030588236307020493551728510, + 0.000015282259408651871732571487, + 7.6371976378997622736002935630e-6, + 3.8172932649998398564616446219e-6, + 1.9082127165539389256569577951e-6, + 9.5396203387279611315203868344e-7, + 4.7693298678780646311671960437e-7, + 2.3845050272773299000364818675e-7, + 1.1921992596531107306778871888e-7, + 5.9608189051259479612440207935e-8, + 2.9803503514652280186063705069e-8, + 1.4901554828365041234658506630e-8, + 7.4507117898354294919810041706e-9, + 3.7253340247884570548192040184e-9, + 1.8626597235130490064039099454e-9, + 9.3132743241966818287176473502e-10, + 4.6566290650337840729892332512e-10, + 2.3283118336765054920014559759e-10, + 1.1641550172700519775929738354e-10, + 5.8207720879027008892436859891e-11, + 2.9103850444970996869294252278e-11, + 1.4551921891041984235929632245e-11, + 7.2759598350574810145208690123e-12, + 3.6379795473786511902372363558e-12, + 1.8189896503070659475848321007e-12, + 9.0949478402638892825331183869e-13, + 4.5474737830421540267991120294e-13, + 2.2737368458246525152268215779e-13, + 1.1368684076802278493491048380e-13, + 5.6843419876275856092771829675e-14, + 2.8421709768893018554550737049e-14, + 1.4210854828031606769834307141e-14, + 7.1054273952108527128773544799e-15, + 3.5527136913371136732984695340e-15, + 1.7763568435791203274733490144e-15, + 8.8817842109308159030960913863e-16, + 4.4408921031438133641977709402e-16, + 2.2204460507980419839993200942e-16, + 1.1102230251410661337205445699e-16, + 5.5511151248454812437237365905e-17, + 2.7755575621361241725816324538e-17, + 1.3877787809725232762839094906e-17, + 6.9388939045441536974460853262e-18, + 3.4694469521659226247442714961e-18, + 1.7347234760475765720489729699e-18, + 8.6736173801199337283420550673e-19, + 4.3368086900206504874970235659e-19, + 2.1684043449972197850139101683e-19, + 1.0842021724942414063012711165e-19, + 5.4210108624566454109187004043e-20, + 2.7105054312234688319546213119e-20, + 1.3552527156101164581485233996e-20, + 6.7762635780451890979952987415e-21, + 3.3881317890207968180857031004e-21, + 1.6940658945097991654064927471e-21, + 8.4703294725469983482469926091e-22, + 4.2351647362728333478622704833e-22, + 2.1175823681361947318442094398e-22, + 1.0587911840680233852265001539e-22, + 5.2939559203398703238139123029e-23, + 2.6469779601698529611341166842e-23, + 1.3234889800848990803094510250e-23, + 6.6174449004244040673552453323e-24, + 3.3087224502121715889469563843e-24, + 1.6543612251060756462299236771e-24, + 8.2718061255303444036711056167e-25, + 4.1359030627651609260093824555e-25, + 2.0679515313825767043959679193e-25, + 1.0339757656912870993284095591e-25, + 5.1698788284564313204101332166e-26, + 2.5849394142282142681277617708e-26, + 1.2924697071141066700381126118e-26, + 6.4623485355705318034380021611e-27, + 3.2311742677852653861348141180e-27, + 1.6155871338926325212060114057e-27, + 8.0779356694631620331587381863e-28, + 4.0389678347315808256222628129e-28, + 2.0194839173657903491587626465e-28, + 1.0097419586828951533619250700e-28, + 5.0487097934144756960847711725e-29, + 2.5243548967072378244674341938e-29, + 1.2621774483536189043753999660e-29, + 6.3108872417680944956826093943e-30, + 3.1554436208840472391098412184e-30, + 1.5777218104420236166444327830e-30, + 7.8886090522101180735205378276e-31 + }; + + #define ZETA_NEG_TABLE_NMAX 99 #define ZETA_NEG_TABLE_SIZE 50 *************** *** 587,591 **** gsl_sf_result zeta_one_minus_s; ! const int stat_zoms = riemann_zeta1m_slt0(s, &zeta_one_minus_s); const double sin_term = sin(0.5*M_PI*s)/M_PI; --- 788,792 ---- gsl_sf_result zeta_one_minus_s; ! const int stat_zoms = riemann_zeta1ms_slt0(s, &zeta_one_minus_s); const double sin_term = sin(0.5*M_PI*s)/M_PI; *************** *** 673,677 **** } else if(n <= ZETA_POS_TABLE_NMAX){ ! result->val = zeta_pos_int_table[n]; result->err = 2.0 * GSL_DBL_EPSILON * fabs(result->val); return GSL_SUCCESS; --- 874,878 ---- } else if(n <= ZETA_POS_TABLE_NMAX){ ! result->val = 1.0 + zetam1_pos_int_table[n]; result->err = 2.0 * GSL_DBL_EPSILON * fabs(result->val); return GSL_SUCCESS; *************** *** 685,688 **** --- 886,939 ---- + int gsl_sf_zetam1_e(const double s, gsl_sf_result * result) + { + if(s <= 5.0) + { + int stat = gsl_sf_zeta_e(s, result); + result->val = result->val - 1.0; + return stat; + } + else if(s < 15.0) + { + return riemann_zeta_minus_1_intermediate_s(s, result); + } + else + { + return riemann_zeta_minus1_large_s(s, result); + } + } + + + int gsl_sf_zetam1_int_e(const int n, gsl_sf_result * result) + { + if(n < 0) { + if(!GSL_IS_ODD(n)) { + result->val = 0.0; /* exactly zero at even negative integers */ + result->err = 0.0; + return GSL_SUCCESS; + } + else if(n > -ZETA_NEG_TABLE_NMAX) { + result->val = zeta_neg_int_table[-(n+1)/2] - 1.0; + result->err = 2.0 * GSL_DBL_EPSILON * fabs(result->val); + return GSL_SUCCESS; + } + else { + return gsl_sf_zeta_e((double)n, result); + } + } + else if(n == 1){ + DOMAIN_ERROR(result); + } + else if(n <= ZETA_POS_TABLE_NMAX){ + result->val = zetam1_pos_int_table[n]; + result->err = 2.0 * GSL_DBL_EPSILON * fabs(result->val); + return GSL_SUCCESS; + } + else { + return gsl_sf_zetam1_e(n, result); + } + } + + int gsl_sf_eta_int_e(int n, gsl_sf_result * result) { *************** *** 775,778 **** --- 1026,1039 ---- { EVAL_RESULT(gsl_sf_zeta_int_e(s, &result)); + } + + double gsl_sf_zetam1(const double s) + { + EVAL_RESULT(gsl_sf_zetam1_e(s, &result)); + } + + double gsl_sf_zetam1_int(const int s) + { + EVAL_RESULT(gsl_sf_zetam1_int_e(s, &result)); } diff -rc2P -x *.info -x *.info-* gsl-1.4/sys/ChangeLog gsl-1.5/sys/ChangeLog *** gsl-1.4/sys/ChangeLog Thu Jul 24 16:03:33 2003 --- gsl-1.5/sys/ChangeLog Tue Sep 2 09:19:23 2003 *************** *** 1,2 **** --- 1,6 ---- + 2003-09-02 Brian Gough + + * infnan.c (gsl_isinf): added fallback for missing isinf (IRIX) + 2003-07-24 Brian Gough diff -rc2P -x *.info -x *.info-* gsl-1.4/sys/infnan.c gsl-1.5/sys/infnan.c *** gsl-1.4/sys/infnan.c Fri Jul 25 15:18:16 2003 --- gsl-1.5/sys/infnan.c Sun Jun 20 18:41:17 2004 *************** *** 1,5 **** /* sys/infnan.c * ! * Copyright (C) 2001 Brian Gough * * This program is free software; you can redistribute it and/or modify --- 1,5 ---- /* sys/infnan.c * ! * Copyright (C) 2001, 2004 Brian Gough * * This program is free software; you can redistribute it and/or modify *************** *** 117,121 **** --- 117,127 ---- return isinf(x); } + #else + gsl_isinf (const double x) + { + return (! gsl_finite(x)) && (! gsl_isnan(x)); + } #endif + #if HAVE_DECL_FINITE diff -rc2P -x *.info -x *.info-* gsl-1.4/vector/gsl_vector_char.h gsl-1.5/vector/gsl_vector_char.h *** gsl-1.4/vector/gsl_vector_char.h Fri Jul 25 15:18:23 2003 --- gsl-1.5/vector/gsl_vector_char.h Sun Jun 6 15:47:49 2004 *************** *** 163,167 **** int gsl_vector_char_isnull (const gsl_vector_char * v); ! #if HAVE_INLINE extern inline --- 163,167 ---- int gsl_vector_char_isnull (const gsl_vector_char * v); ! #ifdef HAVE_INLINE extern inline diff -rc2P -x *.info -x *.info-* gsl-1.4/vector/gsl_vector_complex_double.h gsl-1.5/vector/gsl_vector_complex_double.h *** gsl-1.4/vector/gsl_vector_complex_double.h Fri Jul 25 15:18:23 2003 --- gsl-1.5/vector/gsl_vector_complex_double.h Sun Jun 6 15:47:49 2004 *************** *** 179,183 **** int gsl_vector_complex_isnull (const gsl_vector_complex * v); ! #if HAVE_INLINE extern inline --- 179,183 ---- int gsl_vector_complex_isnull (const gsl_vector_complex * v); ! #ifdef HAVE_INLINE extern inline diff -rc2P -x *.info -x *.info-* gsl-1.4/vector/gsl_vector_complex_float.h gsl-1.5/vector/gsl_vector_complex_float.h *** gsl-1.4/vector/gsl_vector_complex_float.h Fri Jul 25 15:18:23 2003 --- gsl-1.5/vector/gsl_vector_complex_float.h Sun Jun 6 15:47:49 2004 *************** *** 179,183 **** int gsl_vector_complex_float_isnull (const gsl_vector_complex_float * v); ! #if HAVE_INLINE extern inline --- 179,183 ---- int gsl_vector_complex_float_isnull (const gsl_vector_complex_float * v); ! #ifdef HAVE_INLINE extern inline diff -rc2P -x *.info -x *.info-* gsl-1.4/vector/gsl_vector_complex_long_double.h gsl-1.5/vector/gsl_vector_complex_long_double.h *** gsl-1.4/vector/gsl_vector_complex_long_double.h Fri Jul 25 15:18:23 2003 --- gsl-1.5/vector/gsl_vector_complex_long_double.h Sun Jun 6 15:47:49 2004 *************** *** 179,183 **** int gsl_vector_complex_long_double_isnull (const gsl_vector_complex_long_double * v); ! #if HAVE_INLINE extern inline --- 179,183 ---- int gsl_vector_complex_long_double_isnull (const gsl_vector_complex_long_double * v); ! #ifdef HAVE_INLINE extern inline diff -rc2P -x *.info -x *.info-* gsl-1.4/vector/gsl_vector_double.h gsl-1.5/vector/gsl_vector_double.h *** gsl-1.4/vector/gsl_vector_double.h Fri Jul 25 15:18:23 2003 --- gsl-1.5/vector/gsl_vector_double.h Sun Jun 6 15:47:49 2004 *************** *** 163,167 **** int gsl_vector_isnull (const gsl_vector * v); ! #if HAVE_INLINE extern inline --- 163,167 ---- int gsl_vector_isnull (const gsl_vector * v); ! #ifdef HAVE_INLINE extern inline diff -rc2P -x *.info -x *.info-* gsl-1.4/vector/gsl_vector_float.h gsl-1.5/vector/gsl_vector_float.h *** gsl-1.4/vector/gsl_vector_float.h Sat Aug 2 16:16:09 2003 --- gsl-1.5/vector/gsl_vector_float.h Sun Jun 6 15:47:49 2004 *************** *** 163,167 **** int gsl_vector_float_isnull (const gsl_vector_float * v); ! #if HAVE_INLINE extern inline --- 163,167 ---- int gsl_vector_float_isnull (const gsl_vector_float * v); ! #ifdef HAVE_INLINE extern inline diff -rc2P -x *.info -x *.info-* gsl-1.4/vector/gsl_vector_int.h gsl-1.5/vector/gsl_vector_int.h *** gsl-1.4/vector/gsl_vector_int.h Fri Jul 25 15:18:23 2003 --- gsl-1.5/vector/gsl_vector_int.h Sun Jun 6 15:47:49 2004 *************** *** 163,167 **** int gsl_vector_int_isnull (const gsl_vector_int * v); ! #if HAVE_INLINE extern inline --- 163,167 ---- int gsl_vector_int_isnull (const gsl_vector_int * v); ! #ifdef HAVE_INLINE extern inline diff -rc2P -x *.info -x *.info-* gsl-1.4/vector/gsl_vector_long.h gsl-1.5/vector/gsl_vector_long.h *** gsl-1.4/vector/gsl_vector_long.h Fri Jul 25 15:18:23 2003 --- gsl-1.5/vector/gsl_vector_long.h Sun Jun 6 15:47:49 2004 *************** *** 163,167 **** int gsl_vector_long_isnull (const gsl_vector_long * v); ! #if HAVE_INLINE extern inline --- 163,167 ---- int gsl_vector_long_isnull (const gsl_vector_long * v); ! #ifdef HAVE_INLINE extern inline diff -rc2P -x *.info -x *.info-* gsl-1.4/vector/gsl_vector_long_double.h gsl-1.5/vector/gsl_vector_long_double.h *** gsl-1.4/vector/gsl_vector_long_double.h Fri Jul 25 15:18:23 2003 --- gsl-1.5/vector/gsl_vector_long_double.h Sun Jun 6 15:47:49 2004 *************** *** 163,167 **** int gsl_vector_long_double_isnull (const gsl_vector_long_double * v); ! #if HAVE_INLINE extern inline --- 163,167 ---- int gsl_vector_long_double_isnull (const gsl_vector_long_double * v); ! #ifdef HAVE_INLINE extern inline diff -rc2P -x *.info -x *.info-* gsl-1.4/vector/gsl_vector_short.h gsl-1.5/vector/gsl_vector_short.h *** gsl-1.4/vector/gsl_vector_short.h Fri Jul 25 15:18:23 2003 --- gsl-1.5/vector/gsl_vector_short.h Sun Jun 6 15:47:49 2004 *************** *** 163,167 **** int gsl_vector_short_isnull (const gsl_vector_short * v); ! #if HAVE_INLINE extern inline --- 163,167 ---- int gsl_vector_short_isnull (const gsl_vector_short * v); ! #ifdef HAVE_INLINE extern inline diff -rc2P -x *.info -x *.info-* gsl-1.4/vector/gsl_vector_uchar.h gsl-1.5/vector/gsl_vector_uchar.h *** gsl-1.4/vector/gsl_vector_uchar.h Fri Jul 25 15:18:23 2003 --- gsl-1.5/vector/gsl_vector_uchar.h Sun Jun 6 15:47:49 2004 *************** *** 163,167 **** int gsl_vector_uchar_isnull (const gsl_vector_uchar * v); ! #if HAVE_INLINE extern inline --- 163,167 ---- int gsl_vector_uchar_isnull (const gsl_vector_uchar * v); ! #ifdef HAVE_INLINE extern inline diff -rc2P -x *.info -x *.info-* gsl-1.4/vector/gsl_vector_uint.h gsl-1.5/vector/gsl_vector_uint.h *** gsl-1.4/vector/gsl_vector_uint.h Fri Jul 25 15:18:23 2003 --- gsl-1.5/vector/gsl_vector_uint.h Sun Jun 6 15:47:49 2004 *************** *** 163,167 **** int gsl_vector_uint_isnull (const gsl_vector_uint * v); ! #if HAVE_INLINE extern inline --- 163,167 ---- int gsl_vector_uint_isnull (const gsl_vector_uint * v); ! #ifdef HAVE_INLINE extern inline diff -rc2P -x *.info -x *.info-* gsl-1.4/vector/gsl_vector_ulong.h gsl-1.5/vector/gsl_vector_ulong.h *** gsl-1.4/vector/gsl_vector_ulong.h Fri Jul 25 15:18:23 2003 --- gsl-1.5/vector/gsl_vector_ulong.h Sun Jun 6 15:47:49 2004 *************** *** 163,167 **** int gsl_vector_ulong_isnull (const gsl_vector_ulong * v); ! #if HAVE_INLINE extern inline --- 163,167 ---- int gsl_vector_ulong_isnull (const gsl_vector_ulong * v); ! #ifdef HAVE_INLINE extern inline diff -rc2P -x *.info -x *.info-* gsl-1.4/vector/gsl_vector_ushort.h gsl-1.5/vector/gsl_vector_ushort.h *** gsl-1.4/vector/gsl_vector_ushort.h Fri Jul 25 15:18:23 2003 --- gsl-1.5/vector/gsl_vector_ushort.h Sun Jun 6 15:47:49 2004 *************** *** 163,167 **** int gsl_vector_ushort_isnull (const gsl_vector_ushort * v); ! #if HAVE_INLINE extern inline --- 163,167 ---- int gsl_vector_ushort_isnull (const gsl_vector_ushort * v); ! #ifdef HAVE_INLINE extern inline