MathGroup Archive 2010

[Date Index] [Thread Index] [Author Index]

Search the Archive

Re: an issue of consistency

  • To: mathgroup at
  • Subject: [mg112382] Re: an issue of consistency
  • From: "David Park" <djmpark at>
  • Date: Sat, 11 Sep 2010 05:46:35 -0400 (EDT)

I would say it is not only inconsistent, but an outright bug because
graphics routinely converts exact expressions to approximate numbers and
Root objects are supposed to be exact.

Sometimes this occurs simply by mixing the exact expression with an
approximate number as in the following (which works):

b = Root[#1^5 - # + Log[2] &, 1];
Plot[b + x, {x, 0, 2}]

But when an exact number appears in a list unmixed with an approximate
number, such as in Point, Line, Rectangle or Circle, then it doesn't get
converted by the mixing mechanism and WRI must apply N (or something
equivalent) in their graphics algorithms. It is inexplicable and probably
some kind of subtle bug that b doesn't get converted. Other kinds of exact
numbers are converted.

In numerical graphics algorithms it's a bug.

David Park
djmpark at  

From: Andrzej Kozlowski [mailto:akoz at] 

This post is about a mild dispute I have been having with Wolfram's 
technical support. It concerns behaviour that I see as inconsistent and 
Technical Support seems to insist otherwise. I would not claim that it 
actually represents a "bug" but I discovered it in a "real life" 
situation, it was unexpected and took a while to see what the cause of 
it was.
In any case, I am not writing to "complain", but to find out if anyone 
can justify the behaviour that I am going to describe as "consistent". 
Technical Support thinks it is, but I can't understand their reasoning.

Consider the two "root object" numbers:

a = Root[#1^5 - # + 1 &, 1];
b = Root[#1^5 - # + Log[2] &, 1];

The first is an algebraic number, the second is not, but they are both 
real numbers which can be computed to arbitrary precision, e.g.

 N[{a, b}, 10]


O.K. now compare this:

Graphics[Point[{{Root[#1^5 - # + 1 &, 1], 0}}]]

and this:

Graphics[Point[{{Root[#1^5 - # + Log[2] &, 1], 0}}]]

In the first case Graphics forces N to be automatically applied while in 
the second case one needs to do so manually:

Graphics[Point[{{Root[#1^5 - # + Log[2] &, 1], 0}}]]//N

This seems to me to be inconsistent, or at least I do not know of nay 
obvious reason why the first number being algebraic and the second 
number not being so should make any difference to how they are treated 
by Graphics. Technical Support claims otherwise but is unable to provide 
a reason that I can understand. Can anyone else?

Andrzej Kozlowski

  • Prev by Date: Re: drawing polygon diagonals
  • Next by Date: Re: Display Workspace
  • Previous by thread: Re: an issue of consistency
  • Next by thread: Re: an issue of consistency