[Tim Blechmann]
On Fri, 25 Jun 2004 17:38:24 -0500
Jan Depner [EMAIL PROTECTED] wrote:
On Fri, 2004-06-25 at 13:49, Tim Blechmann wrote:
I have a denormal fix without a branch but you probably don't want
to see it ;-)
It's pretty simple, just OR the bits of the exponent together
Tim Goetze wrote:
[Tim Blechmann]
On Fri, 25 Jun 2004 17:38:24 -0500
Jan Depner [EMAIL PROTECTED] wrote:
On Fri, 2004-06-25 at 13:49, Tim Blechmann wrote:
I have a denormal fix without a branch but you probably don't want
to see it ;-)
It's pretty simple, just OR the bits of the
[Simon Jenkins]
Tim Goetze wrote:
8-bit exponent and no assumption about its value made, 8 binary
'shift', 7 'or' and 1 'and' statement if i'm not badly mistaken. and
if i'm not, a branch will probably hurt less.
Three shifts, three copys, three 'or's and an 'and':
copy = value;
value |=
Tim Goetze wrote:
[Simon Jenkins]
Tim Goetze wrote:
8-bit exponent and no assumption about its value made, 8 binary
'shift', 7 'or' and 1 'and' statement if i'm not badly mistaken. and
if i'm not, a branch will probably hurt less.
Three shifts, three copys, three 'or's and an 'and':
On Sun, 2004-06-27 at 07:43, Tim Goetze wrote:
[Tim Blechmann]
On Fri, 25 Jun 2004 17:38:24 -0500
Jan Depner [EMAIL PROTECTED] wrote:
On Fri, 2004-06-25 at 13:49, Tim Blechmann wrote:
I have a denormal fix without a branch but you probably don't want
to see it ;-)
It's pretty
On Sun, 2004-06-27 at 08:30, Tim Goetze wrote:
[Simon Jenkins]
Tim Goetze wrote:
8-bit exponent and no assumption about its value made, 8 binary
'shift', 7 'or' and 1 'and' statement if i'm not badly mistaken. and
if i'm not, a branch will probably hurt less.
Three shifts, three copys,
On Fri, 25 Jun 2004 17:38:24 -0500
Jan Depner [EMAIL PROTECTED] wrote:
On Fri, 2004-06-25 at 13:49, Tim Blechmann wrote:
I have a denormal fix without a branch but you probably don't want
to see it ;-)
It's pretty simple, just OR the bits of the exponent together
which gives either
I have a denormal fix without a branch but you probably don't want to
see it ;-)
It's pretty simple, just OR the bits of the exponent together which
gives either
0 (denormal) or 1, typecast that to float, and then multiply the
original float by that (0.0 or 1.0). Voila, no branch, but it
On Thu, 24 Jun 2004 02:11:34 -0300
Juan Linietsky [EMAIL PROTECTED] wrote:
Sorry for not checking, but I guess it could be good for the record (and
people googling for it) to ask here..
The macro for dealing denormals that I have is:
#define undenormalise(sample) if(((*(unsigned
Since the problem is denormalised numbers, has anybody thought of
adding a small DC offset (1e-15) or alternating the
addition/subraction of a small value?
of course it is possible to add a small dc offset ... but what if we are
working in a feedback loop? or even worse with a high pass filter?
Erik de Castro Lopo wrote:
On Thu, 24 Jun 2004 02:11:34 -0300
Juan Linietsky [EMAIL PROTECTED] wrote:
Sorry for not checking, but I guess it could be good for the record (and
people googling for it) to ask here..
The macro for dealing denormals that I have is:
#define undenormalise(sample)
On Thu, 24 Jun 2004 10:37:35 +0100
Simon Jenkins [EMAIL PROTECTED] wrote:
inline float FlushToZero( volatile float f )
{
f += 9.8607615E-32f;
return f - 9.8607615E-32f;
}
/* end */
The people who discovered it first call this method
Elimination by Quantification.
Its slightly
On Thu, 24 Jun 2004 11:03:34 +0200, Tim Blechmann wrote
Since the problem is denormalised numbers, has anybody thought of
adding a small DC offset (1e-15) or alternating the
addition/subraction of a small value?
of course it is possible to add a small dc offset ... but what if we
are
On Thu, Jun 24, 2004 at 06:36:47 +1000, Erik de Castro Lopo wrote:
On Thu, 24 Jun 2004 10:37:35 +0100
Simon Jenkins [EMAIL PROTECTED] wrote:
inline float FlushToZero( volatile float f )
{
f += 9.8607615E-32f;
return f - 9.8607615E-32f;
}
There we go!!! That is an elegant
On Thu, Jun 24, 2004 at 02:11:34AM -0300, Juan Linietsky wrote:
#define undenormalise(sample) if(((*(unsigned int*)sample)0x7f80)==0)
sample=0.0f
however gcc 3.3 and 3.4 seem to produce an undesired effect
when the optimizer is turned on, rendering this macro unusable..
this breaks
Steve Harris wrote:
You can do
y += delta
y -= delta
but youre at the mercy of the optimiser.
The IEEE standard specifies exactly what happens with denormals, so,
in theory, the compiler must not optimize this away. However,
optimization options for speed often disable strict IEEE
On Thu, Jun 24, 2004 at 01:20:34 +0200, Clemens Ladisch wrote:
The IEEE standard specifies exactly what happens with denormals, so,
in theory, the compiler must not optimize this away. However,
optimization options for speed often disable strict IEEE
compatibility. (I don't know how gcc's
I have a denormal fix without a branch but you probably don't want to see it ;-)
It's pretty simple, just OR the bits of the exponent together which gives either
0 (denormal) or 1, typecast that to float, and then multiply the original float
by that (0.0 or 1.0). Voila, no branch, but it is
On Thursday 24 June 2004 06:21, Steve Harris wrote:
On Thu, Jun 24, 2004 at 06:36:47 +1000, Erik de Castro Lopo wrote:
On Thu, 24 Jun 2004 10:37:35 +0100
Simon Jenkins [EMAIL PROTECTED] wrote:
inline float FlushToZero( volatile float f )
{
f += 9.8607615E-32f;
return f -
On Thu, Jun 24, 2004 at 01:10:37 -0300, Juan Linietsky wrote:
inline float FlushToZero( volatile float f )
{
f += 9.8607615E-32f;
return f - 9.8607615E-32f;
}
That actually looks nice... since thanks to writing volatile float f,
the optimizer should not touch it.. it'
Steve Harris wrote:
On Thu, Jun 24, 2004 at 01:10:37 -0300, Juan Linietsky wrote:
inline float FlushToZero( volatile float f )
{
f += 9.8607615E-32f;
return f - 9.8607615E-32f;
}
That actually looks nice... since thanks to writing volatile float f,
the optimizer should not touch
On Wednesday 23 June 2004 15:54, Steve Harris wrote:
http://plugin.org.uk/releases/0.4.4/
* Fixes to build on recent gcc
* New limiter for beter performance in JAMin
* Denomal fixes from Tim Blechmann (general and specifially the flanger)
* Many other things I've forgotten :(
This release
22 matches
Mail list logo