From 3643b52eac4f65c5e3a12df4fc3aeb56c02f35b6 Mon Sep 17 00:00:00 2001 From: Carl Philipp Klemm <philipp@uvos.xyz> Date: Mon, 16 May 2022 14:14:53 +0200 Subject: [PATCH] move rescale to basicmath make eisgenerator_export generate csv header even in quiet mode --- basicmath.cpp | 15 +++++++++++++++ eisgenerator/basicmath.h | 1 + eisgenerator/normalize.h | 1 - main.cpp | 2 +- normalize.cpp | 15 --------------- test.cpp | 1 + 6 files changed, 18 insertions(+), 17 deletions(-) diff --git a/basicmath.cpp b/basicmath.cpp index 71a9f93..fa68fad 100644 --- a/basicmath.cpp +++ b/basicmath.cpp @@ -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; +} diff --git a/eisgenerator/basicmath.h b/eisgenerator/basicmath.h index fa389b4..0cc0d01 100644 --- a/eisgenerator/basicmath.h +++ b/eisgenerator/basicmath.h @@ -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); } diff --git a/eisgenerator/normalize.h b/eisgenerator/normalize.h index 1d96888..21409e8 100644 --- a/eisgenerator/normalize.h +++ b/eisgenerator/normalize.h @@ -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); } diff --git a/main.cpp b/main.cpp index 062131c..b69c1b8 100644 --- a/main.cpp +++ b/main.cpp @@ -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'; diff --git a/normalize.cpp b/normalize.cpp index 7d7c3e8..a7cb4df 100644 --- a/normalize.cpp +++ b/normalize.cpp @@ -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; -} diff --git a/test.cpp b/test.cpp index 9940be5..1294186 100644 --- a/test.cpp +++ b/test.cpp @@ -5,6 +5,7 @@ #include "model.h" #include "log.h" #include "normalize.h" +#include "basicmath.h" void printDataVect(const std::vector<eis::DataPoint> in) { -- GitLab