LSST Applications g0fba68d861+5616995c1c,g1ebb85f214+2420ccdea7,g1fd858c14a+44c57a1f81,g21d47ad084+8e51fce9ac,g262e1987ae+1a7d68eb3b,g2cef7863aa+3bd8df3d95,g35bb328faa+fcb1d3bbc8,g36ff55ed5b+2420ccdea7,g47891489e3+5c6313fe9a,g53246c7159+fcb1d3bbc8,g646c943bdb+dbb9921566,g67b6fd64d1+5c6313fe9a,g6bd32b75b5+2420ccdea7,g74acd417e5+37fc0c974d,g786e29fd12+cf7ec2a62a,g86c591e316+6e13bcb9e9,g87389fa792+1e0a283bba,g89139ef638+5c6313fe9a,g90f42f885a+fce05a46d3,g9125e01d80+fcb1d3bbc8,g93e38de9ac+5345a64125,g95a1e89356+47d08a1cc6,g97be763408+bba861c665,ga9e4eb89a6+85210110a1,gb0b61e0e8e+1f27f70249,gb58c049af0+f03b321e39,gb89ab40317+5c6313fe9a,gc4e39d7843+4e09c98c3d,gd16ba4ae74+5402bcf54a,gd8ff7fe66e+2420ccdea7,gd9a9a58781+fcb1d3bbc8,gdab6d2f7ff+37fc0c974d,gde280f09ee+604b327636,ge278dab8ac+50e2446c94,ge410e46f29+5c6313fe9a,gef3c2e6661+6b480e0fb7,gf67bdafdda+5c6313fe9a,gffca2db377+fcb1d3bbc8,v29.2.0.rc1
LSST Data Management Base Package
Loading...
Searching...
No Matches
param_defs.cc
Go to the documentation of this file.
2
4
5namespace lsst::gauss2d::fit {
6double finite_difference_param(ParamBase& param, double delta) {
7 const double value = param.get_value_transformed();
8 double value_new = value + delta;
9 try {
10 param.set_value_transformed(value_new);
11 // If the param is near an upper limit, this might fail: try -delta then
12 if (param.get_value_transformed() != value_new) {
13 delta = -delta;
14 value_new = value + delta;
15 param.set_value_transformed(value_new);
16 }
17 } catch (const std::runtime_error& err) {
18 delta = -delta;
19 value_new = value + delta;
20 try {
21 param.set_value_transformed(value_new);
22 } catch (const std::runtime_error& err2) {
23 throw std::runtime_error("Couldn't set param=" + param.str()
24 + " to new value_transformed=" + std::to_string(value_new) + " due to "
25 + err2.what() + "; are limits too restrictive?");
26 }
27 }
28 return delta;
29}
30} // namespace lsst::gauss2d::fit
virtual std::string str() const =0
Return a brief, human-readable string representation of this.
virtual void set_value_transformed(T value_transformed)=0
Set the transformed value for this parameter instance.
virtual T get_value_transformed() const =0
Return the transformed value of this parameter instance.
double finite_difference_param(ParamBase &param, double delta)
Definition param_defs.cc:6
lsst::modelfit::parameters::ParameterBase< double > ParamBase
Definition param_defs.h:9
T to_string(T... args)
T what(T... args)