Я пришел через какой-то старый код, который вычисляетЧисленные компромиссы между 1/SQRT (х) и станд :: ехр (-0,5 * станд :: Журнал (х))
double y = 1/std::sqrt(x);
Использование:
constexpr double base16 = 16.0;
double log_base16 = std::log(base16);
double y = std::pow(base16, -0.5 * std::log(x)/log_base16);
Который по существу:
double y = std::exp(-0.5 * std::log(x));
есть ли какие-либо обоснования с учетом численных преимуществ (таких как точность или более вероятно, чтобы избежать сгущенного/над поток) между методами? Возможно, и оригинал автора.
Сколько лет может быть? 'constexpr' был стандартизован в 2011 году. – Potatoswatter
@Potatoswatte Я очистил синтаксис, чтобы сделать пример максимально понятным для людей. – keith