pfelem.cpp

来自「《无线通信系统仿真——c++使用模型》这本书的源代码」· C++ 代码 · 共 48 行

CPP
48
字号
// pfelem.cpp
//

#include <iostream>
#include "pfelem.h"

PrimeFieldElem::PrimeFieldElem(void)
{
  Modulus=1;
  Value=0;
}
PrimeFieldElem::PrimeFieldElem(int modulus)
{
  Modulus=modulus;
  Value=0;
}

PrimeFieldElem::PrimeFieldElem(int modulus, int value)
{
  Modulus=modulus;
  Value = value%modulus;
}

PrimeFieldElem neg( PrimeFieldElem _e1)
{
  return PrimeFieldElem(_e1.Modulus,(_e1.Modulus-_e1.Value));
}

PrimeFieldElem recip( PrimeFieldElem _e1)
{
  int ret_val=0;
  for(int i=0; i<_e1.Modulus; i++)
    {
    if( ((_e1.Value*i) % _e1.Modulus) == 1 ) ret_val = i;
    }
  return PrimeFieldElem(_e1.Modulus,ret_val);
}

PrimeFieldElem operator/( const PrimeFieldElem _e1, const PrimeFieldElem _e2)
  {return PrimeFieldElem(_e1.Modulus,(_e1.Value * recip(_e2).Value ));}


ostream& operator<< ( ostream& s, const PrimeFieldElem& element)
{
  s << element.Value;
  return s;
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?