///|
/// Returns exponentially scaled modified Bessel function of the third kind of order zero of the argument.
pub fn bessel_k0e(x : Double) -> Double {
  if x <= 0.0 {
    return @double.not_a_number
  }
  if x <= 2.0 {
    let y = x * x - 2.0
    let y = chbevl(y, k0_arrA) - log(0.5 * x) * bessel_i0(x)
    return y * exp(x)
  }
  return chbevl(8.0 / x - 2.0, k0_arrB) / sqrt(x)
}

///|
/// `k0e` is an alias for `bessel_k0e`.
pub let k0e : (Double) -> Double = bessel_k0e