Skip to main content
IBM Quantum Platform

QkParam

Indica un parametro di circuito che può assumere valori reali o simbolici.

Sebbene le funzionalità di un QkParam all'interno di un circuito siano attualmente limitate, l'utente è in grado di eseguire operazioni simili a quelle presenti in Parameter.


Funzioni

qk_param_new_symbol

QkParam *qk_param_new_symbol(const char *name)

Crea un nuovo QkParam che rappresenti un simbolo non associato.

Esempio

QkParam *a = qk_param_new_symbol("a");

Sicurezza

Il name parametro deve essere un puntatore a un'area di memoria che contenga un terminatore NUL valido alla fine della stringa. Deve inoltre essere valido per la lettura dei byte fino al terminatore NUL compreso.

Parametri

  • nome – Il nome del simbolo. Questo campo non può essere vuoto.

Risultati

QkParamUn puntatore al file. creato

qk_param_zero

QkParam *qk_param_zero(void)

Crea un nuovo QkParam oggetto con valore zero.

Il valore QkParam restituito da questa funzione può essere utilizzato per memorizzare il risultato di operazioni binarie o unarie.

Esempio

QkParam *t = qk_param_zero();
QkParam *a = qk_param_new_symbol("a");
QkParam *b = qk_param_new_symbol("b");
qk_param_add(t, a, b);

Risultati

QkParamUn puntatore al file. creato

qk_param_free

void qk_param_free(QkParam *param)

Libera il QkParam.

Esempio

QkParam *a = qk_param_new_symbol("a");
qk_param_free(a);

Sicurezza

Il comportamento è indefinito se param non è né nullo né un puntatore valido a un QkParam.

Parametri

  • param – Un puntatore alla memoria QkParam da liberare.

qk_param_from_double

QkParam *qk_param_from_double(double value)

Crea un nuovo QkParam partendo da un double.

Esempio

QkParam *r = qk_param_from_double(2.5);

Parametri

  • valore – A double per inizializzare il QkParam.

Risultati

QkParamUn puntatore al file. creato

qk_param_from_complex

QkParam *qk_param_from_complex(QkComplex64 value)

Costruisci un nuovo QkParam numero a partire da un numero complesso dato da QkComplex64.

Esempio

QkComplex64 c = {1.0, 2.0};  // 1 + 2i
QkParam *param = qk_param_from_complex(c);

Parametri

  • valore – A QkComplex64 per inizializzare il QkParam.

Risultati

QkParamUn puntatore al file. creato

qk_param_copy

QkParam *qk_param_copy(const QkParam *param)

Copia un QkParam.

Esempio

QkParam *a = qk_param_new_symbol("a");
QkParam *b = qk_param_copy(a);

Sicurezza

QkParamIl comportamento è indefinito se param non è un puntatore valido a un valore non nullo.

Parametri

  • param – Il dato QkParam da copiare.

Risultati

QkParamUn puntatore al file. creato

qk_param_str

char *qk_param_str(const QkParam *param)

Ottieni una rappresentazione stringa del QkParam.

Esempio

QkParam *a = qk_param_new_symbol("a");
char* str = qk_param_str(a);
printf(str);
qk_str_free(str);
qk_param_free(a);

Sicurezza

QkParamIl comportamento è indefinito se param non è un puntatore valido a un valore non nullo.

La stringa non deve essere liberata con la normale funzione free del C; per liberare la memoria occupata dalla stringa è necessario utilizzare qk_str_free Se non lo si chiama qk_str_free , si verificherà una perdita di memoria.

Non modificare la lunghezza della stringa dopo che è stata restituita (scrivendo un byte NUL in un punto qualsiasi della stringa o rimuovendo quello finale), anche se i valori possono essere modificati.

Parametri

  • QkParamparam – Un puntatore al.

Risultati

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

qk_param_add

QkExitCode qk_param_add(QkParam *out, const QkParam *lhs, const QkParam *rhs)

QkParamAggiungi due.

Esempio

QkParam *a = qk_param_new_symbol("a");
QkParam *b = qk_param_new_symbol("b");
QkParam *out = qk_param_zero();
qk_param_add(out, a, b);

Sicurezza

Il comportamento è indefinito se uno qualsiasi tra out, lhs o rhs non è un puntatore valido e non nullo a un QkParam.

Parametri

  • out – Un puntatore alla variabile QkParam in cui memorizzare il risultato di lhs + rhs.
  • QkParamlhs – Un indicatore del lato sinistro.
  • QkParamrhs – Un puntatore al lato destro.

Risultati

Un codice di uscita che indica QkExitCode_Success il successo in caso di esito positivo e un errore in caso contrario.

qk_param_sub

QkExitCode qk_param_sub(QkParam *out, const QkParam *lhs, const QkParam *rhs)

QkParamSottrai due.

Esempio

QkParam *a = qk_param_new_symbol("a");
QkParam *b = qk_param_new_symbol("b");
QkParam *out = qk_param_zero();
qk_param_sub(out, a, b);

Sicurezza

Il comportamento è indefinito se uno qualsiasi tra out, lhs o rhs non è un puntatore valido e non nullo a un QkParam.

Parametri

  • out – Un puntatore a un QkParam in cui memorizzare il risultato di lhs - rhs.
  • QkParamlhs – Un indicatore del lato sinistro.
  • QkParamrhs – Un puntatore al lato destro.

Risultati

Un codice di uscita che indica QkExitCode_Success il successo in caso di esito positivo e un errore in caso contrario.

qk_param_mul

QkExitCode qk_param_mul(QkParam *out, const QkParam *lhs, const QkParam *rhs)

QkParamMoltiplica per due.

Esempio

QkParam *a = qk_param_new_symbol("a");
QkParam *b = qk_param_new_symbol("b");
QkParam *out = qk_param_zero();
qk_param_mul(out, a, b);

Sicurezza

Il comportamento è indefinito se uno qualsiasi tra out, lhs o rhs non è un puntatore valido e non nullo a un QkParam.

Parametri

  • out – Un puntatore a un QkParam in cui memorizzare il risultato di lhs * rhs.
  • QkParamlhs – Un indicatore del lato sinistro.
  • QkParamrhs – Un puntatore al lato destro.

Risultati

Un codice di uscita che indica QkExitCode_Success il successo in caso di esito positivo e un errore in caso contrario.

qk_param_div

QkExitCode qk_param_div(QkParam *out, const QkParam *num, const QkParam *den)

Dividi a QkParam per un altro numero.

Esempio

QkParam *a = qk_param_new_symbol("a");
QkParam *b = qk_param_new_symbol("b");
QkParam *out = qk_param_zero();
qk_param_div(out, a, b);

Sicurezza

Il comportamento è indefinito se uno qualsiasi tra out, num o den non è un puntatore valido e non nullo a un QkParam.

Parametri

  • out – Un puntatore a un QkParam in cui memorizzare il risultato di lhs / rhs.
  • QkParamnum – Un puntatore al numeratore.
  • QkParamden – Un puntatore al denominatore.

Risultati

Un codice di uscita che indica QkExitCode_Success il successo in caso di esito positivo e un errore in caso contrario.

qk_param_pow

QkExitCode qk_param_pow(QkParam *out, const QkParam *base, const QkParam *pow)

Elevare un numero QkParam a una potenza.

Esempio

QkParam *base = qk_param_new_symbol("a");
QkParam *pow = qk_param_new_symbol("b");
QkParam *out = qk_param_zero();
qk_param_pow(out, base, pow);

Sicurezza

Il comportamento è indefinito se uno qualsiasi tra out, base o pow non è un puntatore valido e non nullo a un QkParam.

Parametri

  • out – Un puntatore a un QkParam in cui memorizzare il risultato di lhs ** rhs.
  • QkParambase – Un puntatore alla parte sinistra.
  • QkParampow – Un puntatore alla parte destra.

Risultati

Un codice di uscita che indica QkExitCode_Success il successo in caso di esito positivo e un errore in caso contrario.

qk_param_sin

QkExitCode qk_param_sin(QkParam *out, const QkParam *src)

QkParamCalcola il seno di a.

Esempio

QkParam *a = qk_param_new_symbol("a");
QkParam *out = qk_param_zero();
qk_param_sin(out, a);

Sicurezza

Il comportamento è indefinito se uno qualsiasi dei due out (o src ) non è un puntatore valido e non nullo a un QkParam.

Parametri

  • sin(src)out – Un puntatore alla variabile QkParam in cui memorizzare il risultato.
  • src – Un puntatore all'elemento QkParam a cui applicare la funzione seno.

Risultati

Un codice di uscita che indica QkExitCode_Success il successo in caso di esito positivo e un errore in caso contrario.

qk_param_cos

QkExitCode qk_param_cos(QkParam *out, const QkParam *src)

QkParamCalcola il coseno di a.

Esempio

QkParam *a = qk_param_new_symbol("a");
QkParam *out = qk_param_zero();
qk_param_cos(out, a);

Sicurezza

Il comportamento è indefinito se uno qualsiasi dei due out (o src ) non è un puntatore valido e non nullo a un QkParam.

Parametri

  • cos(src)out – Un puntatore alla variabile QkParam in cui memorizzare il risultato.
  • src – Un puntatore all'elemento QkParam a cui applicare la funzione coseno.

Risultati

Un codice di uscita che indica QkExitCode_Success il successo in caso di esito positivo e un errore in caso contrario.

qk_param_tan

QkExitCode qk_param_tan(QkParam *out, const QkParam *src)

QkParamCalcola la tangente di a.

Esempio

QkParam *a = qk_param_new_symbol("a");
QkParam *out = qk_param_zero();
qk_param_tan(out, a);

Sicurezza

Il comportamento è indefinito se uno qualsiasi dei due out (o src ) non è un puntatore valido e non nullo a un QkParam.

Parametri

  • tan(src)out – Un puntatore alla variabile QkParam in cui memorizzare il risultato.
  • src – Un puntatore all'oggetto QkParam a cui applicare la tangente.

Risultati

Un codice di uscita che indica QkExitCode_Success il successo in caso di esito positivo e un errore in caso contrario.

qk_param_asin

QkExitCode qk_param_asin(QkParam *out, const QkParam *src)

Calcola l'arcseno di un QkParam.

Esempio

QkParam *a = qk_param_new_symbol("a");
QkParam *out = qk_param_zero();
qk_param_asin(out, a);

Sicurezza

Il comportamento è indefinito se uno qualsiasi dei due out (o src ) non è un puntatore valido e non nullo a un QkParam.

Parametri

  • asin(src)out – Un puntatore alla variabile QkParam in cui memorizzare il risultato.
  • src – Un puntatore all'elemento QkParam a cui applicare la funzione arcsin.

Risultati

Un codice di uscita che indica QkExitCode_Success il successo in caso di esito positivo e un errore in caso contrario.

qk_param_acos

QkExitCode qk_param_acos(QkParam *out, const QkParam *src)

QkParamCalcola l'arcocoseno di a.

Esempio

QkParam *a = qk_param_new_symbol("a");
QkParam *out = qk_param_zero();
qk_param_acos(out, a);

Sicurezza

Il comportamento è indefinito se uno qualsiasi dei due out (o src ) non è un puntatore valido e non nullo a un QkParam.

Parametri

  • acos(src)out – Un puntatore alla variabile QkParam in cui memorizzare il risultato.
  • src – Un puntatore all'elemento QkParam a cui applicare la funzione coseno.

Risultati

Un codice di uscita che indica QkExitCode_Success il successo in caso di esito positivo e un errore in caso contrario.

qk_param_atan

QkExitCode qk_param_atan(QkParam *out, const QkParam *src)

QkParamCalcola l'arcotangente di a.

Esempio

QkParam *a = qk_param_new_symbol("a");
QkParam *out = qk_param_zero();
qk_param_atan(out, a);

Sicurezza

Il comportamento è indefinito se uno qualsiasi dei due out (o src ) non è un puntatore valido e non nullo a un QkParam.

Parametri

  • atan(src)out – Un puntatore alla variabile QkParam in cui memorizzare il risultato.
  • src – Un puntatore all'elemento QkParam a cui applicare l'arcotangente.

Risultati

Un codice di uscita che indica QkExitCode_Success il successo in caso di esito positivo e un errore in caso contrario.

qk_param_log

QkExitCode qk_param_log(QkParam *out, const QkParam *src)

QkParamCalcola il logaritmo naturale di a.

Esempio

QkParam *a = qk_param_new_symbol("a");
QkParam *out = qk_param_zero();
qk_param_log(out, a);

Sicurezza

Il comportamento è indefinito se uno qualsiasi dei due out (o src ) non è un puntatore valido e non nullo a un QkParam.

Parametri

  • log(src)out – Un puntatore alla variabile QkParam in cui memorizzare il risultato.
  • src – Un puntatore all'elemento QkParam a cui applicare il logaritmo.

Risultati

Un codice di uscita che indica QkExitCode_Success il successo in caso di esito positivo e un errore in caso contrario.

qk_param_exp

QkExitCode qk_param_exp(QkParam *out, const QkParam *src)

QkParamApplica la funzione esponenziale a a.

Esempio

QkParam *a = qk_param_new_symbol("a");
QkParam *out = qk_param_zero();
qk_param_exp(out, a);

Sicurezza

Il comportamento è indefinito se uno qualsiasi dei due out (o src ) non è un puntatore valido e non nullo a un QkParam.

Parametri

  • exp(src)out – Un puntatore alla variabile QkParam in cui memorizzare il risultato.
  • src – Un puntatore al valore QkParam di cui calcolare l'esponenziale.

Risultati

Un codice di uscita che indica QkExitCode_Success il successo in caso di esito positivo e un errore in caso contrario.

qk_param_abs

QkExitCode qk_param_abs(QkParam *out, const QkParam *src)

QkParamCalcola il valore assoluto di a.

Esempio

QkParam *a = qk_param_new_symbol("a");
QkParam *out = qk_param_zero();
qk_param_abs(out, a);

Sicurezza

Il comportamento è indefinito se uno qualsiasi dei due out (o src ) non è un puntatore valido e non nullo a un QkParam.

Parametri

  • out – Un puntatore all' QkParam e in cui memorizzare il risultato.
  • src – Un puntatore all' QkParam.

Risultati

Un codice di uscita che indica QkExitCode_Success il successo in caso di esito positivo e un errore in caso contrario.

qk_param_sign

QkExitCode qk_param_sign(QkParam *out, const QkParam *src)

Ottieni il segno di un QkParam.

Esempio

QkParam *a = qk_param_new_symbol("a");
QkParam *out = qk_param_zero();
qk_param_sign(out, a);

Sicurezza

Il comportamento è indefinito se uno qualsiasi dei due out (o src ) non è un puntatore valido e non nullo a un QkParam.

Parametri

  • sign(src)out – Un puntatore alla variabile QkParam in cui memorizzare il risultato.
  • src – Un puntatore al valore QkParam di cui si vuole determinare il segno.

Risultati

Un codice di uscita che indica QkExitCode_Success il successo in caso di esito positivo e un errore in caso contrario.

qk_param_neg

QkExitCode qk_param_neg(QkParam *out, const QkParam *src)

QkParamNegare a.

Esempio

QkParam *a = qk_param_new_symbol("a");
QkParam *out = qk_param_zero();
qk_param_neg(out, a);

Sicurezza

Il comportamento è indefinito se uno qualsiasi dei due out (o src ) non è un puntatore valido e non nullo a un QkParam.

Parametri

  • -srcout – Un puntatore alla variabile QkParam in cui memorizzare il risultato.
  • src – Un puntatore all'elemento QkParam da negare.

Risultati

Un codice di uscita che indica QkExitCode_Success il successo in caso di esito positivo e un errore in caso contrario.

qk_param_conjugate

QkExitCode qk_param_conjugate(QkParam *out, const QkParam *src)

QkParamCalcola il coniugato complesso di a.

Esempio

QkParam *a = qk_param_new_symbol("a");
QkParam *out = qk_param_zero();
qk_param_conjugate(out, a);

Sicurezza

Il comportamento è indefinito se uno qualsiasi dei due out (o src ) non è un puntatore valido e non nullo a un QkParam.

Parametri

  • conj(src)out – Un puntatore alla variabile QkParam in cui memorizzare il risultato.
  • src – Un puntatore alla parola QkParam da coniugare.

Risultati

Un codice di uscita che indica QkExitCode_Success il successo in caso di esito positivo e un errore in caso contrario.

qk_param_equal

bool qk_param_equal(const QkParam *lhs, const QkParam *rhs)

Confronta due QkParam valori per verificare se sono uguali.

Esempio

QkParam *a = qk_param_new_symbol("a");
QkParam *one = qk_param_from_value(1.0);
QkParam *mone = qk_param_from_value(-1.0);

QkParam *x = qk_param_add(a, one);
QkParam *y = qk_param_sub(a, mone);

bool equal = qk_param_equal(x, y);

Sicurezza

Il comportamento è indefinito se uno qualsiasi dei due lhs (o rhs ) non è un puntatore valido e non nullo a un QkParam.

Parametri

  • QkParamlhs – Un indicatore del lato sinistro.
  • QkParamrhs – Un puntatore al lato destro.

Risultati

true se gli QkParam oggetti sono uguali, false altrimenti.

qk_param_as_real

double qk_param_as_real(const QkParam *param)

QkParam Prova a convertire in double.

Se non è stato possibile convertire il parametro in un double, a causa della presenza di parametri non associati, NAN viene restituito. Si noti che, quando QkParam si rappresentano valori complessi, viene restituita la parte reale.

Esempio

QkParam *a = qk_param_new_symbol("a");
QkParam *b = qk_param_new_symbol("b");
QkParam *x = qk_param_zero();
qk_param_add(x, a, b);

const QkParam* keys[2] = {a, b};
QkParam *y = qk_param_zero();
qk_param_bind(y, x, keys, {1.0, 2.0}, 2);

double out = qk_param_as_real(y);

Sicurezza

Il comportamento è indefinito se param non è un puntatore valido e non nullo a un QkParam.

Parametri

  • param – Un puntatore alla funzione QkParam da valutare.

Risultati

Il valore, se la conversione ha avuto esito positivo, altrimenti NAN.

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