       Re: IsExact

• To: mathgroup at smc.vnet.net
• Subject: [mg80550] Re: [mg80523] IsExact
• From: Carl Woll <carlw at wolfram.com>
• Date: Sun, 26 Aug 2007 02:57:34 -0400 (EDT)
• References: <200708240600.CAA16662@smc.vnet.net>

>Let c be a 1D list of scalar coefficients, numeric or symbolic,
>real or complex. No entry is a list. Examples:
>
>ClearAll[n,x,y,a,a1,a2,b,r];
>c1={1,2*I/5,E^(25*n),3/4+I,Cos[n*x*Pi],y*Sqrt[-5]};
>c2={a/b,r+2/5,a1,,,,,a2};
>c3={1.5,0,Sqrt,0,4};
>c4={(r+0.5)/3,3/7,3+Sin[4*x*y]};
>c5={1,2,3,4,5,6}+0.0;
>c6={N[x]};
>
>I need a function IsExact[c] that returns False if
>at least one entry of c is floating, or if it contains one
>floating number; else True.  For example, tests on
>c1 and c2  should return True; the others False.
>
>Any simple way to implement this? It should work on V.5.
>Thanks.
>
>
>
Use Precision:

IsExact[expr_] := Precision[expr]===Infinity

In:= IsExact /@ {c1, c2, c3, c4, c5, c6}

Out= {True,True,False,False,False,True}

I don't know why you expect {N[x]} to not be exact. N[x] evaluates to x,
and {x} doesn't have any approximate numbers in it.

Carl Woll
Wolfram Research

• References:
• IsExact