Mathematica 9 is now available
Services & Resources / Wolfram Forums
-----
 /
MathGroup Archive
1998
*January
*February
*March
*April
*May
*June
*July
*August
*September
*October
*November
*December
*Archive Index
*Ask about this page
*Print this page
*Give us feedback
*Sign up for the Wolfram Insider

MathGroup Archive 1998

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

Search the Archive

RE: Union[{0},{0.}] = {0,0.}?

  • To: mathgroup at smc.vnet.net
  • Subject: [mg12706] RE: [mg12662] Union[{0},{0.}] = {0,0.}?
  • From: Ersek_Ted%PAX1A at mr.nawcad.navy.mil
  • Date: Wed, 3 Jun 1998 02:20:58 -0400
  • Sender: owner-wri-mathgroup at wolfram.com

farr at brown.edu    wrote:
|
|Union[{0},{0.}] = {0,0.}.
|
|Why?
|
|I would like the above to return only {0}. |
|The root of the problem is that Mathematica thinks they are the same: |
|SameQ[{0},{0.}] = False
|
|How can I get around this?  The following doesn't help either. |
|Union[{ N[0] },{0.}] = {0,0.}
|
|

You can specify a SameTest to get the result you want. The default
(Automatic) is ambiguous.  Based on the results you get it seems  like
the default (Automatic) is actually (SameQ).  Wouldn't it be nice if it
would simply say
Out[1]= {SameTest\[Rule]SameQ}   ??


In[1]:=
Options[Union]

Out[1]=
{SameTest\[Rule]Automatic}

____________________________________

The (SameTest) below will do what you want.

In[2]:=
compare[x_,y_]:=
    If[ x===y || (x===0&&y===0.0) || (x===0.0&&y===0),
    True, False]


In[3]:=
Clear[x,y];
Union[ {1, 0.0, 2, x, 0, 0, 1, y, 2, 2, 1, 0.0},  SameTest->compare ]

Out[3]=
{0,1,2,x,y}


Ted Ersek



  • Prev by Date: Finite Element Code in Mathematica
  • Next by Date: RE: Comparison Error. Is ther
  • Previous by thread: Re: Union[{0},{0.}] = {0,0.}?
  • Next by thread: Re: Union[{0},{0.}] = {0,0.}?