Skip to main content
IBM Quantum Platform

QkObsTerm

Se trata de un grupo de funciones para interactuar con una instancia opaca (espacio Rust) SparseTerm.


Tipos de datos

QkObsTerm

struct QkObsTerm

Un término en QkObs.

Contiene el coeficiente (coeff), el número de qubits del observable (num_qubits) y punteros a las matrices bit_terms y indices , que tienen la longitud len. Es responsabilidad del usuario que los datos sean coherentes, véase también la sección siguiente sobre seguridad.

Seguridad

  • bit_terms debe ser un puntero no nulo y alineado a len elementos de tipo QkBitTerm.
  • indices debe ser un puntero no nulo y alineado a len elementos de tipo uint32_t.

QkComplex64 coeficiente

El coeficiente del término observable.

tamaño_t longitud

Longitud de las matrices bit_terms y indices .

QkBitTerm *términos_bit

Un puntero alineado a len elementos de tipo QkBitTerm. Esto puede ser NULL así solo si len es 0.

uint32_t *índices

Un puntero alineado a len elementos de tipo uint32_t. Esto puede ser NULL así solo si len es 0.

uint32_t número_de_qubits

El número de qubits en los que se define el término observable.


Funciones

qk_obsterm_str

char *qk_obsterm_str(const QkObsTerm *term)

Devuelve una representación de cadena del término disperso.

Ejemplo

QkObs *obs = qk_obs_identity(100);
QkObsTerm term;
qk_obs_term(obs, 0, &term);
char *string = qk_obsterm_str(&term);
qk_str_free(string);

Seguridad

El comportamiento es indefinido term no es un puntero válido no nulo a QkObsTerm.

La cadena no debe ser liberada con el free normal de C, debes usar qk_str_free para liberar la memoria consumida por la Cadena. Si no se llama a qk_str_free se producirá una fuga de memoria.

No cambiar la longitud de la cadena después de que se devuelve, aunque los valores pueden ser mutados.

Parámetros

  • término - Un puntero al término.

Devuelve

El código de salida de la función. Esto es >0 si la lectura del término falló.

¿Le ha resultado útil esta página?
Informe de un error, de una errata o solicite contenido en GitHub.