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

.. rm temporary vectors and extra loop

parent e52ebd5b
No related branches found
No related tags found
No related merge requests found
...@@ -82,32 +82,24 @@ AngularSpecScan::~AngularSpecScan() = default; ...@@ -82,32 +82,24 @@ AngularSpecScan::~AngularSpecScan() = default;
std::vector<SpecularSimulationElement> AngularSpecScan::generateSimulationElements() const std::vector<SpecularSimulationElement> AngularSpecScan::generateSimulationElements() const
{ {
std::vector<std::pair<double, double>> w_i_pairs;
w_i_pairs.reserve(numberOfSimulationElements());
const size_t axis_size = m_inc_angle->size();
const auto wls = extractValues(applyWlResolution(), const auto wls = extractValues(applyWlResolution(),
[](const ParameterSample& sample) { return sample.value; }); [](const ParameterSample& sample) { return sample.value; });
const auto incs = extractValues(applyIncResolution(), const auto incs = extractValues(applyIncResolution(),
[](const ParameterSample& sample) { return sample.value; }); [](const ParameterSample& sample) { return sample.value; });
for (size_t i = 0; i < axis_size; ++i)
for (size_t k = 0, size_incs = incs[i].size(); k < size_incs; ++k)
for (size_t j = 0, size_wls = wls[i].size(); j < size_wls; ++j)
w_i_pairs.emplace_back(wls[i][j], incs[i][k]);
const size_t res_size = w_i_pairs.size();
std::vector<SpecularSimulationElement> result; std::vector<SpecularSimulationElement> result;
result.reserve(res_size); result.reserve(numberOfSimulationElements());
for (size_t i = 0; i < res_size; ++i) { for (size_t i = 0; i < m_inc_angle->size(); ++i) {
const double wl = w_i_pairs[i].first; for (size_t k = 0, size_incs = incs[i].size(); k < size_incs; ++k) {
const double inc = w_i_pairs[i].second; const double inc = incs[i][k];
result.emplace_back(wl, -inc); for (size_t j = 0, size_wls = wls[i].size(); j < size_wls; ++j) {
if (wl < 0 || inc < 0 || inc > M_PI_2) const double wl = wls[i][j];
result.back().setCalculationFlag(false); // false = exclude from calculations result.emplace_back(wl, -inc);
if (wl < 0 || inc < 0 || inc > M_PI_2)
result.back().setCalculationFlag(false); // false = exclude from calculations
}
}
} }
return result; return result;
} }
......
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