4 #ifndef DDECAL_LBFGS_SOLVER_H
5 #define DDECAL_LBFGS_SOLVER_H
14 class LBFGSSolver final :
public SolverBase {
17 LBFGSSolver(
const double robust_nu,
const size_t max_iter,
18 const size_t history_size,
const size_t minibatches,
19 const double min_solution,
const double max_solution,
20 const SolverMode mode)
21 : robust_nu_(robust_nu),
22 batch_iter_(max_iter),
23 history_size_(history_size),
24 minibatches_(minibatches),
25 min_solution_(min_solution),
26 max_solution_(max_solution),
27 bound_constrained_((min_solution || max_solution) &&
28 (min_solution != max_solution)),
38 static xt::xtensor<double, 1> SplitSolutions(
39 const std::vector<DComplex>& solutions);
47 static void MergeSolutions(
SolutionTensor& next_solutions,
size_t ch_block,
48 const xt::xtensor<double, 1>& d_storage);
51 std::vector<std::vector<DComplex>>& solutions,
52 double time)
override;
54 size_t NSolutionPolarizations()
const override {
67 double GetRobustDOF()
const {
return robust_nu_; }
68 size_t GetMaxIter()
const {
return batch_iter_; }
69 size_t GetHistorySize()
const {
return history_size_; }
70 size_t GetMinibatches()
const {
return minibatches_; }
71 double GetMinSolution()
const {
return min_solution_; }
72 double GetMaxSolution()
const {
return max_solution_; }
73 bool GetBoundConstrained()
const {
return bound_constrained_; }
74 SolverMode GetMode()
const {
return mode_; }
83 bool bound_constrained_;
xt::xtensor< std::complex< double >, 4 > SolutionTensor
Definition: Solutions.h:19
SolveData< aocommon::MC2x2F > FullSolveData
Stores all 4 polarizations of the data.
Definition: SolveData.h:197
This file has generic helper routines for testing steps.
Definition: AntennaConfig.h:53