#!/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;