HOPS
HOPS class reference
MHO_NaNMasker.hh
Go to the documentation of this file.
1 #ifndef MHO_NaNMasker_HH__
2 #define MHO_NaNMasker_HH__
3 
4 #include "MHO_CheckForNaN.hh"
5 #include "MHO_Message.hh"
6 #include "MHO_UnaryFunctor.hh"
7 #include <cmath>
8 #include <complex>
9 
10 namespace hops
11 {
12 
24 template< class XArrayType > class MHO_NaNMasker: public MHO_UnaryFunctor< XArrayType >
25 {
26  public:
28  virtual ~MHO_NaNMasker(){};
29 
32 
33  virtual void operator()(iterator_type& input) override
34  {
35  //check the value at the input iterator
37  {
38  *input = 0.0; //zero out
39  //msg_debug("calibration", "Replacing NaN with 0.0." << eom); //TODO more debug?
40  }
41  }
42 
43  virtual void operator()(citerator_type& input, iterator_type& output) override
44  {
45  //check the value at the input iterator
47  {
48  *output = 0.0; //zero out
49  //msg_debug("calibration", "Replacing NaN with 0.0." << eom); //TODO more debug?
50  }
51  else
52  {
53  *output = *input;
54  } //pass through
55  }
56 };
57 
58 } // namespace hops
59 
60 #endif
Class MHO_CheckForNaN.
Definition: MHO_CheckForNaN.hh:22
Class MHO_NaNMasker.
Definition: MHO_NaNMasker.hh:25
virtual void operator()(citerator_type &input, iterator_type &output) override
Definition: MHO_NaNMasker.hh:43
virtual void operator()(iterator_type &input) override
Definition: MHO_NaNMasker.hh:33
typename MHO_UnaryFunctor< XArrayType >::iterator_type iterator_type
Definition: MHO_NaNMasker.hh:30
MHO_NaNMasker()
Definition: MHO_NaNMasker.hh:27
typename MHO_UnaryFunctor< XArrayType >::citerator_type citerator_type
Definition: MHO_NaNMasker.hh:31
virtual ~MHO_NaNMasker()
Definition: MHO_NaNMasker.hh:28
Class MHO_UnaryFunctor.
Definition: MHO_UnaryFunctor.hh:22
typename XArrayType::const_iterator citerator_type
Definition: MHO_UnaryFunctor.hh:28
typename XArrayType::iterator iterator_type
Definition: MHO_UnaryFunctor.hh:27
Definition: MHO_ChannelLabeler.hh:17
int output(struct vex *root, struct type_pass *pass)
Definition: output.c:255