void PoldiSpectrumDomainFunction::poldiFunction1D( const std::vector<int> &indices, const FunctionDomain1D &domain, FunctionValues &values) const { FunctionValues localValues(domain); m_profileFunction->functionLocal(localValues.getPointerToCalculated(0), domain.getPointerAt(0), domain.size()); double chopperSlitCount = static_cast<double>(m_chopperSlitOffsets.size()); for (auto index : indices) { std::vector<double> factors(domain.size()); for (size_t i = 0; i < factors.size(); ++i) { values.addToCalculated(i, chopperSlitCount * localValues[i] * m_timeTransformer->detectorElementIntensity( domain[i], static_cast<size_t>(index))); } } }