sec.js 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. import { factory } from '../../utils/factory.js';
  2. import { secNumber } from '../../plain/number/index.js';
  3. import { createTrigUnit } from './trigUnit.js';
  4. var name = 'sec';
  5. var dependencies = ['typed', 'BigNumber'];
  6. export var createSec = /* #__PURE__ */factory(name, dependencies, _ref => {
  7. var {
  8. typed,
  9. BigNumber: _BigNumber
  10. } = _ref;
  11. var trigUnit = createTrigUnit({
  12. typed
  13. });
  14. /**
  15. * Calculate the secant of a value, defined as `sec(x) = 1/cos(x)`.
  16. *
  17. * To avoid confusion with the matrix secant, this function does not
  18. * apply to matrices.
  19. *
  20. * Syntax:
  21. *
  22. * math.sec(x)
  23. *
  24. * Examples:
  25. *
  26. * math.sec(2) // returns number -2.4029979617223822
  27. * 1 / math.cos(2) // returns number -2.4029979617223822
  28. *
  29. * See also:
  30. *
  31. * cos, csc, cot
  32. *
  33. * @param {number | BigNumber | Complex | Unit} x Function input
  34. * @return {number | BigNumber | Complex} Secant of x
  35. */
  36. return typed(name, {
  37. number: secNumber,
  38. Complex: x => x.sec(),
  39. BigNumber: x => new _BigNumber(1).div(x.cos())
  40. }, trigUnit);
  41. });