16 #ifndef __H2D_TRANSFORM_H
17 #define __H2D_TRANSFORM_H
19 #include "../global.h"
20 #include "exceptions.h"
26 template<
typename Scalar>
class Func;
53 Element* get_active_element()
const;
57 void set_transform(uint64_t idx);
60 uint64_t get_transform()
const;
68 virtual void push_transform(
int son);
78 virtual void set_active_element(
Element* e);
83 virtual void pop_transform();
86 void reset_transform();
95 inline unsigned int get_depth()
const {
return top; }
97 static void push_transforms(std::set<Transformable *>& transformables,
int son);
98 static void pop_transforms(std::set<Transformable *>& transformables);
99 static const unsigned int H2D_MAX_TRN_LEVEL = 15;
111 static const uint64_t H2D_MAX_IDX = (1ULL << 3 * H2D_MAX_TRN_LEVEL) - 1;
119 template<
typename T>
friend class Adapt;
120 template<
typename T>
friend class Func;
121 template<
typename T>
friend class Function;