# Toppling the numeric tower

David C. Ullrich ullrich at math.okstate.edu
Fri Jul 27 10:09:07 EDT 2001

```On Thu, 26 Jul 2001 08:43:45 -0700, David Eppstein
<eppstein at ics.uci.edu> wrote:

>In article <DLW77.49367\$Cy.6275542 at news1.rdc1.az.home.com>,
> "Tim Hochberg" <tim.hochberg at ieee.org> wrote:
>
>> >    1. isnatural()
>> >    2. isintegral()
>> >    3. isrational()
>> >    4. isreal()
>> >    5. iscomplex()
>> >
>> >    a. isexact()
>>
>> This is too many. I would strip this down to
>>
>> A. iscomplex()
>> B. isexact()
>> C. isintegral()
>
>I have to say that this would be more convenient for situations such as
>defining your own extension of number types for, say, exact arithmetic in
>Q[sqrt(3)].  Or even better Q[sqrt(-3)].  I was wishing I was able to do
>this recently for a different project unrelated to Python, unfortunately
>the program I was using didn't make it easy to plug in your own number
>types...
>
>But a couple points of clarification:
>(1) is it safe to assume that isintegral() implies isexact()?
>(2) should isintegral() return true for algebraic integers that are not
>rational integers?

Of course not - this would introduce awesome confusion in many
for the sake of the needs of a small number. (Perhaps classes
could have a way to declare themselves as integral or exact or
whatever... then you could make _your_ algebraic integers integral.)

About whether isintegral should imply isexact: I dunno much
algebra. For the flavors of "algebraic integer" that seem dimly
familiar it seems like one could give an exact representation.
Is this true?

>--
>David Eppstein       UC Irvine Dept. of Information & Computer Science
>eppstein at ics.uci.edu http://www.ics.uci.edu/~eppstein/

David C. Ullrich

```