Skip to main content
IBM Quantum Platform
Diese Seite stammt aus einer alten Version von Qiskit SDK C API Zur neuesten Version

QkParam

Represents a circuit parameter which may hold real or symbolic values.

While functionality for a QkParam within a circuit is currently limited, a user is able to perform operations similar to the ones present in Parameter.


Functions

qk_param_new_symbol

QkParam *qk_param_new_symbol(const char *name)

Construct a new QkParam representing an unbound symbol.

Example

QkParam *a = qk_param_new_symbol("a");

Safety

The name parameter must be a pointer to memory that contains a valid nul terminator at the end of the string. It also must be valid for reads of bytes up to and including the nul terminator.

Parameters

  • name – The name of symbol. This cannot be empty.

Returns

A pointer to the created QkParam.

qk_param_zero

QkParam *qk_param_zero(void)

Construct a new QkParam with a value zero.

The QkParam returned from this function can be used to store the result of binary or unary operations.

Example

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

Returns

A pointer to the created QkParam.

qk_param_free

void qk_param_free(QkParam *param)

Free the QkParam.

Example

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

Safety

Behavior is undefined if param is not either null or a valid pointer to a QkParam.

Parameters

  • param – A pointer to the QkParam to free.

qk_param_from_double

QkParam *qk_param_from_double(double value)

Construct a new QkParam from a double.

Example

QkParam *r = qk_param_from_double(2.5);

Parameters

  • value – A double to initialize the QkParam.

Returns

A pointer to the created QkParam.

qk_param_from_complex

QkParam *qk_param_from_complex(QkComplex64 value)

Construct a new QkParam from a complex number, given as QkComplex64.

Example

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

Parameters

  • value – A QkComplex64 to initialize the QkParam.

Returns

A pointer to the created QkParam.

qk_param_copy

QkParam *qk_param_copy(const QkParam *param)

Copy a QkParam.

Example

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

Safety

The behavior is undefined if param is not a valid pointer to a non-null QkParam.

Parameters

  • param – The QkParam to copy.

Returns

A pointer to the created QkParam.

qk_param_str

char *qk_param_str(const QkParam *param)

Get a string representation of the QkParam.

Example

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

Safety

The behavior is undefined if param is not a valid pointer to a non-null QkParam.

The string must not be freed with the normal C free, you must use qk_str_free to free the memory consumed by the String. Not calling qk_str_free will lead to a memory leak.

Do not change the length of the string after it’s returned (by writing a nul byte somewhere inside the string or removing the final one), although values can be mutated.

Parameters

  • param – A pointer to the QkParam.

Returns

A pointer to a nul-terminated char array of the string representation for param.

qk_param_add

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

Add two QkParam.

Example

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

Safety

The behavior is undefined if any of out, lhs or rhs is not a valid, non-null pointer to a QkParam.

Parameters

  • out – A pointer to the QkParam to store the result of lhs + rhs.
  • lhs – A pointer to the left hand side QkParam.
  • rhs – A pointer to the right hand side QkParam.

Returns

An exit code indicating QkExitCode_Success upon success and an error otherwise.

qk_param_sub

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

Subtract two QkParam.

Example

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

Safety

The behavior is undefined if any of out, lhs or rhs is not a valid, non-null pointer to a QkParam.

Parameters

  • out – A pointer to a QkParam to store the result of lhs - rhs.
  • lhs – A pointer to the left hand side QkParam.
  • rhs – A pointer to the right hand side QkParam.

Returns

An exit code indicating QkExitCode_Success upon success and an error otherwise.

qk_param_mul

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

Multiply two QkParam.

Example

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

Safety

The behavior is undefined if any of out, lhs or rhs is not a valid, non-null pointer to a QkParam.

Parameters

  • out – A pointer to a QkParam to store the result of lhs * rhs.
  • lhs – A pointer to the left hand side QkParam.
  • rhs – A pointer to the right hand side QkParam.

Returns

An exit code indicating QkExitCode_Success upon success and an error otherwise.

qk_param_div

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

Divide a QkParam by another.

Example

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

Safety

The behavior is undefined if any of out, num or den is not a valid, non-null pointer to a QkParam.

Parameters

  • out – A pointer to a QkParam to store the result of lhs / rhs.
  • num – A pointer to the numerator QkParam.
  • den – A pointer to the denominator QkParam.

Returns

An exit code indicating QkExitCode_Success upon success and an error otherwise.

qk_param_pow

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

Raise a QkParam to the power of another.

Example

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

Safety

The behavior is undefined if any of out, base or pow is not a valid, non-null pointer to a QkParam.

Parameters

  • out – A pointer to a QkParam to store the result of lhs ** rhs.
  • base – A pointer to the left hand side QkParam.
  • pow – A pointer to the right hand side QkParam.

Returns

An exit code indicating QkExitCode_Success upon success and an error otherwise.

qk_param_sin

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

Calculate the sine of a QkParam.

Example

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

Safety

The behavior is undefined if any of out or src is not a valid, non-null pointer to a QkParam.

Parameters

  • out – A pointer to the QkParam to store the result, sin(src).
  • src – A pointer to the QkParam to apply the sine to.

Returns

An exit code indicating QkExitCode_Success upon success and an error otherwise.

qk_param_cos

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

Calculate the cosine of a QkParam.

Example

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

Safety

The behavior is undefined if any of out or src is not a valid, non-null pointer to a QkParam.

Parameters

  • out – A pointer to the QkParam to store the result, cos(src).
  • src – A pointer to the QkParam to apply the cosine to.

Returns

An exit code indicating QkExitCode_Success upon success and an error otherwise.

qk_param_tan

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

Calculate the tangent of a QkParam.

Example

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

Safety

The behavior is undefined if any of out or src is not a valid, non-null pointer to a QkParam.

Parameters

  • out – A pointer to the QkParam to store the result, tan(src).
  • src – A pointer to the QkParam to apply the tangent to.

Returns

An exit code indicating QkExitCode_Success upon success and an error otherwise.

qk_param_asin

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

Calculate the arcsine of a QkParam.

Example

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

Safety

The behavior is undefined if any of out or src is not a valid, non-null pointer to a QkParam.

Parameters

  • out – A pointer to the QkParam to store the result, asin(src).
  • src – A pointer to the QkParam to apply the arcsine to.

Returns

An exit code indicating QkExitCode_Success upon success and an error otherwise.

qk_param_acos

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

Calculate the arccosine of a QkParam.

Example

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

Safety

The behavior is undefined if any of out or src is not a valid, non-null pointer to a QkParam.

Parameters

  • out – A pointer to the QkParam to store the result, acos(src).
  • src – A pointer to the QkParam to apply the cosine to.

Returns

An exit code indicating QkExitCode_Success upon success and an error otherwise.

qk_param_atan

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

Calculate the arctangent of a QkParam.

Example

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

Safety

The behavior is undefined if any of out or src is not a valid, non-null pointer to a QkParam.

Parameters

  • out – A pointer to the QkParam to store a result, atan(src).
  • src – A pointer to the QkParam to apply the arctangent to.

Returns

An exit code indicating QkExitCode_Success upon success and an error otherwise.

qk_param_log

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

Calculate the natural logarithm of a QkParam.

Example

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

Safety

The behavior is undefined if any of out or src is not a valid, non-null pointer to a QkParam.

Parameters

  • out – A pointer to the QkParam to store the result, log(src).
  • src – A pointer to the QkParam to apply the logarithm to.

Returns

An exit code indicating QkExitCode_Success upon success and an error otherwise.

qk_param_exp

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

Apply the exponential function to a QkParam.

Example

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

Safety

The behavior is undefined if any of out or src is not a valid, non-null pointer to a QkParam.

Parameters

  • out – A pointer to the QkParam to store the result, exp(src).
  • src – A pointer to the QkParam to compute the exponential of.

Returns

An exit code indicating QkExitCode_Success upon success and an error otherwise.

qk_param_abs

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

Calculate the absolute value of a QkParam.

Example

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

Safety

The behavior is undefined if any of out or src is not a valid, non-null pointer to a QkParam.

Parameters

  • out – A pointer to the QkParam to store a result.
  • src – A pointer to the QkParam.

Returns

An exit code indicating QkExitCode_Success upon success and an error otherwise.

qk_param_sign

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

Get the sign of a QkParam.

Example

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

Safety

The behavior is undefined if any of out or src is not a valid, non-null pointer to a QkParam.

Parameters

  • out – A pointer to the QkParam to store the result, sign(src).
  • src – A pointer to the QkParam to get the sign of.

Returns

An exit code indicating QkExitCode_Success upon success and an error otherwise.

qk_param_neg

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

Negate a QkParam.

Example

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

Safety

The behavior is undefined if any of out or src is not a valid, non-null pointer to a QkParam.

Parameters

  • out – A pointer to the QkParam to store the result, -src.
  • src – A pointer to the QkParam to negate.

Returns

An exit code indicating QkExitCode_Success upon success and an error otherwise.

qk_param_conjugate

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

Calculate the complex conjugate of a QkParam.

Example

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

Safety

The behavior is undefined if any of out or src is not a valid, non-null pointer to a QkParam.

Parameters

  • out – A pointer to the QkParam to store the result, conj(src).
  • src – A pointer to the QkParam to conjugate.

Returns

An exit code indicating QkExitCode_Success upon success and an error otherwise.

qk_param_equal

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

Compare two QkParam for equality.

Example

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

Safety

The behavior is undefined if any of lhs or rhs is not a valid, non-null pointer to a QkParam.

Parameters

  • lhs – A pointer to the left hand side QkParam.
  • rhs – A pointer to the right hand side QkParam.

Returns

true if the QkParam objects are equal, false otherwise.

qk_param_as_real

double qk_param_as_real(const QkParam *param)

Attempt casting the QkParam as double.

If the parameter could not be cast to a double, because there were unbound parameters, NAN is returned. Note that for QkParam representing complex values the real part is returned.

Example

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

Safety

The behavior is undefined if param is not a valid, non-null pointer to a QkParam.

Parameters

  • param – A pointer to the QkParam to evaluate.

Returns

The value, if casting was successful, otherwise NAN.

War diese Seite hilfreich?
Melden Sie auf GitHub einen Fehler, einen Tippfehler oder fordern Sie Inhalte an.