Domain for quantum observables - Hermitian operators representing measurable quantities.
Observables in quantum mechanics are represented by Hermitian matrices. This namespace provides functions for creating and manipulating observables, calculating expectation values, and working with composite observables.
Design Philosophy:
Domain for quantum observables - Hermitian operators representing measurable quantities. Observables in quantum mechanics are represented by Hermitian matrices. This namespace provides functions for creating and manipulating observables, calculating expectation values, and working with composite observables. Design Philosophy: - Observables are simple data (matrices) - no complex wrapping - Pure functions for all operations - Compose complex observables from simple primitives - Separate representation, computation, and measurement concerns
(expectation-value observable quantum-state)
Calculate expectation value ⟨ψ|O|ψ⟩ of observable O in state ψ
Parameters:
Returns: Real number representing the expectation value
Example: (expectation-value pauli-z |0⟩) ; returns 1.0
Calculate expectation value ⟨ψ|O|ψ⟩ of observable O in state ψ Parameters: - observable: Hermitian matrix representing the observable - quantum-state: quantum state vector (normalized) Returns: Real number representing the expectation value Example: (expectation-value pauli-z |0⟩) ; returns 1.0
(hermitian-conjugate matrix)
Compute Hermitian conjugate (complex conjugate transpose) of matrix
Compute Hermitian conjugate (complex conjugate transpose) of matrix
(is-hermitian? matrix)
Check if a matrix is Hermitian (O = O†)
Parameters:
Returns: Boolean indicating if matrix is Hermitian
Check if a matrix is Hermitian (O = O†) Parameters: - matrix: matrix to check Returns: Boolean indicating if matrix is Hermitian
(linear-combination coeffs-observables)
Create a linear combination of observables: Σᵢ cᵢ Oᵢ
Parameters:
Returns: Matrix representing the linear combination
Example: (linear-combination [[0.5 pauli-x] [0.5 pauli-z]])
Create a linear combination of observables: Σᵢ cᵢ Oᵢ Parameters: - coeffs-observables: sequence of [coefficient observable] pairs Returns: Matrix representing the linear combination Example: (linear-combination [[0.5 pauli-x] [0.5 pauli-z]])
(matrix-add m1 m2)
Add two matrices element-wise
Add two matrices element-wise
(matrix-equal? m1 m2)
Check if two matrices are equal within tolerance
Check if two matrices are equal within tolerance
(matrix-scalar-mult scalar matrix)
Multiply matrix by scalar
Multiply matrix by scalar
(measurement-probabilities observable quantum-state)
Calculate measurement probabilities for an observable's eigenvalues
For a two-level system observable, returns probabilities for +1 and -1 eigenvalues. This is a simplified version - full implementation would require eigendecomposition.
Parameters:
Returns: Map with keys representing eigenvalues and values representing probabilities
Calculate measurement probabilities for an observable's eigenvalues For a two-level system observable, returns probabilities for +1 and -1 eigenvalues. This is a simplified version - full implementation would require eigendecomposition. Parameters: - observable: Hermitian matrix (currently supports Pauli observables) - quantum-state: quantum state vector Returns: Map with keys representing eigenvalues and values representing probabilities
(pauli-char->matrix pauli-char)
Convert a single Pauli character to its matrix representation
Convert a single Pauli character to its matrix representation
(pauli-string->observable pauli-str)
Convert a Pauli string to an observable matrix
Parameters:
Returns: Matrix representing the tensor product of Pauli matrices
Example: (pauli-string->observable 'XZ') ; creates X ⊗ Z
Convert a Pauli string to an observable matrix Parameters: - pauli-str: string like 'XZYI' representing multi-qubit Pauli operator Returns: Matrix representing the tensor product of Pauli matrices Example: (pauli-string->observable 'XZ') ; creates X ⊗ Z
(tensor-product observables)
Create tensor product of observables: O₁ ⊗ O₂ ⊗ ... ⊗ Oₙ
Parameters:
Returns: Matrix representing the tensor product
Example: (tensor-product [pauli-x pauli-z])
Create tensor product of observables: O₁ ⊗ O₂ ⊗ ... ⊗ Oₙ Parameters: - observables: sequence of observable matrices Returns: Matrix representing the tensor product Example: (tensor-product [pauli-x pauli-z])
(variance observable quantum-state)
Calculate variance of observable: ⟨O²⟩ - ⟨O⟩²
Parameters:
Returns: Real number representing the variance
Calculate variance of observable: ⟨O²⟩ - ⟨O⟩² Parameters: - observable: Hermitian matrix representing the observable - quantum-state: quantum state vector (normalized) Returns: Real number representing the variance
(zero-matrix rows cols)
Create a zero matrix of given dimensions
Create a zero matrix of given dimensions
cljdoc is a website building & hosting documentation for Clojure/Script libraries
× close