This error seems incorrect:
julia> (dec"0.1234")^-2
ERROR: DomainError with -2:
Cannot raise an integer x to a negative power -2.
Maybe define:
Base.:^(x::Decimal, p::Integer) = p >= 0 ? Base.power_by_squaring(x, p) : Base.power_by_squaring(inv(x), -p)
or alternatively use exp(p * log(abs(x))) * (isnegative(x) ? (-1)^isodd(p) : 1), not sure which is faster.
This error seems incorrect:
Maybe define:
or alternatively use
exp(p * log(abs(x))) * (isnegative(x) ? (-1)^isodd(p) : 1), not sure which is faster.