
cp ../include/NTL/config.h ../include/NTL/old_config.h

rm GMP_LIP 
rm NO_GMP_LIP

make InitSettings
./InitSettings > isettings

make WizComp

cat clr_LONG_LONG clr_AVOID_FLOAT > best1
cat clr_LONG_LONG clr_AVOID_FLOAT clr_TBL_REM clr_AVOID_BRANCHING clr_FFT_PIPELINE set_WIZARD_HACK isettings > isettings1
sed -f isettings1 config_template > ../include/NTL/config.h
make wntl.a
sh RemoveProg MulTimeTest

if test -f NO_GMP_LIP
then

   make MulTimeTest
   if test -f MulTimeTest
   then
   ./MulTimeTest > XXX1
   else
   echo "999999999999999 DEFAULT" > XXX1
   fi
   
   cat mul_banner XXX1
   
   
   
   cat clr_LONG_LONG set_AVOID_FLOAT clr_TBL_REM clr_AVOID_BRANCHING clr_FFT_PIPELINE set_WIZARD_HACK isettings > isettings1
   sed -f isettings1 config_template > ../include/NTL/config.h
   rm lip.o
   make wntl.a
   sh RemoveProg MulTimeTest
   make MulTimeTest
   if test -f MulTimeTest
   then
   ./MulTimeTest > XXX2
   else
   echo "999999999999999 AVOID_FLOAT" > XXX2
   fi
   
   cat mul_banner XXX2
   
   if ./WizComp XXX2 XXX1
   then
   cat clr_LONG_LONG set_AVOID_FLOAT > best1
   cp XXX2 XXX1
   fi
   
   
   cat set_LONG_LONG clr_AVOID_FLOAT clr_TBL_REM clr_AVOID_BRANCHING clr_FFT_PIPELINE set_WIZARD_HACK isettings > isettings1
   sed -f isettings1 config_template > ../include/NTL/config.h
   rm lip.o
   make wntl.a
   sh RemoveProg MulTimeTest
   make MulTimeTest
   if test -f MulTimeTest
   then
   ./MulTimeTest > XXX2
   else
   echo "999999999999999 LONG_LONG" > XXX2
   fi
   
   cat mul_banner XXX2
   
   if ./WizComp XXX2 XXX1
   then
   cat set_LONG_LONG clr_AVOID_FLOAT > best1
   cp XXX2 XXX1
   fi


fi

cat best1 clr_TBL_REM clr_AVOID_BRANCHING clr_FFT_PIPELINE set_WIZARD_HACK isettings > isettings1
sed -f isettings1 config_template > ../include/NTL/config.h
rm lip.o
make wntl.a
sh RemoveProg PolyTimeTest
make PolyTimeTest
if test -f PolyTimeTest
then
./PolyTimeTest > XXX1
else
echo "999999999999999" > XXX1
fi

cat poly_banner XXX1
cat clr_FFT_PIPELINE > best2

cat best1 clr_TBL_REM clr_AVOID_BRANCHING set_FFT_PIPELINE set_WIZARD_HACK isettings > isettings1
sed -f isettings1 config_template > ../include/NTL/config.h
rm FFT.o
make wntl.a
sh RemoveProg PolyTimeTest
make PolyTimeTest
if test -f PolyTimeTest
then
./PolyTimeTest > XXX2
else
echo "999999999999999 FFT_PIPELINE" > XXX2
fi

cat poly_banner XXX2

if ./WizComp XXX2 XXX1
then
cat set_FFT_PIPELINE  > best2
cp XXX2 XXX1
else
rm FFT.o
fi

cat clr_TBL_REM  > best3

if test -f NO_GMP_LIP
then

   cat best1 set_TBL_REM clr_AVOID_BRANCHING best2 set_WIZARD_HACK isettings > isettings1
   sed -f isettings1 config_template > ../include/NTL/config.h
   rm lip.o 
   make wntl.a
   sh RemoveProg PolyTimeTest
   make PolyTimeTest
   if test -f PolyTimeTest
   then
   ./PolyTimeTest > XXX2
   else
   echo "999999999999999 TBL_REM" > XXX2
   fi
   
   cat poly_banner XXX2
   
   if ./WizComp XXX2 XXX1
   then
   cat set_TBL_REM  > best3
   cp XXX2 XXX1
   fi

fi

cp XXX1 XXX1a
cp best2 best2a
cp best3 best3a


cat best1 clr_TBL_REM set_AVOID_BRANCHING clr_FFT_PIPELINE set_WIZARD_HACK isettings > isettings1
sed -f isettings1 config_template > ../include/NTL/config.h
rm *.o
make wntl.a
sh RemoveProg PolyTimeTest
make PolyTimeTest
if test -f PolyTimeTest
then
./PolyTimeTest > XXX1
else
echo "999999999999999 AVOID_BRANCHING" > XXX1
fi

cat poly_banner XXX1
cat clr_FFT_PIPELINE > best2

cat best1 clr_TBL_REM set_AVOID_BRANCHING set_FFT_PIPELINE set_WIZARD_HACK isettings > isettings1
sed -f isettings1 config_template > ../include/NTL/config.h
rm FFT.o
make wntl.a
sh RemoveProg PolyTimeTest
make PolyTimeTest
if test -f PolyTimeTest
then
./PolyTimeTest > XXX2
else
echo "999999999999999 AVOID_BRANCHING FFT_PIPELINE" > XXX2
fi

cat poly_banner XXX2

if ./WizComp XXX2 XXX1
then
cat set_FFT_PIPELINE  > best2
cp XXX2 XXX1
else
rm FFT.o
fi


cat clr_TBL_REM  > best3

if test -f NO_GMP_LIP
then

   cat best1 set_TBL_REM set_AVOID_BRANCHING best2 set_WIZARD_HACK isettings > isettings1
   sed -f isettings1 config_template > ../include/NTL/config.h
   rm lip.o 
   make wntl.a
   sh RemoveProg PolyTimeTest
   make PolyTimeTest
   if test -f PolyTimeTest
   then
   ./PolyTimeTest > XXX2
   else
   echo "999999999999999 AVOID_BRANCHING TBL_REM" > XXX2
   fi
   
   cat poly_banner XXX2
   
   if ./WizComp XXX2 XXX1
   then
   cat set_TBL_REM  > best3
   cp XXX2 XXX1
   fi
   
fi



cat set_AVOID_BRANCHING > best4

if ./WizComp XXX1 XXX1a
then
echo "" > XXX
else
cat best2a > best2
cat best3a > best3
cat clr_AVOID_BRANCHING > best4
fi

cat best1 best2 best3 best4 > best


cat isettings best clr_WIZARD_HACK > isettings1
sed -f isettings1 config_template > ../include/NTL/config.h

make DispSettings

echo "*"
echo "*"
echo "* The wizard is done!"
echo "*"
echo "*"

./DispSettings
