summaryrefslogtreecommitdiff
path: root/lib/freebl/mpi/make-logtab
blob: fadba1c86d2fd0fb0d8cb1beeba6d823effcad8a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
#!/usr/bin/perl

#
# make-logtab
#
# Generate a table of logarithms of 2 in various bases, for use in
# estimating the output sizes of various bases.

# 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/.

$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;