pfelem.h
来自「终于找到了bpsk信号的调制」· C头文件 代码 · 共 83 行
H
83 行
//
// File = pfelem.h
//
#ifndef _PFELEM_H_
#define _PFELEM_H_
class PrimeFieldElem
{
public:
PrimeFieldElem(void);
PrimeFieldElem(int modulus);
PrimeFieldElem(int modulus, int value);
//void operator=(const int);
bool operator==(const int);
bool operator!=(const int);
void operator=(const PrimeFieldElem&);
void operator+=(const PrimeFieldElem&);
void operator*=(const PrimeFieldElem&);
void operator-=(const PrimeFieldElem&);
// operator int(){return Value;}
friend PrimeFieldElem operator+( const PrimeFieldElem,
const PrimeFieldElem );
friend PrimeFieldElem operator-( const PrimeFieldElem,
const PrimeFieldElem );
friend PrimeFieldElem operator*( const PrimeFieldElem,
const PrimeFieldElem );
friend PrimeFieldElem operator/( const PrimeFieldElem,
const PrimeFieldElem );
friend PrimeFieldElem operator*( const int,
const PrimeFieldElem );
friend PrimeFieldElem neg(PrimeFieldElem);
friend PrimeFieldElem recip(PrimeFieldElem);
int Value;
int Modulus;
private:
};
//inline void PrimeFieldElem::operator=(const int value)
//{Value=value;}
inline bool PrimeFieldElem::operator==(const int value)
{return(Value==value);}
inline bool PrimeFieldElem::operator!=(const int value)
{return(Value!=value);}
inline void PrimeFieldElem::operator=(const PrimeFieldElem &right)
{Modulus = right.Modulus;
Value = right.Value;}
inline void PrimeFieldElem::operator+=(const PrimeFieldElem &right)
{ Value = (Value + right.Value)%Modulus;}
inline void PrimeFieldElem::operator*=(const PrimeFieldElem &right)
{ Value = (Value * right.Value)%Modulus;}
inline void PrimeFieldElem::operator-=(const PrimeFieldElem &right)
{ Value = (Modulus + Value - right.Value)%Modulus;}
inline PrimeFieldElem operator+( const PrimeFieldElem _e1,
const PrimeFieldElem _e2)
{return PrimeFieldElem(_e1.Modulus,(_e1.Value + _e2.Value));}
inline PrimeFieldElem operator-( const PrimeFieldElem _e1,
const PrimeFieldElem _e2)
{return PrimeFieldElem(_e1.Modulus,(_e1.Value + _e1.Modulus - _e2.Value));}
inline PrimeFieldElem operator*( const PrimeFieldElem _e1,
const PrimeFieldElem _e2)
{return PrimeFieldElem(_e1.Modulus,(_e1.Value * _e2.Value));}
inline PrimeFieldElem operator*( const int _e1,
const PrimeFieldElem _e2)
{return PrimeFieldElem(_e2.Modulus,(_e1 * _e2.Value));}
#include <iostream>
using namespace std;
ostream& operator<< (ostream&, const PrimeFieldElem&);
#endif
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?