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

Implements Newton's method for square systems. More...

Include dependency graph for newton_correct.hpp:

Go to the source code of this file.

Functions

template<typename ComplexType, typename RealType>
SuccessCode bertini::tracking::correct::NewtonLoop (Vec< ComplexType > &next_space, RealType &norm_delta_z, RealType &norm_J, RealType &norm_J_inverse, RealType &condition_number_estimate, System const &S, Vec< ComplexType > const &current_space, ComplexType const &current_time, RealType const &tracking_tolerance, unsigned min_num_newton_iterations, unsigned max_num_newton_iterations, AdaptiveMultiplePrecisionConfig const &AMP_config)
 Run Newton's method in multiple precision.
 
template<typename ComplexType, typename RealType>
SuccessCode bertini::tracking::correct::NewtonLoop (Vec< ComplexType > &next_space, System const &S, Vec< ComplexType > const &current_space, ComplexType const &current_time, RealType const &tracking_tolerance, unsigned min_num_newton_iterations, unsigned max_num_newton_iterations)
 Run Newton's method in fixed precision.
 
template<typename ComplexType, typename RealType>
SuccessCode bertini::tracking::correct::NewtonLoop (Vec< ComplexType > &next_space, System const &S, Vec< ComplexType > const &current_space, ComplexType const &current_time, RealType const &tracking_tolerance, unsigned min_num_newton_iterations, unsigned max_num_newton_iterations, AdaptiveMultiplePrecisionConfig const &AMP_config)
 Run Newton's method in multiple precision.
 

Detailed Description

Implements Newton's method for square systems.

Function Documentation

◆ NewtonLoop() [1/3]

template<typename ComplexType, typename RealType>
SuccessCode bertini::tracking::correct::NewtonLoop ( Vec< ComplexType > & next_space,
RealType & norm_delta_z,
RealType & norm_J,
RealType & norm_J_inverse,
RealType & condition_number_estimate,
System const & S,
Vec< ComplexType > const & current_space,
ComplexType const & current_time,
RealType const & tracking_tolerance,
unsigned min_num_newton_iterations,
unsigned max_num_newton_iterations,
AdaptiveMultiplePrecisionConfig const & AMP_config )

Run Newton's method in multiple precision.

Run Newton's method until it converges ( \(\Delta z\) < tol), an AMP criterion (B or C) is violated, or the next point's norm exceeds the path truncation threshold.

Template Parameters
ComplexTypeThe complex type for arithmetic
RealTypeThe underlying real number type, used for comparitors.
Parameters
[out]next_spaceThe computed next space point.
[out]norm_delta_zThe norm of the last step size.
[out]norm_JThe matrix norm of the Jacobian matrix.
[out]norm_J_inverseThe matrix norm of the inverse of the Jacobian matrix.
[out]condition_number_estimateAn estimate on the condition number.
SThe system we are tracking on.
current_spaceThe base point for newton correcting.
current_timeThe current time value. Note it is complex.
tracking_toleranceThe upper threshold for step size. Must iterate correcting until the corrector step is less than this threshold in length.
path_truncation_thresholdCorrecting stops the the norm of the current solution exceeds this number.
min_num_newton_iterationsThe corrector must take at least this many steps. This should be at least 1.
max_num_newton_iterationsThe maximum number of iterations to run Newton's method for.
AMP_configAdaptive multiple precision settings. Using this argument is how Bertini2 knows you want to use adaptive precision.
Here is the call graph for this function:

◆ NewtonLoop() [2/3]

template<typename ComplexType, typename RealType>
SuccessCode bertini::tracking::correct::NewtonLoop ( Vec< ComplexType > & next_space,
System const & S,
Vec< ComplexType > const & current_space,
ComplexType const & current_time,
RealType const & tracking_tolerance,
unsigned min_num_newton_iterations,
unsigned max_num_newton_iterations )

Run Newton's method in fixed precision.

Run Newton's method until it converges ( \(\Delta z\) < tol), or the next point's norm exceeds the path truncation threshold.

Returns
The SuccessCode indicating what happened.
Template Parameters
ComplexTypeThe complex type for arithmetic
RealTypeThe underlying real number type, used for comparitors.
Parameters
[out]next_spaceThe computed next space point.
SThe system we are tracking on.
current_spaceThe base point for newton correcting.
current_timeThe current time value. Note it is complex.
tracking_toleranceThe upper threshold for step size. Must iterate correcting until the corrector step is less than this threshold in length.
path_truncation_thresholdCorrecting stops the the norm of the current solution exceeds this number.
min_num_newton_iterationsThe corrector must take at least this many steps. This should be at least 1.
max_num_newton_iterationsThe maximum number of iterations to run Newton's method for.
Here is the call graph for this function:

◆ NewtonLoop() [3/3]

template<typename ComplexType, typename RealType>
SuccessCode bertini::tracking::correct::NewtonLoop ( Vec< ComplexType > & next_space,
System const & S,
Vec< ComplexType > const & current_space,
ComplexType const & current_time,
RealType const & tracking_tolerance,
unsigned min_num_newton_iterations,
unsigned max_num_newton_iterations,
AdaptiveMultiplePrecisionConfig const & AMP_config )

Run Newton's method in multiple precision.

Run Newton's method until it converges ( \(\Delta z\) < tol), an AMP criterion (B or C) is violated, or the next point's norm exceeds the path truncation threshold.

Template Parameters
ComplexTypeThe complex type for arithmetic
RealTypeThe underlying real number type, used for comparitors.
Parameters
[out]next_spaceThe computed next space point.
SThe system we are tracking on.
current_spaceThe base point for newton correcting.
current_timeThe current time value. Note it is complex.
tracking_toleranceThe upper threshold for step size. Must iterate correcting until the corrector step is less than this threshold in length.
path_truncation_thresholdCorrecting stops the the norm of the current solution exceeds this number.
min_num_newton_iterationsThe corrector must take at least this many steps. This should be at least 1.
max_num_newton_iterationsThe maximum number of iterations to run Newton's method for.
AMP_configAdaptive multiple precision settings. Using this argument is how Bertini2 knows you want to use adaptive precision.
Here is the call graph for this function: