curvy 1.0.9 → 2.0.0-alpha.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (173) hide show
  1. package/dist/characteristic/index.d.mts +88 -0
  2. package/dist/characteristic/index.mjs +2 -0
  3. package/dist/curve/index.d.mts +2 -0
  4. package/dist/curve/index.mjs +2 -0
  5. package/dist/interval/index.d.mts +3 -0
  6. package/dist/interval/index.mjs +3 -0
  7. package/dist/matrix/index.d.mts +2 -0
  8. package/dist/matrix/index.mjs +267 -0
  9. package/dist/matrix/index.mjs.map +1 -0
  10. package/dist/number.d.mts +280 -0
  11. package/dist/number.mjs +140 -0
  12. package/dist/number.mjs.map +1 -0
  13. package/dist/path/index.d.mts +261 -0
  14. package/dist/path/index.mjs +325 -0
  15. package/dist/path/index.mjs.map +1 -0
  16. package/dist/polynomial/index.d.mts +2 -0
  17. package/dist/polynomial/index.mjs +3 -0
  18. package/dist/shared/characteristic-B9nCh_cx.mjs +104 -0
  19. package/dist/shared/characteristic-B9nCh_cx.mjs.map +1 -0
  20. package/dist/shared/chunk-25Hzd3z8.mjs +13 -0
  21. package/dist/shared/cubic-BajUY0JT.d.mts +1100 -0
  22. package/dist/shared/cubic-CpHAx8cC.mjs +479 -0
  23. package/dist/shared/cubic-CpHAx8cC.mjs.map +1 -0
  24. package/dist/shared/interval-05CR6eBf.mjs +421 -0
  25. package/dist/shared/interval-05CR6eBf.mjs.map +1 -0
  26. package/dist/shared/interval-Dy-RMEE3.d.mts +533 -0
  27. package/dist/shared/interval2d-8IBZnUOq.mjs +108 -0
  28. package/dist/shared/interval2d-8IBZnUOq.mjs.map +1 -0
  29. package/dist/shared/interval2d-C2id9u31.d.mts +172 -0
  30. package/dist/shared/matrix4x4-Ck2WROK-.mjs +440 -0
  31. package/dist/shared/matrix4x4-Ck2WROK-.mjs.map +1 -0
  32. package/dist/shared/matrix4x4-Dm_tSiH1.d.mts +1183 -0
  33. package/dist/shared/quadratic-CamozcFc.mjs +330 -0
  34. package/dist/shared/quadratic-CamozcFc.mjs.map +1 -0
  35. package/dist/shared/rationalCubic2d-B6g97ryJ.d.mts +308 -0
  36. package/dist/shared/rationalCubic2d-BEgUGSFf.mjs +295 -0
  37. package/dist/shared/rationalCubic2d-BEgUGSFf.mjs.map +1 -0
  38. package/dist/shared/rationalCubic2d-Bys2Uory.mjs +695 -0
  39. package/dist/shared/rationalCubic2d-Bys2Uory.mjs.map +1 -0
  40. package/dist/shared/rationalCubic2d-DlQfBURs.d.mts +818 -0
  41. package/dist/shared/solution-CrtLfqEq.mjs +306 -0
  42. package/dist/shared/solution-CrtLfqEq.mjs.map +1 -0
  43. package/dist/shared/solution-sNQ-ZVhN.d.mts +251 -0
  44. package/dist/{pipe.d.mts → shared/utils-MCckigYk.d.mts} +44 -26
  45. package/dist/shared/vector2-CL1HDdPr.mjs +187 -0
  46. package/dist/shared/vector2-CL1HDdPr.mjs.map +1 -0
  47. package/dist/shared/vector2-DPUY3_eA.d.mts +470 -0
  48. package/dist/shared/vector2.internal-DU_E808S.mjs +97 -0
  49. package/dist/shared/vector2.internal-DU_E808S.mjs.map +1 -0
  50. package/dist/shared/vector3-D-tv_aKL.mjs +204 -0
  51. package/dist/shared/vector3-D-tv_aKL.mjs.map +1 -0
  52. package/dist/shared/vector3-DqeOZtOB.d.mts +703 -0
  53. package/dist/shared/vector4-5KbjoHVj.mjs +109 -0
  54. package/dist/shared/vector4-5KbjoHVj.mjs.map +1 -0
  55. package/dist/shared/vector4.internal-5XcaX12X.mjs +163 -0
  56. package/dist/shared/vector4.internal-5XcaX12X.mjs.map +1 -0
  57. package/dist/solution/index.d.mts +2 -0
  58. package/dist/solution/index.mjs +2 -0
  59. package/dist/splines/index.d.mts +701 -0
  60. package/dist/splines/index.mjs +734 -0
  61. package/dist/splines/index.mjs.map +1 -0
  62. package/dist/utils.d.mts +2 -205
  63. package/dist/utils.mjs +88 -52
  64. package/dist/utils.mjs.map +1 -1
  65. package/dist/vector/index.d.mts +3 -0
  66. package/dist/vector/index.mjs +4 -0
  67. package/package.json +49 -92
  68. package/dist/curve/cubic2d.d.mts +0 -109
  69. package/dist/curve/cubic2d.d.ts +0 -109
  70. package/dist/curve/cubic2d.mjs +0 -80
  71. package/dist/curve/cubic2d.mjs.map +0 -1
  72. package/dist/curve/linear2d.d.mts +0 -94
  73. package/dist/curve/linear2d.d.ts +0 -94
  74. package/dist/curve/linear2d.mjs +0 -46
  75. package/dist/curve/linear2d.mjs.map +0 -1
  76. package/dist/curve/quadratic2d.d.mts +0 -117
  77. package/dist/curve/quadratic2d.d.ts +0 -117
  78. package/dist/curve/quadratic2d.mjs +0 -82
  79. package/dist/curve/quadratic2d.mjs.map +0 -1
  80. package/dist/interval.d.mts +0 -251
  81. package/dist/interval.d.ts +0 -251
  82. package/dist/interval.mjs +0 -86
  83. package/dist/interval.mjs.map +0 -1
  84. package/dist/matrix/matrix2x2.d.mts +0 -320
  85. package/dist/matrix/matrix2x2.d.ts +0 -320
  86. package/dist/matrix/matrix2x2.mjs +0 -25
  87. package/dist/matrix/matrix2x2.mjs.map +0 -1
  88. package/dist/matrix/matrix3x3.d.mts +0 -370
  89. package/dist/matrix/matrix3x3.d.ts +0 -370
  90. package/dist/matrix/matrix3x3.mjs +0 -28
  91. package/dist/matrix/matrix3x3.mjs.map +0 -1
  92. package/dist/matrix/matrix4x4.d.mts +0 -381
  93. package/dist/matrix/matrix4x4.d.ts +0 -381
  94. package/dist/matrix/matrix4x4.mjs +0 -178
  95. package/dist/matrix/matrix4x4.mjs.map +0 -1
  96. package/dist/path/cubic2d.d.mts +0 -95
  97. package/dist/path/cubic2d.d.ts +0 -95
  98. package/dist/path/cubic2d.mjs +0 -60
  99. package/dist/path/cubic2d.mjs.map +0 -1
  100. package/dist/path/linear2d.d.mts +0 -95
  101. package/dist/path/linear2d.d.ts +0 -95
  102. package/dist/path/linear2d.mjs +0 -53
  103. package/dist/path/linear2d.mjs.map +0 -1
  104. package/dist/path/quadratic2d.d.mts +0 -95
  105. package/dist/path/quadratic2d.d.ts +0 -95
  106. package/dist/path/quadratic2d.mjs +0 -57
  107. package/dist/path/quadratic2d.mjs.map +0 -1
  108. package/dist/pipe.d.ts +0 -58
  109. package/dist/pipe.mjs +0 -92
  110. package/dist/pipe.mjs.map +0 -1
  111. package/dist/polynomial/cubic.d.mts +0 -7
  112. package/dist/polynomial/cubic.d.ts +0 -7
  113. package/dist/polynomial/cubic.mjs +0 -133
  114. package/dist/polynomial/cubic.mjs.map +0 -1
  115. package/dist/polynomial/linear.d.mts +0 -7
  116. package/dist/polynomial/linear.d.ts +0 -7
  117. package/dist/polynomial/linear.mjs +0 -24
  118. package/dist/polynomial/linear.mjs.map +0 -1
  119. package/dist/polynomial/quadratic.d.mts +0 -7
  120. package/dist/polynomial/quadratic.d.ts +0 -7
  121. package/dist/polynomial/quadratic.mjs +0 -27
  122. package/dist/polynomial/quadratic.mjs.map +0 -1
  123. package/dist/shared/curvy.Bf5TIk31.d.mts +0 -22
  124. package/dist/shared/curvy.Bf5TIk31.d.ts +0 -22
  125. package/dist/shared/curvy.BkkW8Tx9.mjs +0 -102
  126. package/dist/shared/curvy.BkkW8Tx9.mjs.map +0 -1
  127. package/dist/shared/curvy.BxdGW9he.mjs +0 -116
  128. package/dist/shared/curvy.BxdGW9he.mjs.map +0 -1
  129. package/dist/shared/curvy.C_sCeg9J.mjs +0 -66
  130. package/dist/shared/curvy.C_sCeg9J.mjs.map +0 -1
  131. package/dist/shared/curvy.Cg8lZVUz.d.ts +0 -688
  132. package/dist/shared/curvy.DCt1gGII.mjs +0 -147
  133. package/dist/shared/curvy.DCt1gGII.mjs.map +0 -1
  134. package/dist/shared/curvy.DJ4xO0al.mjs +0 -63
  135. package/dist/shared/curvy.DJ4xO0al.mjs.map +0 -1
  136. package/dist/shared/curvy.DmVFTi0N.mjs +0 -35
  137. package/dist/shared/curvy.DmVFTi0N.mjs.map +0 -1
  138. package/dist/shared/curvy.FDaj5rlj.d.mts +0 -688
  139. package/dist/shared/curvy.lktriTpx.mjs +0 -101
  140. package/dist/shared/curvy.lktriTpx.mjs.map +0 -1
  141. package/dist/shared/curvy.mLFprrGm.mjs +0 -85
  142. package/dist/shared/curvy.mLFprrGm.mjs.map +0 -1
  143. package/dist/shared/curvy.r6f1j287.mjs +0 -76
  144. package/dist/shared/curvy.r6f1j287.mjs.map +0 -1
  145. package/dist/splines/basis2d.d.mts +0 -130
  146. package/dist/splines/basis2d.d.ts +0 -130
  147. package/dist/splines/basis2d.mjs +0 -90
  148. package/dist/splines/basis2d.mjs.map +0 -1
  149. package/dist/splines/bezier2d.d.mts +0 -182
  150. package/dist/splines/bezier2d.d.ts +0 -182
  151. package/dist/splines/bezier2d.mjs +0 -23
  152. package/dist/splines/bezier2d.mjs.map +0 -1
  153. package/dist/splines/cardinal2d.d.mts +0 -178
  154. package/dist/splines/cardinal2d.d.ts +0 -178
  155. package/dist/splines/cardinal2d.mjs +0 -114
  156. package/dist/splines/cardinal2d.mjs.map +0 -1
  157. package/dist/splines/hermite2d.d.mts +0 -124
  158. package/dist/splines/hermite2d.d.ts +0 -124
  159. package/dist/splines/hermite2d.mjs +0 -63
  160. package/dist/splines/hermite2d.mjs.map +0 -1
  161. package/dist/utils.d.ts +0 -205
  162. package/dist/vector/vector2.d.mts +0 -324
  163. package/dist/vector/vector2.d.ts +0 -324
  164. package/dist/vector/vector2.mjs +0 -30
  165. package/dist/vector/vector2.mjs.map +0 -1
  166. package/dist/vector/vector3.d.mts +0 -417
  167. package/dist/vector/vector3.d.ts +0 -417
  168. package/dist/vector/vector3.mjs +0 -38
  169. package/dist/vector/vector3.mjs.map +0 -1
  170. package/dist/vector/vector4.d.mts +0 -205
  171. package/dist/vector/vector4.d.ts +0 -205
  172. package/dist/vector/vector4.mjs +0 -20
  173. package/dist/vector/vector4.mjs.map +0 -1
@@ -1,95 +0,0 @@
1
- import { QuadraticCurve2d } from '../curve/quadratic2d.js';
2
- import { Pipeable } from '../pipe.js';
3
- import { Vector2 } from '../vector/vector2.js';
4
- import '../shared/curvy.Bf5TIk31.js';
5
- import '../interval.js';
6
- import '../shared/curvy.Cg8lZVUz.js';
7
- import '../vector/vector3.js';
8
- import '../vector/vector4.js';
9
- import '../curve/linear2d.js';
10
-
11
- declare const QuadraticPath2dTypeId: unique symbol;
12
- type QuadraticPath2dTypeId = typeof QuadraticPath2dTypeId;
13
-
14
- /**
15
- * A quadratic path in 2D space.
16
- *
17
- * All fields are readonly and immutable, and all operations create new instances.
18
- *
19
- * @since 1.0.0
20
- */
21
- interface QuadraticPath2d extends Pipeable, Iterable<QuadraticCurve2d> {
22
- readonly [QuadraticPath2dTypeId]: QuadraticPath2dTypeId;
23
- }
24
- /**
25
- * Creates a new `QuadraticPath2d` instance from curve parameters.
26
- *
27
- * @param curves - The curves to create the path from.
28
- * @returns A new `QuadraticPath2d` instance.
29
- * @since 1.0.0
30
- */
31
- declare const fromCurves: (...curves: ReadonlyArray<QuadraticCurve2d>) => QuadraticPath2d;
32
- /**
33
- * Creates a new `QuadraticPath2d` instance from an array of curves.
34
- *
35
- * @param curves - The curves to create the path from.
36
- * @returns A new `QuadraticPath2d` instance.
37
- * @since 1.0.0
38
- */
39
- declare const fromCurveArray: (curves: ReadonlyArray<QuadraticCurve2d>) => QuadraticPath2d;
40
- /**
41
- * Checks if a value is a `QuadraticPath2d`.
42
- *
43
- * @param p - The value to check.
44
- * @returns `true` if the value is a `QuadraticPath2d`, `false` otherwise.
45
- * @since 1.0.0
46
- */
47
- declare const isQuadraticPath2d: (p: unknown) => p is QuadraticPath2d;
48
- declare const append: {
49
- /**
50
- * Appends a quadratic curve to a quadratic path.
51
- *
52
- * @param c - The quadratic curve to append.
53
- * @returns A function that takes a quadratic path and returns a new quadratic path.
54
- * @since 1.0.0
55
- */
56
- (c: QuadraticCurve2d): (p: QuadraticPath2d) => QuadraticPath2d;
57
- /**
58
- * Appends a quadratic curve to a quadratic path.
59
- *
60
- * @param p - The quadratic path to append to.
61
- * @param c - The quadratic curve to append.
62
- * @returns A new `QuadraticPath2d` instance with the appended curve.
63
- * @since 1.0.0
64
- */
65
- (p: QuadraticPath2d, c: QuadraticCurve2d): QuadraticPath2d;
66
- };
67
- /**
68
- * Calculates the length of a quadratic path.
69
- *
70
- * @param p - The quadratic path to calculate the length of.
71
- * @returns The length of the path.
72
- */
73
- declare const length: (p: QuadraticPath2d) => number;
74
- declare const solve: {
75
- /**
76
- * Solves a quadratic path at a given parameter.
77
- *
78
- * @param u - The parameter to solve for.
79
- * @returns A function that takes a quadratic path and returns the solved point.
80
- * @since 1.0.0
81
- */
82
- (u: number): (p: QuadraticPath2d) => Vector2;
83
- /**
84
- * Solves a quadratic path at a given parameter.
85
- *
86
- * @param p - The quadratic path to solve.
87
- * @param u - The parameter to solve for.
88
- * @returns The solved point.
89
- * @since 1.0.0
90
- */
91
- (p: QuadraticPath2d, u: number): Vector2;
92
- };
93
-
94
- export { append, fromCurveArray, fromCurves, isQuadraticPath2d, length, solve };
95
- export type { QuadraticPath2d };
@@ -1,57 +0,0 @@
1
- import { length as length$2, solve as solve$2 } from '../curve/quadratic2d.mjs';
2
- import { unit } from '../interval.mjs';
3
- import { dual, Pipeable } from '../pipe.mjs';
4
- import { round } from '../utils.mjs';
5
- import '../shared/curvy.DmVFTi0N.mjs';
6
- import '../polynomial/linear.mjs';
7
- import '../shared/curvy.r6f1j287.mjs';
8
- import '../polynomial/quadratic.mjs';
9
- import '../shared/curvy.BxdGW9he.mjs';
10
- import '../vector/vector2.mjs';
11
- import '../shared/curvy.DJ4xO0al.mjs';
12
- import '../curve/linear2d.mjs';
13
-
14
- var _a;
15
- const QuadraticPath2dTypeId = Symbol("curvy/path/quadratic2d");
16
- class QuadraticPath2dImpl extends Pipeable {
17
- constructor(curves) {
18
- super();
19
- this[_a] = QuadraticPath2dTypeId;
20
- this.curves = curves;
21
- }
22
- [(_a = QuadraticPath2dTypeId, Symbol.iterator)]() {
23
- return this.curves[Symbol.iterator]();
24
- }
25
- }
26
- const isQuadraticPath2d$1 = (p) => typeof p === "object" && p !== null && QuadraticPath2dTypeId in p;
27
- const fromCurves$1 = (...curves) => new QuadraticPath2dImpl(curves);
28
- const fromCurveArray$1 = (curves) => new QuadraticPath2dImpl(curves);
29
- const append$1 = dual(2, (p, c) => fromCurveArray$1([...p, c]));
30
- const length$1 = (p) => {
31
- let length2 = 0;
32
- for (const curve of p) {
33
- length2 += length$2(curve, unit);
34
- }
35
- return round(length2);
36
- };
37
- const solve$1 = dual(2, (p, u) => {
38
- const curves = p instanceof QuadraticPath2dImpl ? p.curves : [...p];
39
- if (u === 1) {
40
- const last = curves.at(-1);
41
- return solve$2(last, 1);
42
- }
43
- const t = u * curves.length;
44
- const i = Math.floor(t);
45
- const curve = curves[i];
46
- return solve$2(curve, t - i);
47
- });
48
-
49
- const fromCurves = fromCurves$1;
50
- const fromCurveArray = fromCurveArray$1;
51
- const isQuadraticPath2d = isQuadraticPath2d$1;
52
- const append = append$1;
53
- const length = length$1;
54
- const solve = solve$1;
55
-
56
- export { append, fromCurveArray, fromCurves, isQuadraticPath2d, length, solve };
57
- //# sourceMappingURL=quadratic2d.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"quadratic2d.mjs","sources":["../../src/path/quadratic2d.internal.ts","../../src/path/quadratic2d.ts"],"sourcesContent":["import * as QuadraticCurve2d from '../curve/quadratic2d'\nimport * as Interval from '../interval'\nimport { Pipeable } from '../pipe'\nimport { dual } from '../pipe'\nimport { round } from '../utils'\nimport type { Vector2 } from '../vector/vector2'\nimport type { QuadraticPath2d } from './quadratic2d'\n\nexport const QuadraticPath2dTypeId: unique symbol = Symbol('curvy/path/quadratic2d')\nexport type QuadraticPath2dTypeId = typeof QuadraticPath2dTypeId\n\nexport class QuadraticPath2dImpl extends Pipeable implements QuadraticPath2d {\n readonly [QuadraticPath2dTypeId]: QuadraticPath2dTypeId = QuadraticPath2dTypeId\n\n readonly curves: ReadonlyArray<QuadraticCurve2d.QuadraticCurve2d>\n\n constructor(curves: ReadonlyArray<QuadraticCurve2d.QuadraticCurve2d>) {\n super()\n this.curves = curves\n }\n\n [Symbol.iterator](): Iterator<QuadraticCurve2d.QuadraticCurve2d> {\n return this.curves[Symbol.iterator]()\n }\n}\n\nexport const isQuadraticPath2d = (p: unknown): p is QuadraticPath2d =>\n typeof p === 'object' && p !== null && QuadraticPath2dTypeId in p\n\nexport const fromCurves = (\n ...curves: ReadonlyArray<QuadraticCurve2d.QuadraticCurve2d>\n): QuadraticPath2d => new QuadraticPath2dImpl(curves)\n\nexport const fromCurveArray = (\n curves: ReadonlyArray<QuadraticCurve2d.QuadraticCurve2d>,\n): QuadraticPath2d => new QuadraticPath2dImpl(curves)\n\nexport const append = dual<\n (c: QuadraticCurve2d.QuadraticCurve2d) => (p: QuadraticPath2d) => QuadraticPath2d,\n (p: QuadraticPath2d, c: QuadraticCurve2d.QuadraticCurve2d) => QuadraticPath2d\n>(2, (p: QuadraticPath2d, c: QuadraticCurve2d.QuadraticCurve2d) => fromCurveArray([...p, c]))\n\nexport const length = (p: QuadraticPath2d) => {\n let length = 0\n for (const curve of p) {\n length += QuadraticCurve2d.length(curve, Interval.unit)\n }\n\n return round(length)\n}\n\nexport const solve = dual<\n (u: number) => (p: QuadraticPath2d) => Vector2,\n (p: QuadraticPath2d, u: number) => Vector2\n>(2, (p: QuadraticPath2d, u: number) => {\n const curves = p instanceof QuadraticPath2dImpl ? p.curves : [...p]\n\n if (u === 1) {\n const last = curves.at(-1) as QuadraticCurve2d.QuadraticCurve2d\n return QuadraticCurve2d.solve(last, 1)\n }\n\n const t = u * curves.length\n const i = Math.floor(t)\n const curve = curves[i] as QuadraticCurve2d.QuadraticCurve2d\n return QuadraticCurve2d.solve(curve, t - i)\n})\n","import type { QuadraticCurve2d } from '../curve/quadratic2d'\nimport type { Pipeable } from '../pipe'\nimport type { Vector2 } from '../vector/vector2'\nimport type { QuadraticPath2dTypeId } from './quadratic2d.internal'\nimport * as internal from './quadratic2d.internal'\n\n/**\n * A quadratic path in 2D space.\n *\n * All fields are readonly and immutable, and all operations create new instances.\n *\n * @since 1.0.0\n */\nexport interface QuadraticPath2d extends Pipeable, Iterable<QuadraticCurve2d> {\n readonly [QuadraticPath2dTypeId]: QuadraticPath2dTypeId\n}\n\n/**\n * Creates a new `QuadraticPath2d` instance from curve parameters.\n *\n * @param curves - The curves to create the path from.\n * @returns A new `QuadraticPath2d` instance.\n * @since 1.0.0\n */\nexport const fromCurves: (...curves: ReadonlyArray<QuadraticCurve2d>) => QuadraticPath2d =\n internal.fromCurves\n\n/**\n * Creates a new `QuadraticPath2d` instance from an array of curves.\n *\n * @param curves - The curves to create the path from.\n * @returns A new `QuadraticPath2d` instance.\n * @since 1.0.0\n */\nexport const fromCurveArray: (curves: ReadonlyArray<QuadraticCurve2d>) => QuadraticPath2d =\n internal.fromCurveArray\n\n/**\n * Checks if a value is a `QuadraticPath2d`.\n *\n * @param p - The value to check.\n * @returns `true` if the value is a `QuadraticPath2d`, `false` otherwise.\n * @since 1.0.0\n */\nexport const isQuadraticPath2d: (p: unknown) => p is QuadraticPath2d = internal.isQuadraticPath2d\n\nexport const append: {\n /**\n * Appends a quadratic curve to a quadratic path.\n *\n * @param c - The quadratic curve to append.\n * @returns A function that takes a quadratic path and returns a new quadratic path.\n * @since 1.0.0\n */\n (c: QuadraticCurve2d): (p: QuadraticPath2d) => QuadraticPath2d\n /**\n * Appends a quadratic curve to a quadratic path.\n *\n * @param p - The quadratic path to append to.\n * @param c - The quadratic curve to append.\n * @returns A new `QuadraticPath2d` instance with the appended curve.\n * @since 1.0.0\n */\n (p: QuadraticPath2d, c: QuadraticCurve2d): QuadraticPath2d\n} = internal.append\n\n/**\n * Calculates the length of a quadratic path.\n *\n * @param p - The quadratic path to calculate the length of.\n * @returns The length of the path.\n */\nexport const length: (p: QuadraticPath2d) => number = internal.length\n\nexport const solve: {\n /**\n * Solves a quadratic path at a given parameter.\n *\n * @param u - The parameter to solve for.\n * @returns A function that takes a quadratic path and returns the solved point.\n * @since 1.0.0\n */\n (u: number): (p: QuadraticPath2d) => Vector2\n /**\n * Solves a quadratic path at a given parameter.\n *\n * @param p - The quadratic path to solve.\n * @param u - The parameter to solve for.\n * @returns The solved point.\n * @since 1.0.0\n */\n (p: QuadraticPath2d, u: number): Vector2\n} = internal.solve\n"],"names":["isQuadraticPath2d","fromCurves","fromCurveArray","append","length","QuadraticCurve2d.length","Interval.unit","solve","QuadraticCurve2d.solve","internal.fromCurves","internal.fromCurveArray","internal.isQuadraticPath2d","internal.append","internal.length","internal.solve"],"mappings":";;;;;;;;;;;;;AAAA,IAAA,EAAA;AAQa,MAAA,qBAAA,GAAuC,OAAO,wBAAwB,CAAA;AAG5E,MAAM,4BAA4B,QAAoC,CAAA;AAAA,EAK3E,YAAY,MAA0D,EAAA;AACpE,IAAM,KAAA,EAAA;AALR,IAAA,IAAA,CAAU,EAAgD,CAAA,GAAA,qBAAA;AAMxD,IAAA,IAAA,CAAK,MAAS,GAAA,MAAA;AAAA;AAChB,EAEA,EATU,EAAA,GAAA,qBAAA,EAST,MAAO,CAAA,QAAA,EAAyD,GAAA;AAC/D,IAAA,OAAO,IAAK,CAAA,MAAA,CAAO,MAAO,CAAA,QAAQ,CAAE,EAAA;AAAA;AAExC;AAEa,MAAAA,mBAAA,GAAoB,CAAC,CAChC,KAAA,OAAO,MAAM,QAAY,IAAA,CAAA,KAAM,QAAQ,qBAAyB,IAAA,CAAA;AAE3D,MAAMC,YAAa,GAAA,CAAA,GACrB,MACiB,KAAA,IAAI,oBAAoB,MAAM,CAAA;AAE7C,MAAMC,gBAAiB,GAAA,CAC5B,MACoB,KAAA,IAAI,oBAAoB,MAAM,CAAA;AAE7C,MAAMC,QAAS,GAAA,IAAA,CAGpB,CAAG,EAAA,CAAC,CAAoB,EAAA,CAAA,KAAyCD,gBAAe,CAAA,CAAC,GAAG,CAAA,EAAG,CAAC,CAAC,CAAC,CAAA;AAE/E,MAAAE,QAAA,GAAS,CAAC,CAAuB,KAAA;AAC5C,EAAA,IAAIA,OAAS,GAAA,CAAA;AACb,EAAA,KAAA,MAAW,SAAS,CAAG,EAAA;AACrB,IAAAA,OAAU,IAAAC,QAAwB,CAAA,KAAA,EAAOC,IAAa,CAAA;AAAA;AAGxD,EAAA,OAAO,MAAMF,OAAM,CAAA;AACrB,CAAA;AAEO,MAAMG,OAAQ,GAAA,IAAA,CAGnB,CAAG,EAAA,CAAC,GAAoB,CAAc,KAAA;AACtC,EAAA,MAAM,SAAS,CAAa,YAAA,mBAAA,GAAsB,EAAE,MAAS,GAAA,CAAC,GAAG,CAAC,CAAA;AAElE,EAAA,IAAI,MAAM,CAAG,EAAA;AACX,IAAM,MAAA,IAAA,GAAO,MAAO,CAAA,EAAA,CAAG,EAAE,CAAA;AACzB,IAAO,OAAAC,OAAuB,CAAA,IAAA,EAAM,CAAC,CAAA;AAAA;AAGvC,EAAM,MAAA,CAAA,GAAI,IAAI,MAAO,CAAA,MAAA;AACrB,EAAM,MAAA,CAAA,GAAI,IAAK,CAAA,KAAA,CAAM,CAAC,CAAA;AACtB,EAAM,MAAA,KAAA,GAAQ,OAAO,CAAC,CAAA;AACtB,EAAA,OAAOA,OAAiB,CAAM,KAAO,EAAA,CAAA,GAAI,CAAC,CAAA;AAC5C,CAAC,CAAA;;AC1CM,MAAM,aACXC;AASK,MAAM,iBACXC;AASK,MAAM,oBAA0DC;AAEhE,MAAM,SAkBTC;AAQG,MAAM,SAAyCC;AAE/C,MAAM,QAkBTC;;;;"}
package/dist/pipe.d.ts DELETED
@@ -1,58 +0,0 @@
1
- /**
2
- * pipe() and dual() are slightly modified versions of Effect-TS's pipe() and dual() functions.
3
- * https://github.com/effect-ts/core/blob/main/src/function.ts
4
- *
5
- * The original versions are licensed under the MIT license.
6
- * This version is licensed under the MIT license.
7
- */
8
- type AnyFunction = (...args: Array<any>) => any;
9
- declare const dual: {
10
- <DataLast extends AnyFunction, DataFirst extends AnyFunction>(arity: Parameters<DataFirst>['length'], body: DataFirst): DataLast & DataFirst;
11
- <DataLast extends AnyFunction, DataFirst extends AnyFunction>(isDataFirst: (args: IArguments) => boolean, body: DataFirst): DataLast & DataFirst;
12
- };
13
- declare function pipe<A>(a: A): A;
14
- declare function pipe<A, B = never>(a: A, ab: (a: A) => B): B;
15
- declare function pipe<A, B = never, C = never>(a: A, ab: (a: A) => B, bc: (b: B) => C): C;
16
- declare function pipe<A, B = never, C = never, D = never>(a: A, ab: (a: A) => B, bc: (b: B) => C, cd: (c: C) => D): D;
17
- declare function pipe<A, B = never, C = never, D = never, E = never>(a: A, ab: (a: A) => B, bc: (b: B) => C, cd: (c: C) => D, de: (d: D) => E): E;
18
- declare function pipe<A, B = never, C = never, D = never, E = never, F = never>(a: A, ab: (a: A) => B, bc: (b: B) => C, cd: (c: C) => D, de: (d: D) => E, ef: (e: E) => F): F;
19
- declare function pipe<A, B = never, C = never, D = never, E = never, F = never, G = never>(a: A, ab: (a: A) => B, bc: (b: B) => C, cd: (c: C) => D, de: (d: D) => E, ef: (e: E) => F, fg: (f: F) => G): G;
20
- declare function pipe<A, B = never, C = never, D = never, E = never, F = never, G = never, H = never>(a: A, ab: (a: A) => B, bc: (b: B) => C, cd: (c: C) => D, de: (d: D) => E, ef: (e: E) => F, fg: (f: F) => G, gh: (g: G) => H): H;
21
- declare function pipe<A, B = never, C = never, D = never, E = never, F = never, G = never, H = never, I = never>(a: A, ab: (a: A) => B, bc: (b: B) => C, cd: (c: C) => D, de: (d: D) => E, ef: (e: E) => F, fg: (f: F) => G, gh: (g: G) => H, hi: (h: H) => I): I;
22
- declare function pipe<A, B = never, C = never, D = never, E = never, F = never, G = never, H = never, I = never, J = never>(a: A, ab: (a: A) => B, bc: (b: B) => C, cd: (c: C) => D, de: (d: D) => E, ef: (e: E) => F, fg: (f: F) => G, gh: (g: G) => H, hi: (h: H) => I, ij: (i: I) => J): J;
23
- declare function pipe<A, B = never, C = never, D = never, E = never, F = never, G = never, H = never, I = never, J = never, K = never>(a: A, ab: (a: A) => B, bc: (b: B) => C, cd: (c: C) => D, de: (d: D) => E, ef: (e: E) => F, fg: (f: F) => G, gh: (g: G) => H, hi: (h: H) => I, ij: (i: I) => J, jk: (j: J) => K): K;
24
- declare function pipe<A, B = never, C = never, D = never, E = never, F = never, G = never, H = never, I = never, J = never, K = never, L = never>(a: A, ab: (a: A) => B, bc: (b: B) => C, cd: (c: C) => D, de: (d: D) => E, ef: (e: E) => F, fg: (f: F) => G, gh: (g: G) => H, hi: (h: H) => I, ij: (i: I) => J, jk: (j: J) => K, kl: (k: K) => L): L;
25
- declare function pipe<A, B = never, C = never, D = never, E = never, F = never, G = never, H = never, I = never, J = never, K = never, L = never, M = never>(a: A, ab: (a: A) => B, bc: (b: B) => C, cd: (c: C) => D, de: (d: D) => E, ef: (e: E) => F, fg: (f: F) => G, gh: (g: G) => H, hi: (h: H) => I, ij: (i: I) => J, jk: (j: J) => K, kl: (k: K) => L, lm: (l: L) => M): M;
26
- declare function pipe<A, B = never, C = never, D = never, E = never, F = never, G = never, H = never, I = never, J = never, K = never, L = never, M = never, N = never>(a: A, ab: (a: A) => B, bc: (b: B) => C, cd: (c: C) => D, de: (d: D) => E, ef: (e: E) => F, fg: (f: F) => G, gh: (g: G) => H, hi: (h: H) => I, ij: (i: I) => J, jk: (j: J) => K, kl: (k: K) => L, lm: (l: L) => M, mn: (m: M) => N): N;
27
- declare function pipe<A, B = never, C = never, D = never, E = never, F = never, G = never, H = never, I = never, J = never, K = never, L = never, M = never, N = never, O = never>(a: A, ab: (a: A) => B, bc: (b: B) => C, cd: (c: C) => D, de: (d: D) => E, ef: (e: E) => F, fg: (f: F) => G, gh: (g: G) => H, hi: (h: H) => I, ij: (i: I) => J, jk: (j: J) => K, kl: (k: K) => L, lm: (l: L) => M, mn: (m: M) => N, no: (n: N) => O): O;
28
- declare function pipe<A, B = never, C = never, D = never, E = never, F = never, G = never, H = never, I = never, J = never, K = never, L = never, M = never, N = never, O = never, P = never>(a: A, ab: (a: A) => B, bc: (b: B) => C, cd: (c: C) => D, de: (d: D) => E, ef: (e: E) => F, fg: (f: F) => G, gh: (g: G) => H, hi: (h: H) => I, ij: (i: I) => J, jk: (j: J) => K, kl: (k: K) => L, lm: (l: L) => M, mn: (m: M) => N, no: (n: N) => O, op: (o: O) => P): P;
29
- declare function pipe<A, B = never, C = never, D = never, E = never, F = never, G = never, H = never, I = never, J = never, K = never, L = never, M = never, N = never, O = never, P = never, Q = never>(a: A, ab: (a: A) => B, bc: (b: B) => C, cd: (c: C) => D, de: (d: D) => E, ef: (e: E) => F, fg: (f: F) => G, gh: (g: G) => H, hi: (h: H) => I, ij: (i: I) => J, jk: (j: J) => K, kl: (k: K) => L, lm: (l: L) => M, mn: (m: M) => N, no: (n: N) => O, op: (o: O) => P, pq: (p: P) => Q): Q;
30
- declare function pipe<A, B = never, C = never, D = never, E = never, F = never, G = never, H = never, I = never, J = never, K = never, L = never, M = never, N = never, O = never, P = never, Q = never, R = never>(a: A, ab: (a: A) => B, bc: (b: B) => C, cd: (c: C) => D, de: (d: D) => E, ef: (e: E) => F, fg: (f: F) => G, gh: (g: G) => H, hi: (h: H) => I, ij: (i: I) => J, jk: (j: J) => K, kl: (k: K) => L, lm: (l: L) => M, mn: (m: M) => N, no: (n: N) => O, op: (o: O) => P, pq: (p: P) => Q, qr: (q: Q) => R): R;
31
- declare function pipe<A, B = never, C = never, D = never, E = never, F = never, G = never, H = never, I = never, J = never, K = never, L = never, M = never, N = never, O = never, P = never, Q = never, R = never, S = never>(a: A, ab: (a: A) => B, bc: (b: B) => C, cd: (c: C) => D, de: (d: D) => E, ef: (e: E) => F, fg: (f: F) => G, gh: (g: G) => H, hi: (h: H) => I, ij: (i: I) => J, jk: (j: J) => K, kl: (k: K) => L, lm: (l: L) => M, mn: (m: M) => N, no: (n: N) => O, op: (o: O) => P, pq: (p: P) => Q, qr: (q: Q) => R, rs: (r: R) => S): S;
32
- declare function pipe<A, B = never, C = never, D = never, E = never, F = never, G = never, H = never, I = never, J = never, K = never, L = never, M = never, N = never, O = never, P = never, Q = never, R = never, S = never, T = never>(a: A, ab: (a: A) => B, bc: (b: B) => C, cd: (c: C) => D, de: (d: D) => E, ef: (e: E) => F, fg: (f: F) => G, gh: (g: G) => H, hi: (h: H) => I, ij: (i: I) => J, jk: (j: J) => K, kl: (k: K) => L, lm: (l: L) => M, mn: (m: M) => N, no: (n: N) => O, op: (o: O) => P, pq: (p: P) => Q, qr: (q: Q) => R, rs: (r: R) => S, st: (s: S) => T): T;
33
- declare class Pipeable {
34
- pipe<A>(this: A): A;
35
- pipe<A, B = never>(this: A, ab: (_: A) => B): B;
36
- pipe<A, B = never, C = never>(this: A, ab: (_: A) => B, bc: (_: B) => C): C;
37
- pipe<A, B = never, C = never, D = never>(this: A, ab: (_: A) => B, bc: (_: B) => C, cd: (_: C) => D): D;
38
- pipe<A, B = never, C = never, D = never, E = never>(this: A, ab: (_: A) => B, bc: (_: B) => C, cd: (_: C) => D, de: (_: D) => E): E;
39
- pipe<A, B = never, C = never, D = never, E = never, F = never>(this: A, ab: (_: A) => B, bc: (_: B) => C, cd: (_: C) => D, de: (_: D) => E, ef: (_: E) => F): F;
40
- pipe<A, B = never, C = never, D = never, E = never, F = never, G = never>(this: A, ab: (_: A) => B, bc: (_: B) => C, cd: (_: C) => D, de: (_: D) => E, ef: (_: E) => F, fg: (_: F) => G): G;
41
- pipe<A, B = never, C = never, D = never, E = never, F = never, G = never, H = never>(this: A, ab: (_: A) => B, bc: (_: B) => C, cd: (_: C) => D, de: (_: D) => E, ef: (_: E) => F, fg: (_: F) => G, gh: (_: G) => H): H;
42
- pipe<A, B = never, C = never, D = never, E = never, F = never, G = never, H = never, I = never>(this: A, ab: (_: A) => B, bc: (_: B) => C, cd: (_: C) => D, de: (_: D) => E, ef: (_: E) => F, fg: (_: F) => G, gh: (_: G) => H, hi: (_: H) => I): I;
43
- pipe<A, B = never, C = never, D = never, E = never, F = never, G = never, H = never, I = never, J = never>(this: A, ab: (_: A) => B, bc: (_: B) => C, cd: (_: C) => D, de: (_: D) => E, ef: (_: E) => F, fg: (_: F) => G, gh: (_: G) => H, hi: (_: H) => I, ij: (_: I) => J): J;
44
- pipe<A, B = never, C = never, D = never, E = never, F = never, G = never, H = never, I = never, J = never, K = never>(this: A, ab: (_: A) => B, bc: (_: B) => C, cd: (_: C) => D, de: (_: D) => E, ef: (_: E) => F, fg: (_: F) => G, gh: (_: G) => H, hi: (_: H) => I, ij: (_: I) => J, jk: (_: J) => K): K;
45
- pipe<A, B = never, C = never, D = never, E = never, F = never, G = never, H = never, I = never, J = never, K = never, L = never>(this: A, ab: (_: A) => B, bc: (_: B) => C, cd: (_: C) => D, de: (_: D) => E, ef: (_: E) => F, fg: (_: F) => G, gh: (_: G) => H, hi: (_: H) => I, ij: (_: I) => J, jk: (_: J) => K, kl: (_: K) => L): L;
46
- pipe<A, B = never, C = never, D = never, E = never, F = never, G = never, H = never, I = never, J = never, K = never, L = never, M = never>(this: A, ab: (_: A) => B, bc: (_: B) => C, cd: (_: C) => D, de: (_: D) => E, ef: (_: E) => F, fg: (_: F) => G, gh: (_: G) => H, hi: (_: H) => I, ij: (_: I) => J, jk: (_: J) => K, kl: (_: K) => L, lm: (_: L) => M): M;
47
- pipe<A, B = never, C = never, D = never, E = never, F = never, G = never, H = never, I = never, J = never, K = never, L = never, M = never, N = never>(this: A, ab: (_: A) => B, bc: (_: B) => C, cd: (_: C) => D, de: (_: D) => E, ef: (_: E) => F, fg: (_: F) => G, gh: (_: G) => H, hi: (_: H) => I, ij: (_: I) => J, jk: (_: J) => K, kl: (_: K) => L, lm: (_: L) => M, mn: (_: M) => N): N;
48
- pipe<A, B = never, C = never, D = never, E = never, F = never, G = never, H = never, I = never, J = never, K = never, L = never, M = never, N = never, O = never>(this: A, ab: (_: A) => B, bc: (_: B) => C, cd: (_: C) => D, de: (_: D) => E, ef: (_: E) => F, fg: (_: F) => G, gh: (_: G) => H, hi: (_: H) => I, ij: (_: I) => J, jk: (_: J) => K, kl: (_: K) => L, lm: (_: L) => M, mn: (_: M) => N, no: (_: N) => O): O;
49
- pipe<A, B = never, C = never, D = never, E = never, F = never, G = never, H = never, I = never, J = never, K = never, L = never, M = never, N = never, O = never, P = never>(this: A, ab: (_: A) => B, bc: (_: B) => C, cd: (_: C) => D, de: (_: D) => E, ef: (_: E) => F, fg: (_: F) => G, gh: (_: G) => H, hi: (_: H) => I, ij: (_: I) => J, jk: (_: J) => K, kl: (_: K) => L, lm: (_: L) => M, mn: (_: M) => N, no: (_: N) => O, op: (_: O) => P): P;
50
- pipe<A, B = never, C = never, D = never, E = never, F = never, G = never, H = never, I = never, J = never, K = never, L = never, M = never, N = never, O = never, P = never, Q = never>(this: A, ab: (_: A) => B, bc: (_: B) => C, cd: (_: C) => D, de: (_: D) => E, ef: (_: E) => F, fg: (_: F) => G, gh: (_: G) => H, hi: (_: H) => I, ij: (_: I) => J, jk: (_: J) => K, kl: (_: K) => L, lm: (_: L) => M, mn: (_: M) => N, no: (_: N) => O, op: (_: O) => P, pq: (_: P) => Q): Q;
51
- pipe<A, B = never, C = never, D = never, E = never, F = never, G = never, H = never, I = never, J = never, K = never, L = never, M = never, N = never, O = never, P = never, Q = never, R = never>(this: A, ab: (_: A) => B, bc: (_: B) => C, cd: (_: C) => D, de: (_: D) => E, ef: (_: E) => F, fg: (_: F) => G, gh: (_: G) => H, hi: (_: H) => I, ij: (_: I) => J, jk: (_: J) => K, kl: (_: K) => L, lm: (_: L) => M, mn: (_: M) => N, no: (_: N) => O, op: (_: O) => P, pq: (_: P) => Q, qr: (_: Q) => R): R;
52
- pipe<A, B = never, C = never, D = never, E = never, F = never, G = never, H = never, I = never, J = never, K = never, L = never, M = never, N = never, O = never, P = never, Q = never, R = never, S = never>(this: A, ab: (_: A) => B, bc: (_: B) => C, cd: (_: C) => D, de: (_: D) => E, ef: (_: E) => F, fg: (_: F) => G, gh: (_: G) => H, hi: (_: H) => I, ij: (_: I) => J, jk: (_: J) => K, kl: (_: K) => L, lm: (_: L) => M, mn: (_: M) => N, no: (_: N) => O, op: (_: O) => P, pq: (_: P) => Q, qr: (_: Q) => R, rs: (_: R) => S): S;
53
- pipe<A, B = never, C = never, D = never, E = never, F = never, G = never, H = never, I = never, J = never, K = never, L = never, M = never, N = never, O = never, P = never, Q = never, R = never, S = never, T = never>(this: A, ab: (_: A) => B, bc: (_: B) => C, cd: (_: C) => D, de: (_: D) => E, ef: (_: E) => F, fg: (_: F) => G, gh: (_: G) => H, hi: (_: H) => I, ij: (_: I) => J, jk: (_: J) => K, kl: (_: K) => L, lm: (_: L) => M, mn: (_: M) => N, no: (_: N) => O, op: (_: O) => P, pq: (_: P) => Q, qr: (_: Q) => R, rs: (_: R) => S, st: (_: S) => T): T;
54
- pipe<A, B = never, C = never, D = never, E = never, F = never, G = never, H = never, I = never, J = never, K = never, L = never, M = never, N = never, O = never, P = never, Q = never, R = never, S = never, T = never, U = never>(this: A, ab: (_: A) => B, bc: (_: B) => C, cd: (_: C) => D, de: (_: D) => E, ef: (_: E) => F, fg: (_: F) => G, gh: (_: G) => H, hi: (_: H) => I, ij: (_: I) => J, jk: (_: J) => K, kl: (_: K) => L, lm: (_: L) => M, mn: (_: M) => N, no: (_: N) => O, op: (_: O) => P, pq: (_: P) => Q, qr: (_: Q) => R, rs: (_: R) => S, st: (_: S) => T, tu: (_: T) => U): U;
55
- pipe<A, B = never, C = never, D = never, E = never, F = never, G = never, H = never, I = never, J = never, K = never, L = never, M = never, N = never, O = never, P = never, Q = never, R = never, S = never, T = never, U = never>(this: A, ab: (_: A) => B, bc: (_: B) => C, cd: (_: C) => D, de: (_: D) => E, ef: (_: E) => F, fg: (_: F) => G, gh: (_: G) => H, hi: (_: H) => I, ij: (_: I) => J, jk: (_: J) => K, kl: (_: K) => L, lm: (_: L) => M, mn: (_: M) => N, no: (_: N) => O, op: (_: O) => P, pq: (_: P) => Q, qr: (_: Q) => R, rs: (_: R) => S, st: (_: S) => T, tu: (_: T) => U): U;
56
- }
57
-
58
- export { Pipeable, dual, pipe };
package/dist/pipe.mjs DELETED
@@ -1,92 +0,0 @@
1
- const dual = (arity, body) => {
2
- if (typeof arity === "function") {
3
- return function(...args) {
4
- if (arity(args)) {
5
- return body.apply(this, args);
6
- }
7
- return (self) => body(self, ...args);
8
- };
9
- }
10
- switch (arity) {
11
- case 0:
12
- case 1:
13
- throw new RangeError(`Invalid arity ${arity}`);
14
- case 2:
15
- return (...args) => {
16
- const [a, b] = args;
17
- if (args.length >= 2) {
18
- return body(a, b);
19
- }
20
- return (self) => body(self, a);
21
- };
22
- case 3:
23
- return (...args) => {
24
- const [a, b, c] = args;
25
- if (args.length >= 3) {
26
- return body(a, b, c);
27
- }
28
- return (self) => body(self, a, b);
29
- };
30
- case 4:
31
- return (...args) => {
32
- const [a, b, c, d] = args;
33
- if (args.length >= 4) {
34
- return body(a, b, c, d);
35
- }
36
- return (self) => body(self, a, b, c);
37
- };
38
- case 5:
39
- return (...args) => {
40
- const [a, b, c, d, e] = args;
41
- if (args.length >= 5) {
42
- return body(a, b, c, d, e);
43
- }
44
- return (self) => body(self, a, b, c, d);
45
- };
46
- default:
47
- return function(...args) {
48
- if (args.length >= arity) {
49
- return body.apply(this, args);
50
- }
51
- return (self) => body(self, ...args);
52
- };
53
- }
54
- };
55
- function pipe(...args) {
56
- const [a, ab, bc, cd, de, ef, fg, gh, hi] = args;
57
- switch (args.length) {
58
- case 1:
59
- return a;
60
- case 2:
61
- return ab(a);
62
- case 3:
63
- return bc(ab(a));
64
- case 4:
65
- return cd(bc(ab(a)));
66
- case 5:
67
- return de(cd(bc(ab(a))));
68
- case 6:
69
- return ef(de(cd(bc(ab(a)))));
70
- case 7:
71
- return fg(ef(de(cd(bc(ab(a))))));
72
- case 8:
73
- return gh(fg(ef(de(cd(bc(ab(a)))))));
74
- case 9:
75
- return hi(gh(fg(ef(de(cd(bc(ab(a))))))));
76
- default: {
77
- let ret = args[0];
78
- for (let i = 1; i < args.length; i++) {
79
- ret = args[i](ret);
80
- }
81
- return ret;
82
- }
83
- }
84
- }
85
- class Pipeable {
86
- pipe(...args) {
87
- return pipe(this, ...args);
88
- }
89
- }
90
-
91
- export { Pipeable, dual, pipe };
92
- //# sourceMappingURL=pipe.mjs.map
package/dist/pipe.mjs.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"pipe.mjs","sources":["../src/pipe.ts"],"sourcesContent":["/**\n * pipe() and dual() are slightly modified versions of Effect-TS's pipe() and dual() functions.\n * https://github.com/effect-ts/core/blob/main/src/function.ts\n *\n * The original versions are licensed under the MIT license.\n * This version is licensed under the MIT license.\n */\n\n// biome-ignore lint/suspicious/noExplicitAny: any is used to allow any argument to be passed in\ntype AnyFunction = (...args: Array<any>) => any\n\nexport const dual: {\n <DataLast extends AnyFunction, DataFirst extends AnyFunction>(\n arity: Parameters<DataFirst>['length'],\n body: DataFirst,\n ): DataLast & DataFirst\n <DataLast extends AnyFunction, DataFirst extends AnyFunction>(\n isDataFirst: (args: IArguments) => boolean,\n body: DataFirst,\n ): DataLast & DataFirst\n} = (arity, body) => {\n if (typeof arity === 'function') {\n return function (...args: Array<unknown>) {\n if (arity(args as unknown as IArguments)) {\n // @ts-expect-error\n return body.apply(this, args)\n }\n // biome-ignore lint/suspicious/noExplicitAny: any is used to allow any argument to be passed in\n return ((self: any) => body(self, ...args)) as any\n }\n }\n\n switch (arity) {\n case 0:\n case 1:\n throw new RangeError(`Invalid arity ${arity}`)\n\n case 2:\n return (...args: Array<unknown>) => {\n const [a, b] = args\n if (args.length >= 2) {\n return body(a, b)\n }\n return (self: unknown) => body(self, a)\n }\n\n case 3:\n return (...args: Array<unknown>) => {\n const [a, b, c] = args\n if (args.length >= 3) {\n return body(a, b, c)\n }\n return (self: unknown) => body(self, a, b)\n }\n\n case 4:\n return (...args: Array<unknown>) => {\n const [a, b, c, d] = args\n if (args.length >= 4) {\n return body(a, b, c, d)\n }\n\n return (self: unknown) => body(self, a, b, c)\n }\n\n case 5:\n return (...args: Array<unknown>) => {\n const [a, b, c, d, e] = args\n if (args.length >= 5) {\n return body(a, b, c, d, e)\n }\n\n return (self: unknown) => body(self, a, b, c, d)\n }\n\n default:\n return function (...args: Array<unknown>) {\n if (args.length >= arity) {\n // @ts-expect-error\n return body.apply(this, args)\n }\n return (self: unknown) => body(self, ...args)\n }\n }\n}\n\nexport function pipe<A>(a: A): A\nexport function pipe<A, B = never>(a: A, ab: (a: A) => B): B\nexport function pipe<A, B = never, C = never>(a: A, ab: (a: A) => B, bc: (b: B) => C): C\nexport function pipe<A, B = never, C = never, D = never>(\n a: A,\n ab: (a: A) => B,\n bc: (b: B) => C,\n cd: (c: C) => D,\n): D\nexport function pipe<A, B = never, C = never, D = never, E = never>(\n a: A,\n ab: (a: A) => B,\n bc: (b: B) => C,\n cd: (c: C) => D,\n de: (d: D) => E,\n): E\nexport function pipe<A, B = never, C = never, D = never, E = never, F = never>(\n a: A,\n ab: (a: A) => B,\n bc: (b: B) => C,\n cd: (c: C) => D,\n de: (d: D) => E,\n ef: (e: E) => F,\n): F\nexport function pipe<A, B = never, C = never, D = never, E = never, F = never, G = never>(\n a: A,\n ab: (a: A) => B,\n bc: (b: B) => C,\n cd: (c: C) => D,\n de: (d: D) => E,\n ef: (e: E) => F,\n fg: (f: F) => G,\n): G\nexport function pipe<\n A,\n B = never,\n C = never,\n D = never,\n E = never,\n F = never,\n G = never,\n H = never,\n>(\n a: A,\n ab: (a: A) => B,\n bc: (b: B) => C,\n cd: (c: C) => D,\n de: (d: D) => E,\n ef: (e: E) => F,\n fg: (f: F) => G,\n gh: (g: G) => H,\n): H\nexport function pipe<\n A,\n B = never,\n C = never,\n D = never,\n E = never,\n F = never,\n G = never,\n H = never,\n I = never,\n>(\n a: A,\n ab: (a: A) => B,\n bc: (b: B) => C,\n cd: (c: C) => D,\n de: (d: D) => E,\n ef: (e: E) => F,\n fg: (f: F) => G,\n gh: (g: G) => H,\n hi: (h: H) => I,\n): I\nexport function pipe<\n A,\n B = never,\n C = never,\n D = never,\n E = never,\n F = never,\n G = never,\n H = never,\n I = never,\n J = never,\n>(\n a: A,\n ab: (a: A) => B,\n bc: (b: B) => C,\n cd: (c: C) => D,\n de: (d: D) => E,\n ef: (e: E) => F,\n fg: (f: F) => G,\n gh: (g: G) => H,\n hi: (h: H) => I,\n ij: (i: I) => J,\n): J\nexport function pipe<\n A,\n B = never,\n C = never,\n D = never,\n E = never,\n F = never,\n G = never,\n H = never,\n I = never,\n J = never,\n K = never,\n>(\n a: A,\n ab: (a: A) => B,\n bc: (b: B) => C,\n cd: (c: C) => D,\n de: (d: D) => E,\n ef: (e: E) => F,\n fg: (f: F) => G,\n gh: (g: G) => H,\n hi: (h: H) => I,\n ij: (i: I) => J,\n jk: (j: J) => K,\n): K\nexport function pipe<\n A,\n B = never,\n C = never,\n D = never,\n E = never,\n F = never,\n G = never,\n H = never,\n I = never,\n J = never,\n K = never,\n L = never,\n>(\n a: A,\n ab: (a: A) => B,\n bc: (b: B) => C,\n cd: (c: C) => D,\n de: (d: D) => E,\n ef: (e: E) => F,\n fg: (f: F) => G,\n gh: (g: G) => H,\n hi: (h: H) => I,\n ij: (i: I) => J,\n jk: (j: J) => K,\n kl: (k: K) => L,\n): L\nexport function pipe<\n A,\n B = never,\n C = never,\n D = never,\n E = never,\n F = never,\n G = never,\n H = never,\n I = never,\n J = never,\n K = never,\n L = never,\n M = never,\n>(\n a: A,\n ab: (a: A) => B,\n bc: (b: B) => C,\n cd: (c: C) => D,\n de: (d: D) => E,\n ef: (e: E) => F,\n fg: (f: F) => G,\n gh: (g: G) => H,\n hi: (h: H) => I,\n ij: (i: I) => J,\n jk: (j: J) => K,\n kl: (k: K) => L,\n lm: (l: L) => M,\n): M\nexport function pipe<\n A,\n B = never,\n C = never,\n D = never,\n E = never,\n F = never,\n G = never,\n H = never,\n I = never,\n J = never,\n K = never,\n L = never,\n M = never,\n N = never,\n>(\n a: A,\n ab: (a: A) => B,\n bc: (b: B) => C,\n cd: (c: C) => D,\n de: (d: D) => E,\n ef: (e: E) => F,\n fg: (f: F) => G,\n gh: (g: G) => H,\n hi: (h: H) => I,\n ij: (i: I) => J,\n jk: (j: J) => K,\n kl: (k: K) => L,\n lm: (l: L) => M,\n mn: (m: M) => N,\n): N\nexport function pipe<\n A,\n B = never,\n C = never,\n D = never,\n E = never,\n F = never,\n G = never,\n H = never,\n I = never,\n J = never,\n K = never,\n L = never,\n M = never,\n N = never,\n O = never,\n>(\n a: A,\n ab: (a: A) => B,\n bc: (b: B) => C,\n cd: (c: C) => D,\n de: (d: D) => E,\n ef: (e: E) => F,\n fg: (f: F) => G,\n gh: (g: G) => H,\n hi: (h: H) => I,\n ij: (i: I) => J,\n jk: (j: J) => K,\n kl: (k: K) => L,\n lm: (l: L) => M,\n mn: (m: M) => N,\n no: (n: N) => O,\n): O\nexport function pipe<\n A,\n B = never,\n C = never,\n D = never,\n E = never,\n F = never,\n G = never,\n H = never,\n I = never,\n J = never,\n K = never,\n L = never,\n M = never,\n N = never,\n O = never,\n P = never,\n>(\n a: A,\n ab: (a: A) => B,\n bc: (b: B) => C,\n cd: (c: C) => D,\n de: (d: D) => E,\n ef: (e: E) => F,\n fg: (f: F) => G,\n gh: (g: G) => H,\n hi: (h: H) => I,\n ij: (i: I) => J,\n jk: (j: J) => K,\n kl: (k: K) => L,\n lm: (l: L) => M,\n mn: (m: M) => N,\n no: (n: N) => O,\n op: (o: O) => P,\n): P\nexport function pipe<\n A,\n B = never,\n C = never,\n D = never,\n E = never,\n F = never,\n G = never,\n H = never,\n I = never,\n J = never,\n K = never,\n L = never,\n M = never,\n N = never,\n O = never,\n P = never,\n Q = never,\n>(\n a: A,\n ab: (a: A) => B,\n bc: (b: B) => C,\n cd: (c: C) => D,\n de: (d: D) => E,\n ef: (e: E) => F,\n fg: (f: F) => G,\n gh: (g: G) => H,\n hi: (h: H) => I,\n ij: (i: I) => J,\n jk: (j: J) => K,\n kl: (k: K) => L,\n lm: (l: L) => M,\n mn: (m: M) => N,\n no: (n: N) => O,\n op: (o: O) => P,\n pq: (p: P) => Q,\n): Q\nexport function pipe<\n A,\n B = never,\n C = never,\n D = never,\n E = never,\n F = never,\n G = never,\n H = never,\n I = never,\n J = never,\n K = never,\n L = never,\n M = never,\n N = never,\n O = never,\n P = never,\n Q = never,\n R = never,\n>(\n a: A,\n ab: (a: A) => B,\n bc: (b: B) => C,\n cd: (c: C) => D,\n de: (d: D) => E,\n ef: (e: E) => F,\n fg: (f: F) => G,\n gh: (g: G) => H,\n hi: (h: H) => I,\n ij: (i: I) => J,\n jk: (j: J) => K,\n kl: (k: K) => L,\n lm: (l: L) => M,\n mn: (m: M) => N,\n no: (n: N) => O,\n op: (o: O) => P,\n pq: (p: P) => Q,\n qr: (q: Q) => R,\n): R\nexport function pipe<\n A,\n B = never,\n C = never,\n D = never,\n E = never,\n F = never,\n G = never,\n H = never,\n I = never,\n J = never,\n K = never,\n L = never,\n M = never,\n N = never,\n O = never,\n P = never,\n Q = never,\n R = never,\n S = never,\n>(\n a: A,\n ab: (a: A) => B,\n bc: (b: B) => C,\n cd: (c: C) => D,\n de: (d: D) => E,\n ef: (e: E) => F,\n fg: (f: F) => G,\n gh: (g: G) => H,\n hi: (h: H) => I,\n ij: (i: I) => J,\n jk: (j: J) => K,\n kl: (k: K) => L,\n lm: (l: L) => M,\n mn: (m: M) => N,\n no: (n: N) => O,\n op: (o: O) => P,\n pq: (p: P) => Q,\n qr: (q: Q) => R,\n rs: (r: R) => S,\n): S\nexport function pipe<\n A,\n B = never,\n C = never,\n D = never,\n E = never,\n F = never,\n G = never,\n H = never,\n I = never,\n J = never,\n K = never,\n L = never,\n M = never,\n N = never,\n O = never,\n P = never,\n Q = never,\n R = never,\n S = never,\n T = never,\n>(\n a: A,\n ab: (a: A) => B,\n bc: (b: B) => C,\n cd: (c: C) => D,\n de: (d: D) => E,\n ef: (e: E) => F,\n fg: (f: F) => G,\n gh: (g: G) => H,\n hi: (h: H) => I,\n ij: (i: I) => J,\n jk: (j: J) => K,\n kl: (k: K) => L,\n lm: (l: L) => M,\n mn: (m: M) => N,\n no: (n: N) => O,\n op: (o: O) => P,\n pq: (p: P) => Q,\n qr: (q: Q) => R,\n rs: (r: R) => S,\n st: (s: S) => T,\n): T\nexport function pipe(...args: [unknown, ...Array<AnyFunction>]): unknown {\n const [a, ab, bc, cd, de, ef, fg, gh, hi] = args as [\n unknown,\n AnyFunction,\n AnyFunction,\n AnyFunction,\n AnyFunction,\n AnyFunction,\n AnyFunction,\n AnyFunction,\n AnyFunction,\n ]\n\n switch (args.length) {\n case 1:\n return a\n case 2:\n return ab(a)\n case 3:\n return bc(ab(a))\n case 4:\n return cd(bc(ab(a)))\n case 5:\n return de(cd(bc(ab(a))))\n case 6:\n return ef(de(cd(bc(ab(a)))))\n case 7:\n return fg(ef(de(cd(bc(ab(a))))))\n case 8:\n return gh(fg(ef(de(cd(bc(ab(a)))))))\n case 9:\n return hi(gh(fg(ef(de(cd(bc(ab(a))))))))\n default: {\n let ret = args[0]\n for (let i = 1; i < args.length; i++) {\n ret = (args[i] as AnyFunction)(ret)\n }\n return ret\n }\n }\n}\n\nexport class Pipeable {\n pipe<A>(this: A): A\n pipe<A, B = never>(this: A, ab: (_: A) => B): B\n pipe<A, B = never, C = never>(this: A, ab: (_: A) => B, bc: (_: B) => C): C\n pipe<A, B = never, C = never, D = never>(\n this: A,\n ab: (_: A) => B,\n bc: (_: B) => C,\n cd: (_: C) => D,\n ): D\n pipe<A, B = never, C = never, D = never, E = never>(\n this: A,\n ab: (_: A) => B,\n bc: (_: B) => C,\n cd: (_: C) => D,\n de: (_: D) => E,\n ): E\n pipe<A, B = never, C = never, D = never, E = never, F = never>(\n this: A,\n ab: (_: A) => B,\n bc: (_: B) => C,\n cd: (_: C) => D,\n de: (_: D) => E,\n ef: (_: E) => F,\n ): F\n pipe<A, B = never, C = never, D = never, E = never, F = never, G = never>(\n this: A,\n ab: (_: A) => B,\n bc: (_: B) => C,\n cd: (_: C) => D,\n de: (_: D) => E,\n ef: (_: E) => F,\n fg: (_: F) => G,\n ): G\n pipe<A, B = never, C = never, D = never, E = never, F = never, G = never, H = never>(\n this: A,\n ab: (_: A) => B,\n bc: (_: B) => C,\n cd: (_: C) => D,\n de: (_: D) => E,\n ef: (_: E) => F,\n fg: (_: F) => G,\n gh: (_: G) => H,\n ): H\n pipe<A, B = never, C = never, D = never, E = never, F = never, G = never, H = never, I = never>(\n this: A,\n ab: (_: A) => B,\n bc: (_: B) => C,\n cd: (_: C) => D,\n de: (_: D) => E,\n ef: (_: E) => F,\n fg: (_: F) => G,\n gh: (_: G) => H,\n hi: (_: H) => I,\n ): I\n pipe<\n A,\n B = never,\n C = never,\n D = never,\n E = never,\n F = never,\n G = never,\n H = never,\n I = never,\n J = never,\n >(\n this: A,\n ab: (_: A) => B,\n bc: (_: B) => C,\n cd: (_: C) => D,\n de: (_: D) => E,\n ef: (_: E) => F,\n fg: (_: F) => G,\n gh: (_: G) => H,\n hi: (_: H) => I,\n ij: (_: I) => J,\n ): J\n pipe<\n A,\n B = never,\n C = never,\n D = never,\n E = never,\n F = never,\n G = never,\n H = never,\n I = never,\n J = never,\n K = never,\n >(\n this: A,\n ab: (_: A) => B,\n bc: (_: B) => C,\n cd: (_: C) => D,\n de: (_: D) => E,\n ef: (_: E) => F,\n fg: (_: F) => G,\n gh: (_: G) => H,\n hi: (_: H) => I,\n ij: (_: I) => J,\n jk: (_: J) => K,\n ): K\n pipe<\n A,\n B = never,\n C = never,\n D = never,\n E = never,\n F = never,\n G = never,\n H = never,\n I = never,\n J = never,\n K = never,\n L = never,\n >(\n this: A,\n ab: (_: A) => B,\n bc: (_: B) => C,\n cd: (_: C) => D,\n de: (_: D) => E,\n ef: (_: E) => F,\n fg: (_: F) => G,\n gh: (_: G) => H,\n hi: (_: H) => I,\n ij: (_: I) => J,\n jk: (_: J) => K,\n kl: (_: K) => L,\n ): L\n pipe<\n A,\n B = never,\n C = never,\n D = never,\n E = never,\n F = never,\n G = never,\n H = never,\n I = never,\n J = never,\n K = never,\n L = never,\n M = never,\n >(\n this: A,\n ab: (_: A) => B,\n bc: (_: B) => C,\n cd: (_: C) => D,\n de: (_: D) => E,\n ef: (_: E) => F,\n fg: (_: F) => G,\n gh: (_: G) => H,\n hi: (_: H) => I,\n ij: (_: I) => J,\n jk: (_: J) => K,\n kl: (_: K) => L,\n lm: (_: L) => M,\n ): M\n pipe<\n A,\n B = never,\n C = never,\n D = never,\n E = never,\n F = never,\n G = never,\n H = never,\n I = never,\n J = never,\n K = never,\n L = never,\n M = never,\n N = never,\n >(\n this: A,\n ab: (_: A) => B,\n bc: (_: B) => C,\n cd: (_: C) => D,\n de: (_: D) => E,\n ef: (_: E) => F,\n fg: (_: F) => G,\n gh: (_: G) => H,\n hi: (_: H) => I,\n ij: (_: I) => J,\n jk: (_: J) => K,\n kl: (_: K) => L,\n lm: (_: L) => M,\n mn: (_: M) => N,\n ): N\n pipe<\n A,\n B = never,\n C = never,\n D = never,\n E = never,\n F = never,\n G = never,\n H = never,\n I = never,\n J = never,\n K = never,\n L = never,\n M = never,\n N = never,\n O = never,\n >(\n this: A,\n ab: (_: A) => B,\n bc: (_: B) => C,\n cd: (_: C) => D,\n de: (_: D) => E,\n ef: (_: E) => F,\n fg: (_: F) => G,\n gh: (_: G) => H,\n hi: (_: H) => I,\n ij: (_: I) => J,\n jk: (_: J) => K,\n kl: (_: K) => L,\n lm: (_: L) => M,\n mn: (_: M) => N,\n no: (_: N) => O,\n ): O\n pipe<\n A,\n B = never,\n C = never,\n D = never,\n E = never,\n F = never,\n G = never,\n H = never,\n I = never,\n J = never,\n K = never,\n L = never,\n M = never,\n N = never,\n O = never,\n P = never,\n >(\n this: A,\n ab: (_: A) => B,\n bc: (_: B) => C,\n cd: (_: C) => D,\n de: (_: D) => E,\n ef: (_: E) => F,\n fg: (_: F) => G,\n gh: (_: G) => H,\n hi: (_: H) => I,\n ij: (_: I) => J,\n jk: (_: J) => K,\n kl: (_: K) => L,\n lm: (_: L) => M,\n mn: (_: M) => N,\n no: (_: N) => O,\n op: (_: O) => P,\n ): P\n pipe<\n A,\n B = never,\n C = never,\n D = never,\n E = never,\n F = never,\n G = never,\n H = never,\n I = never,\n J = never,\n K = never,\n L = never,\n M = never,\n N = never,\n O = never,\n P = never,\n Q = never,\n >(\n this: A,\n ab: (_: A) => B,\n bc: (_: B) => C,\n cd: (_: C) => D,\n de: (_: D) => E,\n ef: (_: E) => F,\n fg: (_: F) => G,\n gh: (_: G) => H,\n hi: (_: H) => I,\n ij: (_: I) => J,\n jk: (_: J) => K,\n kl: (_: K) => L,\n lm: (_: L) => M,\n mn: (_: M) => N,\n no: (_: N) => O,\n op: (_: O) => P,\n pq: (_: P) => Q,\n ): Q\n pipe<\n A,\n B = never,\n C = never,\n D = never,\n E = never,\n F = never,\n G = never,\n H = never,\n I = never,\n J = never,\n K = never,\n L = never,\n M = never,\n N = never,\n O = never,\n P = never,\n Q = never,\n R = never,\n >(\n this: A,\n ab: (_: A) => B,\n bc: (_: B) => C,\n cd: (_: C) => D,\n de: (_: D) => E,\n ef: (_: E) => F,\n fg: (_: F) => G,\n gh: (_: G) => H,\n hi: (_: H) => I,\n ij: (_: I) => J,\n jk: (_: J) => K,\n kl: (_: K) => L,\n lm: (_: L) => M,\n mn: (_: M) => N,\n no: (_: N) => O,\n op: (_: O) => P,\n pq: (_: P) => Q,\n qr: (_: Q) => R,\n ): R\n pipe<\n A,\n B = never,\n C = never,\n D = never,\n E = never,\n F = never,\n G = never,\n H = never,\n I = never,\n J = never,\n K = never,\n L = never,\n M = never,\n N = never,\n O = never,\n P = never,\n Q = never,\n R = never,\n S = never,\n >(\n this: A,\n ab: (_: A) => B,\n bc: (_: B) => C,\n cd: (_: C) => D,\n de: (_: D) => E,\n ef: (_: E) => F,\n fg: (_: F) => G,\n gh: (_: G) => H,\n hi: (_: H) => I,\n ij: (_: I) => J,\n jk: (_: J) => K,\n kl: (_: K) => L,\n lm: (_: L) => M,\n mn: (_: M) => N,\n no: (_: N) => O,\n op: (_: O) => P,\n pq: (_: P) => Q,\n qr: (_: Q) => R,\n rs: (_: R) => S,\n ): S\n pipe<\n A,\n B = never,\n C = never,\n D = never,\n E = never,\n F = never,\n G = never,\n H = never,\n I = never,\n J = never,\n K = never,\n L = never,\n M = never,\n N = never,\n O = never,\n P = never,\n Q = never,\n R = never,\n S = never,\n T = never,\n >(\n this: A,\n ab: (_: A) => B,\n bc: (_: B) => C,\n cd: (_: C) => D,\n de: (_: D) => E,\n ef: (_: E) => F,\n fg: (_: F) => G,\n gh: (_: G) => H,\n hi: (_: H) => I,\n ij: (_: I) => J,\n jk: (_: J) => K,\n kl: (_: K) => L,\n lm: (_: L) => M,\n mn: (_: M) => N,\n no: (_: N) => O,\n op: (_: O) => P,\n pq: (_: P) => Q,\n qr: (_: Q) => R,\n rs: (_: R) => S,\n st: (_: S) => T,\n ): T\n pipe<\n A,\n B = never,\n C = never,\n D = never,\n E = never,\n F = never,\n G = never,\n H = never,\n I = never,\n J = never,\n K = never,\n L = never,\n M = never,\n N = never,\n O = never,\n P = never,\n Q = never,\n R = never,\n S = never,\n T = never,\n U = never,\n >(\n this: A,\n ab: (_: A) => B,\n bc: (_: B) => C,\n cd: (_: C) => D,\n de: (_: D) => E,\n ef: (_: E) => F,\n fg: (_: F) => G,\n gh: (_: G) => H,\n hi: (_: H) => I,\n ij: (_: I) => J,\n jk: (_: J) => K,\n kl: (_: K) => L,\n lm: (_: L) => M,\n mn: (_: M) => N,\n no: (_: N) => O,\n op: (_: O) => P,\n pq: (_: P) => Q,\n qr: (_: Q) => R,\n rs: (_: R) => S,\n st: (_: S) => T,\n tu: (_: T) => U,\n ): U\n pipe<\n A,\n B = never,\n C = never,\n D = never,\n E = never,\n F = never,\n G = never,\n H = never,\n I = never,\n J = never,\n K = never,\n L = never,\n M = never,\n N = never,\n O = never,\n P = never,\n Q = never,\n R = never,\n S = never,\n T = never,\n U = never,\n >(\n this: A,\n ab: (_: A) => B,\n bc: (_: B) => C,\n cd: (_: C) => D,\n de: (_: D) => E,\n ef: (_: E) => F,\n fg: (_: F) => G,\n gh: (_: G) => H,\n hi: (_: H) => I,\n ij: (_: I) => J,\n jk: (_: J) => K,\n kl: (_: K) => L,\n lm: (_: L) => M,\n mn: (_: M) => N,\n no: (_: N) => O,\n op: (_: O) => P,\n pq: (_: P) => Q,\n qr: (_: Q) => R,\n rs: (_: R) => S,\n st: (_: S) => T,\n tu: (_: T) => U,\n ): U\n pipe(...args: Array<AnyFunction>) {\n // the assertion is probably wrong but makes typescript let us spread the args into pipe()\n return pipe(this, ...(args as [AnyFunction]))\n }\n}\n"],"names":[],"mappings":"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"}
@@ -1,7 +0,0 @@
1
- import '../interval.mjs';
2
- import '../pipe.mjs';
3
- import '../vector/vector4.mjs';
4
- export { C as CubicPolynomial, j as curvature, d as derivative, g as domain, e as extrema, f as fromVector, i as isCubicPolynomial, l as length, m as make, c as monotonicity, h as range, r as roots, s as solve, a as solveInverse, b as toInverseSolver, t as toSolver } from '../shared/curvy.FDaj5rlj.mjs';
5
- import '../shared/curvy.Bf5TIk31.mjs';
6
- import '../vector/vector2.mjs';
7
- import '../vector/vector3.mjs';
@@ -1,7 +0,0 @@
1
- import '../interval.js';
2
- import '../pipe.js';
3
- import '../vector/vector4.js';
4
- export { C as CubicPolynomial, j as curvature, d as derivative, g as domain, e as extrema, f as fromVector, i as isCubicPolynomial, l as length, m as make, c as monotonicity, h as range, r as roots, s as solve, a as solveInverse, b as toInverseSolver, t as toSolver } from '../shared/curvy.Cg8lZVUz.js';
5
- import '../shared/curvy.Bf5TIk31.js';
6
- import '../vector/vector2.js';
7
- import '../vector/vector3.js';
@@ -1,133 +0,0 @@
1
- import { size, filter, fromMinMax, scaleShift, biunit } from '../interval.mjs';
2
- import { G as GL32_W0, a as GL32_X0, b as GL32_W1, c as GL32_X1, d as GL32_W2, e as GL32_X2, f as GL32_W3, g as GL32_X3, h as GL32_W4, i as GL32_X4, j as GL32_W5, k as GL32_X5, l as GL32_W6, m as GL32_X6, n as GL32_W7, o as GL32_X7, p as GL32_W8, q as GL32_X8, r as GL32_W9, s as GL32_X9, t as GL32_W10, u as GL32_X10, v as GL32_W11, w as GL32_X11, x as GL32_W12, y as GL32_X12, z as GL32_W13, A as GL32_X13, B as GL32_W14, C as GL32_X14, D as GL32_W15, E as GL32_X15 } from '../shared/curvy.DmVFTi0N.mjs';
3
- import { dual } from '../pipe.mjs';
4
- import { round } from '../utils.mjs';
5
- import { C as CubicPolynomialImpl, m as make$2, r as roots$2, a as CubicPolynomialTypeId, s as solveInverse$2, b as monotonicity$3, g as guaranteedMonotonicityFromComparison, l as length$3, c as solve$2, d as derivative$2 } from '../shared/curvy.BxdGW9he.mjs';
6
- import { m as monotonicity$2, a as make$3, l as length$2, s as solve$3 } from '../shared/curvy.r6f1j287.mjs';
7
- import '../vector/vector2.mjs';
8
- import '../shared/curvy.DJ4xO0al.mjs';
9
-
10
- const make$1 = (c0 = 0, c1 = 0, c2 = 0, c3 = 0) => new CubicPolynomialImpl(c0, c1, c2, c3);
11
- const isCubicPolynomial$1 = (v) => typeof v === "object" && v !== null && CubicPolynomialTypeId in v;
12
- const fromVector$1 = (v) => new CubicPolynomialImpl(v.x, v.y, v.z, v.w);
13
- const solve$1 = dual(2, (p, x) => round(p.c0 + x * p.c1 + x ** 2 * p.c2 + x ** 3 * p.c3));
14
- const toSolver$1 = (p) => (x) => solve$1(p, x);
15
- const solveInverse$1 = dual(2, (self, y) => {
16
- if (self.c3 === 0) {
17
- return solveInverse$2(make$2(self.c0, self.c1, self.c2), 0);
18
- }
19
- const shift = self.c2 / (3 * self.c3);
20
- const d0 = self.c2 ** 2 - 3 * self.c3 * self.c1;
21
- const d1 = 2 * self.c2 ** 3 - 9 * self.c3 * self.c2 * self.c1 + 27 * self.c3 ** 2 * (self.c0 - y);
22
- const p = -d0 / (3 * self.c3 ** 2);
23
- const q = d1 / (27 * self.c3 ** 3);
24
- const discriminant = round(-(4 * p ** 3 + 27 * q ** 2), 12);
25
- const roots2 = /* @__PURE__ */ new Set();
26
- if (discriminant > 0) {
27
- const r = 2 * Math.sqrt(-p / 3);
28
- const theta = Math.acos(3 * q / (2 * p) * Math.sqrt(-3 / p)) / 3;
29
- const offset = 2 * Math.PI / 3;
30
- roots2.add(round(r * Math.cos(theta + offset) - shift));
31
- roots2.add(round(r * Math.cos(theta) - shift));
32
- roots2.add(round(r * Math.cos(theta - offset) - shift));
33
- } else if (discriminant < 0) {
34
- const u = Math.sqrt(q ** 2 / 4 + p ** 3 / 27);
35
- const u1 = Math.cbrt(-q / 2 + u);
36
- const u2 = Math.cbrt(-q / 2 - u);
37
- roots2.add(round(u1 + u2 - shift));
38
- } else if (d0 === 0) {
39
- roots2.add(round(-shift));
40
- } else {
41
- roots2.add(round((9 * self.c3 * (self.c0 - y) - self.c2 * self.c1) / (2 * d0)));
42
- roots2.add(
43
- round(
44
- (4 * self.c3 * self.c2 * self.c1 - 9 * self.c3 ** 2 * (self.c0 - y) - self.c2 ** 3) / (self.c3 * d0)
45
- )
46
- );
47
- }
48
- return Array.from(roots2).toSorted((a, b) => a - b);
49
- });
50
- const toInverseSolver$1 = (p) => (y) => solveInverse$1(p, y);
51
- const derivative$1 = (p) => make$2(p.c1, p.c2 * 2, p.c3 * 3);
52
- const roots$1 = (p) => solveInverse$1(p, 0);
53
- const extrema$1 = (p) => roots$2(derivative$1(p));
54
- const monotonicity$1 = dual(
55
- (args) => isCubicPolynomial$1(args[0]),
56
- (p, i) => {
57
- if (p.c3 === 0 && p.c2 === 0 && p.c1 === 0) {
58
- return "constant";
59
- }
60
- if (p.c3 === 0 && p.c2 === 0) {
61
- return monotonicity$2(make$3(p.c0, p.c1));
62
- }
63
- if (i === void 0) {
64
- return "none";
65
- }
66
- if (size(i) === 0) {
67
- return "constant";
68
- }
69
- if (p.c3 === 0) {
70
- return monotonicity$3(make$2(p.c0, p.c1, p.c2), i);
71
- }
72
- const e = filter(i, extrema$1(p), {
73
- includeStart: false,
74
- includeEnd: false
75
- });
76
- if (e.length > 0) {
77
- return "none";
78
- }
79
- return guaranteedMonotonicityFromComparison(solve$1(p, i.start), solve$1(p, i.end));
80
- }
81
- );
82
- const domain$1 = dual(
83
- 2,
84
- (p, range2) => fromMinMax(...solveInverse$1(p, range2.start), ...solveInverse$1(p, range2.end))
85
- );
86
- const range$1 = dual(
87
- 2,
88
- (p, domain2) => fromMinMax(
89
- solve$1(p, domain2.start),
90
- solve$1(p, domain2.end),
91
- ...filter(domain2, extrema$1(p)).map((e) => solve$1(p, e))
92
- )
93
- );
94
- const length$1 = dual(2, (p, domain2) => {
95
- if (size(domain2) === 0) {
96
- return 0;
97
- }
98
- if (p.c3 === 0) {
99
- if (p.c2 === 0) {
100
- return length$2(make$3(p.c0, p.c1), domain2);
101
- }
102
- return length$3(make$2(p.c0, p.c1, p.c2), domain2);
103
- }
104
- const d = derivative$1(p);
105
- const { scale, shift } = scaleShift(biunit, domain2);
106
- return round(
107
- (GL32_W0 * Math.sqrt(1 + solve$2(d, shift + scale * -0.9972638618494816) ** 2) + GL32_W0 * Math.sqrt(1 + solve$2(d, shift + scale * GL32_X0) ** 2) + GL32_W1 * Math.sqrt(1 + solve$2(d, shift + scale * -0.9856115115452684) ** 2) + GL32_W1 * Math.sqrt(1 + solve$2(d, shift + scale * GL32_X1) ** 2) + GL32_W2 * Math.sqrt(1 + solve$2(d, shift + scale * -0.9647622555875064) ** 2) + GL32_W2 * Math.sqrt(1 + solve$2(d, shift + scale * GL32_X2) ** 2) + GL32_W3 * Math.sqrt(1 + solve$2(d, shift + scale * -0.9349060759377397) ** 2) + GL32_W3 * Math.sqrt(1 + solve$2(d, shift + scale * GL32_X3) ** 2) + GL32_W4 * Math.sqrt(1 + solve$2(d, shift + scale * -0.8963211557660521) ** 2) + GL32_W4 * Math.sqrt(1 + solve$2(d, shift + scale * GL32_X4) ** 2) + GL32_W5 * Math.sqrt(1 + solve$2(d, shift + scale * -0.84936761373257) ** 2) + GL32_W5 * Math.sqrt(1 + solve$2(d, shift + scale * GL32_X5) ** 2) + GL32_W6 * Math.sqrt(1 + solve$2(d, shift + scale * -0.7944837959679424) ** 2) + GL32_W6 * Math.sqrt(1 + solve$2(d, shift + scale * GL32_X6) ** 2) + GL32_W7 * Math.sqrt(1 + solve$2(d, shift + scale * -0.7321821187402897) ** 2) + GL32_W7 * Math.sqrt(1 + solve$2(d, shift + scale * GL32_X7) ** 2) + GL32_W8 * Math.sqrt(1 + solve$2(d, shift + scale * -0.6630442669302152) ** 2) + GL32_W8 * Math.sqrt(1 + solve$2(d, shift + scale * GL32_X8) ** 2) + GL32_W9 * Math.sqrt(1 + solve$2(d, shift + scale * -0.5877157572407623) ** 2) + GL32_W9 * Math.sqrt(1 + solve$2(d, shift + scale * GL32_X9) ** 2) + GL32_W10 * Math.sqrt(1 + solve$2(d, shift + scale * -0.5068999089322294) ** 2) + GL32_W10 * Math.sqrt(1 + solve$2(d, shift + scale * GL32_X10) ** 2) + GL32_W11 * Math.sqrt(1 + solve$2(d, shift + scale * -0.42135127613063533) ** 2) + GL32_W11 * Math.sqrt(1 + solve$2(d, shift + scale * GL32_X11) ** 2) + GL32_W12 * Math.sqrt(1 + solve$2(d, shift + scale * -0.33186860228212767) ** 2) + GL32_W12 * Math.sqrt(1 + solve$2(d, shift + scale * GL32_X12) ** 2) + GL32_W13 * Math.sqrt(1 + solve$2(d, shift + scale * -0.23928736225213706) ** 2) + GL32_W13 * Math.sqrt(1 + solve$2(d, shift + scale * GL32_X13) ** 2) + GL32_W14 * Math.sqrt(1 + solve$2(d, shift + scale * -0.1444719615827965) ** 2) + GL32_W14 * Math.sqrt(1 + solve$2(d, shift + scale * GL32_X14) ** 2) + GL32_W15 * Math.sqrt(1 + solve$2(d, shift + scale * -0.04830766568773831) ** 2) + GL32_W15 * Math.sqrt(1 + solve$2(d, shift + scale * GL32_X15) ** 2)) * scale
108
- );
109
- });
110
- const curvature$1 = dual(2, (p, x) => {
111
- const d = derivative$1(p);
112
- const dd = derivative$2(d);
113
- return round(Math.abs(solve$3(dd, x)) / (1 + solve$2(d, x) ** 2) ** 1.5);
114
- });
115
-
116
- const isCubicPolynomial = isCubicPolynomial$1;
117
- const make = make$1;
118
- const fromVector = fromVector$1;
119
- const solve = solve$1;
120
- const toSolver = toSolver$1;
121
- const solveInverse = solveInverse$1;
122
- const toInverseSolver = toInverseSolver$1;
123
- const derivative = derivative$1;
124
- const roots = roots$1;
125
- const extrema = extrema$1;
126
- const monotonicity = monotonicity$1;
127
- const domain = domain$1;
128
- const range = range$1;
129
- const length = length$1;
130
- const curvature = curvature$1;
131
-
132
- export { curvature, derivative, domain, extrema, fromVector, isCubicPolynomial, length, make, monotonicity, range, roots, solve, solveInverse, toInverseSolver, toSolver };
133
- //# sourceMappingURL=cubic.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"cubic.mjs","sources":["../../src/polynomial/cubic.internal.ts","../../src/polynomial/cubic.ts"],"sourcesContent":["import * as Interval from '../interval'\nimport {\n GL32_W0,\n GL32_W1,\n GL32_W2,\n GL32_W3,\n GL32_W4,\n GL32_W5,\n GL32_W6,\n GL32_W7,\n GL32_W8,\n GL32_W9,\n GL32_W10,\n GL32_W11,\n GL32_W12,\n GL32_W13,\n GL32_W14,\n GL32_W15,\n GL32_X0,\n GL32_X1,\n GL32_X2,\n GL32_X3,\n GL32_X4,\n GL32_X5,\n GL32_X6,\n GL32_X7,\n GL32_X8,\n GL32_X9,\n GL32_X10,\n GL32_X11,\n GL32_X12,\n GL32_X13,\n GL32_X14,\n GL32_X15,\n} from '../length'\nimport { dual } from '../pipe'\nimport { round } from '../utils'\nimport type { Vector4 } from '../vector/vector4'\nimport type { CubicPolynomial } from './cubic'\nimport { CubicPolynomialImpl, CubicPolynomialTypeId } from './cubic.internal.circular'\nimport * as Linear from './linear.internal'\nimport { type Monotonicity, guaranteedMonotonicityFromComparison } from './monotonicity'\nimport * as Quadratic from './quadratic.internal'\nimport type { ZeroToThree, ZeroToTwo } from './types'\n\nexport const make = (c0 = 0, c1 = 0, c2 = 0, c3 = 0): CubicPolynomial =>\n new CubicPolynomialImpl(c0, c1, c2, c3)\n\nexport const isCubicPolynomial = (v: unknown): v is CubicPolynomial =>\n typeof v === 'object' && v !== null && CubicPolynomialTypeId in v\n\nexport const fromVector = (v: Vector4) => new CubicPolynomialImpl(v.x, v.y, v.z, v.w)\n\nexport const solve = dual<\n (x: number) => (p: CubicPolynomial) => number,\n (p: CubicPolynomial, x: number) => number\n>(2, (p: CubicPolynomial, x: number) => round(p.c0 + x * p.c1 + x ** 2 * p.c2 + x ** 3 * p.c3))\n\nexport const toSolver = (p: CubicPolynomial) => (x: number) => solve(p, x)\n\nexport const solveInverse = dual<\n (y: number) => (p: CubicPolynomial) => ZeroToThree,\n (p: CubicPolynomial, y: number) => ZeroToThree\n>(2, (self: CubicPolynomial, y: number) => {\n if (self.c3 === 0) {\n return Quadratic.solveInverse(Quadratic.make(self.c0, self.c1, self.c2), 0) as ZeroToThree\n }\n\n const shift = self.c2 / (3 * self.c3)\n\n const d0 = self.c2 ** 2 - 3 * self.c3 * self.c1\n const d1 = 2 * self.c2 ** 3 - 9 * self.c3 * self.c2 * self.c1 + 27 * self.c3 ** 2 * (self.c0 - y)\n\n const p = -d0 / (3 * self.c3 ** 2)\n const q = d1 / (27 * self.c3 ** 3)\n\n const discriminant = round(-(4 * p ** 3 + 27 * q ** 2), 12)\n\n const roots = new Set<number>()\n\n if (discriminant > 0) {\n const r = 2 * Math.sqrt(-p / 3)\n const theta = Math.acos(((3 * q) / (2 * p)) * Math.sqrt(-3 / p)) / 3\n const offset = (2 * Math.PI) / 3\n\n roots.add(round(r * Math.cos(theta + offset) - shift))\n roots.add(round(r * Math.cos(theta) - shift))\n roots.add(round(r * Math.cos(theta - offset) - shift))\n } else if (discriminant < 0) {\n const u = Math.sqrt(q ** 2 / 4 + p ** 3 / 27)\n\n const u1 = Math.cbrt(-q / 2 + u)\n const u2 = Math.cbrt(-q / 2 - u)\n\n roots.add(round(u1 + u2 - shift))\n } else if (d0 === 0) {\n roots.add(round(-shift))\n } else {\n roots.add(round((9 * self.c3 * (self.c0 - y) - self.c2 * self.c1) / (2 * d0)))\n roots.add(\n round(\n (4 * self.c3 * self.c2 * self.c1 - 9 * self.c3 ** 2 * (self.c0 - y) - self.c2 ** 3) /\n (self.c3 * d0),\n ),\n )\n }\n\n return Array.from(roots).toSorted((a, b) => a - b) as unknown as ZeroToThree\n})\n\nexport const toInverseSolver = (p: CubicPolynomial) => (y: number) => solveInverse(p, y)\n\nexport const derivative = (p: CubicPolynomial) => Quadratic.make(p.c1, p.c2 * 2, p.c3 * 3)\n\nexport const roots = (p: CubicPolynomial): ZeroToThree => solveInverse(p, 0)\n\nexport const extrema = (p: CubicPolynomial): ZeroToTwo => Quadratic.roots(derivative(p))\n\nexport const monotonicity = dual<\n (i: Interval.Interval) => (p: CubicPolynomial) => Monotonicity,\n (p: CubicPolynomial, i?: Interval.Interval) => Monotonicity\n>(\n (args) => isCubicPolynomial(args[0]),\n (p: CubicPolynomial, i?: Interval.Interval) => {\n // shortcut to check for a horizontal line\n if (p.c3 === 0 && p.c2 === 0 && p.c1 === 0) {\n return 'constant'\n }\n\n // shortcut to check for a non-horizontal line\n if (p.c3 === 0 && p.c2 === 0) {\n return Linear.monotonicity(Linear.make(p.c0, p.c1))\n }\n\n // without an interval, the monotonicity will be none if c3 or c2 are nonzero\n if (i === undefined) {\n return 'none'\n }\n\n // if the interval is a single point, the monotonicity is constant\n if (Interval.size(i) === 0) {\n return 'constant'\n }\n\n if (p.c3 === 0) {\n return Quadratic.monotonicity(Quadratic.make(p.c0, p.c1, p.c2), i)\n }\n\n const e = Interval.filter(i, extrema(p), {\n includeStart: false,\n includeEnd: false,\n })\n\n if (e.length > 0) {\n return 'none'\n }\n\n return guaranteedMonotonicityFromComparison(solve(p, i.start), solve(p, i.end))\n },\n)\n\nexport const domain = dual<\n (range: Interval.Interval) => (p: CubicPolynomial) => Interval.Interval,\n (p: CubicPolynomial, range: Interval.Interval) => Interval.Interval\n>(2, (p: CubicPolynomial, range: Interval.Interval) =>\n Interval.fromMinMax(...solveInverse(p, range.start), ...solveInverse(p, range.end)),\n)\n\nexport const range = dual<\n (domain: Interval.Interval) => (p: CubicPolynomial) => Interval.Interval,\n (p: CubicPolynomial, domain: Interval.Interval) => Interval.Interval\n>(2, (p: CubicPolynomial, domain: Interval.Interval) =>\n Interval.fromMinMax(\n solve(p, domain.start),\n solve(p, domain.end),\n ...Interval.filter(domain, extrema(p)).map((e) => solve(p, e)),\n ),\n)\n\nexport const length = dual<\n (domain: Interval.Interval) => (p: CubicPolynomial) => number,\n (p: CubicPolynomial, domain: Interval.Interval) => number\n>(2, (p: CubicPolynomial, domain: Interval.Interval) => {\n if (Interval.size(domain) === 0) {\n return 0\n }\n\n if (p.c3 === 0) {\n if (p.c2 === 0) {\n return Linear.length(Linear.make(p.c0, p.c1), domain)\n }\n\n return Quadratic.length(Quadratic.make(p.c0, p.c1, p.c2), domain)\n }\n\n const d = derivative(p)\n\n const { scale, shift } = Interval.scaleShift(Interval.biunit, domain)\n\n return round(\n (GL32_W0 * Math.sqrt(1 + Quadratic.solve(d, shift + scale * -GL32_X0) ** 2) +\n GL32_W0 * Math.sqrt(1 + Quadratic.solve(d, shift + scale * GL32_X0) ** 2) +\n GL32_W1 * Math.sqrt(1 + Quadratic.solve(d, shift + scale * -GL32_X1) ** 2) +\n GL32_W1 * Math.sqrt(1 + Quadratic.solve(d, shift + scale * GL32_X1) ** 2) +\n GL32_W2 * Math.sqrt(1 + Quadratic.solve(d, shift + scale * -GL32_X2) ** 2) +\n GL32_W2 * Math.sqrt(1 + Quadratic.solve(d, shift + scale * GL32_X2) ** 2) +\n GL32_W3 * Math.sqrt(1 + Quadratic.solve(d, shift + scale * -GL32_X3) ** 2) +\n GL32_W3 * Math.sqrt(1 + Quadratic.solve(d, shift + scale * GL32_X3) ** 2) +\n GL32_W4 * Math.sqrt(1 + Quadratic.solve(d, shift + scale * -GL32_X4) ** 2) +\n GL32_W4 * Math.sqrt(1 + Quadratic.solve(d, shift + scale * GL32_X4) ** 2) +\n GL32_W5 * Math.sqrt(1 + Quadratic.solve(d, shift + scale * -GL32_X5) ** 2) +\n GL32_W5 * Math.sqrt(1 + Quadratic.solve(d, shift + scale * GL32_X5) ** 2) +\n GL32_W6 * Math.sqrt(1 + Quadratic.solve(d, shift + scale * -GL32_X6) ** 2) +\n GL32_W6 * Math.sqrt(1 + Quadratic.solve(d, shift + scale * GL32_X6) ** 2) +\n GL32_W7 * Math.sqrt(1 + Quadratic.solve(d, shift + scale * -GL32_X7) ** 2) +\n GL32_W7 * Math.sqrt(1 + Quadratic.solve(d, shift + scale * GL32_X7) ** 2) +\n GL32_W8 * Math.sqrt(1 + Quadratic.solve(d, shift + scale * -GL32_X8) ** 2) +\n GL32_W8 * Math.sqrt(1 + Quadratic.solve(d, shift + scale * GL32_X8) ** 2) +\n GL32_W9 * Math.sqrt(1 + Quadratic.solve(d, shift + scale * -GL32_X9) ** 2) +\n GL32_W9 * Math.sqrt(1 + Quadratic.solve(d, shift + scale * GL32_X9) ** 2) +\n GL32_W10 * Math.sqrt(1 + Quadratic.solve(d, shift + scale * -GL32_X10) ** 2) +\n GL32_W10 * Math.sqrt(1 + Quadratic.solve(d, shift + scale * GL32_X10) ** 2) +\n GL32_W11 * Math.sqrt(1 + Quadratic.solve(d, shift + scale * -GL32_X11) ** 2) +\n GL32_W11 * Math.sqrt(1 + Quadratic.solve(d, shift + scale * GL32_X11) ** 2) +\n GL32_W12 * Math.sqrt(1 + Quadratic.solve(d, shift + scale * -GL32_X12) ** 2) +\n GL32_W12 * Math.sqrt(1 + Quadratic.solve(d, shift + scale * GL32_X12) ** 2) +\n GL32_W13 * Math.sqrt(1 + Quadratic.solve(d, shift + scale * -GL32_X13) ** 2) +\n GL32_W13 * Math.sqrt(1 + Quadratic.solve(d, shift + scale * GL32_X13) ** 2) +\n GL32_W14 * Math.sqrt(1 + Quadratic.solve(d, shift + scale * -GL32_X14) ** 2) +\n GL32_W14 * Math.sqrt(1 + Quadratic.solve(d, shift + scale * GL32_X14) ** 2) +\n GL32_W15 * Math.sqrt(1 + Quadratic.solve(d, shift + scale * -GL32_X15) ** 2) +\n GL32_W15 * Math.sqrt(1 + Quadratic.solve(d, shift + scale * GL32_X15) ** 2)) *\n scale,\n )\n})\n\nexport const curvature = dual(2, (p: CubicPolynomial, x: number) => {\n const d = derivative(p)\n const dd = Quadratic.derivative(d)\n\n return round(Math.abs(Linear.solve(dd, x)) / (1 + Quadratic.solve(d, x) ** 2) ** 1.5)\n})\n","import type { Interval } from '../interval'\nimport type { Pipeable } from '../pipe'\nimport type { Vector4 } from '../vector/vector4'\nimport * as internal from './cubic.internal'\nimport type { CubicPolynomialTypeId } from './cubic.internal.circular'\nimport type { Monotonicity } from './monotonicity'\nimport type { QuadraticPolynomial } from './quadratic'\nimport type { ZeroToThree, ZeroToTwo } from './types'\n\n/**\n * A cubic polynomial.\n *\n * All fields are readonly and immutable, and all operations create new instances.\n *\n * @since 1.0.0\n */\nexport interface CubicPolynomial extends Pipeable {\n readonly [CubicPolynomialTypeId]: CubicPolynomialTypeId\n\n /**\n * The coefficient of the x^0 term.\n */\n readonly c0: number\n /**\n * The coefficient of the x^1 term.\n */\n readonly c1: number\n /**\n * The coefficient of the x^2 term.\n */\n readonly c2: number\n /**\n * The coefficient of the x^3 term.\n */\n readonly c3: number\n}\n\n/**\n * Checks if a value is a `CubicPolynomial`.\n *\n * @param value - The value to check.\n * @returns `true` if the value is a `CubicPolynomial`, `false` otherwise.\n * @since 1.0.0\n */\nexport const isCubicPolynomial: (value: unknown) => value is CubicPolynomial =\n internal.isCubicPolynomial\n\n/**\n * Creates a new `CubicPolynomial` instance.\n *\n * @param c0 - The coefficient of the x^0 term.\n * @param c1 - The coefficient of the x^1 term.\n * @param c2 - The coefficient of the x^2 term.\n * @param c3 - The coefficient of the x^3 term.\n */\nexport const make: (c0: number, c1: number, c2: number, c3: number) => CubicPolynomial =\n internal.make\n\n/**\n * Creates a new `CubicPolynomial` instance from a vector.\n *\n * @param v - The vector to convert.\n * @returns A new `CubicPolynomial` instance.\n * @since 1.0.0\n */\nexport const fromVector: (v: Vector4) => CubicPolynomial = internal.fromVector\n\nexport const solve: {\n /**\n * Solves a cubic polynomial for a given value of x.\n *\n * @param p - The cubic polynomial to solve.\n * @param x - The value of x to solve for.\n * @returns The result of the polynomial evaluation at x.\n * @since 1.0.0\n */\n (p: CubicPolynomial, x: number): number\n /**\n * Solves a cubic polynomial for a given value of x.\n *\n * @param x - The value of x to solve for.\n * @returns A function that takes a cubic polynomial and returns the result of the polynomial evaluation at x.\n * @since 1.0.0\n */\n (x: number): (p: CubicPolynomial) => number\n} = internal.solve\n\n/**\n * Converts a cubic polynomial to a solver function.\n *\n * @param p - The cubic polynomial to convert.\n * @returns A function that takes a value of x and returns the result of the polynomial evaluation at x.\n * @since 1.0.0\n */\nexport const toSolver: (p: CubicPolynomial) => (x: number) => number = internal.toSolver\n\nexport const solveInverse: {\n /**\n * Solves a cubic polynomial for a given value of y.\n *\n * @param p - The cubic polynomial to solve.\n * @param y - The value of y to solve for.\n * @returns The roots of the polynomial equation p(x) = y.\n * @since 1.0.0\n */\n (p: CubicPolynomial, y: number): ZeroToThree\n /**\n * Solves a cubic polynomial for a given value of y.\n *\n * @param y - The value of y to solve for.\n * @returns A function that takes a cubic polynomial and returns the roots of the polynomial equation p(x) = y.\n * @since 1.0.0\n */\n (y: number): (p: CubicPolynomial) => ZeroToThree\n} = internal.solveInverse\n\n/**\n * Converts a cubic polynomial to an inverse solver function.\n *\n * @param p - The cubic polynomial to convert.\n * @returns A function that takes a value of y and returns the roots of the polynomial equation p(x) = y.\n * @since 1.0.0\n */\nexport const toInverseSolver: (p: CubicPolynomial) => (y: number) => ZeroToThree =\n internal.toInverseSolver\n\n/**\n * Calculates the derivative of a cubic polynomial.\n *\n * @param p - The cubic polynomial to differentiate.\n * @returns The derivative of the cubic polynomial.\n * @since 1.0.0\n */\nexport const derivative: (p: CubicPolynomial) => QuadraticPolynomial = internal.derivative\n\n/**\n * Calculates the roots of a cubic polynomial.\n *\n * @param p - The cubic polynomial to find the roots of.\n * @returns The roots of the cubic polynomial.\n * @since 1.0.0\n */\nexport const roots: (p: CubicPolynomial) => ZeroToThree = internal.roots\n\n/**\n * Calculates the extrema of a cubic polynomial.\n *\n * @param p - The cubic polynomial to find the extrema of.\n * @returns The extrema of the cubic polynomial.\n * @since 1.0.0\n */\nexport const extrema: (p: CubicPolynomial) => ZeroToTwo = internal.extrema\n\nexport const monotonicity: {\n /**\n * Calculates the monotonicity of a cubic polynomial.\n *\n * @param p - The cubic polynomial to analyze.\n * @param i - The interval to restrict the analysis to.\n * @returns The monotonicity of the cubic polynomial in the specified interval.\n * @since 1.0.0\n */\n (p: CubicPolynomial, i?: Interval): Monotonicity\n /**\n * Calculates the monotonicity of a cubic polynomial.\n *\n * @param i - The interval to restrict the analysis to.\n * @returns A function that takes a cubic polynomial and returns the monotonicity of the cubic polynomial in the specified interval.\n * @since 1.0.0\n */\n (i: Interval): (p: CubicPolynomial) => Monotonicity\n} = internal.monotonicity\n\nexport const domain: {\n /**\n * Calculates the domain of a cubic polynomial.\n *\n * @param p - The cubic polynomial to analyze.\n * @param range - The range to restrict the analysis to.\n * @returns The domain of the cubic polynomial in the specified range.\n * @since 1.0.0\n */\n (p: CubicPolynomial, range: Interval): Interval\n /**\n * Calculates the domain of a cubic polynomial.\n *\n * @param range - The range to restrict the analysis to.\n * @returns A function that takes a cubic polynomial and returns the domain of the cubic polynomial in the specified range.\n * @since 1.0.0\n */\n (range: Interval): (p: CubicPolynomial) => Interval\n} = internal.domain\n\nexport const range: {\n /**\n * Calculates the range of a cubic polynomial.\n *\n * @param p - The cubic polynomial to analyze.\n * @param domain - The domain to restrict the analysis to.\n * @returns The range of the cubic polynomial in the specified domain.\n * @since 1.0.0\n */\n (p: CubicPolynomial, domain: Interval): Interval\n /**\n * Calculates the range of a cubic polynomial.\n *\n * @param domain - The domain to restrict the analysis to.\n * @returns A function that takes a cubic polynomial and returns the range of the cubic polynomial in the specified domain.\n * @since 1.0.0\n */\n (domain: Interval): (p: CubicPolynomial) => Interval\n} = internal.range\n\nexport const length: {\n /**\n * Calculates the length of a cubic polynomial.\n *\n * @param p - The cubic polynomial to analyze.\n * @param domain - The domain to restrict the analysis to.\n * @returns The length of the cubic polynomial in the specified domain.\n * @since 1.0.0\n */\n (p: CubicPolynomial, domain: Interval): number\n /**\n * Calculates the length of a cubic polynomial.\n *\n * @param domain - The domain to restrict the analysis to.\n * @returns A function that takes a cubic polynomial and returns the length of the cubic polynomial in the specified domain.\n * @since 1.0.0\n */\n (domain: Interval): (p: CubicPolynomial) => number\n} = internal.length\n\nexport const curvature: {\n /**\n * Calculates the curvature of a cubic polynomial.\n *\n * @param p - The cubic polynomial to analyze.\n * @param x - The value of x to calculate the curvature at.\n * @returns The curvature of the cubic polynomial at the specified value of x.\n * @since 1.0.0\n */\n (p: CubicPolynomial, x: number): number\n /**\n * Calculates the curvature of a cubic polynomial.\n *\n * @param x - The value of x to calculate the curvature at.\n * @returns A function that takes a cubic polynomial and returns the curvature of the cubic polynomial at the specified value of x.\n * @since 1.0.0\n */\n (x: number): (p: CubicPolynomial) => number\n} = internal.curvature\n"],"names":["make","isCubicPolynomial","fromVector","solve","toSolver","solveInverse","Quadratic.solveInverse","Quadratic.make","roots","toInverseSolver","derivative","extrema","Quadratic.roots","monotonicity","Linear.monotonicity","Linear.make","Interval.size","Quadratic.monotonicity","Interval.filter","domain","range","Interval.fromMinMax","length","Linear.length","Quadratic.length","Interval.scaleShift","Interval.biunit","Quadratic.solve","curvature","Quadratic.derivative","Linear.solve","internal.isCubicPolynomial","internal.make","internal.fromVector","internal.solve","internal.toSolver","internal.solveInverse","internal.toInverseSolver","internal.derivative","internal.roots","internal.extrema","internal.monotonicity","internal.domain","internal.range","internal.length","internal.curvature"],"mappings":"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"}
@@ -1,7 +0,0 @@
1
- import '../interval.mjs';
2
- import '../pipe.mjs';
3
- import '../vector/vector2.mjs';
4
- export { L as LinearPolynomial, U as antiderivative, T as derivative, V as domain, J as fromPointSlope, K as fromPoints, I as fromVector, G as isLinearPolynomial, X as length, H as make, S as monotonicity, W as range, R as root, M as solve, O as solveInverse, P as toInverseSolver, N as toSolver } from '../shared/curvy.FDaj5rlj.mjs';
5
- import '../shared/curvy.Bf5TIk31.mjs';
6
- import '../vector/vector3.mjs';
7
- import '../vector/vector4.mjs';