Macros | |
#define | mirml_mh_in_prod(a, b, p) mirml_mh_in_prod_(a,b,0,p) |
Usual way of computing the inner product. | |
Functions | |
mirkl_error_t * | mirml_mh_m_add (const mirml_mh_matrix_t *A, const mirml_mh_matrix_t *B, mirml_mh_matrix_t **out) |
Matrix addition A+B. More... | |
mirkl_error_t * | mirml_mh_m_sub (const mirml_mh_matrix_t *A, const mirml_mh_matrix_t *B, mirml_mh_matrix_t **out) |
Matrix subtraction A-B. More... | |
mirkl_error_t * | mirml_mh_m_mlt (const mirml_mh_matrix_t *A, const mirml_mh_matrix_t *B, mirml_mh_matrix_t **out) |
Matrix-matrix multiplication. More... | |
mirkl_error_t * | mirml_mh_mmtr_mlt (const mirml_mh_matrix_t *A, const mirml_mh_matrix_t *B, mirml_mh_matrix_t **out) |
Matrix-matrix transposed multiplication. More... | |
mirkl_error_t * | mirml_mh_mtrm_mlt (const mirml_mh_matrix_t *A, const mirml_mh_matrix_t *B, mirml_mh_matrix_t **out) |
Matrix transposed-matrix multiplication. More... | |
mirkl_error_t * | mirml_mh_mv_mlt (const mirml_mh_matrix_t *A, const mirml_mh_vector_t *b, mirml_mh_vector_t **out) |
mirkl_error_t * | mirml_mh_vm_mlt (const mirml_mh_matrix_t *A, const mirml_mh_vector_t *b, mirml_mh_vector_t **out) |
mirkl_error_t * | mirml_mh_sm_mlt (double s, const mirml_mh_matrix_t *A, mirml_mh_matrix_t **out) |
Scalar-matrix multiplication. More... | |
mirkl_error_t * | mirml_mh_m_transp (const mirml_mh_matrix_t *in, mirml_mh_matrix_t **out) |
mirkl_error_t * | mirml_mh_swap_rows (mirml_mh_matrix_t *A, mirkl_size_t i, mirkl_size_t j, mirkl_size_t lo, mirkl_size_t hi) |
mirkl_error_t * | mirml_mh_swap_cols (mirml_mh_matrix_t *A, mirkl_size_t i, mirkl_size_t j, mirkl_size_t lo, mirkl_size_t hi) |
mirkl_error_t * | mirml_mh_ms_mltadd (const mirml_mh_matrix_t *A1, const mirml_mh_matrix_t *A2, double s, mirml_mh_matrix_t **out) |
mirkl_error_t * | mirml_mh_mv_mltadd (const mirml_mh_vector_t *v1, const mirml_mh_vector_t *v2, const mirml_mh_matrix_t *A, double alpha, mirml_mh_vector_t **out) |
mirkl_error_t * | mirml_mh_vm_mltadd (const mirml_mh_vector_t *v1, const mirml_mh_vector_t *v2, const mirml_mh_matrix_t *A, double alpha, mirml_mh_vector_t **out) |
mirkl_error_t * | mirml_mh_m_pow_ (const mirml_mh_matrix_t *A, int p, mirml_mh_matrix_t **tmp, mirml_mh_matrix_t **out) |
mirkl_error_t * | mirml_mh_m_pow (const mirml_mh_matrix_t *A, int p, mirml_mh_matrix_t **out) |
mirkl_error_t * | mirml_mh_m_exp_ (mirml_mh_matrix_t *A, double eps, mirml_mh_matrix_t **out, int *q_out, int *j_out) |
mirkl_error_t * | mirml_mh_m_exp (mirml_mh_matrix_t *A, double eps, mirml_mh_matrix_t **out) |
mirkl_error_t * | mirml_mh_m_poly (const mirml_mh_matrix_t *A, const mirml_mh_vector_t *a, mirml_mh_matrix_t **out) |
mirkl_error_t * | mirml_mh_in_prod_ (const mirml_mh_vector_t *a, const mirml_mh_vector_t *b, mirkl_size_t i0, double *prod) |
Inner product of two vectors from i0 downwards. More... | |
mirkl_error_t * | mirml_mh_sv_mlt (double scalar, const mirml_mh_vector_t *vector, mirml_mh_vector_t **out) |
Scalar-vector multiplication. More... | |
mirkl_error_t * | mirml_mh_v_add (const mirml_mh_vector_t *v1, const mirml_mh_vector_t *v2, mirml_mh_vector_t **out) |
Vector addition. More... | |
mirkl_error_t * | mirml_mh_sv_add (const mirml_mh_vector_t *v1, const double v2, mirml_mh_vector_t **out) |
Scalar to vector addition element-wise. More... | |
mirkl_error_t * | mirml_mh_v_mltadd (const mirml_mh_vector_t *v1, const mirml_mh_vector_t *v2, double scale, mirml_mh_vector_t **out) |
scalar/vector multiplication and addition. More... | |
mirkl_error_t * | mirml_mh_v_sub (const mirml_mh_vector_t *v1, const mirml_mh_vector_t *v2, mirml_mh_vector_t **out) |
Vector subtraction. More... | |
mirkl_error_t * | mirml_mh_sv_sub (const mirml_mh_vector_t *v1, const double v2, mirml_mh_vector_t **out) |
Scalar from vector subtraction element-wise. More... | |
mirkl_error_t * | mirml_mh_v_map (double(*f)(double), const mirml_mh_vector_t *x, mirml_mh_vector_t **out) |
Maps function f over components of x. More... | |
mirkl_error_t * | mirml_mh_v_map_ (double(*f)(void *, double), void *params, const mirml_mh_vector_t *x, mirml_mh_vector_t **out) |
Similar to mirml_mh_v_map but additionally accepts pointer to user data, which is transferred to callback. More... | |
mirkl_error_t * | mirml_mh_v_lincomb (int n, const mirml_mh_vector_t *v[], const double a[], mirml_mh_vector_t **out) |
Linear combination. More... | |
mirkl_error_t * | mirml_mh_v_linlist (mirml_mh_vector_t **out, mirml_mh_vector_t *v1, double a1,...) |
Linear combinations taken from a list of arguments. More... | |
mirkl_error_t * | mirml_mh_v_star (const mirml_mh_vector_t *x1, const mirml_mh_vector_t *x2, mirml_mh_vector_t **out) |
Computes componentwise (Hadamard) product of vectors. More... | |
mirkl_error_t * | mirml_mh_v_slash (const mirml_mh_vector_t *x1, const mirml_mh_vector_t *x2, mirml_mh_vector_t **out) |
Computes componentwise ratio of vectors. More... | |
mirkl_error_t * | mirml_mh_v_min (const mirml_mh_vector_t *x, mirkl_size_t *min_idx, double *minval) |
Computes minimum component of vector. More... | |
mirkl_error_t * | mirml_mh_v_max (const mirml_mh_vector_t *x, mirkl_size_t *max_idx, double *maxval) |
Computes maximal component of vector. More... | |
mirkl_error_t * | mirml_mh_v_sort (mirml_mh_vector_t *x, mirml_mh_permutation_t *order) |
Sorts vector. More... | |
mirkl_error_t * | mirml_mh_v_sum (const mirml_mh_vector_t *x, double *ret) |
Returns sum of entries of a vector. | |
mirkl_error_t * | mirml_mh_v_conv (const mirml_mh_vector_t *x1, const mirml_mh_vector_t *x2, mirml_mh_vector_t **out) |
Computes convolution product of two vectors. | |
mirkl_error_t * | mirml_mh_v_pconv (const mirml_mh_vector_t *x1, const mirml_mh_vector_t *x2, mirml_mh_vector_t **out) |
Computes a periodic convolution product of two vectors. More... | |
mirkl_error_t * mirml_mh_in_prod_ | ( | const mirml_mh_vector_t * | a, |
const mirml_mh_vector_t * | b, | ||
mirkl_size_t | i0, | ||
double * | prod | ||
) |
Inner product of two vectors from i0 downwards.
prod = a(i0:dim)^T * b(i0:dim)
mirkl_error_t * mirml_mh_m_add | ( | const mirml_mh_matrix_t * | A, |
const mirml_mh_matrix_t * | B, | ||
mirml_mh_matrix_t ** | out | ||
) |
Matrix addition A+B.
Result is returned in out.
mirkl_error_t * mirml_mh_m_mlt | ( | const mirml_mh_matrix_t * | A, |
const mirml_mh_matrix_t * | B, | ||
mirml_mh_matrix_t ** | out | ||
) |
Matrix-matrix multiplication.
A*B is returned, result stored in out.
mirkl_error_t * mirml_mh_m_sub | ( | const mirml_mh_matrix_t * | A, |
const mirml_mh_matrix_t * | B, | ||
mirml_mh_matrix_t ** | out | ||
) |
Matrix subtraction A-B.
Result is returned in out.
mirkl_error_t * mirml_mh_mmtr_mlt | ( | const mirml_mh_matrix_t * | A, |
const mirml_mh_matrix_t * | B, | ||
mirml_mh_matrix_t ** | out | ||
) |
Matrix-matrix transposed multiplication.
A*B^T is returned, and stored in out.
mirkl_error_t * mirml_mh_mtrm_mlt | ( | const mirml_mh_matrix_t * | A, |
const mirml_mh_matrix_t * | B, | ||
mirml_mh_matrix_t ** | out | ||
) |
Matrix transposed-matrix multiplication.
A^T*B is returned, result stored in out.
mirkl_error_t * mirml_mh_sm_mlt | ( | double | s, |
const mirml_mh_matrix_t * | A, | ||
mirml_mh_matrix_t ** | out | ||
) |
Scalar-matrix multiplication.
s*A is returned in out.
mirkl_error_t * mirml_mh_sv_add | ( | const mirml_mh_vector_t * | v1, |
const double | v2, | ||
mirml_mh_vector_t ** | out | ||
) |
Scalar to vector addition element-wise.
out = v1 + v2
mirkl_error_t * mirml_mh_sv_mlt | ( | double | scalar, |
const mirml_mh_vector_t * | vector, | ||
mirml_mh_vector_t ** | out | ||
) |
Scalar-vector multiplication.
out = scalar*vector
mirkl_error_t * mirml_mh_sv_sub | ( | const mirml_mh_vector_t * | v1, |
const double | v2, | ||
mirml_mh_vector_t ** | out | ||
) |
Scalar from vector subtraction element-wise.
out = v1 - v2
mirkl_error_t * mirml_mh_v_add | ( | const mirml_mh_vector_t * | v1, |
const mirml_mh_vector_t * | v2, | ||
mirml_mh_vector_t ** | out | ||
) |
Vector addition.
out = v1 + v2
mirkl_error_t * mirml_mh_v_lincomb | ( | int | n, |
const mirml_mh_vector_t * | v[], | ||
const double | a[], | ||
mirml_mh_vector_t ** | out | ||
) |
Linear combination.
Returns sum_i a[i]*v[i], a[i] real, v[i] vectors
mirkl_error_t * mirml_mh_v_linlist | ( | mirml_mh_vector_t ** | out, |
mirml_mh_vector_t * | v1, | ||
double | a1, | ||
... | |||
) |
Linear combinations taken from a list of arguments.
Example:
vi are vectors and ai are numbers (double).
mirkl_error_t * mirml_mh_v_map | ( | double(*)(double) | f, |
const mirml_mh_vector_t * | x, | ||
mirml_mh_vector_t ** | out | ||
) |
Maps function f over components of x.
out[i] = f(x[i])
mirkl_error_t * mirml_mh_v_map_ | ( | double(*)(void *, double) | f, |
void * | params, | ||
const mirml_mh_vector_t * | x, | ||
mirml_mh_vector_t ** | out | ||
) |
Similar to mirml_mh_v_map but additionally accepts pointer to user data, which is transferred to callback.
Sets out[i] = f(params, x[i]), i = 0, 1, .., dim-1
mirkl_error_t * mirml_mh_v_max | ( | const mirml_mh_vector_t * | x, |
mirkl_size_t * | max_idx, | ||
double * | maxval | ||
) |
Computes maximal component of vector.
[in] | x | Input vector. |
[out] | max_idx | Index of maximal component. |
[out] | maxval | Maximal component of input vector. |
mirkl_error_t * mirml_mh_v_min | ( | const mirml_mh_vector_t * | x, |
mirkl_size_t * | min_idx, | ||
double * | minval | ||
) |
Computes minimum component of vector.
[in] | x | Input vector. |
[out] | min_idx | Index of minimal component. |
[out] | minval | Minimal component of input vector. |
mirkl_error_t * mirml_mh_v_mltadd | ( | const mirml_mh_vector_t * | v1, |
const mirml_mh_vector_t * | v2, | ||
double | scale, | ||
mirml_mh_vector_t ** | out | ||
) |
scalar/vector multiplication and addition.
out = v1 + scale*v2
mirkl_error_t * mirml_mh_v_pconv | ( | const mirml_mh_vector_t * | x1, |
const mirml_mh_vector_t * | x2, | ||
mirml_mh_vector_t ** | out | ||
) |
Computes a periodic convolution product of two vectors.
mirkl_error_t * mirml_mh_v_slash | ( | const mirml_mh_vector_t * | x1, |
const mirml_mh_vector_t * | x2, | ||
mirml_mh_vector_t ** | out | ||
) |
Computes componentwise ratio of vectors.
out[i] = x2[i] / x1[i]
mirkl_error_t * mirml_mh_v_sort | ( | mirml_mh_vector_t * | x, |
mirml_mh_permutation_t * | order | ||
) |
Sorts vector.
Additionally generates permutation that gives the order of the components. Example: x = [1.3, 3.7, 0.5] --> [0.5, 1.3, 3.7] and the permutation is order = [2, 0, 1].
mirkl_error_t * mirml_mh_v_star | ( | const mirml_mh_vector_t * | x1, |
const mirml_mh_vector_t * | x2, | ||
mirml_mh_vector_t ** | out | ||
) |
Computes componentwise (Hadamard) product of vectors.
out[i] = x1[i] * x2[i]
mirkl_error_t * mirml_mh_v_sub | ( | const mirml_mh_vector_t * | v1, |
const mirml_mh_vector_t * | v2, | ||
mirml_mh_vector_t ** | out | ||
) |
Vector subtraction.
out = v1 - v2