{"version":3,"sources":["jsdelivr-header.js","/npm/complex-analysis@1.0.0/src/complex-analysis.js"],"names":[],"mappings":"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","file":"/npm/complex-analysis@1.0.0/src/complex-analysis.js","sourceRoot":"","sourcesContent":["/**\n * Minified by jsDelivr using Terser v5.39.0.\n * Original file: /npm/complex-analysis@1.0.0/src/complex-analysis.js\n *\n * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files\n */\n","// Method to create complex number\r\n// @Syntax: new ComplexNumber([realPart, [imaginaryPart]])\r\nvar ComplexNumber = function (real, imaginary) {\r\n    this.real = (!real) ? 0 : real;\r\n    this.imaginary = (!imaginary) ? 0 : imaginary;\r\n};\r\n\r\n// Method to get the complex number\r\n// @Syntax: ComplexNumber.prototype.getNumber()\r\nComplexNumber.prototype.getNumber = function () {\r\n    var imaginary = ((this.imaginary > 0) ? '+' + this.imaginary : this.imaginary) + 'i';\r\n    return this.real + imaginary;\r\n};\r\n\r\n// Method to calculate inverse of the complex number\r\n// @Syntax: ComplexNumber.prototype.modulus()\r\nComplexNumber.prototype.modulus = function () {\r\n    var scalar = Math.pow(this.real, 2) + Math.pow(this.imaginary, 2);\r\n\r\n    return Math.sqrt(scalar);\r\n};\r\n\r\n// Method to set the real part\r\n// @Syntax: ComplexNumber.prototype.setReal(real)\r\nComplexNumber.prototype.setReal = function (real) {\r\n    this.real = real;\r\n    return this;\r\n};\r\n\r\n// Method to set the imaginary part\r\n// @Syntax: ComplexNumber.prototype.setImaginary(imaginary)\r\nComplexNumber.prototype.setImaginary = function (imaginary) {\r\n    this.imaginary = imaginary;\r\n    return this;\r\n};\r\n\r\n// Method to change the complex number\r\n// @Syntax: ComplexNumber.prototype.change(real, imaginary)\r\nComplexNumber.prototype.change = function (real, imaginary) {\r\n    return this.setReal(real).setImaginary(imaginary);\r\n};\r\n\r\n// Method to alter the complex number by exchanging values between the real and imaginary parts\r\n// @Syntax: ComplexNumber.prototype.alter()\r\nComplexNumber.prototype.alter = function () {\r\n    return this.change(this.imaginary, this.real);\r\n};\r\n\r\n// Method to complement the complex number\r\n// @Syntax: ComplexNumber.prototype.complement()\r\nComplexNumber.prototype.complement = function () {\r\n    return this.setImaginary(-this.imaginary);\r\n};\r\n\r\n// Method to calculate inverse of the complex number\r\n// @Syntax: ComplexNumber.prototype.inverse()\r\nComplexNumber.prototype.inverse = function () {\r\n    var scalar = Math.pow(this.real, 2) + Math.pow(this.imaginary, 2);\r\n    var real = this.real / scalar;\r\n    var imaginary = -1 * (this.imaginary / scalar);\r\n\r\n    return this.change(real, imaginary);\r\n};\r\n\r\n// Method to multiply the complex number by scalar value\r\n// @Syntax: ComplexNumber.prototype.multiplyScalar(scalar[, n])\r\nComplexNumber.prototype.multiplyScalar = function (scalar, n) {\r\n    var target = this;\r\n\r\n    var multiplyFn = function (number) {\r\n        return number.setReal(number.real * scalar).setImaginary(number.imaginary * scalar);\r\n    };\r\n\r\n    if (!n) { target = multiplyFn(target); }\r\n    else { for (var i = 0; i < n; i++) target = multiplyFn(target); }\r\n\r\n    return this.change(target.real, target.imaginary);\r\n};\r\n\r\n// Method to divide the complex number by scalar value\r\n// @Syntax: ComplexNumber.prototype.divideScalar(scalar[, n])\r\nComplexNumber.prototype.divideScalar = function (scalar, n) {\r\n    var target = this;\r\n\r\n    var divideFn = function (number) {\r\n        return number.setReal(number.real / scalar).setImaginary(number.imaginary / scalar);\r\n    };\r\n\r\n    if (!n) { target = divideFn(target); }\r\n    else { for (var i = 0; i < n; i++) target = divideFn(target); }\r\n\r\n    return this.change(target.real, target.imaginary);\r\n};\r\n\r\n// Method to add n complex numbers\r\n// @Syntax: ComplexNumber.prototype.addComplex(ComplexNumber1, ComplexNumber2, ..., ComplexNumberN)\r\nComplexNumber.prototype.addComplex = function () {\r\n    var complexNumbers = Array.prototype.slice.call(arguments);\r\n\r\n    var addFn = function (source1, source2) {\r\n        return source1.change(source1.real + source2.real, source1.imaginary + source2.imaginary);\r\n    };\r\n\r\n    complexNumbers.unshift(this);\r\n    return complexNumbers.reduce(addFn);\r\n};\r\n\r\n// Method to subtract n complex numbers\r\n// @Syntax: ComplexNumber.prototype.subtractComplex(ComplexNumber1, ComplexNumber2, ..., ComplexNumberN)\r\nComplexNumber.prototype.subtractComplex = function () {\r\n    var complexNumbers = Array.prototype.slice.call(arguments);\r\n\r\n    var subtractFn = function (source1, source2) {\r\n        return source1.change(source1.real - source2.real, source1.imaginary - source2.imaginary);\r\n    };\r\n\r\n    complexNumbers.unshift(this);\r\n    return complexNumbers.reduce(subtractFn);\r\n};\r\n\r\n// Method to multiply n complex numbers\r\n// @Syntax: ComplexNumber.prototype.multiplyComplex(ComplexNumber1, ComplexNumber2, ..., ComplexNumberN)\r\nComplexNumber.prototype.multiplyComplex = function () {\r\n    var complexNumbers = Array.prototype.slice.call(arguments);\r\n\r\n    var multiplyFn = function (source1, source2) {\r\n        var real = (source1.real * source2.real) - (source1.imaginary * source2.imaginary);\r\n        var imaginary = (source1.real * source2.imaginary) + (source1.imaginary * source2.real);\r\n\r\n        return source1.change(real, imaginary);\r\n    };\r\n\r\n    complexNumbers.unshift(this);\r\n    return complexNumbers.reduce(multiplyFn);\r\n};\r\n\r\n// Method to divide n complex numbers\r\n// @Syntax: ComplexNumber.prototype.divideComplex(ComplexNumber1, ComplexNumber2, ..., ComplexNumberN)\r\nComplexNumber.prototype.divideComplex = function () {\r\n    var complexNumbers = Array.prototype.slice.call(arguments);\r\n\r\n    var divideFn = function (source1, source2) {\r\n        var scalar = Math.pow(source2.real, 2) + Math.pow(source2.imaginary, 2);\r\n        var real = ((source1.real * source2.real) + (source1.imaginary * source2.imaginary)) / scalar;\r\n        var imaginary = ((source1.imaginary * source2.real) - (source1.real * source2.imaginary)) / scalar;\r\n\r\n        return source1.change(real, imaginary);\r\n    };\r\n\r\n    complexNumbers.unshift(this);\r\n    return complexNumbers.reduce(divideFn);\r\n};\r\n\r\n// Method to raise the complex number to nth power\r\n// @Syntax: ComplexNumber.prototype.power(power)\r\nComplexNumber.prototype.power = function (power) {\r\n    var index, comb, real, imaginary;\r\n    var termFlag = false, sign = 1, realTerm = 0, imaginaryTerm = 0;\r\n\r\n    var factorial = function (n) {\r\n        if (n <= 1) return 1;\r\n        else return n * factorial(n - 1);\r\n    };\r\n\r\n    var combination = function (n, r) {\r\n        return factorial(n) / (factorial(r) * factorial(n - r));\r\n    };\r\n\r\n    var signFn = function (n) {\r\n        if (n === 0 || n === 1) return 1;\r\n        else if (n === 2 || n === 3) return -1;\r\n        else return signFn(n - 4);\r\n    };\r\n\r\n    for (index = 0; index <= power; index++) {\r\n        comb = combination(power, index);\r\n        real = Math.pow(this.real, power - index);\r\n        imaginary = Math.pow(this.imaginary, index);\r\n        termFlag = (index % 2) ? true : false;\r\n        sign = signFn(index);\r\n\r\n        if (termFlag) {\r\n            imaginaryTerm += sign * comb * real * imaginary;\r\n        } else {\r\n            realTerm += sign * comb * real * imaginary\r\n        }\r\n    }\r\n\r\n    return this.change(realTerm, imaginaryTerm);\r\n};\r\n\r\nif (typeof window === 'undefined') module.exports = ComplexNumber;\r\nelse window.ComplexNumber = ComplexNumber;\r\n"]}