UNPKG

ts-quantum

Version:

TypeScript library for quantum mechanics calculations and utilities

75 lines (74 loc) 2.16 kB
/** * Type definitions for quantum graph module */ import { QuantumObject, IStateVector } from '../core/types'; import { IGraph } from '../../../graph-core/src/core/types'; /** * Interface for quantum-labeled graphs * Extends IGraph with quantum object labeling capabilities */ export interface IQuantumGraph extends IGraph { setVertexQuantumObject(nodeId: string, obj: QuantumObject): void; getVertexQuantumObject(nodeId: string): QuantumObject | undefined; setEdgeQuantumObject(edgeId: string, obj: QuantumObject): void; getEdgeQuantumObject(edgeId: string): QuantumObject | undefined; hasVertexQuantumObject(nodeId: string): boolean; hasEdgeQuantumObject(edgeId: string): boolean; clearVertexQuantumObject(nodeId: string): void; clearEdgeQuantumObject(edgeId: string): void; } /** * Result type for quantum graph analysis */ export interface QuantumGraphAnalysis { totalNodes: number; totalEdges: number; labeledNodes: number; labeledEdges: number; nodeTypes: { states: number; operators: number; }; edgeTypes: { states: number; operators: number; }; } /** * Options for quantum graph traversal */ export interface QuantumTraversalOptions { startVertex: string; applyOperators?: boolean; maxDepth?: number; direction?: 'forward' | 'backward' | 'both'; } /** * Result of quantum traversal operation */ export interface QuantumTraversalResult { path: string[]; finalState?: QuantumObject; operations: Array<{ edge: string; operator?: QuantumObject; result?: QuantumObject; }>; } /** * Interface for composite quantum manager */ export interface ICompositeQuantumManager { setComposite(elementIds: string[], obj: QuantumObject): void; getComposite(elementIds: string[]): QuantumObject | undefined; getCompositeForElement(elementId: string): QuantumObject | undefined; } /** * Result of quantum measurement operation */ export interface MeasurementResult { outcome: number; probability: number; postMeasurementState: IStateVector; measuredSubsystem: string[]; }