1 #ifndef NPSTAT_GRIDAXIS_HH_
2 #define NPSTAT_GRIDAXIS_HH_
20 #include "geners/ClassId.hh"
39 bool useLogSpace=
false);
41 bool useLogSpace=
false);
50 GridAxis(
double x0,
double x1,
double x2);
51 GridAxis(
double x0,
double x1,
double x2,
double x3);
52 GridAxis(
double x0,
double x1,
double x2,
double x3,
double x4);
57 inline const std::vector<double>&
coords()
const {
return coords_;}
58 inline const std::string& label()
const {
return label_;}
59 inline bool usesLogSpace()
const {
return useLogSpace_;}
75 std::pair<unsigned,double>
getInterval(
double coordinate)
const;
95 inline unsigned nCoords()
const {
return npt_;}
96 inline double coordinate(
const unsigned i)
const
97 {
return coords_.at(i);}
98 inline double min()
const {
return coords_.front();}
99 inline double max()
const {
return coords_.back();}
100 inline double length()
const {
return coords_.back() - coords_.front();}
101 inline bool isUniform()
const {
return false;}
102 inline unsigned nIntervals()
const {
return coords_.size() - 1;}
103 inline double intervalWidth(
const unsigned i=0)
const
104 {
return coords_.at(i+1) - coords_.at(i);}
112 {
return !(*
this == r);}
122 {label_ = newlabel ? newlabel :
"";}
126 inline gs::ClassId
classId()
const {
return gs::ClassId(*
this);}
127 bool write(std::ostream& of)
const;
130 static inline const char* classname() {
return "npstat::GridAxis";}
131 static inline unsigned version() {
return 2;}
132 static GridAxis* read(
const gs::ClassId&
id, std::istream& in);
137 std::vector<double> coords_;
138 std::vector<double> logs_;
145 inline std::pair<double,double> range()
const
146 {
return std::pair<double,double>(min(), max());}
149 inline GridAxis() : npt_(0), useLogSpace_(false) {}
Definition: GridAxis.hh:31
GridAxis(const std::vector< double > &coords, bool useLogSpace=false)
gs::ClassId classId() const
Definition: GridAxis.hh:126
unsigned nCoords() const
Definition: GridAxis.hh:95
bool isClose(const GridAxis &r, double tol) const
GridAxis(double x0, double x1)
bool operator==(const GridAxis &r) const
bool operator!=(const GridAxis &r) const
Definition: GridAxis.hh:111
std::pair< unsigned, double > linearInterval(double coordinate) const
void setLabel(const char *newlabel)
Definition: GridAxis.hh:121
const std::vector< double > & coords() const
Definition: GridAxis.hh:57
std::pair< unsigned, double > getInterval(double coordinate) const
Definition: AbsArrayProjector.hh:14