FORTRAN SOFTWARE CATALOG

Repository owner: william-dawson

ntpoly

Sparse matrix functions and inverse solvers; single-process MPI example.

Repository · Pinned source (7b3d22f76226) · Try in playground · Checked package example

GAMS classifications

About this package

Category
Linear algebra
License
MIT

Topics: centrality, density-functional-theory, electronic-structure, graph-algorithms, high-performance-computing, linear-algebra, massively-parallel, matrix-functions, matrix-inverse, matrix-library, matrix-square-root, mpi, quantum-chemistry, sparse-matrices, sparse-matrix

Classification scope and review notes

The upstream Fortran library source set is wrapped for FPM with pinned MPICH and OpenBLAS native dependencies. The verified example uses exactly one MPI process, serialized MPI thread support and shared-memory/self UCX transports in the restricted sandbox. For a real symmetric positive-definite 2-by-2 matrix with eigenvalues 1 and 9, it checks SquareRoot, InverseSquareRoot and Invert against analytic matrices and independent product residuals, rejecting nonfinite values. D covers matrix functions and D2 covers inversion. Multiple MPI processes, distributed scaling, complex matrices and other solver families are outside this verification scope. Local exports require MPI/OpenBLAS development libraries and locally appropriate compiler/linker flags.

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

No additional GitHub package dependencies were recorded for this verified build.

Build record verified 2026-10-29.

Used by (0 selected packages)

No other selected build records this repository as a dependency. This is not a measure of usage outside the catalog.

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.

SquareRoot / InverseSquareRoot

Module: SquareRootSolversModule

D

D: verified

Derivatives / callbacks: not applicable

The upstream Fortran library source set is wrapped for FPM with pinned MPICH and OpenBLAS native dependencies. The verified example uses exactly one MPI process, serialized MPI thread support and shared-memory/self UCX transports in the restricted sandbox. For a real symmetric positive-definite 2-by-2 matrix with eigenvalues 1 and 9, it checks SquareRoot, InverseSquareRoot and Invert against analytic matrices and independent product residuals, rejecting nonfinite values. D covers matrix functions and D2 covers inversion. Multiple MPI processes, distributed scaling, complex matrices and other solver families are outside this verification scope. Local exports require MPI/OpenBLAS development libraries and locally appropriate compiler/linker flags. Dedicated D consumer checks 24 known SPD matrices in dimensions 2/3 and their principal square/inverse-square roots against independently constructed orthogonal-factor formulas. Three rotations and four positive-root pairs give 48 matrix-function calls; scalar products check root squared, inverse-root congruence and mutual inverse identity. Exactly one MPI process. Does not verify the separate Invert/D2 API, distributed scaling, complex/indefinite/singular matrices or large sparse behavior.

Pinned source: Source/Fortran/SquareRootSolversModule.F90

Author examples/tests: Examples/PremadeMatrix/main.f90

Load checked GAMS driver: gams-ntpoly-matrix-root-reference

Invert

Module: InverseSolversModule

D2

D2: verified

Derivatives / callbacks: not applicable

The upstream Fortran library source set is wrapped for FPM with pinned MPICH and OpenBLAS native dependencies. The verified example uses exactly one MPI process, serialized MPI thread support and shared-memory/self UCX transports in the restricted sandbox. For a real symmetric positive-definite 2-by-2 matrix with eigenvalues 1 and 9, it checks SquareRoot, InverseSquareRoot and Invert against analytic matrices and independent product residuals, rejecting nonfinite values. D covers matrix functions and D2 covers inversion. Multiple MPI processes, distributed scaling, complex matrices and other solver families are outside this verification scope. Local exports require MPI/OpenBLAS development libraries and locally appropriate compiler/linker flags.

Pinned source: Source/Fortran/InverseSolversModule.F90

Author examples/tests: Examples/PremadeMatrix/main.f90

Load checked GAMS driver: gams-ntpoly-inverse-reference