Ai
6 Star 16 Fork 9

莫钧/SignalSim

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
克隆/下载
CommonOps.cpp 2.12 KB
一键复制 编辑 原始数据 按行查看 历史
Jun Mo 提交于 2020-07-14 07:08 +08:00 . initial version
//----------------------------------------------------------------------
// CommonOps.cpp:
// Common operation class and function implementation
//
// Copyright (C) 2020-2029 by Jun Mo, All rights reserved.
//
//----------------------------------------------------------------------
#include "CommonOps.h"
int __builtin_popcount(unsigned int data)
{
data = (data & 0x55555555) + ((data >> 1) & 0x55555555);
data = (data & 0x33333333) + ((data >> 2) & 0x33333333);
data = (data & 0x0f0f0f0f) + ((data >> 4) & 0x0f0f0f0f);
data = (data & 0x00ff00ff) + ((data >> 8) & 0x00ff00ff);
data = (data & 0x0000ffff) + ((data >> 16) & 0x0000ffff);
return data;
}
int __builtin_clz(unsigned int data)
{
if (data == 0)
return 32;
data |= data >> 1;
data |= data >> 2;
data |= data >> 4;
data |= data >> 8;
data |= data >> 16;
return 32 - __builtin_popcount(data);
}
complex_int complex_int::operator + (complex_int data) { return complex_int(this->real+data.real, this->imag+data.imag); }
void complex_int::operator += (complex_int data) { this->real += data.real; this->imag += data.imag; }
complex_int complex_int::operator - (complex_int data) { return complex_int(this->real-data.real, this->imag-data.imag); }
void complex_int::operator -= (complex_int data) { this->real -= data.real; this->imag -= data.imag; }
complex_int complex_int::operator * (complex_int data)
{
complex_int result;
result.real = (this->real) * (data.real) - (this->imag) * (data.imag);
result.imag = (this->real) * (data.imag) + (this->imag) * (data.real);
return result;
}
void complex_int::operator *= (complex_int data)
{
int temp = this->real;
this->real = (this->real) * (data.real) - (this->imag) * (data.imag);
this->imag = (temp) * (data.imag) + (this->imag) * (data.real);
}
complex_int complex_int::operator * (int data) { return complex_int((this->real)*data, (this->imag)*data); }
void complex_int::operator *= (int data) { this->real *= data; this->imag *= data; }
complex_int complex_int::operator - () { return complex_int(-(this->real), -(this->imag)); }
complex_int complex_int::operator ~ () { return complex_int(~(this->real), ~(this->imag)); }
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
C++
1
https://gitee.com/opengnss/SignalSim.git
git@gitee.com:opengnss/SignalSim.git
opengnss
SignalSim
SignalSim
master

搜索帮助