fraction.d.mts 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879
  1. /**
  2. * Interface representing a fraction with numerator and denominator.
  3. */
  4. export interface NumeratorDenominator {
  5. n: number | bigint;
  6. d: number | bigint;
  7. }
  8. /**
  9. * Type for handling multiple types of input for Fraction operations.
  10. */
  11. export type FractionInput =
  12. | Fraction
  13. | number
  14. | bigint
  15. | string
  16. | [number | bigint | string, number | bigint | string]
  17. | NumeratorDenominator;
  18. /**
  19. * Function signature for Fraction operations like add, sub, mul, etc.
  20. */
  21. export type FractionParam = {
  22. (numerator: number | bigint, denominator: number | bigint): Fraction;
  23. (num: FractionInput): Fraction;
  24. };
  25. /**
  26. * Fraction class representing a rational number with numerator and denominator.
  27. */
  28. declare class Fraction {
  29. constructor();
  30. constructor(num: FractionInput);
  31. constructor(numerator: number | bigint, denominator: number | bigint);
  32. s: bigint;
  33. n: bigint;
  34. d: bigint;
  35. abs(): Fraction;
  36. neg(): Fraction;
  37. add: FractionParam;
  38. sub: FractionParam;
  39. mul: FractionParam;
  40. div: FractionParam;
  41. pow: FractionParam;
  42. log: FractionParam;
  43. gcd: FractionParam;
  44. lcm: FractionParam;
  45. mod(): Fraction;
  46. mod(num: FractionInput): Fraction;
  47. ceil(places?: number): Fraction;
  48. floor(places?: number): Fraction;
  49. round(places?: number): Fraction;
  50. roundTo: FractionParam;
  51. inverse(): Fraction;
  52. simplify(eps?: number): Fraction;
  53. equals(num: FractionInput): boolean;
  54. lt(num: FractionInput): boolean;
  55. lte(num: FractionInput): boolean;
  56. gt(num: FractionInput): boolean;
  57. gte(num: FractionInput): boolean;
  58. compare(num: FractionInput): number;
  59. divisible(num: FractionInput): boolean;
  60. valueOf(): number;
  61. toString(decimalPlaces?: number): string;
  62. toLatex(showMixed?: boolean): string;
  63. toFraction(showMixed?: boolean): string;
  64. toContinued(): bigint[];
  65. clone(): Fraction;
  66. }
  67. export { Fraction as default, Fraction };