1#C3HOME=~/Documents/c3 2# C3HOME=~/Software/c3 3 4###################################### 5# Function Information 6###################################### 7RVTYPE=uniform 8DIM=5 9LB=0.0 10UB=1.0 11FUNC=3 12 13###################################### 14# Regression options (order=5,rank=4 for profile data) 15###################################### 16CV=0 17MAXORDER=5 18RANK=4 19VERBOSE=2 20FTFILE="trainedft.c3" 21 22###################################### 23# Generate Training Data (1000 for profile data) 24###################################### 25 26# Sample training data 27NSAMPLE=1000 28FILENAME="trainingx.dat" 29GENSAMPLES="$C3HOME/bin/random_sample -r $NSAMPLE -t $RVTYPE -c $DIM -l $LB -u $UB" 30 31echo "$GENSAMPLES > $FILENAME" 32$GENSAMPLES > $FILENAME 33 34# Function Evaluation 35EVALFILE="trainingy.dat" 36EVALFUNC="$C3HOME/bin/simlib_util -f $FUNC -i $FILENAME -n $NSAMPLE -o $EVALFILE" 37 38echo $EVALFUNC 39$EVALFUNC 40 41###################################### 42# Perform Regression 43###################################### 44REGRESS="$C3HOME/profiling/regress/bin/alsregress -x $FILENAME -y $EVALFILE -m $MAXORDER -r $RANK -v $VERBOSE -o $FTFILE" 45 46if [ $CV == 1 ] 47then 48 CVPARAM="--cv-rank 2 --cv-rank 4 --cv-rank 6 --cv-num 2 --cv-num 4 --cv-num 6 --cv-kfold 5 " 49 echo $REGRESS $CVPARAM 50 $REGRESS $CVPARAM 51else 52 echo $REGRESS 53 # valgrind --leak-check=full $REGRESS # Just generate regression 54 # time $REGRESS # Just generate regression 55 56 # Do profiling 57 valgrind --tool=callgrind $REGRESS 58 # python $C3HOME/profiling/gprof2dot.py -f callgrind callgrind.out.* | dot -Tsvg -o output.svg 59 # rm callgrind.out.* 60fi 61 62 63###################################### 64# Generate Testing Data 65###################################### 66NSAMPLE_TEST=10000 67XFILE_TEST="test_x.dat" 68GENTESTSAMPLES="$C3HOME/bin/random_sample -r $NSAMPLE_TEST -t $RVTYPE -c $DIM -l $LB -u $UB" 69 70echo "$GENTESTSAMPLES > $XFILE_TEST" 71$GENTESTSAMPLES > $XFILE_TEST 72 73###################################### 74# Evaluate the true function 75###################################### 76YFILE_TEST="test_y.dat" 77TESTVALSFUNC="$C3HOME/bin/simlib_util -f $FUNC -i $XFILE_TEST -n $NSAMPLE_TEST -o $YFILE_TEST" 78echo $TESTVALSFUNC 79$TESTVALSFUNC 80 81###################################### 82# Evaluate the regressed function 83###################################### 84EVALFT="$C3HOME/bin/ftstats -x $XFILE_TEST -f $FTFILE" 85echo $EVALFT 86$EVALFT > ftevals.dat 87 88###################################### 89# Get Squared Error 90###################################### 91error=$(awk 'FNR==NR { file1[NR]=$1; next; }; { diff=$1-file1[FNR]; sum+=diff^2; den+=file1[FNR]^2}; 92 END { print sum/den; }' test_y.dat ftevals.dat) 93echo "Relative Error: $error" 94 95 96 97