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)
94 if(err_act .eq. qrm_abort_)
then
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)
164 if(err_act .eq. qrm_abort_)
then
This module contains all the error management routines and data.
subroutine _qrm_min_norm2d(qrm_mat, b, x)
This routine computes the min-norm solution of a problem.
This module contains all the generic interfaces for the typed routines in the factorization phase...
This module contains the generic interfaces for all the analysis routines.
subroutine qrm_err_act_restore(err_act)
Restores the value of the qrm_err_act variable.
subroutine _qrm_apply2d(qrm_mat, transp, b)
This function applies Q or Q^T to a set of vectors.
subroutine qrm_err_check()
This subroutine checks the errors stack. If something is found all the entries in the stack are poppe...
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.
This module contains all the interfaces for the typed routines in the solve phase.
This type defines the data structure used to store a matrix.
subroutine _qrm_check_spmat(qrm_spmat, op)
Check the compatibility and correctness of icntl and rcntl parameters.
This module contains the definition of the basic sparse matrix type and of the associated methods...
This module implements the memory handling routines. Pretty mucch allocations and deallocations...
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.
subroutine qrm_err_push(code, sub, ied, aed)
This subroutine pushes an error on top of the stack.
subroutine qrm_err_act_save(err_act)
Saves a copy of the qrm_err_act variable.