1 | #ifndef BZ_ET_FORWARD_H |
---|
2 | #define BZ_ET_FORWARD_H |
---|
3 | |
---|
4 | #include <blitz/blitz.h> |
---|
5 | |
---|
6 | // forward declarations of ET classes |
---|
7 | |
---|
8 | BZ_NAMESPACE(blitz) |
---|
9 | |
---|
10 | template<typename T> class ETBase; |
---|
11 | |
---|
12 | // the actual array/vector classes |
---|
13 | template<typename P_numtype, int N_rank> class Array; |
---|
14 | template<typename P_numtype, int N_length> class TinyVector; |
---|
15 | template<typename P_numtype, int N_rows, int N_columns> class TinyMatrix; |
---|
16 | |
---|
17 | // and their fast iterators |
---|
18 | template<typename P_numtype, int N_rank> class FastArrayIterator; |
---|
19 | template<typename P_numtype, int N_rank> class FastArrayCopyIterator; |
---|
20 | template<typename P_numtype, int N_length> class FastTV2Iterator; |
---|
21 | template<typename P_numtype, int N_length> class FastTV2CopyIterator; |
---|
22 | template<typename P_numtype, int N_rows, |
---|
23 | int N_columns> class FastTM2Iterator; |
---|
24 | template<typename P_numtype, int N_rows, |
---|
25 | int N_columns> class FastTM2CopyIterator; |
---|
26 | |
---|
27 | // expression container classes |
---|
28 | template<typename P_expr> class _bz_ArrayExpr; |
---|
29 | template<typename P_expr, typename P_op> class _bz_ArrayExprUnaryOp; |
---|
30 | template<typename P_expr1, typename P_expr2, |
---|
31 | typename P_op> class _bz_ArrayExprBinaryOp; |
---|
32 | template<typename P_expr1, typename P_expr2, |
---|
33 | typename P_expr3, typename P_op> class _bz_ArrayExprTernaryOp; |
---|
34 | template<typename P_expr1, typename P_expr2, typename P_expr3, |
---|
35 | typename P_expr4, typename P_op> class _bz_ArrayExprQuaternaryOp; |
---|
36 | template<typename P_numtype> class _bz_ArrayExprConstant; |
---|
37 | |
---|
38 | // more specialized expression types |
---|
39 | template<typename P_expr, int N_map0, int N_map1=0, int N_map2=0, |
---|
40 | int N_map3=0, int N_map4=0, int N_map5=0, int N_map6=0, int N_map7=0, |
---|
41 | int N_map8=0, int N_map9=0, int N_map10=0> class ArrayIndexMapping; |
---|
42 | |
---|
43 | template<typename T_expr, int N_index, |
---|
44 | typename T_reduction> class _bz_ArrayExprReduce; |
---|
45 | |
---|
46 | template<typename P_expr, _bz_typename P_result> class _bz_StencilExpr; |
---|
47 | |
---|
48 | template<int N> class IndexPlaceholder; |
---|
49 | |
---|
50 | template<typename P_expr1, typename P_expr2, |
---|
51 | typename P_expr3> class _bz_ArrayWhere; |
---|
52 | |
---|
53 | // functors |
---|
54 | template<typename P_functor, typename P_expr, |
---|
55 | typename P_result> class _bz_FunctorExpr; |
---|
56 | |
---|
57 | template<typename P_functor, typename P_expr1, |
---|
58 | typename P_expr2, typename P_result> class _bz_FunctorExpr2; |
---|
59 | |
---|
60 | template<typename P_functor, typename P_expr1, |
---|
61 | typename P_expr2, typename P_expr3, |
---|
62 | class P_result> class _bz_FunctorExpr3; |
---|
63 | |
---|
64 | class LeviCivita; |
---|
65 | |
---|
66 | class Range; |
---|
67 | |
---|
68 | BZ_NAMESPACE_END |
---|
69 | |
---|
70 | |
---|
71 | #endif |
---|