code: public static function BESSELK($x, $ord)
      {
          $x = ($x === null) ? 0.0 : Functions::flattenSingleValue($x);
          $ord = ($ord === null) ? 0.0 : Functions::flattenSingleValue($ord);
  
          if ((is_numeric($x)) && (is_numeric($ord))) {
              if (($ord < 0) || ($x == 0.0)) {
                  return Functions::NAN();
              }
  
              switch (floor($ord)) {
                  case 0:
                      $fBk = self::besselK0($x);
  
                      break;
                  case 1:
                      $fBk = self::besselK1($x);
  
                      break;
                  default:
                      $fTox = 2 / $x;
                      $fBkm = self::besselK0($x);
                      $fBk = self::besselK1($x);
                      for ($n = 1; $n < $ord; ++$n) {
                          $fBkp = $fBkm + $n * $fTox * $fBk;
                          $fBkm = $fBk;
                          $fBk = $fBkp;
                      }
              }
  
              return (is_nan($fBk)) ? Functions::NAN() : $fBk;
          }
  
          return Functions::VALUE();
      }
docs: BESSELK.
  
  Returns the modified Bessel function Kn(x), which is equivalent to the Bessel functions evaluated
  for purely imaginary arguments.
  
  Excel Function:
  BESSELK(x,ord)
  
  @category Engineering Functions
  
  @param float $x The value at which to evaluate the function.
  If x is nonnumeric, BESSELK returns the #VALUE! error value.
  @param int $ord The order of the Bessel function. If n is not an integer, it is truncated.
  If $ord is nonnumeric, BESSELK returns the #VALUE! error value.
  If $ord < 0, BESSELK returns the #NUM! error value.
  
  @return float