GSL的复数

复数

       本章描述的函数提供了对复数的支持。算法尽量避免不必要的向上溢出和向下溢出的调整,允许函数在尽可能多的复杂平面上求值。

      对于多值函数,选择分支要遵循Abramowitz和Stegun的惯例。函数返回与GNU Calc中相同的主值,返回与“Common Lisp, The Language (Second Edition)”1和HP-28/48系列计算器中相同的主值。

      复数类型在头文件gsl_complex中定义,对应的复函数和算术运算在gsl_complex_math.h中定义。

5.1 复数表示形式

    复数使用类型gsl_complex表示。这种类型的内部表示形式可能因平台而异,不应直接访问。下面描述的函数和宏允许以可移植的方式操作复数。

    作为参考,gsl_complex类型的默认形式由以下结构给出:

typedef struct
{
  double dat[2];
} gsl_complex;

    实部和虚部存储在两个元素数组的相邻元素中。这消除了实部和虚部之间的任何填充(dat[0]和dat[1]),允许将结构正确地映射到打包的复杂数组。

gsl_complex gsl_complex_rect(double x, double y)

函数使用直角笛卡儿分量(x,y)来返回复数z = x + iy。当定义了HAVE_INLINE时,将使用该函数的内联版本。

gsl_complex gsl_complex_polar(double r, double theta)

函数返回复数z = r exp ()= r (cos(θ) + isin(θ))从极坐标表示法(r, theta)

GSL_REAL(z)

GSL_IMAG(z)

这两个宏返回复数z的实部和虚部。

GSL_SET_COMPLEX(zp, x, y)

        本宏使用笛卡尔分量(x, y)来设置zp指向的复数的实部和虚部。例如:

设置z为3+4i。

GSL_SET_COMPLEX(&z, 3, 4)

GSL_SET_REAL(zp, x)

GSL_SET_IMAG(zp, y)

这两个宏允许单独设置zp所指向的复数的实部和虚部。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值