04-29-2016, 06:28 AM
Howdy,
I stumbled across a thread a while back discussing the following well documented behavior on the 35s
Obviously if 'x' can be expressed as a rational number and if both the numerator and the denominator are both odd, then the sign of y is irrelevant and it will carry through the exponentiation.
To this end, I wrote a program that would take 'x' and 'y' and, if y < 0 and FP(x) > 0, then it would try to find an 'acceptable' rational representation of 'x' that had an odd numerator and denominator to yield a negative real result. Otherwise, it gives up and simply produces the answer in complex form. 'Acceptable' answers are given in the form of a user provided delta that that ratio must be within for the approximation to be accepted.
My question, is... is there a better way than brute force 'rationalization' to determine if an exponent will yield a real (non-imaginary) answer. I seem to recall a method using natural logs, but I don't know if it would get me closer to the question of real-vs-imaginary results.
PS... what I ended up with is effectively
CORRECTION: Made mantissa complex.
I stumbled across a thread a while back discussing the following well documented behavior on the 35s
Code:
2
+/-
3
y^x
LASTx
1/x
y^x
**INVALID y^x
Obviously if 'x' can be expressed as a rational number and if both the numerator and the denominator are both odd, then the sign of y is irrelevant and it will carry through the exponentiation.
To this end, I wrote a program that would take 'x' and 'y' and, if y < 0 and FP(x) > 0, then it would try to find an 'acceptable' rational representation of 'x' that had an odd numerator and denominator to yield a negative real result. Otherwise, it gives up and simply produces the answer in complex form. 'Acceptable' answers are given in the form of a user provided delta that that ratio must be within for the approximation to be accepted.
My question, is... is there a better way than brute force 'rationalization' to determine if an exponent will yield a real (non-imaginary) answer. I seem to recall a method using natural logs, but I don't know if it would get me closer to the question of real-vs-imaginary results.
PS... what I ended up with is effectively
Code:
Given:
x = n/d where n and d are odd
y where y < 0
f(x,y) = abs((y+0i)^(n/d)) * -1 ; where n is odd
f(x,y) = abs((y+0i)^(n/d)) ; where n is even