fortran-lapack
fortran-lapack copied to clipboard
Modularized Fortran LAPACK implementation
Compute the condition number of a matrix
To complement the `inv` function, a pseudo-inverse function named `pinv` as in Matlab would be useful. It can be computed using Lapack routines https://fortran-lang.discourse.group/t/what-is-the-best-pseudo-inverse-moore-penrose-inverse-subroutine/3936
I think stdlib_scsum1 in stdlib_linalg_lapack_s.f90 can be rewritten without gotos as ``` pure real(sp) function stdlib_scsum1(n,cx,incx) ! -- lapack auxiliary routine -- ! -- lapack is a software package provided...
In stdlib_linalg_lapack_s.f90 in `stdlib_slartg` there is an `else if` that is not indented consistently with the rest of the block. It's a minor thing, but ultimately there should be an...
See https://fortran-lang.discourse.group/t/linear-algebra-api-call-for-feedback/7455/3 Ideally, we would like for each API operation: - a `subroutine` version, that performs _no_ internal allocations, and `intent(inout)` arguments where necessary - a `function` version, that has...
Some random thoughts: `eye` is just a special case of `diag` with a scalar, and has not a simpler interface (because most of time the `mold` parameter will be coded...
We already discussed that on Discourse. BLAS/LAPACK routines mostly use assumed size arrays, thus contiguous arrays, but can handle non contiguous data by using the `inc*`/`ld*` arguments. In the modern...
- Document linear algebra functions
`solve` should also work for non-square matrices (e.g. Matlab). It should return the least-squares solution.
According to https://fortran-lang.org/learn/best_practices/arrays/ assumed-size arrays are the least preferred form of array argument. Also `real(dp) :: dx(n)` is more self-documenting than `real(dp) :: dx(*)`.