Loading [MathJax]/extensions/tex2jax.js
LSST Applications g0d33ba9806+3d1aa5cd78,g0fba68d861+6c07529581,g1e78f5e6d3+aa4d1c21f1,g1ec0fe41b4+f536777771,g1fd858c14a+c6963eae98,g35bb328faa+fcb1d3bbc8,g4af146b050+58cb980876,g4d2262a081+bfae794ebc,g53246c7159+fcb1d3bbc8,g5a012ec0e7+b20b785ecb,g60b5630c4e+3d1aa5cd78,g67b6fd64d1+4086c0989b,g78460c75b0+2f9a1b4bcd,g786e29fd12+cf7ec2a62a,g7b71ed6315+fcb1d3bbc8,g87b7deb4dc+a8b896a16a,g8852436030+75f93ca278,g89139ef638+4086c0989b,g9125e01d80+fcb1d3bbc8,g94187f82dc+3d1aa5cd78,g989de1cb63+4086c0989b,g9f33ca652e+94dd9a85be,g9f7030ddb1+3f50642ad9,ga2b97cdc51+3d1aa5cd78,ga44b1db4f6+7d2d5e68ea,gabe3b4be73+1e0a283bba,gabf8522325+fa80ff7197,gb1101e3267+96cb2ddcf2,gb58c049af0+f03b321e39,gb89ab40317+4086c0989b,gcf25f946ba+75f93ca278,gd6cbbdb0b4+af3c3595f5,gd9a9a58781+fcb1d3bbc8,gde0f65d7ad+ed90e8109d,ge278dab8ac+d65b3c2b70,ge410e46f29+4086c0989b,gf67bdafdda+4086c0989b,gfe06eef73a+e2ab3e8e4f,v29.0.0.rc5
LSST Data Management Base Package
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Modules Pages
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)