1#ifndef POLYNOMIALGENERATOR_H
2#define POLYNOMIALGENERATOR_H
68 typedef std::vector<std::complex<T>> (*rootsGeneratorPtr)(int, T, T, T);
72 int count = roots.size();
74 return Polynomial<T>(-roots[0].real(),
static_cast<T
>(1));
78 auto mid_begin = roots.begin() + mid;
79 auto end = roots.end();
82 return left_poly*right_poly;
86 static std::vector<std::complex<T>>
basicRootGeneration(
int count = 3, T from = 0, T to = 1, T delta=1){
87 std::uniform_real_distribution<double> distribution(from, to);
88 std::random_device rd;
89 std::default_random_engine generator(rd());
90 std::vector<std::complex<T>> roots;
91 for(
int i = 0; i < count; ++i)
92 roots.push_back(distribution(generator)*delta);
121 static std::vector<T>
generateRoots(
int count = 3, T from = 0, T to = 1, T delta=1){
127 throw std::invalid_argument(
"Cant create polynomial from zero given roots.");
133 template<
typename... Args>
138 static Polynomial<T>
gen(
int count = 3, T from = 1, T to = 3, T delta=1){
Definition PolynomialGenerator.h:61
static rootsGeneratorPtr currentRootsGenerator()
Definition PolynomialGenerator.h:105
std::vector< std::complex< T > >(* rootsGeneratorPtr)(int, T, T, T)
Definition PolynomialGenerator.h:68
static Polynomial< T > gen(int count=3, T from=1, T to=3, T delta=1)
Definition PolynomialGenerator.h:138
static void setCoeffGenerator(coeffGeneratorPtr func)
Definition PolynomialGenerator.h:113
static std::vector< T > generateRoots(int count=3, T from=0, T to=1, T delta=1)
Definition PolynomialGenerator.h:121
static coeffGeneratorPtr currentCoeffGenerator()
Definition PolynomialGenerator.h:97
static Polynomial< T > createFromRoots(Args...args)
Definition PolynomialGenerator.h:134
static void setRootsGenerator(rootsGeneratorPtr func)
Definition PolynomialGenerator.h:117
static rootsGeneratorPtr rootsGenerator
Definition PolynomialGenerator.h:69
Polynomial< T >(* coeffGeneratorPtr)(std::vector< std::complex< T > >)
Definition PolynomialGenerator.h:64
static Polynomial< T > basicCoeffsGeneration(std::vector< std::complex< T > > roots)
Definition PolynomialGenerator.h:71
static Polynomial< T > createFromRoots(std::vector< std::complex< T > > args)
Definition PolynomialGenerator.h:125
static std::vector< std::complex< T > > basicRootGeneration(int count=3, T from=0, T to=1, T delta=1)
Definition PolynomialGenerator.h:86
static coeffGeneratorPtr coeffGenerator
Definition PolynomialGenerator.h:65
Definition Polynomial.h:16
Definition ExtendedFunctions.h:14