QkObsTerm
Esse é um grupo de funções para interagir com uma instância opaca (espaço Rust) do site SparseTerm.
Tipos de dados
QkObsTerm
struct QkObsTerm
Um termo em um QkObs.
Ele contém o coeficiente (coeff), o número de qubits do observável (num_qubits) e os ponteiros para as matrizes bit_terms e indices , que têm o comprimento len. É responsabilidade do usuário que os dados sejam coerentes; consulte também a seção abaixo sobre segurança.
Segurança
bit_termsdeve ser um ponteiro alinhado e não nulo paralenelementos do tipoQkBitTerm.indicesdeve ser um ponteiro alinhado e não nulo paralenelementos do tipouint32_t.
QkComplex64 coeficiente
O coeficiente do termo observável.
tamanho_t comprimento
Comprimento das matrizes bit_terms e indices .
QkBitTerm *termos-bit
Um ponteiro alinhado para len elementos do tipo QkBitTerm. Isso pode ocorrer NULL se e somente se len for 0.
uint32_t *índices
Um ponteiro alinhado para len elementos do tipo uint32_t. Isso pode ocorrer NULL se e somente se len for 0.
uint32_t número de qubits
O número de qubits em que o termo observável é definido.
Funções
qk_obsterm_str
char *qk_obsterm_str(const QkObsTerm *term)
Retorna uma representação de cadeia de caracteres do termo esparso.
Exemplo
QkObs *obs = qk_obs_identity(100);
QkObsTerm term;
qk_obs_term(obs, 0, &term);
char *string = qk_obsterm_str(&term);
qk_str_free(string);Segurança
O comportamento é indefinido term não é um ponteiro válido e não nulo para um QkObsTerm.
A string não deve ser liberada com o C free normal; você deve usar qk_str_free para liberar a memória consumida pela String. Não chamar o endereço qk_str_free resultará em um vazamento de memória.
Não altere o comprimento da cadeia de caracteres depois que ela for retornada, embora os valores possam ser alterados.
Parâmetros
- term - Um ponteiro para o termo.
Retorna
O código de saída da função. Acesse >0 se a leitura do termo falhar.