xerus
a general purpose tensor library
sparseTimesFullContraction.h
Go to the documentation of this file.
1 // Xerus - A General Purpose Tensor Library
2 // Copyright (C) 2014-2017 Benjamin Huber and Sebastian Wolf.
3 //
4 // Xerus is free software: you can redistribute it and/or modify
5 // it under the terms of the GNU Affero General Public License as published
6 // by the Free Software Foundation, either version 3 of the License,
7 // or (at your option) any later version.
8 //
9 // Xerus is distributed in the hope that it will be useful,
10 // but WITHOUT ANY WARRANTY; without even the implied warranty of
11 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 // GNU Affero General Public License for more details.
13 //
14 // You should have received a copy of the GNU Affero General Public License
15 // along with Xerus. If not, see <http://www.gnu.org/licenses/>.
16 //
17 // For further information on Xerus visit https://libXerus.org
18 // or contact us at contact@libXerus.org.
19 
25 #pragma once
26 
27 #include <map>
28 
29 namespace xerus {
30 
31  // - - - - - - - - - - - - - - - - - - - - - - - - - Mix to Full - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
32  void matrix_matrix_product( double* const _C,
33  const size_t _leftDim,
34  const size_t _rightDim,
35  const double _alpha,
36  const std::map<size_t, double>& _A,
37  const bool _transposeA,
38  const size_t _midDim,
39  const double* const _B,
40  const bool _transposeB);
41 
42  void matrix_matrix_product( double* const _C,
43  const size_t _leftDim,
44  const size_t _rightDim,
45  const double _alpha,
46  const double* const _A,
47  const bool _transposeA,
48  const size_t _midDim,
49  const std::map<size_t, double>& _B,
50  const bool _transposeB);
51 
52 
53  // - - - - - - - - - - - - - - - - - - - - - - - - - Mix to Sparse - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
54  void matrix_matrix_product( std::map<size_t, double>& _C,
55  const size_t _leftDim,
56  const size_t _rightDim,
57  const double _alpha,
58  const std::map<size_t, double>& _A,
59  const bool _transposeA,
60  const size_t _midDim,
61  const double* const _B,
62  const bool _transposeB);
63 
64  void matrix_matrix_product( std::map<size_t, double>& _C,
65  const size_t _leftDim,
66  const size_t _rightDim,
67  const double _alpha,
68  const double* const _A,
69  const bool _transposeA,
70  const size_t _midDim,
71  const std::map<size_t, double>& _B,
72  const bool _transposeB);
73 }
The main namespace of xerus.
Definition: basic.h:37
void matrix_matrix_product(double *const _C, const size_t _leftDim, const size_t _rightDim, const double _alpha, const std::map< size_t, double > &_A, const bool _transposeA, const size_t _midDim, const double *const _B, const bool _transposeB)