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 // @HEADER
2 // *****************************************************************************
3 // Stokhos Package
4 //
5 // Copyright 2009 NTESS and the Stokhos contributors.
6 // SPDX-License-Identifier: BSD-3-Clause
7 // *****************************************************************************
8 // @HEADER
9 
10 /*
11  * Copyright 2008-2009 NVIDIA Corporation
12  *
13  * Licensed under the Apache License, Version 2.0 (the "License");
14  * you may not use this file except in compliance with the License.
15  * You may obtain a copy of the License at
16  *
17  * http://www.apache.org/licenses/LICENSE-2.0
18  *
19  * Unless required by applicable law or agreed to in writing, software
20  * distributed under the License is distributed on an "AS IS" BASIS,
21  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
22  * See the License for the specific language governing permissions and
23  * limitations under the License.
24  */
25 
26 #include <cusp/array1d.h>
28 
29 namespace cusp
30 {
31 namespace detail
32 {
33 namespace dispatch
34 {
36 // Device Paths //
38 template <typename LinearOperator,
39  typename MatrixOrVector1,
40  typename MatrixOrVector2>
41 void MVmultiply(const LinearOperator& A,
42  const MatrixOrVector1& B,
43  MatrixOrVector2& C,
44  cusp::device_memory,
45  cusp::device_memory,
46  cusp::device_memory)
47 {
49 }
50 
51 template <typename LinearOperator,
52  typename MatrixOrVector1,
53  typename MatrixOrVector2>
54 void OVmultiply(const LinearOperator& A,
55  const MatrixOrVector1& B,
56  MatrixOrVector2& C,
57  cusp::device_memory,
58  cusp::device_memory,
59  cusp::device_memory)
60 {
62 }
63 
64 template <typename MatrixOrVector,
65  typename MatrixOrVector1,
66  typename MatrixOrVector2>
67 void MVdot(const MatrixOrVector& A,
68  const MatrixOrVector1& B,
69  MatrixOrVector2& C,
70  cusp::device_memory,
71  cusp::device_memory,
72  cusp::device_memory)
73 {
75 }
76 
77 template <typename ValueType,
78  typename MatrixOrVector1,
79  typename MatrixOrVector2>
80 void axpby_array(const ValueType& A,
81  const MatrixOrVector1& X,
82  const ValueType& B,
83  const MatrixOrVector1& Y,
84  MatrixOrVector2& Z,
85  cusp::device_memory,
86  cusp::device_memory)
87 {
88  cusp::detail::device::axpby(A, X, B, Y, Z);
89 }
90 
91 
92 } // end namespace dispatch
93 } // end namespace detail
94 } // 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)