lsst.astshim
gf5dcc679e7+7aca86229d
Toggle main menu visibility
Loading...
Searching...
No Matches
src
detail
utils.cc
Go to the documentation of this file.
1
/*
2
* LSST Data Management System
3
* Copyright 2017 AURA/LSST.
4
*
5
* This product includes software developed by the
6
* LSST Project (http://www.lsst.org/).
7
*
8
* This program is free software: you can redistribute it and/or modify
9
* it under the terms of the GNU General Public License as published by
10
* the Free Software Foundation, either version 3 of the License, or
11
* (at your option) any later version.
12
*
13
* This program is distributed in the hope that it will be useful,
14
* but WITHOUT ANY WARRANTY; without even the implied warranty of
15
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16
* GNU General Public License for more details.
17
*
18
* You should have received a copy of the LSST License Statement and
19
* the GNU General Public License along with this program. If not,
20
* see <https://www.lsstcorp.org/LegalNotices/>.
21
*/
22
#include "
astshim/detail/utils.h
"
23
24
namespace
ast
{
25
namespace
detail
{
26
27
void
astBadToNan
(
ast::Array2D
const
&arr) {
28
for
(
auto
i = arr.begin(); i != arr.end(); ++i) {
29
for
(
auto
j = i->begin(); j != i->end(); ++j) {
30
if
(*j == AST__BAD) {
31
*j =
std::numeric_limits<double>::quiet_NaN
();
32
}
33
}
34
}
35
}
36
37
std::string
getClassName
(AstObject
const
*rawObj) {
38
std::string
name = astGetC(rawObj,
"Class"
);
39
assertOK
();
40
if
(name !=
"CmpMap"
) {
41
return
name;
42
}
43
bool
series =
isSeries
(
reinterpret_cast<
AstCmpMap
const
*
>
(rawObj));
44
return
series ?
"SeriesMap"
:
"ParallelMap"
;
45
}
46
47
bool
isSeries
(AstCmpMap
const
*cmpMap) {
48
AstMapping *rawMap1;
49
AstMapping *rawMap2;
50
int
series, invert1, invert2;
51
astDecompose(cmpMap, &rawMap1, &rawMap2, &series, &invert1, &invert2);
52
astAnnul(rawMap1);
53
astAnnul(rawMap2);
54
assertOK
();
55
return
series;
56
}
57
58
}
// namespace detail
59
}
// namespace ast
std::string
ast::detail
Definition
polyMapUtils.h:30
ast::detail::getClassName
std::string getClassName(AstObject const *rawObj)
Get the AST class name, changing CmpMap to SeriesMap or ParallelMap as appropriate.
Definition
utils.cc:37
ast::detail::astBadToNan
void astBadToNan(std::vector< double > &p)
Replace AST__BAD with a quiet NaN in a vector.
Definition
utils.h:59
ast::detail::isSeries
bool isSeries(AstCmpMap const *cmpMap)
Return true if the compound map is in series.
Definition
utils.cc:47
ast
AST wrapper classes and functions.
Definition
attributes_channel.dox:1
ast::Array2D
ndarray::Array< double, 2, 2 > Array2D
2D array of const double; typically used for lists of const points
Definition
base.h:42
ast::assertOK
void assertOK(AstObject *rawPtr1=nullptr, AstObject *rawPtr2=nullptr)
Throw std::runtime_error if AST's state is bad.
Definition
base.cc:49
std::numeric_limits::quiet_NaN
T quiet_NaN(T... args)
utils.h
Generated on
for lsst.astshim by
1.17.0