Hammer  1.0.0
Helicity Amplitude Module for Matrix Element Reweighting
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Multiply.hh
Go to the documentation of this file.
1 ///
2 /// @file Multiply.hh
3 /// @brief Tensor element-wise multiplication algorithm
4 ///
5 
6 //**** This file is a part of the HAMMER library
7 //**** Copyright (C) 2016 - 2020 The HAMMER Collaboration
8 //**** HAMMER is licensed under version 3 of the GPL; see COPYING for details
9 //**** Please note the MCnet academic guidelines; see GUIDELINES for details
10 
11 // -*- C++ -*-
12 #ifndef HAMMER_MATH_MULTIDIM_OPS_MULTIPLY
13 #define HAMMER_MATH_MULTIDIM_OPS_MULTIPLY
14 
15 namespace Hammer {
16 
17 
18  namespace MultiDimensional {
19 
20  class IContainer;
21  class VectorContainer;
22  class SparseContainer;
23  class OuterContainer;
24 
25  namespace Ops {
26 
27  class Multiply final {
28  public:
29  Multiply() {}
30 
31  IContainer* operator()(VectorContainer& first, const VectorContainer& second);
32  IContainer* operator()(SparseContainer& first, const SparseContainer& second);
33  IContainer* operator()(VectorContainer& first, const SparseContainer& second);
34  IContainer* operator()(SparseContainer& first, const VectorContainer& second);
35  IContainer* operator()(OuterContainer& first, const VectorContainer& second);
36  IContainer* operator()(OuterContainer& first, const SparseContainer& second);
37  IContainer* operator()(OuterContainer& first, const OuterContainer& second);
38 
39  IContainer* operator()(IContainer& first, const IContainer& second);
40 
42  };
43 
44  } // namespace Ops
45 
46  } // namespace MultiDimensional
47 
48 } // namespace Hammer
49 
50 
51 #endif
IContainer * operator()(VectorContainer &first, const VectorContainer &second)
Definition: Multiply.cc:34
IContainer * error(IContainer &, const IContainer &)
Definition: Multiply.cc:120