0.1.0 • Published 11 months ago

@nomyx/qcomplex v0.1.0

Weekly downloads
-
License
MIT
Repository
github
Last release
11 months ago

QComplex

A high-performance quantum computing library with WASM acceleration.

Features

  • High-performance complex number operations using WebAssembly
  • Quantum state vectors with automatic normalization
  • Common quantum gates (Hadamard, CNOT, etc.)
  • Bell state preparation and manipulation
  • Quantum measurements
  • Quantum teleportation simulation
  • TypeScript support with full type definitions

Installation

npm install @qcomplex/core

Usage

Basic Complex Numbers

import { complexWASM, init } from '@qcomplex/core';

// Initialize WASM module
await init();

// Create complex numbers
const z1 = complexWASM.createComplex(1, 2);  // 1 + 2i
const z2 = complexWASM.createComplex(3, -1); // 3 - i

// Basic operations
console.log(z1.abs());     // Magnitude
console.log(z1.phase());   // Phase angle

Quantum States

import { quantum, complexWASM, init } from '@qcomplex/core';

await init();

// Create a quantum state
const state = quantum.createState([
    complexWASM.createComplex(1, 0),  // |0⟩
    complexWASM.createComplex(0, 0)   // |1⟩
]);

// Get state properties
console.log(state.get_probability(0)); // Probability of measuring |0⟩
console.log(state.get_probability(1)); // Probability of measuring |1⟩

Quantum Gates

import { quantum, init } from '@qcomplex/core';

await init();

// Create a basis state |0⟩
const state = quantum.utils.create_basis_state(0, 2);

// Apply Hadamard gate to create superposition
const hadamard = quantum.gates.hadamard();
const superposition = hadamard.apply(state);

// Apply CNOT gate
const cnot = quantum.gates.cnot();
const entangled = cnot.apply(superposition);

Bell States

import { quantum, init } from '@qcomplex/core';

await init();

// Create Bell state |Φ+⟩ = (|00⟩ + |11⟩)/√2
const bellState = quantum.utils.create_bell_state(0);

// Measure the state
const result = quantum.utils.measure(bellState);
console.log(`Measured: ${result}`); // Will be either 0 or 3

API Reference

ComplexNumber

  • real(): Get real part
  • imag(): Get imaginary part
  • abs(): Get magnitude
  • phase(): Get phase angle
  • scale(factor): Scale by real number
  • add(other): Add complex numbers
  • multiply(other): Multiply complex numbers

QuantumState

  • get_amplitude(index): Get amplitude at index
  • get_probability(index): Get probability at index
  • dimension(): Get state space dimension
  • tensor_product(other): Tensor product with another state

QuantumGates

  • hadamard(): Create Hadamard gate
  • pauli_x(): Create Pauli-X (NOT) gate
  • pauli_y(): Create Pauli-Y gate
  • pauli_z(): Create Pauli-Z gate
  • cnot(): Create CNOT gate
  • phase(theta): Create phase shift gate

QuantumUtils

  • create_basis_state(n, dimension): Create basis state |n⟩
  • create_bell_state(index): Create Bell state
  • measure(state): Perform measurement

Development

# Install dependencies
npm install

# Build WASM and TypeScript
npm run build

# Run tests
npm test

License

MIT

Contributing

Contributions are welcome! Please feel free to submit a Pull Request.