Sign in
eclipse
/
gerrit
/
rtsc
/
org.eclipse.rtsc.training
/
dc7ae452f307c6b0bea1a312bedac202c78f9962
/
.
/
src
/
part1
/
examples
/
repo
/
charlie
/
sqrtlib
/
isqrt_loop.c
blob: f6f5ca6a8f923e0bf3c92c0bfbe3f18dba074b95 [
file
] [
log
] [
blame
]
unsigned
int
isqrt
(
unsigned
long
val
)
{
unsigned
long
temp
,
g
=
0
,
b
=
0x8000
,
bshft
=
15
;
do
{
if
(
val
>=
(
temp
=
(((
g
<<
1
)
+
b
)
<<
bshft
--)))
{
g
+=
b
;
val
-=
temp
;
}
}
while
(
b
>>=
1
);
return
g
;
}