2.5: Remove OOPS code from the outliner space, as discussed
[blender-staging.git] / extern / ode / dist / ode / fbuild / OptimizeMultidot
1 #!/usr/bin/perl
2 #
3 #########################################################################
4 #                                                                       #
5 # Open Dynamics Engine, Copyright (C) 2001,2002 Russell L. Smith.       #
6 # All rights reserved.  Email: russ@q12.org   Web: www.q12.org          #
7 #                                                                       #
8 # This library is free software; you can redistribute it and/or         #
9 # modify it under the terms of EITHER:                                  #
10 #   (1) The GNU Lesser General Public License as published by the Free  #
11 #       Software Foundation; either version 2.1 of the License, or (at  #
12 #       your option) any later version. The text of the GNU Lesser      #
13 #       General Public License is included with this library in the     #
14 #       file LICENSE.TXT.                                               #
15 #   (2) The BSD-style license that is included with this library in     #
16 #       the file LICENSE-BSD.TXT.                                       #
17 #                                                                       #
18 # This library is distributed in the hope that it will be useful,       #
19 # but WITHOUT ANY WARRANTY; without even the implied warranty of        #
20 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the files    #
21 # LICENSE.TXT and LICENSE-BSD.TXT for more details.                     #
22 #                                                                       #
23 #########################################################################
24
25 # optimize the dot product built by BuildMultidot
26
27 ##############################################################################
28
29 require ("OptimizeUtil");
30
31 # multiple
32 $N1=2;
33
34 # unused standard parameters
35 $TYPE='unused';
36 $UNROLL2=0;             # unused
37 $MADD=0;                # unused
38
39 ##############################################################################
40
41 sub testMultidot # (filename)
42 {
43   my $filename = $_[0];
44   createParametersFile ('ParametersM');
45   $params = "$N1 $UNROLL1 $UNROLL2 $MADD $FETCH $LAT1 $LAT2";
46   print "***** TESTING $params\n";
47   doit ("rm -f fastmultidot.c fastmultidot.o test_multidot");
48   doit ("make test_multidot");
49   doit ("./test_multidot >> $filename");
50   open (FILE,">>$filename");
51   print FILE " $params\n";
52   close FILE;
53 }
54
55 # find optimal parameters. write results to data6.txt
56
57 open (FILE,">data6.txt");
58 print FILE "# multi-dot product data from OptimizeMultidot\n";
59 close FILE;
60 $FNAME='fastmultidot';
61
62 for ($UNROLL1=1; $UNROLL1 <= 10; $UNROLL1++) {
63   for ($LAT1=1; $LAT1 <= 5; $LAT1++) {
64     for ($LAT2=1; $LAT2 <= 5; $LAT2++) {
65       for ($FETCH=1; $FETCH<=5; $FETCH++) {
66         testMultidot ('data6.txt');
67       }
68     }
69   }
70 }
71
72 readBackDataFile ('data6.txt');
73 createParametersFile ('ParametersM');