118 void GenerateStartPointT(
Vec<T>& start_point,
unsigned long long index)
const;
123 std::vector< VariableGroup > var_groups_;
131 std::vector< std::vector<size_t> > variable_cols_;
132 size_t num_hom_groups_ = 0;
138 template <
typename Archive>
139 void serialize(Archive& ar,
const unsigned )
148 ar & boost::serialization::base_object<StartSystem>(*
this);
154 ar & num_hom_groups_;
System()
The default constructor for a system.
Definition system.hpp:117
std::shared_ptr< node::Node > Nd
Shorthand for a shared pointer to a generic expression-tree node.
Definition system.hpp:112
std::deque< Vec< int > > valid_partitions_
Partitions used for creating start points in the multi-homogeneous start system.
Definition mhom.hpp:95
MHomogeneous(System const &s)
Constructor for making a multi-homogeneous start system from a polynomial system.
unsigned long long NumStartPoints() const override
Get the number of start points for this m-homogeneous start system.
MHomogeneous & operator*=(Nd const &n)
Multiply this start system in place by an expression node.
unsigned long long NumStartPointsForPartition(Vec< int > partition) const
Get the number of start points contributed by a given variable-group partition.
int ChooseColumnInRow(System const &s, Vec< int > &variable_group_counter, int row, int column)
Helper function that is used to find valid partitions in the degree matrix.
MHomogeneous & operator+=(System const &sys)=delete
friend class boost::serialization::access
Definition mhom.hpp:136
void GenerateValidPartitions(System const &s)
Creates all valid partitions for multi-homogeneous start system to create start points.
virtual ~MHomogeneous()=default
Mat< int > degree_matrix_
Degree matrix holding degrees for all functions in terms of all variable groups.
Definition mhom.hpp:90
void CreateDegreeMatrix(System const &s)
Creates a degree matrix for constructing the multi-homogeneous start system.
Abstract base class for other start systems.
Definition start_base.hpp:83
Definition zero_dim_solve.hpp:68
Definition algorithm_builder.hpp:36
std::complex< double > complex_dbl
The double-precision complex number type.
Definition double_extensions.hpp:47
Eigen::Matrix< NumT, Eigen::Dynamic, 1 > Vec
A dynamically-sized column vector of NumT.
Definition eigen_extensions.hpp:296
Eigen::Matrix< NumT, Eigen::Dynamic, Eigen::Dynamic > Mat
A dynamically-sized matrix of NumT.
Definition eigen_extensions.hpp:298
bmp::number< mpc_complex_backend< 0 >, bmp::et_on > complex_mp
The arbitrary-precision complex number type.
Definition mpfr_complex.hpp:58
Defines generic start system type.
utilities for start system code.