QR_MUMPS
 All Classes Files Functions Variables Enumerations Enumerator Pages
dqrm_methods_mod.F90
Go to the documentation of this file.
1 !! ##############################################################################################
2 !!
3 !! Copyright 2012 CNRS, INPT
4 !!
5 !! This file is part of qr_mumps.
6 !!
7 !! qr_mumps is free software: you can redistribute it and/or modify
8 !! it under the terms of the GNU Lesser General Public License as
9 !! published by the Free Software Foundation, either version 3 of
10 !! the License, or (at your option) any later version.
11 !!
12 !! qr_mumps is distributed in the hope that it will be useful,
13 !! but WITHOUT ANY WARRANTY; without even the implied warranty of
14 !! MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 !! GNU Lesser General Public License for more details.
16 !!
17 !! You can find a copy of the GNU Lesser General Public License
18 !! in the qr_mumps/doc directory.
19 !!
20 !! ##############################################################################################
21 
22 
23 !! ##############################################################################################
33 
34 
37 
38 
41  end interface dqrm_least_squares
42 
44  subroutine dqrm_least_squares2d(qrm_mat, b, x)
45  use dqrm_spmat_mod
46  type(dqrm_spmat_type) :: qrm_mat
47  real(kind(1.d0)) :: b(:,:), x(:,:)
48  end subroutine dqrm_least_squares2d
49  subroutine dqrm_least_squares1d(qrm_mat, b, x)
50  use dqrm_spmat_mod
51  type(dqrm_spmat_type) :: qrm_mat
52  real(kind(1.d0)) :: b(:), x(:)
53  end subroutine dqrm_least_squares1d
54  end interface qrm_least_squares
55 
56 
57 
58  interface dqrm_min_norm
59  module procedure dqrm_min_norm2dw, dqrm_min_norm1dw
60  end interface dqrm_min_norm
61 
62  interface qrm_min_norm
63  subroutine dqrm_min_norm2d(qrm_mat, b, x)
64  use dqrm_spmat_mod
65  type(dqrm_spmat_type) :: qrm_mat
66  real(kind(1.d0)) :: b(:,:), x(:,:)
67  end subroutine dqrm_min_norm2d
68  subroutine dqrm_min_norm1d(qrm_mat, b, x)
69  use dqrm_spmat_mod
70  type(dqrm_spmat_type) :: qrm_mat
71  real(kind(1.d0)) :: b(:), x(:)
72  end subroutine dqrm_min_norm1d
73  end interface qrm_min_norm
74 
75 
78  end interface dqrm_residual_norm
79 
81  subroutine dqrm_residual_norm2d(qrm_mat, b, x, nrm)
82  use dqrm_spmat_mod
83  real(kind(1.d0)) :: nrm(:)
84  type(dqrm_spmat_type) :: qrm_mat
85  real(kind(1.d0)) :: b(:,:), x(:,:)
86  end subroutine dqrm_residual_norm2d
87  subroutine dqrm_residual_norm1d(qrm_mat, b, x, nrm)
88  use dqrm_spmat_mod
89  real(kind(1.d0)) :: nrm
90  type(dqrm_spmat_type) :: qrm_mat
91  real(kind(1.d0)) :: b(:), x(:)
92  end subroutine dqrm_residual_norm1d
93  end interface qrm_residual_norm
94 
95 
96 
100  end interface dqrm_residual_orth
101 
103  subroutine dqrm_residual_orth2d(qrm_mat, r, nrm)
104  use dqrm_spmat_mod
105  real(kind(1.d0)) :: nrm(:)
106  type(dqrm_spmat_type) :: qrm_mat
107  real(kind(1.d0)) :: r(:,:)
108  end subroutine dqrm_residual_orth2d
109  subroutine dqrm_residual_orth1d(qrm_mat, r, nrm)
110  use dqrm_spmat_mod
111  real(kind(1.d0)) :: nrm
112  type(dqrm_spmat_type) :: qrm_mat
113  real(kind(1.d0)) :: r(:)
114  end subroutine dqrm_residual_orth1d
115  subroutine dqrm_residual_and_orth2d(qrm_mat, b, x, nrm)
116  use dqrm_spmat_mod
117  real(kind(1.d0)) :: nrm(:)
118  type(dqrm_spmat_type) :: qrm_mat
119  real(kind(1.d0)) :: b(:,:), x(:,:)
120  end subroutine dqrm_residual_and_orth2d
121  subroutine dqrm_residual_and_orth1d(qrm_mat, b, x, nrm)
122  use dqrm_spmat_mod
123  real(kind(1.d0)) :: nrm
124  type(dqrm_spmat_type) :: qrm_mat
125  real(kind(1.d0)) :: b(:), x(:)
126  end subroutine dqrm_residual_and_orth1d
127  end interface qrm_residual_orth
128 
129 
130 contains
131 
132  subroutine dqrm_least_squares2dw(qrm_mat, b, x)
133  use dqrm_spmat_mod
134  type(dqrm_spmat_type) :: qrm_mat
135  real(kind(1.d0)) :: b(:,:), x(:,:)
136  call dqrm_least_squares2d(qrm_mat, b, x)
137  return
138  end subroutine dqrm_least_squares2dw
139 
140  subroutine dqrm_least_squares1dw(qrm_mat, b, x)
141  use dqrm_spmat_mod
142  type(dqrm_spmat_type) :: qrm_mat
143  real(kind(1.d0)) :: b(:), x(:)
144  call dqrm_least_squares1d(qrm_mat, b, x)
145  return
146  end subroutine dqrm_least_squares1dw
147 
148 
149  subroutine dqrm_min_norm2dw(qrm_mat, b, x)
150  use dqrm_spmat_mod
151  type(dqrm_spmat_type) :: qrm_mat
152  real(kind(1.d0)) :: b(:,:), x(:,:)
153  call dqrm_min_norm2d(qrm_mat, b, x)
154  return
155  end subroutine dqrm_min_norm2dw
156 
157  subroutine dqrm_min_norm1dw(qrm_mat, b, x)
158  use dqrm_spmat_mod
159  type(dqrm_spmat_type) :: qrm_mat
160  real(kind(1.d0)) :: b(:), x(:)
161  call dqrm_min_norm1d(qrm_mat, b, x)
162  return
163  end subroutine dqrm_min_norm1dw
164 
165 
166  subroutine dqrm_residual_norm2dw(qrm_mat, b, x, nrm)
167  use dqrm_spmat_mod
168  real(kind(1.d0)) :: nrm(:)
169  type(dqrm_spmat_type) :: qrm_mat
170  real(kind(1.d0)) :: b(:,:), x(:,:)
171  call dqrm_residual_norm2d(qrm_mat, b, x, nrm)
172  return
173  end subroutine dqrm_residual_norm2dw
174 
175  subroutine dqrm_residual_norm1dw(qrm_mat, b, x, nrm)
176  use dqrm_spmat_mod
177  real(kind(1.d0)) :: nrm
178  type(dqrm_spmat_type) :: qrm_mat
179  real(kind(1.d0)) :: b(:), x(:)
180  call dqrm_residual_norm1d(qrm_mat, b, x, nrm)
181  return
182  end subroutine dqrm_residual_norm1dw
183 
184 
185 
186  subroutine dqrm_residual_orth2dw(qrm_mat, r, nrm)
187  use dqrm_spmat_mod
188  real(kind(1.d0)) :: nrm(:)
189  type(dqrm_spmat_type) :: qrm_mat
190  real(kind(1.d0)) :: r(:,:)
191  call dqrm_residual_orth2d(qrm_mat, r, nrm)
192  return
193  end subroutine dqrm_residual_orth2dw
194 
195  subroutine dqrm_residual_orth1dw(qrm_mat, r, nrm)
196  use dqrm_spmat_mod
197  real(kind(1.d0)) :: nrm
198  type(dqrm_spmat_type) :: qrm_mat
199  real(kind(1.d0)) :: r(:)
200  call dqrm_residual_orth1d(qrm_mat, r, nrm)
201  return
202  end subroutine dqrm_residual_orth1dw
203 
204  subroutine dqrm_residual_and_orth2dw(qrm_mat, b, x, nrm)
205  use dqrm_spmat_mod
206  real(kind(1.d0)) :: nrm(:)
207  type(dqrm_spmat_type) :: qrm_mat
208  real(kind(1.d0)) :: b(:,:), x(:,:)
209  call dqrm_residual_and_orth2d(qrm_mat, b, x, nrm)
210  return
211  end subroutine dqrm_residual_and_orth2dw
212 
213  subroutine dqrm_residual_and_orth1dw(qrm_mat, b, x, nrm)
214  use dqrm_spmat_mod
215  real(kind(1.d0)) :: nrm
216  type(dqrm_spmat_type) :: qrm_mat
217  real(kind(1.d0)) :: b(:), x(:)
218  call dqrm_residual_and_orth1d(qrm_mat, b, x, nrm)
219  return
220  end subroutine dqrm_residual_and_orth1dw
221 
222 
223 end module dqrm_methods_mod
subroutine dqrm_residual_norm1d(qrm_mat, b, x, nrm)
This routine computes the scaled norm of the residual.
subroutine dqrm_least_squares1dw(qrm_mat, b, x)
subroutine dqrm_residual_norm1dw(qrm_mat, b, x, nrm)
This module contains generic methods.
subroutine dqrm_residual_orth2dw(qrm_mat, r, nrm)
subroutine dqrm_residual_and_orth1d(qrm_mat, b, x, nrm)
This routine computes the scaled norm of the product A'*r.
subroutine dqrm_least_squares2d(qrm_mat, b, x)
This routine computes the least-squares solution of a problem.
subroutine dqrm_residual_and_orth2dw(qrm_mat, b, x, nrm)
This module contains the definition of the basic sparse matrix type and of the associated methods...
subroutine dqrm_min_norm2d(qrm_mat, b, x)
This routine computes the min-norm solution of a problem.
subroutine dqrm_residual_orth1d(qrm_mat, r, nrm)
This routine computes the scaled norm of the product A'*r.
subroutine dqrm_min_norm2dw(qrm_mat, b, x)
subroutine dqrm_residual_and_orth2d(qrm_mat, b, x, nrm)
This routine computes the scaled norm of the product A'*r.
subroutine dqrm_min_norm1dw(qrm_mat, b, x)
This type defines the data structure used to store a matrix.
subroutine dqrm_least_squares1d(qrm_mat, b, x)
This routine computes the least-squares solution of a problem.
subroutine dqrm_min_norm1d(qrm_mat, b, x)
This routine computes the min-norm solution of a problem.
subroutine dqrm_residual_orth2d(qrm_mat, r, nrm)
This routine computes the scaled norm of the product A'*r for multiple residuals. ...
subroutine dqrm_residual_norm2dw(qrm_mat, b, x, nrm)
subroutine dqrm_residual_norm2d(qrm_mat, b, x, nrm)
This routine computes the scaled norm of multiple residuals.
subroutine dqrm_residual_orth1dw(qrm_mat, r, nrm)
subroutine dqrm_least_squares2dw(qrm_mat, b, x)
subroutine dqrm_residual_and_orth1dw(qrm_mat, b, x, nrm)