code: public static function WEIBULL($value, $alpha, $beta, $cumulative)
      {
          $value = Functions::flattenSingleValue($value);
          $alpha = Functions::flattenSingleValue($alpha);
          $beta = Functions::flattenSingleValue($beta);
  
          if ((is_numeric($value)) && (is_numeric($alpha)) && (is_numeric($beta))) {
              if (($value < 0) || ($alpha <= 0) || ($beta <= 0)) {
                  return Functions::NAN();
              }
              if ((is_numeric($cumulative)) || (is_bool($cumulative))) {
                  if ($cumulative) {
                      return 1 - exp(0 - pow($value / $beta, $alpha));
                  }
  
                  return ($alpha / pow($beta, $alpha)) * pow($value, $alpha - 1) * exp(0 - pow($value / $beta, $alpha));
              }
          }
  
          return Functions::VALUE();
      }
docs: WEIBULL.
  
  Returns the Weibull distribution. Use this distribution in reliability
  analysis, such as calculating a device's mean time to failure.
  
  @param float $value
  @param float $alpha Alpha Parameter
  @param float $beta Beta Parameter
  @param bool $cumulative
  
  @return float