跳转到内容

C 编程/complex.h

来自维基教科书,开放的书籍,为开放的世界

complex.h 是一个头文件,定义了复数运算的功能。[1] 这些函数使用内置类型 complex,该类型在 C 的 C99 修订版中引入。

不应将此头文件与 C++ 标准库头文件 <complex> 混淆,后者以完全不同的方式实现复数(作为模板类,complex<T>)。

通用宏

  • complex - _Complex 的别名
  • _Complex_I - 常量,其类型为 "const float _Complex",值为虚数单位 I,I*I=-1

仅为兼容 `C99 Annex G` 的编译器模式定义 - 虚数类型的原生支持(这非常罕见,因为 Annex G 在数学上是错误的[2]

  • imaginary - _Imaginary 的别名
  • _Imaginary_I 展开为类型为 const float _Imaginary 的常量表达式,其值为虚数单位。

I 的通用别名

  • I - 如果定义了 _Imaginary_I,则为 _Imaginary_I 的别名,否则 - 为 _Complex_I 的别名

应用程序可以在干扰内部值的情况下取消定义 complex、imaginary 和 I 宏。

函数概述

[编辑 | 编辑源代码]

complex.h 中声明的每个函数都有三个版本,每个版本都使用不同的浮点类型(doublefloatlong double)。这里只列出了每个函数的 double 版本;要使用 float(或 long double)版本,请在函数名称后面添加 f(或 l,分别)(例如,cabsfcabsl)。

请注意,所有角度均以弧度为单位。

基本运算
cabs 计算绝对值
carg 计算复数的参数
cimag 计算复数的虚部
creal 计算复数的实部
conj 计算复共轭
cproj 计算复数到黎曼球面的投影
指数运算
cexp 计算复指数
clog 计算复对数
csqrt 计算复平方根
cpow 计算复数幂
三角运算
csin 计算复正弦
ccos 计算复余弦
ctan 计算复正切
casin 计算复反正弦
cacos 计算复反余弦
catan 计算复反正切
双曲运算
csinh 计算复双曲正弦
ccosh 计算复双曲余弦
ctanh 计算复双曲正切
casinh 计算复双曲反正弦
cacosh 计算复双曲反余弦
catanh 计算复双曲反正切

参考资料

[编辑 | 编辑源代码]
  1. complex.h: 复数运算 – 基本定义参考,单一 UNIX® 规范,来自开放组的第 7 版
  2. Dr. Dobb's 杂志:面向专业程序员的软件工具,第 27 卷 "Annex G 中的许多结果纯粹是发明,在数学上是不正确的"
华夏公益教科书