def
ntzBinarySearch
1
(x
:
Long)
:
Int
=
{
if
(x
==
0
L) {
64
}
else
{
var
n
=
1
var
y
=
x
if
((y &
0x00000000ffffffff
L)
==
0
L) {n +
=
32
; y >>>
=
32
}
if
((y &
0x000000000000ffff
L)
==
0
L) {n +
=
16
; y >>>
=
16
}
if
((y &
0x00000000000000ff
L)
==
0
L) {n +
=
8
; y >>>
=
8
}
if
((y &
0x000000000000000f
L)
==
0
L) {n +
=
4
; y >>>
=
4
}
if
((y &
0x0000000000000003
L)
==
0
L) {n +
=
2
; y >>>
=
2
}
n - (y &
1
L).toInt
}
}
def
ntzBinarySearch
2
(x
:
Long)
:
Int
=
{
if
(x
==
0
L) {
64
}
else
{
var
n
=
63
var
y
=
0
L
var
z
=
x <<
32
;
if
(z !
=
0
) {n -
=
32
; y
=
z}
z
=
y <<
16
;
if
(z !
=
0
) {n -
=
16
; y
=
z}
z
=
y <<
8
;
if
(z !
=
0
) {n -
=
8
; y
=
z}
z
=
y <<
4
;
if
(z !
=
0
) {n -
=
4
; y
=
z}
z
=
y <<
2
;
if
(z !
=
0
) {n -
=
2
; y
=
z}
z
=
y <<
1
;
if
(z !
=
0
) n -
=
1
n
}
}
def
ntzBinarySearch
3
(x
:
Long)
:
Int
=
{
if
(x
==
0
L)
64
else
if
((x &
0xffffffff
L) !
=
0
L)
if
((x &
0xffff
L) !
=
0
L)
if
((x &
0xff
L) !
=
0
L)
if
((x &
0xf
L) !
=
0
L)
if
((x &
3
L) !
=
0
L)
if
((x &
1
L) !
=
0
L)
0
else
1
else
if
((x &
4
L) !
=
0
L)
2
else
3
else
if
((x &
0x30
L) !
=
0
L)
if
((x &
0x10
L) !
=
0
L)
4
else
5
else
if
((x &
0x40
L) !
=
0
L)
6
else
7
else
if
((x &
0xf00
L) !
=
0
L)
if
((x &
0x300
L) !
=
0
L)
if
((x &
0x100
L) !
=
0
L)
8
else
9
else
if
((x &
0x400
L) !
=
0
L)
10
else
11
else
if
((x &
0x3000
L) !
=
0
L)
if
((x &
0x1000
L) !
=
0
L)
12
else
13
else
if
((x &
0x4000
L) !
=
0
L)
14
else
15
else
if
((x &
0xff0000
L) !
=
0
L)
if
((x &
0xf0000
L) !
=
0
L)
if
((x &
30000
L) !
=
0
L)
if
((x &
10000
L) !
=
0
L)
16
else
17
else
if
((x &
40000
L) !
=
0
L)
18
else
19
else
if
((x &
0x300000
L) !
=
0
L)
if
((x &
0x100000
L) !
=
0
L)
20
else
21
else
if
((x &
0x400000
L) !
=
0
L)
22
else
23
else
if
((x &
0xf000000
L) !
=
0
L)
if
((x &
0x3000000
L) !
=
0
L)
if
((x &
0x1000000
L) !
=
0
L)
24
else
25
else
if
((x &
0x4000000
L) !
=
0
L)
26
else
27
else
if
((x &
0x30000000
L) !
=
0
L)
if
((x &
0x10000000
L) !
=
0
L)
28
else
29
else
if
((x &
0x40000000
L) !
=
0
L)
30
else
31
else
if
((x &
0xffff00000000
L) !
=
0
L)
if
((x &
0xff00000000
L) !
=
0
L)
if
((x &
0xf00000000
L) !
=
0
L)
if
((x &
0x300000000
L) !
=
0
L)
if
((x &
0x100000000
L) !
=
0
L)
32
else
33
else
if
((x &
0x400000000
L) !
=
0
L)
34
else
35
else
if
((x &
0x3000000000
L) !
=
0
L)
if
((x &
0x1000000000
L) !
=
0
L)
36
else
37
else
if
((x &
0x4000000000
L) !
=
0
L)
38
else
39
else
if
((x &
0xf0000000000
L) !
=
0
L)
if
((x &
0x30000000000
L) !
=
0
L)
if
((x &
0x10000000000
L) !
=
0
L)
40
else
41
else
if
((x &
0x40000000000
L) !
=
0
L)
42
else
43
else
if
((x &
0x300000000000
L) !
=
0
L)
if
((x &
0x100000000000
L) !
=
0
L)
44
else
45
else
if
((x &
0x400000000000
L) !
=
0
L)
46
else
47
else
if
((x &
0xff000000000000
L) !
=
0
L)
if
((x &
0xf000000000000
L) !
=
0
L)
if
((x &
3000000000000
L) !
=
0
L)
if
((x &
1000000000000
L) !
=
0
L)
48
else
49
else
if
((x &
4000000000000
L) !
=
0
L)
50
else
51
else
if
((x &
0x30000000000000
L) !
=
0
L)
if
((x &
0x10000000000000
L) !
=
0
L)
52
else
53
else
if
((x &
0x40000000000000
L) !
=
0
L)
54
else
55
else
if
((x &
0xf00000000000000
L) !
=
0
L)
if
((x &
0x300000000000000
L) !
=
0
L)
if
((x &
0x100000000000000
L) !
=
0
L)
56
else
57
else
if
((x &
0x400000000000000
L) !
=
0
L)
58
else
59
else
if
((x &
0x3000000000000000
L) !
=
0
L)
if
((x &
0x1000000000000000
L) !
=
0
L)
60
else
61
else
if
((x &
0x4000000000000000
L) !
=
0
L)
62
else
63
}