Teuchos - Trilinos Tools Package  Version of the Day
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Teuchos_ReductionOp.hpp
1 // @HEADER
2 // *****************************************************************************
3 // Teuchos: Common Tools Package
4 //
5 // Copyright 2004 NTESS and the Teuchos contributors.
6 // SPDX-License-Identifier: BSD-3-Clause
7 // *****************************************************************************
8 // @HEADER
9 
10 #ifndef TEUCHOS_REDUCTION_OP_HPP
11 #define TEUCHOS_REDUCTION_OP_HPP
12 
13 #include "Teuchos_Describable.hpp"
14 
15 
16 namespace Teuchos {
17 
18 
27 template<typename Ordinal, typename T>
29 public:
31  virtual void reduce(
32  const Ordinal count,
33  const T inBuffer[],
34  T inoutBuffer[]
35  ) const = 0;
36 };
37 
38 
47 template<typename Ordinal, typename T>
49 public:
51  virtual void reduce(
52  const Ordinal count,
53  const T*const inBuffer[],
54  T*const inoutBuffer[]
55  ) const = 0;
56 };
57 
58 
59 } // namespace Teuchos
60 
61 
62 #endif // TEUCHOS_REDUCTION_OP_HPP
virtual void reduce(const Ordinal count, const T inBuffer[], T inoutBuffer[]) const =0
Base interface class for user-defined reduction operations for objects that use value semantics...
virtual void reduce(const Ordinal count, const T *const inBuffer[], T *const inoutBuffer[]) const =0
Base interface class for user-defined reduction operations for objects that use reference semantics...
Base class for all objects that can describe themselves.