ProteoWizard
Public Member Functions | Public Attributes | List of all members
ralab::base::resample::Bin1D Struct Reference

#include <bin1d.hpp>

Public Member Functions

 Bin1D ()
 
 Bin1D (std::vector< double > &breaks)
 
 Bin1D (const Bin1D &rhs)
 
void setBreaks (const std::vector< double > &breaks)
 
void reset ()
 
void getBreaks (std::vector< double > &breaks) const
 
const std::vector< double > & getBreaks () const
 
bool inRange (double dat) const
 
std::size_t operator() (double dat) const
 
void operator() (double dat1, double dat2, std::vector< int32_t > &idx, std::vector< double > &dist) const
 

Public Attributes

std::vector< double > breaks_
 
double * begbreaks_
 
double * endbreaks_
 

Detailed Description

Definition at line 44 of file bin1d.hpp.

Constructor & Destructor Documentation

§ Bin1D() [1/3]

ralab::base::resample::Bin1D::Bin1D ( )
inline

Definition at line 50 of file bin1d.hpp.

50 :breaks_(),begbreaks_(0),endbreaks_(0){}
std::vector< double > breaks_
Definition: bin1d.hpp:46

§ Bin1D() [2/3]

ralab::base::resample::Bin1D::Bin1D ( std::vector< double > &  breaks)
inline

Definition at line 52 of file bin1d.hpp.

References setBreaks().

54  :breaks_(), begbreaks_(0), endbreaks_(0)
55  {
56  this->setBreaks(breaks);
57  }
std::vector< double > breaks_
Definition: bin1d.hpp:46
void setBreaks(const std::vector< double > &breaks)
Definition: bin1d.hpp:68

§ Bin1D() [3/3]

ralab::base::resample::Bin1D::Bin1D ( const Bin1D rhs)
inline

Definition at line 60 of file bin1d.hpp.

References breaks_, and setBreaks().

62  :breaks_(), begbreaks_(0), endbreaks_(0)
63  {
64  this->setBreaks(rhs.breaks_);
65  }
std::vector< double > breaks_
Definition: bin1d.hpp:46
void setBreaks(const std::vector< double > &breaks)
Definition: bin1d.hpp:68

Member Function Documentation

§ setBreaks()

void ralab::base::resample::Bin1D::setBreaks ( const std::vector< double > &  breaks)
inline

Definition at line 68 of file bin1d.hpp.

References reset().

Referenced by Bin1D().

68  {
69  breaks_.assign( breaks.begin(), breaks.end() );
70  std::sort(breaks_.begin(),breaks_.end());
71  reset();
72  }
std::vector< double > breaks_
Definition: bin1d.hpp:46

§ reset()

void ralab::base::resample::Bin1D::reset ( )
inline

Definition at line 74 of file bin1d.hpp.

Referenced by ralab::base::resample::Convert2Dense::defBreak(), and setBreaks().

74  {
75  begbreaks_ = &breaks_[0];
76  endbreaks_ = begbreaks_ + breaks_.size();
77  }
std::vector< double > breaks_
Definition: bin1d.hpp:46

§ getBreaks() [1/2]

void ralab::base::resample::Bin1D::getBreaks ( std::vector< double > &  breaks) const
inline

Definition at line 79 of file bin1d.hpp.

79  {
80  breaks.assign(begbreaks_,endbreaks_);
81  }

§ getBreaks() [2/2]

const std::vector<double>& ralab::base::resample::Bin1D::getBreaks ( ) const
inline

Definition at line 83 of file bin1d.hpp.

References breaks_.

83  {
84  return breaks_;
85  }
std::vector< double > breaks_
Definition: bin1d.hpp:46

§ inRange()

bool ralab::base::resample::Bin1D::inRange ( double  dat) const
inline

Definition at line 88 of file bin1d.hpp.

88  {
89  return (dat > breaks_.front() && dat < breaks_.back());
90  }
std::vector< double > breaks_
Definition: bin1d.hpp:46

§ operator()() [1/2]

std::size_t ralab::base::resample::Bin1D::operator() ( double  dat) const
inline

Definition at line 92 of file bin1d.hpp.

93  {
94  double * it2 = std::lower_bound(begbreaks_,endbreaks_,dat);
95  size_t ub = std::distance(begbreaks_,it2);
96  return ub;
97  }

§ operator()() [2/2]

void ralab::base::resample::Bin1D::operator() ( double  dat1,
double  dat2,
std::vector< int32_t > &  idx,
std::vector< double > &  dist 
) const
inline

Definition at line 99 of file bin1d.hpp.

104  {
105  double * it1 = std::lower_bound(begbreaks_,endbreaks_,dat1);
106  double * it2 = std::lower_bound(begbreaks_,endbreaks_,dat2);
107 
108  size_t ub1 = std::distance(begbreaks_,it1);
109  size_t ub2 = std::distance(begbreaks_,it2);
110  int64_t n = static_cast<int64_t>(ub2-ub1)+1;
111  idx.resize(n);
112  dist.resize(n);
113 
114  if(ub1 == ub2 ){
115  idx[0] = ub1-1;
116  dist[0] = dat2 - dat1;
117  return;
118  }
119  else{
120  for(int64_t i = 0; it1 != (it2+1) ; i++, it1++){
121  idx[i] = ub1 + i - 1;
122  if(i == 0)
123  {
124  dist[i] = *(it1) - dat1;
125  }
126  else if( i < n - 1 )
127  {
128  dist[i] = *(it1) - *(it1-1);
129  }
130  else
131  {
132  dist[i] = dat2 - *(it1-1);
133  }
134  }
135  }
136 
137  }
boost::int64_t int64_t
Definition: bin1d.hpp:41

Member Data Documentation

§ breaks_

std::vector<double> ralab::base::resample::Bin1D::breaks_

§ begbreaks_

double* ralab::base::resample::Bin1D::begbreaks_

Definition at line 47 of file bin1d.hpp.

§ endbreaks_

double* ralab::base::resample::Bin1D::endbreaks_

Definition at line 48 of file bin1d.hpp.


The documentation for this struct was generated from the following file: