Statistiques
| Branche: | Révision :

meplib / 00model / prepareForPipPL.sh @ master

Historique | Voir | Annoter | Télécharger (3,26 ko)

1 08aa5d9e Serge Torres
#! /bin/sh
2 08aa5d9e Serge Torres
#
3 08aa5d9e Serge Torres
# Prepare data for PIP...
4 08aa5d9e Serge Torres
# with a user given list in the "pointsList.txt" file 
5 08aa5d9e Serge Torres
# or in a file given on the command line
6 08aa5d9e Serge Torres
#
7 08aa5d9e Serge Torres
CONFIG_FILE=config.txt
8 08aa5d9e Serge Torres
DIGITS_FILE=digits.txt
9 08aa5d9e Serge Torres
PREPARE_POINTS_FILE=extractedPointsList.txt
10 08aa5d9e Serge Torres
INV_FILE=inv.txt
11 08aa5d9e Serge Torres
W_FILE=w.txt
12 08aa5d9e Serge Torres
MKLOOPS_FILE=mkloops.txt
13 08aa5d9e Serge Torres
BOUNDS_FILE=mkloops-bounds.txt
14 08aa5d9e Serge Torres
BIN_DIR=./bin
15 08aa5d9e Serge Torres
W_GENERATOR=$BIN_DIR/generate-w-vector-01
16 08aa5d9e Serge Torres
MKLOOPS_GENERATOR=$BIN_DIR/mkloops-with-w
17 08aa5d9e Serge Torres
ARGS_FOR_VANDERMONDE=`argsForVandermonde.sh`
18 08aa5d9e Serge Torres
ARGS_FOR_POINTS_LIST=pointsList.txt
19 08aa5d9e Serge Torres
MAX_ERROR=`awk '{if(FNR==1) print $2}' < $CONFIG_FILE`
20 08aa5d9e Serge Torres
CREATE_VANDERMONDE=$BIN_DIR/createVandermonde.pl
21 08aa5d9e Serge Torres
INV_VANDERMONDE=$BIN_DIR/invVandermonde.pl
22 08aa5d9e Serge Torres
PRINT_GENERATOR_VECTOR=$BIN_DIR/printGeneratorVector.pl
23 08aa5d9e Serge Torres
PRINT_POINTS_LIST=cat
24 08aa5d9e Serge Torres
ADD_BOUNDS_TO_MKLOOPS=$BIN_DIR/addBoundsToMkloops-01.pl
25 08aa5d9e Serge Torres
COMPUTE_BOUNDS_FOR_MKLOOPS=$BIN_DIR/computeBoundsForMkloops-01.pl
26 08aa5d9e Serge Torres
CREATE_DIGITS_FILE=createDigitsFile.sh
27 08aa5d9e Serge Torres
#
28 08aa5d9e Serge Torres
#
29 08aa5d9e Serge Torres
# Check out whether a file name is given on the command line
30 08aa5d9e Serge Torres
# and whether it is a valid file.
31 08aa5d9e Serge Torres
if [ ! -z "$1" ]
32 08aa5d9e Serge Torres
  then
33 08aa5d9e Serge Torres
    if [ -e "$1" -a -s "$1" ]
34 08aa5d9e Serge Torres
      then
35 08aa5d9e Serge Torres
        USER_POINTS_LIST_FILE=`basename $1`
36 08aa5d9e Serge Torres
	if [ $USER_POINTS_LIST_FILE == $PREPARE_POINTS_FILE ]
37 08aa5d9e Serge Torres
	  then
38 08aa5d9e Serge Torres
	    echo
39 08aa5d9e Serge Torres
	    echo
40 08aa5d9e Serge Torres
	    echo -n `basename $0`": you can't use $PREPARE_POINTS_FILE "
41 08aa5d9e Serge Torres
	    echo "as your points "
42 08aa5d9e Serge Torres
	    echo -n "list file. "
43 08aa5d9e Serge Torres
	    echo "Aborting the program!"
44 08aa5d9e Serge Torres
	    echo
45 08aa5d9e Serge Torres
	    echo
46 08aa5d9e Serge Torres
	    exit 1
47 08aa5d9e Serge Torres
	fi
48 08aa5d9e Serge Torres
        ARGS_FOR_POINTS_LIST=$1
49 08aa5d9e Serge Torres
      else
50 08aa5d9e Serge Torres
        echo
51 08aa5d9e Serge Torres
        echo
52 08aa5d9e Serge Torres
        echo `basename $0`": \"$1\" is not a valid points list file."
53 08aa5d9e Serge Torres
        echo "Aborting the program!"
54 08aa5d9e Serge Torres
        echo
55 08aa5d9e Serge Torres
        echo
56 08aa5d9e Serge Torres
        exit 1
57 08aa5d9e Serge Torres
    fi
58 08aa5d9e Serge Torres
fi
59 08aa5d9e Serge Torres
#
60 08aa5d9e Serge Torres
#echo $MAX_ERROR $ARGS_FOR_VANDERMONDE
61 08aa5d9e Serge Torres
$CREATE_DIGITS_FILE $CONFIG_FILE $DIGITS_FILE
62 08aa5d9e Serge Torres
if [ $? != 0 ]
63 08aa5d9e Serge Torres
 then
64 08aa5d9e Serge Torres
   echo
65 08aa5d9e Serge Torres
   echo
66 08aa5d9e Serge Torres
   echo The creation of the digits file failed.
67 08aa5d9e Serge Torres
   echo Aborting the program!
68 08aa5d9e Serge Torres
   echo
69 08aa5d9e Serge Torres
   exit 1
70 08aa5d9e Serge Torres
fi
71 08aa5d9e Serge Torres
$CREATE_VANDERMONDE $ARGS_FOR_VANDERMONDE | $INV_VANDERMONDE > $INV_FILE
72 08aa5d9e Serge Torres
if [ $? != 0 ]
73 08aa5d9e Serge Torres
 then
74 08aa5d9e Serge Torres
   echo
75 08aa5d9e Serge Torres
   echo
76 08aa5d9e Serge Torres
   echo The creation and the inversion of the Vandermonde matrix failed.
77 08aa5d9e Serge Torres
   echo Aborting the program!
78 08aa5d9e Serge Torres
   echo
79 08aa5d9e Serge Torres
   exit 1
80 08aa5d9e Serge Torres
fi
81 08aa5d9e Serge Torres
ARGS=`$PRINT_GENERATOR_VECTOR $ARGS_FOR_VANDERMONDE`
82 08aa5d9e Serge Torres
if [ $? != 0 ]
83 08aa5d9e Serge Torres
 then
84 08aa5d9e Serge Torres
   echo
85 08aa5d9e Serge Torres
   echo
86 08aa5d9e Serge Torres
   echo Could not create the generator for the offset vector.
87 08aa5d9e Serge Torres
   echo Aborting the program!
88 08aa5d9e Serge Torres
   echo
89 08aa5d9e Serge Torres
   exit 1
90 08aa5d9e Serge Torres
fi
91 08aa5d9e Serge Torres
ARGS="$INV_FILE $DIGITS_FILE $MAX_ERROR $ARGS"
92 08aa5d9e Serge Torres
$W_GENERATOR $ARGS > $W_FILE
93 08aa5d9e Serge Torres
if [ $? != 0 ]
94 08aa5d9e Serge Torres
 then
95 08aa5d9e Serge Torres
   echo
96 08aa5d9e Serge Torres
   echo
97 08aa5d9e Serge Torres
   echo Could not compute the offset vector.
98 08aa5d9e Serge Torres
   echo Aborting the program!
99 08aa5d9e Serge Torres
   echo
100 08aa5d9e Serge Torres
   exit 1
101 08aa5d9e Serge Torres
fi
102 08aa5d9e Serge Torres
$PRINT_POINTS_LIST $ARGS_FOR_POINTS_LIST > $PREPARE_POINTS_FILE
103 08aa5d9e Serge Torres
if [ $? != 0 ]
104 08aa5d9e Serge Torres
 then
105 08aa5d9e Serge Torres
   echo
106 08aa5d9e Serge Torres
   echo
107 08aa5d9e Serge Torres
   echo Could not get the points list.
108 08aa5d9e Serge Torres
   echo Aborting the program!
109 08aa5d9e Serge Torres
   echo
110 08aa5d9e Serge Torres
   exit 1
111 08aa5d9e Serge Torres
fi
112 08aa5d9e Serge Torres
ARGS=`cat $PREPARE_POINTS_FILE`
113 08aa5d9e Serge Torres
ARGS="$W_FILE $DIGITS_FILE $MAX_ERROR $ARGS"
114 08aa5d9e Serge Torres
$MKLOOPS_GENERATOR $ARGS > $MKLOOPS_FILE
115 08aa5d9e Serge Torres
if [ $? != 0 ]
116 08aa5d9e Serge Torres
 then
117 08aa5d9e Serge Torres
   echo
118 08aa5d9e Serge Torres
   echo
119 08aa5d9e Serge Torres
   echo Could not generate the data for PIP.
120 08aa5d9e Serge Torres
   echo Aborting the program!
121 08aa5d9e Serge Torres
   echo
122 08aa5d9e Serge Torres
   exit 1
123 08aa5d9e Serge Torres
fi
124 08aa5d9e Serge Torres
#
125 08aa5d9e Serge Torres
# For debuging
126 08aa5d9e Serge Torres
#
127 08aa5d9e Serge Torres
if [ ! -z $1 ]
128 08aa5d9e Serge Torres
  then
129 08aa5d9e Serge Torres
    cat $MKLOOPS_FILE
130 08aa5d9e Serge Torres
fi
131 08aa5d9e Serge Torres
$ADD_BOUNDS_TO_MKLOOPS $MKLOOPS_FILE
132 08aa5d9e Serge Torres
if [ $? != 0 ]
133 08aa5d9e Serge Torres
 then
134 08aa5d9e Serge Torres
   echo
135 08aa5d9e Serge Torres
   echo
136 08aa5d9e Serge Torres
   echo Could not add the bounds to data for PIP.
137 08aa5d9e Serge Torres
   echo Aborting the program!
138 08aa5d9e Serge Torres
   echo
139 08aa5d9e Serge Torres
   exit 1
140 08aa5d9e Serge Torres
fi
141 08aa5d9e Serge Torres
$COMPUTE_BOUNDS_FOR_MKLOOPS $MKLOOPS_FILE
142 08aa5d9e Serge Torres
if [ $? != 0 ]
143 08aa5d9e Serge Torres
  then
144 08aa5d9e Serge Torres
    echo
145 08aa5d9e Serge Torres
    echo
146 08aa5d9e Serge Torres
    echo Could not compute valid loops.
147 08aa5d9e Serge Torres
    echo Aborting the program!
148 08aa5d9e Serge Torres
    echo
149 08aa5d9e Serge Torres
    cat $BOUNDS_FILE
150 08aa5d9e Serge Torres
    exit 1
151 08aa5d9e Serge Torres
fi