curvy 1.0.9 → 2.0.0-alpha.0

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 (169) 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 +2 -0
  6. package/dist/interval/index.mjs +2 -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 +241 -0
  14. package/dist/path/index.mjs +292 -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-BGRxcxUH.mjs +104 -0
  19. package/dist/shared/characteristic-BGRxcxUH.mjs.map +1 -0
  20. package/dist/shared/chunk-25Hzd3z8.mjs +13 -0
  21. package/dist/shared/cubic-CYYEUHNm.mjs +479 -0
  22. package/dist/shared/cubic-CYYEUHNm.mjs.map +1 -0
  23. package/dist/shared/cubic-Dfn6DB02.d.mts +1099 -0
  24. package/dist/shared/interval-CCEqzPgA.mjs +376 -0
  25. package/dist/shared/interval-CCEqzPgA.mjs.map +1 -0
  26. package/dist/shared/interval-hQDiKqj0.d.mts +494 -0
  27. package/dist/shared/matrix4x4-Bt_DBlP0.d.mts +1182 -0
  28. package/dist/shared/matrix4x4-Ck2WROK-.mjs +440 -0
  29. package/dist/shared/matrix4x4-Ck2WROK-.mjs.map +1 -0
  30. package/dist/shared/quadratic-DEhuAKuE.mjs +330 -0
  31. package/dist/shared/quadratic-DEhuAKuE.mjs.map +1 -0
  32. package/dist/shared/rationalCubic2d-BPLohNuI.d.mts +787 -0
  33. package/dist/shared/rationalCubic2d-CP4oGpnk.mjs +658 -0
  34. package/dist/shared/rationalCubic2d-CP4oGpnk.mjs.map +1 -0
  35. package/dist/shared/rationalCubic2d-CXa7Yren.mjs +278 -0
  36. package/dist/shared/rationalCubic2d-CXa7Yren.mjs.map +1 -0
  37. package/dist/shared/rationalCubic2d-D_-XWxcm.d.mts +297 -0
  38. package/dist/shared/solution-BjoW7ov4.d.mts +251 -0
  39. package/dist/shared/solution-CbSWzXCn.mjs +306 -0
  40. package/dist/shared/solution-CbSWzXCn.mjs.map +1 -0
  41. package/dist/{pipe.d.mts → shared/utils-DqTGyXrP.d.mts} +44 -26
  42. package/dist/shared/vector2-CL1HDdPr.mjs +187 -0
  43. package/dist/shared/vector2-CL1HDdPr.mjs.map +1 -0
  44. package/dist/shared/vector2-TV0UnlxY.d.mts +1168 -0
  45. package/dist/shared/vector2.internal-DU_E808S.mjs +97 -0
  46. package/dist/shared/vector2.internal-DU_E808S.mjs.map +1 -0
  47. package/dist/shared/vector3-D-tv_aKL.mjs +204 -0
  48. package/dist/shared/vector3-D-tv_aKL.mjs.map +1 -0
  49. package/dist/shared/vector4-5KbjoHVj.mjs +109 -0
  50. package/dist/shared/vector4-5KbjoHVj.mjs.map +1 -0
  51. package/dist/shared/vector4.internal-5XcaX12X.mjs +163 -0
  52. package/dist/shared/vector4.internal-5XcaX12X.mjs.map +1 -0
  53. package/dist/solution/index.d.mts +2 -0
  54. package/dist/solution/index.mjs +2 -0
  55. package/dist/splines/index.d.mts +701 -0
  56. package/dist/splines/index.mjs +734 -0
  57. package/dist/splines/index.mjs.map +1 -0
  58. package/dist/utils.d.mts +2 -205
  59. package/dist/utils.mjs +88 -52
  60. package/dist/utils.mjs.map +1 -1
  61. package/dist/vector/index.d.mts +2 -0
  62. package/dist/vector/index.mjs +4 -0
  63. package/package.json +49 -92
  64. package/dist/curve/cubic2d.d.mts +0 -109
  65. package/dist/curve/cubic2d.d.ts +0 -109
  66. package/dist/curve/cubic2d.mjs +0 -80
  67. package/dist/curve/cubic2d.mjs.map +0 -1
  68. package/dist/curve/linear2d.d.mts +0 -94
  69. package/dist/curve/linear2d.d.ts +0 -94
  70. package/dist/curve/linear2d.mjs +0 -46
  71. package/dist/curve/linear2d.mjs.map +0 -1
  72. package/dist/curve/quadratic2d.d.mts +0 -117
  73. package/dist/curve/quadratic2d.d.ts +0 -117
  74. package/dist/curve/quadratic2d.mjs +0 -82
  75. package/dist/curve/quadratic2d.mjs.map +0 -1
  76. package/dist/interval.d.mts +0 -251
  77. package/dist/interval.d.ts +0 -251
  78. package/dist/interval.mjs +0 -86
  79. package/dist/interval.mjs.map +0 -1
  80. package/dist/matrix/matrix2x2.d.mts +0 -320
  81. package/dist/matrix/matrix2x2.d.ts +0 -320
  82. package/dist/matrix/matrix2x2.mjs +0 -25
  83. package/dist/matrix/matrix2x2.mjs.map +0 -1
  84. package/dist/matrix/matrix3x3.d.mts +0 -370
  85. package/dist/matrix/matrix3x3.d.ts +0 -370
  86. package/dist/matrix/matrix3x3.mjs +0 -28
  87. package/dist/matrix/matrix3x3.mjs.map +0 -1
  88. package/dist/matrix/matrix4x4.d.mts +0 -381
  89. package/dist/matrix/matrix4x4.d.ts +0 -381
  90. package/dist/matrix/matrix4x4.mjs +0 -178
  91. package/dist/matrix/matrix4x4.mjs.map +0 -1
  92. package/dist/path/cubic2d.d.mts +0 -95
  93. package/dist/path/cubic2d.d.ts +0 -95
  94. package/dist/path/cubic2d.mjs +0 -60
  95. package/dist/path/cubic2d.mjs.map +0 -1
  96. package/dist/path/linear2d.d.mts +0 -95
  97. package/dist/path/linear2d.d.ts +0 -95
  98. package/dist/path/linear2d.mjs +0 -53
  99. package/dist/path/linear2d.mjs.map +0 -1
  100. package/dist/path/quadratic2d.d.mts +0 -95
  101. package/dist/path/quadratic2d.d.ts +0 -95
  102. package/dist/path/quadratic2d.mjs +0 -57
  103. package/dist/path/quadratic2d.mjs.map +0 -1
  104. package/dist/pipe.d.ts +0 -58
  105. package/dist/pipe.mjs +0 -92
  106. package/dist/pipe.mjs.map +0 -1
  107. package/dist/polynomial/cubic.d.mts +0 -7
  108. package/dist/polynomial/cubic.d.ts +0 -7
  109. package/dist/polynomial/cubic.mjs +0 -133
  110. package/dist/polynomial/cubic.mjs.map +0 -1
  111. package/dist/polynomial/linear.d.mts +0 -7
  112. package/dist/polynomial/linear.d.ts +0 -7
  113. package/dist/polynomial/linear.mjs +0 -24
  114. package/dist/polynomial/linear.mjs.map +0 -1
  115. package/dist/polynomial/quadratic.d.mts +0 -7
  116. package/dist/polynomial/quadratic.d.ts +0 -7
  117. package/dist/polynomial/quadratic.mjs +0 -27
  118. package/dist/polynomial/quadratic.mjs.map +0 -1
  119. package/dist/shared/curvy.Bf5TIk31.d.mts +0 -22
  120. package/dist/shared/curvy.Bf5TIk31.d.ts +0 -22
  121. package/dist/shared/curvy.BkkW8Tx9.mjs +0 -102
  122. package/dist/shared/curvy.BkkW8Tx9.mjs.map +0 -1
  123. package/dist/shared/curvy.BxdGW9he.mjs +0 -116
  124. package/dist/shared/curvy.BxdGW9he.mjs.map +0 -1
  125. package/dist/shared/curvy.C_sCeg9J.mjs +0 -66
  126. package/dist/shared/curvy.C_sCeg9J.mjs.map +0 -1
  127. package/dist/shared/curvy.Cg8lZVUz.d.ts +0 -688
  128. package/dist/shared/curvy.DCt1gGII.mjs +0 -147
  129. package/dist/shared/curvy.DCt1gGII.mjs.map +0 -1
  130. package/dist/shared/curvy.DJ4xO0al.mjs +0 -63
  131. package/dist/shared/curvy.DJ4xO0al.mjs.map +0 -1
  132. package/dist/shared/curvy.DmVFTi0N.mjs +0 -35
  133. package/dist/shared/curvy.DmVFTi0N.mjs.map +0 -1
  134. package/dist/shared/curvy.FDaj5rlj.d.mts +0 -688
  135. package/dist/shared/curvy.lktriTpx.mjs +0 -101
  136. package/dist/shared/curvy.lktriTpx.mjs.map +0 -1
  137. package/dist/shared/curvy.mLFprrGm.mjs +0 -85
  138. package/dist/shared/curvy.mLFprrGm.mjs.map +0 -1
  139. package/dist/shared/curvy.r6f1j287.mjs +0 -76
  140. package/dist/shared/curvy.r6f1j287.mjs.map +0 -1
  141. package/dist/splines/basis2d.d.mts +0 -130
  142. package/dist/splines/basis2d.d.ts +0 -130
  143. package/dist/splines/basis2d.mjs +0 -90
  144. package/dist/splines/basis2d.mjs.map +0 -1
  145. package/dist/splines/bezier2d.d.mts +0 -182
  146. package/dist/splines/bezier2d.d.ts +0 -182
  147. package/dist/splines/bezier2d.mjs +0 -23
  148. package/dist/splines/bezier2d.mjs.map +0 -1
  149. package/dist/splines/cardinal2d.d.mts +0 -178
  150. package/dist/splines/cardinal2d.d.ts +0 -178
  151. package/dist/splines/cardinal2d.mjs +0 -114
  152. package/dist/splines/cardinal2d.mjs.map +0 -1
  153. package/dist/splines/hermite2d.d.mts +0 -124
  154. package/dist/splines/hermite2d.d.ts +0 -124
  155. package/dist/splines/hermite2d.mjs +0 -63
  156. package/dist/splines/hermite2d.mjs.map +0 -1
  157. package/dist/utils.d.ts +0 -205
  158. package/dist/vector/vector2.d.mts +0 -324
  159. package/dist/vector/vector2.d.ts +0 -324
  160. package/dist/vector/vector2.mjs +0 -30
  161. package/dist/vector/vector2.mjs.map +0 -1
  162. package/dist/vector/vector3.d.mts +0 -417
  163. package/dist/vector/vector3.d.ts +0 -417
  164. package/dist/vector/vector3.mjs +0 -38
  165. package/dist/vector/vector3.mjs.map +0 -1
  166. package/dist/vector/vector4.d.mts +0 -205
  167. package/dist/vector/vector4.d.ts +0 -205
  168. package/dist/vector/vector4.mjs +0 -20
  169. package/dist/vector/vector4.mjs.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vector4.internal-5XcaX12X.mjs","names":["equals","make","transpose","magnitude","normalize","dot","components","softmax","add","subtract","hadamard","scale"],"sources":["../../src/vector/vector3.internal.ts","../../src/vector/vector4.internal.ts"],"sourcesContent":["import { dual, Pipeable } from '../utils'\nimport { epsEquals } from '../number'\nimport type { Vector3 } from './vector3'\n\nexport const Vector3TypeId: unique symbol = Symbol.for('curvy/vector3')\nexport type Vector3TypeId = typeof Vector3TypeId\n\nclass Vector3Impl extends Pipeable implements Vector3 {\n readonly [Vector3TypeId]: Vector3TypeId = Vector3TypeId\n\n readonly x: number\n readonly y: number\n readonly z: number\n\n constructor(v0 = 0, v1 = 0, v2 = 0) {\n super()\n this.x = v0\n this.y = v1\n this.z = v2\n }\n\n get [0]() {\n return this.x\n }\n\n get [1]() {\n return this.y\n }\n\n get [2]() {\n return this.z\n }\n\n get [Symbol.toStringTag]() {\n return `Vector3(${this.x}, ${this.y}, ${this.z})`\n }\n\n get [Symbol.for('nodejs.util.inspect.custom')]() {\n return this[Symbol.toStringTag]\n }\n}\n\nexport const isVector3 = (v: unknown): v is Vector3 =>\n typeof v === 'object' && v !== null && Vector3TypeId in v\n\nexport const equals = dual<\n (b: Vector3) => (a: Vector3) => boolean,\n (a: Vector3, b: Vector3) => boolean\n>(2, (a: Vector3, b: Vector3) => epsEquals(a.x, b.x) && epsEquals(a.y, b.y) && epsEquals(a.z, b.z))\n\nexport const make = (v0: number, v1 = v0, v2 = v1): Vector3 => new Vector3Impl(v0, v1, v2)\n\nexport const transpose = <T, const Channels extends ReadonlyArray<number>>(\n inputs: readonly [T, T, T],\n project: (item: T) => Channels,\n): { readonly [K in keyof Channels]: Vector3 } => {\n const a = project(inputs[0])\n const b = project(inputs[1])\n const c = project(inputs[2])\n const result: Array<Vector3> = []\n for (let i = 0; i < a.length; i++) {\n result.push(make(a[i] as number, b[i] as number, c[i] as number))\n }\n return result as never\n}\n\nexport const fromSpherical = (r: number, theta: number, phi: number) =>\n new Vector3Impl(\n r * Math.sin(theta) * Math.cos(phi),\n r * Math.sin(theta) * Math.sin(phi),\n r * Math.cos(theta),\n )\n\nexport const magnitude = (vector: Vector3) => Math.hypot(vector.x, vector.y, vector.z)\n\nexport const normalize = (vector: Vector3) => {\n const m = magnitude(vector)\n\n return make(vector.x / m, vector.y / m, vector.z / m)\n}\n\nexport const dot = dual<(b: Vector3) => (a: Vector3) => number, (a: Vector3, b: Vector3) => number>(\n 2,\n (a: Vector3, b: Vector3) => a.x * b.x + a.y * b.y + a.z * b.z,\n)\n\nexport const cross = dual<\n (b: Vector3) => (a: Vector3) => Vector3,\n (a: Vector3, b: Vector3) => Vector3\n>(2, (a: Vector3, b: Vector3) => {\n const x = a.y * b.z - a.z * b.y\n const y = a.z * b.x - a.x * b.z\n const z = a.x * b.y - a.y * b.x\n\n return make(x, y, z)\n})\n\nexport const components: (v: Vector3) => [number, number, number] = (v: Vector3) => [v.x, v.y, v.z]\n\nexport const softmax = (v: Vector3) => {\n const max = Math.max(v.x, v.y, v.z)\n\n const v0 = Math.exp(v.x - max)\n const v1 = Math.exp(v.y - max)\n const v2 = Math.exp(v.z - max)\n\n const sum = v0 + v1 + v2\n\n return make(v0 / sum, v1 / sum, v2 / sum)\n}\n\nexport const add = dual<\n (b: Vector3) => (a: Vector3) => Vector3,\n (a: Vector3, b: Vector3) => Vector3\n>(2, (a: Vector3, b: Vector3) => make(a.x + b.x, a.y + b.y, a.z + b.z))\n\nexport const subtract = dual<\n (b: Vector3) => (a: Vector3) => Vector3,\n (a: Vector3, b: Vector3) => Vector3\n>(2, (a: Vector3, b: Vector3) => make(a.x - b.x, a.y - b.y, a.z - b.z))\n\nexport const hadamard = dual<\n (b: Vector3) => (a: Vector3) => Vector3,\n (a: Vector3, b: Vector3) => Vector3\n>(2, (a: Vector3, b: Vector3) => make(a.x * b.x, a.y * b.y, a.z * b.z))\n\nexport const scale = dual<\n (s: number) => (v: Vector3) => Vector3,\n (v: Vector3, s: number) => Vector3\n>(2, (v: Vector3, s: number) => (s === 1 ? v : make(v.x * s, v.y * s, v.z * s)))\n\nexport const getX: (v: Vector3) => number = (v: Vector3) => v.x\nexport const setX = dual<\n (x: number) => (v: Vector3) => Vector3,\n (v: Vector3, x: number) => Vector3\n>(2, (v: Vector3, x: number) => make(x, v.y, v.z))\n\nexport const getY: (v: Vector3) => number = (v: Vector3) => v.y\nexport const setY = dual<\n (y: number) => (v: Vector3) => Vector3,\n (v: Vector3, y: number) => Vector3\n>(2, (v: Vector3, y: number) => make(v.x, y, v.z))\n\nexport const getZ: (v: Vector3) => number = (v: Vector3) => v.z\nexport const setZ = dual<\n (z: number) => (v: Vector3) => Vector3,\n (v: Vector3, z: number) => Vector3\n>(2, (v: Vector3, z: number) => make(v.x, v.y, z))\n\nexport const setR = dual<\n (r: number) => (v: Vector3) => Vector3,\n (v: Vector3, r: number) => Vector3\n>(2, (v: Vector3, r: number) => scale(r / magnitude(v))(v))\n\nexport const getTheta = (v: Vector3) => Math.acos(v.z / magnitude(v))\nexport const setTheta = dual<\n (phi: number) => (v: Vector3) => Vector3,\n (v: Vector3, phi: number) => Vector3\n>(2, (v: Vector3, phi: number) => {\n const m = magnitude(v)\n const sinTheta = Math.sin(phi)\n return make(m * sinTheta * Math.cos(v.y), m * sinTheta * Math.sin(v.y), m * Math.cos(phi))\n})\n\nexport const getPhi = (v: Vector3) => Math.atan2(v.y, v.x)\nexport const setPhi = dual<\n (theta: number) => (v: Vector3) => Vector3,\n (v: Vector3, theta: number) => Vector3\n>(2, (v: Vector3, theta: number) => {\n const m = magnitude(v)\n return make(m * Math.cos(theta), m * Math.sin(theta), v.z)\n})\n","import { dual, Pipeable } from '../utils'\nimport { epsEquals } from '../number'\nimport type { Vector4 } from './vector4'\n\nexport const Vector4TypeId: unique symbol = Symbol.for('curvy/vector4')\nexport type Vector4TypeId = typeof Vector4TypeId\n\nclass Vector4Impl extends Pipeable implements Vector4 {\n readonly [Vector4TypeId]: Vector4TypeId = Vector4TypeId\n\n readonly x: number\n readonly y: number\n readonly z: number\n readonly w: number\n\n constructor(v0 = 0, v1 = 0, v2 = 0, v3 = 0) {\n super()\n\n this.x = v0\n this.y = v1\n this.z = v2\n this.w = v3\n }\n\n get [0]() {\n return this.x\n }\n\n get [1]() {\n return this.y\n }\n\n get [2]() {\n return this.z\n }\n\n get [3]() {\n return this.w\n }\n\n get [Symbol.toStringTag]() {\n return `Vector4(${this.x}, ${this.y}, ${this.z}, ${this.w})`\n }\n\n get [Symbol.for('nodejs.util.inspect.custom')]() {\n return this[Symbol.toStringTag]\n }\n}\n\nexport const isVector4 = (v: unknown): v is Vector4 =>\n typeof v === 'object' && v !== null && Vector4TypeId in v\n\nexport const equals = dual<\n (b: Vector4) => (a: Vector4) => boolean,\n (a: Vector4, b: Vector4) => boolean\n>(\n 2,\n (a: Vector4, b: Vector4) =>\n epsEquals(a.x, b.x) && epsEquals(a.y, b.y) && epsEquals(a.z, b.z) && epsEquals(a.w, b.w),\n)\n\nexport const make = (v0: number, v1 = v0, v2 = v1, v3 = v2): Vector4 =>\n new Vector4Impl(v0, v1, v2, v3)\n\nexport const transpose = <T, const Channels extends ReadonlyArray<number>>(\n inputs: readonly [T, T, T, T],\n project: (item: T) => Channels,\n): { readonly [K in keyof Channels]: Vector4 } => {\n const a = project(inputs[0])\n const b = project(inputs[1])\n const c = project(inputs[2])\n const d = project(inputs[3])\n const result: Array<Vector4> = []\n for (let i = 0; i < a.length; i++) {\n result.push(make(a[i] as number, b[i] as number, c[i] as number, d[i] as number))\n }\n return result as never\n}\n\nexport const magnitude: (vector: Vector4) => number = (vector: Vector4) =>\n Math.hypot(vector.x, vector.y, vector.z, vector.w)\n\nexport const normalize: (vector: Vector4) => Vector4 = (vector: Vector4) => {\n const m = magnitude(vector)\n\n return make(vector.x / m, vector.y / m, vector.z / m, vector.w / m)\n}\n\nexport const dot = dual<(b: Vector4) => (a: Vector4) => number, (a: Vector4, b: Vector4) => number>(\n 2,\n (a: Vector4, b: Vector4) => a.x * b.x + a.y * b.y + a.z * b.z + a.w * b.w,\n)\n\nexport const components: (v: Vector4) => [number, number, number, number] = (v: Vector4) => [\n v.x,\n v.y,\n v.z,\n v.w,\n]\n\nexport const softmax: (v: Vector4) => Vector4 = (v: Vector4) => {\n const max = Math.max(v.x, v.y, v.z, v.w)\n\n const v0 = Math.exp(v.x - max)\n const v1 = Math.exp(v.y - max)\n const v2 = Math.exp(v.z - max)\n const v3 = Math.exp(v.w - max)\n\n const sum = v0 + v1 + v2 + v3\n\n return make(v0 / sum, v1 / sum, v2 / sum, v3 / sum)\n}\n\nexport const add = dual<\n (b: Vector4) => (a: Vector4) => Vector4,\n (a: Vector4, b: Vector4) => Vector4\n>(2, (a: Vector4, b: Vector4) => make(a.x + b.x, a.y + b.y, a.z + b.z, a.w + b.w))\n\nexport const subtract = dual<\n (b: Vector4) => (a: Vector4) => Vector4,\n (a: Vector4, b: Vector4) => Vector4\n>(2, (a: Vector4, b: Vector4) => make(a.x - b.x, a.y - b.y, a.z - b.z, a.w - b.w))\n\nexport const hadamard = dual<\n (b: Vector4) => (a: Vector4) => Vector4,\n (a: Vector4, b: Vector4) => Vector4\n>(2, (a: Vector4, b: Vector4) => make(a.x * b.x, a.y * b.y, a.z * b.z, a.w * b.w))\nexport const scale = dual<\n (s: number) => (v: Vector4) => Vector4,\n (v: Vector4, s: number) => Vector4\n>(2, (v: Vector4, s: number) => (s === 1 ? v : make(v.x * s, v.y * s, v.z * s, v.w * s)))\n"],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ import { a as solution_d_exports } from "../shared/solution-BjoW7ov4.mjs";
2
+ export { solution_d_exports as Solution };
@@ -0,0 +1,2 @@
1
+ import { c as solution_exports } from "../shared/solution-CbSWzXCn.mjs";
2
+ export { solution_exports as Solution };