🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: pl.comp.lang.python
Article #21400

Re: przypisac nieskonczonosc

#21400
From: Seweryn Habdank-Wojewódzki
Date: Tue, 16 Oct 2007 13:07
54 lines
2849 bytes
Witam

Bart Ogryczak wrote:

>> To jest raczej problem implementacji i reprezentacji tekstowej.
> 
> Nie tylko tekstowej. Spróbuj zrobic z tego binarne pikle.

Nie spróbuję, bo nie znam się :-).
 
>> W każdym razie w C używasz funkcji isnan(x) lub isinf(x). Te funkcje
>> zwracają stosowne wartości.
> 
>> isnan(x) => 0 jeśli x nie jest NaN. 1 jesli x jest NaN.
>>
>> isinf(x) => -1 jeśli x jest -Inf, 1 jeśli x jest Inf, 0 w przeciwnym
>> przypadku.
> 
> Ale jak to pomaga w stworzeniu stalej?

W C99 masz w math.h co następuje:

/* MACROS */
#define HUGE_VAL <double rvalue>
#define HUGE_VALF <float rvalue> [added with C99]
#define HUGE_VALL <long double rvalue> [added with C99]

#define INFINITY <float rvalue> [added with C99]
#define NAN <float rvalue> [added with C99]

To jest respektowane przez sensownych producentów kompilatorów.

Tak więc jeśli zależy komuś na NAN i  INFINITY, to może sobie spokojnie to
zawrzeć w programie. Może z poziomu Pythona wołać sobie podprocedurki np.

set_inf(), które zamienią jakiś obiekt Pythona na wartość INF.
set_nan(), które zamienią jakiś obiekt Pythona na wartość NAN.

A z powrotem trzeba reagować identycznie, czyli trzeba wiedzieć kiedy C
wypluwa INF lub NAN więc Python może dostać jakiś obiekt który reprezentuje
te wartości w silniku C. Jeśli da się wydłubać double z wartości zmienno
przecinkowej w Pythonie, to OP może przekazywać to do procedurek w C, one
sobie z tym poradzą :-).

Problem jest dla mnie odległy bo w Pythonie nie używałem nigdy inf i nan, a
w C są te wartości stosuję od dłuższego czasu z powodzeniem.

Zadanie pisania samemu NAN i INFINITY nie jest banalne (choć nie trudne).

Pozdrawiam.

-- 
|\/\/|   Seweryn Habdank-Wojewódzki
 \/\/
Technical Details
Message-ID: <ff2cc5$vg0$1@news.vectranet.pl>
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!newsfeed.gazeta.pl!news.vectranet.pl!not-for-mail
References: <20071016103416.e69a7bc7.sulsa@dontmail.me> <1192526464.122236.16990@v23g2000prn.googlegroups.com> <ff21gb$l2i$1@news.vectranet.pl> <1192533601.905010.17440@y27g2000pre.googlegroups.com> <ff28jc$rkt$1@news.vectranet.pl> <1192538475.635966.79370@z24g2000prh.googlegroups.com>

Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!newsfeed.gazeta.pl!news.vectranet.pl!not-for-mail
From: Seweryn Habdank-Wojewódzki <shw_mail@wp.pl>
Newsgroups: pl.comp.lang.python
Subject: Re: przypisac nieskonczonosc
Date: Tue, 16 Oct 2007 15:07:44 +0200
Organization: VectraNET - http://www.vectranet.pl
Lines: 55
Message-ID: <ff2cc5$vg0$1@news.vectranet.pl>
References: <20071016103416.e69a7bc7.sulsa@dontmail.me> <1192526464.122236.16990@v23g2000prn.googlegroups.com> <ff21gb$l2i$1@news.vectranet.pl> <1192533601.905010.17440@y27g2000pre.googlegroups.com> <ff28jc$rkt$1@news.vectranet.pl> <1192538475.635966.79370@z24g2000prh.googlegroups.com>
Reply-To: shw_mail@wp.pl
NNTP-Posting-Host: 82.139.21.12
Mime-Version: 1.0
X-Trace: news.vectranet.pl 1192539333 32256 82.139.21.12 (16 Oct 2007 12:55:33 GMT)
X-Complaints-To: usenet@news.vectranet.pl
NNTP-Posting-Date: Tue, 16 Oct 2007 12:55:33 +0000 (UTC)
User-Agent: KNode/0.10.5
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit