Skip to content
Snippets Groups Projects
Commit 554c85b7 authored by Wuttke, Joachim's avatar Wuttke, Joachim
Browse files

inline createPField1D

parent 88c3ba13
No related branches found
No related tags found
1 merge request!1980cleanup DataUtil; improve table reading
...@@ -41,13 +41,6 @@ DataUtil::flatten2D(const std::vector<std::vector<double>>& vec) ...@@ -41,13 +41,6 @@ DataUtil::flatten2D(const std::vector<std::vector<double>>& vec)
return {nrows, ncols, outvec}; return {nrows, ncols, outvec};
} }
std::unique_ptr<Datafield> DataUtil::createPField1D(const std::vector<double>& vec)
{
const size_t N = vec.size();
std::vector<const Scale*> axes{newEquiDivision("axis0", N, 0.0, (double)N)};
return std::make_unique<Datafield>(std::move(axes), vec);
}
std::unique_ptr<Datafield> DataUtil::createPField2D(const std::vector<std::vector<double>>& vec, std::unique_ptr<Datafield> DataUtil::createPField2D(const std::vector<std::vector<double>>& vec,
const std::vector<std::vector<double>>& stdv) const std::vector<std::vector<double>>& stdv)
{ {
......
...@@ -28,7 +28,6 @@ namespace DataUtil { ...@@ -28,7 +28,6 @@ namespace DataUtil {
std::tuple<size_t, size_t, std::vector<double>> flatten2D(const std::vector<std::vector<double>>&); std::tuple<size_t, size_t, std::vector<double>> flatten2D(const std::vector<std::vector<double>>&);
std::unique_ptr<Datafield> createPField1D(const std::vector<double>& vec);
std::unique_ptr<Datafield> createPField2D(const std::vector<std::vector<double>>& vec, std::unique_ptr<Datafield> createPField2D(const std::vector<std::vector<double>>& vec,
const std::vector<std::vector<double>>& stdv = {}); const std::vector<std::vector<double>>& stdv = {});
......
...@@ -13,6 +13,7 @@ ...@@ -13,6 +13,7 @@
// ************************************************************************************************ // ************************************************************************************************
#include "Device/IO/ReadWrite2DTable.h" #include "Device/IO/ReadWrite2DTable.h"
#include "Base/Axis/MakeScale.h"
#include "Base/Axis/Scale.h" #include "Base/Axis/Scale.h"
#include "Base/Util/Assert.h" #include "Base/Util/Assert.h"
#include "Base/Util/StringUtil.h" #include "Base/Util/StringUtil.h"
...@@ -91,14 +92,16 @@ Datafield* Util::RW::read2DTable(std::istream& input_stream) ...@@ -91,14 +92,16 @@ Datafield* Util::RW::read2DTable(std::istream& input_stream)
throw std::runtime_error("Number of elements is not the same for all rows"); throw std::runtime_error("Number of elements is not the same for all rows");
// Convert: // Convert:
if (nrows < 2) if (nrows < 2) {
return DataUtil::createPField1D(data[0]).release(); std::vector<const Scale*> axes{newEquiDivision("axis0", ncols, 0.0, (double)ncols)};
return new Datafield(std::move(axes), data[0]);
}
if (ncols < 2) { if (ncols < 2) {
const size_t size = data.size(); std::vector<const Scale*> axes{newEquiDivision("axis0", nrows, 0.0, (double)nrows)};
std::vector<double> vector1d(size); std::vector<double> vector1d(nrows);
for (size_t i = 0; i < size; ++i) for (size_t i = 0; i < nrows; ++i)
vector1d[i] = data[i][0]; vector1d[i] = data[i][0];
return DataUtil::createPField1D(vector1d).release(); return new Datafield(std::move(axes), vector1d);
} }
return DataUtil::createPField2D(data).release(); return DataUtil::createPField2D(data).release();
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment