Select Git revision
eistype.cpp
-
Carl Philipp Klemm authoredCarl Philipp Klemm authored
eistype.cpp 9.74 KiB
#include "eistype.h"
#include <fstream>
#include <sstream>
#include <algorithm>
#include <string>
#include <vector>
#include "strops.h"
#include "log.h"
#include "basicmath.h"
using namespace eis;
bool eis::saveToDisk(const EisSpectra& data, const std::filesystem::path& path)
{
Log(Log::INFO)<<__func__<<" is deprecated";
return data.saveToDisk(path);
}
EisSpectra eis::loadFromDisk(const std::filesystem::path& path)
{
Log(Log::INFO)<<__func__<<" is deprecated";
return EisSpectra(path);
}
void eis::Range::print(int level) const
{
Log(static_cast<Log::Level>(level))<<"Range "<<start<<'-'<<end<<' '<<count<<" steps"<<(log ? " Log" : "");
}
std::vector<fvalue> eis::Range::getRangeVector() const
{
std::vector<fvalue> out(count, 0);
for(size_t i = 0; i < count; ++i)
out[i] = at(i);
return out;
}
std::vector<Range> eis::Range::rangesFromParamString(const std::string& paramStr, size_t count)
{
std::vector<std::string> tokens = tokenize(paramStr, ',');
std::vector<Range> ranges(tokens.size());
for(size_t i = 0; i < tokens.size(); ++i)
{
bool log = false;
std::string& token = tokens[i];
std::vector<std::string> subTokens = tokenize(token, '~');
if(token.back() == 'l' || token.back() == 'L')
{
log = true;
token.pop_back();
}
try
{
if(subTokens.size() == 1)
{
ranges[i] = Range(std::stod(subTokens[0]), std::stod(subTokens[0]), 1, log);
}
else
{
ranges[i] = Range(std::stod(subTokens[0]), std::stod(subTokens[1]), count, log);
if(subTokens.size() > 2)
throw std::invalid_argument("");
}
}
catch(const std::invalid_argument& ia)