Re: IsExact
- To: mathgroup at smc.vnet.net
- Subject: [mg80561] Re: [mg80523] IsExact
- From: DrMajorBob <drmajorbob at bigfoot.com>
- Date: Sun, 26 Aug 2007 03:03:15 -0400 (EDT)
- References: <20461890.1187966104775.JavaMail.root@m35>
- Reply-to: drmajorbob at bigfoot.com
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[3], 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]}; test = {c1, c2, c3, c4, c5, c6}; noReals = FreeQ[#, _Real] &; noReals /@ test {True, True, False, False, False, True} That's correct if the undefined variables are exact. Define them, and you may get different results. For c6, it also depends on whether x is defined before, or after, c6: Clear[x] c6 = {N[x]} noReals@c6 x = 7 noReals@c6 x = 7. noReals@c6 {x} True 7 True 7. False or x = 7 c6 = {N[x]}; noReals@c6 7 {7.} False Bobby On Fri, 24 Aug 2007 01:00:28 -0500, <carlos at colorado.edu> wrote: > 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[3],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. > > > -- = DrMajorBob at bigfoot.com