FORTRAN SOFTWARE CATALOG

Repository owner: Jason Christopherson (jchristopherson)

nonlin

Object-oriented solvers for nonlinear equations, least squares and optimization.

Repository · Pinned source (2133d067886e) · Try in playground · Checked package example

GAMS classifications

About this package

Category
Roots and optimization
License
MIT; linalg dependency bundles GPL-3.0-or-later QRUPDATE

Topics: bfgs, fortran, least-squares, levenberg-marquardt, nelder-mead, newton-raphson-multivariable, newtons-method, nonlinear-equations, optimization, polynomials, quasi-newton, root-finding

Package dependencies

Resolved GitHub repositories used by the verified playground build, combining direct and indirect dependencies. This list does not describe internal module dependencies or native system libraries.

Required by this build

Build record verified 2026-10-28.

Used by (1 selected package)

These selected builds include this repository directly or indirectly. Each link to source identifies the revision that build uses.

Reviewed procedures

These mappings have pinned source evidence. A checked package example may exercise only some of them; source review is not a numerical benchmark.

bfgs%solve

Module: nonlin

G1b1a G1b1b

G1b1a: source-supported; G1b1b: verified

Derivatives / callbacks: optional user gradient; finite-difference fallback

User gradients are registered with fcnnvar_helper%set_gradient_fcn. G1b1a applies to finite-difference mode; G1b1b applies when the user supplies the gradient/Jacobian. The driver, where present, identifies its selected configuration.

Pinned source: src/nonlin_optimize.f90 · src/nonlin_multi_var.f90

Author examples/tests: examples/nonlin_bfgs_example.f90 · examples/example_problems.f90

Load checked GAMS driver: gams-nonlin-rosenbrock-bfgs

least_squares_solver%solve

Module: nonlin

G1b1a G1b1b

G1b1a: source-supported; G1b1b: verified

Derivatives / callbacks: optional user residual Jacobian

The unconstrained least_squares_solver is mapped; constrained_least_squares_solver is a distinct type. For smooth nonlinear least squares, the user residual Jacobian supplies first-derivative information for the squared-residual objective; this is not a general scalar-objective gradient interface. G1b1a applies to finite-difference mode; G1b1b applies when the user supplies the gradient/Jacobian. The driver, where present, identifies its selected configuration.

Pinned source: src/nonlin_least_squares.f90

Author examples/tests: examples/nonlin_least_squares_example.f90

Load checked GAMS driver: gams-nonlin-lsq-jacobian-reference

newton_solver%solve

Module: nonlin

F2

F2: verified

Derivatives / callbacks: optional user Jacobian; finite-difference fallback

Newton solution of nonlinear systems through vecfcn_helper. The checked F2 driver solves [1-x,10*(y-x**2)]=0 from [-1.2,1] and [2,2], requiring the known root [1,1], small recomputed residuals and documented successful termination. Configuration: finite-difference and analytic Jacobians. Other problem dimensions, singular systems and global convergence are not verified.

Pinned source: src/nonlin_solve.f90

Author examples/tests: examples/nonlin_newton_example.f90

Load checked GAMS driver: gams-nonlin-rosenbrock-system