Skip to content

cminpack 1.3.13

Latest

Choose a tag to compare

@devernay devernay released this 16 Jul 21:22

cminpack 1.3.13

Correctness fixes

  • Fix a division by zero in covar1 when the Jacobian rank equals the number of residuals (m == rank, e.g. square full-rank problems), which produced Inf/NaN throughout the covariance matrix.
  • Make the banded finite-difference branch of fdjac1 call the user function with iflag=2, like the dense branch, fdjac2 and the FORTRAN version.
  • Fix the USE_BLAS Newton correction in lmpar to use all n components (it was truncated to the original Jacobian rank, giving a wrong step for rank-deficient problems).
  • Fix the jpvt memset size in the USE_LAPACK qrfac, and make the work-array size checks in hybrd, hybrj, hybrd1, hybrj1 and lmdif1 overflow-safe (also in the f2c versions).
  • Guard a harmless transient infinity in dogleg for rank-deficient Jacobians (also in the f2c version).

Build & CI

  • Add a USE_LAPACK CMake option to build the LAPACK-based QR factorization (qrfac), which was previously only reachable through the Makefile.
  • Exercise the BLAS and LAPACK builds in CI and run the full test suite (including tlmdifc) for them; add the intensive driver programs (lmddrvc, lmfdrvc, lmsdrvc, hyjdrvc, hybdrvc, chkdrvc) as smoke tests and run the FORTRAN example tests in CI.