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

17 lines
258 B
C

void eclazz(nf,n,equiv)
int (*equiv)(),n,nf[];
{
int kk,jj;
nf[1]=1;
for (jj=2;jj<=n;jj++) {
nf[jj]=jj;
for (kk=1;kk<=(jj-1);kk++) {
nf[kk]=nf[nf[kk]];
if ((*equiv)(jj,kk)) nf[nf[nf[kk]]]=jj;
}
}
for (jj=1;jj<=n;jj++) nf[jj]=nf[nf[jj]];
}