npm package: @nomyx/qcomplex
Description: High-performance quantum computing library with WASM acceleration
Latest version: 0.1.0

# 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

```bash
npm install @qcomplex/core
```

## Usage

### Basic Complex Numbers

```typescript
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

```typescript
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

```typescript
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

```typescript
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

```bash
# 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.