add numerical recipes library
This commit is contained in:
16
lib/nr/ansi/recipes/igray.c
Normal file
16
lib/nr/ansi/recipes/igray.c
Normal file
@@ -0,0 +1,16 @@
|
||||
|
||||
unsigned long igray(unsigned long n, int is)
|
||||
{
|
||||
int ish;
|
||||
unsigned long ans,idiv;
|
||||
|
||||
if (is >= 0)
|
||||
return n ^ (n >> 1);
|
||||
ish=1;
|
||||
ans=n;
|
||||
for (;;) {
|
||||
ans ^= (idiv=ans >> ish);
|
||||
if (idiv <= 1 || ish == 16) return ans;
|
||||
ish <<= 1;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user