Skip to content
Snippets Groups Projects
Select Git revision
  • c933b28f966fd28403930bd71be0b32d4b7bebe9
  • master default
  • 1.1
  • 1.0
4 results

eistype.cpp

Blame
  • 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)