Subject: couple of questions about complex expressions
From: Barton Willis
Date: Wed, 26 Sep 2012 22:02:36 +0000
Unless, numer can evaluate a power expression to a binary64, I think numer should let the power be.
In binary 64, for example
1.0/3 = 6004799503160661/18014398509481984
the expression 2.0*(-1)^0.33333333333333 doesn't have a real branch. For a fixed number x,
the function z |--> x^z is a weird jumpy thing using the real branch rule. Using the principal
branch, it's better behaved.
The m1pbranch option tries to push all branch questions onto -1. I suppose the hope is the powers of -1\
will end the end all cancel.
________________________________________
From: Robert Dodier [robert.dodier at gmail.com]
Sent: Wednesday, September 26, 2012 15:17
To: Barton Willis
Cc: maxima at math.utexas.edu
Subject: Re: [Maxima] couple of questions about complex expressions
On Tue, Sep 25, 2012 at 4:38 AM, Barton Willis <willisb at unk.edu> wrote:
> It's a mess. I think domain : complex and m1pbranch : true is supposed to
> give the principle branch,
> and domain : real and m1pbranch : false the real branch, I think.
I wonder if the default values for domain and m1pbranch ought
to be complex and true, respectively. That would be more generally
correct, right? (for some value of "correct")
> But sometimes numer matters
> (%i9) block([domain : real, m1pbranch : false, numer : true], (-8)^(1/3));
> (%o9) 2.0*(-1)^0.33333333333333
I think converting exponents to floats under the influence of
numer is unfortunate. Presumably the idea of numer is to cause
an expression to evaluate to a number. Sometimes it is sufficient
to simply replace any constant value by a float, and then the
simplification machinery does the rest. But that's not a general
strategy, right? There is at least one case of widespread interest
for which that's not the best strategy, namely, fractional exponents.
I don't have an alternative for the current implementation of numer,
but it seems to be worth the trouble to think it through.
best,
Robert Dodier