MPSolve  3.2.1
polynomialsolver.h
1 #ifndef POLYNOMIALSOLVER_H
2 #define POLYNOMIALSOLVER_H
3 
4 #include <QObject>
5 #include "root.h"
6 #include "mpsolveworker.h"
7 #include "rootsmodel.h"
8 #include "monomial.h"
9 #include <mps/mps.h>
10 #include <stdio.h>
11 
12 namespace xmpsolve {
13 
21 class PolynomialSolver : public QObject
22 {
23  Q_OBJECT
24 
25 public:
26 
27  explicit PolynomialSolver(QObject *parent = 0);
29 
30 public slots:
31 
37  int solvePoly(mps_polynomial * poly, PolynomialBasis basis = MONOMIAL,
38  mps_algorithm selected_algorithm = MPS_ALGORITHM_SECULAR_GA,
39  int required_digits = 16, mps_output_goal goal = MPS_OUTPUT_GOAL_APPROXIMATE);
40 
46  int solvePolFile(QString selectedFile, mps_algorithm selected_algorithm = MPS_ALGORITHM_SECULAR_GA,
47  int required_digits = 16, mps_output_goal goal = MPS_OUTPUT_GOAL_APPROXIMATE);
48 
56  int solvePolFileFromContent(QString content,
57  mps_algorithm selected_algorithm,
58  int required_digits,
59  mps_output_goal goal = MPS_OUTPUT_GOAL_APPROXIMATE);
60 
66  int solvePoly(QString inputString, PolynomialBasis basis = xmpsolve::MONOMIAL,
67  mps_algorithm = MPS_ALGORITHM_SECULAR_GA,
68  int required_digits = 16,
69  mps_output_goal goal = MPS_OUTPUT_GOAL_APPROXIMATE);
70 
76  QString errorMessage();
77 
83  unsigned long int CPUTime();
84 
91 
95  void abortComputations();
96 
98  void workerExited();
99 
100 private:
101  MPSolveWorker m_worker;
102  mps_context * m_mpsContext;
103  mps_polynomial * m_currentPoly;
104  QString m_errorMessage;
105 
106  RootsModel m_rootsModel;
107 
108 signals:
110  void solved();
111 
112 };
113 
114 } // Namespace xmpsolve
115 
116 #endif // POLYNOMIALSOLVER_H
mps.h
Header file for libmps.
xmpsolve::PolynomialSolver::rootsModel
RootsModel * rootsModel()
rootsModel returns a pointer to the internal rootsModel that holds the approximations computed by the...
Definition: polynomialsolver.cpp:234
xmpsolve::PolynomialSolver::solvePoly
int solvePoly(mps_polynomial *poly, PolynomialBasis basis=MONOMIAL, mps_algorithm selected_algorithm=MPS_ALGORITHM_SECULAR_GA, int required_digits=16, mps_output_goal goal=MPS_OUTPUT_GOAL_APPROXIMATE)
Solve a polynomial.
Definition: polynomialsolver.cpp:95
mps_context
this struct holds the state of the mps computation
Definition: context.h:55
xmpsolve::PolynomialSolver::CPUTime
unsigned long int CPUTime()
CPUTime can be used to access the CPU time consumed by the last polynomial solved....
Definition: polynomialsolver.cpp:229
xmpsolve::PolynomialSolver::abortComputations
void abortComputations()
abortComputations kills every current computation.
Definition: polynomialsolver.cpp:223
mps_polynomial
Struct that represents an abstract polynomial. All the other real polynomial implementations (such as...
Definition: polynomial.h:111
xmpsolve::PolynomialSolver::solved
void solved()
Signal emitted when the computation ends.
Definition: polynomialsolver_moc.cpp:245
xmpsolve::RootsModel
Definition: rootsmodel.h:10
xmpsolve::PolynomialSolver::solvePolFileFromContent
int solvePolFileFromContent(QString content, mps_algorithm selected_algorithm, int required_digits, mps_output_goal goal=MPS_OUTPUT_GOAL_APPROXIMATE)
solvePolFileFromContent solves a .pol file given its ontent
Definition: polynomialsolver.cpp:64
xmpsolve::MPSolveWorker
Definition: mpsolveworker.h:10
xmpsolve::PolynomialSolver
The PolynomialSolver class aims to solve a polynomial given its coefficients or the content of the li...
Definition: polynomialsolver.h:22
xmpsolve::PolynomialSolver::workerExited
void workerExited()
Called when the thread solving the polynomial exits.
Definition: polynomialsolver.cpp:176
xmpsolve::PolynomialSolver::errorMessage
QString errorMessage()
errorMessage can be used to access the last error message, if solvePoly() returns -1.
Definition: polynomialsolver.cpp:170
xmpsolve::PolynomialSolver::solvePolFile
int solvePolFile(QString selectedFile, mps_algorithm selected_algorithm=MPS_ALGORITHM_SECULAR_GA, int required_digits=16, mps_output_goal goal=MPS_OUTPUT_GOAL_APPROXIMATE)
Solve a polynomial specified by a .pol file.
Definition: polynomialsolver.cpp:33