17 template<
typename Number>
21 std::vector<typename MultiplicationTable<Number>::Monomial> base = table.
getBase();
24 CARL_LOG_INFO(
"carl.thom.tarski",
"base size is " << base.size());
25 CARL_LOG_INFO(
"carl.thom.tarski",
"setting up the matrix now ...");
26 for(
const auto& entry : table) {
28 Number t = table.
trace(Qc);
29 for (
const auto& pair : entry.second.pairs) {
30 m(
long(pair.first),
long(pair.second)) = t;
56 CARL_LOG_INFO(
"carl.thom.tarski",
"... done setting up matrix.");
57 std::vector<Number> cp =
charPol(m);
60 for(
uint i = 1; i < cp.size(); i += 2) {
#define CARL_LOG_FUNC(channel, args)
#define CARL_LOG_TRACE(channel, msg)
#define CARL_LOG_INFO(channel, msg)
carl is the main namespace for the library.
Eigen::Matrix< Coeff, Eigen::Dynamic, Eigen::Dynamic > CoeffMatrix
std::size_t sign_variations(InputIterator begin, InputIterator end)
Counts the number of sign variations in the given object range.
int multivariateTarskiQuery(const MultivariatePolynomial< Number > &Q, const MultiplicationTable< Number > &table)
std::vector< Coeff > charPol(const CoeffMatrix< Coeff > &m)
BaseRepresentation< Number > multiply(const BaseRepresentation< Number > &f, const BaseRepresentation< Number > &g) const
BaseRepresentation< Number > reduce(const MultivariatePolynomial< Number > &p) const
Number trace(const BaseRepresentation< Number > &f) const
const std::vector< Monomial > & getBase() const noexcept