* Functions to optimize the choice of variable for multivariate GCD. */
/*
- * GiNaC Copyright (C) 1999-2015 Johannes Gutenberg University Mainz, Germany
+ * GiNaC Copyright (C) 1999-2021 Johannes Gutenberg University Mainz, Germany
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* @see get_symbol_stats */
struct sym_desc
{
+ /** Initialize symbol, leave other variables uninitialized */
+ sym_desc(const ex& s)
+ : sym(s), deg_a(0), deg_b(0), ldeg_a(0), ldeg_b(0), max_deg(0), max_lcnops(0)
+ { }
+
/** Reference to symbol */
ex sym;
/** Maximum number of terms of leading coefficient of symbol in both polynomials */
std::size_t max_lcnops;
- /** Commparison operator for sorting */
+ /** Comparison operator for sorting */
bool operator<(const sym_desc &x) const
{
if (max_deg == x.max_deg)
if (it.sym.is_equal(s)) // If it's already in there, don't add it a second time
return;
}
- sym_desc d;
- d.sym = s;
- v.push_back(d);
+ v.push_back(sym_desc(s));
}
// Collect all symbols of an expression (used internally by get_symbol_stats())