Gmail Calendar Documents Reader Web more »
Recently Visited Groups | Help | Sign in
Google Groups Home
Message from discussion Como funciona um NaN?

View parsed - Show only message text

Received: by 10.90.26.9 with SMTP id 9mr5732422agz.26.1230864460264;
        Thu, 01 Jan 2009 18:47:40 -0800 (PST)
Return-Path: <kump...@gmail.com>
Received: from mail-ew0-f20.google.com (mail-ew0-f20.google.com [209.85.219.20])
        by mx.google.com with ESMTP id 22si10914674yxr.10.2009.01.01.18.47.38;
        Thu, 01 Jan 2009 18:47:39 -0800 (PST)
Received-SPF: pass (google.com: domain of kump...@gmail.com designates 209.85.219.20 as permitted sender) client-ip=209.85.219.20;
Authentication-Results: mx.google.com; spf=pass (google.com: domain of kump...@gmail.com designates 209.85.219.20 as permitted sender) smtp.mail=kump...@gmail.com; dkim=pass (test mode) header...@gmail.com
Received: by ewy13 with SMTP id 13so6673372ewy.23
        for <ccppbrasil@googlegroups.com>; Thu, 01 Jan 2009 18:47:38 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=gamma;
        h=domainkey-signature:received:received:message-id:date:from:to
         :subject:in-reply-to:mime-version:content-type:references;
        bh=HYumk4+3HocbqxYXXCqK7MEqleSDlaOzc1yKRqbUQnM=;
        b=M62ziEHeN+abpoBDHXfavd3qaVPRy/tuJpDsRFLOHgovhFYuZZ2sVGg+yVy0wNibL1
         K7MovVWhnTqLpG99o/cNwn2i0OvuLyqLia7nYjmRTnK4O6aX2BCZoCG1OAllMromYfhu
         G8NdgAsWElNM7j/g0E53M0LbVg0f6Kl4T1VFw=
DomainKey-Signature: a=rsa-sha1; c=nofws;
        d=gmail.com; s=gamma;
        h=message-id:date:from:to:subject:in-reply-to:mime-version
         :content-type:references;
        b=xczDUQ33ncynFgnKthdUEAC6/IQpk2Y8p379Dfn+qquFKLnq9mnr4CIkRb79DsvlLz
         88BE7mU9gwZUJVYsIH64Jm1hSB3oIHnKQoAZlLS7K4fGwgM3osvVUtjKc2l20g1VQshS
         FZyLk7q6aoj+tOxKKgzAhfrd1XZ+MgwkuDbsc=
Received: by 10.210.17.14 with SMTP id 14mr6636794ebq.91.1230864458326;
        Thu, 01 Jan 2009 18:47:38 -0800 (PST)
Received: by 10.210.59.10 with HTTP; Thu, 1 Jan 2009 18:47:38 -0800 (PST)
Message-ID: <8cca42d80901011847j5131e912kf12eb9515e009fc@mail.gmail.com>
Date: Fri, 2 Jan 2009 00:47:38 -0200
From: "Rodrigo Kumpera" <kump...@gmail.com>
To: ccppbrasil@googlegroups.com
Subject: Re: [ccppbrasil] Como funciona um NaN?
In-Reply-To: <a684d0100901011618j6b83ce8jc50caefa8c3a8...@mail.gmail.com>
Mime-Version: 1.0
Content-Type: multipart/alternative;
	boundary="----=_Part_190979_1990527.1230864458312"
References: <a684d0100901011618j6b83ce8jc50caefa8c3a8...@mail.gmail.com>

------=_Part_190979_1990527.1230864458312
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: quoted-printable

NaN significa "Not a Number" e, como o nome sugere, serve para representar
o conjunto de valores que n=E3o possuem representa=E7=E3o num=E9rica com FP=
.

N=FAmeros imagin=E1rios s=E3o um exemplo, sqrt (-1) retorna NaN. Outro =E9 =
dividir
zero ou +/- infinito por zero[1].

Um NaN por defini=E7=E3o n=E3o =E9 igual a nenhum outro n=FAmero, inclusive=
 a si
pr=F3prio.
Isso se deve a sua caracter=EDstica mon=E1dica, na qual qualquer opera=E7=
=E3o com um
argumento
NaN resulta em NaN. Seu comportamento =E9 an=E1logo a m=F4nada Maybe do Has=
kell.

Entender como NaN funciona =E9 fundamental para produzir algoritmos num=E9r=
icos
corretos com FP.


[1] Dividir outros n=FAmeros por zero resulta em +/- inifinito com ieee 754=
.


On Thu, Jan 1, 2009 at 10:18 PM, Rodrigo Strauss <rodr...@1bit.com.br>wrote=
:

>
> Eu sei que existe Wikipedia, mas me parece uma boa pergunta de ano
> novo. Eu sei que =E9 primeiro de janeiro, mas todo dia =E9 dia de escovar
> bits. Ah, feliz ano novo a todos.
>
> Estou analizando o Protocol Buffer do Google
> (http://code.google.com/p/protobuf/) e vi um c=F3digo aparentemente
> bizarro:
>
> <code>
> //
> // ver
> http://www.google.com/codesearch/p?hl=3Den#WTeibokF6gE/trunk/src/google/p=
rotobuf/stubs/strutil.cc&q=3Dstrutil.cc&l=3D57
> //
> inline bool IsNaN(double value) {
>  // NaN is never equal to anything, even itself.
>  return value !=3D value;
> }
> </code>
>
> Isso me parece bem paradoxal. Qual a explica=E7=E3o para isso?
>
> Rodrigo Strauss
> http://www.1bit.com.br
> PS: como n=E3o temos o lameless filter do Slashdot, aqui vai: 2009 first
> post!!!
>
> >
>

------=_Part_190979_1990527.1230864458312
Content-Type: text/html; charset=ISO-8859-1
Content-Transfer-Encoding: quoted-printable

NaN significa &quot;Not a Number&quot; e, como o nome sugere, serve para re=
presentar<br>o conjunto de valores que n=E3o possuem representa=E7=E3o num=
=E9rica com FP.<br><br>N=FAmeros imagin=E1rios s=E3o um exemplo, sqrt (-1) =
retorna NaN. Outro =E9 dividir<br>
zero ou +/- infinito por zero[1].<br><br>Um NaN por defini=E7=E3o n=E3o =E9=
 igual a nenhum outro n=FAmero, inclusive a si pr=F3prio.<br>Isso se deve a=
 sua caracter=EDstica mon=E1dica, na qual qualquer opera=E7=E3o com um argu=
mento<br>NaN resulta em NaN. Seu comportamento =E9 an=E1logo a m=F4nada May=
be do Haskell.<br>
<br>Entender como NaN funciona =E9 fundamental para produzir algoritmos num=
=E9ricos corretos com FP.<br><br><br>[1] Dividir outros n=FAmeros por zero =
resulta em +/- inifinito com ieee 754.<br><br><br><div class=3D"gmail_quote=
">On Thu, Jan 1, 2009 at 10:18 PM, Rodrigo Strauss <span dir=3D"ltr">&lt;<a=
 href=3D"mailto:rodr...@1bit.com.br">rodr...@1bit.com.br</a>&gt;</span> wro=
te:<br>
<blockquote class=3D"gmail_quote" style=3D"border-left: 1px solid rgb(204, =
204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;"><br>
Eu sei que existe Wikipedia, mas me parece uma boa pergunta de ano<br>
novo. Eu sei que =E9 primeiro de janeiro, mas todo dia =E9 dia de escovar<b=
r>
bits. Ah, feliz ano novo a todos.<br>
<br>
Estou analizando o Protocol Buffer do Google<br>
(<a href=3D"http://code.google.com/p/protobuf/" target=3D"_blank">http://co=
de.google.com/p/protobuf/</a>) e vi um c=F3digo aparentemente<br>
bizarro:<br>
<br>
&lt;code&gt;<br>
//<br>
// ver <a href=3D"http://www.google.com/codesearch/p?hl=3Den#WTeibokF6gE/tr=
unk/src/google/protobuf/stubs/strutil.cc&amp;q=3Dstrutil.cc&amp;l=3D57" tar=
get=3D"_blank">http://www.google.com/codesearch/p?hl=3Den#WTeibokF6gE/trunk=
/src/google/protobuf/stubs/strutil.cc&amp;q=3Dstrutil.cc&amp;l=3D57</a><br>

//<br>
inline bool IsNaN(double value) {<br>
 &nbsp;// NaN is never equal to anything, even itself.<br>
 &nbsp;return value !=3D value;<br>
}<br>
&lt;/code&gt;<br>
<br>
Isso me parece bem paradoxal. Qual a explica=E7=E3o para isso?<br>
<br>
Rodrigo Strauss<br>
<a href=3D"http://www.1bit.com.br" target=3D"_blank">http://www.1bit.com.br=
</a><br>
PS: como n=E3o temos o lameless filter do Slashdot, aqui vai: 2009 first po=
st!!!<br>
<br>
<br>
</blockquote></div><br>

------=_Part_190979_1990527.1230864458312--


Create a group - Google Groups - Google Home - Terms of Service - Privacy Policy
©2009 Google