Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > comp.lang.c > #9454 > unrolled thread
| Started by | fl <rxjwg98@gmail.com> |
|---|---|
| First post | 2011-08-15 20:19 -0700 |
| Last post | 2011-08-16 12:26 -0700 |
| Articles | 19 — 11 participants |
Back to article view | Back to comp.lang.c
How the computer identify an NaN? fl <rxjwg98@gmail.com> - 2011-08-15 20:19 -0700
Re: How the computer identify an NaN? Ben Bacarisse <ben.usenet@bsb.me.uk> - 2011-08-16 04:33 +0100
Re: How the computer identify an NaN? fl <rxjwg98@gmail.com> - 2011-08-15 21:45 -0700
Re: How the computer identify an NaN? Robert Wessel <robertwessel2@yahoo.com> - 2011-08-16 00:45 -0500
Re: How the computer identify an NaN? "Heinrich Wolf" <invalid@invalid.invalid> - 2011-08-16 08:51 +0200
Re: How the computer identify an NaN? bert <bert.hutchings@btinternet.com> - 2011-08-16 02:01 -0700
Re: How the computer identify an NaN? "Heinrich Wolf" <invalid@invalid.invalid> - 2011-08-16 13:04 +0200
Re: How the computer identify an NaN? jt@toerring.de (Jens Thoms Toerring) - 2011-08-16 11:28 +0000
Re: How the computer identify an NaN? jt@toerring.de (Jens Thoms Toerring) - 2011-08-16 11:31 +0000
Re: How the computer identify an NaN? "Heinrich Wolf" <invalid@invalid.invalid> - 2011-08-16 14:08 +0200
Re: How the computer identify an NaN? Ben Bacarisse <ben.usenet@bsb.me.uk> - 2011-08-16 13:37 +0100
Re: How the computer identify an NaN? jt@toerring.de (Jens Thoms Toerring) - 2011-08-16 21:13 +0000
Re: How the computer identify an NaN? "Heinrich Wolf" <invalid@invalid.invalid> - 2011-08-16 14:17 +0200
Re: How the computer identify an NaN? "Heinrich Wolf" <invalid@invalid.invalid> - 2011-08-16 13:22 +0200
Re: How the computer identify an NaN? Angel <angel+news@spamcop.net> - 2011-08-16 15:17 +0000
Re: How the computer identify an NaN? James Kuyper <jameskuyper@verizon.net> - 2011-08-16 08:42 -0400
Re: How the computer identify an NaN? Stephen Sprunk <stephen@sprunk.org> - 2011-08-16 09:25 -0500
Re: How the computer identify an NaN? Joe Pfeiffer <pfeiffer@cs.nmsu.edu> - 2011-08-16 12:37 -0600
Re: How the computer identify an NaN? Keith Thompson <kst-u@mib.org> - 2011-08-16 12:26 -0700
| From | fl <rxjwg98@gmail.com> |
|---|---|
| Date | 2011-08-15 20:19 -0700 |
| Subject | How the computer identify an NaN? |
| Message-ID | <495e8c9c-924e-4cf7-9c54-4b321d92335b@x2g2000yql.googlegroups.com> |
Hi,
I encounter NaN often in Matlab. Recently, I use Matlab to generate
some code for an embedded project. I get the following source code
from Matlab below dot line.
I don't understand the line:
c_y = (b_u != b_u);
Could you explain it to me? More specific, what result can get
from: (b_u != b_u);?
How does it relate to NaN?
Thanks a lot.
BTW, real_T and boolean_T just like int and bool in C I think.
................................
real_T b_u0;
real_T b_u;
boolean_T c_y;
b_u0 = (real_T)Idata;
b_u = b_u0;
c_y = (b_u != b_u);
if (c_y) {
d_y = rtNaN;
} else {
d_y = b_u0 * b_u0;
}
.............
[toc] | [next] | [standalone]
| From | Ben Bacarisse <ben.usenet@bsb.me.uk> |
|---|---|
| Date | 2011-08-16 04:33 +0100 |
| Message-ID | <0.36e777a2a8fe4a401bbe.20110816043350BST.87vctydo81.fsf@bsb.me.uk> |
| In reply to | #9454 |
fl <rxjwg98@gmail.com> writes: > I encounter NaN often in Matlab. Recently, I use Matlab to generate > some code for an embedded project. I get the following source code > from Matlab below dot line. > > I don't understand the line: > c_y = (b_u != b_u); > > Could you explain it to me? More specific, what result can get > from: (b_u != b_u);? The != operator always gives 0 or 1 depending on the result of the comparison. It's a not-equals comparison so it is asking if b_u is not equal to itself. A NaNs won't compare equal to anything -- even another NaN, so b_u != b_u is a way to ask if b_u is a NaN. <snip> -- Ben.
[toc] | [prev] | [next] | [standalone]
| From | fl <rxjwg98@gmail.com> |
|---|---|
| Date | 2011-08-15 21:45 -0700 |
| Message-ID | <9d47f418-5533-414f-b9da-15385ce9c442@c19g2000yqe.googlegroups.com> |
| In reply to | #9456 |
On 15 août, 23:33, Ben Bacarisse <ben.use...@bsb.me.uk> wrote: > fl <rxjw...@gmail.com> writes: > > I encounter NaN often in Matlab. Recently, I use Matlab to generate > > some code for an embedded project. I get the following source code > > from Matlab below dot line. > > > I don't understand the line: > > c_y = (b_u != b_u); > > > Could you explain it to me? More specific, what result can get > > from: (b_u != b_u);? > > The != operator always gives 0 or 1 depending on the result of the > comparison. It's a not-equals comparison so it is asking if b_u is not > equal to itself. A NaNs won't compare equal to anything -- even another > NaN, so b_u != b_u is a way to ask if b_u is a NaN. > > <snip> > -- > Ben. If NaN won't equal to anything, any number will not equal to itself either. I still do not understand b_u != b_u; ex: b_u = 3; (b_u!=b_u) ==> 1, right? Thanks,
[toc] | [prev] | [next] | [standalone]
| From | Robert Wessel <robertwessel2@yahoo.com> |
|---|---|
| Date | 2011-08-16 00:45 -0500 |
| Message-ID | <210k47h87htf2p82cfn9gg1oudfc0875tj@4ax.com> |
| In reply to | #9457 |
On Mon, 15 Aug 2011 21:45:19 -0700 (PDT), fl <rxjwg98@gmail.com> wrote: >On 15 août, 23:33, Ben Bacarisse <ben.use...@bsb.me.uk> wrote: >> fl <rxjw...@gmail.com> writes: >> > I encounter NaN often in Matlab. Recently, I use Matlab to generate >> > some code for an embedded project. I get the following source code >> > from Matlab below dot line. >> >> > I don't understand the line: >> > c_y = (b_u != b_u); >> >> > Could you explain it to me? More specific, what result can get >> > from: (b_u != b_u);? >> >> The != operator always gives 0 or 1 depending on the result of the >> comparison. It's a not-equals comparison so it is asking if b_u is not >> equal to itself. A NaNs won't compare equal to anything -- even another >> NaN, so b_u != b_u is a way to ask if b_u is a NaN. >> >> <snip> >> -- >> Ben. > >If NaN won't equal to anything, any number will not equal to itself >either. I still do not understand b_u != b_u; > >ex: >b_u = 3; >(b_u!=b_u) ==> 1, right? IEEE NaNs are special in a lot of ways. As Ben said, a NaN does not compare equal to anything, even another NaN. An IEEE FP comparison is *not* a direct comparison of the bit patterns of the two operands. A NaN compared to anything else (including another NaN) also has no order (IOW, "NaN > 3", "NaN == 3" and "NaN < 3" are *all* false, while "NaN != 3" is true). The "if (f != f)" trick works on many implementations using IEEE math (all that I'm aware of), but it would probably be safer to use the isnan() function provided by many implementations (and required by C99 - where it's a macro).
[toc] | [prev] | [next] | [standalone]
| From | "Heinrich Wolf" <invalid@invalid.invalid> |
|---|---|
| Date | 2011-08-16 08:51 +0200 |
| Message-ID | <j2d41i$krg$1@news.m-online.net> |
| In reply to | #9457 |
"fl" <rxjwg98@gmail.com> schrieb im Newsbeitrag news:9d47f418-5533-414f-b9da-15385ce9c442@c19g2000yqe.googlegroups.com... ... If NaN won't equal to anything, any number will not equal to itself either. I still do not understand b_u != b_u; ex: b_u = 3; (b_u!=b_u) ==> 1, right? Thanks, Have you tried? I doubt that. Heiner
[toc] | [prev] | [next] | [standalone]
| From | bert <bert.hutchings@btinternet.com> |
|---|---|
| Date | 2011-08-16 02:01 -0700 |
| Message-ID | <0e6e63f1-e63e-4e52-9db5-ec1807044878@glegroupsg2000goo.googlegroups.com> |
| In reply to | #9459 |
On Tuesday, August 16, 2011 7:51:01 AM UTC+1, Heinrich Wolf wrote: > "fl" <rxj...@gmail.com> schrieb im Newsbeitrag > ... > If NaN won't equal to anything, any number will not equal to itself > either. I still do not understand b_u != b_u; > > ex: > b_u = 3; > (b_u!=b_u) ==> 1, right? > > Thanks, > > Have you tried? > I doubt that. > > Heiner You should listen more carefully when people who have a complete understanding of some topic try to explain it to you. Where 'b' is a real, (b != b) is 1 or 0, depending strictly on whether the current value of 'b' is a NaN, or is not a NaN. --
[toc] | [prev] | [next] | [standalone]
| From | "Heinrich Wolf" <invalid@invalid.invalid> |
|---|---|
| Date | 2011-08-16 13:04 +0200 |
| Message-ID | <j2ditd$t3d$1@news.m-online.net> |
| In reply to | #9460 |
"bert" <bert.hutchings@btinternet.com> schrieb im Newsbeitrag news:0e6e63f1-e63e-4e52-9db5-ec1807044878@glegroupsg2000goo.googlegroups.com... ... >> ex: >> b_u = 3; >> (b_u!=b_u) ==> 1, right? >> >> Thanks, >> >> Have you tried? >> I doubt that. >> >> Heiner > > You should listen more carefully when > people who have a complete understanding > of some topic try to explain it to you. > > Where 'b' is a real, (b != b) is 1 or 0, > depending strictly on whether the current > value of 'b' is a NaN, or is not a NaN. > -- pardon? I noticed that b_u is a real which results in 3.0 by assignment; Why should (3.0 != 3.0) result in 1?
[toc] | [prev] | [next] | [standalone]
| From | jt@toerring.de (Jens Thoms Toerring) |
|---|---|
| Date | 2011-08-16 11:28 +0000 |
| Message-ID | <9av2j8F9heU3@mid.uni-berlin.de> |
| In reply to | #9463 |
Heinrich Wolf <invalid@invalid.invalid> wrote:
> "bert" <bert.hutchings@btinternet.com> schrieb im Newsbeitrag
> news:0e6e63f1-e63e-4e52-9db5-ec1807044878@glegroupsg2000goo.googlegroups.com...
> ...
> >> ex:
> >> b_u = 3;
> >> (b_u!=b_u) ==> 1, right?
> >>
> >> Have you tried?
> >> I doubt that.
> >>
> > You should listen more carefully when
> > people who have a complete understanding
> > of some topic try to explain it to you.
> >
> > Where 'b' is a real, (b != b) is 1 or 0,
> > depending strictly on whether the current
> > value of 'b' is a NaN, or is not a NaN.
> > --
> pardon?
> I noticed that b_u is a real which results in 3.0 by assignment;
> Why should (3.0 != 3.0) result in 1?
You snipped the most relevant part of your own post, i.e.
>>> If NaN won't equal to anything, any number will not equal to itself
>>> either. I still do not understand b_u != b_u;
and the statement made by "bert" was that
b != b
evaluates to 1 if b is not-NaN (e.g. for b set to 3) but to 0
if b is NaN (always assuming that IEEE floating point represen-
tation is used).
The claim you made (and then snipped in your reply) is wrong
(that's not a question of logic but due to the way things are
required by the IEEE standard for floating point handling) and
that's what the "Have you tried" was refering to.
Regards, Jens
--
\ Jens Thoms Toerring ___ jt@toerring.de
\__________________________ http://toerring.de
[toc] | [prev] | [next] | [standalone]
| From | jt@toerring.de (Jens Thoms Toerring) |
|---|---|
| Date | 2011-08-16 11:31 +0000 |
| Message-ID | <9av2ojF9heU4@mid.uni-berlin.de> |
| In reply to | #9468 |
Jens Thoms Toerring <jt@toerring.de> wrote:
> Heinrich Wolf <invalid@invalid.invalid> wrote:
> > "bert" <bert.hutchings@btinternet.com> schrieb im Newsbeitrag
> > news:0e6e63f1-e63e-4e52-9db5-ec1807044878@glegroupsg2000goo.googlegroups.com...
> > ...
> > >> ex:
> > >> b_u = 3;
> > >> (b_u!=b_u) ==> 1, right?
> > >>
> > >> Have you tried?
> > >> I doubt that.
> > >>
> > > You should listen more carefully when
> > > people who have a complete understanding
> > > of some topic try to explain it to you.
> > >
> > > Where 'b' is a real, (b != b) is 1 or 0,
> > > depending strictly on whether the current
> > > value of 'b' is a NaN, or is not a NaN.
> > > --
> > pardon?
> > I noticed that b_u is a real which results in 3.0 by assignment;
> > Why should (3.0 != 3.0) result in 1?
> You snipped the most relevant part of your own post, i.e.
> >>> If NaN won't equal to anything, any number will not equal to itself
> >>> either. I still do not understand b_u != b_u;
> and the statement made by "bert" was that
> b != b
> evaluates to 1 if b is not-NaN (e.g. for b set to 3) but to 0
> if b is NaN (always assuming that IEEE floating point represen-
> tation is used).
Sorry, got that just the wrong way round
For b = 3 b != b results in 0
For b = NaN b != b results in 1
Regards, Jens
--
\ Jens Thoms Toerring ___ jt@toerring.de
\__________________________ http://toerring.de
[toc] | [prev] | [next] | [standalone]
| From | "Heinrich Wolf" <invalid@invalid.invalid> |
|---|---|
| Date | 2011-08-16 14:08 +0200 |
| Message-ID | <j2dmk7$89o$1@news.m-online.net> |
| In reply to | #9469 |
"Jens Thoms Toerring" <jt@toerring.de> schrieb im Newsbeitrag news:9av2ojF9heU4@mid.uni-berlin.de... ... > Sorry, got that just the wrong way round ... I don't mind. You're welcome!
[toc] | [prev] | [next] | [standalone]
| From | Ben Bacarisse <ben.usenet@bsb.me.uk> |
|---|---|
| Date | 2011-08-16 13:37 +0100 |
| Message-ID | <0.abcd569ac59f09e38613.20110816133721BST.87k4adedmm.fsf@bsb.me.uk> |
| In reply to | #9468 |
jt@toerring.de (Jens Thoms Toerring) writes: > Heinrich Wolf <invalid@invalid.invalid> wrote: > >> "bert" <bert.hutchings@btinternet.com> schrieb im Newsbeitrag >> news:0e6e63f1-e63e-4e52-9db5-ec1807044878@glegroupsg2000goo.googlegroups.com... >> ... >> >> ex: >> >> b_u = 3; >> >> (b_u!=b_u) ==> 1, right? >> >> >> >> Have you tried? >> >> I doubt that. This thread has been screwed up. When Heinrich Wolf first posted he did not correctly quote the post he was replying to. I think several replies have confused who said what after that. >> > You should listen more carefully when >> > people who have a complete understanding >> > of some topic try to explain it to you. This was in reply to Heinrich who said only "Have you tried it?" though it looked like he repeated fl's confusion. >> > Where 'b' is a real, (b != b) is 1 or 0, >> > depending strictly on whether the current >> > value of 'b' is a NaN, or is not a NaN. >> > -- > >> pardon? >> I noticed that b_u is a real which results in 3.0 by assignment; >> Why should (3.0 != 3.0) result in 1? > > You snipped the most relevant part of your own post, i.e. >>>> If NaN won't equal to anything, any number will not equal to itself >>>> either. I still do not understand b_u != b_u; This was not said by Heinrich but by fl. <snip> -- Ben.
[toc] | [prev] | [next] | [standalone]
| From | jt@toerring.de (Jens Thoms Toerring) |
|---|---|
| Date | 2011-08-16 21:13 +0000 |
| Message-ID | <9b04rdFeejU1@mid.uni-berlin.de> |
| In reply to | #9475 |
Ben Bacarisse <ben.usenet@bsb.me.uk> wrote:
> jt@toerring.de (Jens Thoms Toerring) writes:
> > Heinrich Wolf <invalid@invalid.invalid> wrote:
> >
> >> "bert" <bert.hutchings@btinternet.com> schrieb im Newsbeitrag
> >> news:0e6e63f1-e63e-4e52-9db5-ec1807044878@glegroupsg2000goo.googlegroups.com...
> >> ...
> >> >> ex:
> >> >> b_u = 3;
> >> >> (b_u!=b_u) ==> 1, right?
> >> >>
> >> >> Have you tried?
> >> >> I doubt that.
> This thread has been screwed up. When Heinrich Wolf first posted he did
> not correctly quote the post he was replying to. I think several
> replies have confused who said what after that.
> >> > You should listen more carefully when
> >> > people who have a complete understanding
> >> > of some topic try to explain it to you.
> This was in reply to Heinrich who said only "Have you tried it?" though
> it looked like he repeated fl's confusion.
> >> > Where 'b' is a real, (b != b) is 1 or 0,
> >> > depending strictly on whether the current
> >> > value of 'b' is a NaN, or is not a NaN.
> >> > --
> >
> >> pardon?
> >> I noticed that b_u is a real which results in 3.0 by assignment;
> >> Why should (3.0 != 3.0) result in 1?
> >
> > You snipped the most relevant part of your own post, i.e.
> >>>> If NaN won't equal to anything, any number will not equal to itself
> >>>> either. I still do not understand b_u != b_u;
> This was not said by Heinrich but by fl.
Aoory and my apologies to Heinrich Wolf. Hadn't read the
attribution lines carefully enough...
Best regards, Jens
--
\ Jens Thoms Toerring ___ jt@toerring.de
\__________________________ http://toerring.de
[toc] | [prev] | [next] | [standalone]
| From | "Heinrich Wolf" <invalid@invalid.invalid> |
|---|---|
| Date | 2011-08-16 14:17 +0200 |
| Message-ID | <j2dn54$kje$1@news.m-online.net> |
| In reply to | #9463 |
"Heinrich Wolf" <invalid@invalid.invalid> schrieb im Newsbeitrag news:j2ditd$t3d$1@news.m-online.net... ... >> You should listen more carefully when >> people who have a complete understanding >> of some topic try to explain it to you. ... I am sorry and I apologize. Too short sleep this night ...
[toc] | [prev] | [next] | [standalone]
| From | "Heinrich Wolf" <invalid@invalid.invalid> |
|---|---|
| Date | 2011-08-16 13:22 +0200 |
| Message-ID | <j2dju5$aik$1@news.m-online.net> |
| In reply to | #9460 |
Asking NaN != NaN looks reasonable to me. But asking 3 != 3 looks like trolling.
[toc] | [prev] | [next] | [standalone]
| From | Angel <angel+news@spamcop.net> |
|---|---|
| Date | 2011-08-16 15:17 +0000 |
| Message-ID | <slrnj4l2fk.5g9.angel+news@pearlgates.net> |
| In reply to | #9466 |
On 2011-08-16, Heinrich Wolf <invalid@invalid.invalid> wrote:
> Asking NaN != NaN looks reasonable to me.
> But asking 3 != 3 looks like trolling.
It's an explaination of how logical expressions involving real numbers
(which may be NaN) are handled. In pseudo-C:
bool double_equals(const double a, const double b)
{
if (isnan(a) || isnan(b))
return false;
[...]
}
In other words, any comparison between two real numbers (less than,
equals, greater than) will always yield false if either operant is NaN.
Because of that, the expression "a != a" always returns true if a is
NaN, and false if it is not. And thus, "a != a" is a way to test if a
is NaN.
Yes, it mystified me too at first, but once it was explained it made
sense. ^^
--
"C provides a programmer with more than enough rope to hang himself.
C++ provides a firing squad, blindfold and last cigarette."
- seen in comp.lang.c
[toc] | [prev] | [next] | [standalone]
| From | James Kuyper <jameskuyper@verizon.net> |
|---|---|
| Date | 2011-08-16 08:42 -0400 |
| Message-ID | <j2dokj$mli$1@dont-email.me> |
| In reply to | #9457 |
On 08/16/2011 12:45 AM, fl wrote: ... > If NaN won't equal to anything, any number will not equal to itself > either. ... That does not follow. There's no connection between those two clauses that I can see. The first one is true and the second one is false, so whatever connection you see between those two clauses is invalid. > ... I still do not understand b_u != b_u; > > ex: > b_u = 3; > (b_u!=b_u) ==> 1, right? No. This is a special rule for NaN's; 3 is not a NaN, so the rule doesn't apply. Some examples that might clarify this: 3.0 != 3.0; // False 3.0 != 5.0; // True 5.0 != 5.0; // False NaN != NaN; // True 3.0 != Nan; // True NaN != 5.0; // True The special rule, that a NaN doesn't compare equal to anything, applies to all of the last three statements. It doesn't apply to any of the first three, because none of the first three statements involve a NaN. -- James Kuyper
[toc] | [prev] | [next] | [standalone]
| From | Stephen Sprunk <stephen@sprunk.org> |
|---|---|
| Date | 2011-08-16 09:25 -0500 |
| Message-ID | <j2dul1$25m$1@dont-email.me> |
| In reply to | #9457 |
On 15-Aug-11 23:45, fl wrote: > If NaN won't equal to anything, any number will not equal to itself > either. Incorrect. A number is always equal to itself. However, a NaN is Not a Number, and the rules are different from numbers: it never compares equal to itself. > I still do not understand b_u != b_u; > > ex: > b_u = 3; > (b_u!=b_u) ==> 1, right? Since 3 is a number, (3 != 3) is false. That condition would only be true for NaNs, which are not numbers. S -- Stephen Sprunk "God does not play dice." --Albert Einstein CCIE #3723 "God is an inveterate gambler, and He throws the K5SSS dice at every possible opportunity." --Stephen Hawking
[toc] | [prev] | [next] | [standalone]
| From | Joe Pfeiffer <pfeiffer@cs.nmsu.edu> |
|---|---|
| Date | 2011-08-16 12:37 -0600 |
| Message-ID | <1bsjp12oei.fsf@snowball.wb.pfeifferfamily.net> |
| In reply to | #9457 |
fl <rxjwg98@gmail.com> writes: > On 15 août, 23:33, Ben Bacarisse <ben.use...@bsb.me.uk> wrote: >> fl <rxjw...@gmail.com> writes: >> > I encounter NaN often in Matlab. Recently, I use Matlab to generate >> > some code for an embedded project. I get the following source code >> > from Matlab below dot line. >> >> > I don't understand the line: >> > c_y = (b_u != b_u); >> >> > Could you explain it to me? More specific, what result can get >> > from: (b_u != b_u);? >> >> The != operator always gives 0 or 1 depending on the result of the >> comparison. It's a not-equals comparison so it is asking if b_u is not >> equal to itself. A NaNs won't compare equal to anything -- even another >> NaN, so b_u != b_u is a way to ask if b_u is a NaN. >> >> <snip> >> -- >> Ben. > > If NaN won't equal to anything, any number will not equal to itself > either. I still do not understand b_u != b_u; > > ex: > b_u = 3; > (b_u!=b_u) ==> 1, right? No, b_u!=b_u ==> 0, since they are indeed equal. Do you understand that NaN is an abbreviation for "Not a Number"? NaN is a specific bit pattern (actually, a pattern from a set defined by your floating point representation) that is recognized by the floating point number unit as meaning "this is not a number", and gets treated specially. So for instance, if you add anything to it, the result is also Not a Number. And if you compare it to anything, the result is !=. So for any valid number b_u, b_u==b_u. But for NaN, NaN!= NaN. I'll bet you'd get better Matlab-specific advice in a Matlab newsgroup...
[toc] | [prev] | [next] | [standalone]
| From | Keith Thompson <kst-u@mib.org> |
|---|---|
| Date | 2011-08-16 12:26 -0700 |
| Message-ID | <lnmxf917ky.fsf@nuthaus.mib.org> |
| In reply to | #9486 |
Joe Pfeiffer <pfeiffer@cs.nmsu.edu> writes:
[...]
> I'll bet you'd get better Matlab-specific advice in a Matlab
> newsgroup...
Like comp.soft-sys.matlab (I don't know how active it is).
--
Keith Thompson (The_Other_Keith) kst-u@mib.org <http://www.ghoti.net/~kst>
Nokia
"We must do something. This is something. Therefore, we must do this."
-- Antony Jay and Jonathan Lynn, "Yes Minister"
[toc] | [prev] | [standalone]
Back to top | Article view | comp.lang.c
csiph-web