Tensor
A C++ expression template library for computations on N dimensional tensors
tensor_expression_interface.hpp
Go to the documentation of this file.
1 // ----------------------------------------------------------------------------------------------------------
2 /// @file Header file for tensor expression interface for tensor library.
3 // ----------------------------------------------------------------------------------------------------------
4 
5 /*
6  * ----------------------------------------------------------------------------------------------------------
7  * Tensor is free software; you can redistribute it and/or modify
8  * it under the terms of the GNU General Public License as published
9  * by the Free Software Foundation; either version 2 of the License, or
10  * (at your option) any later version.
11  *
12  * Tensor is distributed in the hope that it will be useful,
13  * but WITHOUT ANY WARRANTY; without even the implied warranty of
14  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15  * GNU General Public License for more details.
16  *
17  * You should have received a copy of the GNU General Public License along
18  * with tensor; if not, write to the Free Software Foundation,
19  * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
20  * ----------------------------------------------------------------------------------------------------------
21  */
22 
23 #ifndef FTL_TENSOR_EXPRESSION_INTERFACE_HPP
24 #define FTL_TENSOR_EXPRESSION_INTERFACE_HPP
25 
26 #include "tensor_traits.hpp"
27 
28 namespace ftl {
29 
30 // NOTE : All specializations are defined in their own files as:
31 // - tensor_expressions_<container_type>_<device_type>,hpp
32 //
33 // : where
34 // - container_type = type of container (static_or dynamic)
35 // - device_type = type of device (cpu gpu, any)
36 //
37 // any = not yet implemented for a specific device, or can operate on both
38 
39 
40 // ----------------------------------------------------------------------------------------------------------
41 /// @class TensorExpression
42 /// @brief Defines a general tensor expression so that opertions on tensor expressions can be defined
43 /// the syntax of the operations to look as they would mathematically.
44 /// @tparam Expression The expression
45 /// @tparam Traits The traits which define the expression, for example specifying that the
46 /// expression uses static containers and GPU implemenations
47 // ----------------------------------------------------------------------------------------------------------
48 template <typename Expression, typename Traits>
50 
51 } // End namespace ftl
52 #endif // FTL_TENSOR_EXPRESSION_INTERFACE_HPP
Definition: mapper.hpp:37
Defines a general tensor expression so that opertions on tensor expressions can be defined the syntax...
Definition: tensor_expression_interface.hpp:49