Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.arch > #6646

Re: ffs16

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.

Show all headers | View raw


[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.arch | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread


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
  Re: ffs16 MitchAlsup <MitchAlsup@aol.com> - 2012-04-23 13:01 -0700
    Re: ffs16 Terje Mathisen <"terje.mathisen at tmsw.no"> - 2012-04-24 03:28 +0200
      Re: ffs16 nmm1@cam.ac.uk - 2012-04-24 09:15 +0100
      Re: ffs16 Chris Gray <cg@GraySage.com> - 2012-04-24 13:37 -0600

csiph-web