bertini.tracking¶
Tracking-specific things – trackers, configs
- class bertini.tracking.AMPConfig((object)arg1)¶
Bases:
instance__init__( (object)arg1, (bertini._pybertini.system.System)arg2) -> None
- __init__((object)arg1) None¶
__init__( (object)arg1, (bertini._pybertini.system.System)arg2) -> None
- property coefficient_bound¶
None( (bertini._pybertini.tracking.AMPConfig)arg1) -> float
- property degree_bound¶
None( (bertini._pybertini.tracking.AMPConfig)arg1) -> float
- property epsilon¶
None( (bertini._pybertini.tracking.AMPConfig)arg1) -> float
- classmethod from_dict(mapping)¶
Build a config from a dict (default-constructs, then update()).
- property max_num_precision_decreases¶
None( (bertini._pybertini.tracking.AMPConfig)arg1) -> int
- property maximum_precision¶
None( (bertini._pybertini.tracking.AMPConfig)arg1) -> int
- property phi¶
None( (bertini._pybertini.tracking.AMPConfig)arg1) -> float
- property psi¶
None( (bertini._pybertini.tracking.AMPConfig)arg1) -> float
- property safety_digits_1¶
None( (bertini._pybertini.tracking.AMPConfig)arg1) -> int
- property safety_digits_2¶
None( (bertini._pybertini.tracking.AMPConfig)arg1) -> int
- set(**kwargs)¶
Set one or more fields at once; returns self so calls can chain.
Numeric fields accept strings (e.g. max_step_size=”0.05”), which are converted exactly to multiprecision values. Raises AttributeError on an unknown/misspelled field name.
- set_amp_config_from((AMPConfig)arg1, (bertini._pybertini.system.System)arg2) None¶
- set_bounds_and_epsilon_from((AMPConfig)arg1, (bertini._pybertini.system.System)arg2) None¶
- set_phi_psi_from_bounds((AMPConfig)arg1) None¶
- to_dict()¶
The config’s fields as an ordinary dict of {name: value}.
- update(**kwargs)¶
Set one or more fields at once; returns self so calls can chain.
Numeric fields accept strings (e.g. max_step_size=”0.05”), which are converted exactly to multiprecision values. Raises AttributeError on an unknown/misspelled field name.
- class bertini.tracking.AMPTracker((object)arg1, (bertini._pybertini.system.System)arg2)¶
Bases:
ObservableThe adaptive multiple precision (AMP) tracker. Ambient numeric type is multiple-precision (complex_mp). Contruct one by feeding it a system – cannot be constructed without feeding it a system. Adjust its settings via configs and the setup function. Then, call method track_path.
- __init__((object)arg1, (bertini._pybertini.system.System)arg2) None¶
- add_observer((object)self, (object)observer) None :¶
Attach an observer to this observable object
- config_names()¶
The keyword names accepted by configure() for this owner.
- config_types((AMPTracker)self) list :¶
List the configuration struct classes this object accepts.
- configure(**kwargs)¶
Change settings on this owner’s configs in one call.
Each keyword names a config (e.g.
stepping,newton,tolerances); its value is either a dict of fields to change, or a ready config object.- tracker.configure(stepping={‘max_step_size’: 0.1},
newton={‘max_num_newton_iterations’: 2})
Returns self.
- current_point((AMPTracker)self) numpy.ndarray :¶
what is the current point?
- current_precision((AMPTracker)self) int :¶
what is the current working precision?
- current_stepsize((AMPTracker)self) bertini._pybertini.multiprec.real_mp :¶
what is the current stepsize? a real number.
- current_time((AMPTracker)self) bertini._pybertini.multiprec.complex_mp :¶
what is the current time?
- delta_t((AMPTracker)self) bertini._pybertini.multiprec.complex_mp :¶
what is the current delta_t, the time increment of the latest step? a complex number.
- get_config((AMPTracker)self, (object)config_type) object :¶
Return a copy of this object’s stored configuration struct of the given class.
- get_newton((AMPTracker)self) NewtonConfig :¶
Get the tracker’s internal configuration for Newton correction
- get_settings(as_dict=False)¶
This owner’s whole configuration as a carryable dict.
By default (
as_dict=False) the value is{config_name: config}– each a copy of one of the owner’s configs (e.g.{'stepping': SteppingConfig(...), 'tolerances': TolerancesConfig(...)}), keyed by the short names config_names() lists. The configs are independent copies (and picklable), so the dict is a plain Python value you can stash, tweak, and apply to other owners – the way to carry one set of tracking settings across a series of related solves:settings = first_solver.get_settings() next_solver.set_settings(settings)
Pass
as_dict=Truefor the flat, human-readable view instead: one{field_name: value}dict across ALL configs (field names are unique across an owner’s configs, so there is no collision). That form drops the struct layer nobody wants to poke at, and round-trips throughset:flat = solver.get_settings(as_dict=True) # {'final_tolerance': ..., 'max_step_size': ..., ...} other.set(**flat)
(The config-keyed default is kept because
set_settingsconsumes it; use whichever fits.) See set_settings() for applying the config-keyed form back.
- get_stepping((AMPTracker)self) SteppingConfig :¶
Get the tracker’s internal configuration for things that control stepping behaviour
- get_system((AMPTracker)arg1) bertini._pybertini.system.System :¶
Gets an internal reference to the tracked system.
- infinite_truncation((AMPTracker)self, (bool)val) None :¶
Decide whether the tracker should truncate infinite paths. See also infinite_truncation_tolerance
- infinite_truncation( (AMPTracker)self) -> bool :
Get the bool for whether the tracker should truncate infinite paths. See also infinite_truncation_tolerance
- infinite_truncation_tolerance((AMPTracker)self, (float)tol) None :¶
Set the path truncation tolerance for infinite paths for the tracker
- infinite_truncation_tolerance( (AMPTracker)self) -> float :
Get the path truncation tolerance for infinite paths for the tracker
- latest_condition_number((AMPTracker)self) float :¶
the most recent estimate of the condition number of the Jacobian. a real number.
- latest_error_estimate((AMPTracker)self) float :¶
the most recent estimate of the error of a step. a real number.
- latest_norm_of_step((AMPTracker)self) float :¶
the norm of the change in space resulting from the most recent step. a real number.
- num_total_steps_taken((AMPTracker)self) int :¶
Ask how many steps have been taken so far, including failures
- observers = <module 'bertini._pybertini.tracking.observers.amp'>¶
- precision_preservation((AMPTracker)arg1, (bool)arg2) None :¶
Turn on or off the preservation of precision. That is, if this is on (true), then the precision of the final point will be the precision of the start point. Generally, you want to let precision drift, methinks.
- precision_setup((AMPTracker)arg1, (AMPConfig)arg2) None¶
- predictor((AMPTracker)self) Predictor :¶
Query the current predictor method used by the tracker.
- predictor( (AMPTracker)self, (Predictor)predictor) -> None :
Set the predictor method used by the tracker.
- refine((AMPTracker)self, (numpy.ndarray)result, (numpy.ndarray)start_point, (complex)time) SuccessCode :¶
refine a point using this tracker, from start_point, at fixed time. returns a success code, computed refined point is in result.
- refine( (AMPTracker)self, (numpy.ndarray)result, (numpy.ndarray)start_point, (bertini._pybertini.multiprec.complex_mp)time) -> SuccessCode :
refine a point using this tracker, from start_point, at fixed time. returns a success code, computed refined point is in result.
- refine( (AMPTracker)self, (numpy.ndarray)result, (numpy.ndarray)start_point, (complex)time, (float)tolerance, (int)max_iterations) -> SuccessCode :
refine a point using this tracker, from start_point, at fixed time. returns a success code, computed refined point is in result.
- refine( (AMPTracker)self, (numpy.ndarray)result, (numpy.ndarray)start_point, (bertini._pybertini.multiprec.complex_mp)time, (float)tolerance, (int)max_iterations) -> SuccessCode :
refine a point using this tracker, from start_point, at fixed time. returns a success code, computed refined point is in result.
- reinitialize_initial_step_size((AMPTracker)self, (bool)val) None :¶
Set whether the tracker should re-set the stepsize to the configured-initial stepsize when it starts tracking. Feed it a bool
- remove_observer((object)self, (object)observer) None :¶
Remove an observer to this observable object
- set(**fields)¶
Set config fields on this owner by NAME, each routed to whichever config owns it.
You never name the config struct:
solver.update(final_tolerance="1e-11", # -> TolerancesConfig max_num_crossed_path_resolve_attempts=3) # -> ZeroDimConfig
Strings work for every numeric field (converted exactly). A field that none of this owner’s configs has raises AttributeError with the valid names – so a typo, or trying to set a tracker field on the algorithm (or vice versa), never silently does nothing. Returns self, so calls chain. To set a whole config at once, or to name the config explicitly, use configure().
- set_config((AMPTracker)self, (SteppingConfig)config) None :¶
Store one of this object’s configuration structs (dispatched by the config’s type).
- set_config( (AMPTracker)self, (NewtonConfig)config) -> None :
Store one of this object’s configuration structs (dispatched by the config’s type).
- set_config( (AMPTracker)self, (AMPConfig)config) -> None :
Store one of this object’s configuration structs (dispatched by the config’s type).
- set_newton((AMPTracker)self, (NewtonConfig)config) None :¶
Set the tracker’s internal configuration for Newton correction
- set_settings(settings, strict=False)¶
Apply a settings dict (from get_settings()) onto this owner. Returns self.
settingsis{config_name: config}(or{config_name: {field: value}}). By default only the configs this owner actually has are applied and the rest are skipped – so a bundle carried from one solver drops cleanly onto another whose config set differs (e.g. a different precision model, or a different algorithm stage). Passstrict=Trueto instead raise on any key this owner does not have.
- set_stepping((AMPTracker)self, (SteppingConfig)config) None :¶
Set the tracker’s internal configuration for things that control stepping behaviour
- set_stepsize((AMPTracker)self, (bertini._pybertini.multiprec.real_mp)stepsize) None :¶
Set the stepsize for the tracker
- setup((AMPTracker)arg1, (Predictor)predictor, (float)tolerance, (float)truncation, (SteppingConfig)stepping, (NewtonConfig)newton) None :¶
Set values for the internal configuration of the tracker. tolerance and truncation are both real doubles. predictor is a valid value for predictor choice. stepping and newton are the config structs from bertini.tracking.
- track_path((AMPTracker)self, (object)result, (bertini._pybertini.multiprec.complex_mp)start_time, (bertini._pybertini.multiprec.complex_mp)end_time, (numpy.ndarray)start_point) SuccessCode :¶
The main function of the tracker, once its set up. The first argument is the output. Feed it, in (result, start_time, end_time, start_point
- tracking_tolerance((AMPTracker)self) float :¶
Get. A step is labeled as a failure if newton correcting doesn’t yield a residual less than this tolerance. A real number, the smaller the slower tracking, generally speaking
- tracking_tolerance( (AMPTracker)self, (float)tol) -> None :
Set the tracking tolerance for the tracker
- update(**fields)¶
Set config fields on this owner by NAME, each routed to whichever config owns it.
You never name the config struct:
solver.update(final_tolerance="1e-11", # -> TolerancesConfig max_num_crossed_path_resolve_attempts=3) # -> ZeroDimConfig
Strings work for every numeric field (converted exactly). A field that none of this owner’s configs has raises AttributeError with the valid names – so a typo, or trying to set a tracker field on the algorithm (or vice versa), never silently does nothing. Returns self, so calls chain. To set a whole config at once, or to name the config explicitly, use configure().
- class bertini.tracking.DoublePrecisionTracker((object)arg1, (bertini._pybertini.system.System)arg2)¶
Bases:
ObservableThe double precision tracker. Tracks using only complex doubles. Ambient numeric type is double. Contruct one by feeding it a system – cannot be constructed without feeding it a system. Adjust its settings via configs and the setup function. Then, call method track_path.
- __init__((object)arg1, (bertini._pybertini.system.System)arg2) None¶
- add_observer((object)self, (object)observer) None :¶
Attach an observer to this observable object
- config_names()¶
The keyword names accepted by configure() for this owner.
- config_types((DoublePrecisionTracker)self) list :¶
List the configuration struct classes this object accepts.
- configure(**kwargs)¶
Change settings on this owner’s configs in one call.
Each keyword names a config (e.g.
stepping,newton,tolerances); its value is either a dict of fields to change, or a ready config object.- tracker.configure(stepping={‘max_step_size’: 0.1},
newton={‘max_num_newton_iterations’: 2})
Returns self.
- current_point((DoublePrecisionTracker)self) numpy.ndarray :¶
what is the current point?
- current_precision((DoublePrecisionTracker)self) int :¶
what is the current working precision?
- current_stepsize((DoublePrecisionTracker)self) float :¶
what is the current stepsize? a real number.
- current_time((DoublePrecisionTracker)self) complex :¶
what is the current time?
- delta_t((DoublePrecisionTracker)self) complex :¶
what is the current delta_t, the time increment of the latest step? a complex number.
- get_config((DoublePrecisionTracker)self, (object)config_type) object :¶
Return a copy of this object’s stored configuration struct of the given class.
- get_newton((DoublePrecisionTracker)self) NewtonConfig :¶
Get the tracker’s internal configuration for Newton correction
- get_settings(as_dict=False)¶
This owner’s whole configuration as a carryable dict.
By default (
as_dict=False) the value is{config_name: config}– each a copy of one of the owner’s configs (e.g.{'stepping': SteppingConfig(...), 'tolerances': TolerancesConfig(...)}), keyed by the short names config_names() lists. The configs are independent copies (and picklable), so the dict is a plain Python value you can stash, tweak, and apply to other owners – the way to carry one set of tracking settings across a series of related solves:settings = first_solver.get_settings() next_solver.set_settings(settings)
Pass
as_dict=Truefor the flat, human-readable view instead: one{field_name: value}dict across ALL configs (field names are unique across an owner’s configs, so there is no collision). That form drops the struct layer nobody wants to poke at, and round-trips throughset:flat = solver.get_settings(as_dict=True) # {'final_tolerance': ..., 'max_step_size': ..., ...} other.set(**flat)
(The config-keyed default is kept because
set_settingsconsumes it; use whichever fits.) See set_settings() for applying the config-keyed form back.
- get_stepping((DoublePrecisionTracker)self) SteppingConfig :¶
Get the tracker’s internal configuration for things that control stepping behaviour
- get_system((DoublePrecisionTracker)arg1) bertini._pybertini.system.System :¶
Gets an internal reference to the tracked system.
- infinite_truncation((DoublePrecisionTracker)self, (bool)val) None :¶
Decide whether the tracker should truncate infinite paths. See also infinite_truncation_tolerance
- infinite_truncation( (DoublePrecisionTracker)self) -> bool :
Get the bool for whether the tracker should truncate infinite paths. See also infinite_truncation_tolerance
- infinite_truncation_tolerance((DoublePrecisionTracker)self, (float)tol) None :¶
Set the path truncation tolerance for infinite paths for the tracker
- infinite_truncation_tolerance( (DoublePrecisionTracker)self) -> float :
Get the path truncation tolerance for infinite paths for the tracker
- latest_condition_number((DoublePrecisionTracker)self) float :¶
the most recent estimate of the condition number of the Jacobian. a real number.
- latest_error_estimate((DoublePrecisionTracker)self) float :¶
the most recent estimate of the error of a step. a real number.
- latest_norm_of_step((DoublePrecisionTracker)self) float :¶
the norm of the change in space resulting from the most recent step. a real number.
- num_total_steps_taken((DoublePrecisionTracker)self) int :¶
Ask how many steps have been taken so far, including failures
- observers = <module 'bertini._pybertini.tracking.observers.double'>¶
- predictor((DoublePrecisionTracker)self) Predictor :¶
Query the current predictor method used by the tracker.
- predictor( (DoublePrecisionTracker)self, (Predictor)predictor) -> None :
Set the predictor method used by the tracker.
- refine((DoublePrecisionTracker)self, (numpy.ndarray)result, (numpy.ndarray)start_point, (complex)time) SuccessCode :¶
refine a point using this tracker, from start_point, at fixed time. returns a success code, computed refined point is in result.
- refine( (DoublePrecisionTracker)self, (numpy.ndarray)result, (numpy.ndarray)start_point, (complex)time, (float)tolerance, (int)max_iterations) -> SuccessCode :
refine a point using this tracker, from start_point, at fixed time. returns a success code, computed refined point is in result.
- reinitialize_initial_step_size((DoublePrecisionTracker)self, (bool)val) None :¶
Set whether the tracker should re-set the stepsize to the configured-initial stepsize when it starts tracking. Feed it a bool
- remove_observer((object)self, (object)observer) None :¶
Remove an observer to this observable object
- set(**fields)¶
Set config fields on this owner by NAME, each routed to whichever config owns it.
You never name the config struct:
solver.update(final_tolerance="1e-11", # -> TolerancesConfig max_num_crossed_path_resolve_attempts=3) # -> ZeroDimConfig
Strings work for every numeric field (converted exactly). A field that none of this owner’s configs has raises AttributeError with the valid names – so a typo, or trying to set a tracker field on the algorithm (or vice versa), never silently does nothing. Returns self, so calls chain. To set a whole config at once, or to name the config explicitly, use configure().
- set_config((DoublePrecisionTracker)self, (SteppingConfig)config) None :¶
Store one of this object’s configuration structs (dispatched by the config’s type).
- set_config( (DoublePrecisionTracker)self, (NewtonConfig)config) -> None :
Store one of this object’s configuration structs (dispatched by the config’s type).
- set_config( (DoublePrecisionTracker)self, (FixedPrecisionConfig)config) -> None :
Store one of this object’s configuration structs (dispatched by the config’s type).
- set_newton((DoublePrecisionTracker)self, (NewtonConfig)config) None :¶
Set the tracker’s internal configuration for Newton correction
- set_settings(settings, strict=False)¶
Apply a settings dict (from get_settings()) onto this owner. Returns self.
settingsis{config_name: config}(or{config_name: {field: value}}). By default only the configs this owner actually has are applied and the rest are skipped – so a bundle carried from one solver drops cleanly onto another whose config set differs (e.g. a different precision model, or a different algorithm stage). Passstrict=Trueto instead raise on any key this owner does not have.
- set_stepping((DoublePrecisionTracker)self, (SteppingConfig)config) None :¶
Set the tracker’s internal configuration for things that control stepping behaviour
- set_stepsize((DoublePrecisionTracker)self, (float)stepsize) None :¶
Set the stepsize for the tracker
- setup((DoublePrecisionTracker)arg1, (Predictor)predictor, (float)tolerance, (float)truncation, (SteppingConfig)stepping, (NewtonConfig)newton) None :¶
Set values for the internal configuration of the tracker. tolerance and truncation are both real doubles. predictor is a valid value for predictor choice. stepping and newton are the config structs from bertini.tracking.
- track_path((DoublePrecisionTracker)self, (object)result, (complex)start_time, (complex)end_time, (numpy.ndarray)start_point) SuccessCode :¶
The main function of the tracker, once its set up. The first argument is the output. Feed it, in (result, start_time, end_time, start_point
- tracking_tolerance((DoublePrecisionTracker)self) float :¶
Get. A step is labeled as a failure if newton correcting doesn’t yield a residual less than this tolerance. A real number, the smaller the slower tracking, generally speaking
- tracking_tolerance( (DoublePrecisionTracker)self, (float)tol) -> None :
Set the tracking tolerance for the tracker
- update(**fields)¶
Set config fields on this owner by NAME, each routed to whichever config owns it.
You never name the config struct:
solver.update(final_tolerance="1e-11", # -> TolerancesConfig max_num_crossed_path_resolve_attempts=3) # -> ZeroDimConfig
Strings work for every numeric field (converted exactly). A field that none of this owner’s configs has raises AttributeError with the valid names – so a typo, or trying to set a tracker field on the algorithm (or vice versa), never silently does nothing. Returns self, so calls chain. To set a whole config at once, or to name the config explicitly, use configure().
- class bertini.tracking.FixedPrecisionConfig((object)arg1)¶
Bases:
instance__init__( (object)arg1, (bertini._pybertini.system.System)arg2) -> None
- __init__((object)arg1) None¶
__init__( (object)arg1, (bertini._pybertini.system.System)arg2) -> None
- classmethod from_dict(mapping)¶
Build a config from a dict (default-constructs, then update()).
- property precision¶
The number of digits to always work at. For a double-precision tracker this is DoublePrecision() (16) and cannot be changed; for a fixed-multiple tracker it is the precision the whole solve runs at – set it to choose a different fixed precision. A tracker keeps this in sync with its actual precision, so reading it tells you the precision in effect.
- set(**kwargs)¶
Set one or more fields at once; returns self so calls can chain.
Numeric fields accept strings (e.g. max_step_size=”0.05”), which are converted exactly to multiprecision values. Raises AttributeError on an unknown/misspelled field name.
- to_dict()¶
The config’s fields as an ordinary dict of {name: value}.
- update(**kwargs)¶
Set one or more fields at once; returns self so calls can chain.
Numeric fields accept strings (e.g. max_step_size=”0.05”), which are converted exactly to multiprecision values. Raises AttributeError on an unknown/misspelled field name.
- class bertini.tracking.MultiplePrecisionTracker((object)arg1, (bertini._pybertini.system.System)arg2)¶
Bases:
ObservableThe fixed multiple precision tracker. Ambient numeric type is multiple-precision (complex_mp). Precision is the value of bertini.default_precision() at contruction. Errors if you try to feed it things not at that precision. Contruct one by feeding it a system – cannot be constructed without feeding it a system. Adjust its settings via configs and the setup function. Then, call method track_path.
- __init__((object)arg1, (bertini._pybertini.system.System)arg2) None¶
- add_observer((object)self, (object)observer) None :¶
Attach an observer to this observable object
- config_names()¶
The keyword names accepted by configure() for this owner.
- config_types((MultiplePrecisionTracker)self) list :¶
List the configuration struct classes this object accepts.
- configure(**kwargs)¶
Change settings on this owner’s configs in one call.
Each keyword names a config (e.g.
stepping,newton,tolerances); its value is either a dict of fields to change, or a ready config object.- tracker.configure(stepping={‘max_step_size’: 0.1},
newton={‘max_num_newton_iterations’: 2})
Returns self.
- current_point((MultiplePrecisionTracker)self) numpy.ndarray :¶
what is the current point?
- current_precision((MultiplePrecisionTracker)self) int :¶
what is the current working precision?
- current_stepsize((MultiplePrecisionTracker)self) bertini._pybertini.multiprec.real_mp :¶
what is the current stepsize? a real number.
- current_time((MultiplePrecisionTracker)self) bertini._pybertini.multiprec.complex_mp :¶
what is the current time?
- delta_t((MultiplePrecisionTracker)self) bertini._pybertini.multiprec.complex_mp :¶
what is the current delta_t, the time increment of the latest step? a complex number.
- get_config((MultiplePrecisionTracker)self, (object)config_type) object :¶
Return a copy of this object’s stored configuration struct of the given class.
- get_newton((MultiplePrecisionTracker)self) NewtonConfig :¶
Get the tracker’s internal configuration for Newton correction
- get_settings(as_dict=False)¶
This owner’s whole configuration as a carryable dict.
By default (
as_dict=False) the value is{config_name: config}– each a copy of one of the owner’s configs (e.g.{'stepping': SteppingConfig(...), 'tolerances': TolerancesConfig(...)}), keyed by the short names config_names() lists. The configs are independent copies (and picklable), so the dict is a plain Python value you can stash, tweak, and apply to other owners – the way to carry one set of tracking settings across a series of related solves:settings = first_solver.get_settings() next_solver.set_settings(settings)
Pass
as_dict=Truefor the flat, human-readable view instead: one{field_name: value}dict across ALL configs (field names are unique across an owner’s configs, so there is no collision). That form drops the struct layer nobody wants to poke at, and round-trips throughset:flat = solver.get_settings(as_dict=True) # {'final_tolerance': ..., 'max_step_size': ..., ...} other.set(**flat)
(The config-keyed default is kept because
set_settingsconsumes it; use whichever fits.) See set_settings() for applying the config-keyed form back.
- get_stepping((MultiplePrecisionTracker)self) SteppingConfig :¶
Get the tracker’s internal configuration for things that control stepping behaviour
- get_system((MultiplePrecisionTracker)arg1) bertini._pybertini.system.System :¶
Gets an internal reference to the tracked system.
- infinite_truncation((MultiplePrecisionTracker)self, (bool)val) None :¶
Decide whether the tracker should truncate infinite paths. See also infinite_truncation_tolerance
- infinite_truncation( (MultiplePrecisionTracker)self) -> bool :
Get the bool for whether the tracker should truncate infinite paths. See also infinite_truncation_tolerance
- infinite_truncation_tolerance((MultiplePrecisionTracker)self, (float)tol) None :¶
Set the path truncation tolerance for infinite paths for the tracker
- infinite_truncation_tolerance( (MultiplePrecisionTracker)self) -> float :
Get the path truncation tolerance for infinite paths for the tracker
- latest_condition_number((MultiplePrecisionTracker)self) float :¶
the most recent estimate of the condition number of the Jacobian. a real number.
- latest_error_estimate((MultiplePrecisionTracker)self) float :¶
the most recent estimate of the error of a step. a real number.
- latest_norm_of_step((MultiplePrecisionTracker)self) float :¶
the norm of the change in space resulting from the most recent step. a real number.
- num_total_steps_taken((MultiplePrecisionTracker)self) int :¶
Ask how many steps have been taken so far, including failures
- observers = <module 'bertini._pybertini.tracking.observers.multiple'>¶
- predictor((MultiplePrecisionTracker)self) Predictor :¶
Query the current predictor method used by the tracker.
- predictor( (MultiplePrecisionTracker)self, (Predictor)predictor) -> None :
Set the predictor method used by the tracker.
- refine((MultiplePrecisionTracker)self, (numpy.ndarray)result, (numpy.ndarray)start_point, (bertini._pybertini.multiprec.complex_mp)time) SuccessCode :¶
refine a point using this tracker, from start_point, at fixed time. returns a success code, computed refined point is in result.
- refine( (MultiplePrecisionTracker)self, (numpy.ndarray)result, (numpy.ndarray)start_point, (bertini._pybertini.multiprec.complex_mp)time, (float)tolerance, (int)max_iterations) -> SuccessCode :
refine a point using this tracker, from start_point, at fixed time. returns a success code, computed refined point is in result.
- reinitialize_initial_step_size((MultiplePrecisionTracker)self, (bool)val) None :¶
Set whether the tracker should re-set the stepsize to the configured-initial stepsize when it starts tracking. Feed it a bool
- remove_observer((object)self, (object)observer) None :¶
Remove an observer to this observable object
- set(**fields)¶
Set config fields on this owner by NAME, each routed to whichever config owns it.
You never name the config struct:
solver.update(final_tolerance="1e-11", # -> TolerancesConfig max_num_crossed_path_resolve_attempts=3) # -> ZeroDimConfig
Strings work for every numeric field (converted exactly). A field that none of this owner’s configs has raises AttributeError with the valid names – so a typo, or trying to set a tracker field on the algorithm (or vice versa), never silently does nothing. Returns self, so calls chain. To set a whole config at once, or to name the config explicitly, use configure().
- set_config((MultiplePrecisionTracker)self, (SteppingConfig)config) None :¶
Store one of this object’s configuration structs (dispatched by the config’s type).
- set_config( (MultiplePrecisionTracker)self, (NewtonConfig)config) -> None :
Store one of this object’s configuration structs (dispatched by the config’s type).
- set_config( (MultiplePrecisionTracker)self, (FixedPrecisionConfig)config) -> None :
Store one of this object’s configuration structs (dispatched by the config’s type).
- set_newton((MultiplePrecisionTracker)self, (NewtonConfig)config) None :¶
Set the tracker’s internal configuration for Newton correction
- set_settings(settings, strict=False)¶
Apply a settings dict (from get_settings()) onto this owner. Returns self.
settingsis{config_name: config}(or{config_name: {field: value}}). By default only the configs this owner actually has are applied and the rest are skipped – so a bundle carried from one solver drops cleanly onto another whose config set differs (e.g. a different precision model, or a different algorithm stage). Passstrict=Trueto instead raise on any key this owner does not have.
- set_stepping((MultiplePrecisionTracker)self, (SteppingConfig)config) None :¶
Set the tracker’s internal configuration for things that control stepping behaviour
- set_stepsize((MultiplePrecisionTracker)self, (bertini._pybertini.multiprec.real_mp)stepsize) None :¶
Set the stepsize for the tracker
- setup((MultiplePrecisionTracker)arg1, (Predictor)predictor, (float)tolerance, (float)truncation, (SteppingConfig)stepping, (NewtonConfig)newton) None :¶
Set values for the internal configuration of the tracker. tolerance and truncation are both real doubles. predictor is a valid value for predictor choice. stepping and newton are the config structs from bertini.tracking.
- track_path((MultiplePrecisionTracker)self, (object)result, (bertini._pybertini.multiprec.complex_mp)start_time, (bertini._pybertini.multiprec.complex_mp)end_time, (numpy.ndarray)start_point) SuccessCode :¶
The main function of the tracker, once its set up. The first argument is the output. Feed it, in (result, start_time, end_time, start_point
- tracking_tolerance((MultiplePrecisionTracker)self) float :¶
Get. A step is labeled as a failure if newton correcting doesn’t yield a residual less than this tolerance. A real number, the smaller the slower tracking, generally speaking
- tracking_tolerance( (MultiplePrecisionTracker)self, (float)tol) -> None :
Set the tracking tolerance for the tracker
- update(**fields)¶
Set config fields on this owner by NAME, each routed to whichever config owns it.
You never name the config struct:
solver.update(final_tolerance="1e-11", # -> TolerancesConfig max_num_crossed_path_resolve_attempts=3) # -> ZeroDimConfig
Strings work for every numeric field (converted exactly). A field that none of this owner’s configs has raises AttributeError with the valid names – so a typo, or trying to set a tracker field on the algorithm (or vice versa), never silently does nothing. Returns self, so calls chain. To set a whole config at once, or to name the config explicitly, use configure().
- class bertini.tracking.NewtonConfig((object)arg1)¶
Bases:
instance- __init__((object)arg1) None¶
- classmethod from_dict(mapping)¶
Build a config from a dict (default-constructs, then update()).
- property max_num_newton_iterations¶
None( (bertini._pybertini.tracking.NewtonConfig)arg1) -> int
- property min_num_newton_iterations¶
None( (bertini._pybertini.tracking.NewtonConfig)arg1) -> int
- set(**kwargs)¶
Set one or more fields at once; returns self so calls can chain.
Numeric fields accept strings (e.g. max_step_size=”0.05”), which are converted exactly to multiprecision values. Raises AttributeError on an unknown/misspelled field name.
- to_dict()¶
The config’s fields as an ordinary dict of {name: value}.
- update(**kwargs)¶
Set one or more fields at once; returns self so calls can chain.
Numeric fields accept strings (e.g. max_step_size=”0.05”), which are converted exactly to multiprecision values. Raises AttributeError on an unknown/misspelled field name.
- class bertini.tracking.Observable¶
Bases:
instanceRaises an exception This class cannot be instantiated from Python
- __init__()¶
Raises an exception This class cannot be instantiated from Python
- class bertini.tracking.Predictor¶
Bases:
enum- Constant = bertini._pybertini.tracking.Predictor.Constant¶
- Euler = bertini._pybertini.tracking.Predictor.Euler¶
- Heun = bertini._pybertini.tracking.Predictor.Heun¶
- HeunEuler = bertini._pybertini.tracking.Predictor.HeunEuler¶
- RK4 = bertini._pybertini.tracking.Predictor.RK4¶
- RKCashKarp45 = bertini._pybertini.tracking.Predictor.RKCashKarp45¶
- RKDormandPrince56 = bertini._pybertini.tracking.Predictor.RKDormandPrince56¶
- RKF45 = bertini._pybertini.tracking.Predictor.RKF45¶
- RKNorsett34 = bertini._pybertini.tracking.Predictor.RKNorsett34¶
- RKVerner67 = bertini._pybertini.tracking.Predictor.RKVerner67¶
- names = {'Constant': bertini._pybertini.tracking.Predictor.Constant, 'Euler': bertini._pybertini.tracking.Predictor.Euler, 'Heun': bertini._pybertini.tracking.Predictor.Heun, 'HeunEuler': bertini._pybertini.tracking.Predictor.HeunEuler, 'RK4': bertini._pybertini.tracking.Predictor.RK4, 'RKCashKarp45': bertini._pybertini.tracking.Predictor.RKCashKarp45, 'RKDormandPrince56': bertini._pybertini.tracking.Predictor.RKDormandPrince56, 'RKF45': bertini._pybertini.tracking.Predictor.RKF45, 'RKNorsett34': bertini._pybertini.tracking.Predictor.RKNorsett34, 'RKVerner67': bertini._pybertini.tracking.Predictor.RKVerner67}¶
- values = {0: bertini._pybertini.tracking.Predictor.Constant, 1: bertini._pybertini.tracking.Predictor.Euler, 2: bertini._pybertini.tracking.Predictor.Heun, 3: bertini._pybertini.tracking.Predictor.RK4, 4: bertini._pybertini.tracking.Predictor.HeunEuler, 5: bertini._pybertini.tracking.Predictor.RKNorsett34, 6: bertini._pybertini.tracking.Predictor.RKF45, 7: bertini._pybertini.tracking.Predictor.RKCashKarp45, 8: bertini._pybertini.tracking.Predictor.RKDormandPrince56, 9: bertini._pybertini.tracking.Predictor.RKVerner67}¶
- class bertini.tracking.SteppingConfig((object)arg1)¶
Bases:
instance- __init__((object)arg1) None¶
- property consecutive_successful_steps_before_stepsize_increase¶
This number of successful steps have to taken consecutively, and then the stepsize is permitted to increase
- property frequency_of_CN_estimation¶
How frequently the condition number should be updated. Less frequently is faster (estimation requires an additional linear solve), but may cause precision adjustment to lag behind.
- classmethod from_dict(mapping)¶
Build a config from a dict (default-constructs, then update()).
- property initial_step_size¶
The initial stepsize when tracking is started. See also tracking.AMPTracker.reinitialize_initial_step_size
- property max_num_steps¶
The maximum number of steps. Tracking will die if it tries to take more than this number, sad day.
- property max_step_size¶
The maximum allowed stepsize during tracking. See also min_num_steps
- property min_num_steps¶
The minimum number of steps the tracker can take between now and then. This is useful if you are tracking closely between times, and want to guarantee some number of steps are taken. Then again, this could be wasteful, too.
- property min_step_size¶
The minimum stepsize the tracker is allowed to take. See also max_step_size
- set(**kwargs)¶
Set one or more fields at once; returns self so calls can chain.
Numeric fields accept strings (e.g. max_step_size=”0.05”), which are converted exactly to multiprecision values. Raises AttributeError on an unknown/misspelled field name.
- property step_size_fail_factor¶
The scale factor for stepsize, after a fail happens. See also step_size_success_factor
- property step_size_success_factor¶
The scale factor for stepsize, after some consecutive steps. See also consecutive_successful_steps_before_stepsize_increase
- to_dict()¶
The config’s fields as an ordinary dict of {name: value}.
- update(**kwargs)¶
Set one or more fields at once; returns self so calls can chain.
Numeric fields accept strings (e.g. max_step_size=”0.05”), which are converted exactly to multiprecision values. Raises AttributeError on an unknown/misspelled field name.
- class bertini.tracking.SuccessCode¶
Bases:
enum- CycleNumTooHigh = bertini._pybertini.tracking.SuccessCode.CycleNumTooHigh¶
- ExternallyTerminated = bertini._pybertini.tracking.SuccessCode.ExternallyTerminated¶
- FailedToConverge = bertini._pybertini.tracking.SuccessCode.FailedToConverge¶
- FailedToSelectPrecisionAndStepsize = bertini._pybertini.tracking.SuccessCode.FailedToSelectPrecisionAndStepsize¶
- Failure = bertini._pybertini.tracking.SuccessCode.Failure¶
- GoingToInfinity = bertini._pybertini.tracking.SuccessCode.GoingToInfinity¶
- HigherPrecisionNecessary = bertini._pybertini.tracking.SuccessCode.HigherPrecisionNecessary¶
- MatrixSolveFailure = bertini._pybertini.tracking.SuccessCode.MatrixSolveFailure¶
- MatrixSolveFailureFirstPartOfPrediction = bertini._pybertini.tracking.SuccessCode.MatrixSolveFailureFirstPartOfPrediction¶
- MaxNumStepsTaken = bertini._pybertini.tracking.SuccessCode.MaxNumStepsTaken¶
- MaxPrecisionReached = bertini._pybertini.tracking.SuccessCode.MaxPrecisionReached¶
- MinStepSizeReached = bertini._pybertini.tracking.SuccessCode.MinStepSizeReached¶
- MinTrackTimeReached = bertini._pybertini.tracking.SuccessCode.MinTrackTimeReached¶
- ReduceStepSize = bertini._pybertini.tracking.SuccessCode.ReduceStepSize¶
- SecurityMaxNormReached = bertini._pybertini.tracking.SuccessCode.SecurityMaxNormReached¶
- SingularStartPoint = bertini._pybertini.tracking.SuccessCode.SingularStartPoint¶
- Success = bertini._pybertini.tracking.SuccessCode.Success¶
- names = {'CycleNumTooHigh': bertini._pybertini.tracking.SuccessCode.CycleNumTooHigh, 'ExternallyTerminated': bertini._pybertini.tracking.SuccessCode.ExternallyTerminated, 'FailedToConverge': bertini._pybertini.tracking.SuccessCode.FailedToConverge, 'FailedToSelectPrecisionAndStepsize': bertini._pybertini.tracking.SuccessCode.FailedToSelectPrecisionAndStepsize, 'Failure': bertini._pybertini.tracking.SuccessCode.Failure, 'GoingToInfinity': bertini._pybertini.tracking.SuccessCode.GoingToInfinity, 'HigherPrecisionNecessary': bertini._pybertini.tracking.SuccessCode.HigherPrecisionNecessary, 'MatrixSolveFailure': bertini._pybertini.tracking.SuccessCode.MatrixSolveFailure, 'MatrixSolveFailureFirstPartOfPrediction': bertini._pybertini.tracking.SuccessCode.MatrixSolveFailureFirstPartOfPrediction, 'MaxNumStepsTaken': bertini._pybertini.tracking.SuccessCode.MaxNumStepsTaken, 'MaxPrecisionReached': bertini._pybertini.tracking.SuccessCode.MaxPrecisionReached, 'MinStepSizeReached': bertini._pybertini.tracking.SuccessCode.MinStepSizeReached, 'MinTrackTimeReached': bertini._pybertini.tracking.SuccessCode.MinTrackTimeReached, 'ReduceStepSize': bertini._pybertini.tracking.SuccessCode.ReduceStepSize, 'SecurityMaxNormReached': bertini._pybertini.tracking.SuccessCode.SecurityMaxNormReached, 'SingularStartPoint': bertini._pybertini.tracking.SuccessCode.SingularStartPoint, 'Success': bertini._pybertini.tracking.SuccessCode.Success}¶
- values = {0: bertini._pybertini.tracking.SuccessCode.Success, 1: bertini._pybertini.tracking.SuccessCode.HigherPrecisionNecessary, 2: bertini._pybertini.tracking.SuccessCode.ReduceStepSize, 3: bertini._pybertini.tracking.SuccessCode.GoingToInfinity, 4: bertini._pybertini.tracking.SuccessCode.FailedToConverge, 5: bertini._pybertini.tracking.SuccessCode.MatrixSolveFailure, 6: bertini._pybertini.tracking.SuccessCode.MatrixSolveFailureFirstPartOfPrediction, 7: bertini._pybertini.tracking.SuccessCode.MaxNumStepsTaken, 8: bertini._pybertini.tracking.SuccessCode.MaxPrecisionReached, 9: bertini._pybertini.tracking.SuccessCode.MinStepSizeReached, 10: bertini._pybertini.tracking.SuccessCode.Failure, 11: bertini._pybertini.tracking.SuccessCode.SingularStartPoint, 12: bertini._pybertini.tracking.SuccessCode.ExternallyTerminated, 13: bertini._pybertini.tracking.SuccessCode.MinTrackTimeReached, 14: bertini._pybertini.tracking.SuccessCode.SecurityMaxNormReached, 15: bertini._pybertini.tracking.SuccessCode.CycleNumTooHigh, 16: bertini._pybertini.tracking.SuccessCode.FailedToSelectPrecisionAndStepsize}¶
- bertini.tracking.amp_config_from((bertini._pybertini.system.System)arg1) AMPConfig :¶
make an AMPConfig from a System with generated settings for system-specific things, and default settings otherwise (such as safety digits).
Submodules
Observers built to watch a tracker |