Skip to content
Snippets Groups Projects
Commit 012f25c2 authored by Carl Klemm's avatar Carl Klemm
Browse files

Model: give sweep parameter to sweepParams callback

parent 7ca549d3
Branches
No related tags found
No related merge requests found
...@@ -37,7 +37,7 @@ void runSingle() ...@@ -37,7 +37,7 @@ void runSingle()
std::cout<<"time taken: "<<duration.count()<<" us"<<'\n'; std::cout<<"time taken: "<<duration.count()<<" us"<<'\n';
} }
void sweepCb(std::vector<Model::DataPoint>& data) void sweepCb(std::vector<Model::DataPoint>& data, const std::vector<double>& parameters)
{ {
static size_t i = 0; static size_t i = 0;
++i; ++i;
......
...@@ -245,7 +245,7 @@ std::vector<Model::DataPoint> Model::sweep(const Range& omega) ...@@ -245,7 +245,7 @@ std::vector<Model::DataPoint> Model::sweep(const Range& omega)
return results; return results;
} }
bool Model::sweepParams(const std::vector<Range>& componantRanges, const Range& omega, std::function<void(std::vector<DataPoint>&)> dataCb) bool Model::sweepParams(const std::vector<Range>& componantRanges, const Range& omega, std::function<void(std::vector<DataPoint>&, const std::vector<double>&)> dataCb)
{ {
size_t parametersCount = getFlatParametersCount(); size_t parametersCount = getFlatParametersCount();
if(componantRanges.size() != parametersCount) if(componantRanges.size() != parametersCount)
...@@ -294,7 +294,7 @@ bool Model::sweepParams(const std::vector<Range>& componantRanges, const Range& ...@@ -294,7 +294,7 @@ bool Model::sweepParams(const std::vector<Range>& componantRanges, const Range&
break; break;
} }
std::vector<DataPoint> result = sweep(omega); std::vector<DataPoint> result = sweep(omega);
dataCb(result); dataCb(result, currentParam);
} }
return true; return true;
......
...@@ -60,7 +60,7 @@ public: ...@@ -60,7 +60,7 @@ public:
Model(const std::string& str); Model(const std::string& str);
DataPoint execute(double omaga); DataPoint execute(double omaga);
std::vector<DataPoint> sweep(const Range& omega); std::vector<DataPoint> sweep(const Range& omega);
bool sweepParams(const std::vector<Range>& componantRanges, const Range& omega, std::function<void(std::vector<DataPoint>&)> dataCb); bool sweepParams(const std::vector<Range>& componantRanges, const Range& omega, std::function<void(std::vector<DataPoint>&, const std::vector<double>&)> dataCb);
std::string getModelStr(); std::string getModelStr();
std::vector<Componant*> getFlatComponants(); std::vector<Componant*> getFlatComponants();
size_t getFlatParametersCount(); size_t getFlatParametersCount();
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment