Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename: /in/A3dLe
function name: (null)
number of ops: 10
compiled vars: !0 = $A
line #* E I O op fetch ext return operands
-------------------------------------------------------------------------------------
66 0 E > ASSIGN !0, <array>
67 1 INIT_FCALL 'print_r'
2 INIT_FCALL 'findmaximumsubarray'
3 SEND_REF !0
4 SEND_VAL 0
5 SEND_VAL 15
6 DO_FCALL 0 $2
7 SEND_VAR $2
8 DO_ICALL
9 > RETURN 1
Function findmaxcrossingsubarray:
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 42) Position 1 = 16
Branch analysis from position: 16
2 jumps found. (Code = 44) Position 1 = 18, Position 2 = 8
Branch analysis from position: 18
1 jumps found. (Code = 42) Position 1 = 31
Branch analysis from position: 31
2 jumps found. (Code = 44) Position 1 = 33, Position 2 = 23
Branch analysis from position: 33
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 23
2 jumps found. (Code = 43) Position 1 = 28, Position 2 = 30
Branch analysis from position: 28
2 jumps found. (Code = 44) Position 1 = 33, Position 2 = 23
Branch analysis from position: 33
Branch analysis from position: 23
Branch analysis from position: 30
Branch analysis from position: 8
2 jumps found. (Code = 43) Position 1 = 13, Position 2 = 15
Branch analysis from position: 13
2 jumps found. (Code = 44) Position 1 = 18, Position 2 = 8
Branch analysis from position: 18
Branch analysis from position: 8
Branch analysis from position: 15
filename: /in/A3dLe
function name: findMaxCrossingSubarray
number of ops: 39
compiled vars: !0 = $A, !1 = $low, !2 = $mid, !3 = $high, !4 = $leftSum, !5 = $sum, !6 = $i, !7 = $maxLeft, !8 = $rightSum, !9 = $j, !10 = $maxRight
line #* E I O op fetch ext return operands
-------------------------------------------------------------------------------------
2 0 E > RECV !0
1 RECV !1
2 RECV !2
3 RECV !3
3 4 ASSIGN !4, -9223372036854775807
4 5 ASSIGN !5, 0
5 6 ASSIGN !6, !2
7 > JMP ->16
6 8 > FETCH_DIM_R ~14 !0, !6
9 ADD ~15 !5, ~14
10 ASSIGN !5, ~15
7 11 IS_SMALLER !4, !5
12 > JMPZ ~17, ->15
8 13 > ASSIGN !4, !5
9 14 ASSIGN !7, !6
5 15 > PRE_DEC !6
16 > IS_SMALLER_OR_EQUAL 0, !6
17 > JMPNZ ~21, ->8
13 18 > ASSIGN !8, -9223372036854775807
14 19 ASSIGN !5, 0
15 20 ADD ~24 !2, 1
21 ASSIGN !9, ~24
22 > JMP ->31
16 23 > FETCH_DIM_R ~26 !0, !9
24 ADD ~27 !5, ~26
25 ASSIGN !5, ~27
17 26 IS_SMALLER !8, !5
27 > JMPZ ~29, ->30
18 28 > ASSIGN !8, !5
19 29 ASSIGN !10, !9
15 30 > PRE_INC !9
31 > IS_SMALLER_OR_EQUAL !9, !3
32 > JMPNZ ~33, ->23
24 33 > INIT_ARRAY ~34 !7
25 34 ADD_ARRAY_ELEMENT ~34 !10
26 35 ADD ~35 !4, !8
36 ADD_ARRAY_ELEMENT ~34 ~35
37 > RETURN ~34
28 38* > RETURN null
End of function findmaxcrossingsubarray
Function findmaximumsubarray:
Finding entry points
Branch analysis from position: 0
2 jumps found. (Code = 43) Position 1 = 5, Position 2 = 11
Branch analysis from position: 5
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 11
2 jumps found. (Code = 46) Position 1 = 57, Position 2 = 59
Branch analysis from position: 57
2 jumps found. (Code = 43) Position 1 = 60, Position 2 = 65
Branch analysis from position: 60
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 65
2 jumps found. (Code = 46) Position 1 = 67, Position 2 = 69
Branch analysis from position: 67
2 jumps found. (Code = 43) Position 1 = 70, Position 2 = 75
Branch analysis from position: 70
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 75
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 69
Branch analysis from position: 59
filename: /in/A3dLe
function name: findMaximumSubarray
number of ops: 80
compiled vars: !0 = $A, !1 = $low, !2 = $high, !3 = $mid, !4 = $leftLow, !5 = $leftHigh, !6 = $leftSum, !7 = $rightLow, !8 = $rightHigh, !9 = $rightSum, !10 = $crossLow, !11 = $crossHigh, !12 = $crossSum
line #* E I O op fetch ext return operands
-------------------------------------------------------------------------------------
30 0 E > RECV !0
1 RECV !1
2 RECV !2
31 3 IS_IDENTICAL !1, !2
4 > JMPZ ~13, ->11
33 5 > INIT_ARRAY ~14 !1
34 6 ADD_ARRAY_ELEMENT ~14 !2
35 7 FETCH_DIM_R ~15 !0, !1
8 ADD_ARRAY_ELEMENT ~14 ~15
9 > RETURN ~14
31 10* JMP ->79
38 11 > INIT_FCALL 'floor'
12 ADD ~16 !1, !2
13 DIV ~17 ~16, 2
14 SEND_VAL ~17
15 DO_ICALL $18
16 ASSIGN !3, $18
40 17 INIT_FCALL_BY_NAME 'findMaximumSubarray'
18 SEND_VAR_EX !0
19 SEND_VAR_EX !1
20 SEND_VAR_EX !3
21 DO_FCALL 0 $20
22 FETCH_LIST_R $21 $20, 0
23 ASSIGN !4, $21
24 FETCH_LIST_R $23 $20, 1
25 ASSIGN !5, $23
26 FETCH_LIST_R $25 $20, 2
27 ASSIGN !6, $25
28 FREE $20
41 29 INIT_FCALL_BY_NAME 'findMaximumSubarray'
30 SEND_VAR_EX !0
31 ADD ~27 !3, 1
32 SEND_VAL_EX ~27
33 SEND_VAR_EX !2
34 DO_FCALL 0 $28
35 FETCH_LIST_R $29 $28, 0
36 ASSIGN !7, $29
37 FETCH_LIST_R $31 $28, 1
38 ASSIGN !8, $31
39 FETCH_LIST_R $33 $28, 2
40 ASSIGN !9, $33
41 FREE $28
42 42 INIT_FCALL 'findmaxcrossingsubarray'
43 SEND_REF !0
44 SEND_VAR !1
45 SEND_VAR !3
46 SEND_VAR !2
47 DO_FCALL 0 $35
48 FETCH_LIST_R $36 $35, 0
49 ASSIGN !10, $36
50 FETCH_LIST_R $38 $35, 1
51 ASSIGN !11, $38
52 FETCH_LIST_R $40 $35, 2
53 ASSIGN !12, $40
54 FREE $35
44 55 IS_SMALLER_OR_EQUAL ~42 !9, !6
56 > JMPZ_EX ~42 ~42, ->59
57 > IS_SMALLER_OR_EQUAL ~43 !12, !6
58 BOOL ~42 ~43
59 > > JMPZ ~42, ->65
46 60 > INIT_ARRAY ~44 !4
47 61 ADD_ARRAY_ELEMENT ~44 !5
48 62 ADD_ARRAY_ELEMENT ~44 !6
63 > RETURN ~44
44 64* JMP ->79
50 65 > IS_SMALLER_OR_EQUAL ~45 !6, !9
66 > JMPZ_EX ~45 ~45, ->69
67 > IS_SMALLER_OR_EQUAL ~46 !12, !9
68 BOOL ~45 ~46
69 > > JMPZ ~45, ->75
52 70 > INIT_ARRAY ~47 !7
53 71 ADD_ARRAY_ELEMENT ~47 !8
54 72 ADD_ARRAY_ELEMENT ~47 !9
73 > RETURN ~47
50 74* JMP ->79
58 75 > INIT_ARRAY ~48 !10
59 76 ADD_ARRAY_ELEMENT ~48 !11
60 77 ADD_ARRAY_ELEMENT ~48 !12
78 > RETURN ~48
64 79* > RETURN null
End of function findmaximumsubarray
Generated using Vulcan Logic Dumper, using php 8.0.0