Stokhos Package Browser (Single Doxygen Collection)  Version of the Day
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
detail/dispatch/MVmultiply.h
Go to the documentation of this file.
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 #include <cusp/array1d.h>
19 
20 namespace cusp
21 {
22 namespace detail
23 {
24 namespace dispatch
25 {
27 // Device Paths //
29 template <typename LinearOperator,
30  typename MatrixOrVector1,
31  typename MatrixOrVector2>
32 void MVmultiply(const LinearOperator& A,
33  const MatrixOrVector1& B,
34  MatrixOrVector2& C,
35  cusp::device_memory,
36  cusp::device_memory,
37  cusp::device_memory)
38 {
40 }
41 
42 template <typename LinearOperator,
43  typename MatrixOrVector1,
44  typename MatrixOrVector2>
45 void OVmultiply(const LinearOperator& A,
46  const MatrixOrVector1& B,
47  MatrixOrVector2& C,
48  cusp::device_memory,
49  cusp::device_memory,
50  cusp::device_memory)
51 {
53 }
54 
55 template <typename MatrixOrVector,
56  typename MatrixOrVector1,
57  typename MatrixOrVector2>
58 void MVdot(const MatrixOrVector& A,
59  const MatrixOrVector1& B,
60  MatrixOrVector2& C,
61  cusp::device_memory,
62  cusp::device_memory,
63  cusp::device_memory)
64 {
66 }
67 
68 template <typename ValueType,
69  typename MatrixOrVector1,
70  typename MatrixOrVector2>
71 void axpby_array(const ValueType& A,
72  const MatrixOrVector1& X,
73  const ValueType& B,
74  const MatrixOrVector1& Y,
75  MatrixOrVector2& Z,
76  cusp::device_memory,
77  cusp::device_memory)
78 {
79  cusp::detail::device::axpby(A, X, B, Y, Z);
80 }
81 
82 
83 } // end namespace dispatch
84 } // end namespace detail
85 } // end namespace cusp
void MVdot(const MatrixOrVector &A, const MatrixOrVector1 &B, MatrixOrVector2 &C, cusp::device_memory, cusp::device_memory, cusp::device_memory)
void MVmultiply(const Matrix &A, const Vector1 &B, Vector2 &C, cusp::sparse_format, cusp::array2d_format, cusp::array2d_format)
void OVmultiply(const Matrix &A, const Vector1 &B, Vector2 &C, cusp::sparse_format, cusp::array2d_format, cusp::array2d_format)
void axpby_array(const ValueType &A, const MatrixOrVector1 &X, const ValueType &B, const MatrixOrVector1 &Y, MatrixOrVector2 &Z, cusp::device_memory, cusp::device_memory)
void OVmultiply(const LinearOperator &A, const MatrixOrVector1 &B, MatrixOrVector2 &C, cusp::device_memory, cusp::device_memory, cusp::device_memory)
void axpby(const ValueType &A, const MV1 &X, const ValueType &B, const MV1 &Y, MV2 &Z)
void MVdot(const MV &A, const MV1 &B, MV2 &C)
void MVmultiply(const LinearOperator &A, const MatrixOrVector1 &B, MatrixOrVector2 &C, cusp::device_memory, cusp::device_memory, cusp::device_memory)