2 #==========================================================================
5 # Author : Christopher Batten (cbatten@mit.edu)
6 # Date : April 29, 2005
8 (our $usageMsg = <<'ENDMSG') =~ s/^\#//gm;
10 # Simple script which creates an input data set and the reference data
11 # for the vvadd benchmark.
20 #--------------------------------------------------------------------------
21 # Command line processing
22 #--------------------------------------------------------------------------
30 print " Usage: vvadd_gendata.pl [options] \n";
33 print " --help print this message\n";
34 print " --size size of input data [1000]\n";
35 print " --seed random seed [1]\n";
41 sub processCommandLine
()
47 Getopt
::Long
::GetOptions
( \
%opts, 'help|?', 'size:i', 'seed:i' ) or usage
();
48 $opts{"help"} and usage
();
52 #--------------------------------------------------------------------------
54 #--------------------------------------------------------------------------
58 my $arrayName = $_[0];
62 my $arrayLen = scalar(@
{$arrayRef});
64 print "static data_t ".$arrayName."[DATA_SIZE] = \n";
67 if ( $arrayLen <= $numCols ) {
69 for ( my $i = 0; $i < $arrayLen; $i++ ) {
70 print sprintf("%3.2f",$arrayRef->[$i]);
71 if ( $i != $arrayLen-1 ) {
79 my $numRows = int($arrayLen/$numCols);
80 for ( my $j = 0; $j < $numRows; $j++ ) {
82 for ( my $i = 0; $i < $numCols; $i++ ) {
83 my $index = $j*$numCols + $i;
84 print sprintf("%3.2f",$arrayRef->[$index]);
85 if ( $index != $arrayLen-1 ) {
92 if ( $arrayLen > ($numRows*$numCols) ) {
94 for ( my $i = 0; $i < ($arrayLen-($numRows*$numCols)); $i++ ) {
95 my $index = $numCols*$numRows + $i;
96 print sprintf("%3.2f",$arrayRef->[$index]);
97 if ( $index != $arrayLen-1 ) {
109 #--------------------------------------------------------------------------
111 #--------------------------------------------------------------------------
116 processCommandLine
();
117 srand($opts{"seed"});
122 for ( my $i = 0; $i < $opts{"size"}; $i++ ) {
123 my $value1 = int(rand(19));
124 my $value2 = int(rand(19));
125 push( @values1, $value1 );
126 push( @values2, $value2 );
127 push( @sum, $value1 + $value2 );
131 print "\n\#define DATA_SIZE ".$opts{"size"}." \n\n";
132 printArray
( "input1_data", \
@values1 );
133 printArray
( "input2_data", \
@values2 );
134 printArray
( "verify_data", \
@sum );