API reference
The full docstring index, grouped by area. Each group links to the page where those docstrings are written and discussed; this page is the lookup table, not the tutorial.
TRParams is documented under Thresholds and factors, the three solvers under Problem classes, and the trace alignment convention under Diagnostics.
Entry point
TrustRegionRadius.TRResult — TypeTRResultAn alias of JSO's GenericExecutionStats. Useful fields: status, solution, objective, dual_feas, iter, elapsed_time. Evaluation counts live on the model — neval_obj(nlp), neval_grad(nlp), neval_hprod(nlp).
TrustRegionRadius.AbstractTRSolver — TypeAbstractTRSolver <: AbstractOptimizationSolverSupertype of the three solvers. Which one applies is decided by the problem class, not by a keyword:
| solver | problem | sampling rule |
|---|---|---|
DeterministicTRSolver | any AbstractNLPModel, FullBatchNLP | none — the constructor has no such argument |
ExpectationTRSolver | ExpectationNLP | required, cap from budget |
FiniteSumTRSolver | FiniteSumNLP | required, cap min(budget, M) |
tr_solve dispatches for you.
TrustRegionRadius.tr_solve — Functiontr_solve(nlp; rule, model, subsolver, params, x_ref, true_curvature,
hessian_norm, kwargs...) -> TRResultThe declared keywords are rule, model, subsolver, params, x_ref, true_curvature and hessian_norm. Everything else, trace and callback above all, is forwarded through kwargs... to SolverCore.solve!, so trace = true is the supported spelling rather than a keyword of this function.
Solve nlp, choosing the solver from the problem class:
nlp | solver |
|---|---|
any AbstractNLPModel, FullBatchNLP | DeterministicTRSolver |
ExpectationNLP | ExpectationTRSolver |
FiniteSumNLP | FiniteSumTRSolver |
The sampling rule is not an argument here: it belongs to the oracle, because it decides what the oracle returns.
using TrustRegionRadius, ADNLPModels
# deterministic
nlp = ADNLPModel(x -> (1 - x[1])^2 + 100(x[2] - x[1]^2)^2, [-1.2, 1.0])
tr_solve(nlp; rule = RGrad(), model = SR1Model(mem = 5))
# finite sum: the cap is M, not a keyword
prob = LogisticRegression(K = 5, M = 2_000)
tr_solve(FiniteSumNLP(prob, RadiusProportional()); model = BHHHModel(ridge = 1e-8))
# expectation: the cap is the budget, because there is no M
exp_prob = PerturbedExpectation(base; σg = 1.0)
tr_solve(ExpectationNLP(exp_prob, RadiusProportional(); budget = 50_000))TrustRegionRadius.model_grad_evals — Functionmodel_grad_evals(solver) -> IntGradient evaluations made from inside the model, which the algorithm did not request. Non-zero only for SPDTarget, which calls grad inside dense_hessian and phi_target. Subtract before reporting neval_grad as a cost:
algorithm_grads = neval_grad(nlp) - model_grad_evals(solver)The fallback returns 0 because no other model evaluates the gradient itself.
Extension points
These are exported so that a rule, a model Hessian or a subproblem solver defined outside the package can hook into it. They are validators and traits rather than user-facing API: you call them when writing an extension, not when solving a problem.
- Rule authors:
check_factors,check_bounds,validate_thresholds,initial_radius,update_radius!,reset_rule!,asymptotic_regime,is_criticality_anchored,needs_retrospective,last_branch. - Model-Hessian authors:
hessian_op,dense_hessian,model_hprod!,update_model!,reset_model!,reports_negative_curvature,model_eltype,required_problem. - Subproblem-solver authors:
solve_subproblem!,SubWorkspace,returns_hprod,needs_eigenvector. - Problem and oracle authors:
problem_class,population,n_terms,has_scores,has_truth,full_batch,underlying_problem,check_model_problem,check_rule_problem,check_population_cap,user_cap. - Sampling-rule authors:
grad_sample_size,obj_sample_size,couples_to_radius,needs_scores,needs_paired,requires_finite_population,sample_cap,reset_sampling_rule!,supports_paired.
Index by area
Problem classes and oracles
TrustRegionRadius.AbstractProblemTrustRegionRadius.DeterministicProblemTrustRegionRadius.DeterministicTRSolverTrustRegionRadius.ExpectationNLPTrustRegionRadius.ExpectationProblemTrustRegionRadius.ExpectationTRSolverTrustRegionRadius.FiniteSumNLPTrustRegionRadius.FiniteSumProblemTrustRegionRadius.FiniteSumTRSolverTrustRegionRadius.FullBatchNLPTrustRegionRadius.LikelihoodProblemTrustRegionRadius.NLSProblemTrustRegionRadius.SampledNLPTrustRegionRadius.SampledProblemTrustRegionRadius.ScoredProblemTrustRegionRadius.check_model_problemTrustRegionRadius.check_population_capTrustRegionRadius.check_rule_problemTrustRegionRadius.full_batchTrustRegionRadius.has_scoresTrustRegionRadius.has_truthTrustRegionRadius.n_termsTrustRegionRadius.populationTrustRegionRadius.population_capTrustRegionRadius.problem_classTrustRegionRadius.required_problemTrustRegionRadius.underlying_problemTrustRegionRadius.user_cap
Radius mechanisms
TrustRegionRadius.RAdaptiveGradTrustRegionRadius.RAdaptiveGradCappedTrustRegionRadius.RAdaptiveStepTrustRegionRadius.RDFOTrustRegionRadius.RDeltaTrustRegionRadius.RDeltaStepTrustRegionRadius.RGradTrustRegionRadius.RGradCappedTrustRegionRadius.RRTRTrustRegionRadius.RRTRGradTrustRegionRadius.RStepTrustRegionRadius.RadiusRuleTrustRegionRadius.asymptotic_regimeTrustRegionRadius.initial_radiusTrustRegionRadius.is_criticality_anchoredTrustRegionRadius.last_branchTrustRegionRadius.needs_retrospectiveTrustRegionRadius.reset_rule!TrustRegionRadius.retrospective_ratioTrustRegionRadius.update_radius!
Thresholds and factors
TrustRegionRadius.TRParamsTrustRegionRadius.check_boundsTrustRegionRadius.check_factorsTrustRegionRadius.confirmation_needs_truthTrustRegionRadius.confirms_stopTrustRegionRadius.validate_thresholds
Model Hessians
TrustRegionRadius.ExactHessianTrustRegionRadius.LBFGSModelTrustRegionRadius.ModelHessianTrustRegionRadius.SPDTargetTrustRegionRadius.SR1ModelTrustRegionRadius.ScaledIdentityTrustRegionRadius.dense_hessianTrustRegionRadius.hessian_opTrustRegionRadius.model_eltypeTrustRegionRadius.model_hprod!TrustRegionRadius.phi_targetTrustRegionRadius.reports_negative_curvatureTrustRegionRadius.reset_model!TrustRegionRadius.update_model!
Subproblem solvers
TrustRegionRadius.ExactMSTrustRegionRadius.KrylovCGTrustRegionRadius.KrylovCRTrustRegionRadius.SteihaugCGTrustRegionRadius.SubWorkspaceTrustRegionRadius.SubproblemSolverTrustRegionRadius.cg_step_infoTrustRegionRadius.needs_eigenvectorTrustRegionRadius.returns_hprodTrustRegionRadius.solve_subproblem!
Sampling rules and stochastic oracles
TrustRegionRadius.AugmentedInnerProductTrustRegionRadius.CertifiedDecreaseTrustRegionRadius.FiniteSumTrustRegionRadius.FixedSampleTrustRegionRadius.FullBatchTrustRegionRadius.GaussianDrawTrustRegionRadius.GeometricSampleTrustRegionRadius.InnerProductTestTrustRegionRadius.NormTestTrustRegionRadius.OrthogonalityTestTrustRegionRadius.PerturbedExpectationTrustRegionRadius.PerturbedSumTrustRegionRadius.RadiusProportionalTrustRegionRadius.SampleStatsTrustRegionRadius.SamplingRuleTrustRegionRadius.SamplingStateTrustRegionRadius.SequentialEstimationTrustRegionRadius.SmoothedSizeTrustRegionRadius.batch_grad!TrustRegionRadius.batch_hessTrustRegionRadius.batch_objTrustRegionRadius.batch_statsTrustRegionRadius.confirm_gradient_norm!TrustRegionRadius.couples_to_radiusTrustRegionRadius.draw_batchTrustRegionRadius.grad_sample_sizeTrustRegionRadius.grad_standard_errorTrustRegionRadius.grad_varianceTrustRegionRadius.needs_pairedTrustRegionRadius.needs_scoresTrustRegionRadius.obj_sample_sizeTrustRegionRadius.obj_varianceTrustRegionRadius.obs_objectiveTrustRegionRadius.paired_decrease_statsTrustRegionRadius.paired_op_varianceTrustRegionRadius.paired_variance_kindTrustRegionRadius.record_paired!TrustRegionRadius.record_prediction!TrustRegionRadius.requires_finite_populationTrustRegionRadius.resample!TrustRegionRadius.reset_sampling!TrustRegionRadius.reset_sampling_rule!TrustRegionRadius.sample_capTrustRegionRadius.sample_schemeTrustRegionRadius.sample_schemesTrustRegionRadius.samples_usedTrustRegionRadius.supports_pairedTrustRegionRadius.true_gradientTrustRegionRadius.true_objectiveTrustRegionRadius.update_variances!
Likelihood and least squares
TrustRegionRadius.BHHH2ModelTrustRegionRadius.BHHHModelTrustRegionRadius.GaussNewtonModelTrustRegionRadius.LeastSquaresTrustRegionRadius.LikelihoodNLPTrustRegionRadius.LogisticRegressionTrustRegionRadius.MLPClassifierTrustRegionRadius.MultinomialLogitTrustRegionRadius.OuterProductOperatorTrustRegionRadius.accuracyTrustRegionRadius.exponential_fitTrustRegionRadius.gauss_newton_errorTrustRegionRadius.information_identity_errorTrustRegionRadius.init_paramsTrustRegionRadius.jacobianTrustRegionRadius.linear_least_squaresTrustRegionRadius.loss_termsTrustRegionRadius.residualsTrustRegionRadius.score_matrixTrustRegionRadius.scoresTrustRegionRadius.x_trueTrustRegionRadius.β_true
Second-order variants
TrustRegionRadius.EigenPointTrustRegionRadius.SecondOrderTrustRegionRadius.RAdaptiveGradCappedTauTrustRegionRadius.RAdaptiveGradTauTrustRegionRadius.RDFOTauTrustRegionRadius.RGradCappedTauTrustRegionRadius.RGradTauTrustRegionRadius.RRTRGradTauTrustRegionRadius.criticalityTrustRegionRadius.curvature_estimateTrustRegionRadius.lambda_min_estimateTrustRegionRadius.model_hessian_normTrustRegionRadius.needs_curvatureTrustRegionRadius.second_order_statusTrustRegionRadius.tau_criticality
Diagnostics
TrustRegionRadius.active_fractionTrustRegionRadius.branch_countsTrustRegionRadius.hypotheses_reportTrustRegionRadius.inactivity_indexTrustRegionRadius.kappa_barTrustRegionRadius.kappa_bar_empiricalTrustRegionRadius.observed_orderTrustRegionRadius.radius_sumsTrustRegionRadius.theta_trajectory
Benchmarking
TrustRegionRadius.TRConfigTrustRegionRadius.data_profileTrustRegionRadius.performance_profileTrustRegionRadius.profile_to_pgfplotsTrustRegionRadius.run_matrixTrustRegionRadius.summariseTrustRegionRadius.sweep_configs