[vorbis-dev] optimizing float to int conversions

illiminable ogg at illiminable.com
Wed May 5 11:05:17 PDT 2004



----- Original Message -----
From: "dean gaudet" <dean-list-vorbis-dev at arctic.org>
To: <vorbis-dev at xiph.org>
Sent: Thursday, May 06, 2004 1:34 AM
Subject: Re: [vorbis-dev] optimizing float to int conversions

<p>> On Thu, 6 May 2004, illiminable wrote:
>
> > Assuming your ints are of size 32 bits (I'm pretty sure this is a safe
> > assumption in ogg), this is not necessary if you shift any 32 bit int by
32
> > or more bits in either direction you get zero anyway (is there some case
i'm
> > not thinking of that this is not true ?)... so you can remove a a
comparison
> > and jump there. All bits left of the 24th bit would be zero anyway.
>
> C doesn't specify what happens when you shift more than the data size...
> and on x86 the low 5-bits of variable shift amounts are used regardless of
> what is in the upper bits.  it doesn't truncate to 0 like you're
> expecting.
>

Hmmm.. fair enoughi can't find anything specific on C++ but my compiler
certainly doesn't just shift using the low 5-bits... I'll take your word for
it in C... i'd be interested to find out if it is undefined in C++ too.

I did find this though... (C++ draft Standard 1996)

3 The value of E1 >> E2 is E1 right-shifted E2 bit positions.  If E1 has
  an unsigned type or if E1 has a signed type and a  nonnegative  value,
  the  value  of  the  result is the integral part of the quotient of E1
  divided by the quantity 2 raised to the power E2.  If E1 has a  signed
  type  and  a  negative  value,  the resulting value is implementation-
  defined.

So if the number being shifted is signed and engative, this is
imlpementation dependant too :| Interesting !

<p>Zen.
> -dean
> --- >8 ----
> List archives:  http://www.xiph.org/archives/
> Ogg project homepage: http://www.xiph.org/ogg/
> To unsubscribe from this list, send a message to
'vorbis-dev-request at xiph.org'
> containing only the word 'unsubscribe' in the body.  No subject is needed.
> Unsubscribe messages sent to the list will be ignored/filtered.
>
>
>

<p>--- >8 ----
List archives:  http://www.xiph.org/archives/
Ogg project homepage: http://www.xiph.org/ogg/
To unsubscribe from this list, send a message to 'vorbis-dev-request at xiph.org'
containing only the word 'unsubscribe' in the body.  No subject is needed.
Unsubscribe messages sent to the list will be ignored/filtered.



More information about the Vorbis-dev mailing list