35 #include "qrm_common.h" 59 _qrm_data,
allocatable :: tmp(:,:)
60 _qrm_real,
allocatable :: rnrm(:)
65 character(len=*),
parameter :: name=
'qrm_residual_orth' 70 __qrm_check_ret(name,
'qrm_check_spmat',9999)
76 call qrm_matmul(qrm_mat,
't', _qrm_one, r, _qrm_zero, tmp)
120 _qrm_data,
allocatable :: tmp(:)
126 character(len=*),
parameter :: name=
'qrm_residual_orth' 131 __qrm_check_ret(name,
'qrm_check_spmat',9999)
136 call qrm_matmul(qrm_mat,
't', _qrm_one, r, _qrm_zero, tmp)
142 nrm = nrm/(rnrm*anrm)
181 _qrm_data :: b(:,:), x(:,:)
184 _qrm_data,
allocatable :: tmp(:,:)
185 _qrm_real,
allocatable :: rnrm(:)
189 character(len=*),
parameter :: name=
'qrm_residual_orth' 194 __qrm_check_ret(name,
'qrm_check_spmat',9999)
197 call qrm_matmul(qrm_mat,
'n', -_qrm_one, x, _qrm_one, b)
203 call qrm_matmul(qrm_mat,
't', _qrm_one, b, _qrm_zero, tmp)
244 _qrm_data :: b(:), x(:)
247 _qrm_data,
allocatable :: tmp(:)
252 character(len=*),
parameter :: name=
'qrm_residual_orth' 257 __qrm_check_ret(name,
'qrm_check_spmat',9999)
260 call qrm_matmul(qrm_mat,
'n', -_qrm_one, x, _qrm_one, b)
265 call qrm_matmul(qrm_mat,
't', _qrm_one, b, _qrm_zero, tmp)
This module contains generic interfaces for a number of auxiliary tools.
Generic interface for the qrm_adealloc_i, qrm_adealloc_2i, qrm_adealloc_s, qrm_adealloc_2s, qrm_adealloc_3s, qrm_adealloc_d, qrm_adealloc_2d, qrm_adealloc_3d, qrm_adealloc_c, qrm_adealloc_2c, qrm_adealloc_3c, qrm_adealloc_z, qrm_adealloc_2z, qrm_adealloc_3z, routines.
subroutine _qrm_residual_orth2d(qrm_mat, r, nrm)
This routine computes the scaled norm of the product A'*r for multiple residuals. ...
subroutine _qrm_residual_and_orth1d(qrm_mat, b, x, nrm)
This routine computes the scaled norm of the product A'*r.
subroutine qrm_err_act_save(err_act)
Saves a copy of the qrm_err_act variable.
subroutine _qrm_residual_and_orth2d(qrm_mat, b, x, nrm)
This routine computes the scaled norm of the product A'*r.
This module contains all the error management routines and data.
Generic interface for the ::_qrm_vecnrm2d and ::_qrm_vecnrm1d routines.
Generic interface for the qrm_aalloc_i, qrm_aalloc_2i, qrm_aalloc_s, qrm_aalloc_2s, qrm_aalloc_3s, qrm_aalloc_d, qrm_aalloc_2d, qrm_aalloc_3d, qrm_aalloc_c, qrm_aalloc_2c, qrm_aalloc_3c, qrm_aalloc_z, qrm_aalloc_2z, qrm_aalloc_3z, routines.
integer, parameter qrm_abort_
Possible actions to be performed upon detection of an error.
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.
This module implements the memory handling routines. Pretty mucch allocations and deallocations...
subroutine _qrm_residual_orth1d(qrm_mat, r, nrm)
This routine computes the scaled norm of the product A'*r.
subroutine qrm_err_act_restore(err_act)
Restores the value of the qrm_err_act variable.
Generic interface for the ::_qrm_matmul2d and ::_qrm_matmul1d routines.