ターゲット
class qiskit.transpiler.Target(description=None, num_qubits=0, dt=None, granularity=1, min_length=1, pulse_alignment=1, acquire_alignment=1, qubit_properties=None, concurrent_measurements=None, **_subclass_kwargs)
ベース: BaseTarget
Target オブジェクトの意図は、Qiskitのコンパイラに特定のバックエンドの制約を通知し、コンパイラが入力回路をデバイスに最適化された動作するものにコンパイルできるようにすることです。 現在、バックエンドのインストラクションとそのプロパティ、そしていくつかのタイミング情報が含まれている。 しかし、この正確なインターフェイスは、コンパイラのニーズが変化するにつれて変化していく可能性がある。 これらの変更は、ターゲットによって公開される情報のセットに追加するために(バージョニング、サブクラス化、ミキシンのいずれかによって)行われる場合、後方互換性があり、管理された方法で行われる。
基本的な例として、あるバックエンドが2つの量子ビットを持ち、両方の量子ビットで UGate をサポートし、 CXGate 両方向で をサポートしていると仮定しましょう。 これをモデル化するには、次のようにターゲットを作成します:
from qiskit.transpiler import Target, InstructionProperties
from qiskit.circuit.library import UGate, CXGate
from qiskit.circuit import Parameter
gmap = Target()
theta = Parameter('theta')
phi = Parameter('phi')
lam = Parameter('lambda')
u_props = {
(0,): InstructionProperties(duration=5.23e-8, error=0.00038115),
(1,): InstructionProperties(duration=4.52e-8, error=0.00032115),
}
gmap.add_instruction(UGate(theta, phi, lam), u_props)
cx_props = {
(0,1): InstructionProperties(duration=5.23e-7, error=0.00098115),
(1,0): InstructionProperties(duration=4.52e-7, error=0.00132115),
}
gmap.add_instruction(CXGate(), cx_props)Target 内の各命令は、Target 内のオブジェクトのインスタンスを一意に識別する一意の文字列名でインデックス付けされる。 Instruction オブジェクトのインスタンスを一意に識別します。 名前とターゲットのインスタンスの間には1対1のマッピングがあり、それぞれの名前は一意でなければならない。 Instruction のインスタンスとの間に1対1の対応付けがあり、それぞれの名前は一意でなければならない。 デフォルトでは name 属性であるが、任意に設定できる。 これにより、1つのターゲットが、異なるパラメータを持つ同じ命令クラスの複数のインスタンスを持つことができる。 例えば、バックエンドターゲットに2つのインスタンス RXGate の2つのインスタンスがある場合、一方は任意のθに対してパラメータ化され、もう一方は pi/6 のθに対して調整されている:
import math
from qiskit.transpiler import Target, InstructionProperties
from qiskit.circuit.library import RXGate
from qiskit.circuit import Parameter
target = Target()
theta = Parameter('theta')
rx_props = {
(0,): InstructionProperties(duration=5.23e-8, error=0.00038115),
}
target.add_instruction(RXGate(theta), rx_props)
rx_30_props = {
(0,): InstructionProperties(duration=1.74e-6, error=.00012)
}
target.add_instruction(RXGate(math.pi / 6), rx_30_props, name='rx_30')そして、 rx_30 でアクセスする target オブジェクトは固定角度を取得し、 はパラメータ化された角度を取得する。 RXGate 一方、 rx はパラメータ化された RXGate.
メソッド add_instruction() 呼び出し時にキーワード angle_bounds 引数を使用することで、ターゲットのゲートにおける有効な値の上限を任意で指定できます。 操作に対して境界が設定され、個々の命令に対しては設定されない。したがって、関数を呼び出す際には、その関数が定義 add_instruction() されているすべてのqargsに対して境界が適用される。 境界は、2つの浮動小数点数の組からなるリストで指定される。最初の浮動小数点数は下限値、2番目の浮動小数点数は上限値である。 たとえば、角度の境界を指定した場合:
[(0.0, 3.14), (-3.14, 3.14), (0.0, 1.0)]最初のパラメーターは0から 3.14、2番目のパラメーターは -3.14 から 3.14、3番目のパラメーターは0から1の間の角度を受け付ける。 すべてのバウンドも包括的に設定されている。 パラメータに制約がないことを示す2タプルの代わりに、 None 。 例:
[(0.0, 3.14), None, None]は、3つのパラメータを持つゲートの角度制限を示し、最初のパラメータのみが 0.0 から 3.14 の間の角度に制限され、他のパラメータはどのような値でも受け付ける。
ターゲット内の操作に角度境界が設定されているかどうかを確認できます、 has_angle_bounds() また、ターゲット内の特定の名前に gate_has_angle_bounds(). パラメータ値の特定のセットが角度境界に適合しているかどうかは、次のようにしてチェックできる。 supported_angle_bound(). プリセットパスマネージャーでは WrapAngles パスは角度の境界を強制するために使われます。 WrapAngleRegistry に関数を提供する必要があります。 詳しくはゲートの角度
このクラスは、命令の名前をキーとして、マッピング・プロトコルで問い合わせることができる。 メソッドを使って、命令のプロパティを変更することができます。 update_instruction_properties() メソッドで変更できます。 マッピング・プロトコルによる変更や、オブジェクトの属性の変更はサポートされていません。 InstructionProperties オブジェクトの属性を変更することはサポートされていません。
このクラスは、量子ビットのインデックスが0から始まり、連続したセットであることを前提としている。 Target オブジェクトでインデックスを付け直す必要があります。
このクラスは、ゲート、qargs、プロパティの追加のみをサポートしている。 これらのいずれかを削除する必要がある場合は、既存のオブジェクトを反復処理して新しいサブセットを作成するのが最良の方法です(または、これを実行するメソッドのいずれかを使用します)。 オブジェクトは内部的にさまざまなビューをキャッシュしており、それらは削除によって無効になる可能性がある。
サブクラス化
技術的には Targetをサブクラス化することは技術的には可能だが、組み込み情報の大部分はRustにあり、組み込みのトランスパイラ・パスの中でRustからクエリされることに注意しよう。 Python -スペースのオーバーライドはRustからは見えませんので、Qiskitの組み込みトランスパイラパスの動作を変更するためにこれらに頼るべきではありません。 Target は主に、特殊なサブクラスではなく、特殊なコンストラクタを持つQPUの表現であると考えられています。 Target 基数を返す関数であるべきである Targetカスタム初期化子を持つサブクラスではありません。
サブクラス化を利用して、 Python -spaceプロパティをオブジェクトに追加することができます。たとえば、カスタムバックエンド固有 Targetのトランスパイラステージで解釈するために使用できます。このオブジェクトは Target 、stage-pluginのコンストラクタに渡されます。
をサブクラス化してはいけません。 Target をサブクラス化してはいけません。 Python -spaceサブクラス化はRustで書かれたパスからは見えません。
さらに Target のコアはRustで書かれているため __new__() をイニシャライザーとして使用するので、正しい引数が基礎となる実装に渡されるようにしなければならない。 メソッドのシグネチャをオーバーライドする場合は __init__() メソッドのシグネチャをオーバーライドする場合は、同じシグネチャを持つ __new__()super().__new__() をオーバーライドする必要があります。
新しい Target オブジェクトを作成する。
パラメタ記述
Target を表すオプションの文字列。
タイプの説明
str
param num_qubits
バックエンドターゲットの量子ビット数を指定するオプションの int。 を呼び出すと、num_qubitsセットが更新され、指定されたプロパティの具体的な。 add_instruction() を呼び出すと、与えられたプロパティの具体的な qargs に対応するために、num_qubitsセットが更新される。
これを明示的に None 。 Target シミュレータやその他の抽象的なマシンで、量子ビット数に制限がないことを表します。 この場合、ターゲットに追加される命令はすべてグローバルでなければならない( properties=None または properties={None: None} )。
num_qubits
int
param dt
入力信号のシステム時間分解能(秒
タイプdt
浮動小数点
パラメータ粒度
パルス・ゲートの最小分解能を表す整数値で、単位は dt。 ユーザー定義のパルスゲートは、この粒度値の倍数の持続時間を持つべきである。
タイプ粒度
int
param min_length
最小パルスゲート長を表す整数値で、単位は dt。 ユーザー定義のパルスゲートは、この長さより長くなければならない。
タイプ min_length
int
param pulse_alignment
ゲート命令開始時刻の時間分解能を表す整数値。 ゲート命令は、アラインメント値の倍数である時間から開始すべきである。
type pulse_alignment
int
param acquire_alignment
測定指示開始時刻の時間分解能を表す整数値。 測定指示は、アライメント値の倍数である時間から開始すべきである。
タイプacquire_alignment
int
param qubit_properties
のリスト。 QubitProperties オブジェクトのリスト。 指定された場合、このリストの長さはターゲットの量子ビット数と一致しなければならず、リストのインデックスはプロパティが定義されている量子ビット番号と一致する。 もしいくつかの量子ビットにプロパティがない場合は、そのエントリーを None
qubit_properties型
リスト
param concurrent_measurements
一緒に測定しなければならない量子ビットのセットのリスト。 これは、 [[0, 1], [2, 3, 4]] のようにネストされたリストとして提供されなければならない。
type concurrent_measurements
リスト
レイズ ValueError
num_qubits と qubit_properties の両方が定義されており、 num_qubits の値が qubit_properties の長さと異なる場合。
属性
acquire_alignment
concurrent_measurements
description
dt
dtを返す。
granularity
instructions
対象のタプルのリスト(Instruction(qargs))を取得する
グローバルに定義された可変幅操作の場合、タプルは (class, None) 。classはグローバルに定義された実際の操作クラスである。
min_length
num_qubits
operation_names
ターゲット内の操作名を取得する。
operations
ターゲットの操作オブジェクトを取得する。
physical_qubits
物理量子ビットのソートされたリストを返します。
pulse_alignment
qargs
ターゲットのqargsのセット。
qubit_properties
方法
add_instruction
add_instruction(instruction, properties=None, name=None, *, angle_bounds=None)
に新しい命令を追加する。 Target
Target オブジェクトは厳密に加法的であるため、これは Target を修正するための主要な方法である。 一般的には、 Target を完全に入力してから、それを BackendV2. 例:
from qiskit.circuit.library import CXGate
from qiskit.transpiler import Target, InstructionProperties
target = Target()
cx_properties = {
(0, 1): None,
(1, 0): None,
(0, 2): None,
(2, 0): None,
(0, 3): None,
(2, 3): None,
(3, 0): None,
(3, 2): None
}
target.add_instruction(CXGate(), cx_properties)を追加する。 CXGate を、プロパティ(継続時間、エラーなど)のないターゲットに、カップリング・エッジ・リストとともに追加する: (0, 1), (1, 0), (0, 2), (2, 0), (0, 3), (2, 3), (3, 0), (3, 2). 命令に利用可能なプロパティがある場合は、プロパティ辞書の None の値を InstructionProperties オブジェクトに置き換えることができます。 このパターンは Instruction に対して繰り返される。
パラメーター
- instruction (Union[qiskit.circuit.Instruction, Type[qiskit.circuit.Instruction]]) – マップに追加する操作オブジェクト。 パラメータ化されている場合、パラメータには任意の値を設定できます。 幅が可変の命令(やなどの制御フロー操作など
MCXGate``ForLoop)については、必要に応じてクラスを指定することができます。 クラスが指定されている場合、引name数を指定する必要があります。 クラスを使用する場合、ゲートはグローバルとして扱われ、プロパティは設定されていないものとみなされます。 - properties (dict) – qargエントリーの辞書。
InstructionPropertiesオブジェクトに変換します。 バックエンドで利用可能なプロパティがない場合、値は None になります。InstructionPropertiesバックエンドで利用可能なものがない場合、値は None になります。 命令に制約がない場合(ノイズのない理想的なシミュレーションの場合)、{None, None}。これは、すべての量子ビット(マルチ量子ビット・ゲートの場合は、利用可能なすべての量子ビットの並べ替え)で実行されることを示します。 最初のNoneは、すべての量子ビットに適用されることを示し、2番目のNoneは、すべての量子ビットに適用される命令がないことを示す。InstructionPropertiesであることを示す。 デフォルトでは、properties が設定されていない場合、{None: None}を渡すのと同じである。 - name (str) – 命令を識別するために使用するオプションの名前。 指定がない場合は
namegateの属性が使われる。Target、すべてのゲートに固有の名前が必要だ。 バックエンドは、それぞれにユニークな名前を提供することで、単一のゲートの異なるパラメータ化を区別することができます(例えば、 “rx30”、 “rx60”、 `”rx90”`` クラスのドキュメントの例に似ています)。Targetクラスのドキュメントの例に似ています)。 - angle_bounds (list) – 与えられたゲートのパラメータの境界。 これはタプル(low, high)のリストで指定され、そのタプルは、その位置のパラメータに許容される浮動小数点数の下限と上限を表す(含む)。 パラメータに角度の制約がない場合は、
None。 例えば、3パラメータのゲートが2番目のパラメータにのみバインドを持っている場合、次のように表現します:[None, [0, 3.14], None]これは、1番目と3番目のパラメータはどのような値でも許容するが、2番目のパラメータは0から 3.14 までの値しか受け付けないことを意味します。
レイズ
- AttributeError - ゲートがすでにマップ内にある場合
- TranspilerError -
instruction、操作クラスが渡され、名前が指定されないか、properties。
build_coupling_map
build_coupling_map(two_q_gate=None, filter_idle_qubits=False)
このターゲットから CouplingMap をこのターゲットから取得する。
接続性の制約がある2量子ビット演算と、グローバルに定義された演算が混在している場合、グローバルな接続性によりターゲットに対する制約が存在 None しないことになるため、これも同様に返されます。 制約を持つ2量子ビット演算の制約を確認したい場合は、引数 two_q_gate を使用して、制約を持つゲートのみを出力するように制限する必要があります。
パラメーター
- two_q_gate (str) –
Target、カップリングマップを生成するための2量子ビットゲートのオプションのゲート名。 指定された場合、出力カップリングマップはこのゲートが存在する量子ビット間のエッジのみを持ちます。 - filter_idle_qubits (bool) –
Trueに設定するとCouplingMapはターゲットに定義された演算を持たない量子ビットを削除します。 この引数を使用すると、クラスの仮定とは異なる可能性のある、インデックスに穴のある出力CouplingMapオブジェクトが出力されることになる。 この引数の典型的な使用例としてはCouplingMap.connected_components()と組み合わせることである。
戻り値
** CouplingMap オブジェクト**
このターゲットのために。 ターゲットに接続制約がない場合、これは None を返す。
戻りの型
レイズ
- ValueError - 非2量子ビットのゲートが
two_q_gate。 - IndexError -
Targetにない命令がtwo_q_gateのために渡された場合。
durations
from_configuration
classmethod from_configuration(basis_gates, num_qubits=None, coupling_map=None, instruction_durations=None, concurrent_measurements=None, dt=None, timing_constraints=None, custom_name_mapping=None)
個々のグローバル・コンフィギュレーションからターゲット・オブジェクトを作成する
クラスが作成される前は Target クラスに含まれる情報のサブセットを表すさまざまなオブジェクトのコレクションによって表現されていました。 Target. この関数は、これらの別々のオブジェクトを Target.
このコンストラクタは、 basis_gates、 num_qubits、 coupling_map の入力を使ってバックエンドの基本モデルを構築し、 instruction_durations、 backend_properties、 inst_map の入力を、そのモデルに基づいて(この順番で)照会し、各命令と量子ビットのプロパティを調べる。 入力間に矛盾がある場合、 instruction_durations、 backend_properties、 inst_map にある余分な情報や矛盾する情報は無視される。
パラメーター
- basis_gates (list[str]) – バックエンドの基本ゲート名のリスト。 ターゲットが作成されるためには、これらの名前が
get_standard_gate_name_mapping()から出力されるか、指定されたcustom_name_mapping引数に存在しなければならない。 - num_qubits (int | None) – バックエンドでサポートされている量子ビットの数。
- coupling_map (CouplingMap | None) – バックエンドの接続制約を表す結合マップ。 指定された場合、
basis_gatesからの全てのゲートが全ての量子ビット(または量子ビットのペア)でサポートされる。 - instruction_durations (InstructionDurations | None) – 命令に対する任意の命令時間。 指定された場合、
durationフィールドの設定が優先されます。InstructionPropertiesフィールドの設定が優先されます。 - concurrent_measurements (list) – 一緒に測定しなければならない量子ビットのセットのリスト。 これは、
[[0, 1], [2, 3, 4]]のようにネストされたリストとして提供されなければならない。 - dt (float | None) – 入力信号のシステム時間分解能(秒
- timing_constraints (TimingConstraints | None) – に含めるオプションのタイミング制約
Target - custom_name_mapping (dict[str, Any] | None) – オプションの辞書で、カスタムのゲート/操作名を にマッピングし
basis_gates、そのゲート/操作を表す オブジェクトOperationを返します。 デフォルトでは、ほとんどの標準ゲート名は標準ゲートオブジェクトにマッピングされます。入力がそれ以外のセットでbasis_gates定義されたゲート名を使用する場合にのみ、qiskit.circuit.libraryこれを明示的に指定する必要があります。
戻り値
入力コンフィギュレーションから構築されたターゲット
戻りの型
レイズ
- TranspilerError - 入力基底ゲートが2量子ビット以上で、
coupling_map - を指定した。 -
- KeyError - 指定された
basis_gateにマッピングがない場合。
gate_has_angle_bounds
gate_has_angle_bounds(name)
特定のゲート門にアングルバウンドが設定されているかどうかをチェックする
パラメーター
name (str) – アングルバウンドが設定されているかどうかをチェックする命令名
戻り値
ゲートがターゲット内にあり、角度の境界が定義されていれば、 True を返す。 ゲートに角度境界が定義されていないか、ターゲット内にない場合は、 False を返す。
戻りの型
get
get_non_global_operation_names
get_non_global_operation_names(strict_direction=False)
ターゲットのグローバルでないオペレーション名を返す
非グローバル演算とは、すべての量子ビット(単一量子ビット演算の場合)またはすべての多量量子ビット(多量量子ビット演算の場合)に適用されないターゲット内の演算のことである。
パラメーター
strict_direction (bool) – True に設定すると、非グローバルとみなされる多量子ビット演算は、厳密な方向(またはqargs内の量子ビットの順序が重要)を尊重する。 例えば、 cx が (0, 1) で定義され、 ecr が (1, 0) で定義されている場合、デフォルトではどちらもノングローバルとはみなされないが、 strict_direction が True に設定されている場合、 cx と ecr の両方が返される。
戻り値
このターゲットでグローバルでない操作の操作名のリスト
戻りの型
リスト [str]
has_angle_bounds
instruction_properties
instruction_properties(index)
特定の命令タプルの命令プロパティの取得
このメソッドは instructions オブジェクトの Target オブジェクトの の要素のインストラクション・プロパティを素早く取得するには、このメソッドを使用します。 instructions の要素の命令プロパティを素早く取得することができます。 しかし instructions を直接操作しないのであれば、命令のプロパティを取得するために、名前と量子ビットを介してターゲットに直接アクセスする方が効率的でしょう。 例えば instructions を返した:
[(XGate(), (0,)), (XGate(), (1,))]を使えば、第1量子ビットの XGate :
props = target.instruction_properties(1)しかし、名前から直接アクセスした方が効率的だ:
props = target['x'][(1,)](ターゲット内の XGate'の正規名が 'x' であると仮定して) これは、ターゲット内の命令タプルの数に応じてスケールが悪化するため、特に大きなターゲットに当てはまります。
パラメーター
index (int) – 属性からの命令タプルのインデックス。 instructions 属性のインデックス。 の3番目の要素からプロパティを取得したい場合、次のように設定します。 instructions の3番目の要素のプロパティが欲しい場合、これを 2 に設定します。
戻り値
指定された命令タプルの命令プロパティ
戻りの型
instruction_supported
instruction_supported(operation_name=None, qargs=Ellipsis, operation_class=None, parameters=None, check_angle_bounds=True)
命令(演算+量子ビット)がターゲットでサポートされているかどうかを返す
パラメーター
-
operation_name (str) – 命令の操作名。 これか
operation_classのどちらかを指定しなければならない。両方が指定された場合は、operation_classが優先され、この引数は無視される。 -
qargs (tuple) – 命令の量子ビットのインデックスのタプル。 これが指定されていない場合、指定された操作がどの量子ビットでもサポートされていれば、このメソッドは
Trueを返す。 一般的なアプリケーションでは、常にこの設定がされている(そうでなければ、ターゲットに操作が含まれているかどうかをチェックするのと同じことだ)。 通常、ターゲットがparameters、任意の量子ビットの操作をサポートしていることをより一般的にチェックしたい場合は、この引数を設定しない。 -
operation_class (Type[qiskit.circuit.Instruction]) – ターゲットが特定の操作をサポートしているかどうかを、名前ではなくクラスでチェックするための操作クラス。 このルックアップは、単一のルックアップではなく、ターゲット内のすべてのオペレーションを反復する必要があるため、より高価になる。 これを指定すると、
operation_nameの引数に優先する。 この操作の典型的なユースケースは、ある操作の特定のバリアントがバックエンドでサポートされているかどうかをチェックすることである。 例えば、角度が固定された特定の量子ビットにRXGateが特定の量子ビットに固定角度でサポートされているかどうかをチェックしたい場合。 その固定された角度のバリアントは、通常、ターゲットのオブジェクトのname属性 ("rx") とは異なる名前を持ちます。 このような場合、クラスのインスタンスが利用可能かどうかをチェックするために使用できる。 -
parameters (list) –
ターゲットが指定された量子ビットをサポートしているかどうかをチェックするためのパラメータのリスト。 命令で、指定された操作とqargsのリストで指定されたパラメータ値がサポートされている場合、
Trueが返されますが、指定された命令でパラメータがサポートされていない場合、Falseが返されます。 この引数が指定されない場合、このメソッドは、命令が命令パラメータとは無関係にサポートされている場合、Trueを返す。 リスト内のParameterオブジェクトと一緒に指定された場合、そのエントリは任意の値をサポートするものとして扱われますが、パラメータ名はチェックされません(例えば、ターゲット内のオペレーションが"theta"でパラメータ化されたものとしてリストされており、"phi"がこの関数に渡された場合、Trueが返されます)。 例えばparameters = [Parameter("theta")] target.instruction_supported("rx", (0,), parameters=parameters)は
Trueを返す。RXGateが返される。 固定数値パラメータをチェックする必要がある場合、この引数は通常、operation_class引数と対になる。 例:target.instruction_supported("rx", (0,), RXGate, parameters=[pi / 4])は、RXGate( pi/4 )が0量子ビットに存在する場合、
Trueを返す。 -
check_angle_bounds (bool) – True(デフォルト)に設定すると、
parametersの値がターゲットに設定されている角度の境界に対して検証されます。parameters。ParameterExpressionに設定されている場合、角度境界は回路内のパラメータ化されていない操作にのみ影響するため、このフラグは影響しない。
戻り値
その命令がサポートされていれば True 、サポートされていなければ False 。
戻りの型
items
keys
operation_from_name
operation_from_name(instruction)
指定された名前のオペレーション・クラス・オブジェクトを取得する
パラメーター
instruction (str) – インスタンス Instruction インスタンスを
戻り値
名前に対応する命令インスタンス。 このクラスは、グローバルに定義された変数を操作するクラスでもある。
戻りの型
operation_names_for_qargs
operation_names_for_qargs(qargs, /)
指定したqargsタプルの操作名を取得する
パラメーター
qargs (tuple) – qargs 、それに適用されるゲートを取得するための量子ビットのタプル。 例えば、 (0,) は、量子ビット0に適用されるすべての命令の集合を返す。 None に設定すると、ターゲットでグローバルに定義されている操作の名前が返される。
戻り値
指定された qargs に適用される操作名のセット。
戻りの型
レイズ
KeyError - qargs がターゲットにない場合
operations_for_qargs
operations_for_qargs(qargs, /)
指定されたqargsタプルの操作クラスオブジェクトを取得する
パラメーター
qargs (tuple) – quargsのタプルは、それに適用されるゲートを取得するための量子ビットのタプル。 例えば、 (0,) は、量子ビット0に適用されるすべての命令の集合を返す。 None に設定すると、ターゲットでグローバルに定義された操作が返される。
戻り値
指定された Instruction 指定された qarg に適用されるインスタンスのリスト。 また、可変幅の操作がグローバルに定義されている場合、これはクラスになることもある。
戻りの型
レイズ
KeyError - qargs がターゲットにない場合
qargs_for_operation_name
qargs_for_operation_name(operation)
与えられた操作名のqargsを取得する
パラメーター
operation (str) – qargs を取得する操作名
戻り値
ゲートインスタンスが適用されるqargsのセット。
戻りの型
seconds_to_dt
seconds_to_dt(duration)
秒単位の継続時間をdt単位に変換する
パラメーター
duration (float) – 秒単位の継続時間。 InstructionProperties フィールドのように。
戻りの型
戻り値
継続時間:dt 単位の継続時間
supported_angle_bound
supported_angle_bound(name, angles)
特定のゲートのパラメータが角度範囲に適合しているかチェックする
パラメーター
戻り値
指定されたパラメータ値が角度境界に適合する場合、 True を返す。 False は、パラメータのいずれかが定義された範囲外である場合に返される。
戻りの型
レイズ
- TranspilerError -
nameがターゲットにない場合、またはターゲットにない場合 - 角度の境界が定義されている。 -
timing_constraints
timing_constraints()
ターゲットから TimingConstraints オブジェクトを取得する
戻り値
で表されるタイミング制約がある。 Target
戻りの型
TimingConstraints
update_instruction_properties
update_instruction_properties(instruction, qargs, properties)
ターゲットに既に存在する命令 qarg ペアのプロパティオブジェクトを更新します。
簡単にアクセスできるように、ユーザーは、命令の名前をキーとして、命令の該当するqargsとその命令のプロパティの間のマッピングを、マッピングプロトコル( __getitem__ )を使用して取得することができます。 この方法は、 Target の命令のプロパティを変更/更新する唯一の方法である。 変更のためのマッピングプロトコルの使用はサポートされていません。
パラメーター
- instruction (str) – 更新する命令名
- qargs (tuple) – のプロパティを更新するqargs
- properties (InstructionProperties) – この命令に設定するプロパティ
レイズ
KeyError - instruction または qarg がターゲットにない場合
values
パラメーター