curvy 0.3.3 → 1.0.1

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 (95) hide show
  1. package/LICENSE.md +21 -0
  2. package/dist/curve/cubic2d.d.mts +31 -0
  3. package/dist/curve/cubic2d.d.ts +31 -0
  4. package/dist/curve/cubic2d.mjs +96 -0
  5. package/dist/curve/linear2d.d.mts +28 -0
  6. package/dist/curve/linear2d.d.ts +28 -0
  7. package/dist/curve/linear2d.mjs +48 -0
  8. package/dist/curve/quadratic2d.d.mts +33 -0
  9. package/dist/curve/quadratic2d.d.ts +33 -0
  10. package/dist/curve/quadratic2d.mjs +86 -0
  11. package/dist/interval.d.mts +58 -0
  12. package/dist/interval.d.ts +58 -0
  13. package/dist/interval.mjs +88 -0
  14. package/dist/matrix/matrix2x2.d.mts +49 -0
  15. package/dist/matrix/matrix2x2.d.ts +49 -0
  16. package/dist/matrix/matrix2x2.mjs +23 -0
  17. package/dist/matrix/matrix3x3.d.mts +63 -0
  18. package/dist/matrix/matrix3x3.d.ts +63 -0
  19. package/dist/matrix/matrix3x3.mjs +26 -0
  20. package/dist/matrix/matrix4x4.d.mts +72 -0
  21. package/dist/matrix/matrix4x4.d.ts +72 -0
  22. package/dist/matrix/matrix4x4.mjs +214 -0
  23. package/dist/path/cubic2d.d.mts +29 -0
  24. package/dist/path/cubic2d.d.ts +29 -0
  25. package/dist/path/cubic2d.mjs +60 -0
  26. package/dist/path/linear2d.d.mts +29 -0
  27. package/dist/path/linear2d.d.ts +29 -0
  28. package/dist/path/linear2d.mjs +54 -0
  29. package/dist/path/quadratic2d.d.mts +30 -0
  30. package/dist/path/quadratic2d.d.ts +30 -0
  31. package/dist/path/quadratic2d.mjs +60 -0
  32. package/dist/polynomial/cubic.d.mts +7 -0
  33. package/dist/polynomial/cubic.d.ts +7 -0
  34. package/dist/polynomial/cubic.mjs +147 -0
  35. package/dist/polynomial/linear.d.mts +7 -0
  36. package/dist/polynomial/linear.d.ts +7 -0
  37. package/dist/polynomial/linear.mjs +22 -0
  38. package/dist/polynomial/quadratic.d.mts +7 -0
  39. package/dist/polynomial/quadratic.d.ts +7 -0
  40. package/dist/polynomial/quadratic.mjs +23 -0
  41. package/dist/shared/curvy.BN-oFBsc.d.mts +26 -0
  42. package/dist/shared/curvy.BN-oFBsc.d.ts +26 -0
  43. package/dist/shared/curvy.CT38g_II.d.mts +22 -0
  44. package/dist/shared/curvy.CT38g_II.d.ts +22 -0
  45. package/dist/shared/curvy.ChkqgKuv.mjs +119 -0
  46. package/dist/shared/curvy.CkJRVnqj.d.ts +155 -0
  47. package/dist/shared/curvy.Cty3LrOR.mjs +70 -0
  48. package/dist/shared/curvy.D7MEXd5g.mjs +130 -0
  49. package/dist/shared/curvy.D7bhnwZy.mjs +52 -0
  50. package/dist/shared/curvy.DB7nQmVs.mjs +79 -0
  51. package/dist/shared/curvy.DM6AiKbn.mjs +119 -0
  52. package/dist/shared/curvy.DOSsf40r.mjs +49 -0
  53. package/dist/shared/curvy.DmVFTi0N.mjs +34 -0
  54. package/dist/shared/curvy.DwHW5Fqt.d.mts +155 -0
  55. package/dist/shared/curvy.bvP77ZZm.mjs +123 -0
  56. package/dist/splines/bezier2d.d.mts +43 -0
  57. package/dist/splines/bezier2d.d.ts +43 -0
  58. package/dist/splines/bezier2d.mjs +148 -0
  59. package/dist/vector/vector2.d.mts +41 -0
  60. package/dist/vector/vector2.d.ts +41 -0
  61. package/dist/vector/vector2.mjs +17 -0
  62. package/dist/vector/vector3.d.mts +38 -0
  63. package/dist/vector/vector3.d.ts +38 -0
  64. package/dist/vector/vector3.mjs +16 -0
  65. package/dist/vector/vector4.d.mts +39 -0
  66. package/dist/vector/vector4.d.ts +39 -0
  67. package/dist/vector/vector4.mjs +16 -0
  68. package/package.json +78 -37
  69. package/dist/axis.cjs +0 -14
  70. package/dist/axis.d.cts +0 -20
  71. package/dist/axis.d.mts +0 -20
  72. package/dist/axis.d.ts +0 -20
  73. package/dist/axis.mjs +0 -3
  74. package/dist/convert.cjs +0 -74
  75. package/dist/convert.d.cts +0 -6
  76. package/dist/convert.d.mts +0 -6
  77. package/dist/convert.d.ts +0 -6
  78. package/dist/convert.mjs +0 -68
  79. package/dist/curve.cjs +0 -365
  80. package/dist/curve.d.cts +0 -20
  81. package/dist/curve.d.mts +0 -20
  82. package/dist/curve.d.ts +0 -20
  83. package/dist/curve.mjs +0 -354
  84. package/dist/shared/curvy.262f6070.cjs +0 -16
  85. package/dist/shared/curvy.7876e09e.mjs +0 -323
  86. package/dist/shared/curvy.9cd8b44c.mjs +0 -13
  87. package/dist/shared/curvy.db103082.cjs +0 -335
  88. package/dist/shared/curvy.df73166c.d.cts +0 -38
  89. package/dist/shared/curvy.df73166c.d.mts +0 -38
  90. package/dist/shared/curvy.df73166c.d.ts +0 -38
  91. package/dist/splines.cjs +0 -150
  92. package/dist/splines.d.cts +0 -27
  93. package/dist/splines.d.mts +0 -27
  94. package/dist/splines.d.ts +0 -27
  95. package/dist/splines.mjs +0 -138
@@ -0,0 +1,29 @@
1
+ import { CubicCurve2d } from '../curve/cubic2d.js';
2
+ import { P as Pipeable } from '../shared/curvy.BN-oFBsc.js';
3
+ import { Vector2 } from '../vector/vector2.js';
4
+ import '../shared/curvy.CT38g_II.js';
5
+ import '../interval.js';
6
+ import '../shared/curvy.CkJRVnqj.js';
7
+ import '../vector/vector3.js';
8
+ import '../vector/vector4.js';
9
+
10
+ declare const CubicPath2dTypeId: unique symbol;
11
+ type CubicPath2dTypeId = typeof CubicPath2dTypeId;
12
+
13
+ interface CubicPath2d extends Pipeable, Iterable<CubicCurve2d> {
14
+ readonly [CubicPath2dTypeId]: CubicPath2dTypeId;
15
+ }
16
+ declare const fromCurves: (...curves: ReadonlyArray<CubicCurve2d>) => CubicPath2d;
17
+ declare const fromCurveArray: (curves: ReadonlyArray<CubicCurve2d>) => CubicPath2d;
18
+ declare const isCubicPath2d: (p: unknown) => p is CubicPath2d;
19
+ declare const append: {
20
+ (c: CubicCurve2d): (p: CubicPath2d) => CubicPath2d;
21
+ (p: CubicPath2d, c: CubicCurve2d): CubicPath2d;
22
+ };
23
+ declare const length: (p: CubicPath2d) => number;
24
+ declare const solve: {
25
+ (u: number): (p: CubicPath2d) => Vector2;
26
+ (p: CubicPath2d, u: number): Vector2;
27
+ };
28
+
29
+ export { type CubicPath2d, append, fromCurveArray, fromCurves, isCubicPath2d, length, solve };
@@ -0,0 +1,60 @@
1
+ import { length as length$2, solve as solve$2 } from '../curve/cubic2d.mjs';
2
+ import { d as dual, r as round, P as Pipeable } from '../shared/curvy.ChkqgKuv.mjs';
3
+ import { unit } from '../interval.mjs';
4
+ import '../shared/curvy.DmVFTi0N.mjs';
5
+ import '../polynomial/cubic.mjs';
6
+ import '../shared/curvy.D7MEXd5g.mjs';
7
+ import '../shared/curvy.DB7nQmVs.mjs';
8
+ import '../polynomial/quadratic.mjs';
9
+ import '../vector/vector2.mjs';
10
+ import '../shared/curvy.DOSsf40r.mjs';
11
+ import '../curve/linear2d.mjs';
12
+ import '../polynomial/linear.mjs';
13
+ import '../curve/quadratic2d.mjs';
14
+
15
+ const CubicPath2dTypeId = Symbol("curvy/path/cubic2d");
16
+ class CubicPath2dImpl extends Pipeable {
17
+ [CubicPath2dTypeId] = CubicPath2dTypeId;
18
+ curves;
19
+ constructor(curves) {
20
+ super();
21
+ this.curves = curves;
22
+ }
23
+ [Symbol.iterator]() {
24
+ return this.curves[Symbol.iterator]();
25
+ }
26
+ }
27
+ const isCubicPath2d$1 = (p) => typeof p === "object" && p !== null && CubicPath2dTypeId in p;
28
+ const fromCurves$1 = (...curves) => new CubicPath2dImpl(curves);
29
+ const fromCurveArray$1 = (curves) => new CubicPath2dImpl(curves);
30
+ const append$1 = dual(
31
+ 2,
32
+ (p, c) => fromCurveArray$1([...p, c])
33
+ );
34
+ const length$1 = (p) => {
35
+ let length2 = 0;
36
+ for (const curve of p) {
37
+ length2 += length$2(curve, unit);
38
+ }
39
+ return round(length2);
40
+ };
41
+ const solve$1 = dual(2, (p, u) => {
42
+ const curves = p instanceof CubicPath2dImpl ? p.curves : [...p];
43
+ if (u === 1) {
44
+ const last = curves.at(-1);
45
+ return solve$2(last, 1);
46
+ }
47
+ const t = u * curves.length;
48
+ const i = Math.floor(t);
49
+ const curve = curves[i];
50
+ return solve$2(curve, t - i);
51
+ });
52
+
53
+ const fromCurves = fromCurves$1;
54
+ const fromCurveArray = fromCurveArray$1;
55
+ const isCubicPath2d = isCubicPath2d$1;
56
+ const append = append$1;
57
+ const length = length$1;
58
+ const solve = solve$1;
59
+
60
+ export { append, fromCurveArray, fromCurves, isCubicPath2d, length, solve };
@@ -0,0 +1,29 @@
1
+ import { LinearCurve2d } from '../curve/linear2d.mjs';
2
+ import { P as Pipeable } from '../shared/curvy.BN-oFBsc.mjs';
3
+ import { Vector2 } from '../vector/vector2.mjs';
4
+ import '../shared/curvy.CT38g_II.mjs';
5
+ import '../interval.mjs';
6
+ import '../shared/curvy.DwHW5Fqt.mjs';
7
+ import '../vector/vector3.mjs';
8
+ import '../vector/vector4.mjs';
9
+
10
+ declare const LinearPath2dTypeId: unique symbol;
11
+ type LinearPath2dTypeId = typeof LinearPath2dTypeId;
12
+
13
+ interface LinearPath2d extends Pipeable, Iterable<LinearCurve2d> {
14
+ readonly [LinearPath2dTypeId]: LinearPath2dTypeId;
15
+ }
16
+ declare const fromCurves: (...curves: ReadonlyArray<LinearCurve2d>) => LinearPath2d;
17
+ declare const fromCurveArray: (curves: ReadonlyArray<LinearCurve2d>) => LinearPath2d;
18
+ declare const isLinearPath2d: (p: unknown) => p is LinearPath2d;
19
+ declare const append: {
20
+ (c: LinearCurve2d): (p: LinearPath2d) => LinearPath2d;
21
+ (p: LinearPath2d, c: LinearCurve2d): LinearPath2d;
22
+ };
23
+ declare const length: (p: LinearPath2d) => number;
24
+ declare const solve: {
25
+ (u: number): (p: LinearPath2d) => Vector2;
26
+ (p: LinearPath2d, u: number): Vector2;
27
+ };
28
+
29
+ export { type LinearPath2d, append, fromCurveArray, fromCurves, isLinearPath2d, length, solve };
@@ -0,0 +1,29 @@
1
+ import { LinearCurve2d } from '../curve/linear2d.js';
2
+ import { P as Pipeable } from '../shared/curvy.BN-oFBsc.js';
3
+ import { Vector2 } from '../vector/vector2.js';
4
+ import '../shared/curvy.CT38g_II.js';
5
+ import '../interval.js';
6
+ import '../shared/curvy.CkJRVnqj.js';
7
+ import '../vector/vector3.js';
8
+ import '../vector/vector4.js';
9
+
10
+ declare const LinearPath2dTypeId: unique symbol;
11
+ type LinearPath2dTypeId = typeof LinearPath2dTypeId;
12
+
13
+ interface LinearPath2d extends Pipeable, Iterable<LinearCurve2d> {
14
+ readonly [LinearPath2dTypeId]: LinearPath2dTypeId;
15
+ }
16
+ declare const fromCurves: (...curves: ReadonlyArray<LinearCurve2d>) => LinearPath2d;
17
+ declare const fromCurveArray: (curves: ReadonlyArray<LinearCurve2d>) => LinearPath2d;
18
+ declare const isLinearPath2d: (p: unknown) => p is LinearPath2d;
19
+ declare const append: {
20
+ (c: LinearCurve2d): (p: LinearPath2d) => LinearPath2d;
21
+ (p: LinearPath2d, c: LinearCurve2d): LinearPath2d;
22
+ };
23
+ declare const length: (p: LinearPath2d) => number;
24
+ declare const solve: {
25
+ (u: number): (p: LinearPath2d) => Vector2;
26
+ (p: LinearPath2d, u: number): Vector2;
27
+ };
28
+
29
+ export { type LinearPath2d, append, fromCurveArray, fromCurves, isLinearPath2d, length, solve };
@@ -0,0 +1,54 @@
1
+ import { length as length$2, solve as solve$2 } from '../curve/linear2d.mjs';
2
+ import { d as dual, r as round, P as Pipeable } from '../shared/curvy.ChkqgKuv.mjs';
3
+ import { unit } from '../interval.mjs';
4
+ import '../polynomial/linear.mjs';
5
+ import '../shared/curvy.DB7nQmVs.mjs';
6
+ import '../vector/vector2.mjs';
7
+ import '../shared/curvy.DOSsf40r.mjs';
8
+
9
+ const LinearPath2dTypeId = Symbol("curvy/path/linear2d");
10
+ class LinearPath2dImpl extends Pipeable {
11
+ [LinearPath2dTypeId] = LinearPath2dTypeId;
12
+ curves;
13
+ constructor(curves) {
14
+ super();
15
+ this.curves = curves;
16
+ }
17
+ [Symbol.iterator]() {
18
+ return this.curves[Symbol.iterator]();
19
+ }
20
+ }
21
+ const isLinearPath2d$1 = (p) => typeof p === "object" && p !== null && LinearPath2dTypeId in p;
22
+ const fromCurves$1 = (...curves) => new LinearPath2dImpl(curves);
23
+ const fromCurveArray$1 = (curves) => new LinearPath2dImpl(curves);
24
+ const append$1 = dual(
25
+ 2,
26
+ (p, c) => fromCurveArray$1([...p, c])
27
+ );
28
+ const length$1 = (p) => {
29
+ let length2 = 0;
30
+ for (const curve of p) {
31
+ length2 += length$2(curve, unit);
32
+ }
33
+ return round(length2);
34
+ };
35
+ const solve$1 = dual(2, (p, u) => {
36
+ const curves = p instanceof LinearPath2dImpl ? p.curves : [...p];
37
+ if (u === 1) {
38
+ const last = curves.at(-1);
39
+ return solve$2(last, 1);
40
+ }
41
+ const t = u * curves.length;
42
+ const i = Math.floor(t);
43
+ const curve = curves[i];
44
+ return solve$2(curve, t - i);
45
+ });
46
+
47
+ const fromCurves = fromCurves$1;
48
+ const fromCurveArray = fromCurveArray$1;
49
+ const isLinearPath2d = isLinearPath2d$1;
50
+ const append = append$1;
51
+ const length = length$1;
52
+ const solve = solve$1;
53
+
54
+ export { append, fromCurveArray, fromCurves, isLinearPath2d, length, solve };
@@ -0,0 +1,30 @@
1
+ import { QuadraticCurve2d } from '../curve/quadratic2d.mjs';
2
+ import { P as Pipeable } from '../shared/curvy.BN-oFBsc.mjs';
3
+ import { Vector2 } from '../vector/vector2.mjs';
4
+ import '../shared/curvy.CT38g_II.mjs';
5
+ import '../interval.mjs';
6
+ import '../shared/curvy.DwHW5Fqt.mjs';
7
+ import '../vector/vector3.mjs';
8
+ import '../vector/vector4.mjs';
9
+ import '../curve/linear2d.mjs';
10
+
11
+ declare const QuadraticPath2dTypeId: unique symbol;
12
+ type QuadraticPath2dTypeId = typeof QuadraticPath2dTypeId;
13
+
14
+ interface QuadraticPath2d extends Pipeable, Iterable<QuadraticCurve2d> {
15
+ readonly [QuadraticPath2dTypeId]: QuadraticPath2dTypeId;
16
+ }
17
+ declare const fromCurves: (...curves: ReadonlyArray<QuadraticCurve2d>) => QuadraticPath2d;
18
+ declare const fromCurveArray: (curves: ReadonlyArray<QuadraticCurve2d>) => QuadraticPath2d;
19
+ declare const isQuadraticPath2d: (p: unknown) => p is QuadraticPath2d;
20
+ declare const append: {
21
+ (c: QuadraticCurve2d): (p: QuadraticPath2d) => QuadraticPath2d;
22
+ (p: QuadraticPath2d, c: QuadraticCurve2d): QuadraticPath2d;
23
+ };
24
+ declare const length: (p: QuadraticPath2d) => number;
25
+ declare const solve: {
26
+ (u: number): (p: QuadraticPath2d) => Vector2;
27
+ (p: QuadraticPath2d, u: number): Vector2;
28
+ };
29
+
30
+ export { type QuadraticPath2d, append, fromCurveArray, fromCurves, isQuadraticPath2d, length, solve };
@@ -0,0 +1,30 @@
1
+ import { QuadraticCurve2d } from '../curve/quadratic2d.js';
2
+ import { P as Pipeable } from '../shared/curvy.BN-oFBsc.js';
3
+ import { Vector2 } from '../vector/vector2.js';
4
+ import '../shared/curvy.CT38g_II.js';
5
+ import '../interval.js';
6
+ import '../shared/curvy.CkJRVnqj.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
+ interface QuadraticPath2d extends Pipeable, Iterable<QuadraticCurve2d> {
15
+ readonly [QuadraticPath2dTypeId]: QuadraticPath2dTypeId;
16
+ }
17
+ declare const fromCurves: (...curves: ReadonlyArray<QuadraticCurve2d>) => QuadraticPath2d;
18
+ declare const fromCurveArray: (curves: ReadonlyArray<QuadraticCurve2d>) => QuadraticPath2d;
19
+ declare const isQuadraticPath2d: (p: unknown) => p is QuadraticPath2d;
20
+ declare const append: {
21
+ (c: QuadraticCurve2d): (p: QuadraticPath2d) => QuadraticPath2d;
22
+ (p: QuadraticPath2d, c: QuadraticCurve2d): QuadraticPath2d;
23
+ };
24
+ declare const length: (p: QuadraticPath2d) => number;
25
+ declare const solve: {
26
+ (u: number): (p: QuadraticPath2d) => Vector2;
27
+ (p: QuadraticPath2d, u: number): Vector2;
28
+ };
29
+
30
+ export { type QuadraticPath2d, append, fromCurveArray, fromCurves, isQuadraticPath2d, length, solve };
@@ -0,0 +1,60 @@
1
+ import { length as length$2, solve as solve$2 } from '../curve/quadratic2d.mjs';
2
+ import { d as dual, r as round, P as Pipeable } from '../shared/curvy.ChkqgKuv.mjs';
3
+ import { unit } from '../interval.mjs';
4
+ import '../shared/curvy.DmVFTi0N.mjs';
5
+ import '../polynomial/linear.mjs';
6
+ import '../shared/curvy.DB7nQmVs.mjs';
7
+ import '../polynomial/quadratic.mjs';
8
+ import '../shared/curvy.D7MEXd5g.mjs';
9
+ import '../vector/vector2.mjs';
10
+ import '../shared/curvy.DOSsf40r.mjs';
11
+ import '../curve/linear2d.mjs';
12
+
13
+ const QuadraticPath2dTypeId = Symbol(
14
+ "curvy/path/quadratic2d"
15
+ );
16
+ class QuadraticPath2dImpl extends Pipeable {
17
+ [QuadraticPath2dTypeId] = QuadraticPath2dTypeId;
18
+ curves;
19
+ constructor(curves) {
20
+ super();
21
+ this.curves = curves;
22
+ }
23
+ [Symbol.iterator]() {
24
+ return this.curves[Symbol.iterator]();
25
+ }
26
+ }
27
+ const isQuadraticPath2d$1 = (p) => typeof p === "object" && p !== null && QuadraticPath2dTypeId in p;
28
+ const fromCurves$1 = (...curves) => new QuadraticPath2dImpl(curves);
29
+ const fromCurveArray$1 = (curves) => new QuadraticPath2dImpl(curves);
30
+ const append$1 = dual(
31
+ 2,
32
+ (p, c) => fromCurveArray$1([...p, c])
33
+ );
34
+ const length$1 = (p) => {
35
+ let length2 = 0;
36
+ for (const curve of p) {
37
+ length2 += length$2(curve, unit);
38
+ }
39
+ return round(length2);
40
+ };
41
+ const solve$1 = dual(2, (p, u) => {
42
+ const curves = p instanceof QuadraticPath2dImpl ? p.curves : [...p];
43
+ if (u === 1) {
44
+ const last = curves.at(-1);
45
+ return solve$2(last, 1);
46
+ }
47
+ const t = u * curves.length;
48
+ const i = Math.floor(t);
49
+ const curve = curves[i];
50
+ return solve$2(curve, t - i);
51
+ });
52
+
53
+ const fromCurves = fromCurves$1;
54
+ const fromCurveArray = fromCurveArray$1;
55
+ const isQuadraticPath2d = isQuadraticPath2d$1;
56
+ const append = append$1;
57
+ const length = length$1;
58
+ const solve = solve$1;
59
+
60
+ export { append, fromCurveArray, fromCurves, isQuadraticPath2d, length, solve };
@@ -0,0 +1,7 @@
1
+ import '../shared/curvy.BN-oFBsc.mjs';
2
+ import '../interval.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.DwHW5Fqt.mjs';
5
+ import '../shared/curvy.CT38g_II.mjs';
6
+ import '../vector/vector2.mjs';
7
+ import '../vector/vector3.mjs';
@@ -0,0 +1,7 @@
1
+ import '../shared/curvy.BN-oFBsc.js';
2
+ import '../interval.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.CkJRVnqj.js';
5
+ import '../shared/curvy.CT38g_II.js';
6
+ import '../vector/vector2.js';
7
+ import '../vector/vector3.js';
@@ -0,0 +1,147 @@
1
+ import { d as dual, r as round } from '../shared/curvy.ChkqgKuv.mjs';
2
+ import { size, filter, fromMinMax, scaleShift, biunit } from '../interval.mjs';
3
+ 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';
4
+ import { C as CubicPolynomialImpl, a as CubicPolynomialTypeId, s as solveInverse$2, m as make$2, r as roots$2, b as monotonicity$3, g as guaranteedMonotonicityFromComparison, l as length$3, c as solve$2, d as derivative$2 } from '../shared/curvy.D7MEXd5g.mjs';
5
+ import { m as monotonicity$2, a as make$3, l as length$2, s as solve$3 } from '../shared/curvy.DB7nQmVs.mjs';
6
+
7
+ const make$1 = (c0 = 0, c1 = 0, c2 = 0, c3 = 0) => new CubicPolynomialImpl(c0, c1, c2, c3);
8
+ const isCubicPolynomial$1 = (v) => typeof v === "object" && v !== null && CubicPolynomialTypeId in v;
9
+ const fromVector$1 = (v) => new CubicPolynomialImpl(v.x, v.y, v.z, v.w);
10
+ const solve$1 = dual(
11
+ 2,
12
+ (p, x) => round(p.c0 + x * p.c1 + x ** 2 * p.c2 + x ** 3 * p.c3)
13
+ );
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(
18
+ make$2(self.c0, self.c1, self.c2),
19
+ 0
20
+ );
21
+ }
22
+ const shift = self.c2 / (3 * self.c3);
23
+ const d0 = self.c2 ** 2 - 3 * self.c3 * self.c1;
24
+ const d1 = 2 * self.c2 ** 3 - 9 * self.c3 * self.c2 * self.c1 + 27 * self.c3 ** 2 * (self.c0 - y);
25
+ const p = -d0 / (3 * self.c3 ** 2);
26
+ const q = d1 / (27 * self.c3 ** 3);
27
+ const discriminant = round(-(4 * p ** 3 + 27 * q ** 2), 12);
28
+ const roots2 = /* @__PURE__ */ new Set();
29
+ if (discriminant > 0) {
30
+ const r = 2 * Math.sqrt(-p / 3);
31
+ const theta = Math.acos(3 * q / (2 * p) * Math.sqrt(-3 / p)) / 3;
32
+ const offset = 2 * Math.PI / 3;
33
+ roots2.add(round(r * Math.cos(theta + offset) - shift));
34
+ roots2.add(round(r * Math.cos(theta) - shift));
35
+ roots2.add(round(r * Math.cos(theta - offset) - shift));
36
+ } else if (discriminant < 0) {
37
+ const u = Math.sqrt(q ** 2 / 4 + p ** 3 / 27);
38
+ const u1 = Math.cbrt(-q / 2 + u);
39
+ const u2 = Math.cbrt(-q / 2 - u);
40
+ roots2.add(round(u1 + u2 - shift));
41
+ } else if (d0 === 0) {
42
+ roots2.add(round(-shift));
43
+ } else {
44
+ roots2.add(
45
+ round((9 * self.c3 * (self.c0 - y) - self.c2 * self.c1) / (2 * d0))
46
+ );
47
+ roots2.add(
48
+ round(
49
+ (4 * self.c3 * self.c2 * self.c1 - 9 * self.c3 ** 2 * (self.c0 - y) - self.c2 ** 3) / (self.c3 * d0)
50
+ )
51
+ );
52
+ }
53
+ return Array.from(roots2).toSorted(
54
+ (a, b) => a - b
55
+ );
56
+ });
57
+ const toInverseSolver$1 = (p) => (y) => solveInverse$1(p, y);
58
+ const derivative$1 = (p) => make$2(p.c1, p.c2 * 2, p.c3 * 3);
59
+ const roots$1 = (p) => solveInverse$1(p, 0);
60
+ const extrema$1 = (p) => roots$2(derivative$1(p));
61
+ const monotonicity$1 = dual(
62
+ (args) => isCubicPolynomial$1(args[0]),
63
+ (p, i) => {
64
+ if (p.c3 === 0 && p.c2 === 0 && p.c1 === 0) {
65
+ return "constant";
66
+ }
67
+ if (p.c3 === 0 && p.c2 === 0) {
68
+ return monotonicity$2(make$3(p.c0, p.c1));
69
+ }
70
+ if (i === void 0) {
71
+ return "none";
72
+ }
73
+ if (size(i) === 0) {
74
+ return "constant";
75
+ }
76
+ if (p.c3 === 0) {
77
+ return monotonicity$3(make$2(p.c0, p.c1, p.c2), i);
78
+ }
79
+ const e = filter(i, extrema$1(p), {
80
+ includeStart: false,
81
+ includeEnd: false
82
+ });
83
+ if (e.length > 0) {
84
+ return "none";
85
+ }
86
+ return guaranteedMonotonicityFromComparison(
87
+ solve$1(p, i.start),
88
+ solve$1(p, i.end)
89
+ );
90
+ }
91
+ );
92
+ const domain$1 = dual(
93
+ 2,
94
+ (p, range2) => fromMinMax(
95
+ ...solveInverse$1(p, range2.start),
96
+ ...solveInverse$1(p, range2.end)
97
+ )
98
+ );
99
+ const range$1 = dual(
100
+ 2,
101
+ (p, domain2) => fromMinMax(
102
+ solve$1(p, domain2.start),
103
+ solve$1(p, domain2.end),
104
+ ...filter(domain2, extrema$1(p)).map((e) => solve$1(p, e))
105
+ )
106
+ );
107
+ const length$1 = dual(2, (p, domain2) => {
108
+ if (size(domain2) === 0) {
109
+ return 0;
110
+ }
111
+ if (p.c3 === 0) {
112
+ if (p.c2 === 0) {
113
+ return length$2(make$3(p.c0, p.c1), domain2);
114
+ }
115
+ return length$3(make$2(p.c0, p.c1, p.c2), domain2);
116
+ }
117
+ const d = derivative$1(p);
118
+ const { scale, shift } = scaleShift(biunit, domain2);
119
+ return round(
120
+ (GL32_W0 * Math.sqrt(1 + solve$2(d, shift + scale * -GL32_X0) ** 2) + GL32_W0 * Math.sqrt(1 + solve$2(d, shift + scale * GL32_X0) ** 2) + GL32_W1 * Math.sqrt(1 + solve$2(d, shift + scale * -GL32_X1) ** 2) + GL32_W1 * Math.sqrt(1 + solve$2(d, shift + scale * GL32_X1) ** 2) + GL32_W2 * Math.sqrt(1 + solve$2(d, shift + scale * -GL32_X2) ** 2) + GL32_W2 * Math.sqrt(1 + solve$2(d, shift + scale * GL32_X2) ** 2) + GL32_W3 * Math.sqrt(1 + solve$2(d, shift + scale * -GL32_X3) ** 2) + GL32_W3 * Math.sqrt(1 + solve$2(d, shift + scale * GL32_X3) ** 2) + GL32_W4 * Math.sqrt(1 + solve$2(d, shift + scale * -GL32_X4) ** 2) + GL32_W4 * Math.sqrt(1 + solve$2(d, shift + scale * GL32_X4) ** 2) + GL32_W5 * Math.sqrt(1 + solve$2(d, shift + scale * -GL32_X5) ** 2) + GL32_W5 * Math.sqrt(1 + solve$2(d, shift + scale * GL32_X5) ** 2) + GL32_W6 * Math.sqrt(1 + solve$2(d, shift + scale * -GL32_X6) ** 2) + GL32_W6 * Math.sqrt(1 + solve$2(d, shift + scale * GL32_X6) ** 2) + GL32_W7 * Math.sqrt(1 + solve$2(d, shift + scale * -GL32_X7) ** 2) + GL32_W7 * Math.sqrt(1 + solve$2(d, shift + scale * GL32_X7) ** 2) + GL32_W8 * Math.sqrt(1 + solve$2(d, shift + scale * -GL32_X8) ** 2) + GL32_W8 * Math.sqrt(1 + solve$2(d, shift + scale * GL32_X8) ** 2) + GL32_W9 * Math.sqrt(1 + solve$2(d, shift + scale * -GL32_X9) ** 2) + GL32_W9 * Math.sqrt(1 + solve$2(d, shift + scale * GL32_X9) ** 2) + GL32_W10 * Math.sqrt(1 + solve$2(d, shift + scale * -GL32_X10) ** 2) + GL32_W10 * Math.sqrt(1 + solve$2(d, shift + scale * GL32_X10) ** 2) + GL32_W11 * Math.sqrt(1 + solve$2(d, shift + scale * -GL32_X11) ** 2) + GL32_W11 * Math.sqrt(1 + solve$2(d, shift + scale * GL32_X11) ** 2) + GL32_W12 * Math.sqrt(1 + solve$2(d, shift + scale * -GL32_X12) ** 2) + GL32_W12 * Math.sqrt(1 + solve$2(d, shift + scale * GL32_X12) ** 2) + GL32_W13 * Math.sqrt(1 + solve$2(d, shift + scale * -GL32_X13) ** 2) + GL32_W13 * Math.sqrt(1 + solve$2(d, shift + scale * GL32_X13) ** 2) + GL32_W14 * Math.sqrt(1 + solve$2(d, shift + scale * -GL32_X14) ** 2) + GL32_W14 * Math.sqrt(1 + solve$2(d, shift + scale * GL32_X14) ** 2) + GL32_W15 * Math.sqrt(1 + solve$2(d, shift + scale * -GL32_X15) ** 2) + GL32_W15 * Math.sqrt(1 + solve$2(d, shift + scale * GL32_X15) ** 2)) * scale
121
+ );
122
+ });
123
+ const curvature$1 = dual(2, (p, x) => {
124
+ const d = derivative$1(p);
125
+ const dd = derivative$2(d);
126
+ return round(
127
+ Math.abs(solve$3(dd, x)) / (1 + solve$2(d, x) ** 2) ** 1.5
128
+ );
129
+ });
130
+
131
+ const isCubicPolynomial = isCubicPolynomial$1;
132
+ const make = make$1;
133
+ const fromVector = fromVector$1;
134
+ const solve = solve$1;
135
+ const toSolver = toSolver$1;
136
+ const solveInverse = solveInverse$1;
137
+ const toInverseSolver = toInverseSolver$1;
138
+ const derivative = derivative$1;
139
+ const roots = roots$1;
140
+ const extrema = extrema$1;
141
+ const monotonicity = monotonicity$1;
142
+ const domain = domain$1;
143
+ const range = range$1;
144
+ const length = length$1;
145
+ const curvature = curvature$1;
146
+
147
+ export { curvature, derivative, domain, extrema, fromVector, isCubicPolynomial, length, make, monotonicity, range, roots, solve, solveInverse, toInverseSolver, toSolver };
@@ -0,0 +1,7 @@
1
+ import '../shared/curvy.BN-oFBsc.mjs';
2
+ import '../interval.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.DwHW5Fqt.mjs';
5
+ import '../shared/curvy.CT38g_II.mjs';
6
+ import '../vector/vector3.mjs';
7
+ import '../vector/vector4.mjs';
@@ -0,0 +1,7 @@
1
+ import '../shared/curvy.BN-oFBsc.js';
2
+ import '../interval.js';
3
+ import '../vector/vector2.js';
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.CkJRVnqj.js';
5
+ import '../shared/curvy.CT38g_II.js';
6
+ import '../vector/vector3.js';
7
+ import '../vector/vector4.js';
@@ -0,0 +1,22 @@
1
+ import { i as isLinearPolynomial$1, a as make$1, f as fromVector$1, d as fromPointSlope$1, e as fromPoints$1, s as solve$1, t as toSolver$1, c as solveInverse$1, g as toInverseSolver$1, m as monotonicity$1, h as derivative$1, j as antiderivative$1, k as domain$1, r as range$1, l as length$1 } from '../shared/curvy.DB7nQmVs.mjs';
2
+ import '../shared/curvy.ChkqgKuv.mjs';
3
+ import '../interval.mjs';
4
+
5
+ const isLinearPolynomial = isLinearPolynomial$1;
6
+ const make = make$1;
7
+ const fromVector = fromVector$1;
8
+ const fromPointSlope = fromPointSlope$1;
9
+ const fromPoints = fromPoints$1;
10
+ const solve = solve$1;
11
+ const toSolver = toSolver$1;
12
+ const solveInverse = solveInverse$1;
13
+ const toInverseSolver = toInverseSolver$1;
14
+ const root = (p) => solveInverse$1(p, 0);
15
+ const monotonicity = monotonicity$1;
16
+ const derivative = derivative$1;
17
+ const antiderivative = antiderivative$1;
18
+ const domain = domain$1;
19
+ const range = range$1;
20
+ const length = length$1;
21
+
22
+ export { antiderivative, derivative, domain, fromPointSlope, fromPoints, fromVector, isLinearPolynomial, length, make, monotonicity, range, root, solve, solveInverse, toInverseSolver, toSolver };
@@ -0,0 +1,7 @@
1
+ import '../shared/curvy.BN-oFBsc.mjs';
2
+ import '../interval.mjs';
3
+ import '../vector/vector3.mjs';
4
+ export { Q as QuadraticPolynomial, A as antiderivative, F as curvature, w as derivative, B as domain, y as extreme, o as fromVector, k as isQuadraticPolynomial, E as length, n as make, z as monotonicity, D as range, x as roots, p as solve, u as solveInverse, v as toInverseSolver, q as toSolver } from '../shared/curvy.DwHW5Fqt.mjs';
5
+ import '../shared/curvy.CT38g_II.mjs';
6
+ import '../vector/vector2.mjs';
7
+ import '../vector/vector4.mjs';
@@ -0,0 +1,7 @@
1
+ import '../shared/curvy.BN-oFBsc.js';
2
+ import '../interval.js';
3
+ import '../vector/vector3.js';
4
+ export { Q as QuadraticPolynomial, A as antiderivative, F as curvature, w as derivative, B as domain, y as extreme, o as fromVector, k as isQuadraticPolynomial, E as length, n as make, z as monotonicity, D as range, x as roots, p as solve, u as solveInverse, v as toInverseSolver, q as toSolver } from '../shared/curvy.CkJRVnqj.js';
5
+ import '../shared/curvy.CT38g_II.js';
6
+ import '../vector/vector2.js';
7
+ import '../vector/vector4.js';
@@ -0,0 +1,23 @@
1
+ import { i as isQuadraticPolynomial$1, m as make$1, f as fromVector$1, c as solve$1, t as toSolver$1, s as solveInverse$1, e as toInverseSolver$1, d as derivative$1, r as roots$1, h as extreme$1, b as monotonicity$1, j as antiderivative$1, k as domain$1, n as range$1, l as length$1, o as curvature$1 } from '../shared/curvy.D7MEXd5g.mjs';
2
+ import '../shared/curvy.ChkqgKuv.mjs';
3
+ import '../interval.mjs';
4
+ import '../shared/curvy.DB7nQmVs.mjs';
5
+
6
+ const isQuadraticPolynomial = isQuadraticPolynomial$1;
7
+ const make = make$1;
8
+ const fromVector = fromVector$1;
9
+ const solve = solve$1;
10
+ const toSolver = toSolver$1;
11
+ const solveInverse = solveInverse$1;
12
+ const toInverseSolver = toInverseSolver$1;
13
+ const derivative = derivative$1;
14
+ const roots = roots$1;
15
+ const extreme = extreme$1;
16
+ const monotonicity = monotonicity$1;
17
+ const antiderivative = antiderivative$1;
18
+ const domain = domain$1;
19
+ const range = range$1;
20
+ const length = length$1;
21
+ const curvature = curvature$1;
22
+
23
+ export { antiderivative, curvature, derivative, domain, extreme, fromVector, isQuadraticPolynomial, length, make, monotonicity, range, roots, solve, solveInverse, toInverseSolver, toSolver };
@@ -0,0 +1,26 @@
1
+ declare class Pipeable {
2
+ pipe<A>(this: A): A;
3
+ pipe<A, B = never>(this: A, ab: (_: A) => B): B;
4
+ pipe<A, B = never, C = never>(this: A, ab: (_: A) => B, bc: (_: B) => C): C;
5
+ pipe<A, B = never, C = never, D = never>(this: A, ab: (_: A) => B, bc: (_: B) => C, cd: (_: C) => D): D;
6
+ 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;
7
+ 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;
8
+ 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;
9
+ 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;
10
+ 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;
11
+ 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;
12
+ 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;
13
+ 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;
14
+ 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;
15
+ 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;
16
+ 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;
17
+ 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;
18
+ 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;
19
+ 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;
20
+ 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;
21
+ 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;
22
+ 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;
23
+ 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;
24
+ }
25
+
26
+ export { Pipeable as P };