|
LMMC
Lamina Mathematic core
|
稠密逐元素运算实现(Hadamard、比较、apply 及其数学函数包装)。 更多...
#include <math.h>#include "internal.h"#include "lmmc/config.h"#include "lmmc/dense.h"#include "lmmc/linear_algebra.h"函数 | |
| lmmc_status_t | lmmc_vec_hadamard (const lmmc_vec_t *a, const lmmc_vec_t *b, lmmc_vec_t *c) |
| 逐元素向量 Hadamard 乘积: \(c_i = a_i \cdot b_i\)。 | |
| lmmc_status_t | lmmc_vec_elementwise_div (const lmmc_vec_t *a, const lmmc_vec_t *b, lmmc_vec_t *c) |
| 逐元素向量除法: \(c_i = a_i / b_i\)。 | |
| lmmc_status_t | lmmc_vec_elementwise_pow (const lmmc_vec_t *a, const lmmc_vec_t *b, lmmc_vec_t *c) |
| 逐元素向量幂运算: \(c_i = a_i^{b_i}\)。 | |
| lmmc_status_t | lmmc_mat_hadamard (const lmmc_mat_t *a, const lmmc_mat_t *b, lmmc_mat_t *c) |
| 逐元素矩阵 Hadamard 乘积: \(C_{ij} = A_{ij} \cdot B_{ij}\)。 | |
| lmmc_status_t | lmmc_mat_elementwise_div (const lmmc_mat_t *a, const lmmc_mat_t *b, lmmc_mat_t *c) |
| 逐元素矩阵除法: \(C_{ij} = A_{ij} / B_{ij}\)。 | |
| lmmc_status_t | lmmc_mat_elementwise_pow (const lmmc_mat_t *a, const lmmc_mat_t *b, lmmc_mat_t *c) |
| 逐元素矩阵幂运算: \(C_{ij} = A_{ij}^{B_{ij}}\)。 | |
| lmmc_status_t | lmmc_vec_cmp_gt (const lmmc_vec_t *a, const lmmc_vec_t *b, int *out) |
| 逐元素向量大于比较: \(\text{out}[i] = (a_i > b_i) \;?\; 1 : 0\)。 | |
| lmmc_status_t | lmmc_vec_cmp_lt (const lmmc_vec_t *a, const lmmc_vec_t *b, int *out) |
| 逐元素向量小于比较: \(\text{out}[i] = (a_i < b_i) \;?\; 1 : 0\)。 | |
| lmmc_status_t | lmmc_vec_cmp_ge (const lmmc_vec_t *a, const lmmc_vec_t *b, int *out) |
| 逐元素向量大于等于比较: \(\text{out}[i] = (a_i \geq b_i) \;?\; 1 : 0\)。 | |
| lmmc_status_t | lmmc_vec_cmp_le (const lmmc_vec_t *a, const lmmc_vec_t *b, int *out) |
| 逐元素向量小于等于比较: \(\text{out}[i] = (a_i \leq b_i) \;?\; 1 : 0\)。 | |
| lmmc_status_t | lmmc_vec_cmp_eq (const lmmc_vec_t *a, const lmmc_vec_t *b, lmmc_real_t tol, int *out) |
| 逐元素向量近似相等比较: \(\text{out}[i] = (|a_i - b_i| \leq \text{tol}) \;?\; 1 : 0\)。 | |
| lmmc_status_t | lmmc_vec_cross (const lmmc_vec_t *a, const lmmc_vec_t *b, lmmc_vec_t *c) |
| 计算三维向量叉积: \(c = a \times b\)。 | |
| lmmc_status_t | lmmc_vec_apply (const lmmc_vec_t *in, lmmc_real_t(*func)(lmmc_real_t), lmmc_vec_t *out) |
| 对向量逐元素应用标量函数: \(\text{out}[i] = \text{func}(\text{in}[i])\)。 | |
| lmmc_status_t | lmmc_mat_apply (const lmmc_mat_t *in, lmmc_real_t(*func)(lmmc_real_t), lmmc_mat_t *out) |
| 对矩阵逐元素应用标量函数: \(\text{out}[i][j] = \text{func}(\text{in}[i][j])\)。 | |
| lmmc_status_t | lmmc_vec_apply_sin (const lmmc_vec_t *in, lmmc_vec_t *out) |
| 对向量逐元素求正弦: \(\text{out}[i] = \sin(\text{in}[i])\)。 | |
| lmmc_status_t | lmmc_vec_apply_cos (const lmmc_vec_t *in, lmmc_vec_t *out) |
| 对向量逐元素求余弦: \(\text{out}[i] = \cos(\text{in}[i])\)。 | |
| lmmc_status_t | lmmc_vec_apply_exp (const lmmc_vec_t *in, lmmc_vec_t *out) |
| 对向量逐元素求自然指数: \(\text{out}[i] = \exp(\text{in}[i])\)。 | |
| lmmc_status_t | lmmc_vec_apply_log (const lmmc_vec_t *in, lmmc_vec_t *out) |
| 对向量逐元素求自然对数: \(\text{out}[i] = \ln(\text{in}[i])\)。 | |
| lmmc_status_t | lmmc_vec_apply_sqrt (const lmmc_vec_t *in, lmmc_vec_t *out) |
| 对向量逐元素求平方根: \(\text{out}[i] = \sqrt{\text{in}[i]}\)。 | |
| lmmc_status_t | lmmc_vec_apply_abs (const lmmc_vec_t *in, lmmc_vec_t *out) |
| 对向量逐元素求绝对值: \(\text{out}[i] = |\text{in}[i]|\)。 | |
| lmmc_status_t | lmmc_mat_apply_sin (const lmmc_mat_t *in, lmmc_mat_t *out) |
| 对矩阵逐元素求正弦: \(\text{out}[i][j] = \sin(\text{in}[i][j])\)。 | |
| lmmc_status_t | lmmc_mat_apply_cos (const lmmc_mat_t *in, lmmc_mat_t *out) |
| 对矩阵逐元素求余弦: \(\text{out}[i][j] = \cos(\text{in}[i][j])\)。 | |
| lmmc_status_t | lmmc_mat_apply_exp (const lmmc_mat_t *in, lmmc_mat_t *out) |
| 对矩阵逐元素求自然指数: \(\text{out}[i][j] = \exp(\text{in}[i][j])\)。 | |
| lmmc_status_t | lmmc_mat_apply_log (const lmmc_mat_t *in, lmmc_mat_t *out) |
| 对矩阵逐元素求自然对数: \(\text{out}[i][j] = \ln(\text{in}[i][j])\)。 | |
| lmmc_status_t | lmmc_mat_apply_sqrt (const lmmc_mat_t *in, lmmc_mat_t *out) |
| 对矩阵逐元素求平方根: \(\text{out}[i][j] = \sqrt{\text{in}[i][j]}\)。 | |
| lmmc_status_t | lmmc_mat_apply_abs (const lmmc_mat_t *in, lmmc_mat_t *out) |
| 对矩阵逐元素求绝对值: \(\text{out}[i][j] = |\text{in}[i][j]|\)。 | |
稠密逐元素运算实现(Hadamard、比较、apply 及其数学函数包装)。
在文件 dense_elementwise.c 中定义.
| lmmc_status_t lmmc_vec_hadamard | ( | const lmmc_vec_t * | a, |
| const lmmc_vec_t * | b, | ||
| lmmc_vec_t * | c ) |
逐元素向量 Hadamard 乘积: \(c_i = a_i \cdot b_i\)。
a,b,c 长度须相同;c 可与 a 或 b 别名(就地运算)。
| [in] | a | 输入向量。 |
| [in] | b | 输入向量。 |
| [out] | c | 输出向量,覆写原内容。 |
在文件 dense_elementwise.c 第 12 行定义.
引用了 lmmc_vec_t::data, LMMC_REAL_CLEAR, LMMC_REAL_INIT, LMMC_REAL_MUL, LMMC_REAL_SET, LMMC_STATUS_DIMENSION_MISMATCH, LMMC_STATUS_INVALID_ARGUMENT, LMMC_STATUS_OK, lmmc_vec_hadamard() , 以及 lmmc_vec_t::size.
被这些函数引用 lmmc_vec_hadamard().
| lmmc_status_t lmmc_vec_elementwise_div | ( | const lmmc_vec_t * | a, |
| const lmmc_vec_t * | b, | ||
| lmmc_vec_t * | c ) |
逐元素向量除法: \(c_i = a_i / b_i\)。
写入输出前扫描 b 的全部元素,检测零值。 a,b,c 长度须相同;c 可与 a 或 b 别名。
| [in] | a | 被除向量。 |
| [in] | b | 除数向量。 |
| [out] | c | 输出向量,覆写原内容。 |
在文件 dense_elementwise.c 第 36 行定义.
引用了 lmmc_vec_t::data, LMMC_REAL_CLEAR, LMMC_REAL_CMP, LMMC_REAL_DIV, LMMC_REAL_INIT, LMMC_REAL_SET, LMMC_REAL_SET_D, LMMC_STATUS_DIMENSION_MISMATCH, LMMC_STATUS_INVALID_ARGUMENT, LMMC_STATUS_NUMERICAL_FAILURE, LMMC_STATUS_OK, lmmc_vec_elementwise_div() , 以及 lmmc_vec_t::size.
被这些函数引用 lmmc_vec_elementwise_div().
| lmmc_status_t lmmc_vec_elementwise_pow | ( | const lmmc_vec_t * | a, |
| const lmmc_vec_t * | b, | ||
| lmmc_vec_t * | c ) |
逐元素向量幂运算: \(c_i = a_i^{b_i}\)。
使用标准 pow() 函数;a,b,c 长度须相同;c 可与 a 或 b 别名。
| [in] | a | 底数向量。 |
| [in] | b | 指数向量。 |
| [out] | c | 输出向量,覆写原内容。 |
在文件 dense_elementwise.c 第 72 行定义.
引用了 lmmc_vec_t::data, LMMC_STATUS_DIMENSION_MISMATCH, LMMC_STATUS_INVALID_ARGUMENT, LMMC_STATUS_OK, lmmc_vec_elementwise_pow() , 以及 lmmc_vec_t::size.
被这些函数引用 lmmc_vec_elementwise_pow().
| lmmc_status_t lmmc_mat_hadamard | ( | const lmmc_mat_t * | a, |
| const lmmc_mat_t * | b, | ||
| lmmc_mat_t * | c ) |
逐元素矩阵 Hadamard 乘积: \(C_{ij} = A_{ij} \cdot B_{ij}\)。
a,b,c 维度须完全相同;c 可与 a 或 b 别名(就地运算)。
| [in] | a | 输入矩阵。 |
| [in] | b | 输入矩阵。 |
| [out] | c | 输出矩阵,覆写原内容。 |
在文件 dense_elementwise.c 第 91 行定义.
引用了 lmmc_mat_t::cols, lmmc_mat_t::data, lmmc_mat_hadamard(), LMMC_REAL_CLEAR, LMMC_REAL_INIT, LMMC_REAL_MUL, LMMC_REAL_SET, LMMC_STATUS_DIMENSION_MISMATCH, LMMC_STATUS_INVALID_ARGUMENT, LMMC_STATUS_OK, lmmc_mat_t::rows , 以及 lmmc_mat_t::stride.
被这些函数引用 lmmc_mat_hadamard().
| lmmc_status_t lmmc_mat_elementwise_div | ( | const lmmc_mat_t * | a, |
| const lmmc_mat_t * | b, | ||
| lmmc_mat_t * | c ) |
逐元素矩阵除法: \(C_{ij} = A_{ij} / B_{ij}\)。
写入输出前扫描 b 的全部元素,检测零值。 a,b,c 维度须完全相同;c 可与 a 或 b 别名。
| [in] | a | 被除矩阵。 |
| [in] | b | 除数矩阵。 |
| [out] | c | 输出矩阵,覆写原内容。 |
在文件 dense_elementwise.c 第 120 行定义.
引用了 lmmc_mat_t::cols, lmmc_mat_t::data, lmmc_mat_elementwise_div(), LMMC_REAL_CLEAR, LMMC_REAL_CMP, LMMC_REAL_DIV, LMMC_REAL_INIT, LMMC_REAL_SET, LMMC_REAL_SET_D, LMMC_STATUS_DIMENSION_MISMATCH, LMMC_STATUS_INVALID_ARGUMENT, LMMC_STATUS_NUMERICAL_FAILURE, LMMC_STATUS_OK, lmmc_mat_t::rows , 以及 lmmc_mat_t::stride.
被这些函数引用 lmmc_mat_elementwise_div().
| lmmc_status_t lmmc_mat_elementwise_pow | ( | const lmmc_mat_t * | a, |
| const lmmc_mat_t * | b, | ||
| lmmc_mat_t * | c ) |
逐元素矩阵幂运算: \(C_{ij} = A_{ij}^{B_{ij}}\)。
使用标准 pow() 函数;a,b,c 维度须完全相同;c 可与 a 或 b 别名。
| [in] | a | 底数矩阵。 |
| [in] | b | 指数矩阵。 |
| [out] | c | 输出矩阵,覆写原内容。 |
在文件 dense_elementwise.c 第 163 行定义.
引用了 lmmc_mat_t::cols, lmmc_mat_t::data, lmmc_mat_elementwise_pow(), LMMC_STATUS_DIMENSION_MISMATCH, LMMC_STATUS_INVALID_ARGUMENT, LMMC_STATUS_OK, lmmc_mat_t::rows , 以及 lmmc_mat_t::stride.
被这些函数引用 lmmc_mat_elementwise_pow().
| lmmc_status_t lmmc_vec_cmp_gt | ( | const lmmc_vec_t * | a, |
| const lmmc_vec_t * | b, | ||
| int * | out ) |
逐元素向量大于比较: \(\text{out}[i] = (a_i > b_i) \;?\; 1 : 0\)。
a,b 长度须相同;out 数组由调用方预分配,长度至少为 a->size。
| [in] | a | 输入向量。 |
| [in] | b | 输入向量。 |
| [out] | out | 输出整数数组,由调用方预分配。 |
在文件 dense_elementwise.c 第 187 行定义.
引用了 lmmc_vec_t::data, LMMC_REAL_CMP, LMMC_STATUS_DIMENSION_MISMATCH, LMMC_STATUS_INVALID_ARGUMENT, LMMC_STATUS_OK, lmmc_vec_cmp_gt() , 以及 lmmc_vec_t::size.
被这些函数引用 lmmc_vec_cmp_gt().
| lmmc_status_t lmmc_vec_cmp_lt | ( | const lmmc_vec_t * | a, |
| const lmmc_vec_t * | b, | ||
| int * | out ) |
逐元素向量小于比较: \(\text{out}[i] = (a_i < b_i) \;?\; 1 : 0\)。
a,b 长度须相同;out 数组由调用方预分配。
| [in] | a | 输入向量。 |
| [in] | b | 输入向量。 |
| [out] | out | 输出整数数组,由调用方预分配。 |
在文件 dense_elementwise.c 第 205 行定义.
引用了 lmmc_vec_t::data, LMMC_REAL_CMP, LMMC_STATUS_DIMENSION_MISMATCH, LMMC_STATUS_INVALID_ARGUMENT, LMMC_STATUS_OK, lmmc_vec_cmp_lt() , 以及 lmmc_vec_t::size.
被这些函数引用 lmmc_vec_cmp_lt().
| lmmc_status_t lmmc_vec_cmp_ge | ( | const lmmc_vec_t * | a, |
| const lmmc_vec_t * | b, | ||
| int * | out ) |
逐元素向量大于等于比较: \(\text{out}[i] = (a_i \geq b_i) \;?\; 1 : 0\)。
a,b 长度须相同;out 数组由调用方预分配。
| [in] | a | 输入向量。 |
| [in] | b | 输入向量。 |
| [out] | out | 输出整数数组,由调用方预分配。 |
在文件 dense_elementwise.c 第 223 行定义.
引用了 lmmc_vec_t::data, LMMC_REAL_CMP, LMMC_STATUS_DIMENSION_MISMATCH, LMMC_STATUS_INVALID_ARGUMENT, LMMC_STATUS_OK, lmmc_vec_cmp_ge() , 以及 lmmc_vec_t::size.
被这些函数引用 lmmc_vec_cmp_ge().
| lmmc_status_t lmmc_vec_cmp_le | ( | const lmmc_vec_t * | a, |
| const lmmc_vec_t * | b, | ||
| int * | out ) |
逐元素向量小于等于比较: \(\text{out}[i] = (a_i \leq b_i) \;?\; 1 : 0\)。
a,b 长度须相同;out 数组由调用方预分配。
| [in] | a | 输入向量。 |
| [in] | b | 输入向量。 |
| [out] | out | 输出整数数组,由调用方预分配。 |
在文件 dense_elementwise.c 第 241 行定义.
引用了 lmmc_vec_t::data, LMMC_REAL_CMP, LMMC_STATUS_DIMENSION_MISMATCH, LMMC_STATUS_INVALID_ARGUMENT, LMMC_STATUS_OK, lmmc_vec_cmp_le() , 以及 lmmc_vec_t::size.
被这些函数引用 lmmc_vec_cmp_le().
| lmmc_status_t lmmc_vec_cmp_eq | ( | const lmmc_vec_t * | a, |
| const lmmc_vec_t * | b, | ||
| lmmc_real_t | tol, | ||
| int * | out ) |
逐元素向量近似相等比较: \(\text{out}[i] = (|a_i - b_i| \leq \text{tol}) \;?\; 1 : 0\)。
a,b 长度须相同;out 数组由调用方预分配。
| [in] | a | 输入向量。 |
| [in] | b | 输入向量。 |
| [in] | tol | 容差阈值(非负)。 |
| [out] | out | 输出整数数组,由调用方预分配。 |
在文件 dense_elementwise.c 第 259 行定义.
引用了 lmmc_vec_t::data, LMMC_REAL_ABS, LMMC_REAL_CLEAR, LMMC_REAL_CMP, LMMC_REAL_INIT, LMMC_REAL_SUB, LMMC_STATUS_DIMENSION_MISMATCH, LMMC_STATUS_INVALID_ARGUMENT, LMMC_STATUS_OK, lmmc_vec_cmp_eq() , 以及 lmmc_vec_t::size.
被这些函数引用 lmmc_vec_cmp_eq().
| lmmc_status_t lmmc_vec_cross | ( | const lmmc_vec_t * | a, |
| const lmmc_vec_t * | b, | ||
| lmmc_vec_t * | c ) |
计算三维向量叉积: \(c = a \times b\)。
公式:
支持别名(c 可与 a 或 b 为同一向量),内部使用临时变量计算。
| [in] | a | 输入向量(不被修改),长度必须为 3。 |
| [in] | b | 输入向量(不被修改),长度必须为 3。 |
| [out] | c | 输出向量,长度必须为 3,内容被覆写。 |
在文件 dense_elementwise.c 第 286 行定义.
引用了 lmmc_vec_t::data, LMMC_REAL_CLEAR, LMMC_REAL_INIT, LMMC_REAL_MUL, LMMC_REAL_SET, LMMC_REAL_SUB, LMMC_STATUS_DIMENSION_MISMATCH, LMMC_STATUS_INVALID_ARGUMENT, LMMC_STATUS_OK, lmmc_vec_cross() , 以及 lmmc_vec_t::size.
被这些函数引用 lmmc_vec_cross().
| lmmc_status_t lmmc_vec_apply | ( | const lmmc_vec_t * | in, |
| lmmc_real_t(* | func )(lmmc_real_t), | ||
| lmmc_vec_t * | out ) |
对向量逐元素应用标量函数: \(\text{out}[i] = \text{func}(\text{in}[i])\)。
支持就地操作( in 与 out 可指向同一向量)。
| [in] | in | 输入向量(in == out 时就地更新)。 |
| [in] | func | 标量函数指针,接受一个 lmmc_real_t 参数并返回 lmmc_real_t。须为有效指针。 |
| [out] | out | 输出向量,长度须与 in 相同。覆写原内容。 |
在文件 dense_elementwise.c 第 334 行定义.
引用了 lmmc_vec_t::data, LMMC_STATUS_DIMENSION_MISMATCH, LMMC_STATUS_INVALID_ARGUMENT, LMMC_STATUS_OK, lmmc_vec_apply() , 以及 lmmc_vec_t::size.
被这些函数引用 lmmc_vec_apply(), lmmc_vec_apply_abs(), lmmc_vec_apply_cos(), lmmc_vec_apply_exp(), lmmc_vec_apply_log(), lmmc_vec_apply_sin() , 以及 lmmc_vec_apply_sqrt().
| lmmc_status_t lmmc_mat_apply | ( | const lmmc_mat_t * | in, |
| lmmc_real_t(* | func )(lmmc_real_t), | ||
| lmmc_mat_t * | out ) |
对矩阵逐元素应用标量函数: \(\text{out}[i][j] = \text{func}(\text{in}[i][j])\)。
支持就地操作( in 与 out 可指向同一矩阵)。按各自的 stride 遍历。
| [in] | in | 输入矩阵(in == out 时就地更新)。 |
| [in] | func | 标量函数指针,接受一个 lmmc_real_t 参数并返回 lmmc_real_t。须为有效指针。 |
| [out] | out | 输出矩阵,维度须与 in 相同(rows 和 cols 均相等)。覆写原内容。 |
在文件 dense_elementwise.c 第 353 行定义.
引用了 lmmc_mat_t::cols, lmmc_mat_t::data, lmmc_mat_apply(), LMMC_STATUS_DIMENSION_MISMATCH, LMMC_STATUS_INVALID_ARGUMENT, LMMC_STATUS_OK, lmmc_mat_t::rows , 以及 lmmc_mat_t::stride.
被这些函数引用 lmmc_mat_apply(), lmmc_mat_apply_abs(), lmmc_mat_apply_cos(), lmmc_mat_apply_exp(), lmmc_mat_apply_log(), lmmc_mat_apply_sin() , 以及 lmmc_mat_apply_sqrt().
| lmmc_status_t lmmc_vec_apply_sin | ( | const lmmc_vec_t * | in, |
| lmmc_vec_t * | out ) |
对向量逐元素求正弦: \(\text{out}[i] = \sin(\text{in}[i])\)。
等价于 lmmc_vec_apply(in, sin, out)。
| [in] | in | 输入向量(in == out 时就地更新)。 |
| [out] | out | 输出向量,长度须与 in 相同。覆写原内容。 |
在文件 dense_elementwise.c 第 375 行定义.
引用了 lmmc_vec_apply() , 以及 lmmc_vec_apply_sin().
被这些函数引用 lmmc_vec_apply_sin().
| lmmc_status_t lmmc_vec_apply_cos | ( | const lmmc_vec_t * | in, |
| lmmc_vec_t * | out ) |
对向量逐元素求余弦: \(\text{out}[i] = \cos(\text{in}[i])\)。
等价于 lmmc_vec_apply(in, cos, out)。
| [in] | in | 输入向量(in == out 时就地更新)。 |
| [out] | out | 输出向量,长度须与 in 相同。覆写原内容。 |
在文件 dense_elementwise.c 第 380 行定义.
引用了 lmmc_vec_apply() , 以及 lmmc_vec_apply_cos().
被这些函数引用 lmmc_vec_apply_cos().
| lmmc_status_t lmmc_vec_apply_exp | ( | const lmmc_vec_t * | in, |
| lmmc_vec_t * | out ) |
对向量逐元素求自然指数: \(\text{out}[i] = \exp(\text{in}[i])\)。
等价于 lmmc_vec_apply(in, exp, out)。
| [in] | in | 输入向量(in == out 时就地更新)。 |
| [out] | out | 输出向量,长度须与 in 相同。覆写原内容。 |
在文件 dense_elementwise.c 第 385 行定义.
引用了 lmmc_vec_apply() , 以及 lmmc_vec_apply_exp().
被这些函数引用 lmmc_vec_apply_exp().
| lmmc_status_t lmmc_vec_apply_log | ( | const lmmc_vec_t * | in, |
| lmmc_vec_t * | out ) |
对向量逐元素求自然对数: \(\text{out}[i] = \ln(\text{in}[i])\)。
等价于 lmmc_vec_apply(in, log, out)。
| [in] | in | 输入向量(in == out 时就地更新)。 |
| [out] | out | 输出向量,长度须与 in 相同。覆写原内容。 |
在文件 dense_elementwise.c 第 390 行定义.
引用了 lmmc_vec_apply() , 以及 lmmc_vec_apply_log().
被这些函数引用 lmmc_vec_apply_log().
| lmmc_status_t lmmc_vec_apply_sqrt | ( | const lmmc_vec_t * | in, |
| lmmc_vec_t * | out ) |
对向量逐元素求平方根: \(\text{out}[i] = \sqrt{\text{in}[i]}\)。
等价于 lmmc_vec_apply(in, sqrt, out)。
| [in] | in | 输入向量(in == out 时就地更新)。 |
| [out] | out | 输出向量,长度须与 in 相同。覆写原内容。 |
在文件 dense_elementwise.c 第 395 行定义.
引用了 lmmc_vec_apply() , 以及 lmmc_vec_apply_sqrt().
被这些函数引用 lmmc_vec_apply_sqrt().
| lmmc_status_t lmmc_vec_apply_abs | ( | const lmmc_vec_t * | in, |
| lmmc_vec_t * | out ) |
对向量逐元素求绝对值: \(\text{out}[i] = |\text{in}[i]|\)。
等价于 lmmc_vec_apply(in, fabs, out)。
| [in] | in | 输入向量(in == out 时就地更新)。 |
| [out] | out | 输出向量,长度须与 in 相同。覆写原内容。 |
在文件 dense_elementwise.c 第 400 行定义.
引用了 lmmc_vec_apply() , 以及 lmmc_vec_apply_abs().
被这些函数引用 lmmc_vec_apply_abs().
| lmmc_status_t lmmc_mat_apply_sin | ( | const lmmc_mat_t * | in, |
| lmmc_mat_t * | out ) |
对矩阵逐元素求正弦: \(\text{out}[i][j] = \sin(\text{in}[i][j])\)。
等价于 lmmc_mat_apply(in, sin, out)。
| [in] | in | 输入矩阵(in == out 时就地更新)。 |
| [out] | out | 输出矩阵,维度须与 in 相同。覆写原内容。 |
在文件 dense_elementwise.c 第 405 行定义.
引用了 lmmc_mat_apply() , 以及 lmmc_mat_apply_sin().
被这些函数引用 lmmc_mat_apply_sin().
| lmmc_status_t lmmc_mat_apply_cos | ( | const lmmc_mat_t * | in, |
| lmmc_mat_t * | out ) |
对矩阵逐元素求余弦: \(\text{out}[i][j] = \cos(\text{in}[i][j])\)。
等价于 lmmc_mat_apply(in, cos, out)。
| [in] | in | 输入矩阵(in == out 时就地更新)。 |
| [out] | out | 输出矩阵,维度须与 in 相同。覆写原内容。 |
在文件 dense_elementwise.c 第 410 行定义.
引用了 lmmc_mat_apply() , 以及 lmmc_mat_apply_cos().
被这些函数引用 lmmc_mat_apply_cos().
| lmmc_status_t lmmc_mat_apply_exp | ( | const lmmc_mat_t * | in, |
| lmmc_mat_t * | out ) |
对矩阵逐元素求自然指数: \(\text{out}[i][j] = \exp(\text{in}[i][j])\)。
等价于 lmmc_mat_apply(in, exp, out)。
| [in] | in | 输入矩阵(in == out 时就地更新)。 |
| [out] | out | 输出矩阵,维度须与 in 相同。覆写原内容。 |
在文件 dense_elementwise.c 第 415 行定义.
引用了 lmmc_mat_apply() , 以及 lmmc_mat_apply_exp().
被这些函数引用 lmmc_mat_apply_exp().
| lmmc_status_t lmmc_mat_apply_log | ( | const lmmc_mat_t * | in, |
| lmmc_mat_t * | out ) |
对矩阵逐元素求自然对数: \(\text{out}[i][j] = \ln(\text{in}[i][j])\)。
等价于 lmmc_mat_apply(in, log, out)。
| [in] | in | 输入矩阵(in == out 时就地更新)。 |
| [out] | out | 输出矩阵,维度须与 in 相同。覆写原内容。 |
在文件 dense_elementwise.c 第 420 行定义.
引用了 lmmc_mat_apply() , 以及 lmmc_mat_apply_log().
被这些函数引用 lmmc_mat_apply_log().
| lmmc_status_t lmmc_mat_apply_sqrt | ( | const lmmc_mat_t * | in, |
| lmmc_mat_t * | out ) |
对矩阵逐元素求平方根: \(\text{out}[i][j] = \sqrt{\text{in}[i][j]}\)。
等价于 lmmc_mat_apply(in, sqrt, out)。
| [in] | in | 输入矩阵(in == out 时就地更新)。 |
| [out] | out | 输出矩阵,维度须与 in 相同。覆写原内容。 |
在文件 dense_elementwise.c 第 425 行定义.
引用了 lmmc_mat_apply() , 以及 lmmc_mat_apply_sqrt().
被这些函数引用 lmmc_mat_apply_sqrt().
| lmmc_status_t lmmc_mat_apply_abs | ( | const lmmc_mat_t * | in, |
| lmmc_mat_t * | out ) |
对矩阵逐元素求绝对值: \(\text{out}[i][j] = |\text{in}[i][j]|\)。
等价于 lmmc_mat_apply(in, fabs, out)。
| [in] | in | 输入矩阵(in == out 时就地更新)。 |
| [out] | out | 输出矩阵,维度须与 in 相同。覆写原内容。 |
在文件 dense_elementwise.c 第 430 行定义.
引用了 lmmc_mat_apply() , 以及 lmmc_mat_apply_abs().
被这些函数引用 lmmc_mat_apply_abs().