asin.js 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. "use strict";
  2. Object.defineProperty(exports, "__esModule", {
  3. value: true
  4. });
  5. exports.createAsin = void 0;
  6. var _factory = require("../../utils/factory.js");
  7. var name = 'asin';
  8. var dependencies = ['typed', 'config', 'Complex'];
  9. var createAsin = /* #__PURE__ */(0, _factory.factory)(name, dependencies, function (_ref) {
  10. var typed = _ref.typed,
  11. config = _ref.config,
  12. Complex = _ref.Complex;
  13. /**
  14. * Calculate the inverse sine of a value.
  15. *
  16. * To avoid confusion with the matric arcsine, this function does not apply
  17. * to matrices.
  18. *
  19. * Syntax:
  20. *
  21. * math.asin(x)
  22. *
  23. * Examples:
  24. *
  25. * math.asin(0.5) // returns number 0.5235987755982989
  26. * math.asin(math.sin(1.5)) // returns number ~1.5
  27. *
  28. * math.asin(2) // returns Complex 1.5707963267948966 -1.3169578969248166i
  29. *
  30. * See also:
  31. *
  32. * sin, atan, acos
  33. *
  34. * @param {number | BigNumber | Complex} x Function input
  35. * @return {number | BigNumber | Complex} The arc sine of x
  36. */
  37. return typed(name, {
  38. number: function number(x) {
  39. if (x >= -1 && x <= 1 || config.predictable) {
  40. return Math.asin(x);
  41. } else {
  42. return new Complex(x, 0).asin();
  43. }
  44. },
  45. Complex: function Complex(x) {
  46. return x.asin();
  47. },
  48. BigNumber: function BigNumber(x) {
  49. return x.asin();
  50. }
  51. });
  52. });
  53. exports.createAsin = createAsin;