#!/usr/bin/env perl # # make-logtab # # Generate a table of logarithms of 2 in various bases, for use in # estimating the output sizes of various bases. # # by Michael J. Fromberger # Developed 1999-2006. # Assigned to the public domain as of 2002; see README. # # $Id: make-logtab,v 1.2 2006/07/07 19:35:02 sting Exp $ # $ARRAYNAME = $ENV{'ARRAYNAME'} || "s_logv_2"; $ARRAYTYPE = $ENV{'ARRAYTYPE'} || "double"; printf("const %s %s[] = {\n %0.9f, %0.9f, ", $ARRAYTYPE, $ARRAYNAME, 0, 0); $brk = 2; for($ix = 2; $ix < 64; $ix++) { printf("%0.9f, ", (log(2)/log($ix))); $brk = ($brk + 1) & 3; if(!$brk) { printf("\t/* %2d %2d %2d %2d */\n ", $ix - 3, $ix - 2, $ix - 1, $ix); } } printf("%0.9f\n};\n\n", (log(2)/log($ix))); exit 0;