Skip to main content
IBM Quantum Platform

QkParam

Représente un paramètre de circuit pouvant prendre des valeurs réelles ou symboliques.

Bien que les fonctionnalités d'un QkParam au sein d'un circuit soient actuellement limitées, l'utilisateur peut effectuer des opérations similaires à celles disponibles dans Parameter.


Fonctions

qk_param_new_symbol

QkParam *qk_param_new_symbol(const char *name)

Construisez un nouveau QkParam représentant un symbole non lié.

Exemple

QkParam *a = qk_param_new_symbol("a");

Sécurité

Le name paramètre doit être un pointeur vers une zone de mémoire contenant un caractère de fin de chaîne nul valide à la fin de la chaîne. Elle doit également être valide pour la lecture des octets jusqu'au caractère de fin de chaîne inclus.

Paramètres

  • nom – Le nom du symbole. Ce champ ne peut pas être vide.

Retours

QkParamUn pointeur vers le fichier. créé

qk_param_zero

QkParam *qk_param_zero(void)

Construisez un nouvel QkParam élément avec la valeur zéro.

La valeur QkParam renvoyée par cette fonction peut être utilisée pour stocker le résultat d'opérations binaires ou unaires.

Exemple

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);

Retours

QkParamUn pointeur vers le fichier. créé

qk_param_free

void qk_param_free(QkParam *param)

Libérez le QkParam.

Exemple

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

Sécurité

Le comportement est indéfini si param n'est ni nul ni un pointeur valide vers un QkParam.

Paramètres

  • param – Un pointeur vers la mémoire QkParam à libérer.

qk_param_from_double

QkParam *qk_param_from_double(double value)

Créer un nouveau QkParam à partir d'un double.

Exemple

QkParam *r = qk_param_from_double(2.5);

Paramètres

  • valeur – A double pour initialiser le QkParam.

Retours

QkParamUn pointeur vers le fichier. créé

qk_param_from_complex

QkParam *qk_param_from_complex(QkComplex64 value)

Construisez un nouveau QkParam à partir d'un nombre complexe donné par QkComplex64.

Exemple

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

Paramètres

  • valeur – A QkComplex64 pour initialiser le QkParam.

Retours

QkParamUn pointeur vers le fichier. créé

qk_param_copy

QkParam *qk_param_copy(const QkParam *param)

Copier un fichier QkParam.

Exemple

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

Sécurité

QkParamLe comportement est indéfini si param n'est pas un pointeur valide vers un élément non nul.

Paramètres

  • param – Le paramètre QkParam à copier.

Retours

QkParamUn pointeur vers le fichier. créé

qk_param_str

char *qk_param_str(const QkParam *param)

Obtenir une représentation sous forme de chaîne du QkParam.

Exemple

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

Sécurité

QkParamLe comportement est indéfini si param n'est pas un pointeur valide vers un élément non nul.

La chaîne ne doit pas être libérée à l'aide de la fonction free standard du langage C; vous devez utiliser qk_str_free pour libérer la mémoire occupée par la chaîne. Si vous ne l'appelez qk_str_free pas, cela entraînera une fuite de mémoire.

Ne modifiez pas la longueur de la chaîne une fois qu'elle a été renvoyée (en insérant un octet nul à un endroit quelconque de la chaîne ou en supprimant le dernier octet), même si les valeurs peuvent être modifiées.

Paramètres

  • param – Un pointeur vers le QkParam.

Retours

Un pointeur vers un tableau de caractères terminé par un caractère nul contenant la représentation sous forme de chaîne de param.

qk_param_add

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

QkParamAjoutez deux.

Exemple

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);

Sécurité

Le comportement est indéfini si l'un des éléments out, lhs ou rhs n'est pas un pointeur valide et non nul vers un QkParam.

Paramètres

  • lhs + rhsout – Un pointeur vers la QkParam variable dans laquelle le résultat de doit être stocké.
  • QkParamlhs – Un pointeur vers le côté gauche.
  • QkParamrhs – Un pointeur vers le côté droit.

Retours

Un code de sortie indiquant QkExitCode_Success la réussite de l'opération ou une erreur dans le cas contraire.

qk_param_sub

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

QkParamSoustrais deux.

Exemple

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);

Sécurité

Le comportement est indéfini si l'un des éléments out, lhs ou rhs n'est pas un pointeur valide et non nul vers un QkParam.

Paramètres

  • out – Un pointeur vers un QkParam pour stocker le résultat de lhs - rhs.
  • QkParamlhs – Un pointeur vers le côté gauche.
  • QkParamrhs – Un pointeur vers le côté droit.

Retours

Un code de sortie indiquant QkExitCode_Success la réussite de l'opération ou une erreur dans le cas contraire.

qk_param_mul

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

QkParamMultipliez deux.

Exemple

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);

Sécurité

Le comportement est indéfini si l'un des éléments out, lhs ou rhs n'est pas un pointeur valide et non nul vers un QkParam.

Paramètres

  • out – Un pointeur vers un QkParam pour stocker le résultat de lhs * rhs.
  • QkParamlhs – Un pointeur vers le côté gauche.
  • QkParamrhs – Un pointeur vers le côté droit.

Retours

Un code de sortie indiquant QkExitCode_Success la réussite de l'opération ou une erreur dans le cas contraire.

qk_param_div

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

Divisez a QkParam par un autre nombre.

Exemple

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);

Sécurité

Le comportement est indéfini si l'un des éléments out, num ou den n'est pas un pointeur valide et non nul vers un QkParam.

Paramètres

  • out – Un pointeur vers un QkParam pour stocker le résultat de lhs / rhs.
  • QkParamnum – Un pointeur vers le numérateur.
  • QkParamden – Un pointeur vers le dénominateur.

Retours

Un code de sortie indiquant QkExitCode_Success la réussite de l'opération ou une erreur dans le cas contraire.

qk_param_pow

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

Élever un nombre QkParam à une autre puissance.

Exemple

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);

Sécurité

Le comportement est indéfini si l'un des éléments out, base ou pow n'est pas un pointeur valide et non nul vers un QkParam.

Paramètres

  • out – Un pointeur vers un QkParam pour stocker le résultat de lhs ** rhs.
  • QkParambase – Un pointeur vers le côté gauche.
  • QkParampow – Un pointeur vers le côté droit.

Retours

Un code de sortie indiquant QkExitCode_Success la réussite de l'opération ou une erreur dans le cas contraire.

qk_param_sin

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

QkParamCalculez le sinus de a.

Exemple

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

Sécurité

Le comportement est indéfini si l'un des éléments out ou src n'est pas un pointeur valide et non nul vers un QkParam.

Paramètres

  • sin(src)out – Un pointeur vers la variable QkParam dans laquelle le résultat doit être stocké.
  • src – Un pointeur vers l'élément QkParam auquel appliquer la fonction sinus.

Retours

Un code de sortie indiquant QkExitCode_Success la réussite de l'opération ou une erreur dans le cas contraire.

qk_param_cos

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

QkParamCalculez le cosinus de a.

Exemple

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

Sécurité

Le comportement est indéfini si l'un des éléments out ou src n'est pas un pointeur valide et non nul vers un QkParam.

Paramètres

  • cos(src)out – Un pointeur vers la variable QkParam dans laquelle le résultat doit être stocké.
  • src – Un pointeur vers le QkParam auquel appliquer la fonction cosinus.

Retours

Un code de sortie indiquant QkExitCode_Success la réussite de l'opération ou une erreur dans le cas contraire.

qk_param_tan

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

QkParamCalculez la tangente de a.

Exemple

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

Sécurité

Le comportement est indéfini si l'un des éléments out ou src n'est pas un pointeur valide et non nul vers un QkParam.

Paramètres

  • tan(src)out – Un pointeur vers la variable QkParam dans laquelle le résultat doit être stocké.
  • src – Un pointeur vers l'élément QkParam auquel appliquer la tangente.

Retours

Un code de sortie indiquant QkExitCode_Success la réussite de l'opération ou une erreur dans le cas contraire.

qk_param_asin

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

QkParamCalculez l'arc sinus de a.

Exemple

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

Sécurité

Le comportement est indéfini si l'un des éléments out ou src n'est pas un pointeur valide et non nul vers un QkParam.

Paramètres

  • asin(src)out – Un pointeur vers la variable QkParam dans laquelle le résultat doit être stocké.
  • src – Un pointeur vers l'élément QkParam auquel appliquer la fonction arc sinus.

Retours

Un code de sortie indiquant QkExitCode_Success la réussite de l'opération ou une erreur dans le cas contraire.

qk_param_acos

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

QkParamCalculez l'arc cosinus de a.

Exemple

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

Sécurité

Le comportement est indéfini si l'un des éléments out ou src n'est pas un pointeur valide et non nul vers un QkParam.

Paramètres

  • acos(src)out – Un pointeur vers la variable QkParam dans laquelle le résultat doit être stocké.
  • src – Un pointeur vers le QkParam auquel appliquer la fonction cosinus.

Retours

Un code de sortie indiquant QkExitCode_Success la réussite de l'opération ou une erreur dans le cas contraire.

qk_param_atan

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

QkParamCalculez l'arctangente de a.

Exemple

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

Sécurité

Le comportement est indéfini si l'un des éléments out ou src n'est pas un pointeur valide et non nul vers un QkParam.

Paramètres

  • atan(src)out – Un pointeur vers la zone QkParam de stockage du résultat.
  • src – Un pointeur vers l'élément QkParam auquel appliquer l'arctangente.

Retours

Un code de sortie indiquant QkExitCode_Success la réussite de l'opération ou une erreur dans le cas contraire.

qk_param_log

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

QkParamCalculez le logarithme naturel de a.

Exemple

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

Sécurité

Le comportement est indéfini si l'un des éléments out ou src n'est pas un pointeur valide et non nul vers un QkParam.

Paramètres

  • log(src)out – Un pointeur vers la variable QkParam dans laquelle le résultat doit être stocké.
  • src – Un pointeur vers l'élément QkParam auquel appliquer le logarithme.

Retours

Un code de sortie indiquant QkExitCode_Success la réussite de l'opération ou une erreur dans le cas contraire.

qk_param_exp

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

QkParamAppliquez la fonction exponentielle à a.

Exemple

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

Sécurité

Le comportement est indéfini si l'un des éléments out ou src n'est pas un pointeur valide et non nul vers un QkParam.

Paramètres

  • exp(src)out – Un pointeur vers la variable QkParam dans laquelle le résultat doit être stocké.
  • src – Un pointeur vers la valeur QkParam dont on souhaite calculer l'exponentielle.

Retours

Un code de sortie indiquant QkExitCode_Success la réussite de l'opération ou une erreur dans le cas contraire.

qk_param_abs

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

QkParamCalculez la valeur absolue de a.

Exemple

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

Sécurité

Le comportement est indéfini si l'un des éléments out ou src n'est pas un pointeur valide et non nul vers un QkParam.

Paramètres

  • out – Un pointeur vers l' QkParam e dans laquelle le résultat doit être stocké.
  • src – Un pointeur vers l' QkParam.

Retours

Un code de sortie indiquant QkExitCode_Success la réussite de l'opération ou une erreur dans le cas contraire.

qk_param_sign

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

Obtenez le signe d'un QkParam.

Exemple

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

Sécurité

Le comportement est indéfini si l'un des éléments out ou src n'est pas un pointeur valide et non nul vers un QkParam.

Paramètres

  • sign(src)out – Un pointeur vers la variable QkParam dans laquelle le résultat doit être stocké.
  • src – Un pointeur vers l'élément QkParam dont on souhaite déterminer le signe.

Retours

Un code de sortie indiquant QkExitCode_Success la réussite de l'opération ou une erreur dans le cas contraire.

qk_param_neg

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

Nier a QkParam.

Exemple

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

Sécurité

Le comportement est indéfini si l'un des éléments out ou src n'est pas un pointeur valide et non nul vers un QkParam.

Paramètres

  • -srcout – Un pointeur vers la variable QkParam dans laquelle le résultat doit être stocké.
  • src – Un pointeur vers l'élément QkParam à inverser.

Retours

Un code de sortie indiquant QkExitCode_Success la réussite de l'opération ou une erreur dans le cas contraire.

qk_param_conjugate

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

QkParamCalculez le conjugué complexe de a.

Exemple

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

Sécurité

Le comportement est indéfini si l'un des éléments out ou src n'est pas un pointeur valide et non nul vers un QkParam.

Paramètres

  • conj(src)out – Un pointeur vers la variable QkParam dans laquelle le résultat doit être stocké.
  • src – Un pointeur vers l'élément QkParam à conjuguer.

Retours

Un code de sortie indiquant QkExitCode_Success la réussite de l'opération ou une erreur dans le cas contraire.

qk_param_equal

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

Comparer deux éléments QkParam pour vérifier s'ils sont égaux.

Exemple

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);

Sécurité

Le comportement est indéfini si l'un des éléments lhs ou rhs n'est pas un pointeur valide et non nul vers un QkParam.

Paramètres

  • QkParamlhs – Un pointeur vers le côté gauche.
  • QkParamrhs – Un pointeur vers le côté droit.

Retours

true si les QkParam objets sont égaux, false sinon.

qk_param_as_real

double qk_param_as_real(const QkParam *param)

Essayez de convertir QkParam en double.

Si le paramètre n'a pas pu être converti en double, en raison de la présence de paramètres non liés, NAN est renvoyé. Notez que pour QkParam la représentation des valeurs complexes, c'est la partie réelle qui est renvoyée.

Exemple

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);

Sécurité

Le comportement est indéfini si param n'est pas un pointeur valide et non nul vers un QkParam.

Paramètres

  • param – Un pointeur vers l'élément QkParam à évaluer.

Retours

La valeur, si la conversion a réussi, sinon NAN.

Cette page a-t-elle été utile ?
Signaler un bogue, une coquille ou proposer du contenu sur GitHub.