Files
2025-02-Numerical/lib/nr/cpp/recipes/eclazz.cpp
2025-09-12 18:55:25 +09:00

18 lines
304 B
C++

#include "nr.h"
void NR::eclazz(Vec_O_INT &nf, bool equiv(const int, const int))
{
int kk,jj;
int n=nf.size();
nf[0]=0;
for (jj=1;jj<n;jj++) {
nf[jj]=jj;
for (kk=0;kk<jj;kk++) {
nf[kk]=nf[nf[kk]];
if (equiv(jj+1,kk+1)) nf[nf[nf[kk]]]=jj;
}
}
for (jj=0;jj<n;jj++) nf[jj]=nf[nf[jj]];
}