UNPKG

quanta_sim

Version:

A comprehensive quantum computing simulator library with support for quantum circuits, gates, measurements, and classical conditional operations

42 lines (36 loc) 824 B
import { complex, multiply, kron, transpose, conj, matrix, zeros, add, trace, divide, re, im, abs, } from "mathjs"; export class ComplexNumber { constructor(real, imag = 0) { this.real = real; this.imag = imag; } static fromMathJS(complexNum) { return new ComplexNumber(re(complexNum), im(complexNum)); } magnitude() { return Math.sqrt(this.real * this.real + this.imag * this.imag); } phase() { return Math.atan2(this.imag, this.real); } toString() { if (Math.abs(this.imag) < 1e-10) return `${this.real.toFixed(4)}`; if (Math.abs(this.real) < 1e-10) return `${this.imag.toFixed(4)}i`; const sign = this.imag >= 0 ? "+" : ""; return `${this.real.toFixed(4)}${sign}${this.imag.toFixed(4)}i`; } }