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/aioregress -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 53 echo $REGRESS 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.* 60 61 #Do profiling 62 # valgrind --tool=callgrind --simulate-cache=yes $REGRESS 63fi 64 65 66###################################### 67# Generate Testing Data 68###################################### 69NSAMPLE_TEST=10000 70XFILE_TEST="test_x.dat" 71GENTESTSAMPLES="$C3HOME/bin/random_sample -r $NSAMPLE_TEST -t $RVTYPE -c $DIM -l $LB -u $UB" 72 73echo "$GENTESTSAMPLES > $XFILE_TEST" 74$GENTESTSAMPLES > $XFILE_TEST 75 76###################################### 77# Evaluate the true function 78###################################### 79YFILE_TEST="test_y.dat" 80TESTVALSFUNC="$C3HOME/bin/simlib_util -f $FUNC -i $XFILE_TEST -n $NSAMPLE_TEST -o $YFILE_TEST" 81echo $TESTVALSFUNC 82$TESTVALSFUNC 83 84###################################### 85# Evaluate the regressed function 86###################################### 87EVALFT="$C3HOME/bin/ftstats -x $XFILE_TEST -f $FTFILE" 88echo $EVALFT 89$EVALFT > ftevals.dat 90 91###################################### 92# Get Squared Error 93###################################### 94error=$(awk 'FNR==NR { file1[NR]=$1; next; }; { diff=$1-file1[FNR]; sum+=diff^2; den+=file1[FNR]^2}; 95 END { print sum/den; }' test_y.dat ftevals.dat) 96echo "Relative Error: $error" 97 98 99 100