inline ex expand(const matrix & m, unsigned options = 0)
{ return m.expand(options); }
-inline bool has(const matrix & m, const ex & other)
-{ return m.has(other); }
-
inline ex eval(const matrix & m, int level = 0)
{ return m.eval(level); }
&& (is_ex_exactly_of_type(basis, symbol) || is_ex_exactly_of_type(basis, constant))) {
int exp = ex_to_numeric(exponent).to_int();
if (exp > 0)
- c.s << "(";
+ c.s << '(';
else {
exp = -exp;
if (is_of_type(c, print_csrc_cl_N))
c.s << "1.0/(";
}
print_sym_pow(c, ex_to_symbol(basis), exp);
- c.s << ")";
+ c.s << ')';
// <expr>^-1 is printed as "1.0/<expr>" or with the recip() function of CLN
} else if (exponent.compare(_num_1()) == 0) {
else
c.s << "1.0/(";
basis.print(c);
- c.s << ")";
+ c.s << ')';
// Otherwise, use the pow() or expt() (CLN) functions
} else {
else
c.s << "pow(";
basis.print(c);
- c.s << ",";
+ c.s << ',';
exponent.print(c);
- c.s << ")";
+ c.s << ')';
}
} else {
c.s << "sqrt(";
basis.print(c);
if (is_of_type(c, print_latex))
- c.s << "}";
+ c.s << '}';
else
- c.s << ")";
+ c.s << ')';
} else {
if (precedence() <= level) {
if (is_of_type(c, print_latex))
c.s << "(";
}
basis.print(c, precedence());
- c.s << "^";
+ c.s << '^';
+ if (is_of_type(c, print_latex))
+ c.s << '{';
exponent.print(c, precedence());
+ if (is_of_type(c, print_latex))
+ c.s << '}';
if (precedence() <= level) {
if (is_of_type(c, print_latex))
c.s << ")}";
else
- c.s << ")";
+ c.s << ')';
}
}
}