error with find_root when functions containing more than one built-in constant like %pi



> A motivation for simplifying %e^x --> exp(x) is that exp(x) is the
> more fundamental notion; that exp(x) = %e^x for some number %e
> is a theorem, not a definition.

Let's not get into philosophical discussions of what is fundamental or
not.   Maxima is a pragmatic system for doing mathematics. Whether we
want to represent a^b as exp(b*log(a)) (should that depend on whether
b is integral or rational or real? -- after all integer exponentiation
is more "fundamental" than real exponentiation) or exp(x) as %e^x or
for that matter sin(x) as a complex exponential in the end comes down
to what makes the most sense for users as well as implementors.

> > I would argue that the problem is in the numerical evaluation
> > (numer, float, and float() in particular), not with the %e^x notation.
>
> So long as %e^x is the preferred form, we will have to treat %e
> differently from other constants (or tolerate numeric values
> where there are none at present).

I do not believe that is true.

> Well, what the code looks like is a secondary consideration.
> How Maxima behaves from the user's perspective is the main question.

I agree.  How do you propose to explain to the user that exp(x) and
%e^x behave differenty?  That factor(exp(2*x)-1) doesn't work?  Would
integrate, diff, limit, taylor etc. take both exp and %e^ on input and
return a mix of exp and %e^, or would they insist on exp on both input
and output?

> > > Well, who knows. If the user writes ev(%e^x/x, numer), then it's
> > > no longer Maxima's problem if it's not useful.
> >
> > Huh? Why should the user expect ev(exp(x)/x,numer) to behave any differently?
>
> Because it exp(x)/x contains neither a literal number nor a
> symbolic constant (while %e^x/x contains a symbolic constant).

Huh?  So what?  If the user wants a numeric result, the user  should
get a numeric result regardless of how the expression is built.  Do
you think that sin(x+5/7*%pi),x=2/3,numer should not return a floating
point number because it contains a symbolic constant?

          -s