mqt-core 3.2.1__cp314-cp314-win_arm64.whl → 3.3.0__cp314-cp314-win_arm64.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of mqt-core might be problematic. Click here for more details.
- mqt/core/__init__.py +3 -3
- mqt/core/_commands.py +2 -2
- mqt/core/_version.py +16 -3
- mqt/core/bin/mqt-core-algorithms.dll +0 -0
- mqt/core/bin/mqt-core-circuit-optimizer.dll +0 -0
- mqt/core/bin/mqt-core-dd.dll +0 -0
- mqt/core/bin/mqt-core-ds.dll +0 -0
- mqt/core/bin/mqt-core-fomac.dll +0 -0
- mqt/core/bin/mqt-core-ir.dll +0 -0
- mqt/core/bin/mqt-core-na-fomac.dll +0 -0
- mqt/core/bin/mqt-core-na.dll +0 -0
- mqt/core/bin/mqt-core-qasm.dll +0 -0
- mqt/core/bin/mqt-core-qdmi-driver.dll +0 -0
- mqt/core/bin/mqt-core-qdmi-na-device.dll +0 -0
- mqt/core/bin/mqt-core-zx.dll +0 -0
- mqt/core/dd.cp314-win_arm64.pyd +0 -0
- mqt/core/dd.pyi +5 -7
- mqt/core/fomac.cp314-win_arm64.pyd +0 -0
- mqt/core/fomac.pyi +125 -0
- mqt/core/include/mqt-core/circuit_optimizer/CircuitOptimizer.hpp +13 -0
- mqt/core/include/mqt-core/dd/CachedEdge.hpp +7 -0
- mqt/core/include/mqt-core/dd/Operations.hpp +12 -14
- mqt/core/include/mqt-core/fomac/FoMaC.hpp +568 -0
- mqt/core/include/mqt-core/ir/QuantumComputation.hpp +29 -28
- mqt/core/include/mqt-core/ir/operations/CompoundOperation.hpp +2 -0
- mqt/core/include/mqt-core/ir/operations/IfElseOperation.hpp +169 -0
- mqt/core/include/mqt-core/ir/operations/OpType.hpp +3 -0
- mqt/core/include/mqt-core/ir/operations/OpType.inc +2 -2
- mqt/core/include/mqt-core/ir/operations/Operation.hpp +3 -1
- mqt/core/include/mqt-core/ir/operations/StandardOperation.hpp +2 -0
- mqt/core/include/mqt-core/mqt_na_qdmi/device.h +602 -0
- mqt/core/include/mqt-core/mqt_na_qdmi/types.h +78 -0
- mqt/core/include/mqt-core/na/device/Device.hpp +410 -0
- mqt/core/include/mqt-core/na/device/DeviceMemberInitializers.hpp +724 -0
- mqt/core/include/mqt-core/na/device/Generator.hpp +447 -0
- mqt/core/include/mqt-core/na/fomac/Device.hpp +169 -0
- mqt/core/include/mqt-core/qdmi/Driver.hpp +431 -0
- mqt/core/include/nlohmann/adl_serializer.hpp +55 -0
- mqt/core/include/nlohmann/byte_container_with_subtype.hpp +103 -0
- mqt/core/include/nlohmann/detail/abi_macros.hpp +111 -0
- mqt/core/include/nlohmann/detail/conversions/from_json.hpp +577 -0
- mqt/core/include/nlohmann/detail/conversions/to_chars.hpp +1118 -0
- mqt/core/include/nlohmann/detail/conversions/to_json.hpp +479 -0
- mqt/core/include/nlohmann/detail/exceptions.hpp +291 -0
- mqt/core/include/nlohmann/detail/hash.hpp +129 -0
- mqt/core/include/nlohmann/detail/input/binary_reader.hpp +3068 -0
- mqt/core/include/nlohmann/detail/input/input_adapters.hpp +549 -0
- mqt/core/include/nlohmann/detail/input/json_sax.hpp +986 -0
- mqt/core/include/nlohmann/detail/input/lexer.hpp +1643 -0
- mqt/core/include/nlohmann/detail/input/parser.hpp +519 -0
- mqt/core/include/nlohmann/detail/input/position_t.hpp +37 -0
- mqt/core/include/nlohmann/detail/iterators/internal_iterator.hpp +35 -0
- mqt/core/include/nlohmann/detail/iterators/iter_impl.hpp +760 -0
- mqt/core/include/nlohmann/detail/iterators/iteration_proxy.hpp +235 -0
- mqt/core/include/nlohmann/detail/iterators/iterator_traits.hpp +61 -0
- mqt/core/include/nlohmann/detail/iterators/json_reverse_iterator.hpp +130 -0
- mqt/core/include/nlohmann/detail/iterators/primitive_iterator.hpp +132 -0
- mqt/core/include/nlohmann/detail/json_custom_base_class.hpp +39 -0
- mqt/core/include/nlohmann/detail/json_pointer.hpp +988 -0
- mqt/core/include/nlohmann/detail/json_ref.hpp +78 -0
- mqt/core/include/nlohmann/detail/macro_scope.hpp +595 -0
- mqt/core/include/nlohmann/detail/macro_unscope.hpp +46 -0
- mqt/core/include/nlohmann/detail/meta/call_std/begin.hpp +17 -0
- mqt/core/include/nlohmann/detail/meta/call_std/end.hpp +17 -0
- mqt/core/include/nlohmann/detail/meta/cpp_future.hpp +171 -0
- mqt/core/include/nlohmann/detail/meta/detected.hpp +70 -0
- mqt/core/include/nlohmann/detail/meta/identity_tag.hpp +21 -0
- mqt/core/include/nlohmann/detail/meta/is_sax.hpp +159 -0
- mqt/core/include/nlohmann/detail/meta/std_fs.hpp +29 -0
- mqt/core/include/nlohmann/detail/meta/type_traits.hpp +795 -0
- mqt/core/include/nlohmann/detail/meta/void_t.hpp +24 -0
- mqt/core/include/nlohmann/detail/output/binary_writer.hpp +1850 -0
- mqt/core/include/nlohmann/detail/output/output_adapters.hpp +147 -0
- mqt/core/include/nlohmann/detail/output/serializer.hpp +988 -0
- mqt/core/include/nlohmann/detail/string_concat.hpp +146 -0
- mqt/core/include/nlohmann/detail/string_escape.hpp +72 -0
- mqt/core/include/nlohmann/detail/string_utils.hpp +37 -0
- mqt/core/include/nlohmann/detail/value_t.hpp +118 -0
- mqt/core/include/nlohmann/json.hpp +5306 -0
- mqt/core/include/nlohmann/json_fwd.hpp +75 -0
- mqt/core/include/nlohmann/ordered_map.hpp +359 -0
- mqt/core/include/nlohmann/thirdparty/hedley/hedley.hpp +2045 -0
- mqt/core/include/nlohmann/thirdparty/hedley/hedley_undef.hpp +158 -0
- mqt/core/include/qdmi/qdmi/client.h +990 -0
- mqt/core/include/qdmi/qdmi/constants.h +1139 -0
- mqt/core/include/qdmi/qdmi/device.h +602 -0
- mqt/core/include/qdmi/qdmi/types.h +78 -0
- mqt/core/include/spdlog/async.h +99 -0
- mqt/core/include/spdlog/async_logger-inl.h +84 -0
- mqt/core/include/spdlog/async_logger.h +74 -0
- mqt/core/include/spdlog/cfg/argv.h +40 -0
- mqt/core/include/spdlog/cfg/env.h +36 -0
- mqt/core/include/spdlog/cfg/helpers-inl.h +107 -0
- mqt/core/include/spdlog/cfg/helpers.h +29 -0
- mqt/core/include/spdlog/common-inl.h +68 -0
- mqt/core/include/spdlog/common.h +406 -0
- mqt/core/include/spdlog/details/backtracer-inl.h +63 -0
- mqt/core/include/spdlog/details/backtracer.h +45 -0
- mqt/core/include/spdlog/details/circular_q.h +115 -0
- mqt/core/include/spdlog/details/console_globals.h +28 -0
- mqt/core/include/spdlog/details/file_helper-inl.h +153 -0
- mqt/core/include/spdlog/details/file_helper.h +61 -0
- mqt/core/include/spdlog/details/fmt_helper.h +141 -0
- mqt/core/include/spdlog/details/log_msg-inl.h +44 -0
- mqt/core/include/spdlog/details/log_msg.h +40 -0
- mqt/core/include/spdlog/details/log_msg_buffer-inl.h +54 -0
- mqt/core/include/spdlog/details/log_msg_buffer.h +32 -0
- mqt/core/include/spdlog/details/mpmc_blocking_q.h +177 -0
- mqt/core/include/spdlog/details/null_mutex.h +35 -0
- mqt/core/include/spdlog/details/os-inl.h +606 -0
- mqt/core/include/spdlog/details/os.h +127 -0
- mqt/core/include/spdlog/details/periodic_worker-inl.h +26 -0
- mqt/core/include/spdlog/details/periodic_worker.h +58 -0
- mqt/core/include/spdlog/details/registry-inl.h +270 -0
- mqt/core/include/spdlog/details/registry.h +131 -0
- mqt/core/include/spdlog/details/synchronous_factory.h +22 -0
- mqt/core/include/spdlog/details/tcp_client-windows.h +135 -0
- mqt/core/include/spdlog/details/tcp_client.h +127 -0
- mqt/core/include/spdlog/details/thread_pool-inl.h +126 -0
- mqt/core/include/spdlog/details/thread_pool.h +117 -0
- mqt/core/include/spdlog/details/udp_client-windows.h +98 -0
- mqt/core/include/spdlog/details/udp_client.h +81 -0
- mqt/core/include/spdlog/details/windows_include.h +11 -0
- mqt/core/include/spdlog/fmt/bin_to_hex.h +224 -0
- mqt/core/include/spdlog/fmt/bundled/args.h +220 -0
- mqt/core/include/spdlog/fmt/bundled/base.h +2989 -0
- mqt/core/include/spdlog/fmt/bundled/chrono.h +2330 -0
- mqt/core/include/spdlog/fmt/bundled/color.h +637 -0
- mqt/core/include/spdlog/fmt/bundled/compile.h +539 -0
- mqt/core/include/spdlog/fmt/bundled/core.h +5 -0
- mqt/core/include/spdlog/fmt/bundled/fmt.license.rst +27 -0
- mqt/core/include/spdlog/fmt/bundled/format-inl.h +1948 -0
- mqt/core/include/spdlog/fmt/bundled/format.h +4244 -0
- mqt/core/include/spdlog/fmt/bundled/os.h +427 -0
- mqt/core/include/spdlog/fmt/bundled/ostream.h +167 -0
- mqt/core/include/spdlog/fmt/bundled/printf.h +633 -0
- mqt/core/include/spdlog/fmt/bundled/ranges.h +850 -0
- mqt/core/include/spdlog/fmt/bundled/std.h +728 -0
- mqt/core/include/spdlog/fmt/bundled/xchar.h +369 -0
- mqt/core/include/spdlog/fmt/chrono.h +23 -0
- mqt/core/include/spdlog/fmt/compile.h +23 -0
- mqt/core/include/spdlog/fmt/fmt.h +30 -0
- mqt/core/include/spdlog/fmt/ostr.h +23 -0
- mqt/core/include/spdlog/fmt/ranges.h +23 -0
- mqt/core/include/spdlog/fmt/std.h +24 -0
- mqt/core/include/spdlog/fmt/xchar.h +23 -0
- mqt/core/include/spdlog/formatter.h +17 -0
- mqt/core/include/spdlog/fwd.h +18 -0
- mqt/core/include/spdlog/logger-inl.h +198 -0
- mqt/core/include/spdlog/logger.h +379 -0
- mqt/core/include/spdlog/mdc.h +52 -0
- mqt/core/include/spdlog/pattern_formatter-inl.h +1340 -0
- mqt/core/include/spdlog/pattern_formatter.h +118 -0
- mqt/core/include/spdlog/sinks/android_sink.h +137 -0
- mqt/core/include/spdlog/sinks/ansicolor_sink-inl.h +142 -0
- mqt/core/include/spdlog/sinks/ansicolor_sink.h +116 -0
- mqt/core/include/spdlog/sinks/base_sink-inl.h +59 -0
- mqt/core/include/spdlog/sinks/base_sink.h +51 -0
- mqt/core/include/spdlog/sinks/basic_file_sink-inl.h +48 -0
- mqt/core/include/spdlog/sinks/basic_file_sink.h +66 -0
- mqt/core/include/spdlog/sinks/callback_sink.h +56 -0
- mqt/core/include/spdlog/sinks/daily_file_sink.h +254 -0
- mqt/core/include/spdlog/sinks/dist_sink.h +81 -0
- mqt/core/include/spdlog/sinks/dup_filter_sink.h +91 -0
- mqt/core/include/spdlog/sinks/hourly_file_sink.h +193 -0
- mqt/core/include/spdlog/sinks/kafka_sink.h +119 -0
- mqt/core/include/spdlog/sinks/mongo_sink.h +108 -0
- mqt/core/include/spdlog/sinks/msvc_sink.h +68 -0
- mqt/core/include/spdlog/sinks/null_sink.h +41 -0
- mqt/core/include/spdlog/sinks/ostream_sink.h +43 -0
- mqt/core/include/spdlog/sinks/qt_sinks.h +304 -0
- mqt/core/include/spdlog/sinks/ringbuffer_sink.h +67 -0
- mqt/core/include/spdlog/sinks/rotating_file_sink-inl.h +179 -0
- mqt/core/include/spdlog/sinks/rotating_file_sink.h +93 -0
- mqt/core/include/spdlog/sinks/sink-inl.h +22 -0
- mqt/core/include/spdlog/sinks/sink.h +34 -0
- mqt/core/include/spdlog/sinks/stdout_color_sinks-inl.h +38 -0
- mqt/core/include/spdlog/sinks/stdout_color_sinks.h +49 -0
- mqt/core/include/spdlog/sinks/stdout_sinks-inl.h +127 -0
- mqt/core/include/spdlog/sinks/stdout_sinks.h +84 -0
- mqt/core/include/spdlog/sinks/syslog_sink.h +104 -0
- mqt/core/include/spdlog/sinks/systemd_sink.h +121 -0
- mqt/core/include/spdlog/sinks/tcp_sink.h +75 -0
- mqt/core/include/spdlog/sinks/udp_sink.h +69 -0
- mqt/core/include/spdlog/sinks/win_eventlog_sink.h +260 -0
- mqt/core/include/spdlog/sinks/wincolor_sink-inl.h +172 -0
- mqt/core/include/spdlog/sinks/wincolor_sink.h +82 -0
- mqt/core/include/spdlog/spdlog-inl.h +96 -0
- mqt/core/include/spdlog/spdlog.h +357 -0
- mqt/core/include/spdlog/stopwatch.h +66 -0
- mqt/core/include/spdlog/tweakme.h +148 -0
- mqt/core/include/spdlog/version.h +11 -0
- mqt/core/ir/__init__.pyi +83 -45
- mqt/core/ir/operations.pyi +40 -27
- mqt/core/ir.cp314-win_arm64.pyd +0 -0
- mqt/core/lib/cmake/spdlog/spdlogConfig.cmake +44 -0
- mqt/core/lib/cmake/spdlog/spdlogConfigTargets-release.cmake +19 -0
- mqt/core/lib/cmake/spdlog/spdlogConfigTargets.cmake +119 -0
- mqt/core/lib/cmake/spdlog/spdlogConfigVersion.cmake +65 -0
- mqt/core/lib/mqt-core-circuit-optimizer.lib +0 -0
- mqt/core/lib/mqt-core-dd.lib +0 -0
- mqt/core/lib/mqt-core-fomac.lib +0 -0
- mqt/core/lib/mqt-core-ir.lib +0 -0
- mqt/core/lib/mqt-core-na-fomac.lib +0 -0
- mqt/core/lib/mqt-core-qasm.lib +0 -0
- mqt/core/lib/mqt-core-qdmi-driver.lib +0 -0
- mqt/core/lib/mqt-core-qdmi-na-device-gen.lib +0 -0
- mqt/core/lib/mqt-core-qdmi-na-device.lib +0 -0
- mqt/core/lib/pkgconfig/spdlog.pc +13 -0
- mqt/core/lib/spdlog.lib +0 -0
- mqt/core/na/__init__.py +12 -0
- mqt/core/na/fomac.cp314-win_arm64.pyd +0 -0
- mqt/core/na/fomac.pyi +117 -0
- mqt/core/nlohmann_json.natvis +278 -0
- mqt/core/plugins/qiskit/mqt_to_qiskit.py +75 -11
- mqt/core/plugins/qiskit/qiskit_to_mqt.py +108 -5
- mqt/core/share/cmake/mqt-core/AddMQTPythonBinding.cmake +3 -0
- mqt/core/share/cmake/mqt-core/Cache.cmake +17 -16
- mqt/core/share/cmake/mqt-core/PackageAddTest.cmake +6 -0
- mqt/core/share/cmake/mqt-core/StandardProjectSettings.cmake +1 -1
- mqt/core/share/cmake/mqt-core/mqt-core-config-version.cmake +3 -3
- mqt/core/share/cmake/mqt-core/mqt-core-config.cmake +3 -0
- mqt/core/share/cmake/mqt-core/mqt-core-targets-release.cmake +51 -0
- mqt/core/share/cmake/mqt-core/mqt-core-targets.cmake +124 -3
- mqt/core/share/cmake/nlohmann_json/nlohmann_jsonConfig.cmake +15 -0
- mqt/core/share/cmake/nlohmann_json/nlohmann_jsonConfigVersion.cmake +20 -0
- mqt/core/share/cmake/nlohmann_json/nlohmann_jsonTargets.cmake +110 -0
- mqt/core/share/cmake/qdmi/Cache.cmake +44 -0
- mqt/core/share/cmake/qdmi/PrefixHandling.cmake +78 -0
- mqt/core/share/cmake/qdmi/prefix_defs.txt +26 -0
- mqt/core/share/cmake/qdmi/qdmi-config-version.cmake +85 -0
- mqt/core/share/cmake/qdmi/qdmi-config.cmake +42 -0
- mqt/core/share/cmake/qdmi/qdmi-targets.cmake +129 -0
- mqt/core/share/pkgconfig/nlohmann_json.pc +7 -0
- mqt_core-3.3.0.dist-info/DELVEWHEEL +2 -0
- {mqt_core-3.2.1.dist-info → mqt_core-3.3.0.dist-info}/METADATA +74 -33
- {mqt_core-3.2.1.dist-info → mqt_core-3.3.0.dist-info}/RECORD +240 -46
- {mqt_core-3.2.1.dist-info → mqt_core-3.3.0.dist-info}/WHEEL +1 -1
- mqt/core/include/mqt-core/ir/operations/ClassicControlledOperation.hpp +0 -156
- mqt_core-3.2.1.dist-info/DELVEWHEEL +0 -2
- {mqt_core-3.2.1.dist-info → mqt_core-3.3.0.dist-info}/entry_points.txt +0 -0
- {mqt_core-3.2.1.dist-info → mqt_core-3.3.0.dist-info}/licenses/LICENSE.md +0 -0
mqt/core/na/fomac.pyi
ADDED
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
# Copyright (c) 2023 - 2025 Chair for Design Automation, TUM
|
|
2
|
+
# Copyright (c) 2025 Munich Quantum Software Company GmbH
|
|
3
|
+
# All rights reserved.
|
|
4
|
+
#
|
|
5
|
+
# SPDX-License-Identifier: MIT
|
|
6
|
+
#
|
|
7
|
+
# Licensed under the MIT License
|
|
8
|
+
|
|
9
|
+
"""Reconstruction of NADevice from QDMI's Device class."""
|
|
10
|
+
|
|
11
|
+
from collections.abc import Iterable
|
|
12
|
+
|
|
13
|
+
from ..fomac import Device as GenericDevice
|
|
14
|
+
|
|
15
|
+
__all__ = ["Device"]
|
|
16
|
+
|
|
17
|
+
class Device(GenericDevice):
|
|
18
|
+
"""Represents a device with a lattice of traps."""
|
|
19
|
+
|
|
20
|
+
class Vector:
|
|
21
|
+
"""Represents a 2D vector."""
|
|
22
|
+
|
|
23
|
+
x: int
|
|
24
|
+
"""
|
|
25
|
+
The x-coordinate of the vector.
|
|
26
|
+
"""
|
|
27
|
+
y: int
|
|
28
|
+
"""
|
|
29
|
+
The y-coordinate of the vector.
|
|
30
|
+
"""
|
|
31
|
+
def __eq__(self, other: object) -> bool: ...
|
|
32
|
+
def __ne__(self, other: object) -> bool: ...
|
|
33
|
+
|
|
34
|
+
class Region:
|
|
35
|
+
"""Represents a region in the device."""
|
|
36
|
+
|
|
37
|
+
origin: Device.Vector
|
|
38
|
+
"""
|
|
39
|
+
The origin of the region.
|
|
40
|
+
"""
|
|
41
|
+
|
|
42
|
+
class Size:
|
|
43
|
+
"""Represents the size of a region."""
|
|
44
|
+
|
|
45
|
+
width: int
|
|
46
|
+
"""
|
|
47
|
+
The width of the region.
|
|
48
|
+
"""
|
|
49
|
+
height: int
|
|
50
|
+
"""
|
|
51
|
+
The height of the region.
|
|
52
|
+
"""
|
|
53
|
+
def __eq__(self, other: object) -> bool: ...
|
|
54
|
+
def __ne__(self, other: object) -> bool: ...
|
|
55
|
+
|
|
56
|
+
size: Size
|
|
57
|
+
"""
|
|
58
|
+
The size of the region.
|
|
59
|
+
"""
|
|
60
|
+
|
|
61
|
+
def __eq__(self, other: object) -> bool: ...
|
|
62
|
+
def __ne__(self, other: object) -> bool: ...
|
|
63
|
+
|
|
64
|
+
class Lattice:
|
|
65
|
+
"""Represents a lattice of traps in the device."""
|
|
66
|
+
|
|
67
|
+
lattice_origin: Device.Vector
|
|
68
|
+
"""
|
|
69
|
+
The origin of the lattice.
|
|
70
|
+
"""
|
|
71
|
+
lattice_vector_1: Device.Vector
|
|
72
|
+
"""
|
|
73
|
+
The first lattice vector.
|
|
74
|
+
"""
|
|
75
|
+
lattice_vector_2: Device.Vector
|
|
76
|
+
"""
|
|
77
|
+
The second lattice vector.
|
|
78
|
+
"""
|
|
79
|
+
sublattice_offsets: Iterable[Device.Vector]
|
|
80
|
+
"""
|
|
81
|
+
The offsets of the sublattices.
|
|
82
|
+
"""
|
|
83
|
+
extent: Device.Region
|
|
84
|
+
"""
|
|
85
|
+
The extent of the lattice.
|
|
86
|
+
"""
|
|
87
|
+
def __eq__(self, other: object) -> bool: ...
|
|
88
|
+
def __ne__(self, other: object) -> bool: ...
|
|
89
|
+
|
|
90
|
+
traps: Iterable[Device.Lattice]
|
|
91
|
+
"""
|
|
92
|
+
The list of trap positions in the device.
|
|
93
|
+
"""
|
|
94
|
+
t1: int
|
|
95
|
+
"""
|
|
96
|
+
The T1 time of the device.
|
|
97
|
+
"""
|
|
98
|
+
t2: int
|
|
99
|
+
"""
|
|
100
|
+
The T2 time of the device.
|
|
101
|
+
"""
|
|
102
|
+
|
|
103
|
+
@classmethod
|
|
104
|
+
def try_create_from_device(cls, device: GenericDevice) -> Device | None:
|
|
105
|
+
"""Create NA FoMaC Device from generic FoMaC Device.
|
|
106
|
+
|
|
107
|
+
Args:
|
|
108
|
+
device: The generic FoMaC Device to convert.
|
|
109
|
+
|
|
110
|
+
Returns:
|
|
111
|
+
The converted NA FoMaC Device or None if the conversion is not possible.
|
|
112
|
+
"""
|
|
113
|
+
def __eq__(self, other: object) -> bool: ...
|
|
114
|
+
def __ne__(self, other: object) -> bool: ...
|
|
115
|
+
|
|
116
|
+
def devices() -> Iterable[Device]:
|
|
117
|
+
"""Returns a list of available devices."""
|
|
@@ -0,0 +1,278 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="utf-8"?>
|
|
2
|
+
|
|
3
|
+
<!-- * * * * * * * * AUTO-GENERATED FILE * * * * * * * * -->
|
|
4
|
+
<!-- Edit ./tools/generate_natvis/nlohmann_json.natvis.j2 -->
|
|
5
|
+
<!-- * * * * * * * * AUTO-GENERATED FILE * * * * * * * * -->
|
|
6
|
+
|
|
7
|
+
<AutoVisualizer xmlns="http://schemas.microsoft.com/vstudio/debugger/natvis/2010">
|
|
8
|
+
<!-- Namespace nlohmann -->
|
|
9
|
+
<Type Name="nlohmann::basic_json<*>">
|
|
10
|
+
<DisplayString Condition="m_data.m_type == nlohmann::detail::value_t::null">null</DisplayString>
|
|
11
|
+
<DisplayString Condition="m_data.m_type == nlohmann::detail::value_t::object">{*(m_data.m_value.object)}</DisplayString>
|
|
12
|
+
<DisplayString Condition="m_data.m_type == nlohmann::detail::value_t::array">{*(m_data.m_value.array)}</DisplayString>
|
|
13
|
+
<DisplayString Condition="m_data.m_type == nlohmann::detail::value_t::string">{*(m_data.m_value.string)}</DisplayString>
|
|
14
|
+
<DisplayString Condition="m_data.m_type == nlohmann::detail::value_t::boolean">{m_data.m_value.boolean}</DisplayString>
|
|
15
|
+
<DisplayString Condition="m_data.m_type == nlohmann::detail::value_t::number_integer">{m_data.m_value.number_integer}</DisplayString>
|
|
16
|
+
<DisplayString Condition="m_data.m_type == nlohmann::detail::value_t::number_unsigned">{m_data.m_value.number_unsigned}</DisplayString>
|
|
17
|
+
<DisplayString Condition="m_data.m_type == nlohmann::detail::value_t::number_float">{m_data.m_value.number_float}</DisplayString>
|
|
18
|
+
<DisplayString Condition="m_data.m_type == nlohmann::detail::value_t::discarded">discarded</DisplayString>
|
|
19
|
+
<Expand>
|
|
20
|
+
<ExpandedItem Condition="m_data.m_type == nlohmann::detail::value_t::object">
|
|
21
|
+
*(m_data.m_value.object),view(simple)
|
|
22
|
+
</ExpandedItem>
|
|
23
|
+
<ExpandedItem Condition="m_data.m_type == nlohmann::detail::value_t::array">
|
|
24
|
+
*(m_data.m_value.array),view(simple)
|
|
25
|
+
</ExpandedItem>
|
|
26
|
+
</Expand>
|
|
27
|
+
</Type>
|
|
28
|
+
|
|
29
|
+
<!-- Skip the pair first/second members in the treeview while traversing a map.
|
|
30
|
+
Only works in VS 2015 Update 2 and beyond using the new visualization -->
|
|
31
|
+
<Type Name="std::pair<*, nlohmann::basic_json<*>>" IncludeView="MapHelper">
|
|
32
|
+
<DisplayString>{second}</DisplayString>
|
|
33
|
+
<Expand>
|
|
34
|
+
<ExpandedItem>second</ExpandedItem>
|
|
35
|
+
</Expand>
|
|
36
|
+
</Type>
|
|
37
|
+
|
|
38
|
+
<!-- Namespace nlohmann::json_abi -->
|
|
39
|
+
<Type Name="nlohmann::json_abi::basic_json<*>">
|
|
40
|
+
<DisplayString Condition="m_data.m_type == nlohmann::json_abi::detail::value_t::null">null</DisplayString>
|
|
41
|
+
<DisplayString Condition="m_data.m_type == nlohmann::json_abi::detail::value_t::object">{*(m_data.m_value.object)}</DisplayString>
|
|
42
|
+
<DisplayString Condition="m_data.m_type == nlohmann::json_abi::detail::value_t::array">{*(m_data.m_value.array)}</DisplayString>
|
|
43
|
+
<DisplayString Condition="m_data.m_type == nlohmann::json_abi::detail::value_t::string">{*(m_data.m_value.string)}</DisplayString>
|
|
44
|
+
<DisplayString Condition="m_data.m_type == nlohmann::json_abi::detail::value_t::boolean">{m_data.m_value.boolean}</DisplayString>
|
|
45
|
+
<DisplayString Condition="m_data.m_type == nlohmann::json_abi::detail::value_t::number_integer">{m_data.m_value.number_integer}</DisplayString>
|
|
46
|
+
<DisplayString Condition="m_data.m_type == nlohmann::json_abi::detail::value_t::number_unsigned">{m_data.m_value.number_unsigned}</DisplayString>
|
|
47
|
+
<DisplayString Condition="m_data.m_type == nlohmann::json_abi::detail::value_t::number_float">{m_data.m_value.number_float}</DisplayString>
|
|
48
|
+
<DisplayString Condition="m_data.m_type == nlohmann::json_abi::detail::value_t::discarded">discarded</DisplayString>
|
|
49
|
+
<Expand>
|
|
50
|
+
<ExpandedItem Condition="m_data.m_type == nlohmann::json_abi::detail::value_t::object">
|
|
51
|
+
*(m_data.m_value.object),view(simple)
|
|
52
|
+
</ExpandedItem>
|
|
53
|
+
<ExpandedItem Condition="m_data.m_type == nlohmann::json_abi::detail::value_t::array">
|
|
54
|
+
*(m_data.m_value.array),view(simple)
|
|
55
|
+
</ExpandedItem>
|
|
56
|
+
</Expand>
|
|
57
|
+
</Type>
|
|
58
|
+
|
|
59
|
+
<!-- Skip the pair first/second members in the treeview while traversing a map.
|
|
60
|
+
Only works in VS 2015 Update 2 and beyond using the new visualization -->
|
|
61
|
+
<Type Name="std::pair<*, nlohmann::json_abi::basic_json<*>>" IncludeView="MapHelper">
|
|
62
|
+
<DisplayString>{second}</DisplayString>
|
|
63
|
+
<Expand>
|
|
64
|
+
<ExpandedItem>second</ExpandedItem>
|
|
65
|
+
</Expand>
|
|
66
|
+
</Type>
|
|
67
|
+
|
|
68
|
+
<!-- Namespace nlohmann::json_abi_v3_12_0 -->
|
|
69
|
+
<Type Name="nlohmann::json_abi_v3_12_0::basic_json<*>">
|
|
70
|
+
<DisplayString Condition="m_data.m_type == nlohmann::json_abi_v3_12_0::detail::value_t::null">null</DisplayString>
|
|
71
|
+
<DisplayString Condition="m_data.m_type == nlohmann::json_abi_v3_12_0::detail::value_t::object">{*(m_data.m_value.object)}</DisplayString>
|
|
72
|
+
<DisplayString Condition="m_data.m_type == nlohmann::json_abi_v3_12_0::detail::value_t::array">{*(m_data.m_value.array)}</DisplayString>
|
|
73
|
+
<DisplayString Condition="m_data.m_type == nlohmann::json_abi_v3_12_0::detail::value_t::string">{*(m_data.m_value.string)}</DisplayString>
|
|
74
|
+
<DisplayString Condition="m_data.m_type == nlohmann::json_abi_v3_12_0::detail::value_t::boolean">{m_data.m_value.boolean}</DisplayString>
|
|
75
|
+
<DisplayString Condition="m_data.m_type == nlohmann::json_abi_v3_12_0::detail::value_t::number_integer">{m_data.m_value.number_integer}</DisplayString>
|
|
76
|
+
<DisplayString Condition="m_data.m_type == nlohmann::json_abi_v3_12_0::detail::value_t::number_unsigned">{m_data.m_value.number_unsigned}</DisplayString>
|
|
77
|
+
<DisplayString Condition="m_data.m_type == nlohmann::json_abi_v3_12_0::detail::value_t::number_float">{m_data.m_value.number_float}</DisplayString>
|
|
78
|
+
<DisplayString Condition="m_data.m_type == nlohmann::json_abi_v3_12_0::detail::value_t::discarded">discarded</DisplayString>
|
|
79
|
+
<Expand>
|
|
80
|
+
<ExpandedItem Condition="m_data.m_type == nlohmann::json_abi_v3_12_0::detail::value_t::object">
|
|
81
|
+
*(m_data.m_value.object),view(simple)
|
|
82
|
+
</ExpandedItem>
|
|
83
|
+
<ExpandedItem Condition="m_data.m_type == nlohmann::json_abi_v3_12_0::detail::value_t::array">
|
|
84
|
+
*(m_data.m_value.array),view(simple)
|
|
85
|
+
</ExpandedItem>
|
|
86
|
+
</Expand>
|
|
87
|
+
</Type>
|
|
88
|
+
|
|
89
|
+
<!-- Skip the pair first/second members in the treeview while traversing a map.
|
|
90
|
+
Only works in VS 2015 Update 2 and beyond using the new visualization -->
|
|
91
|
+
<Type Name="std::pair<*, nlohmann::json_abi_v3_12_0::basic_json<*>>" IncludeView="MapHelper">
|
|
92
|
+
<DisplayString>{second}</DisplayString>
|
|
93
|
+
<Expand>
|
|
94
|
+
<ExpandedItem>second</ExpandedItem>
|
|
95
|
+
</Expand>
|
|
96
|
+
</Type>
|
|
97
|
+
|
|
98
|
+
<!-- Namespace nlohmann::json_abi_diag -->
|
|
99
|
+
<Type Name="nlohmann::json_abi_diag::basic_json<*>">
|
|
100
|
+
<DisplayString Condition="m_data.m_type == nlohmann::json_abi_diag::detail::value_t::null">null</DisplayString>
|
|
101
|
+
<DisplayString Condition="m_data.m_type == nlohmann::json_abi_diag::detail::value_t::object">{*(m_data.m_value.object)}</DisplayString>
|
|
102
|
+
<DisplayString Condition="m_data.m_type == nlohmann::json_abi_diag::detail::value_t::array">{*(m_data.m_value.array)}</DisplayString>
|
|
103
|
+
<DisplayString Condition="m_data.m_type == nlohmann::json_abi_diag::detail::value_t::string">{*(m_data.m_value.string)}</DisplayString>
|
|
104
|
+
<DisplayString Condition="m_data.m_type == nlohmann::json_abi_diag::detail::value_t::boolean">{m_data.m_value.boolean}</DisplayString>
|
|
105
|
+
<DisplayString Condition="m_data.m_type == nlohmann::json_abi_diag::detail::value_t::number_integer">{m_data.m_value.number_integer}</DisplayString>
|
|
106
|
+
<DisplayString Condition="m_data.m_type == nlohmann::json_abi_diag::detail::value_t::number_unsigned">{m_data.m_value.number_unsigned}</DisplayString>
|
|
107
|
+
<DisplayString Condition="m_data.m_type == nlohmann::json_abi_diag::detail::value_t::number_float">{m_data.m_value.number_float}</DisplayString>
|
|
108
|
+
<DisplayString Condition="m_data.m_type == nlohmann::json_abi_diag::detail::value_t::discarded">discarded</DisplayString>
|
|
109
|
+
<Expand>
|
|
110
|
+
<ExpandedItem Condition="m_data.m_type == nlohmann::json_abi_diag::detail::value_t::object">
|
|
111
|
+
*(m_data.m_value.object),view(simple)
|
|
112
|
+
</ExpandedItem>
|
|
113
|
+
<ExpandedItem Condition="m_data.m_type == nlohmann::json_abi_diag::detail::value_t::array">
|
|
114
|
+
*(m_data.m_value.array),view(simple)
|
|
115
|
+
</ExpandedItem>
|
|
116
|
+
</Expand>
|
|
117
|
+
</Type>
|
|
118
|
+
|
|
119
|
+
<!-- Skip the pair first/second members in the treeview while traversing a map.
|
|
120
|
+
Only works in VS 2015 Update 2 and beyond using the new visualization -->
|
|
121
|
+
<Type Name="std::pair<*, nlohmann::json_abi_diag::basic_json<*>>" IncludeView="MapHelper">
|
|
122
|
+
<DisplayString>{second}</DisplayString>
|
|
123
|
+
<Expand>
|
|
124
|
+
<ExpandedItem>second</ExpandedItem>
|
|
125
|
+
</Expand>
|
|
126
|
+
</Type>
|
|
127
|
+
|
|
128
|
+
<!-- Namespace nlohmann::json_abi_diag_v3_12_0 -->
|
|
129
|
+
<Type Name="nlohmann::json_abi_diag_v3_12_0::basic_json<*>">
|
|
130
|
+
<DisplayString Condition="m_data.m_type == nlohmann::json_abi_diag_v3_12_0::detail::value_t::null">null</DisplayString>
|
|
131
|
+
<DisplayString Condition="m_data.m_type == nlohmann::json_abi_diag_v3_12_0::detail::value_t::object">{*(m_data.m_value.object)}</DisplayString>
|
|
132
|
+
<DisplayString Condition="m_data.m_type == nlohmann::json_abi_diag_v3_12_0::detail::value_t::array">{*(m_data.m_value.array)}</DisplayString>
|
|
133
|
+
<DisplayString Condition="m_data.m_type == nlohmann::json_abi_diag_v3_12_0::detail::value_t::string">{*(m_data.m_value.string)}</DisplayString>
|
|
134
|
+
<DisplayString Condition="m_data.m_type == nlohmann::json_abi_diag_v3_12_0::detail::value_t::boolean">{m_data.m_value.boolean}</DisplayString>
|
|
135
|
+
<DisplayString Condition="m_data.m_type == nlohmann::json_abi_diag_v3_12_0::detail::value_t::number_integer">{m_data.m_value.number_integer}</DisplayString>
|
|
136
|
+
<DisplayString Condition="m_data.m_type == nlohmann::json_abi_diag_v3_12_0::detail::value_t::number_unsigned">{m_data.m_value.number_unsigned}</DisplayString>
|
|
137
|
+
<DisplayString Condition="m_data.m_type == nlohmann::json_abi_diag_v3_12_0::detail::value_t::number_float">{m_data.m_value.number_float}</DisplayString>
|
|
138
|
+
<DisplayString Condition="m_data.m_type == nlohmann::json_abi_diag_v3_12_0::detail::value_t::discarded">discarded</DisplayString>
|
|
139
|
+
<Expand>
|
|
140
|
+
<ExpandedItem Condition="m_data.m_type == nlohmann::json_abi_diag_v3_12_0::detail::value_t::object">
|
|
141
|
+
*(m_data.m_value.object),view(simple)
|
|
142
|
+
</ExpandedItem>
|
|
143
|
+
<ExpandedItem Condition="m_data.m_type == nlohmann::json_abi_diag_v3_12_0::detail::value_t::array">
|
|
144
|
+
*(m_data.m_value.array),view(simple)
|
|
145
|
+
</ExpandedItem>
|
|
146
|
+
</Expand>
|
|
147
|
+
</Type>
|
|
148
|
+
|
|
149
|
+
<!-- Skip the pair first/second members in the treeview while traversing a map.
|
|
150
|
+
Only works in VS 2015 Update 2 and beyond using the new visualization -->
|
|
151
|
+
<Type Name="std::pair<*, nlohmann::json_abi_diag_v3_12_0::basic_json<*>>" IncludeView="MapHelper">
|
|
152
|
+
<DisplayString>{second}</DisplayString>
|
|
153
|
+
<Expand>
|
|
154
|
+
<ExpandedItem>second</ExpandedItem>
|
|
155
|
+
</Expand>
|
|
156
|
+
</Type>
|
|
157
|
+
|
|
158
|
+
<!-- Namespace nlohmann::json_abi_ldvcmp -->
|
|
159
|
+
<Type Name="nlohmann::json_abi_ldvcmp::basic_json<*>">
|
|
160
|
+
<DisplayString Condition="m_data.m_type == nlohmann::json_abi_ldvcmp::detail::value_t::null">null</DisplayString>
|
|
161
|
+
<DisplayString Condition="m_data.m_type == nlohmann::json_abi_ldvcmp::detail::value_t::object">{*(m_data.m_value.object)}</DisplayString>
|
|
162
|
+
<DisplayString Condition="m_data.m_type == nlohmann::json_abi_ldvcmp::detail::value_t::array">{*(m_data.m_value.array)}</DisplayString>
|
|
163
|
+
<DisplayString Condition="m_data.m_type == nlohmann::json_abi_ldvcmp::detail::value_t::string">{*(m_data.m_value.string)}</DisplayString>
|
|
164
|
+
<DisplayString Condition="m_data.m_type == nlohmann::json_abi_ldvcmp::detail::value_t::boolean">{m_data.m_value.boolean}</DisplayString>
|
|
165
|
+
<DisplayString Condition="m_data.m_type == nlohmann::json_abi_ldvcmp::detail::value_t::number_integer">{m_data.m_value.number_integer}</DisplayString>
|
|
166
|
+
<DisplayString Condition="m_data.m_type == nlohmann::json_abi_ldvcmp::detail::value_t::number_unsigned">{m_data.m_value.number_unsigned}</DisplayString>
|
|
167
|
+
<DisplayString Condition="m_data.m_type == nlohmann::json_abi_ldvcmp::detail::value_t::number_float">{m_data.m_value.number_float}</DisplayString>
|
|
168
|
+
<DisplayString Condition="m_data.m_type == nlohmann::json_abi_ldvcmp::detail::value_t::discarded">discarded</DisplayString>
|
|
169
|
+
<Expand>
|
|
170
|
+
<ExpandedItem Condition="m_data.m_type == nlohmann::json_abi_ldvcmp::detail::value_t::object">
|
|
171
|
+
*(m_data.m_value.object),view(simple)
|
|
172
|
+
</ExpandedItem>
|
|
173
|
+
<ExpandedItem Condition="m_data.m_type == nlohmann::json_abi_ldvcmp::detail::value_t::array">
|
|
174
|
+
*(m_data.m_value.array),view(simple)
|
|
175
|
+
</ExpandedItem>
|
|
176
|
+
</Expand>
|
|
177
|
+
</Type>
|
|
178
|
+
|
|
179
|
+
<!-- Skip the pair first/second members in the treeview while traversing a map.
|
|
180
|
+
Only works in VS 2015 Update 2 and beyond using the new visualization -->
|
|
181
|
+
<Type Name="std::pair<*, nlohmann::json_abi_ldvcmp::basic_json<*>>" IncludeView="MapHelper">
|
|
182
|
+
<DisplayString>{second}</DisplayString>
|
|
183
|
+
<Expand>
|
|
184
|
+
<ExpandedItem>second</ExpandedItem>
|
|
185
|
+
</Expand>
|
|
186
|
+
</Type>
|
|
187
|
+
|
|
188
|
+
<!-- Namespace nlohmann::json_abi_ldvcmp_v3_12_0 -->
|
|
189
|
+
<Type Name="nlohmann::json_abi_ldvcmp_v3_12_0::basic_json<*>">
|
|
190
|
+
<DisplayString Condition="m_data.m_type == nlohmann::json_abi_ldvcmp_v3_12_0::detail::value_t::null">null</DisplayString>
|
|
191
|
+
<DisplayString Condition="m_data.m_type == nlohmann::json_abi_ldvcmp_v3_12_0::detail::value_t::object">{*(m_data.m_value.object)}</DisplayString>
|
|
192
|
+
<DisplayString Condition="m_data.m_type == nlohmann::json_abi_ldvcmp_v3_12_0::detail::value_t::array">{*(m_data.m_value.array)}</DisplayString>
|
|
193
|
+
<DisplayString Condition="m_data.m_type == nlohmann::json_abi_ldvcmp_v3_12_0::detail::value_t::string">{*(m_data.m_value.string)}</DisplayString>
|
|
194
|
+
<DisplayString Condition="m_data.m_type == nlohmann::json_abi_ldvcmp_v3_12_0::detail::value_t::boolean">{m_data.m_value.boolean}</DisplayString>
|
|
195
|
+
<DisplayString Condition="m_data.m_type == nlohmann::json_abi_ldvcmp_v3_12_0::detail::value_t::number_integer">{m_data.m_value.number_integer}</DisplayString>
|
|
196
|
+
<DisplayString Condition="m_data.m_type == nlohmann::json_abi_ldvcmp_v3_12_0::detail::value_t::number_unsigned">{m_data.m_value.number_unsigned}</DisplayString>
|
|
197
|
+
<DisplayString Condition="m_data.m_type == nlohmann::json_abi_ldvcmp_v3_12_0::detail::value_t::number_float">{m_data.m_value.number_float}</DisplayString>
|
|
198
|
+
<DisplayString Condition="m_data.m_type == nlohmann::json_abi_ldvcmp_v3_12_0::detail::value_t::discarded">discarded</DisplayString>
|
|
199
|
+
<Expand>
|
|
200
|
+
<ExpandedItem Condition="m_data.m_type == nlohmann::json_abi_ldvcmp_v3_12_0::detail::value_t::object">
|
|
201
|
+
*(m_data.m_value.object),view(simple)
|
|
202
|
+
</ExpandedItem>
|
|
203
|
+
<ExpandedItem Condition="m_data.m_type == nlohmann::json_abi_ldvcmp_v3_12_0::detail::value_t::array">
|
|
204
|
+
*(m_data.m_value.array),view(simple)
|
|
205
|
+
</ExpandedItem>
|
|
206
|
+
</Expand>
|
|
207
|
+
</Type>
|
|
208
|
+
|
|
209
|
+
<!-- Skip the pair first/second members in the treeview while traversing a map.
|
|
210
|
+
Only works in VS 2015 Update 2 and beyond using the new visualization -->
|
|
211
|
+
<Type Name="std::pair<*, nlohmann::json_abi_ldvcmp_v3_12_0::basic_json<*>>" IncludeView="MapHelper">
|
|
212
|
+
<DisplayString>{second}</DisplayString>
|
|
213
|
+
<Expand>
|
|
214
|
+
<ExpandedItem>second</ExpandedItem>
|
|
215
|
+
</Expand>
|
|
216
|
+
</Type>
|
|
217
|
+
|
|
218
|
+
<!-- Namespace nlohmann::json_abi_diag_ldvcmp -->
|
|
219
|
+
<Type Name="nlohmann::json_abi_diag_ldvcmp::basic_json<*>">
|
|
220
|
+
<DisplayString Condition="m_data.m_type == nlohmann::json_abi_diag_ldvcmp::detail::value_t::null">null</DisplayString>
|
|
221
|
+
<DisplayString Condition="m_data.m_type == nlohmann::json_abi_diag_ldvcmp::detail::value_t::object">{*(m_data.m_value.object)}</DisplayString>
|
|
222
|
+
<DisplayString Condition="m_data.m_type == nlohmann::json_abi_diag_ldvcmp::detail::value_t::array">{*(m_data.m_value.array)}</DisplayString>
|
|
223
|
+
<DisplayString Condition="m_data.m_type == nlohmann::json_abi_diag_ldvcmp::detail::value_t::string">{*(m_data.m_value.string)}</DisplayString>
|
|
224
|
+
<DisplayString Condition="m_data.m_type == nlohmann::json_abi_diag_ldvcmp::detail::value_t::boolean">{m_data.m_value.boolean}</DisplayString>
|
|
225
|
+
<DisplayString Condition="m_data.m_type == nlohmann::json_abi_diag_ldvcmp::detail::value_t::number_integer">{m_data.m_value.number_integer}</DisplayString>
|
|
226
|
+
<DisplayString Condition="m_data.m_type == nlohmann::json_abi_diag_ldvcmp::detail::value_t::number_unsigned">{m_data.m_value.number_unsigned}</DisplayString>
|
|
227
|
+
<DisplayString Condition="m_data.m_type == nlohmann::json_abi_diag_ldvcmp::detail::value_t::number_float">{m_data.m_value.number_float}</DisplayString>
|
|
228
|
+
<DisplayString Condition="m_data.m_type == nlohmann::json_abi_diag_ldvcmp::detail::value_t::discarded">discarded</DisplayString>
|
|
229
|
+
<Expand>
|
|
230
|
+
<ExpandedItem Condition="m_data.m_type == nlohmann::json_abi_diag_ldvcmp::detail::value_t::object">
|
|
231
|
+
*(m_data.m_value.object),view(simple)
|
|
232
|
+
</ExpandedItem>
|
|
233
|
+
<ExpandedItem Condition="m_data.m_type == nlohmann::json_abi_diag_ldvcmp::detail::value_t::array">
|
|
234
|
+
*(m_data.m_value.array),view(simple)
|
|
235
|
+
</ExpandedItem>
|
|
236
|
+
</Expand>
|
|
237
|
+
</Type>
|
|
238
|
+
|
|
239
|
+
<!-- Skip the pair first/second members in the treeview while traversing a map.
|
|
240
|
+
Only works in VS 2015 Update 2 and beyond using the new visualization -->
|
|
241
|
+
<Type Name="std::pair<*, nlohmann::json_abi_diag_ldvcmp::basic_json<*>>" IncludeView="MapHelper">
|
|
242
|
+
<DisplayString>{second}</DisplayString>
|
|
243
|
+
<Expand>
|
|
244
|
+
<ExpandedItem>second</ExpandedItem>
|
|
245
|
+
</Expand>
|
|
246
|
+
</Type>
|
|
247
|
+
|
|
248
|
+
<!-- Namespace nlohmann::json_abi_diag_ldvcmp_v3_12_0 -->
|
|
249
|
+
<Type Name="nlohmann::json_abi_diag_ldvcmp_v3_12_0::basic_json<*>">
|
|
250
|
+
<DisplayString Condition="m_data.m_type == nlohmann::json_abi_diag_ldvcmp_v3_12_0::detail::value_t::null">null</DisplayString>
|
|
251
|
+
<DisplayString Condition="m_data.m_type == nlohmann::json_abi_diag_ldvcmp_v3_12_0::detail::value_t::object">{*(m_data.m_value.object)}</DisplayString>
|
|
252
|
+
<DisplayString Condition="m_data.m_type == nlohmann::json_abi_diag_ldvcmp_v3_12_0::detail::value_t::array">{*(m_data.m_value.array)}</DisplayString>
|
|
253
|
+
<DisplayString Condition="m_data.m_type == nlohmann::json_abi_diag_ldvcmp_v3_12_0::detail::value_t::string">{*(m_data.m_value.string)}</DisplayString>
|
|
254
|
+
<DisplayString Condition="m_data.m_type == nlohmann::json_abi_diag_ldvcmp_v3_12_0::detail::value_t::boolean">{m_data.m_value.boolean}</DisplayString>
|
|
255
|
+
<DisplayString Condition="m_data.m_type == nlohmann::json_abi_diag_ldvcmp_v3_12_0::detail::value_t::number_integer">{m_data.m_value.number_integer}</DisplayString>
|
|
256
|
+
<DisplayString Condition="m_data.m_type == nlohmann::json_abi_diag_ldvcmp_v3_12_0::detail::value_t::number_unsigned">{m_data.m_value.number_unsigned}</DisplayString>
|
|
257
|
+
<DisplayString Condition="m_data.m_type == nlohmann::json_abi_diag_ldvcmp_v3_12_0::detail::value_t::number_float">{m_data.m_value.number_float}</DisplayString>
|
|
258
|
+
<DisplayString Condition="m_data.m_type == nlohmann::json_abi_diag_ldvcmp_v3_12_0::detail::value_t::discarded">discarded</DisplayString>
|
|
259
|
+
<Expand>
|
|
260
|
+
<ExpandedItem Condition="m_data.m_type == nlohmann::json_abi_diag_ldvcmp_v3_12_0::detail::value_t::object">
|
|
261
|
+
*(m_data.m_value.object),view(simple)
|
|
262
|
+
</ExpandedItem>
|
|
263
|
+
<ExpandedItem Condition="m_data.m_type == nlohmann::json_abi_diag_ldvcmp_v3_12_0::detail::value_t::array">
|
|
264
|
+
*(m_data.m_value.array),view(simple)
|
|
265
|
+
</ExpandedItem>
|
|
266
|
+
</Expand>
|
|
267
|
+
</Type>
|
|
268
|
+
|
|
269
|
+
<!-- Skip the pair first/second members in the treeview while traversing a map.
|
|
270
|
+
Only works in VS 2015 Update 2 and beyond using the new visualization -->
|
|
271
|
+
<Type Name="std::pair<*, nlohmann::json_abi_diag_ldvcmp_v3_12_0::basic_json<*>>" IncludeView="MapHelper">
|
|
272
|
+
<DisplayString>{second}</DisplayString>
|
|
273
|
+
<Expand>
|
|
274
|
+
<ExpandedItem>second</ExpandedItem>
|
|
275
|
+
</Expand>
|
|
276
|
+
</Type>
|
|
277
|
+
|
|
278
|
+
</AutoVisualizer>
|
|
@@ -12,7 +12,14 @@ from __future__ import annotations
|
|
|
12
12
|
|
|
13
13
|
from typing import TYPE_CHECKING
|
|
14
14
|
|
|
15
|
-
from qiskit.circuit import
|
|
15
|
+
from qiskit.circuit import (
|
|
16
|
+
AncillaRegister,
|
|
17
|
+
ClassicalRegister,
|
|
18
|
+
IfElseOp,
|
|
19
|
+
QuantumCircuit,
|
|
20
|
+
QuantumRegister,
|
|
21
|
+
)
|
|
22
|
+
from qiskit.circuit.classical import expr
|
|
16
23
|
from qiskit.circuit.library import (
|
|
17
24
|
DCXGate,
|
|
18
25
|
ECRGate,
|
|
@@ -46,11 +53,11 @@ from qiskit.transpiler.layout import Layout, TranspileLayout
|
|
|
46
53
|
|
|
47
54
|
from ...ir import Permutation
|
|
48
55
|
from ...ir.operations import (
|
|
49
|
-
|
|
56
|
+
ComparisonKind,
|
|
50
57
|
CompoundOperation,
|
|
51
58
|
Control,
|
|
59
|
+
IfElseOperation,
|
|
52
60
|
NonUnitaryOperation,
|
|
53
|
-
Operation,
|
|
54
61
|
OpType,
|
|
55
62
|
StandardOperation,
|
|
56
63
|
)
|
|
@@ -58,9 +65,11 @@ from ...ir.operations import (
|
|
|
58
65
|
if TYPE_CHECKING:
|
|
59
66
|
from collections.abc import Mapping, Sequence
|
|
60
67
|
|
|
68
|
+
from qiskit.circuit import Clbit, Qubit
|
|
61
69
|
from qiskit.circuit.singleton import SingletonGate
|
|
62
70
|
|
|
63
71
|
from ...ir import QuantumComputation
|
|
72
|
+
from ...ir.operations import Operation
|
|
64
73
|
|
|
65
74
|
__all__ = ["mqt_to_qiskit"]
|
|
66
75
|
|
|
@@ -205,7 +214,10 @@ def _add_standard_operation(circ: QuantumCircuit, op: StandardOperation, qubit_m
|
|
|
205
214
|
|
|
206
215
|
|
|
207
216
|
def _add_non_unitary_operation(
|
|
208
|
-
circ: QuantumCircuit,
|
|
217
|
+
circ: QuantumCircuit,
|
|
218
|
+
op: NonUnitaryOperation,
|
|
219
|
+
qubit_map: Mapping[int, Qubit],
|
|
220
|
+
clbit_map: Mapping[int, Clbit],
|
|
209
221
|
) -> None:
|
|
210
222
|
"""Add a :class:`~mqt.core.ir.operations.NonUnitaryOperation`.
|
|
211
223
|
|
|
@@ -216,7 +228,7 @@ def _add_non_unitary_operation(
|
|
|
216
228
|
clbit_map: A mapping from classical bit indices to Qiskit :class:`~qiskit.circuit.Clbit`.
|
|
217
229
|
"""
|
|
218
230
|
if op.type_ == OpType.measure:
|
|
219
|
-
for qubit, clbit in zip(op.targets, op.classics):
|
|
231
|
+
for qubit, clbit in zip(op.targets, op.classics, strict=False):
|
|
220
232
|
circ.measure(qubit_map[qubit], clbit_map[clbit])
|
|
221
233
|
return
|
|
222
234
|
|
|
@@ -227,7 +239,10 @@ def _add_non_unitary_operation(
|
|
|
227
239
|
|
|
228
240
|
|
|
229
241
|
def _add_compound_operation(
|
|
230
|
-
circ: QuantumCircuit,
|
|
242
|
+
circ: QuantumCircuit,
|
|
243
|
+
op: CompoundOperation,
|
|
244
|
+
qubit_map: Mapping[int, Qubit],
|
|
245
|
+
clbit_map: Mapping[int, Clbit],
|
|
231
246
|
) -> None:
|
|
232
247
|
"""Add a :class:`~mqt.core.ir.operations.CompoundOperation`.
|
|
233
248
|
|
|
@@ -243,8 +258,59 @@ def _add_compound_operation(
|
|
|
243
258
|
circ.append(inner_circ.to_instruction(), circ.qubits, circ.clbits)
|
|
244
259
|
|
|
245
260
|
|
|
261
|
+
def _add_if_else_operation(
|
|
262
|
+
circ: QuantumCircuit,
|
|
263
|
+
op: IfElseOperation,
|
|
264
|
+
qubit_map: Mapping[int, Qubit],
|
|
265
|
+
clbit_map: Mapping[int, Clbit],
|
|
266
|
+
) -> None:
|
|
267
|
+
"""Add a :class:`~.IfElseOperation`.
|
|
268
|
+
|
|
269
|
+
Args:
|
|
270
|
+
circ: The Qiskit circuit to add the operation to.
|
|
271
|
+
op: The :class:`~.IfElseOperation` operation to add.
|
|
272
|
+
qubit_map: A mapping from qubit indices to Qiskit :class:`~qiskit.circuit.Qubit`.
|
|
273
|
+
clbit_map: A mapping from classical bit indices to Qiskit :class:`~qiskit.circuit.Clbit`.
|
|
274
|
+
"""
|
|
275
|
+
if op.control_register is not None:
|
|
276
|
+
left_hand_side = next(reg for reg in circ.cregs if reg.name == op.control_register.name)
|
|
277
|
+
right_hand_side = op.expected_value_register
|
|
278
|
+
else:
|
|
279
|
+
assert op.control_bit is not None
|
|
280
|
+
left_hand_side = clbit_map[op.control_bit]
|
|
281
|
+
right_hand_side = op.expected_value_bit
|
|
282
|
+
|
|
283
|
+
condition: expr.Expr | tuple[ClassicalRegister | Clbit, int]
|
|
284
|
+
if op.comparison_kind == ComparisonKind.eq:
|
|
285
|
+
# directly handle equality conditions without expressions
|
|
286
|
+
condition = (left_hand_side, right_hand_side)
|
|
287
|
+
elif op.comparison_kind == ComparisonKind.neq:
|
|
288
|
+
condition = expr.not_equal(left_hand_side, right_hand_side)
|
|
289
|
+
elif op.comparison_kind == ComparisonKind.lt:
|
|
290
|
+
condition = expr.less(left_hand_side, right_hand_side)
|
|
291
|
+
elif op.comparison_kind == ComparisonKind.leq:
|
|
292
|
+
condition = expr.less_equal(left_hand_side, right_hand_side)
|
|
293
|
+
elif op.comparison_kind == ComparisonKind.gt:
|
|
294
|
+
condition = expr.greater(left_hand_side, right_hand_side)
|
|
295
|
+
elif op.comparison_kind == ComparisonKind.geq:
|
|
296
|
+
condition = expr.greater_equal(left_hand_side, right_hand_side)
|
|
297
|
+
|
|
298
|
+
then_circ = QuantumCircuit(*circ.qregs, *circ.cregs)
|
|
299
|
+
_add_operation(then_circ, op.then_operation, qubit_map, clbit_map)
|
|
300
|
+
|
|
301
|
+
else_circ: QuantumCircuit | None = None
|
|
302
|
+
if op.else_operation is not None:
|
|
303
|
+
else_circ = QuantumCircuit(*circ.qregs, *circ.cregs)
|
|
304
|
+
_add_operation(else_circ, op.else_operation, qubit_map, clbit_map)
|
|
305
|
+
|
|
306
|
+
circ.append(IfElseOp(condition, then_circ, else_circ), circ.qubits, circ.clbits)
|
|
307
|
+
|
|
308
|
+
|
|
246
309
|
def _add_operation(
|
|
247
|
-
circ: QuantumCircuit,
|
|
310
|
+
circ: QuantumCircuit,
|
|
311
|
+
op: Operation,
|
|
312
|
+
qubit_map: Mapping[int, Qubit],
|
|
313
|
+
clbit_map: Mapping[int, Clbit],
|
|
248
314
|
) -> None:
|
|
249
315
|
"""Add an operation to a Qiskit circuit.
|
|
250
316
|
|
|
@@ -256,7 +322,6 @@ def _add_operation(
|
|
|
256
322
|
|
|
257
323
|
Raises:
|
|
258
324
|
TypeError: If the operation type is not supported.
|
|
259
|
-
NotImplementedError: If the operation type is not yet supported.
|
|
260
325
|
"""
|
|
261
326
|
if isinstance(op, StandardOperation):
|
|
262
327
|
_add_standard_operation(circ, op, qubit_map)
|
|
@@ -264,9 +329,8 @@ def _add_operation(
|
|
|
264
329
|
_add_non_unitary_operation(circ, op, qubit_map, clbit_map)
|
|
265
330
|
elif isinstance(op, CompoundOperation):
|
|
266
331
|
_add_compound_operation(circ, op, qubit_map, clbit_map)
|
|
267
|
-
elif isinstance(op,
|
|
268
|
-
|
|
269
|
-
raise NotImplementedError(msg)
|
|
332
|
+
elif isinstance(op, IfElseOperation):
|
|
333
|
+
_add_if_else_operation(circ, op, qubit_map, clbit_map)
|
|
270
334
|
else:
|
|
271
335
|
msg = f"Unsupported operation type: {type(op)}"
|
|
272
336
|
raise TypeError(msg)
|