diff --git a/main.cpp b/main.cpp index 02d7f9f6b12368c56fe7877cc4d5e600991029d9..064b8c4dae8fd6b6eb59538210bc252ad181bfd7 100644 --- a/main.cpp +++ b/main.cpp @@ -37,7 +37,7 @@ void runSingle() 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; ++i; diff --git a/model.cpp b/model.cpp index 43d16e97dd4305120c2900faee34ef15a883b9c0..fd167ff7466d2ca3f633c9b2da437fd7da6b3ecb 100644 --- a/model.cpp +++ b/model.cpp @@ -245,7 +245,7 @@ std::vector<Model::DataPoint> Model::sweep(const Range& omega) 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(); if(componantRanges.size() != parametersCount) @@ -294,7 +294,7 @@ bool Model::sweepParams(const std::vector<Range>& componantRanges, const Range& break; } std::vector<DataPoint> result = sweep(omega); - dataCb(result); + dataCb(result, currentParam); } return true; diff --git a/model.h b/model.h index d5348f76770e406076b28f077871cd5a5b27d2e5..da11a0b0d62e8f17eccd8262209dd0ec79c44438 100644 --- a/model.h +++ b/model.h @@ -60,7 +60,7 @@ public: Model(const std::string& str); DataPoint execute(double omaga); 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::vector<Componant*> getFlatComponants(); size_t getFlatParametersCount();