Skip to main content
IBM Quantum Platform

QkTranspiler

qk_transpile() 함수는 Qiskit의 트랜스파일러(qiskit.transpiler)를 C에서 사용할 수 있도록 노출합니다. 기본 기능은 Python -space 버전과 동일한 기본 코드를 사용하지만, C에 노출된 트랜스파일러는 Python 에 노출된 것보다 더 많은 제한 사항이 있습니다. 이 트랜스파일러는 순수하게 C API를 사용하여 구축된 회로를 전제로 하며, 독립형 C API 환경에서만 작동하도록 설계되었습니다. Python 와 /C가 혼합된 환경에서는 제대로 작동하지 않을 수 있습니다. C 회로와 Python 회로를 혼합하여 사용하는 경우, 해당 회로에 대해 또는 transpile() generate_preset_pass_manager() 함수를 호출해야 합니다.


데이터 유형.

QkTranspileResult

struct QkTranspileResult

의 컨테이너 결과 객체 qk_transpile

트랜스파일러가 주어진 대상에 대한 양자 회로를 성공적으로 컴파일하면 트랜스파일된 회로와 레이아웃을 반환합니다. qk_transpile 함수가 성공적으로 실행되면 이 구조체의 필드에 포인터를 쓰게 되며, 이 구조체를 널 포인터로 초기화하거나 qk_transpile 에서 값을 읽지 않고 쓰기만 하므로 설정하지 않은 채로 둘 수 있습니다. qk_transpile 으로 전화한 후 이 구조의 구성원에 대해 qk_circuit_freeqk_transpile_layout_free 으로 전화할 책임이 있습니다.

QkCircuit *회로

조립된 회로.

QkTranspileLayout *레이아웃

초기 및 최종 가상-물리 레이아웃에 대한 메타데이터.

QkTranspileOptions

struct QkTranspileOptions

트랜스파일러 실행 옵션

uint8_t 최적화 수준

트랜스파일러를 실행할 최적화 수준입니다. 유효한 값은 0, 1, 2 또는 3입니다.

int64_t 씨앗

트랜스파일러의 시드입니다. 음수로 설정하면 시드가 설정되지 않고 트랜스파일러에 사용되는 RNG가 시스템 엔트로피에서 시딩됩니다.

이중 근사_정도

근사도는 휴리스틱 다이얼로 표시되며, ‘ 1.0 ’는 (수치적 허용 오차 범위 내에서) 근사가 없음을, ‘ 0.0 ’는 최대 근사를 의미합니다. 값은 NAN 대상 연산에 대해 보고된 오류율 범위 내에서 근사값 사용이 허용됨을 나타냅니다.

QkTranspilerStageState

struct QkTranspilerStageState

트랜스파일러 단계들이 공유하는 개별 속성을 모아두는 컨테이너. 트랜스파일링이 올바르게 수행되면, 각 단계는 순차적으로 뒤따르는 다른 단계에서 필요로 할 특정 속성을 이 컨테이너에 기록합니다. 컨테이너가 초기화되지 않은 경우, 각 스테이지는 필요할 때마다 새로운 객체를 초기화합니다.

qk_transpile_state_new

void qk_transpile_state_new(QkTranspilerStageState **state)

QkTranspilerStageState 객체에 대한 포인터 생성

안전

가 유효하게 할당된 포인터가 아닌 state 경우, 동작은 정의되지 않습니다.

매개변수

  • state – 포인터를 저장할 할당된 메모리 공간을 가리키는 포인터.

qk_transpile_state_free

void qk_transpile_state_free(QkTranspilerStageState *state)

객체를 QkTranspilerStageState 해제합니다

안전

가 유효하고 null이 아닌 포인터가 QkTranspilerStageState아닐 state 경우 동작이 정의되지 않습니다.

매개변수

  • state – 해제할 상태를 가리키는 포인터

qk_transpile_state_layout

QkTranspileLayout *qk_transpile_state_layout(QkTranspilerStageState *state)

`` 객체에서 QkTranspileLayout QkTranspilerStageState 객체를 가져옵니다.

이 포인터는 객체가 state 소유하고 있으므로 를 qk_transpile_layout_free사용하여 해제해서는 안 됩니다. 대신, 를 사용하여 원래 state 객체를 qk_transpile_state_free해제하십시오.

안전

가 유효하고 null이 아닌 포인터가 QkTranspilerStageState아닐 state 경우 동작이 정의되지 않습니다.

매개변수

  • state – 레이아웃을 가져올 상태를 가리키는 포인터.

리턴

상태가 소유한 객체에 QkTranspileLayout 대한 포인터.

qk_transpile_state_layout_set

void qk_transpile_state_layout_set(QkTranspilerStageState *state, QkTranspileLayout *layout)

객체를 QkTranspileLayout 다른 QkTranspilerStageState 객체의 레이아웃으로 설정합니다.

이 메서드를 호출하면 객체가 QkTranspileLayout 소진되므로, 사용자는 를 호출할 필요가 qk_transpile_layout_free없습니다. 사용자는 여전히. free을 사용하여 해당 공간에 할당된 메모리를 해제해야 합니다.

안전

가 유효하고 null이 아닌 포인터가 QkTranspilerStageState아닐 state 경우 동작이 정의되지 않습니다. 가 유효한 QkTranspileLayout포인터가 아닐 state 경우, 동작은 정의되지 않습니다.

매개변수

  • state – 레이아웃을 설정할 상태를 가리키는 포인터.
  • layout – 사용할 레이아웃에 대한 포인터. 레이아웃을 초기화하기 위한 것일 NULL 수 있습니다.

함수

qk_transpiler_default_options

QkTranspileOptions qk_transpiler_default_options(void)

트랜스파일러 옵션 기본값 생성

이 함수는 기본 설정으로 QkTranspileOptions 현재 기본 설정은 optimization_level 2, 시드 없음, 근사치 없음입니다.

리턴

기본 설정이 적용된 객체 QkTranspileOptions .

qk_transpile_stage_init

QkExitCode qk_transpile_stage_init(QkDag *dag, const QkTarget *target, const QkTranspileOptions *options, QkTranspilerStageState **state, char **error)

서킷에서 트랜스파일러의 사전 설정 초기화 단계를 실행하십시오

Qiskit 트랜스파일러는 주어진 입력 회로를 QPU의 제약 조건에 맞게 재작성하고 실행을 위해 회로를 최적화하는 양자 회로 컴파일러입니다. 이 함수는 트랜스파일러의 첫 번째 단계인 init을 실행합니다. init은 추상 회로 최적화를 수행하고, 다중 큐비트 연산을 1큐비트 및 2큐비트 연산으로 축소합니다. 자세한 내용은 초기화 단계를 참조하십시오.

이 함수는 Qiskit의 C API를 사용하여 구축된 회로에서만 사용해야 합니다. 이것은 C를 통해 노출된 기능만을 사용하여 서킷에 대한 가정을 합니다. 혼합된 Python 과 C 환경에서는 일반적으로 Python 를 통해 트랜스파일러를 호출하는 것이 더 좋습니다.

이 함수는 내부적으로 멀티스레드이며 기본적으로 운영 체제에서 보고한 CPU 수와 동일한 스레드로 스레드 풀을 시작합니다. 여기에는 동시 멀티스레딩이 가능한 CPU의 논리적 코어가 포함됩니다. RAYON_NUM_THREADS 환경 변수를 사용하여 스레드 수를 조정할 수 있습니다. 예를 들어 RAYON_NUM_THREADS=4 을 설정하면 스레드 풀이 4개로 제한됩니다.

안전

, target, 또는 state 가 각각, QkTarget``QkDag, 또는 에 대한 유효하고 dagnull이 아닌 QkTranspileLayout 포인터가 아닌 경우 동작이 정의되지 않습니다. options a는 a QkTranspileOptions 또는 b를 가리키는 유효한 NULL 포인터여야 합니다. error 포인터나 char 에 대한 유효한 NULL포인터여야 합니다. 이 함수에 의해 의 내부 포인터 state 값이 덮어쓰게 됩니다. 가져온 값을 해제해야 하는 경우, 이 함수 내에서는 해제되지 않으므로 반드시 이 함수 외부에서 해제해야 합니다.

매개변수

  • dag – 트랜스파일러를 실행할 서킷에 대한 포인터.
  • 대상 - 회로를 컴파일할 대상에 대한 포인터입니다.
  • 옵션 - 사용자 옵션을 정의하는 옵션 객체에 대한 포인터입니다. 널 포인터인 경우 기본값이 사용됩니다. 기본값에 대한 자세한 내용은 qk_transpile_default_options 을 참조하세요.
  • state – 객체를 QkTranspilerStageState 가리키는 포인터를 가리키는 포인터. 실행이 성공하면(반환 코드 0), 생성된 트랜스파일러의 상태 객체에 대한 포인터가 이 포인터에 할당됩니다.
  • 오류 – 오류 설명이 포함된 NUL로 종료된 문자열을 가리키는 포인터에 대한 포인터. 트랜스파일러가 실패할 경우, 오류 설명이 담긴 문자열에 대한 포인터가 이 포인터에 기록됩니다. 해당 포인터는. qk_str_free로 해제해야 합니다. 이 경우 오류가 기록되지 않을 수 있는 null 포인터일 수 있습니다.

리턴

트랜스파일러의 반환 코드인 QkExitCode_Success 은 성공을 의미하고 다른 모든 값은 오류를 나타냅니다.

qk_transpile_stage_routing

QkExitCode qk_transpile_stage_routing(QkDag *dag, const QkTarget *target, const QkTranspileOptions *options, QkTranspilerStageState *state, char **error)

회로에서 트랜스파일러의 사전 설정 라우팅 단계를 실행하십시오

Qiskit 트랜스파일러는 주어진 입력 회로를 QPU의 제약 조건에 맞게 재작성하고 실행을 위해 회로를 최적화하는 양자 회로 컴파일러입니다. 이 함수는 사전 설정된 패스 관리자의 세 번째 단계인 라우팅을 실행하여 회로 내 모든 명령어를 대상이 지원하는 명령어로 변환합니다. 자세한 내용은 라우팅 단계를 참조하십시오.

이 함수는 Qiskit의 C API를 사용하여 구축된 회로에서만 사용해야 합니다. 이것은 C를 통해 노출된 기능만을 사용하여 서킷에 대한 가정을 합니다. 혼합된 Python 과 C 환경에서는 일반적으로 Python 를 통해 트랜스파일러를 호출하는 것이 더 좋습니다.

이 함수는 내부적으로 멀티스레드이며 기본적으로 운영 체제에서 보고한 CPU 수와 동일한 스레드로 스레드 풀을 시작합니다. 여기에는 동시 멀티스레딩이 가능한 CPU의 논리적 코어가 포함됩니다. RAYON_NUM_THREADS 환경 변수를 사용하여 스레드 수를 조정할 수 있습니다. 예를 들어 RAYON_NUM_THREADS=4 을 설정하면 스레드 풀이 4개로 제한됩니다.

안전

, target, 또는 layout가 각각 유효한 dag``QkTranspileLayout null이 아닌 포인터가 QkTarget 아닐 경우 동작이 QkDag정의되지 않습니다. options 유효한 포인터 a여야 하며, a는 QkTranspileOptions 또는 에 대한 NULL포인터여야 합니다. error 유효한 포인터 또는 char 포인터에 대한 NULL포인터여야 합니다.

매개변수

  • dag – 트랜스파일러를 실행할 서킷에 대한 포인터.
  • 대상 - 회로를 컴파일할 대상에 대한 포인터입니다.
  • 옵션 - 사용자 옵션을 정의하는 옵션 객체에 대한 포인터입니다. 널 포인터인 경우 기본값이 사용됩니다. 기본값에 대한 자세한 내용은 qk_transpile_default_options 을 참조하세요.
  • state – 레이아웃을 포함하는 객체에 QkTranspilerStageState 대한 포인터의 포인터. 일반적으로 이 함수를 호출하기 전에 qk_transpile_stage_layout 를 실행해야 하며, 그러면 초기 레이아웃이 설정된 객체가 QkTranspilerStageState 제공됩니다. 그 함수의 출력 상태를 가져와서 이것의 입력으로 사용하고 싶은 거죠. 레이아웃 객체가 없는 경우(예: 직접 레이아웃 처리를 수행한 경우). 현재 상태의 DAG에 대해 간단한 레이아웃(회로 내 가상 큐비트 0이 대상의 물리적 큐비트 0에 매핑되고, 1은 1로, 2는 2로 매핑되는 방식 등)을 생성하려면 다음 qk_transpile_layout_generate_from_mapping 명령을 실행하면 됩니다. 이렇게 하면 직접 레이아웃을 생성할 때 라우팅 단계를 위한 레이아웃 객체를 생성할 수 있습니다.
  • 오류 – 오류 설명이 포함된 NUL로 종료된 문자열을 가리키는 포인터에 대한 포인터. 트랜스파일러가 실패할 경우, 오류 설명이 담긴 문자열에 대한 포인터가 이 포인터에 기록됩니다. 해당 포인터는. qk_str_free로 해제해야 합니다. 이 경우 오류가 기록되지 않을 수 있는 null 포인터일 수 있습니다.

리턴

트랜스파일러의 반환 코드인 QkExitCode_Success 은 성공을 의미하고 다른 모든 값은 오류를 나타냅니다.

qk_transpile_stage_optimization

QkExitCode qk_transpile_stage_optimization(QkDag *dag, const QkTarget *target, const QkTranspileOptions *options, char **error, QkTranspilerStageState *state)

서킷에서 트랜스파일러의 사전 설정 최적화 단계를 실행합니다

Qiskit 트랜스파일러는 주어진 입력 회로를 QPU의 제약 조건에 맞게 재작성하고 실행을 위해 회로를 최적화하는 양자 회로 컴파일러입니다. 이 함수는 사전 설정된 패스 관리자의 네 번째 단계인 최적화를 실행합니다. 이 최적화는 회로가 물리적 회로로 변환된 후 주어진 목표에 맞게 회로를 최적화합니다. 자세한 내용은 최적화 단계를 참조하십시오.

이 함수는 Qiskit의 C API를 사용하여 구축된 회로에서만 사용해야 합니다. 이것은 C를 통해 노출된 기능만을 사용하여 서킷에 대한 가정을 합니다. 혼합된 Python 과 C 환경에서는 일반적으로 Python 를 통해 트랜스파일러를 호출하는 것이 더 좋습니다.

이 함수는 내부적으로 멀티스레드이며 기본적으로 운영 체제에서 보고한 CPU 수와 동일한 스레드로 스레드 풀을 시작합니다. 여기에는 동시 멀티스레딩이 가능한 CPU의 논리적 코어가 포함됩니다. RAYON_NUM_THREADS 환경 변수를 사용하여 스레드 수를 조정할 수 있습니다. 예를 들어 RAYON_NUM_THREADS=4 을 설정하면 스레드 풀이 4개로 제한됩니다.

안전

target 가 유효한 null이 아닌 포인터가 dag 아니거나, 각각 에 대한 QkTarget 포인터가 아닌 경우 동작은 QkDag정의되지 않습니다. options 유효한 포인터 a여야 하며, a는 QkTranspileOptions 또는 에 대한 NULL포인터여야 합니다. error 유효한 포인터 또는 char 포인터에 대한 NULL포인터여야 합니다.

매개변수

  • dag – 트랜스파일러를 실행할 서킷에 대한 포인터.
  • 대상 - 회로를 컴파일할 대상에 대한 포인터입니다.
  • 옵션 - 사용자 옵션을 정의하는 옵션 객체에 대한 포인터입니다. 널 포인터인 경우 기본값이 사용됩니다. 기본값에 대한 자세한 내용은 qk_transpile_default_options 을 참조하세요.
  • 오류 – 오류 설명이 포함된 NUL로 종료된 문자열을 가리키는 포인터에 대한 포인터. 트랜스파일러가 실패할 경우, 오류 설명이 담긴 문자열에 대한 포인터가 이 포인터에 기록됩니다. 해당 포인터는. qk_str_free로 해제해야 합니다. 이 경우 오류가 기록되지 않을 수 있는 null 포인터일 수 있습니다.
  • state – 레이아웃을 포함하는 객체에 QkTranspilerStageState 대한 포인터. 일반적으로 이 함수를 qk_transpile_stage_layout 호출하기 전에 를 실행해야 하며, 이를 통해 원하는 초기 레이아웃이 설정된 객체가 QkTranspileLayout 생성됩니다. 그런 다음 해당 함수의 출력 레이아웃을 가져와 이 함수의 입력으로 사용해야 합니다. 레이아웃 객체가 없는 경우(예: 직접 레이아웃 처리를 수행한 경우). 현재 상태의 DAG에 대해 간단한 레이아웃(회로 내 가상 큐비트 0이 대상의 물리적 큐비트 0에 매핑되고, 1은 1로, 2는 2로 매핑되는 방식 등)을 생성하려면 다음 qk_transpile_layout_generate_from_mapping 명령을 실행하면 됩니다. 이렇게 하면 직접 레이아웃을 생성할 경우 최적화 단계를 위한 레이아웃 객체를 생성할 수 있습니다.

리턴

트랜스파일러의 반환 코드인 QkExitCode_Success 은 성공을 의미하고 다른 모든 값은 오류를 나타냅니다.

qk_transpile_stage_translation

QkExitCode qk_transpile_stage_translation(QkDag *dag, const QkTarget *target, const QkTranspileOptions *options, char **error)

서킷에서 트랜스파일러의 사전 설정 번역 단계를 실행하십시오

Qiskit 트랜스파일러는 주어진 입력 회로를 QPU의 제약 조건에 맞게 재작성하고 실행을 위해 회로를 최적화하는 양자 회로 컴파일러입니다. 이 함수는 사전 설정된 패스 관리자의 네 번째 단계인 번역을 실행하며, 회로 내 모든 명령어를 대상이 지원하는 명령어로 변환합니다. 자세한 내용은 번역 단계를 참조하십시오.

이 함수는 Qiskit의 C API를 사용하여 구축된 회로에서만 사용해야 합니다. 이것은 C를 통해 노출된 기능만을 사용하여 서킷에 대한 가정을 합니다. 혼합된 Python 과 C 환경에서는 일반적으로 Python 를 통해 트랜스파일러를 호출하는 것이 더 좋습니다.

이 함수는 내부적으로 멀티스레드이며 기본적으로 운영 체제에서 보고한 CPU 수와 동일한 스레드로 스레드 풀을 시작합니다. 여기에는 동시 멀티스레딩이 가능한 CPU의 논리적 코어가 포함됩니다. RAYON_NUM_THREADS 환경 변수를 사용하여 스레드 수를 조정할 수 있습니다. 예를 들어 RAYON_NUM_THREADS=4 을 설정하면 스레드 풀이 4개로 제한됩니다.

안전

target 가 각각 유효한 null이 dag 아닌 포인터가 아닐 QkTarget 경우 동작이 QkDag정의되지 않습니다. options 유효한 포인터 a여야 하며, a는 QkTranspileOptions 또는 에 대한 NULL포인터여야 합니다. error 유효한 포인터 또는 char 포인터에 대한 NULL포인터여야 합니다.

매개변수

  • dag – 트랜스파일러를 실행할 서킷에 대한 포인터.
  • 대상 - 회로를 컴파일할 대상에 대한 포인터입니다.
  • 옵션 - 사용자 옵션을 정의하는 옵션 객체에 대한 포인터입니다. 널 포인터인 경우 기본값이 사용됩니다. 기본값에 대한 자세한 내용은 qk_transpile_default_options 을 참조하세요.
  • 오류 – 오류 설명이 포함된 NUL로 종료된 문자열을 가리키는 포인터에 대한 포인터. 트랜스파일러가 실패할 경우, 오류 설명이 담긴 문자열에 대한 포인터가 이 포인터에 기록됩니다. 해당 포인터는. qk_str_free로 해제해야 합니다. 이 경우 오류가 기록되지 않을 수 있는 null 포인터일 수 있습니다.

리턴

트랜스파일러의 반환 코드인 QkExitCode_Success 은 성공을 의미하고 다른 모든 값은 오류를 나타냅니다.

qk_transpile_stage_layout

QkExitCode qk_transpile_stage_layout(QkDag *dag, const QkTarget *target, const QkTranspileOptions *options, QkTranspilerStageState **state, char **error)

회로에서 트랜스파일러의 사전 설정 레이아웃 단계를 실행하십시오

Qiskit 트랜스파일러는 주어진 입력 회로를 QPU의 제약 조건에 맞게 재작성하고 실행을 위해 회로를 최적화하는 양자 회로 컴파일러입니다. 이 함수는 사전 설정된 패스 매니저 레이아웃의 두 번째 단계를 실행합니다. 이 단계는 가상 큐비트를 물리적 큐비트에 초기 매핑하는 작업을 수행하며, 명시적 보조 큐비트를 포함하도록 회로를 확장하는 작업도 포함합니다. 자세한 내용은 레이아웃 단계를 참조하십시오.

이 함수는 Qiskit의 C API를 사용하여 구축된 회로에서만 사용해야 합니다. 이것은 C를 통해 노출된 기능만을 사용하여 서킷에 대한 가정을 합니다. 혼합된 Python 과 C 환경에서는 일반적으로 Python 를 통해 트랜스파일러를 호출하는 것이 더 좋습니다.

이 함수는 내부적으로 멀티스레드이며 기본적으로 운영 체제에서 보고한 CPU 수와 동일한 스레드로 스레드 풀을 시작합니다. 여기에는 동시 멀티스레딩이 가능한 CPU의 논리적 코어가 포함됩니다. RAYON_NUM_THREADS 환경 변수를 사용하여 스레드 수를 조정할 수 있습니다. 예를 들어 RAYON_NUM_THREADS=4 을 설정하면 스레드 풀이 4개로 제한됩니다.

안전

행동은 또는 target가 각각 유효한 QkDagnull이 dag 아닌 QkTarget 포인터 또는 가 아닐 경우 정의되지 않습니다. 또한 가 유효한 정렬된 포인터 포인터 또는 포인터 QkTranspileLayout NULL 포인터가 아닐 layout 경우 동작이 정의되지 않습니다. options 유효한 포인터 a여야 하며, a는 QkTranspileOptions 또는 에 대한 NULL포인터여야 합니다. error 유효한 포인터 또는 char 포인터에 대한 NULL포인터여야 합니다.

매개변수

  • dag – 트랜스파일러를 실행할 서킷에 대한 포인터.
  • 대상 - 회로를 컴파일할 대상에 대한 포인터입니다.
  • 옵션 - 사용자 옵션을 정의하는 옵션 객체에 대한 포인터입니다. 널 포인터인 경우 기본값이 사용됩니다. 기본값에 대한 자세한 내용은 qk_transpile_default_options 을 참조하세요.
  • state – 객체를 QkTranspilerStageState 가리키는 포인터를 가리키는 포인터. 실행이 성공하면(반환 코드 0), 트랜스파일러가 생성한 레이아웃 객체가 이 포인터의 상태 객체에 기록됩니다. 기존 상태 객체나 레이아웃 객체가 없는 경우, 이에 대한 내부 포인터는 null일 수 있습니다. 일반적으로 를 실행할 때는 해당 함수의 출력 상태를 가져와 qk_transpile_stage_init 그 레이아웃을 이 함수의 입력으로 사용합니다. 하지만 레이아웃이 없다면 내부 포인터는 null이 될 수 있으며, 레이아웃이 포함된 새로운 객체가 QkTranspilerStageState할당되고, 그 포인터가 여기서 레이아웃의 내부 값으로 설정됩니다.
  • 오류 – 오류 설명이 포함된 NUL로 종료된 문자열을 가리키는 포인터에 대한 포인터. 트랜스파일러가 실패할 경우, 오류 설명이 담긴 문자열에 대한 포인터가 이 포인터에 기록됩니다. 해당 포인터는. qk_str_free로 해제해야 합니다. 이 경우 오류가 기록되지 않을 수 있는 null 포인터일 수 있습니다.

리턴

트랜스파일러의 반환 코드인 QkExitCode_Success 은 성공을 의미하고 다른 모든 값은 오류를 나타냅니다.

qk_transpile

QkExitCode qk_transpile(const QkCircuit *qc, const QkTarget *target, const QkTranspileOptions *options, QkTranspileResult *result, char **error)

단일 회로를 트랜스파일합니다.

키스킷 트랜스파일러는 주어진 입력 회로를 QPU의 제약 조건에 맞게 재작성하고 실행을 위해 회로를 최적화하는 양자 회로 컴파일러입니다. 이 함수는 키스킷의 C API를 사용하여 구성한 회로에서만 사용해야 합니다. C를 통해 노출된 기능만을 사용하여 회로를 가정하며, Python 와 C가 혼합된 환경인 경우 일반적으로 Python 를 통해 트랜스파일러를 호출하는 것이 좋습니다.

이 함수는 내부적으로 멀티스레드이며 기본적으로 운영 체제에서 보고한 CPU 수와 동일한 스레드로 스레드 풀을 시작합니다. 여기에는 동시 멀티스레딩이 가능한 CPU의 논리적 코어가 포함됩니다. RAYON_NUM_THREADS 환경 변수를 사용하여 스레드 수를 조정할 수 있습니다. 예를 들어 RAYON_NUM_THREADS=4 을 설정하면 스레드 풀이 4개로 제한됩니다.

안전

, target, 또는 resultQkTranspileResult 각각 유효한 circuitnull이 아닌 포인터가 아닐 경우 동작이 QkCircuit``QkTarget정의되지 않습니다. options 유효한 포인터 a여야 하며, a는 QkTranspileOptions 또는 에 대한 NULL포인터여야 합니다. error 유효한 포인터 또는 char 포인터에 대한 NULL포인터여야 합니다.

매개변수

  • qc - 트랜스파일러를 실행할 회로에 대한 포인터입니다.
  • 대상 - 회로를 컴파일할 대상에 대한 포인터입니다.
  • 옵션 - 사용자 옵션을 정의하는 옵션 객체에 대한 포인터입니다. 널 포인터인 경우 기본값이 사용됩니다. 기본값에 대한 자세한 내용은 qk_transpile_default_options 을 참조하세요.
  • 결과 - 트랜스파일러 결과의 메모리 위치에 대한 포인터입니다. 실행에 성공하면(반환 코드 0) 트랜스파일러의 출력이 포인터에 기록됩니다. 결과 구조체의 멤버는 호출자가 소유하며 각 무료 함수를 사용하여 멤버를 해제할 책임은 호출자에게 있습니다.
  • 오류 – 오류 설명이 포함된 NUL로 종료된 문자열을 가리키는 포인터에 대한 포인터. 트랜스파일러가 실패할 경우, 오류 설명이 담긴 문자열에 대한 포인터가 이 포인터에 기록됩니다. 해당 포인터는. qk_str_free로 해제해야 합니다. 이 경우 오류가 기록되지 않을 수 있는 null 포인터일 수 있습니다.

리턴

트랜스파일러의 반환 코드인 QkExitCode_Success 은 성공을 의미하고 다른 모든 값은 오류를 나타냅니다.

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