Cloned SEACAS for EXODUS library with extra build files for internal package management.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

30 lines
905 B

/*
* Copyright(C) 1999-2020 National Technology & Engineering Solutions
* of Sandia, LLC (NTESS). Under the terms of Contract DE-NA0003525 with
* NTESS, the U.S. Government retains certain rights in this software.
*
* See packages/seacas/LICENSE for details
*/
/* Reverse the bits of a number. */
int bit_reverse(int val, int nbits)
/* value to reverse bits of */
/* number of significant bits */
{
int mask_low, mask_high; /* masks for bits to interchange */
int bit_low, bit_high; /* values of the bits in question */
int i; /* loop counter */
mask_low = 1;
mask_high = 1 << (nbits - 1);
for (i = 0; i < nbits / 2; i++) {
bit_low = (val & mask_low) >> i;
bit_high = (val & mask_high) >> (nbits - i - 1);
mask_low <<= 1;
mask_high >>= 1;
if (bit_low != bit_high) {
val ^= (1 << i) ^ (1 << (nbits - i - 1));
}
}
return (val);
}