make-logtab
上传用户:lyxiangda
上传日期:2007-01-12
资源大小:3042k
文件大小:2k
源码类别:

CA认证

开发平台:

WINDOWS

  1. #!/usr/linguist/bin/perl
  2. #
  3. # make-logtab
  4. #
  5. # Generate a table of logarithms of 2 in various bases, for use in
  6. # estimating the output sizes of various bases.
  7. #
  8. ## The contents of this file are subject to the Mozilla Public
  9. ## License Version 1.1 (the "License"); you may not use this file
  10. ## except in compliance with the License. You may obtain a copy of
  11. ## the License at http://www.mozilla.org/MPL/
  12. ##
  13. ## Software distributed under the License is distributed on an "AS
  14. ## IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
  15. ## implied. See the License for the specific language governing
  16. ## rights and limitations under the License.
  17. ##
  18. ## The Original Code is the MPI Arbitrary Precision Integer Arithmetic
  19. ## library.
  20. ##
  21. ## The Initial Developer of the Original Code is 
  22. ## Michael J. Fromberger <sting@linguist.dartmouth.edu>
  23. ##
  24. ## Portions created by Michael J. Fromberger are 
  25. ## Copyright (C) 1998, 2000 Michael J. Fromberger. All Rights Reserved
  26. ##
  27. ## Contributor(s):
  28. ##
  29. ## Alternatively, the contents of this file may be used under the
  30. ## terms of the GNU General Public License Version 2 or later (the
  31. ## "GPL"), in which case the provisions of the GPL are applicable
  32. ## instead of those above.  If you wish to allow use of your
  33. ## version of this file only under the terms of the GPL and not to
  34. ## allow others to use your version of this file under the MPL,
  35. ## indicate your decision by deleting the provisions above and
  36. ## replace them with the notice and other provisions required by
  37. ## the GPL.  If you do not delete the provisions above, a recipient
  38. ## may use your version of this file under either the MPL or the
  39. ## GPL.
  40. #
  41. # $Id: make-logtab,v 1.3 2000/08/09 22:45:51 nelsonb%netscape.com Exp $
  42. $ARRAYNAME = $ENV{'ARRAYNAME'} || "s_logv_2";
  43. $ARRAYTYPE = $ENV{'ARRAYTYPE'} || "float";
  44. printf("const %s %s[] = {n   %0.9ff, %0.9ff, ", 
  45.        $ARRAYTYPE, $ARRAYNAME, 0, 0);
  46. $brk = 2;
  47. for($ix = 2; $ix < 64; $ix++) {
  48.     printf("%0.9ff, ", (log(2)/log($ix)));
  49.     $brk = ($brk + 1) & 3;
  50.     if(!$brk) {
  51. printf(" /* %2d %2d %2d %2d */n   ",
  52.        $ix - 3, $ix - 2, $ix - 1, $ix);
  53.     }
  54. }
  55. printf("%0.9ffn};nn", (log(2)/log($ix)));
  56. exit 0;