22 #ifndef ASTSHIM_MAPPING_H 23 #define ASTSHIM_MAPPING_H 30 #include "astshim/base.h" 31 #include "astshim/detail/utils.h" 32 #include "astshim/Object.h" 209 detail::assertEqual(at.size(),
"at.size",
static_cast<std::size_t
>(
getNIn()),
"nIn");
210 double result = astRate(
getRawPtr(), const_cast<double *>(at.data()), ax1, ax2);
242 AstObject *rawSimpMap =
reinterpret_cast<AstObject *
>(astSimplify(
getRawPtr()));
244 return Object::fromAstObject<Mapping>(rawSimpMap,
true);
263 _tran(from,
true, to);
273 std::vector<double>
applyForward(std::vector<double>
const &from)
const {
275 std::vector<double> to(fromArr.getSize<1>() *
getNOut());
277 _tran(fromArr,
true, toArr);
297 _tran(from,
false, to);
307 std::vector<double>
applyInverse(std::vector<double>
const &from)
const {
309 std::vector<double> to(fromArr.getSize<1>() *
getNIn());
311 _tran(fromArr,
false, toArr);
353 _tranGrid(lbnd, ubnd, tol, maxpix,
true, to);
364 _tranGrid(lbnd, ubnd, tol, maxpix,
true, to);
375 _tranGrid(lbnd, ubnd, tol, maxpix,
false, to);
385 _tranGrid(lbnd, ubnd, tol, maxpix,
false, to);
393 explicit Mapping(AstMapping *rawMap) :
Object(reinterpret_cast<AstObject *>(rawMap)) {
396 std::ostringstream os;
397 os <<
"this is a " <<
getClassName() <<
", which is not a Mapping";
398 throw std::invalid_argument(os.str());
404 return std::static_pointer_cast<
Mapping>(copyImpl<Mapping, AstMapping>());
420 template <
typename Class>
436 void _tranGrid(
PointI const &lbnd,
PointI const &ubnd,
double tol,
int maxpix,
bool doForward,
Definition: SeriesMap.h:50
std::vector< double > applyInverse(std::vector< double > const &from) const
Definition: Mapping.h:307
double rate(PointD const &at, int ax1, int ax2) const
Definition: Mapping.h:208
ndarray::Array< double const, 2, 2 > ConstArray2D
Definition: base.h:46
virtual std::shared_ptr< Object > copyPolymorphic() const override
Definition: Mapping.h:403
AstObject const * getRawPtr() const
Definition: Object.h:286
void setB(std::string const &attrib, bool value)
Definition: Object.h:448
Array2D tranGridForward(PointI const &lbnd, PointI const &ubnd, double tol, int maxpix, int nPts) const
Definition: Mapping.h:362
int getI(std::string const &attrib) const
Definition: Object.h:399
bool hasInverse() const
Definition: Mapping.h:122
ndarray::Array< double, 2, 2 > Array2D
Definition: base.h:42
AST wrapper classes and functions.
Definition: attributes_channel.dox:1
std::string getClassName() const
Definition: Object.h:133
void tranGridForward(PointI const &lbnd, PointI const &ubnd, double tol, int maxpix, Array2D const &to) const
Definition: Mapping.h:351
void assertOK(AstObject *rawPtr1=nullptr, AstObject *rawPtr2=nullptr)
Definition: base.cc:49
SeriesMap then(Mapping const &next) const
Definition: Mapping.cc:37
std::shared_ptr< Mapping > simplify() const
Definition: Mapping.h:241
std::shared_ptr< Class > decompose(int i, bool copy) const
Definition: Mapping.cc:64
bool isInverted() const
Definition: Mapping.h:94
std::vector< int > PointI
Definition: base.h:50
void tranGridInverse(PointI const &lbnd, PointI const &ubnd, double tol, int maxpix, Array2D const &to) const
Definition: Mapping.h:373
Mapping(AstMapping *rawMap)
Definition: Mapping.h:393
std::vector< double > applyForward(std::vector< double > const &from) const
Definition: Mapping.h:273
Definition: ParallelMap.h:50
bool getB(std::string const &attrib) const
Definition: Object.h:347
bool getReport() const
Definition: Mapping.h:104
void applyForward(ConstArray2D const &from, Array2D const &to) const
Definition: Mapping.h:253
std::shared_ptr< Mapping > getInverse() const
Definition: Mapping.cc:41
std::shared_ptr< Mapping > copy() const
Return a deep copy of this object.
Definition: Mapping.h:71
bool getIsLinear() const
Definition: Mapping.h:99
Array2D linearApprox(PointD const &lbnd, PointD const &ubnd, double tol) const
Definition: Mapping.cc:49
std::vector< double > PointD
Definition: base.h:57
ParallelMap under(Mapping const &next) const
Definition: Mapping.cc:39
void setReport(bool report)
Definition: Mapping.h:218
void applyInverse(ConstArray2D const &from, Array2D const &to) const
Definition: Mapping.h:287
int getNIn() const
Definition: Mapping.h:76
bool getIsSimple() const
Definition: Mapping.h:86
Array2D applyInverse(ConstArray2D const &from) const
Definition: Mapping.h:295
ConstArray2D arrayFromVector(std::vector< double > const &vec, int nAxes)
Definition: base.cc:65
bool hasForward() const
Definition: Mapping.h:113
Array2D tranGridInverse(PointI const &lbnd, PointI const &ubnd, double tol, int maxpix, int nPts) const
Definition: Mapping.h:383
int getNOut() const
Definition: Mapping.h:81
Array2D applyForward(ConstArray2D const &from) const
Definition: Mapping.h:261