arma::Mat<double> GallaghersGaussian101mePeaksFunction::getRandomLocalParameterConditionings() const { arma::Col<double> conditions(101); conditions(0) = 49.5; conditions.tail(conditions.n_elem - 1) = arma::conv_to<arma::Col<double>>::from(getRandomPermutation(conditions.n_elem - 1)); arma::Mat<double> localParameterConditionings(numberOfDimensions_, conditions.n_elem); for (arma::uword n = 0; n < conditions.n_elem; ++n) { const double condition = std::pow(10.0, conditions(n) / 33.0); localParameterConditionings.col(n) = getParameterConditioning(condition) / std::sqrt(condition); } return localParameterConditionings; }
arma::Mat<T> GallaghersGaussian21hiPeaksFunction<T>::getRandomLocalParameterConditionings() const noexcept { arma::Col<T> conditions(21); conditions(0) = static_cast<T>(19.0L); conditions.tail(conditions.n_elem - 1) = arma::conv_to<arma::Col<T>>::from(getRandomPermutation(conditions.n_elem - 1)); arma::Mat<T> localParameterConditionings(this->numberOfDimensions_, conditions.n_elem); for (std::size_t n = 0; n < conditions.n_elem; ++n) { const T& condition = std::pow(static_cast<T>(1000.0L), conditions(n) / static_cast<T>(19.0L)); localParameterConditionings.col(n) = this->getParameterConditioning(condition) / std::sqrt(condition); } return localParameterConditionings; }