@danielsimonjr/mathts-core 0.14.3 → 0.15.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 (90) hide show
  1. package/dist/arithmetic/scalar.d.ts +56 -0
  2. package/dist/arithmetic/scalar.d.ts.map +1 -0
  3. package/dist/array.d.ts +265 -0
  4. package/dist/array.d.ts.map +1 -0
  5. package/dist/bignumber-formatter.d.ts +135 -0
  6. package/dist/bignumber-formatter.d.ts.map +1 -0
  7. package/dist/collection.d.ts +67 -0
  8. package/dist/collection.d.ts.map +1 -0
  9. package/dist/config.d.ts +20 -0
  10. package/dist/config.d.ts.map +1 -0
  11. package/dist/constants.d.ts +30 -0
  12. package/dist/constants.d.ts.map +1 -0
  13. package/dist/customs.d.ts +44 -0
  14. package/dist/customs.d.ts.map +1 -0
  15. package/dist/error/DimensionError.d.ts +28 -0
  16. package/dist/error/DimensionError.d.ts.map +1 -0
  17. package/dist/error/IndexError.d.ts +41 -0
  18. package/dist/error/IndexError.d.ts.map +1 -0
  19. package/dist/error/MathjsError.d.ts +13 -0
  20. package/dist/error/MathjsError.d.ts.map +1 -0
  21. package/dist/factory/factory.d.ts +154 -0
  22. package/dist/factory/factory.d.ts.map +1 -0
  23. package/dist/factory/index.d.ts +6 -0
  24. package/dist/factory/index.d.ts.map +1 -0
  25. package/dist/factory.d.ts +122 -0
  26. package/dist/factory.d.ts.map +1 -0
  27. package/dist/index.d.ts +24 -2593
  28. package/dist/index.d.ts.map +1 -0
  29. package/dist/index.js +36 -18
  30. package/dist/internal.d.ts +33 -1344
  31. package/dist/internal.d.ts.map +1 -0
  32. package/dist/internal.js +36 -6
  33. package/dist/is.d.ts +256 -0
  34. package/dist/is.d.ts.map +1 -0
  35. package/dist/map.d.ts +147 -0
  36. package/dist/map.d.ts.map +1 -0
  37. package/dist/number.d.ts +314 -0
  38. package/dist/number.d.ts.map +1 -0
  39. package/dist/numeric/stable.d.ts +130 -0
  40. package/dist/numeric/stable.d.ts.map +1 -0
  41. package/dist/object.d.ts +119 -0
  42. package/dist/object.d.ts.map +1 -0
  43. package/dist/shared.d.ts +41 -0
  44. package/dist/shared.d.ts.map +1 -0
  45. package/dist/string.d.ts +70 -0
  46. package/dist/string.d.ts.map +1 -0
  47. package/dist/switch.d.ts +9 -0
  48. package/dist/switch.d.ts.map +1 -0
  49. package/dist/typed/index.d.ts +7 -0
  50. package/dist/typed/index.d.ts.map +1 -0
  51. package/dist/typed/mathts-typed.d.ts +246 -0
  52. package/dist/typed/mathts-typed.d.ts.map +1 -0
  53. package/dist/typed/type-bridge.d.ts +9 -0
  54. package/dist/typed/type-bridge.d.ts.map +1 -0
  55. package/dist/types/bignumber.d.ts +370 -0
  56. package/dist/types/bignumber.d.ts.map +1 -0
  57. package/dist/types/complex.d.ts +284 -0
  58. package/dist/types/complex.d.ts.map +1 -0
  59. package/dist/types/dual-rules.d.ts +129 -0
  60. package/dist/types/dual-rules.d.ts.map +1 -0
  61. package/dist/types/dual.d.ts +39 -0
  62. package/dist/types/dual.d.ts.map +1 -0
  63. package/dist/types/fraction.d.ts +215 -0
  64. package/dist/types/fraction.d.ts.map +1 -0
  65. package/dist/types/interfaces.d.ts +143 -0
  66. package/dist/types/interfaces.d.ts.map +1 -0
  67. package/dist/types/matrix/Range.d.ts +767 -0
  68. package/dist/types/matrix/Range.d.ts.map +1 -0
  69. package/dist/types/unit/Unit.d.ts +3 -0
  70. package/dist/types/unit/Unit.d.ts.map +1 -0
  71. package/dist/types/unit/dependencies.d.ts +4 -0
  72. package/dist/types/unit/dependencies.d.ts.map +1 -0
  73. package/dist/types/unit/errors.d.ts +18 -0
  74. package/dist/types/unit/errors.d.ts.map +1 -0
  75. package/dist/types/unit/index.d.ts +7 -0
  76. package/dist/types/unit/index.d.ts.map +1 -0
  77. package/dist/types/unit/unit-types.d.ts +231 -0
  78. package/dist/types/unit/unit-types.d.ts.map +1 -0
  79. package/dist/types/unit-definitions.d.ts +79 -0
  80. package/dist/types/unit-definitions.d.ts.map +1 -0
  81. package/dist/types/unit-prefixes.d.ts +29 -0
  82. package/dist/types/unit-prefixes.d.ts.map +1 -0
  83. package/dist/types/unit.d.ts +28 -0
  84. package/dist/types/unit.d.ts.map +1 -0
  85. package/dist/types/wasm-loader.d.ts +35 -0
  86. package/dist/types/wasm-loader.d.ts.map +1 -0
  87. package/dist/wasm-loader.d.ts +97 -0
  88. package/dist/wasm-loader.d.ts.map +1 -0
  89. package/package.json +8 -8
  90. package/dist/index-B4LIOfHN.d.ts +0 -449
@@ -0,0 +1,370 @@
1
+ /**
2
+ * BigNumber (arbitrary precision decimal) implementation
3
+ * @module @danielsimonjr/mathts-core/types/bignumber
4
+ */
5
+ import type { Scalar, MathTSValue } from './interfaces';
6
+ /**
7
+ * Check if a value is a BigNumber
8
+ */
9
+ export declare function isBigNumber(value: unknown): value is BigNumber;
10
+ /**
11
+ * Configuration for BigNumber operations
12
+ */
13
+ export interface BigNumberConfig {
14
+ /** Number of significant digits (default: 64) */
15
+ precision: number;
16
+ /** Rounding mode (default: 'halfUp') */
17
+ rounding: RoundingMode;
18
+ /** Minimum exponent (default: -1e9) */
19
+ minExponent: number;
20
+ /** Maximum exponent (default: 1e9) */
21
+ maxExponent: number;
22
+ }
23
+ /**
24
+ * Rounding mode of a BigNumber operation. The default configuration uses `'halfUp'`.
25
+ */
26
+ export type RoundingMode = 'up' | 'down' | 'ceil' | 'floor' | 'halfUp' | 'halfDown' | 'halfEven' | 'halfCeil' | 'halfFloor';
27
+ /**
28
+ * BigNumber class for arbitrary precision decimal arithmetic
29
+ *
30
+ * Internally stores: sign * coefficient * 10^exponent
31
+ * where coefficient is a bigint with the significant digits.
32
+ */
33
+ export declare class BigNumber implements MathTSValue {
34
+ readonly type = "BigNumber";
35
+ /**
36
+ * Duck-typing marker for Decimal.js / mathjs formatter compatibility.
37
+ * Allows external code that checks `obj.isBigNumber === true` to identify
38
+ * this class without an `instanceof` check.
39
+ */
40
+ readonly isBigNumber = true;
41
+ private readonly _sign;
42
+ private readonly _coefficient;
43
+ private readonly _exponent;
44
+ private readonly _isNaN;
45
+ private readonly _isInfinite;
46
+ private constructor();
47
+ /**
48
+ * Create a BigNumber from a number
49
+ */
50
+ static fromNumber(n: number): BigNumber;
51
+ /**
52
+ * Create a BigNumber from a string
53
+ */
54
+ static parse(str: string): BigNumber;
55
+ /**
56
+ * Create from bigint
57
+ */
58
+ static fromBigInt(n: bigint): BigNumber;
59
+ /**
60
+ * Create a BigNumber from a JSON object
61
+ */
62
+ static fromJSON(json: {
63
+ value: string;
64
+ }): BigNumber;
65
+ /**
66
+ * Get/set global configuration
67
+ */
68
+ static config(newConfig?: Partial<BigNumberConfig>): BigNumberConfig;
69
+ /**
70
+ * Reset configuration to defaults
71
+ */
72
+ static resetConfig(): void;
73
+ /**
74
+ * Compare two BigNumbers
75
+ * @returns -1, 0, or 1
76
+ */
77
+ static compare(a: BigNumber, b: BigNumber): number;
78
+ private static compareMagnitude;
79
+ valueOf(): number;
80
+ /**
81
+ * Convert to a JS number.
82
+ * Alias for `valueOf()` — provided for Decimal.js / mathjs formatter
83
+ * duck-typing compatibility.
84
+ */
85
+ toNumber(): number;
86
+ toString(): string;
87
+ toJSON(): {
88
+ mathjs: string;
89
+ value: string;
90
+ };
91
+ /**
92
+ * Convert to fixed-point notation.
93
+ *
94
+ * When called with no argument (or `undefined`) returns the full fixed-point
95
+ * string representation without rounding — matching Decimal.js semantics where
96
+ * `toFixed()` is equivalent to a lossless fixed-point stringify.
97
+ * When called with a non-negative integer `decimalPlaces`, rounds and formats
98
+ * to exactly that many digits after the decimal point.
99
+ */
100
+ toFixed(decimalPlaces?: number): string;
101
+ private toFixedInternal;
102
+ /**
103
+ * Convert to exponential notation
104
+ */
105
+ toExponential(decimalPlaces?: number): string;
106
+ /**
107
+ * Convert to precision
108
+ */
109
+ toPrecision(significantDigits?: number): string;
110
+ /**
111
+ * Convert to bigint (truncated)
112
+ */
113
+ toBigInt(): bigint;
114
+ /**
115
+ * Binary string representation, e.g. `255 -> '0b11111111'`, `0.5 -> '0b0.1'`.
116
+ * Mirrors Decimal.js `toBinary()`. Negatives carry a leading `-`.
117
+ */
118
+ toBinary(): string;
119
+ /**
120
+ * Octal string representation, e.g. `8 -> '0o10'`.
121
+ * Mirrors Decimal.js `toOctal()`.
122
+ */
123
+ toOctal(): string;
124
+ /**
125
+ * Hexadecimal string representation, e.g. `255 -> '0xff'`, `10.5 -> '0xa.8'`.
126
+ * Mirrors Decimal.js `toHexadecimal()`.
127
+ */
128
+ toHexadecimal(): string;
129
+ /**
130
+ * Shared radix formatter for {@link toBinary}/{@link toOctal}/{@link toHexadecimal}.
131
+ * Integers and terminating fractions are exact; a non-terminating fraction is
132
+ * truncated at `maxFractionDigits` radix digits (a safety bound — the common
133
+ * use is integer formatting).
134
+ */
135
+ private toRadixString;
136
+ /**
137
+ * Addition
138
+ */
139
+ add(other: Scalar | BigNumber | number | string): BigNumber;
140
+ /**
141
+ * Subtraction
142
+ */
143
+ subtract(other: Scalar | BigNumber | number | string): BigNumber;
144
+ /**
145
+ * Alias for subtract — mathjs / Decimal.js compatibility.
146
+ */
147
+ sub(other: Scalar | BigNumber | number | string): BigNumber;
148
+ /**
149
+ * Multiplication
150
+ */
151
+ multiply(other: Scalar | BigNumber | number | string): BigNumber;
152
+ /**
153
+ * Alias for multiply — mathjs / Decimal.js compatibility.
154
+ */
155
+ mul(other: Scalar | BigNumber | number | string): BigNumber;
156
+ /**
157
+ * Alias for multiply — Decimal.js calling convention (used by the Unit).
158
+ */
159
+ times(other: Scalar | BigNumber | number | string): BigNumber;
160
+ /**
161
+ * Division
162
+ */
163
+ divide(other: Scalar | BigNumber | number | string): BigNumber;
164
+ /**
165
+ * Alias for divide — Decimal.js calling convention (used by the Unit).
166
+ */
167
+ div(other: Scalar | BigNumber | number | string): BigNumber;
168
+ /**
169
+ * Negation
170
+ */
171
+ negate(): BigNumber;
172
+ /**
173
+ * Absolute value
174
+ */
175
+ abs(): BigNumber;
176
+ /**
177
+ * Power (integer exponent)
178
+ */
179
+ pow(n: number | bigint): BigNumber;
180
+ /**
181
+ * Square root
182
+ */
183
+ sqrt(): BigNumber;
184
+ equals(other: BigNumber | number | string): boolean;
185
+ lessThan(other: BigNumber | number | string): boolean;
186
+ lessThanOrEqual(other: BigNumber | number | string): boolean;
187
+ greaterThan(other: BigNumber | number | string): boolean;
188
+ greaterThanOrEqual(other: BigNumber | number | string): boolean;
189
+ compareTo(other: BigNumber | number | string): number;
190
+ compare(other: BigNumber | number | string): number;
191
+ /**
192
+ * Returns true iff this > other.
193
+ * Accepts the same argument types as `add`/`multiply` (BigNumber, number, or string).
194
+ * Named `gt` for Decimal.js / mathjs formatter compatibility.
195
+ */
196
+ gt(other: BigNumber | number | string): boolean;
197
+ /**
198
+ * Round to specified decimal places
199
+ */
200
+ round(decimalPlaces?: number, mode?: RoundingMode): BigNumber;
201
+ private shouldRound;
202
+ /**
203
+ * Round to specified precision (significant digits)
204
+ */
205
+ roundToPrecision(precision: number, mode?: RoundingMode): BigNumber;
206
+ floor(): BigNumber;
207
+ ceil(): BigNumber;
208
+ trunc(): BigNumber;
209
+ /**
210
+ * Round to `n` significant decimal digits and return a new BigNumber.
211
+ * Delegates to `roundToPrecision`, using the global rounding mode unless
212
+ * an explicit `roundingMode` is supplied.
213
+ *
214
+ * Named `toSignificantDigits` for Decimal.js / mathjs formatter compatibility.
215
+ * When `n` is undefined the value is returned unchanged (no rounding).
216
+ */
217
+ toSignificantDigits(n?: number, roundingMode?: RoundingMode): BigNumber;
218
+ /**
219
+ * The decimal exponent of this number: `floor(log10(|x|))`.
220
+ *
221
+ * Matches Decimal.js semantics:
222
+ * - `12345` → `4` (5 digits → the most-significant place is 10^4)
223
+ * - `0.0123` → `-2` (first significant digit is at 10^-2)
224
+ * - `100` → `2`
225
+ * - `0.01` → `-2`
226
+ * - `0` → `0` (by convention; `isZero()` can be used to distinguish)
227
+ *
228
+ * For special values (NaN, ±Infinity) returns 0 — callers check
229
+ * `isFinite()` / `isNaN()` before using `.e`.
230
+ */
231
+ get e(): number;
232
+ /**
233
+ * Modulo (remainder after division)
234
+ * Result has the same sign as the dividend (this).
235
+ */
236
+ mod(other: Scalar | BigNumber | number | string): BigNumber;
237
+ /**
238
+ * Sine of this BigNumber (in radians)
239
+ * Uses Taylor series: sin(x) = x - x^3/3! + x^5/5! - ...
240
+ */
241
+ sin(): BigNumber;
242
+ /**
243
+ * Cosine of this BigNumber (in radians)
244
+ * Uses Taylor series: cos(x) = 1 - x^2/2! + x^4/4! - ...
245
+ */
246
+ cos(): BigNumber;
247
+ /**
248
+ * Tangent of this BigNumber (in radians)
249
+ * tan(x) = sin(x) / cos(x)
250
+ */
251
+ tan(): BigNumber;
252
+ /**
253
+ * Arcsine of this BigNumber
254
+ * Returns value in [-PI/2, PI/2]
255
+ */
256
+ asin(): BigNumber;
257
+ /**
258
+ * Arccosine of this BigNumber
259
+ * Returns value in [0, PI]
260
+ */
261
+ acos(): BigNumber;
262
+ /**
263
+ * Arctangent of this BigNumber
264
+ * Returns value in (-PI/2, PI/2)
265
+ * Uses Taylor series with argument reduction for convergence.
266
+ */
267
+ atan(): BigNumber;
268
+ /**
269
+ * Two-argument arctangent: atan2(y, x)
270
+ * this = y, argument = x
271
+ * Returns angle in (-PI, PI]
272
+ */
273
+ atan2(x: BigNumber): BigNumber;
274
+ /**
275
+ * Hyperbolic sine: sinh(x) = (e^x - e^(-x)) / 2
276
+ */
277
+ sinh(): BigNumber;
278
+ /**
279
+ * Hyperbolic cosine: cosh(x) = (e^x + e^(-x)) / 2
280
+ */
281
+ cosh(): BigNumber;
282
+ /**
283
+ * Hyperbolic tangent: tanh(x) = sinh(x) / cosh(x)
284
+ */
285
+ tanh(): BigNumber;
286
+ /**
287
+ * Inverse hyperbolic sine: asinh(x) = ln(x + sqrt(x^2 + 1))
288
+ */
289
+ asinh(): BigNumber;
290
+ /**
291
+ * Inverse hyperbolic cosine: acosh(x) = ln(x + sqrt(x^2 - 1))
292
+ * Domain: x >= 1
293
+ */
294
+ acosh(): BigNumber;
295
+ /**
296
+ * Inverse hyperbolic tangent: atanh(x) = 0.5 * ln((1+x)/(1-x))
297
+ * Domain: -1 < x < 1
298
+ */
299
+ atanh(): BigNumber;
300
+ /**
301
+ * Exponential function: e^x
302
+ * Uses Taylor series: e^x = 1 + x + x^2/2! + x^3/3! + ...
303
+ * With argument reduction: e^x = (e^(x/2^k))^(2^k) for faster convergence.
304
+ */
305
+ exp(): BigNumber;
306
+ /**
307
+ * Natural logarithm: ln(x)
308
+ * Uses the AGM (arithmetic-geometric mean) method for fast convergence.
309
+ * Fallback: series ln((1+y)/(1-y)) = 2*(y + y^3/3 + y^5/5 + ...) where y = (x-1)/(x+1)
310
+ */
311
+ ln(): BigNumber;
312
+ /**
313
+ * Base-10 logarithm: log10(x) = ln(x) / ln(10)
314
+ */
315
+ log10(): BigNumber;
316
+ /**
317
+ * Base-2 logarithm: log2(x) = ln(x) / ln(2)
318
+ */
319
+ log2(): BigNumber;
320
+ /**
321
+ * Cube root
322
+ * Uses Newton-Raphson iteration.
323
+ */
324
+ cbrt(): BigNumber;
325
+ /**
326
+ * e^x - 1 (more precise than exp(x) - 1 for small x)
327
+ * Uses Taylor series directly: expm1(x) = x + x^2/2! + x^3/3! + ...
328
+ */
329
+ expm1(): BigNumber;
330
+ /**
331
+ * ln(1 + x) (more precise than ln(1 + x) for small x)
332
+ */
333
+ log1p(): BigNumber;
334
+ /**
335
+ * Hypotenuse: sqrt(this^2 + other^2)
336
+ */
337
+ hypot(other: BigNumber): BigNumber;
338
+ /** Reduce angle to [-PI, PI] range */
339
+ private _reduceAngle;
340
+ /** Taylor series for sin(x), assumes x is in [-PI, PI] */
341
+ private _sinTaylor;
342
+ /** Taylor series for cos(x), assumes x is in [-PI, PI] */
343
+ private _cosTaylor;
344
+ /** Taylor series for atan(x), assumes |x| <= 0.5 */
345
+ private _atanTaylor;
346
+ isNaN(): boolean;
347
+ isFinite(): boolean;
348
+ isInfinite(): boolean;
349
+ isZero(): boolean;
350
+ isPositive(): boolean;
351
+ isNegative(): boolean;
352
+ isInteger(): boolean;
353
+ sign(): number;
354
+ clone(): BigNumber;
355
+ private ensureBigNumber;
356
+ private alignExponents;
357
+ private normalize;
358
+ }
359
+ /**
360
+ * Common BigNumber constants
361
+ */
362
+ export declare const BIGNUMBER_ZERO: BigNumber;
363
+ export declare const BIGNUMBER_ONE: BigNumber;
364
+ export declare const BIGNUMBER_NEG_ONE: BigNumber;
365
+ export declare const BIGNUMBER_TEN: BigNumber;
366
+ export declare const BIGNUMBER_PI: BigNumber;
367
+ export declare const BIGNUMBER_E: BigNumber;
368
+ export declare const BIGNUMBER_LN2: BigNumber;
369
+ export declare const BIGNUMBER_LN10: BigNumber;
370
+ //# sourceMappingURL=bignumber.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bignumber.d.ts","sourceRoot":"","sources":["../../src/types/bignumber.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,284 @@
1
+ /**
2
+ * Complex number implementation
3
+ * @module @danielsimonjr/mathts-core/types/complex
4
+ */
5
+ import type { Scalar, IComplex } from './interfaces';
6
+ /**
7
+ * Check if a value is a Complex number
8
+ */
9
+ export declare function isComplex(value: unknown): value is Complex;
10
+ /**
11
+ * Complex number class with full arithmetic support
12
+ * Implements the IComplex interface for type-safe complex number operations.
13
+ */
14
+ export declare class Complex implements IComplex {
15
+ readonly type = "Complex";
16
+ readonly re: number;
17
+ readonly im: number;
18
+ constructor(re: number, im?: number);
19
+ /**
20
+ * Create a Complex from polar form (r, θ)
21
+ * @param r - magnitude (radius)
22
+ * @param theta - angle in radians
23
+ */
24
+ static fromPolar(r: number, theta: number): Complex;
25
+ /**
26
+ * Create a Complex from a real number
27
+ */
28
+ static fromNumber(n: number): Complex;
29
+ /**
30
+ * Create a Complex from a JSON object
31
+ */
32
+ static fromJSON(json: {
33
+ re: number;
34
+ im: number;
35
+ }): Complex;
36
+ /**
37
+ * Parse a complex number from a string
38
+ * Supports formats: "3+4i", "3-4i", "3", "4i", "-4i", "i", "-i"
39
+ */
40
+ static parse(str: string): Complex;
41
+ /**
42
+ * Compare two complex numbers lexicographically (re first, then im)
43
+ * @returns -1, 0, or 1
44
+ */
45
+ static compare(a: Complex, b: Complex): number;
46
+ valueOf(): number;
47
+ toString(): string;
48
+ toJSON(): {
49
+ mathjs: string;
50
+ re: number;
51
+ im: number;
52
+ };
53
+ /**
54
+ * Return polar representation
55
+ */
56
+ toPolar(): {
57
+ r: number;
58
+ phi: number;
59
+ };
60
+ /**
61
+ * Format with options (precision, notation, etc.)
62
+ */
63
+ format(options?: {
64
+ precision?: number;
65
+ notation?: 'fixed' | 'exponential' | 'auto';
66
+ }): string;
67
+ /**
68
+ * Complex conjugate (a + bi → a - bi)
69
+ */
70
+ conjugate(): Complex;
71
+ /**
72
+ * Magnitude (absolute value) |z| = √(re² + im²)
73
+ */
74
+ abs(): number;
75
+ /**
76
+ * Phase angle (argument) in radians, range (-π, π]
77
+ */
78
+ arg(): number;
79
+ /**
80
+ * Squared magnitude |z|² = re² + im²
81
+ * More efficient than abs() when you don't need the square root
82
+ */
83
+ abs2(): number;
84
+ /**
85
+ * Addition: (a + bi) + (c + di) = (a + c) + (b + d)i
86
+ */
87
+ add(other: Scalar): Complex;
88
+ /**
89
+ * Subtraction: (a + bi) - (c + di) = (a - c) + (b - d)i
90
+ */
91
+ subtract(other: Scalar): Complex;
92
+ /**
93
+ * Multiplication: (a + bi)(c + di) = (ac - bd) + (ad + bc)i
94
+ */
95
+ multiply(other: Scalar): Complex;
96
+ /**
97
+ * Division: (a + bi)/(c + di) = ((ac + bd) + (bc - ad)i) / (c² + d²)
98
+ */
99
+ divide(other: Scalar): Complex;
100
+ sub(other: Scalar): Complex;
101
+ mul(other: Scalar): Complex;
102
+ div(other: Scalar): Complex;
103
+ neg(): Complex;
104
+ /**
105
+ * Negation: -(a + bi) = -a - bi
106
+ */
107
+ negate(): Complex;
108
+ /**
109
+ * Multiplicative inverse: 1/z = z̄/|z|²
110
+ */
111
+ inverse(): Complex;
112
+ /**
113
+ * Square root using the principal branch (Re ≥ 0; Im has the sign of `this.im`).
114
+ *
115
+ * Algebraic form, not polar: one hypot + one sqrt instead of hypot + atan2 +
116
+ * cos + sin. Same branch cut as C99 / the previous polar implementation,
117
+ * including `sqrt(-x - 0i) = −√x · i`.
118
+ */
119
+ sqrt(): Complex;
120
+ /**
121
+ * n-th root (returns principal root)
122
+ */
123
+ nthRoot(n: number): Complex;
124
+ /**
125
+ * All n-th roots
126
+ */
127
+ nthRoots(n: number): Complex[];
128
+ /**
129
+ * Exponential: e^(a+bi) = e^a · (cos(b) + i·sin(b))
130
+ */
131
+ exp(): Complex;
132
+ /**
133
+ * Natural logarithm: ln(z) = ln|z| + i·arg(z)
134
+ */
135
+ log(): Complex;
136
+ /**
137
+ * Logarithm base 10
138
+ */
139
+ log10(): Complex;
140
+ /**
141
+ * Logarithm base 2
142
+ */
143
+ log2(): Complex;
144
+ /**
145
+ * Power: z^w = e^(w·ln(z))
146
+ */
147
+ pow(n: number | Complex): Complex;
148
+ /**
149
+ * Sine: sin(a + bi) = sin(a)cosh(b) + i·cos(a)sinh(b)
150
+ */
151
+ sin(): Complex;
152
+ /**
153
+ * Cosine: cos(a + bi) = cos(a)cosh(b) - i·sin(a)sinh(b)
154
+ */
155
+ cos(): Complex;
156
+ /**
157
+ * Tangent: tan(x+iy) = (sin 2x + i sinh 2y) / (cos 2x + cosh 2y)
158
+ *
159
+ * Closed form — no intermediate `sin`/`cos` Complex allocations.
160
+ */
161
+ tan(): Complex;
162
+ /**
163
+ * Cotangent: cot(x+iy) = (sin 2x − i sinh 2y) / (cosh 2y − cos 2x)
164
+ */
165
+ cot(): Complex;
166
+ /**
167
+ * Secant: sec(z) = 1 / cos(z)
168
+ */
169
+ sec(): Complex;
170
+ /**
171
+ * Cosecant: csc(z) = 1 / sin(z)
172
+ */
173
+ csc(): Complex;
174
+ /**
175
+ * Hyperbolic sine: sinh(z) = (e^z - e^(-z)) / 2
176
+ */
177
+ sinh(): Complex;
178
+ /**
179
+ * Hyperbolic cosine: cosh(z) = (e^z + e^(-z)) / 2
180
+ */
181
+ cosh(): Complex;
182
+ /**
183
+ * Hyperbolic tangent: tanh(x+iy) = (sinh 2x + i sin 2y) / (cosh 2x + cos 2y)
184
+ */
185
+ tanh(): Complex;
186
+ /**
187
+ * Hyperbolic cotangent: coth(x+iy) = (sinh 2x − i sin 2y) / (cosh 2x − cos 2y)
188
+ */
189
+ coth(): Complex;
190
+ /**
191
+ * Hyperbolic secant: sech(z) = 1 / cosh(z)
192
+ */
193
+ sech(): Complex;
194
+ /**
195
+ * Hyperbolic cosecant: csch(z) = 1 / sinh(z)
196
+ */
197
+ csch(): Complex;
198
+ /**
199
+ * Arc sine: asin(z) = -i·ln(iz + √(1 - z²))
200
+ */
201
+ asin(): Complex;
202
+ /**
203
+ * Arc cosine: acos(z) = π/2 - asin(z)
204
+ */
205
+ acos(): Complex;
206
+ /**
207
+ * Arc tangent: atan(z) = (i/2)·ln((i + z)/(i - z))
208
+ */
209
+ atan(): Complex;
210
+ /**
211
+ * Inverse hyperbolic sine: asinh(z) = ln(z + √(z² + 1))
212
+ */
213
+ asinh(): Complex;
214
+ /**
215
+ * Inverse hyperbolic cosine: acosh(z) = ln(z + √(z-1)·√(z+1))
216
+ *
217
+ * The principal value has non-negative real part (C99 Annex G / DLMF 4.37 /
218
+ * NumPy convention). Using the factored `√(z-1)·√(z+1)` rather than `√(z²-1)`
219
+ * selects the correct Riemann sheet for Re(z) < 0 and on the real-axis branch
220
+ * cuts (z < 1), where `√(z²-1)` lands on the wrong branch — the previous form
221
+ * returned a negative real part (e.g. acosh(-1+0.5i)) and the wrong sign of π
222
+ * on z < -1.
223
+ */
224
+ acosh(): Complex;
225
+ /**
226
+ * Inverse hyperbolic tangent: atanh(z) = (1/2)·ln((1 + z)/(1 - z))
227
+ */
228
+ atanh(): Complex;
229
+ /**
230
+ * Check equality within tolerance
231
+ */
232
+ equals(other: Complex, epsilon?: number): boolean;
233
+ /**
234
+ * Check if this is a real number (im ≈ 0)
235
+ */
236
+ isReal(epsilon?: number): boolean;
237
+ /**
238
+ * Check if this is purely imaginary (re ≈ 0, im ≠ 0)
239
+ */
240
+ isImaginary(epsilon?: number): boolean;
241
+ /**
242
+ * Check if this is zero
243
+ */
244
+ isZero(epsilon?: number): boolean;
245
+ /**
246
+ * Check if this is NaN
247
+ */
248
+ isNaN(): boolean;
249
+ /**
250
+ * Check if this is infinite
251
+ */
252
+ isInfinite(): boolean;
253
+ /**
254
+ * Clone this complex number
255
+ */
256
+ clone(): Complex;
257
+ /**
258
+ * Round real and imaginary parts to specified decimals
259
+ */
260
+ round(decimals?: number): Complex;
261
+ /**
262
+ * Floor real and imaginary parts
263
+ */
264
+ floor(): Complex;
265
+ /**
266
+ * Ceil real and imaginary parts
267
+ */
268
+ ceil(): Complex;
269
+ /**
270
+ * Sign function: z / |z| (unit complex number in same direction)
271
+ */
272
+ sign(): Complex;
273
+ }
274
+ /**
275
+ * Imaginary unit constant: i = √(-1)
276
+ */
277
+ export declare const I: Complex;
278
+ /**
279
+ * Common constants
280
+ */
281
+ export declare const COMPLEX_ZERO: Complex;
282
+ export declare const COMPLEX_ONE: Complex;
283
+ export declare const COMPLEX_NEG_ONE: Complex;
284
+ //# sourceMappingURL=complex.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"complex.d.ts","sourceRoot":"","sources":["../../src/types/complex.ts"],"names":[],"mappings":"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"}