Lines Matching refs:Problem
32 // The Problem object is used to build and hold least squares problems.
65 // blocks from a Problem after adding them.
81 // example, in a structure from motion problem a residual
99 // The canonical example of a sparse least squares problem is
105 // To create a least squares problem, use the AddResidualBlock() and
107 // squares problem containing 3 parameter blocks of sizes 3, 4 and 5
114 // Problem problem;
116 // problem.AddResidualBlock(new MyUnaryCostFunction(...), x1);
117 // problem.AddResidualBlock(new MyBinaryCostFunction(...), x2, x3);
120 class Problem {
130 // These flags control whether the Problem object owns the cost
132 // the Problem. If set to TAKE_OWNERSHIP, then the problem object
144 // Problem. If you only remove parameter blocks from the Problem
146 // Problem frequently, and have memory to spare, then flip this switch to
154 // the problem. There is a small but measurable performance penalty to
156 // your problem construction is correct, and 5% of the problem construction
166 // invocation Problem(Problem::Options()).
167 Problem();
168 explicit Problem(const Options& options);
170 ~Problem();
186 // The Problem object by default takes ownership of the
188 // live for the life of the Problem object. If the user wishes to
192 // Note: Even though the Problem takes ownership of cost_function
204 // Problem problem;
206 // problem.AddResidualBlock(new MyUnaryCostFunction(...), NULL, x1);
207 // problem.AddResidualBlock(new MyBinaryCostFunction(...), NULL, x2, x1);
259 // Add a parameter block with appropriate size to the problem.
266 // to the problem. Repeated calls with the same arguments are
273 // Remove a parameter block from the problem. The parameterization of the
275 // problem (similar to cost/loss functions in residual block removal). Any
279 // If Problem::Options::enable_fast_parameter_block_removal is true, then the
281 // block will incur a scan of the entire Problem object.
289 // Remove a residual block from the problem. Any parameters that the residual
292 // problem itself is deleted.
307 // The local_parameterization is owned by the Problem by default. It
315 // Number of parameter blocks in the problem. Always equals
323 // Number of residual blocks in the problem. Always equals
340 // parameter blocks currently in the problem. After this call,
344 // Options struct to control Problem::Evaluate.
357 // the order in which they were added to the problem. But, this
359 // problem.
362 // used to add parameter blocks to the Problem. These parameter
374 // they were added to the problem. But, this may change if the
375 // user removes any residual blocks from the problem.
378 // Even though the residual blocks in the problem may contain loss
389 // Evaluate Problem. Any of the output pointers can be NULL. Which
395 // time of the construction of the problem. i.e.,
397 // Problem problem;
399 // problem.AddResidualBlock(new MyCostFunction, NULL, &x);
402 // problem.Evaluate(Problem::EvaluateOptions(), &cost, NULL, NULL, NULL);
405 // problem at x = 2, then
408 // problem.Evaluate(Problem::EvaluateOptions(), &cost, NULL, NULL, NULL);
428 CERES_DISALLOW_COPY_AND_ASSIGN(Problem);