author Ryan C. Gordon <>
Tue, 15 May 2018 01:04:11 -0400
changeset 11987 0c284754e25b
parent 10722 30e271a26a02
permissions -rwxr-xr-x
audio: converting int32 to/from float shouldn't use doubles.

The concern is that a massive int sample, like 0x7FFFFFFF, won't fit in a
float32, which doesn't have enough bits to hold a whole number this large,
just to divide it to get a value between 0 and 1.
Previously we would convert to double, to get more bits, do the division, and
cast back to a float, but this is expensive.

Casting to double is more accurate, but it's 2x to 3x slower. Shifting out
the least significant byte of an int32, so it'll definitely fit in a float,
and dividing by 0x7FFFFF is still accurate to about 5 decimal places, and the
difference doesn't appear to be perceptable.
     1 #!/bin/sh
     2 #
     3 echo "Generating build information using autoconf"
     4 echo "This may take a while ..."
     6 srcdir=`dirname $0`
     7 test -z "$srcdir" && srcdir=.
     8 cd "$srcdir"
    10 # Regenerate configuration files
    11 cat acinclude/* >aclocal.m4
    12 found=false
    13 for autoconf in autoconf autoconf259 autoconf-2.59
    14 do if which $autoconf >/dev/null 2>&1; then $autoconf && found=true; break; fi
    15 done
    16 if test x$found = xfalse; then
    17     echo "Couldn't find autoconf, aborting"
    18     exit 1
    19 fi
    20 (cd test; sh
    22 # Run configure for this platform
    23 echo "Now you are ready to run ./configure"