Jpp  18.2.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 | Friends | List of all members
JCALIBRATE::JParameter_t Class Reference

Auxiliary class for fit parameter with optional limits. More...

#include <JFitK40.hh>

Inheritance diagram for JCALIBRATE::JParameter_t:
JMATH::JMath< JFirst_t, JSecond_t >

Public Types

enum  FIT_t { FREE_t = 0, FIXED_t }
 Fit options. More...
 
typedef JTOOLS::JRange< double > range_type
 Type definition for range of parameter values. More...
 

Public Member Functions

 JParameter_t ()
 Default constructor. More...
 
 JParameter_t (const double value, const range_type &range=range_type::DEFAULT_RANGE())
 Constructor. More...
 
JParameter_tnegate ()
 Negate parameter. More...
 
JParameter_tadd (const JParameter_t &parameter)
 Add parameter. More...
 
JParameter_tsub (const JParameter_t &parameter)
 Subtract parameter. More...
 
JParameter_tmul (const double factor)
 Scale parameter. More...
 
JParameter_tdiv (const double factor)
 Scale parameter. More...
 
JParameter_tmul (const JParameter_t &first, const JParameter_t &second)
 Scale parameter. More...
 
bool isFree () const
 Check if parameter is free. More...
 
bool isFixed () const
 Check if parameter is fixed. More...
 
bool isBound () const
 Check if parameter is bound. More...
 
void set ()
 Set current value. More...
 
void fix ()
 Fix current value. More...
 
double get () const
 Get value. More...
 
void set (const double value)
 Set value. More...
 
void fix (const double value)
 Fix value. More...
 
double getDerivative () const
 Get derivative of value. More...
 
double operator() () const
 Type conversion operator. More...
 
 operator double () const
 Type conversion operator. More...
 
JParameter_toperator= (double value)
 Assignment operator. More...
 
JFirst_t & mul (const JSecond_t &object)
 Multiply with object. More...
 

Public Attributes

double value = 0.0
 
FIT_t option = FREE_t
 
range_type range = range_type::DEFAULT_RANGE()
 

Friends

std::istream & operator>> (std::istream &in, JParameter_t &object)
 Read parameter from input stream. More...
 
std::ostream & operator<< (std::ostream &out, const JParameter_t &object)
 Write parameter to output stream. More...
 

Detailed Description

Auxiliary class for fit parameter with optional limits.

Definition at line 106 of file JFitK40.hh.

Member Typedef Documentation

Type definition for range of parameter values.

Definition at line 122 of file JFitK40.hh.

Member Enumeration Documentation

Fit options.

Enumerator
FREE_t 

free

FIXED_t 

fixed

Definition at line 113 of file JFitK40.hh.

113  {
114  FREE_t = 0, //!< free
115  FIXED_t //!< fixed
116  };

Constructor & Destructor Documentation

JCALIBRATE::JParameter_t::JParameter_t ( )
inline

Default constructor.

Definition at line 128 of file JFitK40.hh.

129  {
130  set(0.0);
131  }
void set()
Set current value.
Definition: JFitK40.hh:268
JCALIBRATE::JParameter_t::JParameter_t ( const double  value,
const range_type range = range_type::DEFAULT_RANGE() 
)
inline

Constructor.

Parameters
valuevalue
rangerange

Definition at line 140 of file JFitK40.hh.

141  :
142  range(range)
143  {
144  set(value);
145  }
void set()
Set current value.
Definition: JFitK40.hh:268

Member Function Documentation

JParameter_t& JCALIBRATE::JParameter_t::negate ( )
inline

Negate parameter.

Returns
this parameter

Definition at line 153 of file JFitK40.hh.

154  {
155  set(-get());
156 
157  return *this;
158  }
void set()
Set current value.
Definition: JFitK40.hh:268
JParameter_t& JCALIBRATE::JParameter_t::add ( const JParameter_t parameter)
inline

Add parameter.

Parameters
parameterparameter
Returns
this parameter

Definition at line 167 of file JFitK40.hh.

168  {
169  set(get() + parameter.get());
170 
171  return *this;
172  }
void set()
Set current value.
Definition: JFitK40.hh:268
double get() const
Get value.
Definition: JFitK40.hh:288
JParameter_t& JCALIBRATE::JParameter_t::sub ( const JParameter_t parameter)
inline

Subtract parameter.

Parameters
parameterparameter
Returns
this parameter

Definition at line 181 of file JFitK40.hh.

182  {
183  set(get() - parameter.get());
184 
185  return *this;
186  }
void set()
Set current value.
Definition: JFitK40.hh:268
double get() const
Get value.
Definition: JFitK40.hh:288
JParameter_t& JCALIBRATE::JParameter_t::mul ( const double  factor)
inline

Scale parameter.

Parameters
factormultiplication factor
Returns
this parameter

Definition at line 195 of file JFitK40.hh.

196  {
197  set(get() * factor);
198 
199  return *this;
200  }
void set()
Set current value.
Definition: JFitK40.hh:268
JParameter_t& JCALIBRATE::JParameter_t::div ( const double  factor)
inline

Scale parameter.

Parameters
factordivision factor
Returns
this parameter

Definition at line 209 of file JFitK40.hh.

210  {
211  set(get() / factor);
212 
213  return *this;
214  }
void set()
Set current value.
Definition: JFitK40.hh:268
JParameter_t& JCALIBRATE::JParameter_t::mul ( const JParameter_t first,
const JParameter_t second 
)
inline

Scale parameter.

Parameters
firstfirst parameter
secondsecond parameter
Returns
this parameter

Definition at line 224 of file JFitK40.hh.

225  {
226  set(first.get() * second.get());
227 
228  return *this;
229  }
void set()
Set current value.
Definition: JFitK40.hh:268
double get() const
Get value.
Definition: JFitK40.hh:288
bool JCALIBRATE::JParameter_t::isFree ( ) const
inline

Check if parameter is free.

Returns
true if free; else false

Definition at line 237 of file JFitK40.hh.

238  {
239  return option == FREE_t;
240  }
bool JCALIBRATE::JParameter_t::isFixed ( ) const
inline

Check if parameter is fixed.

Returns
true if fixed; else false

Definition at line 248 of file JFitK40.hh.

249  {
250  return option == FIXED_t;
251  }
bool JCALIBRATE::JParameter_t::isBound ( ) const
inline

Check if parameter is bound.

Returns
true if bound; else false

Definition at line 259 of file JFitK40.hh.

260  {
261  return range.is_valid();
262  }
bool is_valid() const
Check validity of range.
Definition: JRange.hh:311
void JCALIBRATE::JParameter_t::set ( )
inline

Set current value.

Definition at line 268 of file JFitK40.hh.

269  {
270  option = FREE_t;
271  }
void JCALIBRATE::JParameter_t::fix ( )
inline

Fix current value.

Definition at line 277 of file JFitK40.hh.

278  {
279  option = FIXED_t;
280  }
double JCALIBRATE::JParameter_t::get ( ) const
inline

Get value.

Returns
value

Definition at line 288 of file JFitK40.hh.

289  {
290  if (isBound())
291  return range.getLowerLimit() + 0.5 * range.getLength() * (sin(value) + 1.0);
292  else
293  return value;
294  }
T getLowerLimit() const
Get lower limit.
Definition: JRange.hh:202
T getLength() const
Get length (difference between upper and lower limit).
Definition: JRange.hh:289
then usage set_variable ACOUSTICS_WORKDIR $WORKDIR set_variable FORMULA sin([0]+2 *$PI *([1]+[2]*x)*x)" set_variable DY 1.0e-8 mkdir $WORKDIR for DETECTOR in $DETECTORS[*]
bool isBound() const
Check if parameter is bound.
Definition: JFitK40.hh:259
void JCALIBRATE::JParameter_t::set ( const double  value)
inline

Set value.

Parameters
valuevalue

Definition at line 302 of file JFitK40.hh.

303  {
304  if (isBound())
305  this->value = asin(2.0 * (range.constrain(value) - range.getLowerLimit()) / range.getLength() - 1.0);
306  else
307  this->value = value;
308 
309  set();
310  }
void set()
Set current value.
Definition: JFitK40.hh:268
T getLowerLimit() const
Get lower limit.
Definition: JRange.hh:202
T getLength() const
Get length (difference between upper and lower limit).
Definition: JRange.hh:289
T constrain(argument_type x) const
Constrain value to range.
Definition: JRange.hh:350
bool isBound() const
Check if parameter is bound.
Definition: JFitK40.hh:259
void JCALIBRATE::JParameter_t::fix ( const double  value)
inline

Fix value.

Parameters
valuevalue

Definition at line 318 of file JFitK40.hh.

319  {
320  set(value);
321 
322  fix();
323  }
void set()
Set current value.
Definition: JFitK40.hh:268
void fix()
Fix current value.
Definition: JFitK40.hh:277
double JCALIBRATE::JParameter_t::getDerivative ( ) const
inline

Get derivative of value.

Returns
derivative of value

Definition at line 331 of file JFitK40.hh.

332  {
333  if (isBound())
334  return 0.5 * range.getLength() * cos(value);
335  else
336  return 1.0;
337  }
T getLength() const
Get length (difference between upper and lower limit).
Definition: JRange.hh:289
bool isBound() const
Check if parameter is bound.
Definition: JFitK40.hh:259
double JCALIBRATE::JParameter_t::operator() ( ) const
inline

Type conversion operator.

Returns
value

Definition at line 345 of file JFitK40.hh.

346  {
347  return get();
348  }
JCALIBRATE::JParameter_t::operator double ( ) const
inline

Type conversion operator.

Returns
value

Definition at line 356 of file JFitK40.hh.

357  {
358  return get();
359  }
JParameter_t& JCALIBRATE::JParameter_t::operator= ( double  value)
inline

Assignment operator.

Parameters
valuevalue
Returns
this parameter

Definition at line 368 of file JFitK40.hh.

369  {
370  set(value);
371 
372  return *this;
373  }
void set()
Set current value.
Definition: JFitK40.hh:268
template<class JFirst_t, class JSecond_t = JNullType>
JFirst_t& JMATH::JMath< JFirst_t, JSecond_t >::mul ( const JSecond_t &  object)
inlineinherited

Multiply with object.

Parameters
objectobject
Returns
result object

Definition at line 354 of file JMath.hh.

355  {
356  return static_cast<JFirst_t&>(*this) = JFirst_t().mul(static_cast<const JFirst_t&>(*this), object);
357  }

Friends And Related Function Documentation

std::istream& operator>> ( std::istream &  in,
JParameter_t object 
)
friend

Read parameter from input stream.

Parameters
ininput stream
objectparameter
Returns
input stream

Definition at line 383 of file JFitK40.hh.

384  {
385  return in >> object.value;
386  }
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:46
std::ostream& operator<< ( std::ostream &  out,
const JParameter_t object 
)
friend

Write parameter to output stream.

Parameters
outoutput stream
objectparameter
Returns
output stream

Definition at line 396 of file JFitK40.hh.

397  {
398  using namespace std;
399 
400  out << FIXED(12,6) << object.get() << ' '
401  << setw(5) << (object.isFixed() ? "fixed" : " ") << ' ';
402 
403  if (object.isBound()) {
404  out << FIXED(12,6) << object.value << ' ';
405  out << FIXED(12,6) << object.range.getLowerLimit() << ' '
406  << FIXED(12,6) << object.range.getUpperLimit();
407  }
408 
409  return out;
410  }
Auxiliary data structure for floating point format specification.
Definition: JManip.hh:446
bool isBound() const
Check if parameter is bound.
Definition: JFitK40.hh:259

Member Data Documentation

double JCALIBRATE::JParameter_t::value = 0.0

Definition at line 413 of file JFitK40.hh.

FIT_t JCALIBRATE::JParameter_t::option = FREE_t

Definition at line 414 of file JFitK40.hh.

range_type JCALIBRATE::JParameter_t::range = range_type::DEFAULT_RANGE()

Definition at line 415 of file JFitK40.hh.


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