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

44 строки
1.3 KiB

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