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_termsdeve essere un puntatore allineato non nullo alenelementi di tipoQkBitTerm.indicesdeve essere un puntatore allineato non nullo alenelementi di tipouint32_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