Bertini 2 - C++ Core
Software for Numerical Algebraic Geometry
Loading...
Searching...
No Matches
amp_criteria.hpp File Reference

Provides the Adaptive Multiple Precision criteria functions. More...

Include dependency graph for amp_criteria.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Functions

template<typename NumT>
bool bertini::tracking::amp::CriterionA (double const &norm_J, double const &norm_J_inverse, AdaptiveMultiplePrecisionConfig const &AMP_config)
 Check AMP Criterion A.
 
double bertini::tracking::amp::CriterionARHS (double const &norm_J, double const &norm_J_inverse, AdaptiveMultiplePrecisionConfig const &AMP_config)
 The right hand side of Criterion A, from [1], [2].
 
template<typename NumT>
bool bertini::tracking::amp::CriterionB (double const &norm_J, double const &norm_J_inverse, unsigned num_newton_iterations_remaining, double const &tracking_tolerance, double const &norm_of_latest_newton_residual, AdaptiveMultiplePrecisionConfig const &AMP_config)
 Check AMP Criterion B.
 
double bertini::tracking::amp::CriterionBRHS (double const &norm_J, double const &norm_J_inverse, unsigned num_newton_iterations_remaining, double const &tracking_tolerance, double const &norm_of_latest_newton_residual, AdaptiveMultiplePrecisionConfig const &AMP_config)
 Evaluate the right hand side of the inequality of Criterion B.
 
template<typename NumT, typename Derived>
bool bertini::tracking::amp::CriterionC (double const &norm_J_inverse, const Eigen::MatrixBase< Derived > &z, double tracking_tolerance, AdaptiveMultiplePrecisionConfig const &AMP_config)
 Check AMP Criterion C.
 
template<typename Derived>
double bertini::tracking::amp::CriterionCRHS (double const &norm_J_inverse, const Eigen::MatrixBase< Derived > &z, double tracking_tolerance, AdaptiveMultiplePrecisionConfig const &AMP_config)
 Evaluate the right hand side of Criterion C.
 
double bertini::tracking::amp::CriterionCRHS (double const &norm_J_inverse, double const &norm_z, double const &tracking_tolerance, AdaptiveMultiplePrecisionConfig const &AMP_config)
 Evaluate the right hand side of Criterion C.
 
double bertini::tracking::amp::D (double const &norm_J, double const &norm_J_inverse, AdaptiveMultiplePrecisionConfig const &AMP_config)
 Compute the expression \(D\) from the AMP papers [1], [2].
 

Detailed Description

Provides the Adaptive Multiple Precision criteria functions.

Function Documentation

◆ CriterionA()

template<typename NumT>
bool bertini::tracking::amp::CriterionA ( double const & norm_J,
double const & norm_J_inverse,
AdaptiveMultiplePrecisionConfig const & AMP_config )

Check AMP Criterion A.

From [1], [2].

True means the check passed, and the precision is all good. False means something's gotta change, stepsize or precision.

Parameters
norm_JThe matrix norm of the Jacobian matrix
norm_J_inverseAn estimate on the norm of the inverse of the Jacobian matrix.
AMP_configThe settings for adaptive multiple precision.
Template Parameters
NumTThe real number type
Returns
True if criteria satisfied, false if violated and precision or step length should be adjusted.

◆ CriterionARHS()

double bertini::tracking::amp::CriterionARHS ( double const & norm_J,
double const & norm_J_inverse,
AdaptiveMultiplePrecisionConfig const & AMP_config )
inline

The right hand side of Criterion A, from [1], [2].

see CriterionA

◆ CriterionB()

template<typename NumT>
bool bertini::tracking::amp::CriterionB ( double const & norm_J,
double const & norm_J_inverse,
unsigned num_newton_iterations_remaining,
double const & tracking_tolerance,
double const & norm_of_latest_newton_residual,
AdaptiveMultiplePrecisionConfig const & AMP_config )

Check AMP Criterion B.

This is Criterion B from [1], [2]. True means the check passed, and the precision is all good. False means something's gotta change, stepsize or precision.

Parameters
norm_JThe matrix norm of the Jacobian matrix
norm_J_inverseAn estimate on the norm of the inverse of the Jacobian matrix.
num_newton_iterations_remainingThe number of iterations which have yet to perform.
tracking_toleranceThe tightness to which the path should be tracked. This is the raw tracking tolerance (for now)
norm_of_latest_newton_residualThe norm of the length of the most recent Newton step.
AMP_configThe settings for adaptive multiple precision.
Template Parameters
NumTThe numeric type.
Returns
True if criteria satisfied, false if violated and precision or step length should be adjusted.

◆ CriterionBRHS()

double bertini::tracking::amp::CriterionBRHS ( double const & norm_J,
double const & norm_J_inverse,
unsigned num_newton_iterations_remaining,
double const & tracking_tolerance,
double const & norm_of_latest_newton_residual,
AdaptiveMultiplePrecisionConfig const & AMP_config )
inline

Evaluate the right hand side of the inequality of Criterion B.

From [1], [2].

Parameters
norm_JThe matrix norm of the Jacobian matrix
norm_J_inverseAn estimate on the norm of the inverse of the Jacobian matrix.
num_newton_iterations_remainingThe number of iterations which have yet to perform.
tracking_toleranceThe tightness to which the path should be tracked. This is the raw tracking tolerance (for now)
norm_of_latest_newton_residualThe norm of the length of the most recent Newton step.
AMP_configThe settings for adaptive multiple precision.
Returns
The value of the right hand side of Criterion B

◆ CriterionC()

template<typename NumT, typename Derived>
bool bertini::tracking::amp::CriterionC ( double const & norm_J_inverse,
const Eigen::MatrixBase< Derived > & z,
double tracking_tolerance,
AdaptiveMultiplePrecisionConfig const & AMP_config )

Check AMP Criterion C.

This is Criterion C from [1].

True means the check passed, and the precision is all good. False means something's gotta change, stepsize or precision.

Parameters
norm_J_inverseAn estimate on the norm of the inverse of the Jacobian matrix.
zThe current space point.
tracking_toleranceThe tightness to which the path should be tracked. This is the raw tracking tolerance
AMP_configThe settings for adaptive multiple precision.
Returns
A boolean indicating whether the criterion is satisfied. True means path tracking can continue without modifying tracking settings. False means that corrective action should be taken.

◆ CriterionCRHS() [1/2]

template<typename Derived>
double bertini::tracking::amp::CriterionCRHS ( double const & norm_J_inverse,
const Eigen::MatrixBase< Derived > & z,
double tracking_tolerance,
AdaptiveMultiplePrecisionConfig const & AMP_config )

Evaluate the right hand side of Criterion C.

This is Criterion C from [1], [2].

Parameters
norm_J_inverseAn estimate on the norm of the inverse of the Jacobian matrix.
tracking_toleranceThe tightness to which the path should be tracked. This is the raw tracking tolerance
zThe current space point.
AMP_configThe settings for adaptive multiple precision.
Returns
The value of the right hand side of the inequality from Criterion C.

◆ CriterionCRHS() [2/2]

double bertini::tracking::amp::CriterionCRHS ( double const & norm_J_inverse,
double const & norm_z,
double const & tracking_tolerance,
AdaptiveMultiplePrecisionConfig const & AMP_config )
inline

Evaluate the right hand side of Criterion C.

This is Criterion C, from [1], [2].

Parameters
norm_J_inverseAn estimate on the norm of the inverse of the Jacobian matrix.
tracking_toleranceThe tightness to which the path should be tracked. This is the raw tracking tolerance
norm_zThe norm of the current space point.
AMP_configThe settings for adaptive multiple precision.
Returns
The value of the right hand side of the inequality from Criterion C.

◆ D()

double bertini::tracking::amp::D ( double const & norm_J,
double const & norm_J_inverse,
AdaptiveMultiplePrecisionConfig const & AMP_config )
inline

Compute the expression \(D\) from the AMP papers [1], [2].

Parameters
norm_JThe matrix norm of the Jacobian matrix
norm_J_inverseAn estimate on the norm of the inverse of the Jacobian matrix.
AMP_configThe settings for adaptive multiple precision.
Returns
a double scalar, the quantity \(D\) from the AMP papers [1], [2].