simplify method
Possible simplifications:
- sqrt(x^2) = x
- sqrt(0) = 0
- sqrt(1) = 1
Note: This simplification works only for real numbers and not for complex numbers.
Implementation
@override
Expression simplify() {
final Expression argSimpl = arg.simplify();
if (argSimpl is Power) {
final Expression exponent = argSimpl.second;
if (exponent is Number) {
if (exponent.value == 2) {
return argSimpl.first; // sqrt(x^2) = x
}
}
}
if (_isNumber(argSimpl, 0)) {
return Number(0); // sqrt(0) = 0
}
if (_isNumber(argSimpl, 1)) {
return Number(1); // sqrt(1) = 1
}
return Sqrt(argSimpl);
}