LMMC
Lamina Mathematic core
Toggle main menu visibility
载入中...
搜索中...
未找到
complex.h
浏览该文件的文档.
1
9
#ifndef LMMC_COMPLEX_H
10
#define LMMC_COMPLEX_H
11
12
#include <stddef.h>
13
#include "
lmmc/config.h
"
14
#include "
lmmc/status.h
"
15
16
#ifdef __cplusplus
17
extern
"C"
{
18
#endif
19
25
typedef
struct
{
26
lmmc_real_t
real
;
27
lmmc_real_t
imag
;
28
}
lmmc_complex_t
;
29
35
typedef
struct
{
36
size_t
size
;
37
lmmc_complex_t
*
data
;
38
int
owns_data
;
39
}
lmmc_cvec_t
;
40
47
typedef
struct
{
48
size_t
rows
;
49
size_t
cols
;
50
size_t
stride
;
51
lmmc_complex_t
*
data
;
52
int
owns_data
;
53
}
lmmc_cmat_t
;
54
68
lmmc_status_t
lmmc_complex_create
(
lmmc_real_t
real,
lmmc_real_t
imag,
lmmc_complex_t
* out);
69
86
lmmc_status_t
lmmc_complex_from_polar
(
lmmc_real_t
r,
lmmc_real_t
theta,
lmmc_complex_t
* out);
87
100
lmmc_status_t
lmmc_complex_add
(
const
lmmc_complex_t
* a,
const
lmmc_complex_t
* b,
lmmc_complex_t
* out);
101
114
lmmc_status_t
lmmc_complex_sub
(
const
lmmc_complex_t
* a,
const
lmmc_complex_t
* b,
lmmc_complex_t
* out);
115
132
lmmc_status_t
lmmc_complex_mul
(
const
lmmc_complex_t
* a,
const
lmmc_complex_t
* b,
lmmc_complex_t
* out);
133
150
lmmc_status_t
lmmc_complex_div
(
const
lmmc_complex_t
* a,
const
lmmc_complex_t
* b,
lmmc_complex_t
* out);
151
163
lmmc_status_t
lmmc_complex_conj
(
const
lmmc_complex_t
* z,
lmmc_complex_t
* out);
164
176
lmmc_status_t
lmmc_complex_modulus
(
const
lmmc_complex_t
* z,
lmmc_real_t
* out);
177
191
lmmc_status_t
lmmc_complex_arg
(
const
lmmc_complex_t
* z,
lmmc_real_t
* out);
192
211
lmmc_status_t
lmmc_complex_exp
(
const
lmmc_complex_t
* z,
lmmc_complex_t
* out);
212
237
lmmc_status_t
lmmc_complex_log
(
const
lmmc_complex_t
* z,
lmmc_complex_t
* out);
238
261
lmmc_status_t
lmmc_complex_sqrt
(
const
lmmc_complex_t
* z,
lmmc_complex_t
* out);
262
281
lmmc_status_t
lmmc_complex_sin
(
const
lmmc_complex_t
* z,
lmmc_complex_t
* out);
282
299
lmmc_status_t
lmmc_complex_cos
(
const
lmmc_complex_t
* z,
lmmc_complex_t
* out);
300
323
lmmc_status_t
lmmc_complex_pow
(
const
lmmc_complex_t
* base,
const
lmmc_complex_t
* exp,
lmmc_complex_t
* out);
324
342
lmmc_status_t
lmmc_cvec_create
(
size_t
size,
lmmc_cvec_t
* out);
343
362
lmmc_status_t
lmmc_cmat_create
(
size_t
rows,
size_t
cols,
lmmc_cmat_t
* out);
363
377
void
lmmc_cvec_destroy
(
lmmc_cvec_t
* vec);
378
392
void
lmmc_cmat_destroy
(
lmmc_cmat_t
* mat);
393
394
#ifdef __cplusplus
395
}
396
#endif
397
398
#endif
lmmc_complex_sin
lmmc_status_t lmmc_complex_sin(const lmmc_complex_t *z, lmmc_complex_t *out)
复数正弦: .
定义
complex.c:404
lmmc_complex_exp
lmmc_status_t lmmc_complex_exp(const lmmc_complex_t *z, lmmc_complex_t *out)
复数指数函数: ,其中 .
定义
complex.c:247
lmmc_cvec_t::owns_data
int owns_data
定义
complex.h:38
lmmc_complex_add
lmmc_status_t lmmc_complex_add(const lmmc_complex_t *a, const lmmc_complex_t *b, lmmc_complex_t *out)
复数加法: .
定义
complex.c:57
lmmc_cmat_t::cols
size_t cols
定义
complex.h:49
lmmc_cmat_t::data
lmmc_complex_t * data
定义
complex.h:51
lmmc_complex_create
lmmc_status_t lmmc_complex_create(lmmc_real_t real, lmmc_real_t imag, lmmc_complex_t *out)
从笛卡尔坐标构造复数.
定义
complex.c:25
lmmc_complex_cos
lmmc_status_t lmmc_complex_cos(const lmmc_complex_t *z, lmmc_complex_t *out)
复数余弦: .
定义
complex.c:428
lmmc_complex_conj
lmmc_status_t lmmc_complex_conj(const lmmc_complex_t *z, lmmc_complex_t *out)
复数共轭: .
定义
complex.c:204
lmmc_cvec_create
lmmc_status_t lmmc_cvec_create(size_t size, lmmc_cvec_t *out)
分配并初始化一个长度为 size 的复数向量,所有元素置零.
定义
complex.c:558
lmmc_complex_arg
lmmc_status_t lmmc_complex_arg(const lmmc_complex_t *z, lmmc_real_t *out)
复数辐角: .
定义
complex.c:235
lmmc_complex_mul
lmmc_status_t lmmc_complex_mul(const lmmc_complex_t *a, const lmmc_complex_t *b, lmmc_complex_t *out)
复数乘法: .
定义
complex.c:149
lmmc_cmat_create
lmmc_status_t lmmc_cmat_create(size_t rows, size_t cols, lmmc_cmat_t *out)
分配并初始化一个 rows x cols 的复数矩阵,所有元素置零.
定义
complex.c:583
lmmc_complex_pow
lmmc_status_t lmmc_complex_pow(const lmmc_complex_t *base, const lmmc_complex_t *exp, lmmc_complex_t *out)
复数幂: .
定义
complex.c:518
lmmc_cvec_t::data
lmmc_complex_t * data
定义
complex.h:37
lmmc_complex_log
lmmc_status_t lmmc_complex_log(const lmmc_complex_t *z, lmmc_complex_t *out)
复数主值对数: .
定义
complex.c:280
lmmc_complex_t::real
lmmc_real_t real
定义
complex.h:26
lmmc_complex_sqrt
lmmc_status_t lmmc_complex_sqrt(const lmmc_complex_t *z, lmmc_complex_t *out)
采用缩放算法计算复数主值平方根.
定义
complex.c:331
lmmc_cmat_t::stride
size_t stride
定义
complex.h:50
lmmc_complex_from_polar
lmmc_status_t lmmc_complex_from_polar(lmmc_real_t r, lmmc_real_t theta, lmmc_complex_t *out)
从极坐标构造复数.
定义
complex.c:35
lmmc_complex_modulus
lmmc_status_t lmmc_complex_modulus(const lmmc_complex_t *z, lmmc_real_t *out)
采用缩放计算复数模: .
定义
complex.c:217
lmmc_cmat_t::owns_data
int owns_data
定义
complex.h:52
lmmc_cmat_destroy
void lmmc_cmat_destroy(lmmc_cmat_t *mat)
销毁复数矩阵,释放其拥有的底层缓冲区.
定义
complex.c:626
lmmc_complex_t::imag
lmmc_real_t imag
定义
complex.h:27
lmmc_complex_sub
lmmc_status_t lmmc_complex_sub(const lmmc_complex_t *a, const lmmc_complex_t *b, lmmc_complex_t *out)
复数减法: .
定义
complex.c:70
lmmc_cvec_destroy
void lmmc_cvec_destroy(lmmc_cvec_t *vec)
销毁复数向量,释放其拥有的底层缓冲区.
定义
complex.c:613
lmmc_complex_div
lmmc_status_t lmmc_complex_div(const lmmc_complex_t *a, const lmmc_complex_t *b, lmmc_complex_t *out)
复数除法: .
定义
complex.c:169
lmmc_cmat_t::rows
size_t rows
定义
complex.h:48
lmmc_cvec_t::size
size_t size
定义
complex.h:36
lmmc_cmat_t
复数稠密矩阵(行优先存储).
定义
complex.h:47
lmmc_complex_t
复数类型,包含实部与虚部.
定义
complex.h:25
lmmc_cvec_t
复数稠密向量.
定义
complex.h:35
config.h
LMMC binary real type and arithmetic spelling.
lmmc_real_t
double lmmc_real_t
Public and internal LMMC real type.
定义
config.h:28
status.h
LMMC 通用状态码定义.
lmmc_status_t
lmmc_status_t
LMMC 库统一返回的状态码.
定义
status.h:22
lmmc
complex.h
生成于
, 为 LMMC使用
1.18.0