arcmak.cpp
来自「这是C++数值算法(第二版)的源代码,其中包含了目前一些比较常用的数值计算的算法」· C++ 代码 · 共 23 行
CPP
23 行
#include <limits>
#include "nr.h"
using namespace std;
void NR::arcmak(Vec_I_ULNG &nfreq, unsigned long nchh, unsigned long nradd,
arithcode &acode)
{
const unsigned long MAXULNG=numeric_limits<unsigned long>::max();
unsigned long j;
unsigned long MC=acode.ncumfq.size()-2;
if (nchh > MC) nrerror("input radix may not exceed MC in arcmak.");
if (nradd > 256) nrerror("output radix may not exceed 256 in arcmak.");
acode.minint=MAXULNG/nradd;
acode.nch=nchh;
acode.nrad=nradd;
acode.ncumfq[0]=0;
for (j=1;j<=acode.nch;j++)
acode.ncumfq[j]=acode.ncumfq[j-1]+MAX(nfreq[j-1],(unsigned long) 1);
acode.ncum=acode.ncumfq[acode.nch+1]=acode.ncumfq[acode.nch]+1;
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?