정렬 함수
qf_ferm_op_canonical_order
QfFermionOperator *qf_ferm_op_canonical_order(const QfFermionOperator *op)
각 항이 표준 순서로 배열된 페르미온 연산자의 복사본을 반환합니다.
항들은 계수가 아닌, 각 항의 구조(그 항이 나타내는 연산자 문자열)에만 의존하는 표준 순서대로 정렬됩니다. 따라서 연산자가 어떻게 조합되었는지에 관계없이, 주어진 항의 집합에 대해서는 그 순서가 결정론적이다. 항 자체는 그대로 유지됩니다. 이는 단지 항의 순서만 바꾸는 것이지, 연산자를 단순화하거나 정규 순서로 바꾸는 것은 아닙니다.
1QfFermionOperator *op = qf_ferm_op_zero();
2bool actions[2] = {true, false};
3uint32_t modes_a[2] = {1, 0};
4QkComplex64 coeff_a = {1.0, 0.0};
5qf_ferm_op_add_term(op, 2, actions, modes_a, &coeff_a);
6uint32_t modes_b[2] = {0, 1};
7QkComplex64 coeff_b = {2.0, 0.0};
8qf_ferm_op_add_term(op, 2, actions, modes_b, &coeff_b);
9
10QfFermionOperator *ordered = qf_ferm_op_canonical_order(op);모든 그룹 인덱스(참조 qf_ferm_op_get_groups())는 보존됩니다. 그룹 인덱스는 항의 순서와 무관한 항별 태그이므로, 각 항은 이동할 때 해당 그룹 인덱스를 그대로 유지합니다. 같은 그룹에 속한 용어들은 그 이후로는 더 이상 연속적으로 나타나지 않습니다. 입력에 그룹이 없다면, 결과에도 그룹이 없습니다.
매개변수
- op – 순서가 재조정될 연산자의 항을 가리키는 포인터.
리턴
생성된 연산자에 대한 포인터.
qf_maj_op_canonical_order
QfMajoranaOperator *qf_maj_op_canonical_order(const QfMajoranaOperator *op)
항들이 표준 순서로 정렬된 마요라나 연산자의 복사본을 반환합니다.
항들은 계수가 아닌, 각 항의 구조(그 항이 나타내는 연산자 문자열)에만 의존하는 표준 순서대로 정렬됩니다. 따라서 연산자가 어떻게 조합되었는지에 관계없이, 주어진 항의 집합에 대해서는 그 순서가 결정론적이다. 항 자체는 그대로 유지됩니다. 이는 단지 항의 순서만 바꾸는 것이지, 연산자를 단순화하는 것은 아닙니다.
1QfMajoranaOperator *op = qf_maj_op_zero();
2uint32_t modes_a[2] = {1, 0};
3QkComplex64 coeff_a = {1.0, 0.0};
4qf_maj_op_add_term(op, 2, modes_a, &coeff_a);
5uint32_t modes_b[2] = {0, 1};
6QkComplex64 coeff_b = {2.0, 0.0};
7qf_maj_op_add_term(op, 2, modes_b, &coeff_b);
8
9QfMajoranaOperator *ordered = qf_maj_op_canonical_order(op);모든 그룹 인덱스(참조 qf_maj_op_get_groups())는 보존됩니다. 그룹 인덱스는 항의 순서와 무관한 항별 태그이므로, 각 항은 이동할 때 해당 그룹 인덱스를 그대로 유지합니다. 같은 그룹에 속한 용어들은 그 이후로는 더 이상 연속적으로 나타나지 않습니다. 입력에 그룹이 없다면, 결과에도 그룹이 없습니다.
매개변수
- op – 순서가 재조정될 연산자의 항을 가리키는 포인터.
리턴
생성된 연산자에 대한 포인터.