Skip to content
Snippets Groups Projects
Select Git revision
  • a739b851f7e5c0d949ce3d4a36a4ad5249a6db70
  • develop default protected
  • feature/webrtc
  • feature/mesh-based-reprojection
  • feature/linux-fixes
  • feature/dual-layer-reprojection
  • feature/frame-invalidation
  • feature/plot-script
  • bug/jittering
  • feature/indirect-sky
  • feature/depth-peeling-reprojection protected
  • master
12 results

Modules.md

Blame
  • warburg.cpp 1.44 KiB
    #include "warburg.h"
    #include "strops.h"
    #include <cstdlib>
    #include <cmath>
    #include <cassert>
    
    #include "log.h"
    
    using namespace eis;
    
    Warburg::Warburg(fvalue a)
    {
    	ranges.clear();
    	ranges.push_back(Range(a, a, 1));
    }
    
    Warburg::Warburg(std::string paramStr, size_t count, bool defaultToRange)
    {
    	if(!paramStr.empty())
    		ranges = Range::rangesFromParamString(paramStr, count);
    
    	if(ranges.size() != paramCount())
    	{
    		ranges.clear();
    		if(defaultToRange)
    			ranges.push_back(Range(10, 100, count, true));
    		else
    			ranges.push_back(Range(50, 50, 1));
    		Log(Log::WARN)<<__func__<<" default range of "<<getComponantString(false)<<" will be used";
    	}
    }
    
    std::complex<fvalue> Warburg::execute(fvalue omega)
    {
    	assert(ranges.size() == paramCount());
    	fvalue N = ranges[0][ranges[0].step]/(std::sqrt(omega));
    	return std::complex<fvalue>(N, 0-N);
    }
    
    size_t Warburg::paramCount()
    {
    	return 1;
    }
    
    char Warburg::getComponantChar() const
    {
    	return staticGetComponantChar();
    }
    
    std::string Warburg::getCode(std::vector<std::string>& parameters)
    {
    	parameters.push_back(getUniqueName() + "_0");
    	std::string N = parameters.back() + "/std::sqrt(omega)";
    	std::string out = "std::complex<fvalue>(" + N + ", 0-" + N + ")";
    	return out;
    }
    
    std::string Warburg::getTorchScript(std::vector<std::string>& parameters)
    {
    	parameters.push_back(getUniqueName() + "_0");
    
    	std::string N = "(" + parameters.back() + "/torch.sqrt(omegas))";
    	std::string out =  N + "-" + N + "*1j";
    	return out;
    }