22 #ifndef ASTSHIM_PERMMAP_H 23 #define ASTSHIM_PERMMAP_H 79 :
Mapping(reinterpret_cast<AstMapping *>(makeRawMap(inperm, outperm, constant, options))) {}
94 return copyImpl<PermMap, AstPermMap>();
98 explicit PermMap(AstPermMap *rawptr) :
Mapping(reinterpret_cast<AstMapping *>(rawptr)) {
101 os <<
"this is a " <<
getClassName() <<
", which is not a PermMap";
Mapping(Mapping const &)=default
Copy constructor: make a deep copy.
AstObject const * getRawPtr() const
Get the raw AST pointer.
A Mapping which permutes the order of coordinates, and possibly also changes the number of coordinate...
AST wrapper classes and functions.
std::string getClassName() const
Get Class: the name of the class (e.g.
An abstract base class for objects which transform one set of coordinates to another.
PermMap(AstPermMap *rawptr)
Construct a PermMap from a raw AST pointer.
PermMap(std::vector< int > const &inperm, std::vector< int > const &outperm, std::vector< double > const &constant={}, std::string const &options="")
Construct a PermMap.
PermMap & operator=(PermMap const &)=delete
T static_pointer_cast(T... args)
std::shared_ptr< PermMap > copy() const
Return a deep copy of this object.
virtual std::shared_ptr< Object > copyPolymorphic() const override
Return a deep copy of this object.
Abstract base class for all AST objects.