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

CA认证

开发平台:

WINDOWS

  1. #!/bin/sh
  2. #
  3. # multest
  4. #
  5. # Run multiply and square timing tests, to compute a chart for the
  6. # current processor and compiler combination.
  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) 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 GPL.
  39. ## 
  40. # $Id: multest,v 1.2 2000/08/22 01:15:41 nelsonb%netscape.com Exp $
  41. #
  42. ECHO=/bin/echo
  43. MAKE=gmake
  44. $ECHO "n** Running multiply and square timing testsn"
  45. $ECHO "Bringing 'mulsqr' up to date ... "
  46. if $MAKE mulsqr ; then
  47.     :
  48. else
  49.     $ECHO "nMake failed to build mulsqr.n"
  50.     exit 1
  51. fi
  52. if [ ! -x ./mulsqr ] ; then
  53.     $ECHO "nCannot find 'mulsqr' program, testing cannot continue.n"
  54.     exit 1
  55. fi
  56. sizes='64 128 192 256 320 384 448 512 640 768 896 1024 1536 2048'
  57. ntests=500000
  58. $ECHO "Running timing tests, please wait ... "
  59. trap 'echo "oop!";rm -f tt*.tmp;exit 0' INT HUP
  60. touch tt$$.tmp
  61. $ECHO $ntests tests >> tt$$.tmp
  62. for size in $sizes ; do
  63.     $ECHO "$size bits ... c"
  64.     set -A res `./mulsqr $ntests $size|head -3|tr -d '%'|awk '{print $2}'`
  65.     $ECHO $size"t"${res[0]}"t"${res[1]}"t"${res[2]} >> tt$$.tmp
  66.     $ECHO "(done)"
  67. done
  68. mv tt$$.tmp mulsqr-results.txt
  69. rm -f tt$$.tmp
  70. $ECHO "n** Running Karatsuba-Ofman multiplication testsn"
  71. $ECHO "Brining 'karatsuba' up to date ... "
  72. if $MAKE karatsuba ; then
  73.     :
  74. else
  75.     $ECHO "nMake failed to build karatsuba.n"
  76.     exit 1
  77. fi
  78. if [ ! -x ./karatsuba ] ; then
  79.     $ECHO "nCannot find 'karatsuba' program, testing cannot continue.n"
  80.     exit 1
  81. fi
  82. ntests=100000
  83. trap 'echo "oop!";rm -f tt*.tmp;exit 0' INT HUP
  84. touch tt$$.tmp
  85. for size in $sizes ; do
  86.     $ECHO "$size bits ... "
  87.     ./karatsuba $ntests $size >> tt$$.tmp
  88.     tail -2 tt$$.tmp
  89. done
  90. mv tt$$.tmp karatsuba-results.txt
  91. rm -f tt$$.tmp
  92. exit 0