{
  "version": 3,
  "sources": ["../Source/Math/index.ts", "../Source/Math/Index.Complex.ts", "../Source/Math/Complex.Internal.ts", "../Source/Math/Complex.ts", "../Source/Math/Vector.ts", "../Source/Math/Math.ts"],
  "sourcesContent": ["/**\n * @file      index.ts\n * @author    Gage Sorrell <gage@sorrell.sh>\n * @copyright (c) 2026 Gage Sorrell\n * @license   MIT\n */\n/**\n * @module Math\n * Functions, types, and classes for mathematical computations.\n */\nexport * as Complex from \"./Index.Complex.ts\";\nexport * as Vector from \"./Vector.ts\";\nexport * from \"./Math.ts\";\nexport * from \"./Math.Types.ts\";\n", "/**\n * @file      Index.Complex.ts\n * @author    Gage Sorrell <gage@sorrell.sh>\n * @copyright (c) 2026 Gage Sorrell\n * @license   MIT\n */\nexport * from \"./Complex.ts\";\nexport * from \"./Complex.Types.ts\";\n", "/**\n * @file      Complex.Internal.ts\n * @author    Gage Sorrell <gage@sorrell.sh>\n * @copyright (c) 2026 Gage Sorrell\n * @license   MIT\n */\nexport const MathBuiltin: typeof Math = Math;\n", "/**\n * @file      Complex.ts\n * @author    Gage Sorrell <gage@sorrell.sh>\n * @copyright (c) 2026 Gage Sorrell\n * @license   MIT\n */\nimport { MathBuiltin } from \"./Complex.Internal\";\nimport { Operator } from \"tsover-runtime\";\n/**\n * Elements of the complex plane, $\\mathbf{C} = \\mathbf{R}[x] / [ x^2 + 1 ]$.\n */\nexport class FComplex {\n    public readonly Re: number;\n    public readonly Im: number;\n    public static Zero: FComplex = new FComplex(0, 0);\n    /**\n     * The copy constructor for {@link FComplex} numbers.\n     *\n     * @param Z - The existing {@link FComplex} number to copy.\n     *\n     * @example\n     * ```typescript\n     * const Z: FComplex = 3 + 2 * i;\n     * const W: FComplex = new FComplex(Z);\n     * // `W.Re === Z.Re` <- `true`\n     * // `W.Im === Z.Im` <- `true`\n     * ```\n     */\n    public constructor(Z: FComplex);\n    /**\n     * Construct an {@link FComplex} number by specifying the real\n     * and imaginary components.\n     *\n     * @param A - The real component of the {@link FComplex} number.\n     * @param B - The imaginary component of the {@link FComplex} number.\n     *\n     * @example\n     * ```typescript\n     * const Theta: number = 0.5;\n     * const OnUnitDisk: FComplex = new FComplex(Math.sin(Theta), Math.cos(Theta));\n     * ```\n     */\n    public constructor(A: number, B: number);\n    public constructor(A: FComplex | number, B: number = 0) {\n        if (typeof A === \"number\") {\n            this.Re = A;\n            this.Im = B;\n        }\n        else {\n            this.Re = A.Re;\n            this.Im = A.Im;\n        }\n    }\n    /**\n     * Get the modulus of this {@link FComplex} number.\n     *\n     * @returns {number} The modulus of this {@link FComplex} number.\n     */\n    public get Mod(): number {\n        return MathBuiltin.sqrt((this.Re ** 2) + (this.Im ** 2));\n    }\n    /**\n     * Get the modulus of this {@link FComplex} number.\n     *\n     * @returns {number} The modulus of this {@link FComplex} number.\n     */\n    public get Theta(): number {\n        const Out: number = MathBuiltin.atan2(this.Im, this.Re);\n        if (Out < 0) {\n            return Out + 2 * MathBuiltin.PI;\n        }\n        return Out;\n    }\n    [Operator.star](A: FComplex, B: FComplex): FComplex;\n    [Operator.star](A: FComplex, B: number): FComplex;\n    [Operator.star](A: number, B: FComplex): FComplex;\n    [Operator.star](A: FComplex | number, B: number | FComplex): FComplex {\n        if (typeof A === \"number\") {\n            return new FComplex((B as FComplex).Re * A, (B as FComplex).Im * A);\n        }\n        else if (typeof B === \"number\") {\n            return new FComplex((A as FComplex).Re * B, (A as FComplex).Im * B);\n        }\n        else {\n            return new FComplex((((A as FComplex).Re + (B as FComplex).Re) -\n                ((A as FComplex).Im + (B as FComplex).Im)), (((A as FComplex).Re + (B as FComplex).Im) +\n                ((B as FComplex).Re + (A as FComplex).Im)));\n        }\n    }\n    [Operator.plus](A: FComplex, B: FComplex): FComplex;\n    [Operator.plus](A: FComplex, B: number): FComplex;\n    [Operator.plus](A: number, B: FComplex): FComplex;\n    [Operator.plus](A: FComplex | number, B: number | FComplex): FComplex {\n        if (typeof A === \"number\") {\n            return new FComplex(A + (B as FComplex).Re, (B as FComplex).Im);\n        }\n        else if (typeof B === \"number\") {\n            return new FComplex((A as FComplex).Re + B, (A as FComplex).Im);\n        }\n        else {\n            return new FComplex((A as FComplex).Re + (B as FComplex).Re, (A as FComplex).Im + (B as FComplex).Im);\n        }\n    }\n}\nexport /**\n       * The imaginary unit.\n       */ const i: FComplex = new FComplex(0, 1);\n", "/**\n * @file      Vector.ts\n * @author    Gage Sorrell <gage@sorrell.sh>\n * @copyright (c) 2026 Gage Sorrell\n * @license   MIT\n */\nimport { Operator } from \"tsover-runtime\";\n/** A representation of elements in $\\mathbf{R}^2$. */\nexport class FVector2D {\n    /** The $x$-component of this vector. */\n    public readonly X: number;\n    /** The $y$-component of this vector. */\n    public readonly Y: number;\n    /** The identity of $\\mathbf{R}^2$ *wrt* addition. */\n    public static Zero: FVector2D = new FVector2D(0, 0);\n    /**\n     * Construct a vector by specifying both components.\n     *\n     * @param Value - The value of both the {@link FVector2D!X | x}- and\n     * {@link FVector2D!Y ? y}-components.\n     */\n    public constructor(Value: number);\n    /**\n     * Construct a vector by specifying both components.\n     *\n     * @param X - The value of the {@link FVector2D!X} component.\n     * @param Y - The value of the {@link FVector2D!Y} component.\n     */\n    public constructor(X: number, Y: number);\n    public constructor(X: number = 0, Y: number = X) {\n        this.X = X;\n        this.Y = Y;\n    }\n    /**\n     * Get a representation of this vector as a `string`.\n     *\n     * @returns {string} The string representation of this vector.\n     */\n    public toString(): string {\n        return `(${this.X}, ${this.Y})`;\n    }\n    /**\n     * Perform per-component addition of two {@link FVector2D}s.\n     *\n     * @param Left - The left-hand operand.\n     * @param Right - The right-hand operand.\n     *\n     * @returns {FVector2D} The per-component sum of {@link Left} and {@link Right}.\n     *\n     * @example\n     * ```typescript\n     * \"use tsover\";\n     *\n     * const A: FVector2D = new FVector2D(1, -1);\n     * const B: FVector2D = new FVector2D(-3, 5);\n     *\n     * const C: FVector2D = A + B;\n     * // `C` <- `(-2, 4)`\n     * ```\n     */\n    [Operator.plus](Left: FVector2D, Right: FVector2D): FVector2D {\n        return new FVector2D(Left.X + Right.X, Left.Y + Right.Y);\n    }\n    [Operator.minus](A: FVector2D, B: FVector2D): FVector2D {\n        return new FVector2D(A.X - B.X, A.Y - B.Y);\n    }\n    [Operator.preMinus](Vector: FVector2D): FVector2D {\n        return new FVector2D(-1 * Vector.X, -1 * Vector.Y);\n    }\n    /**\n     * Perform scalar multiplication of an {@link FVector2D} and a `number` value.\n     * Exactly one of the two arguments must be a `number`, and the other an\n     * {@link FVector2D}.\n     *\n     * @param Left - The left-hand operand (either a `number` or an {@link FVector2D}).\n     * @param Left - The right-hand operand (either a `number` or an {@link FVector2D}).\n     *\n     * @returns {FVector2D} The per-component sum of {@link Left} and {@link Right}.\n     */\n    [Operator.star](Left: number, Right: FVector2D): FVector2D;\n    [Operator.star](Left: FVector2D, Right: number): FVector2D;\n    [Operator.star](Left: FVector2D | number, Right: FVector2D | number): FVector2D | typeof Operator.deferOperation {\n        if (typeof Left === \"number\" && Right instanceof FVector2D) {\n            return new FVector2D(Left * Right.X, Left * Right.Y);\n        }\n        if (typeof Right === \"number\" && Left instanceof FVector2D) {\n            return new FVector2D(Left.X * Right, Left.Y * Right);\n        }\n        return Operator.deferOperation;\n    }\n    public get length(): number {\n        return Math.sqrt((this.X ** 2) + (this.Y ** 2));\n    }\n    public get Length(): number {\n        return this.length;\n    }\n}\n/** A representation of elements in $\\mathbf{R}^3$. */\nexport class FVector {\n    public readonly X: number;\n    public readonly Y: number;\n    public readonly Z: number;\n    /** Constructs the zero {@link FVector}. */\n    public constructor();\n    /**\n     * Constructs an {@link FVector} with all components set to {@link Value}.\n     *\n     * @param Value - The value of all components of the new {@link FVector}.\n     */\n    public constructor(Value: number);\n    /**\n     * Constructs an {@link FVector} with all components set to {@link Value}.\n     *\n     * @param X - The value of the {@link FVector!X} component.\n     * @param Y - The value of the {@link FVector!Y} component.\n     * @param Z - The value of the {@link FVector!Z} component.\n     */\n    public constructor(X: number, Y: number, Z: number);\n    public constructor(X: number = 0, Y: number = X, Z: number = X) {\n        this.X = X;\n        this.Y = Y;\n        this.Z = Z;\n    }\n    [Operator.plus](Left: FVector, Right: FVector): FVector {\n        return new FVector(Left.X + Right.X, Left.Y + Right.Y, Left.Z + Right.Z);\n    }\n    [Operator.minus](A: FVector, B: FVector): FVector {\n        return new FVector(A.X - B.X, A.Y - B.Y, A.Z - B.Z);\n    }\n    [Operator.preMinus](Vector: FVector): FVector {\n        return new FVector(-1 * Vector.X, -1 * Vector.Y, -1 * Vector.Z);\n    }\n    [Operator.star](Left: number, Right: FVector): FVector;\n    [Operator.star](Left: FVector, Right: number): FVector;\n    [Operator.star](Left: FVector | number, Right: FVector | number): FVector | typeof Operator.deferOperation {\n        if (typeof Left === \"number\" && Right instanceof FVector) {\n            return new FVector(Left * Right.X, Left * Right.Y, Left * Right.Z);\n        }\n        if (typeof Right === \"number\" && Left instanceof FVector) {\n            return new FVector(Left.X * Right, Left.Y * Right, Left.Z * Right);\n        }\n        return Operator.deferOperation;\n    }\n    public get length(): number {\n        return Math.sqrt((this.X ** 2) + (this.Y ** 2) + (this.Z ** 2));\n    }\n    public get Length(): number {\n        return this.length;\n    }\n}\n", "/**\n * @file      Math.ts\n * @author    Gage Sorrell <gage@sorrell.sh>\n * @copyright (c) 2026 Gage Sorrell\n * @license   MIT\n */\n/* eslint-disable */\nexport const __DummyExport_Number: \"DummyExport\" = \"DummyExport\" as const;\n"],
  "mappings": "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",
  "names": ["import_tsover_runtime"]
}
