Expression Templates Library (ETL)
expr_fwd.hpp
1 //=======================================================================
2 // Copyright (c) 2014-2023 Baptiste Wicht
3 // Distributed under the terms of the MIT License.
4 // (See accompanying file LICENSE or copy at
5 // http://opensource.org/licenses/MIT)
6 //=======================================================================
7 
8 #pragma once
9 
10 namespace etl {
11 
12 template <typename Expr>
13 struct optimizable;
14 
15 template <typename Expr>
16 struct optimizer;
17 
18 template <typename Expr>
19 struct transformer;
20 
21 struct identity_op;
22 
23 struct transform_op;
24 
25 template <typename Sub>
26 struct stateful_op;
27 
28 template <typename T, expr_or_scalar<T> Expr, typename UnaryOp>
29 struct unary_expr;
30 
31 template <typename T, expr_or_scalar<T> LeftExpr, typename BinaryOp, expr_or_scalar<T> RightExpr>
32 struct binary_expr;
33 
34 template <typename Generator>
35 class generator_expr;
36 
37 template <typename Expr>
38 struct optimized_expr;
39 
40 template <typename Expr>
41 struct serial_expr;
42 
43 template <typename Selector, Selector V, typename Expr>
45 
46 template <typename Expr>
47 struct parallel_expr;
48 
49 template <typename Expr, typename R = etl::nanoseconds>
50 struct timed_expr;
51 
52 template <typename D, typename T, typename A, typename B, typename R>
54 
55 template <typename T, size_t D>
56 struct dim_view;
57 
58 template <etl_expr T, bool Aligned>
59 struct sub_view;
60 
61 template <etl_expr T, bool Aligned>
63 
64 template <etl_expr T, bool Aligned>
66 
67 template <etl_expr T, bool Aligned>
69 
70 template <typename T>
71 struct slice_view;
72 
73 template <typename T, bool Aligned>
75 
76 template <typename T, bool DMA, size_t... Dims>
78 
79 template <etl_expr T, size_t D>
81 
82 template <typename A>
83 struct transpose_expr;
84 
85 template <etl_expr A>
87 
88 template <typename D, bool Fast>
89 struct base_temporary_expr;
90 
91 template <typename T>
92 struct scalar;
93 
94 } //end of namespace etl
Definition: expr_fwd.hpp:44
Simple unary op for identity operations.
Definition: unary_expr.hpp:24
Transformer functor for optimizable expression.
Definition: expr_fwd.hpp:19
View that shows a 3d sub matrix of an expression.
Definition: expr_fwd.hpp:65
Definition: expr_fwd.hpp:71
A temporary expression base.
Definition: base_temporary_expr.hpp:66
Simple unary op for transform operations.
Definition: unary_expr.hpp:56
View that shows a slice of an expression.
Definition: expr_fwd.hpp:74
Definition: expr_fwd.hpp:77
An unary expression.
Definition: unary_expr.hpp:126
Definition: expr_fwd.hpp:80
Definition: expr_fwd.hpp:53
Simple unary op for stateful operations.
Definition: unary_expr.hpp:91
An optimizer for the given expression type.
Definition: expr_fwd.hpp:16
A binary expression.
Definition: binary_expr.hpp:18
Root namespace for the ETL library.
Definition: adapter.hpp:15
A wrapper for expressions that need to be optimized.
Definition: optimized_expr.hpp:25
A wrapper for expressions that is to be executed in parallel.
Definition: parallel_expr.hpp:28
View that shows a 2D sub matrix of an expression.
Definition: expr_fwd.hpp:62
A transposition expression for the first layers.
Definition: transpose_front_expr.hpp:22
Represents a scalar value.
Definition: concepts_base.hpp:19
View that shows one dimension of a matrix.
Definition: expr_fwd.hpp:56
A wrapper for expressions that is forced to be serial.
Definition: serial_expr.hpp:23
A transposition expression.
Definition: transpose_expr.hpp:22
Definition: expr_fwd.hpp:59
Simple traits to test if an expression is optimizable.
Definition: expr_fwd.hpp:13
View that shows a 4d sub matrix of an expression.
Definition: expr_fwd.hpp:68
A wrapper for expressions that need to be timed.
Definition: timed_expr.hpp:25
A generator expression.
Definition: generator_expr.hpp:27