๐ bertini.system๏
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 some of these things:
sys = bertini.system.System()
sys.add_function(...)
sys.add_variable_group(...)
x = sys.dehomogenize_point(z)
- class bertini.system.System((object)arg1)๏
The type in Bertini for systems of simultaneous equations. Add functions and variable groups via member functions.
- __init__((object)arg1) None๏
- add_function((System)self, (bertini._pybertini.function_tree.root.Function)f) None :๏
Add a function to the System
- add_function( (System)self, (bertini._pybertini.function_tree.AbstractNode)f, (str)name) -> None :
Add a function to the System, naming it too
- add_function( (System)self, (bertini._pybertini.function_tree.AbstractNode)f) -> None :
Add a function to the System, giving it the default name
- add_functions((System)self, (bertini._pybertini.container.ListOfFunction)functions) None :๏
Add some functions to the System. Expects a list of functions
- add_hom_variable_group((System)self, (bertini._pybertini.container.VariableGroup)group) None :๏
Add a projective or homogeneous variable group to the System
- add_path_variable((System)self, (bertini._pybertini.function_tree.symbol.Variable)pathvar) None :๏
Add a path variable to the System
- add_variable_group((System)self, (bertini._pybertini.container.VariableGroup)group) None :๏
Add a (affine) variable group to the System
- auto_patch((System)self) None :๏
Apply a patch to the system, given its current variable group structure.
- clear_variables((System)self) None :๏
Remove the variable structure from the system
- copy_patches((System)self, (System)other) None :๏
Copy the patches from another system into this one.
- copy_variable_structure((System)self, (System)other) None :๏
Copy the variable structure from another System
- degrees((System)self) bertini._pybertini.container.ListOfInt :๏
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)self, (bertini._pybertini.container.VariableGroup)group) -> bertini._pybertini.container.ListOfInt :
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)self, (numpy.ndarray)point) numpy.ndarray :๏
Dehomogenize a vector of doubles (complex), using the variable structure in this System
- dehomogenize_point( (System)self, (numpy.ndarray)point) -> numpy.ndarray :
Dehomogenize a vector of mpfrโs (complex), using the variable structure in this System
- differentiate((System)self) None :๏
differentiate the system with respect to the declared variable groups
- eval((System)self) numpy.ndarray :๏
Evaluate the system in multiple precision, using already-set variable values.
- eval( (System)self) -> numpy.ndarray :
Evaluate the system in double precision, using already-set variable values.
- eval( (System)arg1, (numpy.ndarray)self) -> numpy.ndarray :
Evaluate the system in multiple precision, using space variable values passed into this function.
- eval( (System)arg1, (numpy.ndarray)self) -> numpy.ndarray :
Evaluate the system in double precision, using space variable values passed into this function.
- eval( (System)arg1, (numpy.ndarray)arg2, (bertini._pybertini.multiprec.Complex)self) -> numpy.ndarray :
Evaluate the system in multiple precision using space and time values passed into this function. Throws if doesnโt use a time variable
- eval( (System)arg1, (numpy.ndarray)arg2, (complex)self) -> numpy.ndarray :
Evaluate the system in double precision using space and time values passed into this function. Throws if doesnโt use a time variable
- eval_jacobian((System)self) numpy.ndarray :๏
Evaluate the Jacobian (martix of partial derivatives) of the system, using already-set time and space value.
- eval_jacobian( (System)self) -> numpy.ndarray :
Evaluate the Jacobian (martix of partial derivatives) of the system, using already-set time and space value.
- eval_jacobian( (System)arg1, (numpy.ndarray)self) -> numpy.ndarray :
Evaluate the Jacobian (martix of partial derivatives) of the system, using space values you pass in to this function
- eval_jacobian( (System)arg1, (numpy.ndarray)self) -> numpy.ndarray :
Evaluate the Jacobian (martix of partial derivatives) of the system, using space values you pass in to this function
- eval_jacobian( (System)arg1, (numpy.ndarray)arg2, (complex)self) -> numpy.ndarray :
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
- eval_jacobian( (System)arg1, (numpy.ndarray)arg2, (bertini._pybertini.multiprec.Complex)self) -> numpy.ndarray :
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
- function((System)self, (int)index) bertini._pybertini.function_tree.root.Function :๏
Get a function with a given index. Problems ensue if out of range โ uses un-rangechecked version of underlying getter
- get_patch((System)self) object :๏
Get (a reference to) the patches from the system.
- have_path_variable((System)self) bool :๏
Asks whether the System has a path variable defined
- hom_variable_groups((System)self) bertini._pybertini.container.ListOfVariableGroup :๏
Get the list of projective / homogeneous variable_groups from the system
- homogenize((System)self) None :๏
Homogenize the system, adding new homogenizing variables if necessary. This may change your polynomials; that is, it has side effects.
- is_homogeneous((System)self) bool :๏
Determines whether all polynomials in the system have the same degree. Non-polynomial functions are not homogeneous.
- is_patched((System)self) bool :๏
Check whether the system is patched.
- is_polynomial((System)self) bool :๏
Determines whether all polynomials are polynomial. Transcendental functions, e.g., are non-polynomial. Returns a bool.
- num_functions((System)self) int :๏
The total number of functions in the system. Does not include patches.
- num_hom_variable_groups((System)self) int :๏
The number of homogeneous or projective variable groups. The number of homogenizing variables should eventually equal this.
- num_hom_variables((System)self) int :๏
The number of homogenizing variables defined in the system. Should be equal to the number of homvargroups
- num_ungrouped_variables((System)self) int :๏
The number of variables, not grouped into an affine or projective space
- num_variable_groups((System)self) int :๏
The number of affine variable groups. This should probably be renamed to num_affine_variable_groups
- num_variables((System)self) int :๏
the total number of variables in the system. Includes homogenizing variables
- precision((System)self) 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)self, (int)precision) -> 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)self) None :๏
Change the order of the functions to be in decreasing order
- reorder_functions_by_degree_increasing((System)self) None :๏
Change the order of the functions to be in decreasing order
- rescale_point_to_fit_patch((System)self, (numpy.ndarray)point) numpy.ndarray :๏
Return a rescaled version of the input point, which fits the patch for the system.
- rescale_point_to_fit_patch( (System)self, (numpy.ndarray)point) -> numpy.ndarray :
Return a rescaled version of the input point, which fits the patch for the system.
- rescale_point_to_fit_patch_in_place((System)self, (numpy.ndarray)point) 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)self, (numpy.ndarray)point) -> 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)self, (complex)values) None :๏
Set the value of the path variable. This oneโs double-precision. Throws if path variable not defined.
- set_path_variable( (System)self, (bertini._pybertini.multiprec.Complex)values) -> None :
Set the value of the path variable. This oneโs variable-precision. Throws if path variable not defined.
- set_variables((System)self, (numpy.ndarray)values) None :๏
Set the values of the variables. Expects a vector of doubles
- set_variables( (System)self, (numpy.ndarray)values) -> None :
Set the values of the variables. Expects a vector of complex mpfrโs
- variable_groups((System)self) bertini._pybertini.container.ListOfVariableGroup :๏
Get the list of (affine) variable_groups from the system
- bertini.system.clone((System)self) System :๏
Make a complete clone of a System. Includes all functions, variables, etc. Truly and genuinely distinct.
- bertini.system.concatenate((System)self, (System)other) System :๏
concatenate two Systems to produce a new one. Appends the second onto what was the first.
- bertini.system.simplify((object)self) None :๏
Perform all possible simplifications. Has side effects of modifying your functions, if held separately. Shared nodes between multiple systems may have adverse effects