QkClassicalRegister
typedef struct QkClassicalRegister QkClassicalRegister一度に複数のビットをインスタンス化する一般的な方法は、レジスタを作成することである。 レジスタとは、名前の付いたビットの集まりである。 レジスタを作成することで、ビットの集まりに名前を付けることができ、回路内の特定のビットのメタデータとして使用できる。 この名前は、通常、回路を交換言語にエクスポートする際にも保持される。
例えば、 qk_classical_register_new() を呼び出すことで、レジスタを作成することができる:
#include <qiskit.h>
QkClassicalRegister *creg = qk_classical_register_new(5, "my_creg");これにより、 "my_creg" という新しい5ビットのレジスタが作成される。
そして、レジスタを回路に追加するには、 qk_circuit_add_classical_register() 関数を使う:
QkCircuit *qc = qk_circuit_new(0, 0);
qk_circuit_add_classical_register(qc, creg);
uint32_t num_qubits = qk_circuit_num_qubits(qc); // 5回路はレジスタを追跡するが、レジスタ自体は回路にほとんど動作の違いを与えない。
関数
qk_classical_register_free
void qk_classical_register_free(QkClassicalRegister *reg)
クラシックのレジスターが無料。
例
QkClassicalRegister *cr = qk_classical_register_new(1024, "creg");
qk_classical_register_free(cr);安全
reg が NULL または QkClassicalRegister への有効なポインタでない場合、動作は未定義となる。
パラメーター
- reg - 解放するレジスタへのポインタ.
qk_classical_register_new
QkClassicalRegister *qk_classical_register_new(uint32_t num_clbits, const char *name)
指定されたビット数と名前で新しい古典的レジスタを作成する
例
QkClassicalRegister *cr = qk_classical_register_new(5, "five_qubits");安全
name パラメーターは、文字列の末尾に有効なヌル・ターミネーターを含むメモリーへのポインターでなければならない。 また、ヌル・ターミネーターまでのバイト数のリードに対しても有効でなければならない。
パラメーター
- num_clbits - レジスタを作成するclbitsの数
- name - 作成されるレジスタの名前文字列。 名前は UTF-8 の有効な文字で構成されなければならない。
戻り値
作成されたレジスタへのポインタ