#include "nr.h" void NR::mpmul(Vec_O_UCHR &w, Vec_I_UCHR &u, Vec_I_UCHR &v) { const DP RX=256.0; int j,n_max,nn=1; DP cy,t; int n=u.size(); int m=v.size(); int p=w.size(); n_max=MAX(m,n); while (nn < n_max) nn <<= 1; nn <<= 1; Vec_DP a(0.0,nn),b(0.0,nn); for (j=0;j=0;j--) { t=b[j]/(nn >> 1)+cy+0.5; cy=(unsigned long) (t/RX); b[j]=t-cy*RX; } if (cy >= RX) nrerror("cannot happen in mpmul"); for (j=0;j