#include <iostream>
#include <fstream>
#include <cstdio>
#include <iomanip>
#include <cstring>

#include "Daubechies.h"

int main()
{
  

   Daubechies Using_Daubechies;

   char File_in[]        = "density_matrix.out"; // Name of the input file

   char File_Daub[]      = "Daubechies.dat";   // Name of the output file with the Daubechies transformation
   char File_Inverse[]   = "InverseOfInverse.dat";   // Name of the output file with Inversion on Daubechies
                                                     // must be identical to File_in[] (used for debugging)
   int Total_Iterations;
   int daubechies_order;

   std::cout << "\n\nProgram written by Pierre Carrier (carri101@umn.edu), January 2009\n\n" 
             << "References:\n" 
             << "Patrick J. Van Fleet, \"Discrete Wavelet Transformations\" (Wyley, New-Jersey, 2007)\n" 
             << "Stephane Mallat, \"A Wavelet Tour of Signal Processing\" (Academic Press, San Diego, 1999)\n\n\n";

   std::cout << "Number of iterations="; std::cin  >> Total_Iterations;
   std::cout << "Daubechies order    ="; std::cin  >> daubechies_order;

   Using_Daubechies.Do_Discrete_Matrix_Transformation(File_in, File_Daub, Total_Iterations, daubechies_order);
   Using_Daubechies.Do_Inverse_Matrix_Transformation(File_Daub, File_Inverse, Total_Iterations, daubechies_order);

}
