5 * th9x - http://code.google.com/p/th9x
6 * er9x - http://code.google.com/p/er9x
7 * gruvin9x - http://code.google.com/p/gruvin9x
9 * License GPLv2: http://www.gnu.org/licenses/gpl-2.0.html
11 * This program is free software; you can redistribute it and/or modify
12 * it under the terms of the GNU General Public License version 2 as
13 * published by the Free Software Foundation.
15 * This program is distributed in the hope that it will be useful,
16 * but WITHOUT ANY WARRANTY; without even the implied warranty of
17 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
18 * GNU General Public License for more details.
23 uint16_t isqrt32(uint32_t n
)
29 if ((uint32_t)g
*g
> n
)
39 Division by 10 and rounding or fixed point arithmetic values
50 // djb2 hash algorithm
51 uint32_t hash(const void * ptr
, uint32_t size
)
53 const uint8_t * data
= (const uint8_t *)ptr
;
55 for (uint32_t i
=0; i
<size
; i
++) {
56 hash
= ((hash
<< 5) + hash
) + data
[i
]; /* hash * 33 + c */