#include "strutil.h" #include "common.h" #include "polyfit.h" #include "math.h" #include #include namespace SIGMOD { // namespace SIGMOD using namespace std; PolyFit::PolyFit() : m_remove_pol_from_data(false) { } PolyFit::PolyFit(int order) : m_polorder(order), m_remove_pol_from_data(false) {} PolyFit::PolyFit(int order, vector& data) : m_remove_pol_from_data(false), m_polorder(order) { transformData(data); doFit(order,m_data); } PolyFit::PolyFit(int order, string filename, vector columns) : m_input_filename(filename), m_remove_pol_from_data(false), m_polorder(order) { // bool ok = readData(filename,columns); bool ok = access().readData(filename,columns,m_data); m_processedData = m_data; doFit(order,m_data); } void PolyFit::writeData() { int i; string base, extension; Strutil::fileBaseExtension(m_input_filename,base,extension); string gnuplot_file = base + string("_plot.plt"); ofstream gnu(gnuplot_file.c_str(),ios::out); string data_file = base + "_fit.txt"; std::ofstream out(data_file.c_str(),ios::out); cerr << "Writing gnuplot file "<& vdata) { int i; m_data.reserve(vdata.size()); for (i=0;i& data) { int p,j; double nomsum_alfa, denomsum_alfa; double nomsum_beta, denomsum_beta; double nomsum_fourier, denomsum_fourier; double polval, polval2, polval_1, polval_1_2; // calculate alfa and beta coeffs and store in m_pol data struct. cerr << "Evaluating Orthogonal polynomial..."<