Jpp  15.0.1-rc.2-highQE
the software that should make you happy
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
Public Types | Public Member Functions | Static Public Member Functions | Public Attributes | Static Public Attributes | Static Protected Member Functions | Protected Attributes | Private Member Functions | Private Attributes | List of all members
JACOUSTICS::JKatoomba< JGandalf > Struct Template Reference

Template specialisation of fit function of acoustic model based on JGandalf minimiser. More...

#include <JKatoomba.hh>

Inheritance diagram for JACOUSTICS::JKatoomba< JGandalf >:
JACOUSTICS::JKatoomba_t JACOUSTICS::JGEOMETRY::JDetector JTOOLS::JHashMap< JKey_t, JValue_t, JEvaluator_t > JTOOLS::JHashCollection< std::pair< JKey_t, JValue_t >, JHashMapEvaluator< JEvaluator_t > > JTOOLS::JMappableCollection< JKey_t, JValue_t > std::vector< std::pair< JKey_t, JValue_t > >

Public Types

typedef double result_type
 
typedef JKey_t key_type
 
typedef JValue_t mapped_type
 
typedef std::pair< JKey_t,
JValue_t > 
value_type
 
typedef JHashMapEvaluator
< JEvaluator_t > 
evaluator_type
 
typedef JHashCollection
< value_type, evaluator_type
collection_type
 
typedef
collection_type::container_type 
container_type
 
typedef
container_type::const_iterator 
const_iterator
 
typedef
container_type::const_reverse_iterator 
const_reverse_iterator
 
typedef container_type::iterator iterator
 
typedef
container_type::reverse_iterator 
reverse_iterator
 

Public Member Functions

 JKatoomba (const JDetector &detector, const JSoundVelocity &velocity)
 Constructor. More...
 
template<class T >
result_type operator() (T __begin, T __end)
 Fit. More...
 
template<class JPDF_t >
double getToA (const JModel &model, const JHit< JPDF_t > &hit) const
 Get estimated time-of-arrival for given hit. More...
 
bool hasString (int string) const
 Check if this detector has given string. More...
 
bool hasLocation (const JLocation &location) const
 Check if this detector has given location. More...
 
virtual void clear () override
 Clear. More...
 
virtual mapped_typeget (typename JClass< key_type >::argument_type key) override
 Get mapped value. More...
 
virtual const mapped_typeget (typename JClass< key_type >::argument_type key) const override
 Get mapped value. More...
 
value_typeget (const T &value)
 Get element with given value. More...
 
const value_typeget (const T &value) const
 Get element with given value. More...
 
void swap (JHashCollection &collection)
 Swap hash collection. More...
 
const_iterator find (const T &value) const
 Find element with given value. More...
 
iterator find (const T &value)
 Find element with given value. More...
 
virtual bool insert (const value_type &element)
 Insert element. More...
 
void insert (T __begin, T __end)
 Insert values. More...
 
void erase (iterator pos)
 Erase element at given position. More...
 
void erase (iterator __begin, iterator __end)
 Erase elements in given range. More...
 
bool erase (const T &value)
 Erase element with given value. More...
 
bool has (const T &value) const
 Test whether given value is present. More...
 
int getIndex (const T &value) const
 Get index of given value. More...
 
const mapped_typeoperator[] (typename JClass< key_type >::argument_type key) const
 Get mapped value. More...
 
mapped_typeoperator[] (typename JClass< key_type >::argument_type key)
 Get mapped value. More...
 
void put (typename JClass< key_type >::argument_type key, typename JClass< mapped_type >::argument_type value)
 Put pair-wise element (key,value) into collection. More...
 

Static Public Member Functions

static bool getOption ()
 Get fit option. More...
 
static void setOption (const bool option)
 Set fit option. More...
 

Public Attributes

double lambda
 
JModel value
 
int numberOfIterations
 
JMATH::JMatrixNS V
 
const JDetectordetector
 
JSoundVelocity velocity
 
JLANG::JSharedPointer
< JMEstimator
estimator
 M-Estimator function. More...
 
JHashMapEvaluator< JEvaluator_t > getValue
 Function object for evaluation of element. More...
 

Static Public Attributes

static int debug = 0
 debug level More...
 
static int MAXIMUM_ITERATIONS = 1000
 maximal number of iterations More...
 
static double EPSILON = 1.0e-3
 maximal distance to minimum More...
 
static double LAMBDA_MIN = 0.01
 minimal value control parameter More...
 
static double LAMBDA_MAX = 100.0
 maximal value control parameter More...
 
static double LAMBDA_UP = 9.0
 multiplication factor control parameter More...
 
static double LAMBDA_DOWN = 11.0
 multiplication factor control parameter More...
 
static double PIVOT = 1.0e-3
 minimal value diagonal element of matrix More...
 

Static Protected Member Functions

static bool & get_option ()
 Get reference to fit option. More...
 

Protected Attributes

JTOOLS::JHashCollection::router_type router
 

Private Member Functions

template<class T >
void evaluate (T __begin, T __end)
 Evaluation of fit. More...
 

Private Attributes

std::vector< double > Y
 
result_type successor
 
JModel previous
 
std::vector< double > h
 

Detailed Description

template<>
struct JACOUSTICS::JKatoomba< JGandalf >

Template specialisation of fit function of acoustic model based on JGandalf minimiser.

Definition at line 466 of file JKatoomba.hh.

Member Typedef Documentation

Definition at line 469 of file JKatoomba.hh.

template<class JKey_t, class JValue_t, class JEvaluator_t = JHashEvaluator>
typedef JKey_t JTOOLS::JHashMap< JKey_t, JValue_t, JEvaluator_t >::key_type
inherited

Definition at line 78 of file JHashMap.hh.

template<class JKey_t, class JValue_t, class JEvaluator_t = JHashEvaluator>
typedef JValue_t JTOOLS::JHashMap< JKey_t, JValue_t, JEvaluator_t >::mapped_type
inherited

Definition at line 79 of file JHashMap.hh.

template<class JKey_t, class JValue_t, class JEvaluator_t = JHashEvaluator>
typedef std::pair<JKey_t, JValue_t> JTOOLS::JHashMap< JKey_t, JValue_t, JEvaluator_t >::value_type
inherited

Definition at line 80 of file JHashMap.hh.

template<class JKey_t, class JValue_t, class JEvaluator_t = JHashEvaluator>
typedef JHashMapEvaluator<JEvaluator_t> JTOOLS::JHashMap< JKey_t, JValue_t, JEvaluator_t >::evaluator_type
inherited

Definition at line 81 of file JHashMap.hh.

template<class JKey_t, class JValue_t, class JEvaluator_t = JHashEvaluator>
typedef JHashCollection<value_type, evaluator_type> JTOOLS::JHashMap< JKey_t, JValue_t, JEvaluator_t >::collection_type
inherited

Definition at line 83 of file JHashMap.hh.

template<class JKey_t, class JValue_t, class JEvaluator_t = JHashEvaluator>
typedef collection_type::container_type JTOOLS::JHashMap< JKey_t, JValue_t, JEvaluator_t >::container_type
inherited

Definition at line 84 of file JHashMap.hh.

template<class JKey_t, class JValue_t, class JEvaluator_t = JHashEvaluator>
typedef container_type::const_iterator JTOOLS::JHashMap< JKey_t, JValue_t, JEvaluator_t >::const_iterator
inherited

Definition at line 86 of file JHashMap.hh.

template<class JKey_t, class JValue_t, class JEvaluator_t = JHashEvaluator>
typedef container_type::const_reverse_iterator JTOOLS::JHashMap< JKey_t, JValue_t, JEvaluator_t >::const_reverse_iterator
inherited

Definition at line 87 of file JHashMap.hh.

template<class JKey_t, class JValue_t, class JEvaluator_t = JHashEvaluator>
typedef container_type::iterator JTOOLS::JHashMap< JKey_t, JValue_t, JEvaluator_t >::iterator
inherited

Definition at line 88 of file JHashMap.hh.

template<class JKey_t, class JValue_t, class JEvaluator_t = JHashEvaluator>
typedef container_type::reverse_iterator JTOOLS::JHashMap< JKey_t, JValue_t, JEvaluator_t >::reverse_iterator
inherited

Definition at line 89 of file JHashMap.hh.

Constructor & Destructor Documentation

JACOUSTICS::JKatoomba< JGandalf >::JKatoomba ( const JDetector detector,
const JSoundVelocity velocity 
)
inline

Constructor.

Parameters
detectordetector
velocitysound velocity

Definition at line 478 of file JKatoomba.hh.

479  :
480  JKatoomba_t(detector, velocity)
481  {};
JKatoomba_t(const JDetector &detector, const JSoundVelocity &velocity)
Constructor.
Definition: JKatoomba.hh:63

Member Function Documentation

template<class T >
result_type JACOUSTICS::JKatoomba< JGandalf >::operator() ( T  __begin,
T  __end 
)
inline

Fit.

Parameters
__beginbegin of hits
__endend of hits
Returns
chi2 and gradient

Definition at line 492 of file JKatoomba.hh.

493  {
494  using namespace std;
495  using namespace JPP;
496 
497  const int N = (getOption() ? value.getN() : value.emitter.getN());
498 
499  V.resize(N);
500  Y.resize(N);
501  h.resize(N);
502 
503  lambda = LAMBDA_MIN;
504 
505  result_type precessor = numeric_limits<double>::max();
506 
508 
509  DEBUG("step: " << numberOfIterations << endl);
510 
511  evaluate(__begin, __end);
512 
513  DEBUG("lambda: " << FIXED(12,5) << lambda << endl);
514  DEBUG("chi2: " << FIXED(12,5) << successor << endl);
515 
516  if (successor < precessor) {
517 
518  if (numberOfIterations != 0) {
519 
520  if (fabs(precessor - successor) < EPSILON*fabs(precessor)) {
521  return successor;
522  }
523 
524  if (lambda > LAMBDA_MIN) {
525  lambda /= LAMBDA_DOWN;
526  }
527  }
528 
529  precessor = successor;
530  previous = value;
531 
532  } else {
533 
534  value = previous;
535  lambda *= LAMBDA_UP;
536 
537  if (lambda > LAMBDA_MAX) {
538  return precessor; // no improvement found
539  }
540 
541  evaluate(__begin, __end);
542  }
543 
544 
545  // force definite positiveness
546 
547  for (int i = 0; i != N; ++i) {
548 
549  if (V(i,i) < PIVOT) {
550  V(i,i) = PIVOT;
551  }
552 
553  h[i] = 1.0 / sqrt(V(i,i));
554  }
555 
556 
557  // normalisation
558 
559  for (int i = 0; i != N; ++i) {
560  for (int j = 0; j != i; ++j) {
561  V(j,i) *= h[i] * h[j];
562  V(i,j) = V(j,i);
563  }
564  }
565 
566  for (int i = 0; i != N; ++i) {
567  V(i,i) = 1.0 + lambda;
568  }
569 
570 
571  try {
572  V.invert();
573  }
574  catch (const JException& error) {
575  ERROR("JKatoomb<JGandalf>: " << error.what() << endl);
576  return precessor;
577  }
578 
579 
580  for (int i = 0; i != N; ++i) {
581 
582  DEBUG("u[" << noshowpos << i << "] = " << showpos << FIXED(15,5) << value[i]);
583 
584  double y = 0.0;
585 
586  for (int j = 0; j != N; ++j) {
587  y += V(i,j) * Y[j] * h[i] * h[j];
588  }
589 
590  value[i] -= y;
591 
592  DEBUG(' ' << FIXED(15,5) << y << noshowpos << endl);
593  }
594  }
595 
596  return 0.0;
597  }
size_t getN() const
Get number of fit parameters.
General exception.
Definition: JException.hh:23
static double LAMBDA_UP
multiplication factor control parameter
Definition: JKatoomba.hh:604
then JShowerPostfit f $INPUT_FILE o $OUTPUT_FILE N
Auxiliary data structure for floating point format specification.
Definition: JManip.hh:446
void resize(const size_t size)
Resize matrix.
Definition: JMatrixND.hh:362
static double EPSILON
maximal distance to minimum
Definition: JKatoomba.hh:601
static double LAMBDA_MIN
minimal value control parameter
Definition: JKatoomba.hh:602
void evaluate(T __begin, T __end)
Evaluation of fit.
Definition: JKatoomba.hh:621
#define ERROR(A)
Definition: JMessage.hh:66
static double LAMBDA_MAX
maximal value control parameter
Definition: JKatoomba.hh:603
static int MAXIMUM_ITERATIONS
maximal number of iterations
Definition: JKatoomba.hh:600
std::vector< double > h
Definition: JKatoomba.hh:681
void invert()
Invert matrix according LDU decomposition.
Definition: JMatrixNS.hh:80
JACOUSTICS::JModel::emitter_type emitter
virtual const char * what() const override
Get error message.
Definition: JException.hh:48
static double LAMBDA_DOWN
multiplication factor control parameter
Definition: JKatoomba.hh:605
size_t getN() const
Get number of fit parameters.
then usage $script< input_file >< detector_file > fi set_variable OUTPUT_DIR set_variable SELECTOR JDAQTimesliceL1 set_variable DEBUG case set_variable DEBUG
static double PIVOT
minimal value diagonal element of matrix
Definition: JKatoomba.hh:606
int j
Definition: JPolint.hh:666
static bool getOption()
Get fit option.
Definition: JKatoomba.hh:102
std::vector< double > Y
Definition: JKatoomba.hh:678
template<class T >
void JACOUSTICS::JKatoomba< JGandalf >::evaluate ( T  __begin,
T  __end 
)
inlineprivate

Evaluation of fit.

Parameters
__beginbegin of data
__endend of data

Definition at line 621 of file JKatoomba.hh.

622  {
623  using namespace std;
624  using namespace JPP;
625 
626  successor = 0.0;
627 
628  V.reset();
629 
630  for (std::vector<double>::iterator i = Y.begin(); i != Y.end(); ++i) {
631  *i = 0.0;
632  }
633 
634  for (T hit = __begin; hit != __end; ++hit) {
635 
636  const JGEOMETRY::JString& string = detector[hit->getString()];
637  const JMODEL ::JString& parameters = value.string[hit->getString()];
638  const JPosition3D position = string.getPosition(parameters, hit->getFloor());
639 
640  const double D = hit->getDistance(position);
641  const double Vi = velocity.getInverseVelocity(D, hit->getZ(), position.getZ());
642  const double toa_s = value.emitter[hit->getEKey()].t1 + D * Vi;
643 
644  const double u = (toa_s - hit->getValue()) / hit->sigma;
645  const double W = sqrt(hit->getWeight());
646 
647  successor += (W*W) * estimator->getRho(u);
648 
649  H_t H(1.0, string.getGradient(parameters, hit->getPosition(), hit->getFloor()) * Vi);
650 
651  H *= W * estimator->getPsi(u) / hit->sigma;
652 
653  I_t i;
654 
655  i.t1 = value.getIndex(hit->getEKey(), &H_t::t1);
656  i.tx = value.getIndex(hit->getString(), &H_t::tx);
657  i.ty = value.getIndex(hit->getString(), &H_t::ty);
658 
659  V(i.t1, i.t1) += H.t1 * H.t1;
660 
661  Y[i.t1] += W * H.t1;
662 
663  if (getOption()) {
664 
665  V(i.t1, i.tx) += H.t1 * H.tx; V(i.t1, i.ty) += H.t1 * H.ty;
666  V(i.tx, i.t1) += H.tx * H.t1; V(i.ty, i.t1) += H.ty * H.t1;
667 
668  V(i.tx, i.tx) += H.tx * H.tx; V(i.tx, i.ty) += H.tx * H.ty;
669  V(i.ty, i.tx) += H.ty * H.tx; V(i.ty, i.ty) += H.ty * H.ty;
670 
671  Y[i.tx] += W * H.tx;
672  Y[i.ty] += W * H.ty;
673  }
674  }
675  }
static const double H
Planck constant [eV s].
*fatal Wrong number of arguments esac JCookie sh typeset Z DETECTOR typeset Z SOURCE_RUN typeset Z TARGET_RUN set_variable PARAMETERS_FILE $WORKDIR parameters
Definition: diff-Tuna.sh:38
JMatrixND & reset()
Set matrix to the null matrix.
Definition: JMatrixND.hh:375
Detector file.
Definition: JHead.hh:196
JLANG::JSharedPointer< JMEstimator > estimator
M-Estimator function.
Definition: JKatoomba.hh:94
virtual double getInverseVelocity(const double D_m, const double z1, const double z2) const override
Get inverse velocity of sound.
do set_variable OUTPUT_DIRECTORY $WORKDIR T
const JPosition3D & getPosition() const
Get position.
Definition: JPosition3D.hh:130
size_t getIndex(int id, double JString::*p) const
Get index of fit parameter for given string.
JACOUSTICS::JModel::string_type string
JACOUSTICS::JModel::emitter_type emitter
Data structure for position in three dimensions.
Definition: JPosition3D.hh:36
double u[N+1]
Definition: JPolint.hh:739
static bool getOption()
Get fit option.
Definition: JKatoomba.hh:102
JSoundVelocity velocity
Definition: JKatoomba.hh:92
do echo Generating $dir eval D
Definition: JDrawLED.sh:53
double getZ() const
Get z position.
Definition: JVector3D.hh:115
std::vector< double > Y
Definition: JKatoomba.hh:678
template<class JPDF_t >
double JACOUSTICS::JKatoomba_t::getToA ( const JModel model,
const JHit< JPDF_t > &  hit 
) const
inlineinherited

Get estimated time-of-arrival for given hit.

Parameters
modelmodel
hithit
Returns
time-of-arrival

Definition at line 78 of file JKatoomba.hh.

79  {
80  const JGEOMETRY::JString& string = detector[hit.getString()];
81  const JMODEL ::JString& parameters = model.string[hit.getString()];
82  const JPosition3D position = string.getPosition(parameters, hit.getFloor());
83 
84  const double D = hit.getDistance(position);
85  const double Vi = velocity.getInverseVelocity(D, hit.getZ(), position.getZ());
86 
87  return model.emitter[hit.getEKey()].t1 + D * Vi;
88  }
int getFloor() const
Get floor number.
Definition: JLocation.hh:145
*fatal Wrong number of arguments esac JCookie sh typeset Z DETECTOR typeset Z SOURCE_RUN typeset Z TARGET_RUN set_variable PARAMETERS_FILE $WORKDIR parameters
Definition: diff-Tuna.sh:38
JEKey getEKey() const
Get emitter hash key of this hit.
double getDistance(const JVector3D &pos) const
Get distance to point.
Definition: JVector3D.hh:270
Detector file.
Definition: JHead.hh:196
virtual double getInverseVelocity(const double D_m, const double z1, const double z2) const override
Get inverse velocity of sound.
const JPosition3D & getPosition() const
Get position.
Definition: JPosition3D.hh:130
JACOUSTICS::JModel::string_type string
JACOUSTICS::JModel::emitter_type emitter
int getString() const
Get string number.
Definition: JLocation.hh:134
Data structure for position in three dimensions.
Definition: JPosition3D.hh:36
JSoundVelocity velocity
Definition: JKatoomba.hh:92
do echo Generating $dir eval D
Definition: JDrawLED.sh:53
double getZ() const
Get z position.
Definition: JVector3D.hh:115
static bool JACOUSTICS::JKatoomba_t::getOption ( )
inlinestaticinherited

Get fit option.

Returns
option

Definition at line 102 of file JKatoomba.hh.

103  {
104  return get_option();
105  }
static bool & get_option()
Get reference to fit option.
Definition: JKatoomba.hh:124
static void JACOUSTICS::JKatoomba_t::setOption ( const bool  option)
inlinestaticinherited

Set fit option.

Parameters
optionoption

Definition at line 113 of file JKatoomba.hh.

114  {
115  get_option() = option;
116  }
static bool & get_option()
Get reference to fit option.
Definition: JKatoomba.hh:124
static bool& JACOUSTICS::JKatoomba_t::get_option ( )
inlinestaticprotectedinherited

Get reference to fit option.

Returns
option

Definition at line 124 of file JKatoomba.hh.

125  {
126  static bool option = true;
127 
128  return option;
129  }
bool JACOUSTICS::JGEOMETRY::JDetector::hasString ( int  string) const
inlineinherited

Check if this detector has given string.

Parameters
stringstring
Returns
true if string present; else false

Definition at line 468 of file JGeometry.hh.

469  {
470  return this->has(string);
471  }
bool has(const T &value) const
Test whether given value is present.
bool JACOUSTICS::JGEOMETRY::JDetector::hasLocation ( const JLocation location) const
inlineinherited

Check if this detector has given location.

Parameters
locationlocation
Returns
true if location present; else false

Definition at line 480 of file JGeometry.hh.

481  {
482  return this->hasString(location.getString()) && (*this)[location.getString()].hasFloor(location.getFloor());
483  }
int getFloor() const
Get floor number.
Definition: JLocation.hh:145
bool hasString(int string) const
Check if this detector has given string.
Definition: JGeometry.hh:468
int getString() const
Get string number.
Definition: JLocation.hh:134
template<class JKey_t, class JValue_t, class JEvaluator_t = JHashEvaluator>
virtual void JTOOLS::JHashMap< JKey_t, JValue_t, JEvaluator_t >::clear ( )
inlineoverridevirtualinherited

Clear.

Implements JTOOLS::JMappableCollection< JKey_t, JValue_t >.

Definition at line 107 of file JHashMap.hh.

108  {
110  }
template<class JKey_t, class JValue_t, class JEvaluator_t = JHashEvaluator>
virtual mapped_type& JTOOLS::JHashMap< JKey_t, JValue_t, JEvaluator_t >::get ( typename JClass< key_type >::argument_type  key)
inlineoverridevirtualinherited

Get mapped value.

Parameters
keykey
Returns
mapped value

Implements JTOOLS::JMappableCollection< JKey_t, JValue_t >.

Definition at line 119 of file JHashMap.hh.

120  {
121  const int ival = this->getValue(key);
122 
123  if (!this->router.has(ival)) {
125  }
126 
127  return container_type::operator[](this->router.get(ival)).second;
128  }
JValue_t mapped_type
Definition: JHashMap.hh:79
virtual bool insert(const value_type &element)
Insert element.
std::pair< JKey_t, JValue_t > value_type
Definition: JHashMap.hh:80
JHashMapEvaluator< JEvaluator_t > getValue
Function object for evaluation of element.
template<class JKey_t, class JValue_t, class JEvaluator_t = JHashEvaluator>
virtual const mapped_type& JTOOLS::JHashMap< JKey_t, JValue_t, JEvaluator_t >::get ( typename JClass< key_type >::argument_type  key) const
inlineoverridevirtualinherited

Get mapped value.

This method will throw an exception if given key is not present following the prerequisite of constness.

Parameters
keykey
Returns
mapped value

Implements JTOOLS::JMappableCollection< JKey_t, JValue_t >.

Definition at line 139 of file JHashMap.hh.

140  {
141  const int ival = this->getValue(key);
142 
143  if (this->router.has(ival))
144  return container_type::operator[](this->router.get(ival)).second;
145  else
146  THROW(JIndexOutOfRange, "JHasMap::get(): invalid key " << STREAM("?") << key);
147  }
#define THROW(JException_t, A)
Marco for throwing exception with std::ostream compatible message.
Definition: JException.hh:670
Auxiliary data structure for handling std::ostream.
JHashMapEvaluator< JEvaluator_t > getValue
Function object for evaluation of element.
value_type& JTOOLS::JHashCollection< std::pair< JKey_t, JValue_t > , JHashMapEvaluator< JEvaluator_t > >::get ( const T value)
inlineinherited

Get element with given value.

This method will throw an exception if given value is not present following the prerequisite of constness.

Parameters
valuevalue
Returns
element

Definition at line 176 of file JHashCollection.hh.

177  {
178  const int ival = this->getValue(value);
179 
180  if (!router.has(ival)) {
181  this->insert(value);
182  }
183 
184  return container_type::operator[](router.get(ival)).second;
185  }
JHashMapEvaluator< JEvaluator_t > getValue
Function object for evaluation of element.
const value_type& JTOOLS::JHashCollection< std::pair< JKey_t, JValue_t > , JHashMapEvaluator< JEvaluator_t > >::get ( const T value) const
inlineinherited

Get element with given value.

This method will throw an exception if given value is not present following the prerequisite of constness.

Parameters
valuevalue
Returns
element

Definition at line 197 of file JHashCollection.hh.

198  {
199  const int ival = this->getValue(value);
200 
201  if (router.has(ival)) {
202  return container_type::operator[](router.get(ival)).second;
203  }
204 
205  THROW(JIndexOutOfRange, "JHasCollection::get(): invalid value.");
206  }
#define THROW(JException_t, A)
Marco for throwing exception with std::ostream compatible message.
Definition: JException.hh:670
JHashMapEvaluator< JEvaluator_t > getValue
Function object for evaluation of element.
void JTOOLS::JHashCollection< std::pair< JKey_t, JValue_t > , JHashMapEvaluator< JEvaluator_t > >::swap ( JHashCollection< std::pair< JKey_t, JValue_t >, JHashMapEvaluator< JEvaluator_t > > &  collection)
inlineinherited

Swap hash collection.

Parameters
collectionhash collection

Definition at line 123 of file JHashCollection.hh.

124  {
125  router.swap(collection.router);
126 
127  container_type::swap(collection);
128  }
const_iterator JTOOLS::JHashCollection< std::pair< JKey_t, JValue_t > , JHashMapEvaluator< JEvaluator_t > >::find ( const T value) const
inlineinherited

Find element with given value.

Parameters
valuevalue
Returns
position of element with given value or end()

Definition at line 138 of file JHashCollection.hh.

139  {
140  const int ival = this->getValue(value);
141 
142  if (router.has(ival))
143  return this->begin() + router.get(ival);
144  else
145  return this->end();
146  }
JHashMapEvaluator< JEvaluator_t > getValue
Function object for evaluation of element.
iterator JTOOLS::JHashCollection< std::pair< JKey_t, JValue_t > , JHashMapEvaluator< JEvaluator_t > >::find ( const T value)
inlineinherited

Find element with given value.

Parameters
valuevalue
Returns
position of element with given value or end()

Definition at line 156 of file JHashCollection.hh.

157  {
158  const int ival = this->getValue(value);
159 
160  if (router.has(ival))
161  return this->begin() + router.get(ival);
162  else
163  return this->end();
164  }
JHashMapEvaluator< JEvaluator_t > getValue
Function object for evaluation of element.
virtual bool JTOOLS::JHashCollection< std::pair< JKey_t, JValue_t > , JHashMapEvaluator< JEvaluator_t > >::insert ( const value_type element)
inlinevirtualinherited

Insert element.

Parameters
elementelement
Returns
true if inserted; else false

Definition at line 215 of file JHashCollection.hh.

216  {
217  const int ival = this->getValue(element);
218 
219  if (!router.has(ival)) {
220 
221  container_type::push_back(element);
222 
223  router.put(ival, this->size() - 1);
224 
225  return true;
226  }
227 
228  return false;
229  }
JHashMapEvaluator< JEvaluator_t > getValue
Function object for evaluation of element.
void JTOOLS::JHashCollection< std::pair< JKey_t, JValue_t > , JHashMapEvaluator< JEvaluator_t > >::insert ( T  __begin,
T  __end 
)
inlineinherited

Insert values.

Parameters
__beginbegin of values
__endend of values

Definition at line 239 of file JHashCollection.hh.

240  {
241  for (T i = __begin; i != __end; ++i) {
242  insert(*i);
243  }
244  }
do set_variable OUTPUT_DIRECTORY $WORKDIR T
void JTOOLS::JHashCollection< std::pair< JKey_t, JValue_t > , JHashMapEvaluator< JEvaluator_t > >::erase ( iterator  pos)
inlineinherited

Erase element at given position.

Parameters
posvalid position

Definition at line 252 of file JHashCollection.hh.

253  {
254  router.put(this->getValue(*pos), router.getDefaultAddress());
255 
256  for (iterator i = container_type::erase(pos); i != this->end(); ++i) {
257  router.put(this->getValue(*i), distance(this->begin(), i));
258  }
259  }
std::vector< T >::difference_type distance(typename std::vector< T >::const_iterator first, typename PhysicsEvent::const_iterator< T > second)
Specialisation of STL distance.
JHashMapEvaluator< JEvaluator_t > getValue
Function object for evaluation of element.
void JTOOLS::JHashCollection< std::pair< JKey_t, JValue_t > , JHashMapEvaluator< JEvaluator_t > >::erase ( iterator  __begin,
iterator  __end 
)
inlineinherited

Erase elements in given range.

Parameters
__beginbegin position (included)
__endend position (excluded)

Definition at line 268 of file JHashCollection.hh.

269  {
270  for (iterator i = __begin; i != __end; ++i) {
271  router.put(this->getValue(*i), router.getDefaultAddress());
272  }
273 
274  for (iterator i = container_type::erase(__begin, __end); i != this->end(); ++i) {
275  router.put(this->getValue(*i), distance(this->begin(), i));
276  }
277  }
std::vector< T >::difference_type distance(typename std::vector< T >::const_iterator first, typename PhysicsEvent::const_iterator< T > second)
Specialisation of STL distance.
JHashMapEvaluator< JEvaluator_t > getValue
Function object for evaluation of element.
bool JTOOLS::JHashCollection< std::pair< JKey_t, JValue_t > , JHashMapEvaluator< JEvaluator_t > >::erase ( const T value)
inlineinherited

Erase element with given value.

Parameters
valuevalue
Returns
true if element has been erased; else false

Definition at line 287 of file JHashCollection.hh.

288  {
289  const int ival = this->getValue(value);
290 
291  if (router.has(ival)) {
292 
293  this->erase(this->begin() + router.get(ival));
294 
295  return true;
296  }
297 
298  return false;
299  }
JHashMapEvaluator< JEvaluator_t > getValue
Function object for evaluation of element.
bool JTOOLS::JHashCollection< std::pair< JKey_t, JValue_t > , JHashMapEvaluator< JEvaluator_t > >::has ( const T value) const
inlineinherited

Test whether given value is present.

Parameters
valuevalue
Returns
true if present; else false

Definition at line 309 of file JHashCollection.hh.

310  {
311  return router.has(this->getValue(value));
312  }
JHashMapEvaluator< JEvaluator_t > getValue
Function object for evaluation of element.
int JTOOLS::JHashCollection< std::pair< JKey_t, JValue_t > , JHashMapEvaluator< JEvaluator_t > >::getIndex ( const T value) const
inlineinherited

Get index of given value.

Parameters
valuevalue
Returns
indecx

Definition at line 322 of file JHashCollection.hh.

323  {
324  return router.get(this->getValue(value));
325  }
JHashMapEvaluator< JEvaluator_t > getValue
Function object for evaluation of element.
template<class JKey_t, class JValue_t>
const mapped_type& JTOOLS::JMappableCollection< JKey_t, JValue_t >::operator[] ( typename JClass< key_type >::argument_type  key) const
inlineinherited

Get mapped value.

Parameters
keykey
Returns
value

Definition at line 73 of file JMappableCollection.hh.

74  {
75  return get(key);
76  }
template<class JKey_t, class JValue_t>
mapped_type& JTOOLS::JMappableCollection< JKey_t, JValue_t >::operator[] ( typename JClass< key_type >::argument_type  key)
inlineinherited

Get mapped value.

Parameters
keykey
Returns
value

Definition at line 85 of file JMappableCollection.hh.

86  {
87  return get(key);
88  }
template<class JKey_t, class JValue_t>
void JTOOLS::JMappableCollection< JKey_t, JValue_t >::put ( typename JClass< key_type >::argument_type  key,
typename JClass< mapped_type >::argument_type  value 
)
inlineinherited

Put pair-wise element (key,value) into collection.

Parameters
keykey
valuevalue

Definition at line 97 of file JMappableCollection.hh.

99  {
100  get(key) = value;
101  }

Member Data Documentation

int JACOUSTICS::JKatoomba< JGandalf >::debug = 0
static

debug level

debug level.

Definition at line 599 of file JKatoomba.hh.

int JACOUSTICS::JKatoomba< JGandalf >::MAXIMUM_ITERATIONS = 1000
static

maximal number of iterations

maximal number of iterations.

Definition at line 600 of file JKatoomba.hh.

double JACOUSTICS::JKatoomba< JGandalf >::EPSILON = 1.0e-3
static

maximal distance to minimum

maximal distance to minimum.

Definition at line 601 of file JKatoomba.hh.

double JACOUSTICS::JKatoomba< JGandalf >::LAMBDA_MIN = 0.01
static

minimal value control parameter

Definition at line 602 of file JKatoomba.hh.

double JACOUSTICS::JKatoomba< JGandalf >::LAMBDA_MAX = 100.0
static

maximal value control parameter

Definition at line 603 of file JKatoomba.hh.

double JACOUSTICS::JKatoomba< JGandalf >::LAMBDA_UP = 9.0
static

multiplication factor control parameter

Definition at line 604 of file JKatoomba.hh.

double JACOUSTICS::JKatoomba< JGandalf >::LAMBDA_DOWN = 11.0
static

multiplication factor control parameter

Definition at line 605 of file JKatoomba.hh.

double JACOUSTICS::JKatoomba< JGandalf >::PIVOT = 1.0e-3
static

minimal value diagonal element of matrix

Definition at line 606 of file JKatoomba.hh.

double JACOUSTICS::JKatoomba< JGandalf >::lambda

Definition at line 608 of file JKatoomba.hh.

Definition at line 609 of file JKatoomba.hh.

int JACOUSTICS::JKatoomba< JGandalf >::numberOfIterations

Definition at line 610 of file JKatoomba.hh.

Definition at line 611 of file JKatoomba.hh.

Definition at line 678 of file JKatoomba.hh.

Definition at line 679 of file JKatoomba.hh.

JModel JACOUSTICS::JKatoomba< JGandalf >::previous
private

Definition at line 680 of file JKatoomba.hh.

Definition at line 681 of file JKatoomba.hh.

const JDetector& JACOUSTICS::JKatoomba_t::detector
inherited

Definition at line 91 of file JKatoomba.hh.

JSoundVelocity JACOUSTICS::JKatoomba_t::velocity
inherited

Definition at line 92 of file JKatoomba.hh.

JLANG::JSharedPointer<JMEstimator> JACOUSTICS::JKatoomba_t::estimator
inherited

M-Estimator function.

Definition at line 94 of file JKatoomba.hh.

JHashMapEvaluator< JEvaluator_t > JTOOLS::JHashCollection< std::pair< JKey_t, JValue_t > , JHashMapEvaluator< JEvaluator_t > >::getValue
inherited

Function object for evaluation of element.

Definition at line 331 of file JHashCollection.hh.

JTOOLS::JHashCollection::router_type JTOOLS::JHashCollection< std::pair< JKey_t, JValue_t > , JHashMapEvaluator< JEvaluator_t > >::router
protectedinherited

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