Skip to main content
IBM Quantum Platform

QkTargetEntry

typedef struct QkTargetEntry QkTargetEntry

타겟의 게이트 맵을 나타내는 쿼비트 인자와 프로퍼티의 매핑입니다. 이 기능은 C에서 사용할 수 있는 유효한 네이티브 매핑이 없기 때문에 사용됩니다.

다음은 이 구조가 어떻게 작동하는지에 대한 예시입니다:

#include <qiskit.h>
#include <math.h>

// Create a Target Entry for a CX Gate
QkTargetEntry *entry = qk_target_entry_new(QkGate_CX);

// Set a name for the entry
qk_target_entry_set_name(entry, "cx_gate");

// Add mapping between (0,1) and properties duration of 10e-9 and unknown error.
uint32_t qargs[2] = {0, 1};
qk_target_entry_add_property(entry, qargs, 2, 10e-9, NAN);

// Add mapping between Global, and no set duration NAN and error of 0.003)
qk_target_entry_add_property(entry, NULL, 0, NAN, 0.003);

함수

qk_target_entry_new

QkTargetEntry *qk_target_entry_new(QkGate operation)

QkGate 인스턴스를 기반으로 QkTarget 에 항목을 생성합니다.

QkTargetEntry *had_entry = qk_target_entry_new(QkGate_H);

매개변수

  • 작업 - 이 대상 항목이 정의하는 속성을 가진 QkGate . QkGate 에서 매개변수( qk_gate_num_params 에서 확인할 수 있음)를 받는 경우 모든 매개변수 값을 허용하는 대상에 인스트럭션으로 추가됩니다. 게이트가 고정 매개변수 값만 허용하는 경우 qk_target_entry_new_fixed 대신 사용할 수 있습니다.

리턴

새로운 QkTargetEntry 에 대한 포인터입니다.

qk_target_entry_new_measure

QkTargetEntry *qk_target_entry_new_measure(void)

QkTarget 에 측정 지침을 추가하기 위한 새 항목을 만듭니다.

QkTargetEntry *entry = qk_target_entry_new_measure();
// Add fixed duration and error rates from qubits at index 0 to 4.
for (uint32_t i = 0; i < 5; i++) {
    // Measure is a single qubit instruction
    uint32_t qargs[1] = {i};
    qk_target_entry_add_property(entry, qargs, 1, 1.928e-10, 7.9829e-11);
}

// Add the entry to a target with 5 qubits
QkTarget *measure_target = qk_target_new(5);
qk_target_add_instruction(measure_target, entry);

리턴

측정 지침에 대한 새로운 QkTargetEntry 포인터입니다.

qk_target_entry_new_reset

QkTargetEntry *qk_target_entry_new_reset(void)

QkTarget 에 재설정 명령을 추가하기 위한 새 항목을 만듭니다.

QkTargetEntry *entry = qk_target_entry_new_reset();
// Add fixed duration and error rates from qubits at index 0 to 2.
for (uint32_t i = 0; i < 3; i++) {
    // Reset is a single qubit instruction
    uint32_t qargs[1] = {i};
    qk_target_entry_add_property(entry, qargs, 1, 1.2e-11, 5.9e-13);
}

// Add the entry to a target with 3 qubits
QkTarget *reset_target = qk_target_new(3);
qk_target_add_instruction(reset_target, entry);

리턴

재설정 명령에 대한 새로운 QkTargetEntry 포인터입니다.

qk_target_entry_new_fixed

QkTargetEntry *qk_target_entry_new_fixed(QkGate operation, double *params, const char *name)

매개변수 없이 QkGate 인스턴스를 기반으로 QkTarget 에 항목을 생성합니다.

double crx_params[1] = {3.14};
QkTargetEntry *entry = qk_target_entry_new_fixed(QkGate_CRX, crx_params, "crx_fixed")";

안전

params 유형은 길이가 QkGate 의 기대치와 일치하는 double 의 배열에 대한 포인터가 될 것으로 예상됩니다. 배열이 충분히 길지 않으면 배열의 범위를 벗어나 읽히므로 이 함수의 동작이 정의되지 않습니다. 주어진 게이트에 대한 파라미터가 없는 경우 널 포인터가 될 수 있습니다. qk_gate_num_params 에서 특정 게이트에 필요한 큐비트 수를 확인할 수 있습니다.

포인터는 name 유효한 UTF-8 문자열로 구성된 C 문자열이거나 null 포인터여야 합니다.

참고

일반 매개변수와 함께 QkGate 을 추가하는 것은 현재 지원되지 않습니다.

매개변수

  • 작업 - 이 대상 항목이 정의하는 속성을 가진 QkGate .
  • 매개변수 - 인스트럭션이 보정되는 매개변수에 대한 포인터입니다.
  • 이름 – 대상에서 명령어에 대한 선택적 이름. NULL 포인터가 제공되면 해당 항목은 작업의 기본 이름을 사용합니다.

리턴

새로운 QkTargetEntry 에 대한 포인터입니다.

qk_target_entry_num_properties

size_t qk_target_entry_num_properties(const QkTargetEntry *entry)

대상 항목에 저장된 속성 수를 검색합니다.

// Create an entry for an H gate
QkTargetEntry *entry = qk_target_entry_new(QkGate_H);
size_t props_size = qk_target_entry_num_properties(entry);

안전

entryQkTargetEntry 객체에 대한 유효한 널이 아닌 포인터가 아닌 경우 동작이 정의되지 않습니다.

매개변수

  • 항목 - 매핑 객체에 대한 포인터입니다.

리턴

QkTargetEntry 에 있는 속성 수입니다.

qk_target_entry_free

void qk_target_entry_free(QkTargetEntry *entry)

항목을 해제합니다.

QkTargetEntry *entry = qk_target_entry_new(QkGate_H);
qk_target_entry_free(entry);

안전

entryQkTargetEntry 객체에 대한 유효한 널이 아닌 포인터가 아닌 경우 동작이 정의되지 않습니다.

참고

qk_target_add_instruction 을 통해 QkTarget 에 항목을 추가하면 항목 포인터가 해제되며, 이 함수는 QkTarget 인스턴스에 항목을 추가하지 않는 경우에만 대체로 사용하도록 되어 있습니다.

매개변수

  • 항목 - 해제할 매핑 객체에 대한 포인터입니다.

qk_target_entry_add_property

QkExitCode qk_target_entry_add_property(QkTargetEntry *entry, uint32_t *qargs, uint32_t num_qubits, double duration, double error)

할당된 qarg를 기반으로 인스트럭션 프로퍼티 인스턴스를 추가합니다.

QkTargetEntry *entry = qk_target_entry_new(QkGate_CX);
uint32_t qargs[2] = {0, 1};
qk_target_entry_add_property(entry, qargs, 2, 0.0, 0.1);

안전

entryQkTargetEntry 객체에 대한 유효한 널이 아닌 포인터가 아닌 경우 동작이 정의되지 않습니다.

매개변수

  • 항목 - 항목 객체에 대한 포인터입니다.
  • qargs - 게이트를 추가할 uint32_t 쿼비트 인덱스 배열에 대한 포인터로, 전역 속성을 확인하기 위한 널 포인터일 수 있습니다.
  • 숫자_쿼비트 - qargs 배열의 길이입니다.
  • 기간 - 특정 큐비트 집합에 대한 인스트럭션의 기간(초)입니다.
  • 오류 - 특정 큐비트 집합에 대한 인스트럭션의 평균 오류율입니다.

리턴

종료 코드.

qk_target_entry_set_name

QkExitCode qk_target_entry_set_name(QkTargetEntry *entry, const char *name)

대상 항목에 사용자 정의 이름을 설정합니다.

QkTargetEntry *entry = qk_target_entry_new(QkGate_CX);
qk_target_entry_set_name(entry, "cx_gate");

안전

가 유효한 null이 아닌 객체 QkTargetEntry 포인터가 아닐 경우 entry 동작이 정의되지 않습니다. 포인터는 name 유효한 UTF-8 문자열로 구성된 C 문자열이거나 null 포인터여야 합니다.

매개변수

  • 항목 - 항목 객체에 대한 포인터입니다.
  • 이름 – 대상 항목에 설정할 이름.

리턴

QkExitCode 작업이 성공했는지 여부를 명시합니다.

이 페이지가 도움이 되었습니까?
GitHub에서 버그, 오타를 보고하거나 컨텐츠를 요청하십시오.