Liking cljdoc? Tell your friends :D

org.soulspace.qclojure.adapter.visualization.common

Common utilities for quantum visualization - shared calculations and data extraction.

This namespace contains shared functions used across different visualization formats. It focuses on pure data transformation and calculation, keeping format-specific rendering logic in the individual format namespaces.

Common utilities for quantum visualization - shared calculations and data extraction.

This namespace contains shared functions used across different visualization formats.
It focuses on pure data transformation and calculation, keeping format-specific
rendering logic in the individual format namespaces.
raw docstring

calculate-bar-dimensionsclj

(calculate-bar-dimensions chart-data total-width total-height)

Calculate bar dimensions for different chart formats.

Parameters:

  • chart-data: Result from prepare-bar-chart-data
  • total-width: Total available width
  • total-height: Total available height

Returns: Map with dimension calculations for bars

Calculate bar dimensions for different chart formats.

Parameters:
- chart-data: Result from prepare-bar-chart-data
- total-width: Total available width
- total-height: Total available height

Returns:
Map with dimension calculations for bars
sourceraw docstring

calculate-phase-infoclj

(calculate-phase-info state indices labels)

Calculate phase information for quantum state amplitudes.

Parameters:

  • state: Quantum state
  • indices: Indices to analyze
  • labels: Corresponding labels

Returns: Vector of maps with :label and :phase-degrees

Calculate phase information for quantum state amplitudes.

Parameters:
- state: Quantum state
- indices: Indices to analyze
- labels: Corresponding labels

Returns:
Vector of maps with :label and :phase-degrees
sourceraw docstring

calculate-reference-distancesclj

(calculate-reference-distances coords & {:keys [precision] :or {precision 2}})

Calculate distances from current state to reference states.

Parameters:

  • coords: Current state coordinates from quantum-state-to-bloch-coordinates
  • precision: Decimal places for distance values (default 2)

Returns: Vector of maps with :label and :distance for each reference state

Calculate distances from current state to reference states.

Parameters:
- coords: Current state coordinates from quantum-state-to-bloch-coordinates
- precision: Decimal places for distance values (default 2)

Returns:
Vector of maps with :label and :distance for each reference state
sourceraw docstring

calculate-state-summaryclj

(calculate-state-summary state filtered-data)

Calculate summary information about quantum state.

Parameters:

  • state: Quantum state
  • filtered-data: Result from filter-significant-probabilities

Returns: Map with summary statistics

Calculate summary information about quantum state.

Parameters:
- state: Quantum state
- filtered-data: Result from filter-significant-probabilities

Returns:
Map with summary statistics
sourceraw docstring

extract-amplitude-infoclj

(extract-amplitude-info state
                        indices
                        labels
                        &
                        {:keys [precision] :or {precision 3}})

Extract detailed amplitude information for display.

Parameters:

  • state: Quantum state
  • indices: Indices of amplitudes to extract
  • labels: Corresponding labels
  • precision: Decimal places (default 3)

Returns: Vector of maps with :label, :amplitude, :magnitude, :phase, :probability

Extract detailed amplitude information for display.

Parameters:
- state: Quantum state
- indices: Indices of amplitudes to extract
- labels: Corresponding labels
- precision: Decimal places (default 3)

Returns:
Vector of maps with :label, :amplitude, :magnitude, :phase, :probability
sourceraw docstring

extract-state-probabilitiesclj

(extract-state-probabilities state)

Extract probability distribution from quantum state.

Parameters:

  • state: Quantum state with :state-vector and :num-qubits

Returns: Vector of probabilities (real numbers) for each computational basis state

Extract probability distribution from quantum state.

Parameters:
- state: Quantum state with :state-vector and :num-qubits

Returns:
Vector of probabilities (real numbers) for each computational basis state
sourceraw docstring

filter-significant-probabilitiesclj

(filter-significant-probabilities probabilities
                                  labels
                                  &
                                  {:keys [threshold max-count]
                                   :or {threshold 0.001 max-count 16}})

Filter probabilities above threshold and limit count.

Parameters:

  • probabilities: Vector of probability values
  • threshold: Minimum probability to include (default 0.001)
  • max-count: Maximum number of states to include (default 16)

Returns: Map with :indices, :probabilities, :labels, and :summary info

Filter probabilities above threshold and limit count.

Parameters:
- probabilities: Vector of probability values
- threshold: Minimum probability to include (default 0.001)
- max-count: Maximum number of states to include (default 16)

Returns:
Map with :indices, :probabilities, :labels, and :summary info
sourceraw docstring

format-amplitude-displayclj

(format-amplitude-display amplitude & {:keys [precision] :or {precision 3}})

Format complex amplitude for human-readable display.

Parameters:

  • amplitude: Complex amplitude (fastmath Vec2)
  • precision: Decimal places for rounding (default 3)

Returns: String representation like '0.707+0.0i' or '0.5-0.3i'

Format complex amplitude for human-readable display.

Parameters:
- amplitude: Complex amplitude (fastmath Vec2)
- precision: Decimal places for rounding (default 3)

Returns:
String representation like '0.707+0.0i' or '0.5-0.3i'
sourceraw docstring

format-bloch-coordinatesclj

(format-bloch-coordinates coords & {:keys [precision] :or {precision 3}})

Format Bloch sphere coordinates for display.

Parameters:

  • coords: Result from quantum-state-to-bloch-coordinates
  • precision: Decimal places (default 3 for cartesian, 1 for angles)

Returns: Map with formatted coordinate strings

Format Bloch sphere coordinates for display.

Parameters:
- coords: Result from quantum-state-to-bloch-coordinates
- precision: Decimal places (default 3 for cartesian, 1 for angles)

Returns:
Map with formatted coordinate strings
sourceraw docstring

format-reference-distancesclj

(format-reference-distances distance-data
                            &
                            {:keys [format] :or {format :inline}})

Format reference state distances as display text.

Parameters:

  • distance-data: Result from calculate-reference-distances
  • format: Output format (:inline or :list)

Returns: Formatted string

Format reference state distances as display text.

Parameters:
- distance-data: Result from calculate-reference-distances
- format: Output format (:inline or :list)

Returns:
Formatted string
sourceraw docstring

format-single-qubit-stateclj

(format-single-qubit-state state & {:keys [precision] :or {precision 3}})

Format single-qubit quantum state as amplitude expression.

Parameters:

  • state: Single-qubit quantum state
  • precision: Decimal places (default 3)

Returns: String like '0.707|0⟩ + 0.707i|1⟩'

Format single-qubit quantum state as amplitude expression.

Parameters:
- state: Single-qubit quantum state
- precision: Decimal places (default 3)

Returns:
String like '0.707|0⟩ + 0.707i|1⟩'
sourceraw docstring

format-state-expressionclj

(format-state-expression state
                         indices
                         labels
                         &
                         {:keys [precision] :or {precision 3}})

Format quantum state as amplitude expression.

Parameters:

  • state: Quantum state
  • indices: Indices of significant amplitudes to show
  • labels: Corresponding basis state labels
  • precision: Decimal places (default 3)

Returns: String like '0.707|0⟩ + 0.707|1⟩'

Format quantum state as amplitude expression.

Parameters:
- state: Quantum state
- indices: Indices of significant amplitudes to show
- labels: Corresponding basis state labels
- precision: Decimal places (default 3)

Returns:
String like '0.707|0⟩ + 0.707|1⟩'
sourceraw docstring

generate-basis-labelsclj

(generate-basis-labels n-qubits)

Generate computational basis state labels for given number of qubits.

Parameters:

  • n-qubits: Number of qubits in the system

Returns: Vector of basis state labels like [|00⟩ |01⟩ |10⟩ |11⟩] for 2 qubits

Examples: (generate-basis-labels 1) ;=> [|0⟩ |1⟩] (generate-basis-labels 2) ;=> [|00⟩ |01⟩ |10⟩ |11⟩]

Generate computational basis state labels for given number of qubits.

Parameters:
- n-qubits: Number of qubits in the system

Returns:
Vector of basis state labels like [|00⟩ |01⟩ |10⟩ |11⟩] for 2 qubits

Examples:
(generate-basis-labels 1) ;=> [|0⟩ |1⟩]
(generate-basis-labels 2) ;=> [|00⟩ |01⟩ |10⟩ |11⟩]
sourceraw docstring

generate-bloch-legendclj

(generate-bloch-legend format)

Generate legend text for Bloch sphere visualizations.

Parameters:

  • format: Target format (:ascii or :svg)

Returns: String with appropriate legend information

Generate legend text for Bloch sphere visualizations.

Parameters:
- format: Target format (:ascii or :svg)

Returns:
String with appropriate legend information
sourceraw docstring

generate-color-paletteclj

(generate-color-palette n-colors & {:keys [scheme] :or {scheme :quantum}})

Generate color palette for quantum visualizations.

Parameters:

  • n-colors: Number of colors needed
  • scheme: Color scheme (:quantum, :rainbow, :monochrome)

Returns: Vector of color codes (format depends on target: hex for web, ANSI for terminal)

Generate color palette for quantum visualizations.

Parameters:
- n-colors: Number of colors needed
- scheme: Color scheme (:quantum, :rainbow, :monochrome)

Returns:
Vector of color codes (format depends on target: hex for web, ANSI for terminal)
sourceraw docstring

prepare-bar-chart-dataclj

(prepare-bar-chart-data state
                        &
                        {:keys [threshold max-bars normalize]
                         :or {threshold 0.001 max-bars 16 normalize true}})

Prepare data for probability bar charts across different formats.

This function extracts and normalizes probability data in a format-agnostic way.

Parameters:

  • state: Quantum state
  • options: Chart options :threshold - Minimum probability threshold (default 0.001) :max-bars - Maximum number of bars (default 16) :normalize - Whether to normalize to max probability (default true)

Returns: Map with chart data:

  • :probabilities - Filtered probability values
  • :labels - Corresponding state labels
  • :normalized - Normalized probabilities (0-1 scale)
  • :max-probability - Maximum probability value
  • :summary - Summary information
Prepare data for probability bar charts across different formats.

This function extracts and normalizes probability data in a format-agnostic way.

Parameters:
- state: Quantum state
- options: Chart options
  :threshold - Minimum probability threshold (default 0.001)
  :max-bars - Maximum number of bars (default 16)
  :normalize - Whether to normalize to max probability (default true)

Returns:
Map with chart data:
- :probabilities - Filtered probability values
- :labels - Corresponding state labels  
- :normalized - Normalized probabilities (0-1 scale)
- :max-probability - Maximum probability value
- :summary - Summary information
sourceraw docstring

prepare-bloch-display-dataclj

(prepare-bloch-display-data
  state
  coords
  &
  {:keys [show-coordinates show-distances precision format]
   :or {show-coordinates true show-distances true precision 3 format :ascii}})

Prepare all display data for Bloch sphere visualization.

This aggregates all the text and coordinate information needed by both ASCII and SVG formats, reducing code duplication.

Parameters:

  • state: Single-qubit quantum state
  • coords: Coordinates from quantum-state-to-bloch-coordinates
  • options: Display options :show-coordinates - Include coordinate text (default true) :show-distances - Include reference distances (default true) :precision - Decimal places (default 3)

Returns: Map with formatted display strings and data

Prepare all display data for Bloch sphere visualization.

This aggregates all the text and coordinate information needed by both
ASCII and SVG formats, reducing code duplication.

Parameters:
- state: Single-qubit quantum state
- coords: Coordinates from quantum-state-to-bloch-coordinates
- options: Display options
  :show-coordinates - Include coordinate text (default true)
  :show-distances - Include reference distances (default true)
  :precision - Decimal places (default 3)

Returns:
Map with formatted display strings and data
sourceraw docstring

cljdoc is a website building & hosting documentation for Clojure/Script libraries

× close