Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
| From | jgk@panix.com (Joe keane) |
|---|---|
| Newsgroups | comp.arch, comp.lang.c |
| Subject | Re: ffs16 |
| Date | 2012-04-24 19:06 +0000 |
| Organization | Public Access Networks Corp. |
| Message-ID | <jn6tjv$a39$1@reader1.panix.com> (permalink) |
| References | <jn1tku$pga$1@reader1.panix.com> <v65g69-41e2.ln1@ntp6.tmsw.no> |
Cross-posted to 2 groups.
[read '(x & 0xFF) != 0' for '(x & 0xFF) == 0' and '(x & 0xFF) == 0' for
'(x & 0xFF) != 0']
In article <v65g69-41e2.ln1@ntp6.tmsw.no>,
Terje Mathisen <"terje.mathisen at tmsw.no"> wrote:
>Should it be fast?
AFAP
>Small?
I wouldn't consider using tables much larger than a kilobyte, but that's
because i think it won't be fast. Code size is no issue.
There are two problems, FHS and FLS. I thought we needed both, but
maybe one is sufficient. I got far in coding 'FFS' before i realized
that it"s the upside-down of what i had done a long time back.
>Portable?
A long time back, i considered using floating-point tricks, but i
discarded it. I don't remember why:
a) it actually tested slower
b) the gain in performance was not sufficient to justify the more
non-obvious code
c) it's best to keep it portable[1]
Anyway it's a general question, is it ever better to say
cond = COND(x);
val0 = VAL0(x);
val1 = VAL1(x);
res = (cond - 1) & val0 | (0 - cond) & val1;
? [and i think you said 'no']
Maybe it is the same because the compiler will do it anyway?
[1] we assume that every machine is IEEE 754, and if the code is proof
against endianness, it will work on any machine i care about
Back to comp.lang.c | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread
ffs16 jgk@panix.com (Joe keane) - 2012-04-22 21:36 +0000
Re: ffs16 Keith Thompson <kst-u@mib.org> - 2012-04-22 15:23 -0700
Re: ffs16 Eric Sosman <esosman@ieee-dot-org.invalid> - 2012-04-22 20:37 -0400
Re: ffs16 Philip Lantz <prl@canterey.us> - 2012-04-24 06:36 -0700
Re: ffs16 Eric Sosman <esosman@ieee-dot-org.invalid> - 2012-04-24 20:32 -0400
Re: ffs16 Philip Lantz <prl@canterey.us> - 2012-04-25 00:30 -0700
Re: ffs16 Terje Mathisen <"terje.mathisen at tmsw.no"> - 2012-04-23 16:22 +0200
Re: ffs16 Eric Sosman <esosman@ieee-dot-org.invalid> - 2012-04-23 21:46 -0400
Re: ffs16 Terje Mathisen <"terje.mathisen at tmsw.no"> - 2012-04-24 14:16 +0200
Re: ffs16 Eric Sosman <esosman@ieee-dot-org.invalid> - 2012-04-24 20:40 -0400
Re: ffs16 jgk@panix.com (Joe keane) - 2012-04-24 19:06 +0000
Re: ffs16 Terje Mathisen <"terje.mathisen at tmsw.no"> - 2012-04-25 00:38 +0200
Re: ffs16 jgk@panix.com (Joe keane) - 2012-04-25 20:08 +0000
Re: ffs16 "James Van Buskirk" <not_valid@comcast.net> - 2012-04-25 15:06 -0600
Re: ffs16 "James Van Buskirk" <not_valid@comcast.net> - 2012-04-25 16:30 -0600
Re: ffs16 jgk@panix.com (Joe keane) - 2012-04-25 21:25 +0000
Re: ffs16 Terje Mathisen <"terje.mathisen at tmsw.no"> - 2012-04-26 01:38 +0200
Re: ffs16 jgk@panix.com (Joe keane) - 2012-04-26 19:34 +0000
Re: ffs16 jgk@panix.com (Joe keane) - 2012-04-26 20:41 +0000
Re: ffs16 Terje Mathisen <"terje.mathisen at tmsw.no"> - 2012-04-27 02:47 +0200
csiph-web