2018-05-04 16:08:28 +02:00
|
|
|
#!/usr/bin/perl
|
2015-10-21 05:03:22 +02:00
|
|
|
|
|
|
|
#
|
|
|
|
# make-logtab
|
|
|
|
#
|
|
|
|
# Generate a table of logarithms of 2 in various bases, for use in
|
|
|
|
# estimating the output sizes of various bases.
|
|
|
|
|
2018-05-04 16:08:28 +02:00
|
|
|
# This Source Code Form is subject to the terms of the Mozilla Public
|
|
|
|
# License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
|
|
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
2015-10-21 05:03:22 +02:00
|
|
|
|
|
|
|
$ARRAYNAME = $ENV{'ARRAYNAME'} || "s_logv_2";
|
|
|
|
$ARRAYTYPE = $ENV{'ARRAYTYPE'} || "float";
|
|
|
|
|
|
|
|
printf("const %s %s[] = {\n %0.9ff, %0.9ff, ",
|
|
|
|
$ARRAYTYPE, $ARRAYNAME, 0, 0);
|
|
|
|
$brk = 2;
|
|
|
|
for($ix = 2; $ix < 64; $ix++) {
|
|
|
|
printf("%0.9ff, ", (log(2)/log($ix)));
|
|
|
|
$brk = ($brk + 1) & 3;
|
|
|
|
if(!$brk) {
|
|
|
|
printf(" /* %2d %2d %2d %2d */\n ",
|
|
|
|
$ix - 3, $ix - 2, $ix - 1, $ix);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
printf("%0.9ff\n};\n\n", (log(2)/log($ix)));
|
|
|
|
|
|
|
|
exit 0;
|