MorphoGraphX  2.0-1-227
DistMatrixProto.hpp
Go to the documentation of this file.
1 //
2 // This file is part of MorphoGraphX - http://www.MorphoGraphX.org
3 // Copyright (C) 2012-2016 Richard S. Smith and collaborators.
4 //
5 // If you use MorphoGraphX in your work, please cite:
6 // http://dx.doi.org/10.7554/eLife.05864
7 //
8 // MorphoGraphX is free software, and is licensed under under the terms of the
9 // GNU General (GPL) Public License version 2.0, http://www.gnu.org/licenses.
10 //
11 #ifndef DIST_MATRIX_PROTO_HPP
12 #define DIST_MATRIX_PROTO_HPP
13 
14 #include <DistObject.hpp>
15 #include <ThrustTypes.hpp>
16 
20 namespace mgx
21 {
22  // Cuda functions (compiled with nvcc)
23  template<typename T>
24  int multGPU(T *v, typename T::value_type::value_type a, T *r);
25 
26  template<typename T>
27  int multGPU(T *v1, T *v2, typename T::value_type::value_type &r);
28 
29  template<typename TM, typename TV>
30  int multGPU(DeviceVu *nb, TM *mv, TM *me, TV *v, TV *r);
31 
32  template<typename T>
33  int addToDiagGPU(typename T::value_type::value_type a, T *r);
34 
35  template<typename T>
36  int addGPU(T *v1, T *v2, T *r);
37 
38  template<typename T>
39  int subtractGPU(T *v1, T *v2, T *r);
40 
41  template<typename T>
42  int fillGPU(typename T::value_type::value_type a, T *r);
43 
44  template<typename T>
45  int minGPU(T *v, typename T::value_type::value_type &r);
46 
47  template<typename T>
48  int maxGPU(T *v, typename T::value_type::value_type &r);
49 
50  template<typename T>
51  int saxpyGPU(T *v1, T *v2, typename T::value_type::value_type a, T *r);
52 
53  template<typename T>
54  int jacobiPreCondGPU(DeviceVu *nb, T *mv, T *me, T *av, T *ae);
55 }
56 #endif
mgx::DeviceVu
thrust::device_vector< uint > DeviceVu
Definition: ThrustTypes.hpp:58
mgx::maxGPU
int maxGPU(T *v, typename T::value_type::value_type &r)
Definition: DistMatrixCuda.hpp:357
mgx::addToDiagGPU
int addToDiagGPU(typename T::value_type::value_type a, T *r)
Definition: DistMatrixCuda.hpp:274
mgx::saxpyGPU
int saxpyGPU(T *v1, T *v2, typename T::value_type::value_type a, T *r)
Definition: DistMatrixCuda.hpp:312
ThrustTypes.hpp
mgx
Distributed matrix library.
Definition: Assert.hpp:26
DistObject.hpp
mgx::minGPU
int minGPU(T *v, typename T::value_type::value_type &r)
Definition: DistMatrixCuda.hpp:338
mgx::multGPU
int multGPU(T *v, typename T::value_type::value_type a, T *r)
Definition: DistMatrixCuda.hpp:218
mgx::jacobiPreCondGPU
int jacobiPreCondGPU(DeviceVu *nb, T *mv, T *me, T *av, T *ae)
Definition: DistMatrixCuda.hpp:376
mgx::fillGPU
int fillGPU(typename T::value_type::value_type a, T *r)
Definition: DistMatrixCuda.hpp:324
mgx::addGPU
int addGPU(T *v1, T *v2, T *r)
Definition: DistMatrixCuda.hpp:288
mgx::subtractGPU
int subtractGPU(T *v1, T *v2, T *r)
Definition: DistMatrixCuda.hpp:300