minpack icon indicating copy to clipboard operation
minpack copied to clipboard

Port features from certik/minpack

Open certik opened this issue 3 years ago • 3 comments
trafficstars

I have archived the https://github.com/certik/minpack repository and moved the open issue from there to here. What remains is to port all the improvements that were implemented there over to this repository.

The tree from the other repo is available at https://github.com/fortran-lang/minpack/tree/c0dc9cd as well.

certik avatar Feb 02 '22 20:02 certik

Here's a small batch of commits I looked at:

  • https://github.com/certik/minpack/commit/a8021e3a2d8dca96395081d52713af30f95dde16, Use epsilon() intrinsic; solved by module parameter in line https://github.com/fortran-lang/minpack/blob/026c4e6229a2a3c65f1b628a66a8ccc0075125f2/src/minpack.f90#L16
  • https://github.com/certik/minpack/commit/8261e8afdcc7d80ade1e1b523891f0a0d9fa3d01, Make dpmpar portable using epsilon, tiny and huge; see dpmpar module parameter above
  • https://github.com/certik/minpack/commit/e0544f7cfb685e1ba82ee4c96fff77786049628f, Remove ibmdpdr.f; file doesn't exist in this repository
  • https://github.com/certik/minpack/commit/f9e807abc2071e47ccc98191e159d7f8b3114d91, Move *drv.f into ex/; the present project has moved the example drivers to the /test folder. Upon first glance, I couldn't figure out what happened to the file ucodrv.f.

ivan-pi avatar Feb 03 '22 22:02 ivan-pi

I'm not sure if you're aware, but there seems to be another modernised F90 version by John Burkardt around, not sure if that could be useful when comparing different implementations or so? https://people.sc.fsu.edu/~jburkardt/f_src/minpack/minpack.html

bilderbuchi avatar Sep 26 '22 12:09 bilderbuchi

I don't think we need it for anything. We tested the refactored version against the original one and made sure the results were the same. I think ours is superior to other refactoring attempts I've seen for various reasons (ours is in a module so we get interface checking, permissive license, more effective refactoring/goto removals/etc, all real constants use the kind parameter rather than D0, fully integrated with the Fortran Package Manager, etc.)

jacobwilliams avatar Sep 26 '22 15:09 jacobwilliams