Skip to content
Snippets Groups Projects
Commit 3643b52e authored by Carl Philipp Klemm's avatar Carl Philipp Klemm
Browse files

move rescale to basicmath

make eisgenerator_export generate csv header even in quiet mode
parent fa34ae06
Branches
Tags
No related merge requests found
......@@ -100,3 +100,18 @@ fvalue eis::median(std::vector<fvalue> data)
else
return data[data.size()/2];
}
std::vector<eis::DataPoint> eis::rescale(const std::vector<eis::DataPoint>& data, size_t outputSize)
{
std::vector<eis::DataPoint> output(outputSize);
for(size_t i = 0; i < output.size(); ++i)
{
double position = static_cast<double>(i) / (output.size()-1);
double sourcePosF = (data.size()-1)*position;
size_t sourcePos = (data.size()-1)*position;
double frac = sourcePosF - sourcePos;
output[i].im = data[sourcePos].im*(1-frac) + data[sourcePos+1].im*frac;
output[i].omega = data[sourcePos].omega*(1-frac) + data[sourcePos+1].omega*frac;
}
return output;
}
......@@ -11,4 +11,5 @@ namespace eis
std::complex<fvalue> mean(const std::vector<eis::DataPoint>& data);
fvalue median(std::vector<fvalue> data);
std::complex<fvalue> median(const std::vector<eis::DataPoint>& data);
std::vector<eis::DataPoint> rescale(const std::vector<eis::DataPoint>& data, size_t outputSize);
}
......@@ -11,6 +11,5 @@ namespace eis
void normalize(std::vector<eis::DataPoint>& data);
std::vector<eis::DataPoint> reduceRegion(const std::vector<eis::DataPoint>& data, fvalue gradThreshFactor = 0.01);
void eraseSingularites(std::vector<eis::DataPoint>& data);
std::vector<eis::DataPoint> rescale(const std::vector<eis::DataPoint>& data, size_t outputSize);
}
......@@ -60,7 +60,7 @@ static void runSweep(const std::string& modelString, eis::Range omega, bool norm
eis::Log(eis::Log::INFO)<<"results:";
}
eis::Log(eis::Log::INFO)<<(hertz ? "freqency" : "omega")<<",real,im";
std::cout<<(hertz ? "freqency" : "omega")<<",real,im\n";
for(const eis::DataPoint& res : results)
std::cout<<res.omega/(2*M_PI)<<','<<res.im.real()<<','<<(invert ? 0-res.im.imag() : res.im.imag())<<'\n';
......
......@@ -95,18 +95,3 @@ std::vector<eis::DataPoint> eis::reduceRegion(const std::vector<eis::DataPoint>&
return data;
}
std::vector<eis::DataPoint> eis::rescale(const std::vector<eis::DataPoint>& data, size_t outputSize)
{
std::vector<eis::DataPoint> output(outputSize);
for(size_t i = 0; i < output.size(); ++i)
{
double position = static_cast<double>(i) / (output.size()-1);
double sourcePosF = (data.size()-1)*position;
size_t sourcePos = (data.size()-1)*position;
double frac = sourcePosF - sourcePos;
output[i].im = data[sourcePos].im*(1-frac) + data[sourcePos+1].im*frac;
output[i].omega = data[sourcePos].omega*(1-frac) + data[sourcePos+1].omega*frac;
}
return output;
}
......@@ -5,6 +5,7 @@
#include "model.h"
#include "log.h"
#include "normalize.h"
#include "basicmath.h"
void printDataVect(const std::vector<eis::DataPoint> in)
{
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment