pybertini.system¶
quick nav links:
Notes¶
Auto-generated docs¶
Provides utilities for working with systems of functions – polynomials are intended, although you can work with functions involving things like trig functions, arbitrary powers, etc.
Making a new System is the starting point you want, probably:
sys = pybertini.system.System()
There are also things available in the start_system submodule.
-
class
pybertini.system.
System
((object)arg1) → None¶ Bases:
Boost.Python.instance
-
add_function
((System)arg1, (Function)arg2) → None :¶ Add a function to the System
- add_function( (System)arg1, (AbstractNode)arg2) -> None :
- Add a function to the System
-
add_functions
((System)arg1, (ListFunction)arg2) → None :¶ Add some functions to the System. Expects a list of functions
-
add_hom_variable_group
((System)arg1, (VariableGroup)arg2) → None :¶ Add a projective or homogeneous variable group to the System
-
add_path_variable
((System)arg1, (Variable)arg2) → None :¶ Add a path variable to the System
-
add_variable_group
((System)arg1, (VariableGroup)arg2) → None :¶ Add a (affine) variable group to the System
-
auto_patch
((System)arg1) → None :¶ Apply a patch to the system, given its current variable group structure.
-
clear_variables
((System)arg1) → None :¶ Remove the variable structure from the system
-
copy_patches
((System)arg1, (System)arg2) → None :¶ Copy the patches from another system into this one.
-
copy_variable_structure
((System)arg1, (System)arg2) → None :¶ Copy the variable structure from another System
-
degrees
((System)arg1) → ListInt :¶ Get a list of the degrees of the functions in the system, with respect to all variables in all groups (and in fact overall)
- degrees( (System)arg1, (VariableGroup)arg2) -> ListInt :
- Get a list of the degrees of the functions in the system, with respect to a variable_group passed in to this function. Negative numbers indicate non-polynomial
-
dehomogenize_point
((System)arg1, (VectorXd)arg2) → VectorXd :¶ Dehomogenize a vector of doubles (complex), using the variable structure in this System
- dehomogenize_point( (System)arg1, (VectorXmp)arg2) -> VectorXmp :
- Dehomogenize a vector of mpfr’s (complex), using the variable structure in this System
-
differentiate
((System)arg1) → None¶
-
eval
((System)arg1) → VectorXd :¶ Evaluate the system in double precision, using already-set variable values.
- eval( (System)arg1) -> VectorXmp :
- Evaluate the system in multiple precision, using already-set variable values.
- eval( (System)arg1, (VectorXd)arg2) -> VectorXd :
- Evaluate the system in double precision, using space variable values passed into this function.
- eval( (System)arg1, (VectorXmp)arg2) -> VectorXmp :
- Evaluate the system in multiple precision, using space variable values passed into this function.
- eval( (System)arg1, (VectorXd)arg2, (complex)arg3) -> VectorXd :
- Evaluate the system in double precision using space and time values passed into this function. Throws if doesn’t use a time variable
- eval( (System)arg1, (VectorXmp)arg2, (Complex)arg3) -> VectorXmp :
- Evaluate the system in multiple precision using space and time values passed into this function. Throws if doesn’t use a time variable
-
function
((System)arg1, (int)arg2) → Function :¶ Get a function with a given index. Problems ensue if out of range – uses un-rangechecked version of underlying getter
-
get_patch
((System)arg1) → object :¶ Get (a reference to) the patches from the system.
-
have_path_variable
((System)arg1) → bool :¶ Asks whether the System has a path variable defined
-
hom_variable_groups
((System)arg1) → ListVariableGroup :¶ Get the list of projective / homogeneous variable_groups from the system
-
homogenize
((System)arg1) → None :¶ Homogenize the system, adding new homogenizing variables if necessary. This may change your polynomials; that is, it has side effects.
-
is_homogeneous
((System)arg1) → bool :¶ Determines whether all polynomials in the system have the same degree. Non-polynomial functions are not homogeneous.
-
is_patched
((System)arg1) → bool :¶ Check whether the system is patched.
-
is_polynomial
((System)arg1) → bool :¶ Determines whether all polynomials are polynomial. Transcendental functions, e.g., are non-polynomial. Returns a bool.
-
jacobian
((System)arg1) → MatrixXd :¶ Evaluate the Jacobian (martix of partial derivatives) of the system, using already-set time and space value.
- jacobian( (System)arg1) -> MatrixXmp :
- Evaluate the Jacobian (martix of partial derivatives) of the system, using already-set time and space value.
- jacobian( (System)arg1, (VectorXd)arg2) -> MatrixXd :
- Evaluate the Jacobian (martix of partial derivatives) of the system, using space values you pass in to this function
- jacobian( (System)arg1, (VectorXmp)arg2) -> MatrixXmp :
- Evaluate the Jacobian (martix of partial derivatives) of the system, using space values you pass in to this function
- jacobian( (System)arg1, (VectorXd)arg2, (complex)arg3) -> MatrixXd :
- Evaluate the Jacobian (martix of partial derivatives) of the system, using time and space values passed into this function. Throws if doesn’t use a time variable
- jacobian( (System)arg1, (VectorXmp)arg2, (Complex)arg3) -> MatrixXmp :
- Evaluate the Jacobian (martix of partial derivatives) of the system, using time and space values passed into this function. Throws if doesn’t use a time variable
-
num_functions
((System)arg1) → int :¶ The total number of functions in the system. Does not include patches.
-
num_hom_variable_groups
((System)arg1) → int :¶ The number of homogeneous or projective variable groups. The number of homogenizing variables should eventually equal this.
-
num_hom_variables
((System)arg1) → int :¶ The number of homogenizing variables defined in the system. Should be equal to the number of homvargroups
-
num_ungrouped_variables
((System)arg1) → int :¶ The number of variables, not grouped into an affine or projective space
-
num_variable_groups
((System)arg1) → int :¶ The number of affine variable groups. This should probably be renamed to num_affine_variable_groups
-
num_variables
((System)arg1) → int :¶ the total number of variables in the system. Includes homogenizing variables
-
precision
((System)arg1) → int :¶ Get the current precision of the system. Returns a postive number, representing the number of digits (not bits) at which the system is currently represented. (there is a reference-level precision stored, so you can change this up / down mostly fearlessly)
- precision( (System)arg1, (int)arg2) -> None :
- Set / change the precision of the system. Feed in a positive number, representing the digits (not bits) of the precision. Double precision is 16, but that only effects the multi-precision precision… you can eval in double precision without changing the precision to 16.
-
reorder_functions_by_degree_decreasing
((System)arg1) → None :¶ Change the order of the functions to be in decreasing order
-
reorder_functions_by_degree_increasing
((System)arg1) → None :¶ Change the order of the functions to be in decreasing order
-
rescale_point_to_fit_patch
((System)arg1, (VectorXd)arg2) → VectorXd :¶ Return a rescaled version of the input point, which fits the patch for the system.
- rescale_point_to_fit_patch( (System)arg1, (VectorXmp)arg2) -> VectorXmp :
- Return a rescaled version of the input point, which fits the patch for the system.
-
rescale_point_to_fit_patch_in_place
((System)arg1, (VectorXd)arg2) → None :¶ Re-scale the input point, in place, to fit the patch for the system. This assumes you have properly set the variable groups and auto-patched the system.
- rescale_point_to_fit_patch_in_place( (System)arg1, (VectorXmp)arg2) -> None :
- Re-scale the input point, in place, to fit the patch for the system. This assumes you have properly set the variable groups and auto-patched the system.
-
set_path_variable
((System)arg1, (complex)arg2) → None :¶ Set the value of the path variable. This one’s double-precision. Throws if path variable not defined.
- set_path_variable( (System)arg1, (Complex)arg2) -> None :
- Set the value of the path variable. This one’s variable-precision. Throws if path variable not defined.
-
set_variables
((System)arg1, (VectorXd)arg2) → None :¶ Set the values of the variables. Expects a vector of doubles
- set_variables( (System)arg1, (VectorXmp)arg2) -> None :
- Set the values of the variables. Expects a vector of complex mpfr’s
-
variable_groups
((System)arg1) → ListVariableGroup :¶ Get the list of (affine) variable_groups from the system
-
-
pybertini.system.
clone
((System)arg1) → System :¶ Make a complete clone of a System. Includes all functions, variables, etc. Truly and genuinely distinct.
-
pybertini.system.
concatenate
((System)arg1, (System)arg2) → System :¶ concatenate two Systems to produce a new one. Appends the second onto what was the first.
-
pybertini.system.
simplify
((object)arg1) → None :¶ Perform all possible simplifications. Has side effects of modifying your functions, if held separately. Shared nodes between multiple systems may have adverse effects