34 #include "qrm_common.h" 59 _qrm_data :: b(:,:), x(:,:)
63 character(len=*),
parameter :: name=
'qrm_min_norm' 67 __qrm_prnt_dbg(
'("Entering the min-norm driver")')
70 __qrm_check_ret(name,
'qrm_check_spmat',9999)
72 if(qrm_mat%n .lt. qrm_mat%m)
then 73 call qrm_err_push(31, name,ied=(/qrm_mat%m,qrm_mat%n,0,0,0/))
79 __qrm_check_ret(name,
'qrm_analyse',9999)
82 __qrm_check_ret(name,
'qrm_factorize',9999)
85 __qrm_check_ret(name,
'qrm_solve',9999)
87 __qrm_check_ret(name,
'qrm_apply',9999)
127 _qrm_data :: b(:), x(:)
132 character(len=*),
parameter :: name=
'qrm_min_norm' 136 __qrm_prnt_dbg(
'("Entering the least-squares driver")')
139 __qrm_check_ret(name,
'qrm_check_spmat',9999)
141 if(qrm_mat%n .lt. qrm_mat%m)
then 142 call qrm_err_push(31, name,ied=(/qrm_mat%m,qrm_mat%n,0,0,0/))
148 __qrm_check_ret(name,
'qrm_analyse',9999)
152 __qrm_check_ret(name,
'qrm_factorize',9999)
155 __qrm_check_ret(name,
'qrm_solve',9999)
157 __qrm_check_ret(name,
'qrm_apply',9999)
subroutine _qrm_min_norm2d(qrm_mat, b, x)
This routine computes the min-norm solution of a problem.
subroutine qrm_err_push(code, sub, ied, aed)
This subroutine pushes an error on top of the stack.
This module contains all the generic interfaces for the typed routines in the factorization phase...
subroutine _qrm_apply2d(qrm_mat, transp, b)
This function applies Q or Q^T to a set of vectors.
This module contains all the interfaces for the typed routines in the solve phase.
subroutine qrm_err_act_save(err_act)
Saves a copy of the qrm_err_act variable.
This module contains all the error management routines and data.
subroutine _qrm_analyse(qrm_mat, transp)
This is the driver routine for the analysis phase.
subroutine _qrm_min_norm1d(qrm_mat, b, x)
This routine computes the min-norm solution of a problem.
subroutine _qrm_solve1d(qrm_mat, transp, b, x)
This function solves for R or R' against a single vector.
subroutine _qrm_apply1d(qrm_mat, transp, b)
This function applies Q or Q^T to a single vector.
integer, parameter qrm_abort_
Possible actions to be performed upon detection of an error.
This module contains the generic interfaces for all the analysis routines.
subroutine qrm_err_check()
This subroutine checks the errors stack. If something is found all the entries in the stack are poppe...
This type defines the data structure used to store a matrix.
This module contains the definition of the basic sparse matrix type and of the associated methods...
subroutine _qrm_check_spmat(qrm_spmat, op)
Check the compatibility and correctness of icntl and rcntl parameters.
subroutine _qrm_factorize(qrm_mat, transp)
This routine is the main factorization driver.
subroutine _qrm_solve2d(qrm_mat, transp, b, x)
This function solves for R or R' against multiple vectors.
This module implements the memory handling routines. Pretty mucch allocations and deallocations...
subroutine qrm_err_act_restore(err_act)
Restores the value of the qrm_err_act variable.