Skip to main content
IBM Quantum Platform

QkObsTerm

Si tratta di un gruppo di funzioni per interagire con un'istanza opaca (spazio Rust) di SparseTerm.


Tipi di dati

QkObsTerm

struct QkObsTerm

Un termine in un sito QkObs.

Questo contiene il coefficiente (coeff), il numero di qubit dell'osservabile (num_qubits) e i puntatori agli array bit_terms e indices , che hanno lunghezza len. È responsabilità dell'utente garantire la coerenza dei dati, vedi anche la sezione sulla sicurezza.

Sicurezza

  • bit_terms deve essere un puntatore allineato non nullo a len elementi di tipo QkBitTerm.
  • indices deve essere un puntatore allineato non nullo a len elementi di tipo uint32_t.

QkComplex64 coefficiente

Il coefficiente del termine osservabile.

dimensione_t lunghezza

Lunghezza degli array bit_terms e indices .

QkBitTerm *bit_terms

Un puntatore allineato agli len elementi di tipo QkBitTerm. Ciò è NULL possibile solo se len è pari a 0.

uint32_t *indici

Un puntatore allineato agli len elementi di tipo uint32_t. Ciò è NULL possibile solo se len è pari a 0.

uint32_t numero_di_qubit

Il numero di qubit su cui è definito il termine osservabile.


Funzioni

qk_obsterm_str

char *qk_obsterm_str(const QkObsTerm *term)

Restituisce una rappresentazione in stringa del termine sparse.

Esempio

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

Sicurezza

Il comportamento è indefinito term non è un puntatore non nullo valido a QkObsTerm.

La stringa non deve essere liberata con il normale free del C, ma si deve usare qk_str_free per liberare la memoria consumata dalla stringa. La mancata chiamata a qk_str_free provoca una perdita di memoria.

Non modifica la lunghezza della stringa dopo che è stata restituita, anche se i valori possono essere mutati.

Parametri

  • termine - Un puntatore al termine.

Risultati

Un puntatore a un array di caratteri terminato da NUL contenente la rappresentazione stringa di term

Questa pagina è stata utile?
Segnala un bug, un errore di battitura o richiedi contenuti su GitHub.