lstsq_space Interface

public interface lstsq_space

Computes the integer, real [, complex] working space required by the least-squares solver (Specification)

Description

This interface provides sizes of integer, real [, complex] working spaces required by the least-squares solver. These sizes can be used to pre-allocated working arrays in case several repeated least-squares solutions to a same system are sought. If pre-allocated working arrays are provided, no internal allocations will take place.


Subroutines

private pure module subroutine stdlib_linalg_c_lstsq_space_many(a, b, lrwork, liwork, lcwork)

Arguments

Type IntentOptional Attributes Name
complex(kind=sp), intent(in), target :: a(:,:)

Input matrix a[m,n]

complex(kind=sp), intent(in) :: b(:,:)

Right hand side vector or array, b[n] or b[n,nrhs]

integer(kind=ilp), intent(out) :: lrwork

Size of the working space arrays

integer(kind=ilp), intent(out) :: liwork

Size of the working space arrays

integer(kind=ilp), intent(out) :: lcwork

Size of the working space arrays

private pure module subroutine stdlib_linalg_c_lstsq_space_one(a, b, lrwork, liwork, lcwork)

Arguments

Type IntentOptional Attributes Name
complex(kind=sp), intent(in), target :: a(:,:)

Input matrix a[m,n]

complex(kind=sp), intent(in) :: b(:)

Right hand side vector or array, b[n] or b[n,nrhs]

integer(kind=ilp), intent(out) :: lrwork

Size of the working space arrays

integer(kind=ilp), intent(out) :: liwork

Size of the working space arrays

integer(kind=ilp), intent(out) :: lcwork

Size of the working space arrays

private pure module subroutine stdlib_linalg_d_lstsq_space_many(a, b, lrwork, liwork)

Arguments

Type IntentOptional Attributes Name
real(kind=dp), intent(in), target :: a(:,:)

Input matrix a[m,n]

real(kind=dp), intent(in) :: b(:,:)

Right hand side vector or array, b[n] or b[n,nrhs]

integer(kind=ilp), intent(out) :: lrwork

Size of the working space arrays

integer(kind=ilp), intent(out) :: liwork

Size of the working space arrays

private pure module subroutine stdlib_linalg_d_lstsq_space_one(a, b, lrwork, liwork)

Arguments

Type IntentOptional Attributes Name
real(kind=dp), intent(in), target :: a(:,:)

Input matrix a[m,n]

real(kind=dp), intent(in) :: b(:)

Right hand side vector or array, b[n] or b[n,nrhs]

integer(kind=ilp), intent(out) :: lrwork

Size of the working space arrays

integer(kind=ilp), intent(out) :: liwork

Size of the working space arrays

private pure module subroutine stdlib_linalg_s_lstsq_space_many(a, b, lrwork, liwork)

Arguments

Type IntentOptional Attributes Name
real(kind=sp), intent(in), target :: a(:,:)

Input matrix a[m,n]

real(kind=sp), intent(in) :: b(:,:)

Right hand side vector or array, b[n] or b[n,nrhs]

integer(kind=ilp), intent(out) :: lrwork

Size of the working space arrays

integer(kind=ilp), intent(out) :: liwork

Size of the working space arrays

private pure module subroutine stdlib_linalg_s_lstsq_space_one(a, b, lrwork, liwork)

Arguments

Type IntentOptional Attributes Name
real(kind=sp), intent(in), target :: a(:,:)

Input matrix a[m,n]

real(kind=sp), intent(in) :: b(:)

Right hand side vector or array, b[n] or b[n,nrhs]

integer(kind=ilp), intent(out) :: lrwork

Size of the working space arrays

integer(kind=ilp), intent(out) :: liwork

Size of the working space arrays

private pure module subroutine stdlib_linalg_z_lstsq_space_many(a, b, lrwork, liwork, lcwork)

Arguments

Type IntentOptional Attributes Name
complex(kind=dp), intent(in), target :: a(:,:)

Input matrix a[m,n]

complex(kind=dp), intent(in) :: b(:,:)

Right hand side vector or array, b[n] or b[n,nrhs]

integer(kind=ilp), intent(out) :: lrwork

Size of the working space arrays

integer(kind=ilp), intent(out) :: liwork

Size of the working space arrays

integer(kind=ilp), intent(out) :: lcwork

Size of the working space arrays

private pure module subroutine stdlib_linalg_z_lstsq_space_one(a, b, lrwork, liwork, lcwork)

Arguments

Type IntentOptional Attributes Name
complex(kind=dp), intent(in), target :: a(:,:)

Input matrix a[m,n]

complex(kind=dp), intent(in) :: b(:)

Right hand side vector or array, b[n] or b[n,nrhs]

integer(kind=ilp), intent(out) :: lrwork

Size of the working space arrays

integer(kind=ilp), intent(out) :: liwork

Size of the working space arrays

integer(kind=ilp), intent(out) :: lcwork

Size of the working space arrays