版博士V2.0程序
Вы не можете выбрать более 25 тем Темы должны начинаться с буквы или цифры, могут содержать дефисы(-) и должны содержать не более 35 символов.
 
 
 
 

49 строки
1.4 KiB

  1. "use strict";
  2. Object.defineProperty(exports, "__esModule", { value: true });
  3. exports.fieldNumber = exports.lcm = exports.gcd = void 0;
  4. // -------------------------------------------------------------------------------------
  5. // utils
  6. // -------------------------------------------------------------------------------------
  7. /**
  8. * The *greatest common divisor* of two values
  9. *
  10. * @since 2.0.0
  11. */
  12. function gcd(E, field) {
  13. var zero = field.zero;
  14. var f = function (x, y) { return (E.equals(y, zero) ? x : f(y, field.mod(x, y))); };
  15. return f;
  16. }
  17. exports.gcd = gcd;
  18. /**
  19. * The *least common multiple* of two values
  20. *
  21. * @since 2.0.0
  22. */
  23. function lcm(E, F) {
  24. var zero = F.zero;
  25. var gcdSF = gcd(E, F);
  26. return function (x, y) { return (E.equals(x, zero) || E.equals(y, zero) ? zero : F.div(F.mul(x, y), gcdSF(x, y))); };
  27. }
  28. exports.lcm = lcm;
  29. // -------------------------------------------------------------------------------------
  30. // deprecated
  31. // -------------------------------------------------------------------------------------
  32. /**
  33. * Use [`Field`](./number.ts.html#field) instead.
  34. *
  35. * @category zone of death
  36. * @since 2.0.0
  37. * @deprecated
  38. */
  39. exports.fieldNumber = {
  40. add: function (x, y) { return x + y; },
  41. zero: 0,
  42. mul: function (x, y) { return x * y; },
  43. one: 1,
  44. sub: function (x, y) { return x - y; },
  45. degree: function (_) { return 1; },
  46. div: function (x, y) { return x / y; },
  47. mod: function (x, y) { return x % y; }
  48. };