Search moodle.org's
Developer Documentation

See Release Notes

  • Bug fixes for general core bugs in 4.0.x will end 8 May 2023 (12 months).
  • Bug fixes for security issues in 4.0.x will end 13 November 2023 (18 months).
  • PHP version: minimum PHP 7.3.0 Note: the minimum PHP version has increased since Moodle 3.10. PHP 7.4.x is also supported.

Differences Between: [Versions 400 and 401] [Versions 400 and 402] [Versions 400 and 403]

   1  <?php
   2  
   3  namespace PhpOffice\PhpSpreadsheet\Calculation\MathTrig\Trig;
   4  
   5  use PhpOffice\PhpSpreadsheet\Calculation\Exception;
   6  use PhpOffice\PhpSpreadsheet\Calculation\MathTrig\Helpers;
   7  
   8  class Cotangent
   9  {
  10      /**
  11       * COT.
  12       *
  13       * Returns the cotangent of an angle.
  14       *
  15       * @param float $angle Number
  16       *
  17       * @return float|string The cotangent of the angle
  18       */
  19      public static function cot($angle)
  20      {
  21          try {
  22              $angle = Helpers::validateNumericNullBool($angle);
  23          } catch (Exception $e) {
  24              return $e->getMessage();
  25          }
  26  
  27          return Helpers::verySmallDenominator(cos($angle), sin($angle));
  28      }
  29  
  30      /**
  31       * COTH.
  32       *
  33       * Returns the hyperbolic cotangent of an angle.
  34       *
  35       * @param float $angle Number
  36       *
  37       * @return float|string The hyperbolic cotangent of the angle
  38       */
  39      public static function coth($angle)
  40      {
  41          try {
  42              $angle = Helpers::validateNumericNullBool($angle);
  43          } catch (Exception $e) {
  44              return $e->getMessage();
  45          }
  46  
  47          return Helpers::verySmallDenominator(1.0, tanh($angle));
  48      }
  49  
  50      /**
  51       * ACOT.
  52       *
  53       * Returns the arccotangent of a number.
  54       *
  55       * @param float $number Number
  56       *
  57       * @return float|string The arccotangent of the number
  58       */
  59      public static function acot($number)
  60      {
  61          try {
  62              $number = Helpers::validateNumericNullBool($number);
  63          } catch (Exception $e) {
  64              return $e->getMessage();
  65          }
  66  
  67          return (M_PI / 2) - atan($number);
  68      }
  69  
  70      /**
  71       * ACOTH.
  72       *
  73       * Returns the hyperbolic arccotangent of a number.
  74       *
  75       * @param float $number Number
  76       *
  77       * @return float|string The hyperbolic arccotangent of the number
  78       */
  79      public static function acoth($number)
  80      {
  81          try {
  82              $number = Helpers::validateNumericNullBool($number);
  83          } catch (Exception $e) {
  84              return $e->getMessage();
  85          }
  86  
  87          $result = ($number === 1) ? NAN : (log(($number + 1) / ($number - 1)) / 2);
  88  
  89          return Helpers::numberOrNan($result);
  90      }
  91  }