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_termsdebe ser un puntero no nulo y alineado alenelementos de tipoQkBitTerm.indicesdebe ser un puntero no nulo y alineado alenelementos de tipouint32_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ó.