Skip to content

OriginBIS Conversion

API reference for functions that convert quantum programs and variational circuits to and from OriginBIS binary strings. OriginBIS uses Protocol Buffers-based serialization for efficient storage and network transmission.

QProg Conversion

convert_qprog_to_originbis

Converts a quantum program into an OriginBIS binary string.

Signature

python
convert_qprog_to_originbis(
    qprog: QProg,
) -> bytes

Parameters

ParameterTypeDescription
qprogQProgThe quantum program to serialize.

Returns

bytes -- The OriginBIS binary string.

Examples

python
from pyqpanda3.utils import convert_qprog_to_originbis
from pyqpanda3.core import QProg, H, CNOT

prog = QProg() << H(0) << CNOT(0, 1)
originbis = convert_qprog_to_originbis(prog)

convert_originbis_to_qprog

Deserializes an OriginBIS binary string back into a quantum program.

Signature

python
convert_originbis_to_qprog(
    originbis: bytes,
) -> QProg

Parameters

ParameterTypeDescription
originbisbytesAn OriginBIS binary string previously produced by convert_qprog_to_originbis.

Returns

The deserialized QProg object.

Examples

python
from pyqpanda3.utils import convert_originbis_to_qprog

prog = convert_originbis_to_qprog(originbis)

VQCircuit Conversion

convert_vqcircuit_to_originbis

Converts a variational quantum circuit into an OriginBIS binary string.

Signature

python
convert_vqcircuit_to_originbis(
    vqcircuit: VQCircuit,
) -> bytes

Parameters

ParameterTypeDescription
vqcircuitVQCircuitThe variational quantum circuit to serialize.

Returns

bytes -- The OriginBIS binary string.

Examples

python
from pyqpanda3.utils import convert_vqcircuit_to_originbis
# from pyqpanda3.vqcircuit import VQCircuit

originbis = convert_vqcircuit_to_originbis(vqc)

convert_originbis_to_vqcircuit

Deserializes an OriginBIS binary string back into a variational quantum circuit.

Signature

python
convert_originbis_to_vqcircuit(
    originbis: bytes,
) -> VQCircuit

Parameters

ParameterTypeDescription
originbisbytesAn OriginBIS binary string previously produced by convert_vqcircuit_to_originbis.

Returns

The deserialized VQCircuit object.

Examples

python
from pyqpanda3.utils import convert_originbis_to_vqcircuit

vqc = convert_originbis_to_vqcircuit(originbis)

Variational Circuit with Run Config

The following functions serialize and deserialize a VQCircuit bundled together with a CommProtocolConfig. This is useful when both the circuit and its execution configuration need to be transmitted as a single unit.

convert_vqcircuit_with_run_config_to_bytes

Converts a variational quantum circuit and its execution configuration into a binary byte string.

Signature

python
convert_vqcircuit_with_run_config_to_bytes(
    vqcircuit: VQCircuit,
    config: CommProtocolConfig,
) -> bytes

Parameters

ParameterTypeDescription
vqcircuitVQCircuitThe variational quantum circuit to serialize.
configCommProtocolConfigThe execution configuration to bundle with the circuit.

Returns

bytes -- The combined binary data.

Examples

python
from pyqpanda3.utils import (
    CommProtocolConfig,
    convert_vqcircuit_with_run_config_to_bytes,
)

config = CommProtocolConfig()
config.shots = 4096

data = convert_vqcircuit_with_run_config_to_bytes(vqc, config)

convert_vqc_with_run_config_bytes_to_vqcircuit

Extracts the VQCircuit from a combined binary string.

Signature

python
convert_vqc_with_run_config_bytes_to_vqcircuit(
    vqc_with_run_config_bytes: bytes,
) -> VQCircuit

Parameters

ParameterTypeDescription
vqc_with_run_config_bytesbytesBinary data produced by convert_vqcircuit_with_run_config_to_bytes.

Returns

The deserialized VQCircuit object.

Examples

python
from pyqpanda3.utils import convert_vqc_with_run_config_bytes_to_vqcircuit

vqc = convert_vqc_with_run_config_bytes_to_vqcircuit(data)

convert_vqc_with_run_config_bytes_to_config

Extracts the CommProtocolConfig from a combined binary string.

Signature

python
convert_vqc_with_run_config_bytes_to_config(
    vqc_with_run_config_bytes: bytes,
) -> CommProtocolConfig

Parameters

ParameterTypeDescription
vqc_with_run_config_bytesbytesBinary data produced by convert_vqcircuit_with_run_config_to_bytes.

Returns

The deserialized CommProtocolConfig object.

Examples

python
from pyqpanda3.utils import convert_vqc_with_run_config_bytes_to_config

config = convert_vqc_with_run_config_bytes_to_config(data)
print(f"shots={config.shots}, optimization_level={config.optimization_level}")

See Also

  • Protocol -- CommProtocolConfig class and comm_protocol_encode/comm_protocol_decode

Released under the MIT License.