复数的向量计算

复数的向量计算

当前飞腾CPU并不支持复数的向量计算。

这里复数向量计算和数学教科书上的不太一样。

1. 基本描述

单精度:

一个128位向量寄存器描述一个单精度复数

单精度虚部 I单精度实部 R

一个128位向量寄存器描述两个单精度复数

单精度虚部 I1单精度实部 R1单精度虚部 I0单精度实部 R0

双精度:

一个128位向量寄存器只能描述一个双精度复数

双精度虚部 I双精度实部 R

2. 复数的旋转

虚部实部
最初值IR
逆时针旋转90R-I
逆时针旋转180-I-R
逆时针旋转180-R-I

 3. 复数加法指令

        第二个源向量寄存器内的复数逆时针旋转(90或270度)操作后,与第一个源向量寄存器的复数相加,并将结果写入目标向量寄存器。

指令

第一个源

向量寄存器

第二个源

向量寄存器

目标

向量寄存器

逆时针

旋转

fcadd v0,2d, v1,2d, v2,2d, 90v1.2dv2.2dv0.2d90度
fcadd v0,4s, v1,4s, v2,4s, 270v1.4sv2.4sv0.4s270度

 4. 复数乘加指令

        第二个源向量寄存器内的复数逆时针旋转(0,90,180和270度)操作后,旋转后的复数与第一个源向量寄存器的实部或虚部(只选其中一个,而不是分别)相乘,并将相乘后的复数与目标向量寄存器相加,最终将累加值写入目标向量寄存器。

指令

第一个源

向量寄存器/实部还是虚部

第二个源

向量寄存器

目标

向量寄存器

逆时针

旋转

fcmla v0,2d, v1,2d, v2,2d, 0v1.2d的实部v2.2dv0.2d0度
fcmla v0,4s, v1,4s, v2,4s, 90v1.4s的虚部v2.4sv0.4s90度
fcmla v0,2d, v1,2d, v2,2d, 180v1.2d的实部v2.2dv0.2d180度
fcmla v0,4s, v1,4s, v2,4s, 270v1.4s的虚部v2.4sv0.4s270度

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值