๐ŸŽฎ bertini.endgame๏ƒ

Notes๏ƒ

Auto-generated docs๏ƒ

Endgame-specific things โ€“ endgames, configs๏ƒ

Endgames allow the computation of singular endpoints.

Flavors๏ƒ

There are two basic flavors of endgame implemented:

  1. Power Series, commonly written PS or PSEG

  2. Cauchy

Both estimate the cycle number and use it to compute a root at a time which is never tracked to. PSEG uses Hermite interpolation and extrapolation, and Cauchy uses loops around the target time coupled with the Cauchy integral formula. Both continue until two successive approximations of the root match to a given tolerance (bertini.endgame.config.Endgame.final_tolerance).

The implementations of the endgames go with a particular tracker, hence there are six provided endgame types. Choose the one that goes with your selected tracker type. Adaptive Multiple Precision is a good choice.

Implementation reference๏ƒ

AMP Endgames๏ƒ
  • AMPCauchyEG

  • AMPPSEG

Fixed Double Precision Endgames๏ƒ
  • FixedDoublePSEG

  • FixedDoublePSEG

Fixed Multiple Precision Endgames๏ƒ
  • FixedMultiplePSEG

  • FixedMultiplePSEG

class bertini.endgame.AMPCauchyEG((object)self, (bertini._pybertini.tracking.AMPTracker)tracker) None :

The adaptive precision implementation of the Cauchy endgame

Default construct with default settings

__init__( (object)self, (bertini._pybertini.tracking.AMPTracker)tracker, (bertini._pybertini.endgame.config.CauchyConfig)cauchyconfig) -> None

__init__( (object)self, (bertini._pybertini.tracking.AMPTracker)tracker, (bertini._pybertini.endgame.config.Endgame)endgameconfig) -> None

__init__( (object)self, (bertini._pybertini.tracking.AMPTracker)tracker, (bertini._pybertini.endgame.config.Security)securityconfig) -> None

__init__((object)self, (bertini._pybertini.tracking.AMPTracker)tracker) None :

Default construct with default settings

__init__( (object)self, (bertini._pybertini.tracking.AMPTracker)tracker, (bertini._pybertini.endgame.config.CauchyConfig)cauchyconfig) -> None

__init__( (object)self, (bertini._pybertini.tracking.AMPTracker)tracker, (bertini._pybertini.endgame.config.Endgame)endgameconfig) -> None

__init__( (object)self, (bertini._pybertini.tracking.AMPTracker)tracker, (bertini._pybertini.endgame.config.Security)securityconfig) -> None

add_observer((object)self, (object)observer) None :

Attach an observer to this observable object

cycle_number((AMPCauchyEG)self) int :

Get the cycle number as currently computed

final_approximation((AMPCauchyEG)self) numpy.ndarray :

Get the current approximation of the root, in the ambient numeric type for the tracker being used

get_endgame_settings((AMPCauchyEG)self) bertini._pybertini.endgame.config.Endgame :

Get the current non-specific endgame settings

get_security_settings((AMPCauchyEG)self) bertini._pybertini.endgame.config.Security :

Get the โ€˜securityโ€™ settings for the endgame (path truncation near infinity)

get_system((AMPCauchyEG)self) bertini._pybertini.system.System :

Get the tracked system. This is a reference to the internal system.

get_tracker((AMPCauchyEG)self) bertini._pybertini.tracking.AMPTracker :

Get the tracker used in this endgame. This is the same tracker as you feed the endgame object when you make it. This is a reference variable

remove_observer((object)self, (object)observer) None :

Remove an observer to this observable object

run((AMPCauchyEG)self, (bertini._pybertini.multiprec.Complex)start_time, (numpy.ndarray)start_point) bertini._pybertini.tracking.SuccessCode :

Run the endgame, from start point and start time, to t=0. Expects complex numeric type matching that of the tracker being used.

run( (AMPCauchyEG)self, (bertini._pybertini.multiprec.Complex)start_time, (numpy.ndarray)start_point, (bertini._pybertini.multiprec.Complex)target_time) -> bertini._pybertini.tracking.SuccessCode :

Run the endgame, from start point and start time, to your choice of target time t. Expects complex numeric type matching that of the tracker being used.

set_endgame_settings((AMPCauchyEG)self, (bertini._pybertini.endgame.config.Endgame)settings) None :

Set the values of non-specific endgame settings

set_security_settings((AMPCauchyEG)self, (bertini._pybertini.endgame.config.Security)settings) None :

Set the values of security-level settings

class bertini.endgame.AMPPSEG((object)self, (bertini._pybertini.tracking.AMPTracker)tracker) None :

The adaptive precision implementation of the power series endgame.

Default construct with default settings

__init__( (object)self, (bertini._pybertini.tracking.AMPTracker)tracker, (bertini._pybertini.endgame.config.PowerSeriesConfig)powerseriesconfig) -> None

__init__( (object)self, (bertini._pybertini.tracking.AMPTracker)tracker, (bertini._pybertini.endgame.config.Endgame)endgameconfig) -> None

__init__( (object)self, (bertini._pybertini.tracking.AMPTracker)tracker, (bertini._pybertini.endgame.config.Security)securityconfig) -> None

__init__((object)self, (bertini._pybertini.tracking.AMPTracker)tracker) None :

Default construct with default settings

__init__( (object)self, (bertini._pybertini.tracking.AMPTracker)tracker, (bertini._pybertini.endgame.config.PowerSeriesConfig)powerseriesconfig) -> None

__init__( (object)self, (bertini._pybertini.tracking.AMPTracker)tracker, (bertini._pybertini.endgame.config.Endgame)endgameconfig) -> None

__init__( (object)self, (bertini._pybertini.tracking.AMPTracker)tracker, (bertini._pybertini.endgame.config.Security)securityconfig) -> None

add_observer((object)self, (object)observer) None :

Attach an observer to this observable object

cycle_number((AMPPSEG)self) int :

Get the cycle number as currently computed

final_approximation((AMPPSEG)self) numpy.ndarray :

Get the current approximation of the root, in the ambient numeric type for the tracker being used

get_endgame_settings((AMPPSEG)self) bertini._pybertini.endgame.config.Endgame :

Get the current non-specific endgame settings

get_security_settings((AMPPSEG)self) bertini._pybertini.endgame.config.Security :

Get the โ€˜securityโ€™ settings for the endgame (path truncation near infinity)

get_system((AMPPSEG)self) bertini._pybertini.system.System :

Get the tracked system. This is a reference to the internal system.

get_tracker((AMPPSEG)self) bertini._pybertini.tracking.AMPTracker :

Get the tracker used in this endgame. This is the same tracker as you feed the endgame object when you make it. This is a reference variable

remove_observer((object)self, (object)observer) None :

Remove an observer to this observable object

run((AMPPSEG)self, (bertini._pybertini.multiprec.Complex)start_time, (numpy.ndarray)start_point) bertini._pybertini.tracking.SuccessCode :

Run the endgame, from start point and start time, to t=0. Expects complex numeric type matching that of the tracker being used.

run( (AMPPSEG)self, (bertini._pybertini.multiprec.Complex)start_time, (numpy.ndarray)start_point, (bertini._pybertini.multiprec.Complex)target_time) -> bertini._pybertini.tracking.SuccessCode :

Run the endgame, from start point and start time, to your choice of target time t. Expects complex numeric type matching that of the tracker being used.

set_endgame_settings((AMPPSEG)self, (bertini._pybertini.endgame.config.Endgame)settings) None :

Set the values of non-specific endgame settings

set_security_settings((AMPPSEG)self, (bertini._pybertini.endgame.config.Security)settings) None :

Set the values of security-level settings

class bertini.endgame.FixedDoubleCauchyEG((object)self, (bertini._pybertini.tracking.DoublePrecisionTracker)tracker) None :

The fixed double precision implementation of the Cauchy endgame

Default construct with default settings

__init__( (object)self, (bertini._pybertini.tracking.DoublePrecisionTracker)tracker, (bertini._pybertini.endgame.config.CauchyConfig)cauchyconfig) -> None

__init__( (object)self, (bertini._pybertini.tracking.DoublePrecisionTracker)tracker, (bertini._pybertini.endgame.config.Endgame)endgameconfig) -> None

__init__( (object)self, (bertini._pybertini.tracking.DoublePrecisionTracker)tracker, (bertini._pybertini.endgame.config.Security)securityconfig) -> None

__init__((object)self, (bertini._pybertini.tracking.DoublePrecisionTracker)tracker) None :

Default construct with default settings

__init__( (object)self, (bertini._pybertini.tracking.DoublePrecisionTracker)tracker, (bertini._pybertini.endgame.config.CauchyConfig)cauchyconfig) -> None

__init__( (object)self, (bertini._pybertini.tracking.DoublePrecisionTracker)tracker, (bertini._pybertini.endgame.config.Endgame)endgameconfig) -> None

__init__( (object)self, (bertini._pybertini.tracking.DoublePrecisionTracker)tracker, (bertini._pybertini.endgame.config.Security)securityconfig) -> None

add_observer((object)self, (object)observer) None :

Attach an observer to this observable object

cycle_number((FixedDoubleCauchyEG)self) int :

Get the cycle number as currently computed

final_approximation((FixedDoubleCauchyEG)self) numpy.ndarray :

Get the current approximation of the root, in the ambient numeric type for the tracker being used

get_endgame_settings((FixedDoubleCauchyEG)self) bertini._pybertini.endgame.config.Endgame :

Get the current non-specific endgame settings

get_security_settings((FixedDoubleCauchyEG)self) bertini._pybertini.endgame.config.Security :

Get the โ€˜securityโ€™ settings for the endgame (path truncation near infinity)

get_system((FixedDoubleCauchyEG)self) bertini._pybertini.system.System :

Get the tracked system. This is a reference to the internal system.

get_tracker((FixedDoubleCauchyEG)self) bertini._pybertini.tracking.DoublePrecisionTracker :

Get the tracker used in this endgame. This is the same tracker as you feed the endgame object when you make it. This is a reference variable

remove_observer((object)self, (object)observer) None :

Remove an observer to this observable object

run((FixedDoubleCauchyEG)self, (complex)start_time, (numpy.ndarray)start_point) bertini._pybertini.tracking.SuccessCode :

Run the endgame, from start point and start time, to t=0. Expects complex numeric type matching that of the tracker being used.

run( (FixedDoubleCauchyEG)self, (complex)start_time, (numpy.ndarray)start_point, (complex)target_time) -> bertini._pybertini.tracking.SuccessCode :

Run the endgame, from start point and start time, to your choice of target time t. Expects complex numeric type matching that of the tracker being used.

set_endgame_settings((FixedDoubleCauchyEG)self, (bertini._pybertini.endgame.config.Endgame)settings) None :

Set the values of non-specific endgame settings

set_security_settings((FixedDoubleCauchyEG)self, (bertini._pybertini.endgame.config.Security)settings) None :

Set the values of security-level settings

class bertini.endgame.FixedDoublePSEG((object)self, (bertini._pybertini.tracking.DoublePrecisionTracker)tracker) None :

The double-precision implementation of the power series endgame

Default construct with default settings

__init__( (object)self, (bertini._pybertini.tracking.DoublePrecisionTracker)tracker, (bertini._pybertini.endgame.config.PowerSeriesConfig)powerseriesconfig) -> None

__init__( (object)self, (bertini._pybertini.tracking.DoublePrecisionTracker)tracker, (bertini._pybertini.endgame.config.Endgame)endgameconfig) -> None

__init__( (object)self, (bertini._pybertini.tracking.DoublePrecisionTracker)tracker, (bertini._pybertini.endgame.config.Security)securityconfig) -> None

__init__((object)self, (bertini._pybertini.tracking.DoublePrecisionTracker)tracker) None :

Default construct with default settings

__init__( (object)self, (bertini._pybertini.tracking.DoublePrecisionTracker)tracker, (bertini._pybertini.endgame.config.PowerSeriesConfig)powerseriesconfig) -> None

__init__( (object)self, (bertini._pybertini.tracking.DoublePrecisionTracker)tracker, (bertini._pybertini.endgame.config.Endgame)endgameconfig) -> None

__init__( (object)self, (bertini._pybertini.tracking.DoublePrecisionTracker)tracker, (bertini._pybertini.endgame.config.Security)securityconfig) -> None

add_observer((object)self, (object)observer) None :

Attach an observer to this observable object

cycle_number((FixedDoublePSEG)self) int :

Get the cycle number as currently computed

final_approximation((FixedDoublePSEG)self) numpy.ndarray :

Get the current approximation of the root, in the ambient numeric type for the tracker being used

get_endgame_settings((FixedDoublePSEG)self) bertini._pybertini.endgame.config.Endgame :

Get the current non-specific endgame settings

get_security_settings((FixedDoublePSEG)self) bertini._pybertini.endgame.config.Security :

Get the โ€˜securityโ€™ settings for the endgame (path truncation near infinity)

get_system((FixedDoublePSEG)self) bertini._pybertini.system.System :

Get the tracked system. This is a reference to the internal system.

get_tracker((FixedDoublePSEG)self) bertini._pybertini.tracking.DoublePrecisionTracker :

Get the tracker used in this endgame. This is the same tracker as you feed the endgame object when you make it. This is a reference variable

remove_observer((object)self, (object)observer) None :

Remove an observer to this observable object

run((FixedDoublePSEG)self, (complex)start_time, (numpy.ndarray)start_point) bertini._pybertini.tracking.SuccessCode :

Run the endgame, from start point and start time, to t=0. Expects complex numeric type matching that of the tracker being used.

run( (FixedDoublePSEG)self, (complex)start_time, (numpy.ndarray)start_point, (complex)target_time) -> bertini._pybertini.tracking.SuccessCode :

Run the endgame, from start point and start time, to your choice of target time t. Expects complex numeric type matching that of the tracker being used.

set_endgame_settings((FixedDoublePSEG)self, (bertini._pybertini.endgame.config.Endgame)settings) None :

Set the values of non-specific endgame settings

set_security_settings((FixedDoublePSEG)self, (bertini._pybertini.endgame.config.Security)settings) None :

Set the values of security-level settings

class bertini.endgame.FixedMultipleCauchyEG((object)self, (bertini._pybertini.tracking.MultiplePrecisionTracker)tracker) None :

The fixed multiple precision implementation of the Cauchy endgame

Default construct with default settings

__init__( (object)self, (bertini._pybertini.tracking.MultiplePrecisionTracker)tracker, (bertini._pybertini.endgame.config.CauchyConfig)cauchyconfig) -> None

__init__( (object)self, (bertini._pybertini.tracking.MultiplePrecisionTracker)tracker, (bertini._pybertini.endgame.config.Endgame)endgameconfig) -> None

__init__( (object)self, (bertini._pybertini.tracking.MultiplePrecisionTracker)tracker, (bertini._pybertini.endgame.config.Security)securityconfig) -> None

__init__((object)self, (bertini._pybertini.tracking.MultiplePrecisionTracker)tracker) None :

Default construct with default settings

__init__( (object)self, (bertini._pybertini.tracking.MultiplePrecisionTracker)tracker, (bertini._pybertini.endgame.config.CauchyConfig)cauchyconfig) -> None

__init__( (object)self, (bertini._pybertini.tracking.MultiplePrecisionTracker)tracker, (bertini._pybertini.endgame.config.Endgame)endgameconfig) -> None

__init__( (object)self, (bertini._pybertini.tracking.MultiplePrecisionTracker)tracker, (bertini._pybertini.endgame.config.Security)securityconfig) -> None

add_observer((object)self, (object)observer) None :

Attach an observer to this observable object

cycle_number((FixedMultipleCauchyEG)self) int :

Get the cycle number as currently computed

final_approximation((FixedMultipleCauchyEG)self) numpy.ndarray :

Get the current approximation of the root, in the ambient numeric type for the tracker being used

get_endgame_settings((FixedMultipleCauchyEG)self) bertini._pybertini.endgame.config.Endgame :

Get the current non-specific endgame settings

get_security_settings((FixedMultipleCauchyEG)self) bertini._pybertini.endgame.config.Security :

Get the โ€˜securityโ€™ settings for the endgame (path truncation near infinity)

get_system((FixedMultipleCauchyEG)self) bertini._pybertini.system.System :

Get the tracked system. This is a reference to the internal system.

get_tracker((FixedMultipleCauchyEG)self) bertini._pybertini.tracking.MultiplePrecisionTracker :

Get the tracker used in this endgame. This is the same tracker as you feed the endgame object when you make it. This is a reference variable

remove_observer((object)self, (object)observer) None :

Remove an observer to this observable object

run((FixedMultipleCauchyEG)self, (bertini._pybertini.multiprec.Complex)start_time, (numpy.ndarray)start_point) bertini._pybertini.tracking.SuccessCode :

Run the endgame, from start point and start time, to t=0. Expects complex numeric type matching that of the tracker being used.

run( (FixedMultipleCauchyEG)self, (bertini._pybertini.multiprec.Complex)start_time, (numpy.ndarray)start_point, (bertini._pybertini.multiprec.Complex)target_time) -> bertini._pybertini.tracking.SuccessCode :

Run the endgame, from start point and start time, to your choice of target time t. Expects complex numeric type matching that of the tracker being used.

set_endgame_settings((FixedMultipleCauchyEG)self, (bertini._pybertini.endgame.config.Endgame)settings) None :

Set the values of non-specific endgame settings

set_security_settings((FixedMultipleCauchyEG)self, (bertini._pybertini.endgame.config.Security)settings) None :

Set the values of security-level settings

class bertini.endgame.FixedMultiplePSEG((object)self, (bertini._pybertini.tracking.MultiplePrecisionTracker)tracker) None :

The fixed but arbitrary precision implementation of the power series endgame

Default construct with default settings

__init__( (object)self, (bertini._pybertini.tracking.MultiplePrecisionTracker)tracker, (bertini._pybertini.endgame.config.PowerSeriesConfig)powerseriesconfig) -> None

__init__( (object)self, (bertini._pybertini.tracking.MultiplePrecisionTracker)tracker, (bertini._pybertini.endgame.config.Endgame)endgameconfig) -> None

__init__( (object)self, (bertini._pybertini.tracking.MultiplePrecisionTracker)tracker, (bertini._pybertini.endgame.config.Security)securityconfig) -> None

__init__((object)self, (bertini._pybertini.tracking.MultiplePrecisionTracker)tracker) None :

Default construct with default settings

__init__( (object)self, (bertini._pybertini.tracking.MultiplePrecisionTracker)tracker, (bertini._pybertini.endgame.config.PowerSeriesConfig)powerseriesconfig) -> None

__init__( (object)self, (bertini._pybertini.tracking.MultiplePrecisionTracker)tracker, (bertini._pybertini.endgame.config.Endgame)endgameconfig) -> None

__init__( (object)self, (bertini._pybertini.tracking.MultiplePrecisionTracker)tracker, (bertini._pybertini.endgame.config.Security)securityconfig) -> None

add_observer((object)self, (object)observer) None :

Attach an observer to this observable object

cycle_number((FixedMultiplePSEG)self) int :

Get the cycle number as currently computed

final_approximation((FixedMultiplePSEG)self) numpy.ndarray :

Get the current approximation of the root, in the ambient numeric type for the tracker being used

get_endgame_settings((FixedMultiplePSEG)self) bertini._pybertini.endgame.config.Endgame :

Get the current non-specific endgame settings

get_security_settings((FixedMultiplePSEG)self) bertini._pybertini.endgame.config.Security :

Get the โ€˜securityโ€™ settings for the endgame (path truncation near infinity)

get_system((FixedMultiplePSEG)self) bertini._pybertini.system.System :

Get the tracked system. This is a reference to the internal system.

get_tracker((FixedMultiplePSEG)self) bertini._pybertini.tracking.MultiplePrecisionTracker :

Get the tracker used in this endgame. This is the same tracker as you feed the endgame object when you make it. This is a reference variable

remove_observer((object)self, (object)observer) None :

Remove an observer to this observable object

run((FixedMultiplePSEG)self, (bertini._pybertini.multiprec.Complex)start_time, (numpy.ndarray)start_point) bertini._pybertini.tracking.SuccessCode :

Run the endgame, from start point and start time, to t=0. Expects complex numeric type matching that of the tracker being used.

run( (FixedMultiplePSEG)self, (bertini._pybertini.multiprec.Complex)start_time, (numpy.ndarray)start_point, (bertini._pybertini.multiprec.Complex)target_time) -> bertini._pybertini.tracking.SuccessCode :

Run the endgame, from start point and start time, to your choice of target time t. Expects complex numeric type matching that of the tracker being used.

set_endgame_settings((FixedMultiplePSEG)self, (bertini._pybertini.endgame.config.Endgame)settings) None :

Set the values of non-specific endgame settings

set_security_settings((FixedMultiplePSEG)self, (bertini._pybertini.endgame.config.Security)settings) None :

Set the values of security-level settings

๐ŸŽฎ bertini.endgame.config๏ƒ

Configs for endgames

class bertini.endgame.config.CauchyConfig((object)arg1)

Settings specific to the Cauchy endgame for computing singular endpoints

__init__((object)arg1) None
property cycle_cutoff_time

None( (bertini._pybertini.endgame.config.CauchyConfig)arg1) -> float

property fail_safe_maximum_cycle_number

max number of loops before giving up.

property maximum_cauchy_ratio

None( (bertini._pybertini.endgame.config.CauchyConfig)arg1) -> float

property minimum_for_c_over_k_stabilization

None( (bertini._pybertini.endgame.config.CauchyConfig)arg1) -> float

property num_needed_for_stabilization

When running stabilization testing for the cycle number when entering the endgame, this is the number of consecutive points for which the test must pass.

property ratio_cutoff_time

None( (bertini._pybertini.endgame.config.CauchyConfig)arg1) -> float

class bertini.endgame.config.Endgame((object)arg1)

Generic endgame settings. Number of sample points, etc. Note that some of its configs are rational numbers

__init__((object)arg1) None
property final_tolerance

The tolerance to which to track the path, using the endgame. Endgames require two consecutive estimates to be this close to each other under the relative infinity norm. Default value is 1e-11.

property max_num_newton_iterations

the maximum number of newton iterations to be taken during sample point sharpening. Increasing this can help speed convergence, at the risk of path jumping.

property min_track_time

The minimum distance from the target time to track to. Decreasing this may help failing runs succeed, or maybe not, because you are, after all, tracking toward a singularity.

property num_sample_points

The number of points to use for extrapolant calculation. In the Power Series Endgame, the is the number of geometrically spaces points on the path. For Cauchy, this is the number of points on each circle tracked around the target time value.

property sample_factor

The factor by which to space the geometrically spaced โ€˜distanceโ€™ between sample points, or sample circles for Cauchy.

property sample_point_refinement_factor

Extra amount of tolerance for refining before computing the final approximation, during endgame.

class bertini.endgame.config.PowerSeriesConfig((object)arg1)

Settings specific to the power series endgame for computing singular endpoints

__init__((object)arg1) None
property cycle_number_amplification

The maximum number allowable iterations during endgames, for points used to approximate the final solution.

property max_cycle_number

The maximum cycle number to consider, when calculating the cycle number which best fits the path being tracked.

class bertini.endgame.config.Security((object)arg1)

Security settings for endgames. Control things like truncation because estimated root is near infinity

__init__((object)arg1) None
property level

Turns on or off truncation of paths going to infinity during the endgame. 0 is off, 1 is on.

property max_norm

If on, the norm at which to truncate a path.