Article View: pl.comp.lang.python
Article #21400Re: przypisac nieskonczonosc
From: Seweryn Habdank-Wojewódzki
Date: Tue, 16 Oct 2007 13:07
Date: Tue, 16 Oct 2007 13:07
54 lines
2849 bytes
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-mailReferences:
<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