FGSL 1.6.0 released

Version 1.6.0 of the Fortran GNU scientific library binding has been released. The source code archives can be picked up at FGSL - A Fortran interface to the GNU Scientific Library - LRZ Dokumentationsplattform

Alternatively, the github repo at GitHub - reinh-bader/fgsl: Fortran interface to the GNU Scientific Library provides a tagged release.

Regards
Reinhold

15 Likes

Thanks for your project. The contents of the GSL are

  • Complex Numbers
  • Roots of Polynomials
  • Special Functions
  • Vectors and Matrices
  • Permutations
  • Sorting
  • BLAS Support
  • Linear Algebra
  • Eigensystems
  • Fast Fourier Transforms
  • Quadrature
  • Random Numbers
  • Quasi-Random Sequences
  • Random Distributions
  • Statistics
  • Histograms
  • N-Tuples
  • Monte Carlo Integration
  • Simulated Annealing
  • Differential Equations
  • Interpolation
  • Numerical Differentiation
  • Chebyshev Approximation
  • Series Acceleration
  • Discrete Hankel Transforms
  • Root-Finding
  • Minimization
  • Least-Squares Fitting
  • Physical Constants
  • IEEE Floating-Point
  • Discrete Wavelet Transforms
  • Basis splines
  • Running Statistics
  • Sparse Matrices and Linear Algebra

Could GSL users here say which categories have a lot of functionality that is missing from existing Fortran libraries. Knowing that would help a Fortran programmer know when to call GSL and also suggest areas where open-source Fortran developers could fill gaps.

1 Like

It should be noted that (F)GSL is under the GPL (not LGPL) licence , i.e. derived works (programs or libraries) have to be published under GPL too.

While this is perfectly legitimate, one should be aware of that before using (F)GSL in own projects.

1 Like

@Reinhold_Bader Hero.

Hopefully a new maintainer is willing to continue his legacy: Reinhold Bader (1966 - 2024)

I noticed that Reinhold already prepared a 2.0.0 release (GitHub - reinh-bader/fgsl at fgsl_devel_2.0.0), but never got the chance to merge it.

Changes in 2.0.0:
~~~~~~~~~~~~~~~~~

This release restructures the source code by providing multiple
modules, which individually are easier to read, understand, and
maintain. The organization is mostly analogous to the C source code,
i.e., a Fortran module fgsl_interp exists in analogy to the
C header gsl_interp.h. This rule is only ignored in cases of name
collisions. All fgsl_*.?90 files are placed in the
modules folder. For modules that need additional C glue code,
an appropriately named file fgsl_*_c.c exists in the csub folder.

The release also introduces support for gsl 2.8.

Here an overview of the relevant additions:

1. fgsl_complex_math: the legacy complex type has been removed;
   interface added: fgsl_complex_polar
2. mappings of the gsl_linalg routines
   - gsl_linalg_sv_{solve2, lssolve}
   - gsl_linalg_qr_lssolvem_r, gsl_linalg_complex_qr_lssolvem_r
   - gsl_linalg_complex_qr_qhmat_r
   - gsl_linalg_qr_ud_lssvx,
   - gsl_linalg_qr_ur_{lssolve, lssvx, qtvec}
   - gsl_linalg_complex_cholesky_{scale, scale_apply, decomp2, 
     svx2, solve2}
3. mapping of gsl_rstat_norm
4. mappings for Lebedev integration (unit sphere)
5. removed gsl_bspline_eval_nonzero, gsl_bspline_deriv_eval_nonzero
   since these do not appear in gsl_bspline.h any more; other
   deprecated calls are appropriately marked
6. new mappings from gsl_bspline.h, including the nine example 
   programs
7. mappings to gsl_linalg_LU_band* from gsl_linalg.h added; 
   includes limited and non-portable (!) support for gsl_vector_uint
8. Reworked statistics, added TSS functions
   
   
Fixes:

-  the examples now all use the standard output unit for writes to stdout; 
   newunit= is used for dynamically creating unit values otherwise.
-  unit testing now returns exit status 1 on error, assuring that 
   failures are signalled.
1 Like