/[escript]/branches/diaplayground/cusplibrary/cusp/krylov/cg_m.h
ViewVC logotype

Contents of /branches/diaplayground/cusplibrary/cusp/krylov/cg_m.h

Parent Directory Parent Directory | Revision Log Revision Log


Revision 4955 - (show annotations)
Tue May 20 04:33:15 2014 UTC (6 years, 5 months ago) by caltinay
File MIME type: text/plain
File size: 2398 byte(s)
added pristine copy of cusplibrary (apache license) to be used by ripley.

1 /*
2 * Copyright 2008-2009 NVIDIA Corporation
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
16
17
18 /*! \file cg_m.h
19 * \brief Multi-mass Conjugate Gradient (CG-M) method
20 */
21
22 #pragma once
23
24 #include <cusp/detail/config.h>
25
26 namespace cusp
27 {
28 namespace krylov
29 {
30
31 /*! \addtogroup iterative_solvers Iterative Solvers
32 * \addtogroup krylov_methods Krylov Methods
33 * \ingroup iterative_solvers
34 * \{
35 */
36
37 /*! \p cg_m : Multi-mass Conjugate Gradient method
38 *
39 * Solves the symmetric, positive-definited linear system (A+\sigma) x = b
40 * for some set of constant shifts \p sigma for the price of the smallest shift
41 * using the default monitor
42 *
43 * \param A matrix of the linear system
44 * \param x solutions of the system
45 * \param b right-hand side of the linear system
46 * \param sigma array of shifts
47 *
48 */
49 template <class LinearOperator,
50 class VectorType1,
51 class VectorType2,
52 class VectorType3>
53 void cg_m(LinearOperator& A,
54 VectorType1& x,
55 VectorType2& b,
56 VectorType3& sigma);
57
58 /*! \p cg_m : Multi-mass Conjugate Gradient method
59 *
60 * Solves the symmetric, positive-definited linear system (A+\sigma) x = b
61 * for some set of constant shifts \p sigma for the price of the smallest shift
62 *
63 * \param A matrix of the linear system
64 * \param x solutions of the system
65 * \param b right-hand side of the linear system
66 * \param sigma array of shifts
67 * \param monitor monitors interation and determines stoppoing conditions
68 *
69 */
70 template <class LinearOperator,
71 class VectorType1,
72 class VectorType2,
73 class VectorType3,
74 class Monitor>
75 void cg_m(LinearOperator& A,
76 VectorType1& x,
77 VectorType2& b,
78 VectorType3& sigma,
79 Monitor& monitor);
80 /*! \}
81 */
82
83 } // end namespace krylov
84 } // end namespace cusp
85
86 #include <cusp/krylov/detail/cg_m.inl>
87

  ViewVC Help
Powered by ViewVC 1.1.26