Ejemplo n.º 1
0
Expression UExprPoly::eval(const Expression &x) const
{
    Expression ans = 0;
    for (const auto &p : get_poly().get_dict()) {
        Expression temp;
        temp = pow_ex(x, Expression(p.first));
        ans += p.second * temp;
    }
    return ans;
}
Ejemplo n.º 2
0
Expression UnivariatePolynomial::eval(const Expression &x) const
{
    Expression ans = 0;
    for (const auto &p : dict_) {
        Expression temp;
        temp = pow_ex(x, Expression(p.first));
        ans += p.second * temp;
    }
    return ans;
}
Ejemplo n.º 3
0
Expression MExprPoly::eval(
    std::map<RCP<const Basic>, Expression, RCPBasicKeyLess> &vals) const
{
    // TODO : handle missing values
    Expression ans(0);
    for (auto bucket : poly_.dict_) {
        Expression term = bucket.second;
        unsigned int whichvar = 0;
        for (auto sym : vars_) {
            term *= pow_ex(vals.find(sym)->second, bucket.first[whichvar]);
            whichvar++;
        }
        ans += term;
    }
    return ans;
}