Skip to main content
IBM Quantum Platform

QkParam

Representa un parámetro de circuito que puede contener valores reales o simbólicos.

Aunque la funcionalidad de un QkParam dentro de un circuito es actualmente limitada, el usuario puede realizar operaciones similares a las que se encuentran en Parameter.


Funciones

qk_param_new_symbol

QkParam *qk_param_new_symbol(const char *name)

Crea un nuevo QkParam que represente un símbolo sin asignar.

Ejemplo

QkParam *a = qk_param_new_symbol("a");

Seguridad

El name parámetro debe ser un puntero a una zona de memoria que contenga un carácter de finalización nulo válido al final de la cadena. Además, debe ser válido para la lectura de bytes hasta el carácter de terminación NUL, incluido este.

Parámetros

  • nombre : el nombre del símbolo. Esto no puede estar vacío.

Devuelve

QkParamUn puntero al archivo. creado.

qk_param_zero

QkParam *qk_param_zero(void)

Crea un nuevo QkParam objeto con el valor cero.

El valor QkParam devuelto por esta función se puede utilizar para almacenar el resultado de operaciones binarias o unarias.

Ejemplo

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

Devuelve

QkParamUn puntero al archivo. creado.

qk_param_free

void qk_param_free(QkParam *param)

Liberad el QkParam.

Ejemplo

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

Seguridad

El comportamiento es indefinido si param no es nulo ni un puntero válido a un QkParam.

Parámetros

  • param – Un puntero al objeto QkParam que se va a liberar.

qk_param_from_double

QkParam *qk_param_from_double(double value)

doubleCrea uno nuevo QkParam a partir de uno.

Ejemplo

QkParam *r = qk_param_from_double(2.5);

Parámetros

  • valor – A double para inicializar el QkParam.

Devuelve

QkParamUn puntero al archivo. creado.

qk_param_from_complex

QkParam *qk_param_from_complex(QkComplex64 value)

Construir un nuevo QkParam a partir de un número complejo, dado como QkComplex64.

Ejemplo

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

Parámetros

  • valor – A QkComplex64 para inicializar el QkParam.

Devuelve

QkParamUn puntero al archivo. creado.

qk_param_copy

QkParam *qk_param_copy(const QkParam *param)

Copia un QkParam.

Ejemplo

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

Seguridad

QkParamEl comportamiento es indefinido si param no es un puntero válido a un valor distinto de nulo.

Parámetros

  • param – El elemento QkParam que se va a copiar.

Devuelve

QkParamUn puntero al archivo. creado.

qk_param_str

char *qk_param_str(const QkParam *param)

QkParamObtén una representación en forma de cadena de.

Ejemplo

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

Seguridad

QkParamEl comportamiento es indefinido si param no es un puntero válido a un valor distinto de nulo.

La cadena no debe liberarse con la función «free» habitual de C; debes utilizar qk_str_free para liberar la memoria que ocupa la cadena. Si no se llama qk_str_free a esta función, se producirá una fuga de memoria.

No modifiques la longitud de la cadena una vez devuelta (añadiendo un byte nulo en algún punto de la cadena o eliminando el último), aunque sí se pueden modificar los valores.

Parámetros

  • param – Un puntero a la QkParam.

Devuelve

Un puntero a una matriz de caracteres terminada en NUL que contiene la representación en forma de cadena de param.

qk_param_add

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

QkParamAñade dos.

Ejemplo

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

Seguridad

El comportamiento es indefinido si cualquiera de out, lhs o rhs no es un puntero válido y no nulo a un QkParam.

Parámetros

  • out – Un puntero a donde QkParam se guardará el resultado de lhs + rhs.
  • QkParamlhs – Un puntero al lado izquierdo.
  • QkParamrhs – Un puntero al lado derecho.

Devuelve

Un código de salida que indica QkExitCode_Success el éxito en caso de que la operación se haya realizado correctamente y un error en caso contrario.

qk_param_sub

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

QkParamResta dos.

Ejemplo

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

Seguridad

El comportamiento es indefinido si cualquiera de out, lhs o rhs no es un puntero válido y no nulo a un QkParam.

Parámetros

  • out – Un puntero a un QkParam para almacenar el resultado de lhs - rhs.
  • QkParamlhs – Un puntero al lado izquierdo.
  • QkParamrhs – Un puntero al lado derecho.

Devuelve

Un código de salida que indica QkExitCode_Success el éxito en caso de que la operación se haya realizado correctamente y un error en caso contrario.

qk_param_mul

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

QkParamMultiplica dos.

Ejemplo

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

Seguridad

El comportamiento es indefinido si cualquiera de out, lhs o rhs no es un puntero válido y no nulo a un QkParam.

Parámetros

  • out – Un puntero a un QkParam para almacenar el resultado de lhs * rhs.
  • QkParamlhs – Un puntero al lado izquierdo.
  • QkParamrhs – Un puntero al lado derecho.

Devuelve

Un código de salida que indica QkExitCode_Success el éxito en caso de que la operación se haya realizado correctamente y un error en caso contrario.

qk_param_div

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

Divide a QkParam entre otro.

Ejemplo

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

Seguridad

El comportamiento es indefinido si cualquiera de out, num o den no es un puntero válido y no nulo a un QkParam.

Parámetros

  • out – Un puntero a un QkParam para almacenar el resultado de lhs / rhs.
  • QkParamnum – Un puntero al numerador.
  • QkParamden – Un puntero al denominador.

Devuelve

Un código de salida que indica QkExitCode_Success el éxito en caso de que la operación se haya realizado correctamente y un error en caso contrario.

qk_param_pow

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

Elevar un número QkParam a la potencia de otro.

Ejemplo

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

Seguridad

El comportamiento es indefinido si cualquiera de out, base o pow no es un puntero válido y no nulo a un QkParam.

Parámetros

  • out – Un puntero a un QkParam para almacenar el resultado de lhs ** rhs.
  • QkParambase : un puntero al lado izquierdo.
  • QkParampow – Un puntero al lado derecho.

Devuelve

Un código de salida que indica QkExitCode_Success el éxito en caso de que la operación se haya realizado correctamente y un error en caso contrario.

qk_param_sin

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

QkParamCalcula el seno de a.

Ejemplo

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

Seguridad

El comportamiento es indefinido si cualquiera de out o src no es un puntero válido y no nulo a un QkParam.

Parámetros

  • QkParam** out** – Un puntero al para almacenar el resultado, sin(src).
  • src : un puntero al objeto QkParam al que se aplicará la función seno.

Devuelve

Un código de salida que indica QkExitCode_Success el éxito en caso de que la operación se haya realizado correctamente y un error en caso contrario.

qk_param_cos

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

QkParamCalcula el coseno de a.

Ejemplo

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

Seguridad

El comportamiento es indefinido si cualquiera de out o src no es un puntero válido y no nulo a un QkParam.

Parámetros

  • QkParam** out** – Un puntero al para almacenar el resultado, cos(src).
  • src : un puntero al objeto QkParam al que se va a aplicar la función coseno.

Devuelve

Un código de salida que indica QkExitCode_Success el éxito en caso de que la operación se haya realizado correctamente y un error en caso contrario.

qk_param_tan

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

QkParamCalcula la tangente de a.

Ejemplo

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

Seguridad

El comportamiento es indefinido si cualquiera de out o src no es un puntero válido y no nulo a un QkParam.

Parámetros

  • QkParam** out** – Un puntero al para almacenar el resultado, tan(src).
  • src : un puntero al elemento QkParam al que se va a aplicar la tangente.

Devuelve

Un código de salida que indica QkExitCode_Success el éxito en caso de que la operación se haya realizado correctamente y un error en caso contrario.

qk_param_asin

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

QkParamCalcula el arcseno de a.

Ejemplo

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

Seguridad

El comportamiento es indefinido si cualquiera de out o src no es un puntero válido y no nulo a un QkParam.

Parámetros

  • QkParam** out** – Un puntero al para almacenar el resultado, asin(src).
  • src : un puntero al objeto QkParam al que se le aplicará la función arcoseno.

Devuelve

Un código de salida que indica QkExitCode_Success el éxito en caso de que la operación se haya realizado correctamente y un error en caso contrario.

qk_param_acos

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

QkParamCalcula el arcocoseno de a.

Ejemplo

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

Seguridad

El comportamiento es indefinido si cualquiera de out o src no es un puntero válido y no nulo a un QkParam.

Parámetros

  • QkParam** out** – Un puntero al para almacenar el resultado, acos(src).
  • src : un puntero al objeto QkParam al que se va a aplicar la función coseno.

Devuelve

Un código de salida que indica QkExitCode_Success el éxito en caso de que la operación se haya realizado correctamente y un error en caso contrario.

qk_param_atan

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

QkParamCalcula la arctangente de a.

Ejemplo

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

Seguridad

El comportamiento es indefinido si cualquiera de out o src no es un puntero válido y no nulo a un QkParam.

Parámetros

  • QkParam** out** – Un puntero al para almacenar un resultado, atan(src).
  • src : un puntero al objeto QkParam al que se va a aplicar la función arctangente.

Devuelve

Un código de salida que indica QkExitCode_Success el éxito en caso de que la operación se haya realizado correctamente y un error en caso contrario.

qk_param_log

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

QkParamCalcula el logaritmo natural de a.

Ejemplo

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

Seguridad

El comportamiento es indefinido si cualquiera de out o src no es un puntero válido y no nulo a un QkParam.

Parámetros

  • QkParam** out** – Un puntero al para almacenar el resultado, log(src).
  • src : un puntero al objeto QkParam al que se va a aplicar el logaritmo.

Devuelve

Un código de salida que indica QkExitCode_Success el éxito en caso de que la operación se haya realizado correctamente y un error en caso contrario.

qk_param_exp

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

QkParamAplica la función exponencial a a.

Ejemplo

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

Seguridad

El comportamiento es indefinido si cualquiera de out o src no es un puntero válido y no nulo a un QkParam.

Parámetros

  • QkParam** out** – Un puntero al para almacenar el resultado, exp(src).
  • src : un puntero al valor del que QkParam se va a calcular la exponencial.

Devuelve

Un código de salida que indica QkExitCode_Success el éxito en caso de que la operación se haya realizado correctamente y un error en caso contrario.

qk_param_abs

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

QkParamCalcula el valor absoluto de a.

Ejemplo

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

Seguridad

El comportamiento es indefinido si cualquiera de out o src no es un puntero válido y no nulo a un QkParam.

Parámetros

  • out – Un puntero al objeto QkParam en el que se almacenará el resultado.
  • src : un puntero al objeto QkParam.

Devuelve

Un código de salida que indica QkExitCode_Success el éxito en caso de que la operación se haya realizado correctamente y un error en caso contrario.

qk_param_sign

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

Averigua el signo de un QkParam.

Ejemplo

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

Seguridad

El comportamiento es indefinido si cualquiera de out o src no es un puntero válido y no nulo a un QkParam.

Parámetros

  • QkParam** out** – Un puntero al para almacenar el resultado, sign(src).
  • QkParam** src** – Un puntero al para obtener su signo.

Devuelve

Un código de salida que indica QkExitCode_Success el éxito en caso de que la operación se haya realizado correctamente y un error en caso contrario.

qk_param_neg

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

Negar a QkParam.

Ejemplo

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

Seguridad

El comportamiento es indefinido si cualquiera de out o src no es un puntero válido y no nulo a un QkParam.

Parámetros

  • QkParam** out** – Un puntero al para almacenar el resultado, -src.
  • src : un puntero al valor QkParam que se va a invertir.

Devuelve

Un código de salida que indica QkExitCode_Success el éxito en caso de que la operación se haya realizado correctamente y un error en caso contrario.

qk_param_conjugate

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

QkParamCalcula el conjugado complejo de a.

Ejemplo

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

Seguridad

El comportamiento es indefinido si cualquiera de out o src no es un puntero válido y no nulo a un QkParam.

Parámetros

  • QkParam** out** – Un puntero al para almacenar el resultado, conj(src).
  • src : un puntero al elemento QkParam que se va a conjugar.

Devuelve

Un código de salida que indica QkExitCode_Success el éxito en caso de que la operación se haya realizado correctamente y un error en caso contrario.

qk_param_equal

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

Compara dos QkParam valores para ver si son iguales.

Ejemplo

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

Seguridad

El comportamiento es indefinido si cualquiera de lhs o rhs no es un puntero válido y no nulo a un QkParam.

Parámetros

  • QkParamlhs – Un puntero al lado izquierdo.
  • QkParamrhs – Un puntero al lado derecho.

Devuelve

true si los QkParam objetos son iguales, false en caso contrario.

qk_param_as_real

double qk_param_as_real(const QkParam *param)

QkParam Intenta convertir en double.

Si no se ha podido convertir el parámetro a un double, debido a que había parámetros sin asignar, NAN se devuelve. Ten en cuenta que, al QkParam representar valores complejos, se devuelve la parte real.

Ejemplo

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

Seguridad

El comportamiento es indefinido si param no es un puntero válido y no nulo a un QkParam.

Parámetros

  • param – Un puntero a la función QkParam que se va a evaluar.

Devuelve

El valor, si la conversión se ha realizado correctamente; en caso contrario, NAN.

¿Le ha resultado útil esta página?
Informe de un error, de una errata o solicite contenido en GitHub.