Из вашего примера видно, что logb(double, double)
является логарифмической функцией, которая возвращает лог в указанное base
. Для Swift нет эквивалента, но вы можете написать свой собственный, используя стандартную функцию log
:
func logbase(_ n: Double, _ base: Double) -> Double {
return log(n) / log(base)
}
Тем не менее, ваша оригинальная функция использует logb
, чтобы найти логарифм для основания 2.7183
которая является той же самой базой, которую log
использует естественно (ну, до 4 десятичных знаков), поэтому
logbase(n, 2.7183)
и
log(n)
по существу дают тот же результат.
Кроме того, ваша формула использует pow(2.7183, n)
для поднятия базы 2.7183
до степени.
Но
pow(2.7183, n)
и
exp(n)
Дать аналогичный результат (отличается только потому, что exp
использует более точное значение для e
- основание натуральные логарифмы).
Собрав их вместе, ваша формула может быть записана как:
let valor = exp( ((1.17896 * diametro) / 100.0) + (0.8241 * log(diametro / 100.0)) + 3.4987 )