Jpp  18.3.0-rc.1
the software that should make you happy
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
Public Types | Public Member Functions | Public Attributes | Protected Member Functions | Protected Attributes | Friends | List of all members
JTOOLS::JTransformableMultiHistogram< JHistogram_t, JMaplist_t, JDistance_t > Class Template Referenceabstract

Transformable multidimensional histogram. More...

#include <JTransformableMultiHistogram.hh>

Inheritance diagram for JTOOLS::JTransformableMultiHistogram< JHistogram_t, JMaplist_t, JDistance_t >:
JTOOLS::JMultiHistogram< JHistogram_t, JMaplist_t, JDistance_t > JTOOLS::JTransformable< JMapLength< JMaplist_t >::value, JHistogram_t::abscissa_type > JTOOLS::JMultiMap< JHistogram_t::abscissa_type, JHistogram_t, JMaplist_t, JDistance_t >

Public Types

enum  { NUMBER_OF_DIMENSIONS = JMultiHistogram_t::NUMBER_OF_DIMENSIONS }
 
typedef JMultiHistogram
< JHistogram_t, JMaplist_t,
JDistance_t > 
JMultiHistogram_t
 
typedef JHistogram_t histogram_type
 
typedef
histogram_type::contents_type 
contents_type
 
typedef histogram_type::value_type value_type
 
typedef
JMultiHistogram_t::abscissa_type 
abscissa_type
 
typedef
JMultiHistogram_t::ordinate_type 
ordinate_type
 
typedef
JMultiHistogram_t::const_iterator 
const_iterator
 
typedef
JMultiHistogram_t::const_reverse_iterator 
const_reverse_iterator
 
typedef JMultiHistogram_t::iterator iterator
 
typedef
JMultiHistogram_t::reverse_iterator 
reverse_iterator
 
typedef
JMultiHistogram_t::super_iterator 
super_iterator
 
typedef
JMultiHistogram_t::super_const_iterator 
super_const_iterator
 
typedef JMultiMapTransformer
< JMapLength< JMaplist_t >
::value, abscissa_type
transformer_type
 
typedef
transformer_type::array_type 
array_type
 
enum  { NUMBER_OF_DIMENSIONS = JMapLength<JMaplist_t>::value + JHistogram_t::NUMBER_OF_DIMENSIONS }
 
typedef JMultiMap< typename
JHistogram_t::abscissa_type,
JHistogram_t, JMaplist_t,
JDistance_t > 
multimap_type
 
typedef JHistogram_t::abscissa_type argument_type
 

Public Member Functions

 JTransformableMultiHistogram ()
 Default constructor. More...
 
const
JTransformableMultiHistogram
getTransformableMultiHistogram () const
 Get transformable multidimensional histogram. More...
 
JTransformableMultiHistogramgetTransformableMultiHistogram ()
 Get transformable multidimensional histogram. More...
 
virtual void transform (const transformer_type &transformer) override
 Application of weight function and coordinate transformation. More...
 
const JMultiHistogramgetMultiHistogram () const
 Get multidimensional histogram. More...
 
JMultiHistogramgetMultiHistogram ()
 Get multidimensional histogram. More...
 
template<class... Args>
void fill (const Args &...args)
 Multi-dimensional fill method call. More...
 
virtual void transform (const transformer_type &transformer)=0
 Application of transformation. More...
 

Public Attributes

JLANG::JSharedPointer
< transformer_type
transformer
 

Protected Member Functions

virtual void __fill__ (const int i, const abscissa_type x, const contents_type w) override
 Termination method for filling histogram. More...
 
template<class... Args>
void __fill__ (const int i, const abscissa_type x0, const abscissa_type x1, const Args &...args)
 Recursive method for filling histogram. More...
 

Protected Attributes

JArray< NUMBER_OF_DIMENSIONS,
abscissa_type
buffer
 

Friends

JReaderoperator>> (JReader &in, JTransformableMultiHistogram &object)
 Read transformable multidimensional histogram. More...
 
JWriteroperator<< (JWriter &out, const JTransformableMultiHistogram &object)
 Write transformable multidimensional histogram. More...
 

Detailed Description

template<class JHistogram_t, class JMaplist_t, class JDistance_t = JDistance<typename JHistogram_t::abscissa_type>>
class JTOOLS::JTransformableMultiHistogram< JHistogram_t, JMaplist_t, JDistance_t >

Transformable multidimensional histogram.

This class implements the JTransformable interface.

Definition at line 35 of file JTransformableMultiHistogram.hh.

Member Typedef Documentation

template<class JHistogram_t, class JMaplist_t, class JDistance_t = JDistance<typename JHistogram_t::abscissa_type>>
typedef JMultiHistogram<JHistogram_t, JMaplist_t, JDistance_t> JTOOLS::JTransformableMultiHistogram< JHistogram_t, JMaplist_t, JDistance_t >::JMultiHistogram_t

Definition at line 43 of file JTransformableMultiHistogram.hh.

template<class JHistogram_t, class JMaplist_t, class JDistance_t = JDistance<typename JHistogram_t::abscissa_type>>
typedef JHistogram_t JTOOLS::JTransformableMultiHistogram< JHistogram_t, JMaplist_t, JDistance_t >::histogram_type

Definition at line 47 of file JTransformableMultiHistogram.hh.

template<class JHistogram_t, class JMaplist_t, class JDistance_t = JDistance<typename JHistogram_t::abscissa_type>>
typedef histogram_type::contents_type JTOOLS::JTransformableMultiHistogram< JHistogram_t, JMaplist_t, JDistance_t >::contents_type

Definition at line 49 of file JTransformableMultiHistogram.hh.

template<class JHistogram_t, class JMaplist_t, class JDistance_t = JDistance<typename JHistogram_t::abscissa_type>>
typedef histogram_type::value_type JTOOLS::JTransformableMultiHistogram< JHistogram_t, JMaplist_t, JDistance_t >::value_type

Definition at line 50 of file JTransformableMultiHistogram.hh.

template<class JHistogram_t, class JMaplist_t, class JDistance_t = JDistance<typename JHistogram_t::abscissa_type>>
typedef JMultiHistogram_t::abscissa_type JTOOLS::JTransformableMultiHistogram< JHistogram_t, JMaplist_t, JDistance_t >::abscissa_type

Definition at line 52 of file JTransformableMultiHistogram.hh.

template<class JHistogram_t, class JMaplist_t, class JDistance_t = JDistance<typename JHistogram_t::abscissa_type>>
typedef JMultiHistogram_t::ordinate_type JTOOLS::JTransformableMultiHistogram< JHistogram_t, JMaplist_t, JDistance_t >::ordinate_type

Definition at line 53 of file JTransformableMultiHistogram.hh.

template<class JHistogram_t, class JMaplist_t, class JDistance_t = JDistance<typename JHistogram_t::abscissa_type>>
typedef JMultiHistogram_t::const_iterator JTOOLS::JTransformableMultiHistogram< JHistogram_t, JMaplist_t, JDistance_t >::const_iterator

Definition at line 55 of file JTransformableMultiHistogram.hh.

template<class JHistogram_t, class JMaplist_t, class JDistance_t = JDistance<typename JHistogram_t::abscissa_type>>
typedef JMultiHistogram_t::const_reverse_iterator JTOOLS::JTransformableMultiHistogram< JHistogram_t, JMaplist_t, JDistance_t >::const_reverse_iterator

Definition at line 56 of file JTransformableMultiHistogram.hh.

template<class JHistogram_t, class JMaplist_t, class JDistance_t = JDistance<typename JHistogram_t::abscissa_type>>
typedef JMultiHistogram_t::iterator JTOOLS::JTransformableMultiHistogram< JHistogram_t, JMaplist_t, JDistance_t >::iterator

Definition at line 57 of file JTransformableMultiHistogram.hh.

template<class JHistogram_t, class JMaplist_t, class JDistance_t = JDistance<typename JHistogram_t::abscissa_type>>
typedef JMultiHistogram_t::reverse_iterator JTOOLS::JTransformableMultiHistogram< JHistogram_t, JMaplist_t, JDistance_t >::reverse_iterator

Definition at line 58 of file JTransformableMultiHistogram.hh.

template<class JHistogram_t, class JMaplist_t, class JDistance_t = JDistance<typename JHistogram_t::abscissa_type>>
typedef JMultiHistogram_t::super_iterator JTOOLS::JTransformableMultiHistogram< JHistogram_t, JMaplist_t, JDistance_t >::super_iterator

Definition at line 60 of file JTransformableMultiHistogram.hh.

template<class JHistogram_t, class JMaplist_t, class JDistance_t = JDistance<typename JHistogram_t::abscissa_type>>
typedef JMultiHistogram_t::super_const_iterator JTOOLS::JTransformableMultiHistogram< JHistogram_t, JMaplist_t, JDistance_t >::super_const_iterator

Definition at line 61 of file JTransformableMultiHistogram.hh.

template<class JHistogram_t, class JMaplist_t, class JDistance_t = JDistance<typename JHistogram_t::abscissa_type>>
typedef JMultiMapTransformer<JMapLength<JMaplist_t>::value, abscissa_type> JTOOLS::JTransformableMultiHistogram< JHistogram_t, JMaplist_t, JDistance_t >::transformer_type

Definition at line 63 of file JTransformableMultiHistogram.hh.

template<class JHistogram_t, class JMaplist_t, class JDistance_t = JDistance<typename JHistogram_t::abscissa_type>>
typedef transformer_type::array_type JTOOLS::JTransformableMultiHistogram< JHistogram_t, JMaplist_t, JDistance_t >::array_type

Definition at line 64 of file JTransformableMultiHistogram.hh.

template<class JHistogram_t, class JMaplist_t, class JDistance_t = JDistance<typename JHistogram_t::abscissa_type>>
typedef JMultiMap<typename JHistogram_t::abscissa_type, JHistogram_t, JMaplist_t, JDistance_t> JTOOLS::JMultiHistogram< JHistogram_t, JMaplist_t, JDistance_t >::multimap_type
inherited

Definition at line 41 of file JMultiHistogram.hh.

typedef JHistogram_t::abscissa_type JTOOLS::JTransformable< N, JHistogram_t::abscissa_type >::argument_type
inherited

Definition at line 329 of file JMultiMapTransformer.hh.

Member Enumeration Documentation

template<class JHistogram_t, class JMaplist_t, class JDistance_t = JDistance<typename JHistogram_t::abscissa_type>>
anonymous enum
template<class JHistogram_t, class JMaplist_t, class JDistance_t = JDistance<typename JHistogram_t::abscissa_type>>
anonymous enum
inherited
Enumerator
NUMBER_OF_DIMENSIONS 

Definition at line 43 of file JMultiHistogram.hh.

Constructor & Destructor Documentation

template<class JHistogram_t, class JMaplist_t, class JDistance_t = JDistance<typename JHistogram_t::abscissa_type>>
JTOOLS::JTransformableMultiHistogram< JHistogram_t, JMaplist_t, JDistance_t >::JTransformableMultiHistogram ( )
inline

Default constructor.

Definition at line 70 of file JTransformableMultiHistogram.hh.

70  :
72  {}
JLANG::JSharedPointer< transformer_type > transformer
static JMultiMapTransformer * getClone()
Get clone of default transformer.

Member Function Documentation

template<class JHistogram_t, class JMaplist_t, class JDistance_t = JDistance<typename JHistogram_t::abscissa_type>>
const JTransformableMultiHistogram& JTOOLS::JTransformableMultiHistogram< JHistogram_t, JMaplist_t, JDistance_t >::getTransformableMultiHistogram ( ) const
inline

Get transformable multidimensional histogram.

Returns
this transformable multidimensional histogram

Definition at line 80 of file JTransformableMultiHistogram.hh.

81  {
82  return static_cast<const JTransformableMultiHistogram&>(*this);
83  }
Transformable multidimensional histogram.
template<class JHistogram_t, class JMaplist_t, class JDistance_t = JDistance<typename JHistogram_t::abscissa_type>>
JTransformableMultiHistogram& JTOOLS::JTransformableMultiHistogram< JHistogram_t, JMaplist_t, JDistance_t >::getTransformableMultiHistogram ( )
inline

Get transformable multidimensional histogram.

Returns
this transformable multidimensional histogram

Definition at line 91 of file JTransformableMultiHistogram.hh.

92  {
93  return static_cast<JTransformableMultiHistogram&>(*this);
94  }
Transformable multidimensional histogram.
template<class JHistogram_t, class JMaplist_t, class JDistance_t = JDistance<typename JHistogram_t::abscissa_type>>
virtual void JTOOLS::JTransformableMultiHistogram< JHistogram_t, JMaplist_t, JDistance_t >::transform ( const transformer_type transformer)
inlineoverridevirtual

Application of weight function and coordinate transformation.

Parameters
transformerfunction transformer

Definition at line 102 of file JTransformableMultiHistogram.hh.

103  {
104  typedef typename transformer_type::array_type array_type;
105 
106  for (super_iterator i = this->super_begin(); i != this->super_end(); ++i) {
107 
108  const array_type array = (*i).getKey();
109  histogram_type& histogram = (*i).getValue();
110 
111  const JMultiMapGetTransformer<NUMBER_OF_DIMENSIONS - 1, value_type> get(*(this->transformer), array);
113 
114  histogram.transform(get);
115  histogram.transform(put);
116  }
117 
118  this->transformer.reset(transformer.clone());
119  }
JLANG::JSharedPointer< transformer_type > transformer
then warning Cannot perform comparison test for histogram
Auxiliary class to convert JMultiMapTransformer to JCollectionElementTransformer. ...
JArray< N, argument_type > array_type
JMultiHistogram_t::super_iterator super_iterator
Auxiliary class to convert JMultiMapTransformer to JCollectionElementTransformer. ...
template<class JHistogram_t, class JMaplist_t, class JDistance_t = JDistance<typename JHistogram_t::abscissa_type>>
virtual void JTOOLS::JTransformableMultiHistogram< JHistogram_t, JMaplist_t, JDistance_t >::__fill__ ( const int  i,
const abscissa_type  x,
const contents_type  w 
)
inlineoverrideprotectedvirtual

Termination method for filling histogram.

Parameters
iindex
xabscissa value
wweight

Reimplemented from JTOOLS::JMultiHistogram< JHistogram_t, JMaplist_t, JDistance_t >.

Definition at line 162 of file JTransformableMultiHistogram.hh.

163  {
164  this->buffer[NUMBER_OF_DIMENSIONS - 1] = transformer->putXn(this->buffer, this->buffer[NUMBER_OF_DIMENSIONS - 1]);
165 
166  const double z = transformer->putXn(this->buffer, 1.0) - transformer->putXn(this->buffer, 0.0);
167  const double W = transformer->getWeight(this->buffer);
168 
169  this->evaluate(this->buffer.begin(), w * z / W);
170 
171  this->evaluate(this->buffer.begin(), w);
172  }
data_type w[N+1][M+1]
Definition: JPolint.hh:867
const_iterator begin() const
get iterator to begin of data
Definition: JArray.hh:209
JLANG::JSharedPointer< transformer_type > transformer
JArray< NUMBER_OF_DIMENSIONS, abscissa_type > buffer
template<class JHistogram_t, class JMaplist_t, class JDistance_t = JDistance<typename JHistogram_t::abscissa_type>>
const JMultiHistogram& JTOOLS::JMultiHistogram< JHistogram_t, JMaplist_t, JDistance_t >::getMultiHistogram ( ) const
inlineinherited

Get multidimensional histogram.

Returns
this multidimensional histogram

Definition at line 71 of file JMultiHistogram.hh.

72  {
73  return static_cast<const JMultiHistogram&>(*this);
74  }
Multidimensional histogram.
template<class JHistogram_t, class JMaplist_t, class JDistance_t = JDistance<typename JHistogram_t::abscissa_type>>
JMultiHistogram& JTOOLS::JMultiHistogram< JHistogram_t, JMaplist_t, JDistance_t >::getMultiHistogram ( )
inlineinherited

Get multidimensional histogram.

Returns
this multidimensional histogram

Definition at line 82 of file JMultiHistogram.hh.

83  {
84  return static_cast<JMultiHistogram&>(*this);
85  }
Multidimensional histogram.
template<class JHistogram_t, class JMaplist_t, class JDistance_t = JDistance<typename JHistogram_t::abscissa_type>>
template<class... Args>
void JTOOLS::JMultiHistogram< JHistogram_t, JMaplist_t, JDistance_t >::fill ( const Args &...  args)
inlineinherited

Multi-dimensional fill method call.

Parameters
argscomma seperated list of abscissa values and weight

Definition at line 94 of file JMultiHistogram.hh.

95  {
96  __fill__(0, args...);
97  }
void __fill__(const int i, const abscissa_type x0, const abscissa_type x1, const Args &...args)
Recursive method for filling histogram.
template<class JHistogram_t, class JMaplist_t, class JDistance_t = JDistance<typename JHistogram_t::abscissa_type>>
template<class... Args>
void JTOOLS::JMultiHistogram< JHistogram_t, JMaplist_t, JDistance_t >::__fill__ ( const int  i,
const abscissa_type  x0,
const abscissa_type  x1,
const Args &...  args 
)
inlineprotectedinherited

Recursive method for filling histogram.

Parameters
iindex
x0value at given index
x1value at following index
argsremaining values and weight

Definition at line 110 of file JMultiHistogram.hh.

111  {
112  this->buffer[i] = x0;
113 
114  __fill__(i + 1, x1, args...);
115  }
void __fill__(const int i, const abscissa_type x0, const abscissa_type x1, const Args &...args)
Recursive method for filling histogram.
JArray< NUMBER_OF_DIMENSIONS, abscissa_type > buffer
virtual void JTOOLS::JTransformable< N, JHistogram_t::abscissa_type >::transform ( const transformer_type transformer)
pure virtualinherited

Application of transformation.

Parameters
transformerfunction transformer

Friends And Related Function Documentation

template<class JHistogram_t, class JMaplist_t, class JDistance_t = JDistance<typename JHistogram_t::abscissa_type>>
JReader& operator>> ( JReader in,
JTransformableMultiHistogram< JHistogram_t, JMaplist_t, JDistance_t > &  object 
)
friend

Read transformable multidimensional histogram.

Parameters
inreader
objecttransformable multidimensional histogram.
Returns
reader

Definition at line 129 of file JTransformableMultiHistogram.hh.

130  {
131  in >> static_cast<JMultiHistogram_t&>(object);
132 
133  return object.transformer->read(in);
134  }
JMultiHistogram< JHistogram_t, JMaplist_t, JDistance_t > JMultiHistogram_t
then fatal Wrong number of arguments fi set_variable DETECTOR $argv[1] set_variable INPUT_FILE $argv[2] eval JPrintDetector a $DETECTOR O IDENTIFIER eval JPrintDetector a $DETECTOR O SUMMARY JAcoustics sh $DETECTOR_ID source JAcousticsToolkit sh CHECK_EXIT_CODE typeset A EMITTERS get_tripods $WORKDIR tripod txt EMITTERS get_transmitters $WORKDIR transmitter txt EMITTERS for EMITTER in
Definition: JCanberra.sh:48
template<class JHistogram_t, class JMaplist_t, class JDistance_t = JDistance<typename JHistogram_t::abscissa_type>>
JWriter& operator<< ( JWriter out,
const JTransformableMultiHistogram< JHistogram_t, JMaplist_t, JDistance_t > &  object 
)
friend

Write transformable multidimensional histogram.

Parameters
outwriter
objecttransformable multidimensional histogram
Returns
writer

Definition at line 144 of file JTransformableMultiHistogram.hh.

145  {
146  out << static_cast<const JMultiHistogram_t&>(object);
147 
148  return object.transformer->write(out);
149  }

Member Data Documentation

template<class JHistogram_t, class JMaplist_t, class JDistance_t = JDistance<typename JHistogram_t::abscissa_type>>
JLANG::JSharedPointer<transformer_type> JTOOLS::JTransformableMultiHistogram< JHistogram_t, JMaplist_t, JDistance_t >::transformer

Definition at line 152 of file JTransformableMultiHistogram.hh.

template<class JHistogram_t, class JMaplist_t, class JDistance_t = JDistance<typename JHistogram_t::abscissa_type>>
JArray<NUMBER_OF_DIMENSIONS, abscissa_type> JTOOLS::JMultiHistogram< JHistogram_t, JMaplist_t, JDistance_t >::buffer
mutableprotectedinherited

Definition at line 131 of file JMultiHistogram.hh.


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