35 MnPrint print(
"NegativeG2LineSearch");
41 print.
Info(
"Doing a NegativeG2LineSearch since one of the G2 component is negative");
43 unsigned int n =
st.Parameters().Vec().size();
47 unsigned int iter = 0;
53 print.
Error(
"Input gradient to NG2LS must have G2 already computed");
59 for (
unsigned int i = 0; i <
n; i++) {
61 if (
dgrad.G2()(i) <= 0) {
75 if (
dgrad.Vec()(i) < 0)
85 print.
Debug(
"Iter", iter,
"param", i,
pa.Vec()(i),
"grad2",
dgrad.G2()(i),
"grad",
86 dgrad.Vec()(i),
"grad step", step(i),
" gdel ",
gdel);
90 print.
Debug(
"Line search result", pp.
X(),
"f(0)",
pa.Fval(),
"f(1)", pp.
Y());
99 print.
Debug(
"Compute G2 at the new point",
pa.Vec());
103 print.
Error(
"Cannot compute G2");
111 print.
Debug(
"New result after Line search - iter", iter,
"param", i,
pa.Vec()(i),
"step", step(i),
"new grad2",
118 }
while (iter++ < 2 *
n &&
iterate);
121 print.
Debug(
"Approximate new covariance after NegativeG2LS using only G2");
123 for (
unsigned int i = 0; i <
n; i++) {
142 for (
unsigned int i = 0; i < grad.
Vec().
size(); i++)
144 if (grad.
G2()(i) <= 0) {
size_t size(const MatrixT &matrix)
retrieve the size of a square matrix
ROOT::Detail::TRangeCast< T, true > TRangeDynCast
TRangeDynCast is an adapter class that allows the typed iteration through a TCollection.
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void gc
const MnAlgebraicVector & Vec() const
const MnAlgebraicVector & G2() const
interface class for gradient calculators
Class describing a symmetric matrix of size n.
MinimumError keeps the inv.
MinimumState keeps the information (position, Gradient, 2nd deriv, etc) after one minimization step (...
Wrapper class to FCNBase interface used internally by Minuit.
Implements a 1-dimensional minimization along a given direction (i.e.
Sets the relative floating point (double) arithmetic precision.
double Y() const
Accessor to the y (second) coordinate.
double X() const
Accessor to the x (first) coordinate.
void Debug(const Ts &... args)
void Error(const Ts &... args)
void Info(const Ts &... args)
bool HasNegativeG2(const FunctionGradient &, const MnMachinePrecision &) const
MinimumState operator()(const MnFcn &, const MinimumState &, const GradientCalculator &, const MnMachinePrecision &) const
double Estimate(const FunctionGradient &, const MinimumError &) const
int iterate(rng_state_t *X)
tbb::task_arena is an alias of tbb::interface7::task_arena, which doesn't allow to forward declare tb...