From 012f25c2b7904a7be9f8d492286715aaf5623389 Mon Sep 17 00:00:00 2001
From: Carl Klemm <carl@uvos.xyz>
Date: Tue, 19 Apr 2022 14:21:02 +0200
Subject: [PATCH] Model: give sweep parameter to sweepParams callback

---
 main.cpp  | 2 +-
 model.cpp | 4 ++--
 model.h   | 2 +-
 3 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/main.cpp b/main.cpp
index 02d7f9f..064b8c4 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 43d16e9..fd167ff 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 d5348f7..da11a0b 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();
-- 
GitLab