1.23/1.23 WORST_CASE(?,O(n^1)) 1.23/1.23 1.23/1.23 Preprocessing Cost Relations 1.23/1.23 ===================================== 1.23/1.23 1.23/1.23 #### Computed strongly connected components 1.23/1.23 0. recursive : [evalfbb1in/7] 1.23/1.23 1. recursive : [evalfbb3in/7] 1.23/1.23 2. recursive : [evalfbb1in_loop_cont/14,evalfbb3in_loop_cont/14,evalfbb5in/13,evalfbbin/13] 1.23/1.23 3. non_recursive : [evalfstop/8] 1.23/1.23 4. non_recursive : [evalfreturnin/8] 1.23/1.23 5. non_recursive : [exit_location/1] 1.23/1.23 6. non_recursive : [evalfbb5in_loop_cont/9] 1.23/1.23 7. non_recursive : [evalfentryin/8] 1.23/1.23 8. non_recursive : [evalfstart/8] 1.23/1.23 1.23/1.23 #### Obtained direct recursion through partial evaluation 1.23/1.23 0. SCC is partially evaluated into evalfbb1in/7 1.23/1.23 1. SCC is partially evaluated into evalfbb3in/7 1.23/1.23 2. SCC is partially evaluated into evalfbb5in/13 1.23/1.23 3. SCC is completely evaluated into other SCCs 1.23/1.23 4. SCC is completely evaluated into other SCCs 1.23/1.23 5. SCC is completely evaluated into other SCCs 1.23/1.23 6. SCC is partially evaluated into evalfbb5in_loop_cont/9 1.23/1.23 7. SCC is partially evaluated into evalfentryin/8 1.23/1.23 8. SCC is partially evaluated into evalfstart/8 1.23/1.23 1.23/1.23 Control-Flow Refinement of Cost Relations 1.23/1.23 ===================================== 1.23/1.23 1.23/1.23 ### Specialization of cost equations evalfbb1in/7 1.23/1.23 * CE 13 is refined into CE [17] 1.23/1.23 * CE 11 is refined into CE [18] 1.23/1.23 * CE 12 is refined into CE [19] 1.23/1.23 1.23/1.23 1.23/1.23 ### Cost equations --> "Loop" of evalfbb1in/7 1.23/1.23 * CEs [19] --> Loop 16 1.23/1.23 * CEs [17] --> Loop 17 1.23/1.23 * CEs [18] --> Loop 18 1.23/1.23 1.23/1.23 ### Ranking functions of CR evalfbb1in(B,C,F,G,I,J,K) 1.23/1.23 * RF of phase [16]: [-F+G] 1.23/1.23 1.23/1.23 #### Partial ranking functions of CR evalfbb1in(B,C,F,G,I,J,K) 1.23/1.23 * Partial RF of phase [16]: 1.23/1.23 - RF of loop [16:1]: 1.23/1.23 -F+G 1.23/1.23 1.23/1.23 1.23/1.23 ### Specialization of cost equations evalfbb3in/7 1.23/1.23 * CE 16 is refined into CE [20] 1.23/1.23 * CE 14 is refined into CE [21] 1.23/1.23 * CE 15 is refined into CE [22] 1.23/1.23 1.23/1.23 1.23/1.23 ### Cost equations --> "Loop" of evalfbb3in/7 1.23/1.23 * CEs [22] --> Loop 19 1.23/1.23 * CEs [20] --> Loop 20 1.23/1.23 * CEs [21] --> Loop 21 1.23/1.23 1.23/1.23 ### Ranking functions of CR evalfbb3in(A,C,F,G,I,J,K) 1.23/1.23 * RF of phase [19]: [-F+G] 1.23/1.23 1.23/1.23 #### Partial ranking functions of CR evalfbb3in(A,C,F,G,I,J,K) 1.23/1.23 * Partial RF of phase [19]: 1.23/1.23 - RF of loop [19:1]: 1.23/1.23 -F+G 1.23/1.23 1.23/1.23 1.23/1.23 ### Specialization of cost equations evalfbb5in/13 1.23/1.23 * CE 7 is refined into CE [23] 1.23/1.23 * CE 3 is refined into CE [24,25] 1.23/1.23 * CE 5 is refined into CE [26,27] 1.23/1.23 * CE 8 is refined into CE [28] 1.23/1.23 * CE 6 is refined into CE [29,30] 1.23/1.23 * CE 4 is refined into CE [31,32] 1.23/1.23 1.23/1.23 1.23/1.23 ### Cost equations --> "Loop" of evalfbb5in/13 1.23/1.23 * CEs [31] --> Loop 22 1.23/1.23 * CEs [29] --> Loop 23 1.23/1.23 * CEs [30] --> Loop 24 1.23/1.23 * CEs [32] --> Loop 25 1.23/1.23 * CEs [23] --> Loop 26 1.23/1.23 * CEs [24,26] --> Loop 27 1.23/1.23 * CEs [25] --> Loop 28 1.23/1.23 * CEs [27] --> Loop 29 1.23/1.23 * CEs [28] --> Loop 30 1.23/1.23 1.23/1.23 ### Ranking functions of CR evalfbb5in(A,B,C,D,E,F,G,I,J,K,L,M,N) 1.23/1.23 * RF of phase [22,23,24,25]: [-C+D] 1.23/1.23 1.23/1.23 #### Partial ranking functions of CR evalfbb5in(A,B,C,D,E,F,G,I,J,K,L,M,N) 1.23/1.23 * Partial RF of phase [22,23,24,25]: 1.23/1.23 - RF of loop [22:1,23:1,24:1,25:1]: 1.23/1.23 -C+D 1.23/1.23 - RF of loop [24:1]: 1.23/1.23 -A/2+G/2 1.23/1.23 B-C+G depends on loops [25:1] 1.23/1.23 - RF of loop [25:1]: 1.23/1.23 A-C+G depends on loops [24:1] 1.23/1.23 -B/2+G/2 1.23/1.23 1.23/1.23 1.23/1.23 ### Specialization of cost equations evalfbb5in_loop_cont/9 1.23/1.23 * CE 9 is refined into CE [33] 1.23/1.23 * CE 10 is refined into CE [34] 1.23/1.23 1.23/1.23 1.23/1.23 ### Cost equations --> "Loop" of evalfbb5in_loop_cont/9 1.23/1.23 * CEs [33] --> Loop 31 1.23/1.23 * CEs [34] --> Loop 32 1.23/1.23 1.23/1.23 ### Ranking functions of CR evalfbb5in_loop_cont(A,B,C,D,E,F,G,H,I) 1.23/1.23 1.23/1.23 #### Partial ranking functions of CR evalfbb5in_loop_cont(A,B,C,D,E,F,G,H,I) 1.23/1.23 1.23/1.23 1.23/1.23 ### Specialization of cost equations evalfentryin/8 1.23/1.23 * CE 2 is refined into CE [35,36,37,38,39,40,41,42,43] 1.23/1.23 1.23/1.23 1.23/1.23 ### Cost equations --> "Loop" of evalfentryin/8 1.23/1.23 * CEs [36,38] --> Loop 33 1.23/1.23 * CEs [40] --> Loop 34 1.23/1.23 * CEs [35,37] --> Loop 35 1.23/1.23 * CEs [39,43] --> Loop 36 1.23/1.23 * CEs [42] --> Loop 37 1.23/1.23 * CEs [41] --> Loop 38 1.23/1.23 1.23/1.23 ### Ranking functions of CR evalfentryin(A,B,C,D,E,F,G,I) 1.23/1.23 1.23/1.23 #### Partial ranking functions of CR evalfentryin(A,B,C,D,E,F,G,I) 1.23/1.23 1.23/1.23 1.23/1.23 ### Specialization of cost equations evalfstart/8 1.23/1.23 * CE 1 is refined into CE [44,45,46,47,48,49] 1.23/1.23 1.23/1.23 1.23/1.23 ### Cost equations --> "Loop" of evalfstart/8 1.23/1.23 * CEs [49] --> Loop 39 1.23/1.23 * CEs [48] --> Loop 40 1.23/1.23 * CEs [47] --> Loop 41 1.23/1.23 * CEs [46] --> Loop 42 1.23/1.23 * CEs [45] --> Loop 43 1.23/1.23 * CEs [44] --> Loop 44 1.23/1.23 1.23/1.23 ### Ranking functions of CR evalfstart(A,B,C,D,E,F,G,I) 1.23/1.23 1.23/1.23 #### Partial ranking functions of CR evalfstart(A,B,C,D,E,F,G,I) 1.23/1.23 1.23/1.23 1.23/1.23 Computing Bounds 1.23/1.23 ===================================== 1.23/1.23 1.23/1.23 #### Cost of chains of evalfbb1in(B,C,F,G,I,J,K): 1.23/1.23 * Chain [[16],18]: 1*it(16)+0 1.23/1.23 Such that:it(16) =< -F+J 1.23/1.23 1.23/1.23 with precondition: [I=2,G+1=J,G=K,C>=0,F>=B,G>=F+1] 1.23/1.23 1.23/1.23 * Chain [[16],17]: 1*it(16)+0 1.23/1.23 Such that:it(16) =< -F+G 1.23/1.23 1.23/1.23 with precondition: [I=3,C>=0,F>=B,G>=F+1] 1.23/1.23 1.23/1.23 * Chain [18]: 0 1.23/1.23 with precondition: [I=2,F+1=J,F=K,C>=0,F>=B,F>=G] 1.23/1.23 1.23/1.23 * Chain [17]: 0 1.23/1.23 with precondition: [I=3,C>=0,F>=B] 1.23/1.23 1.23/1.23 1.23/1.23 #### Cost of chains of evalfbb3in(A,C,F,G,I,J,K): 1.23/1.23 * Chain [[19],21]: 1*it(19)+0 1.23/1.23 Such that:it(19) =< -F+J 1.23/1.23 1.23/1.23 with precondition: [I=2,G+1=J,G=K,C>=0,F>=A,G>=F+1] 1.23/1.23 1.23/1.23 * Chain [[19],20]: 1*it(19)+0 1.23/1.23 Such that:it(19) =< -F+G 1.23/1.23 1.23/1.23 with precondition: [I=3,C>=0,F>=A,G>=F+1] 1.23/1.23 1.23/1.23 * Chain [21]: 0 1.23/1.23 with precondition: [I=2,F+1=J,F=K,C>=0,F>=A,F>=G] 1.23/1.23 1.23/1.23 * Chain [20]: 0 1.23/1.23 with precondition: [I=3,C>=0,F>=A] 1.23/1.23 1.23/1.23 1.23/1.23 #### Cost of chains of evalfbb5in(A,B,C,D,E,F,G,I,J,K,L,M,N): 1.23/1.23 * Chain [[22,23,24,25],30]: 2*it(22)+1*it(24)+1*it(25)+1*s(5)+1*s(6)+0 1.23/1.23 Such that:s(5) =< -A+G+1 1.23/1.23 it(24) =< -A/2+G/2 1.23/1.23 s(6) =< -B+G+1 1.23/1.23 it(25) =< -B/2+G/2 1.23/1.23 aux(29) =< -C+D 1.23/1.23 it(22) =< aux(29) 1.23/1.23 it(24) =< aux(29) 1.23/1.23 it(25) =< aux(29) 1.23/1.23 1.23/1.23 with precondition: [I=3,A>=0,B>=0,C>=0,D>=C+1,A+B>=C] 1.23/1.23 1.23/1.23 * Chain [[22,23,24,25],29]: 2*it(22)+1*it(24)+1*it(25)+2*s(5)+1*s(6)+0 1.23/1.23 Such that:it(24) =< -A/2+G/2 1.23/1.23 s(6) =< -B+G+1 1.23/1.23 it(25) =< -B/2+G/2 1.23/1.23 aux(30) =< -A+G 1.23/1.23 aux(31) =< -C+D 1.23/1.23 it(24) =< aux(30) 1.23/1.23 s(5) =< aux(30) 1.23/1.23 it(22) =< aux(31) 1.23/1.23 it(24) =< aux(31) 1.23/1.23 it(25) =< aux(31) 1.23/1.23 1.23/1.23 with precondition: [I=3,A>=0,B>=0,C>=0,G>=A+1,D>=C+2,A+B>=C] 1.23/1.23 1.23/1.23 * Chain [[22,23,24,25],28]: 2*it(22)+1*it(24)+1*it(25)+1*s(5)+2*s(6)+0 1.23/1.23 Such that:s(5) =< -A+G+1 1.23/1.23 it(24) =< -A/2+G/2 1.23/1.23 it(25) =< -B/2+G/2 1.23/1.23 aux(32) =< -B+G 1.23/1.23 aux(33) =< -C+D 1.23/1.23 it(25) =< aux(32) 1.23/1.23 s(6) =< aux(32) 1.23/1.23 it(22) =< aux(33) 1.23/1.23 it(24) =< aux(33) 1.23/1.23 it(25) =< aux(33) 1.23/1.23 1.23/1.23 with precondition: [I=3,A>=0,B>=0,C>=0,G>=B+1,D>=C+2,A+B>=C] 1.23/1.23 1.23/1.23 * Chain [[22,23,24,25],27]: 2*it(22)+1*it(24)+1*it(25)+1*s(5)+1*s(6)+0 1.23/1.23 Such that:s(5) =< -A+G+1 1.23/1.23 it(24) =< -A/2+G/2 1.23/1.23 s(6) =< -B+G+1 1.23/1.23 it(25) =< -B/2+G/2 1.23/1.23 aux(34) =< -C+D 1.23/1.23 it(22) =< aux(34) 1.23/1.23 it(24) =< aux(34) 1.23/1.23 it(25) =< aux(34) 1.23/1.23 1.23/1.23 with precondition: [I=3,A>=0,B>=0,C>=0,D>=C+2,A+B>=C] 1.23/1.23 1.23/1.23 * Chain [[22,23,24,25],26]: 2*it(22)+1*it(24)+1*it(25)+1*s(5)+1*s(6)+0 1.23/1.23 Such that:s(5) =< -A+G+1 1.23/1.23 s(5) =< -A+J 1.23/1.23 it(24) =< -A/2+G/2 1.23/1.23 it(24) =< -A/2+J/2 1.23/1.23 s(6) =< -B+G+1 1.23/1.23 s(6) =< -B+K 1.23/1.23 it(25) =< -B/2+G/2 1.23/1.23 it(25) =< -B/2+K/2 1.23/1.23 aux(35) =< -C+L 1.23/1.23 it(22) =< aux(35) 1.23/1.23 it(24) =< aux(35) 1.23/1.23 it(25) =< aux(35) 1.23/1.23 1.23/1.23 with precondition: [I=4,D=L,D=M,A>=0,B>=0,C>=0,J>=A,K>=B,D>=C+1,N>=G,A+B>=C,J+K>=N+1,C+J+K>=D+G,C+J+K>=A+B+D] 1.23/1.23 1.23/1.23 * Chain [30]: 0 1.23/1.23 with precondition: [I=3,A>=0,B>=0,C>=0,A+B>=C] 1.23/1.23 1.23/1.23 * Chain [29]: 1*s(7)+0 1.23/1.23 Such that:s(7) =< -A+G 1.23/1.23 1.23/1.23 with precondition: [I=3,A>=0,B>=0,C>=0,G>=A+1,D>=C+1,A+B>=C] 1.23/1.23 1.23/1.23 * Chain [28]: 1*s(8)+0 1.23/1.23 Such that:s(8) =< -B+G 1.23/1.23 1.23/1.23 with precondition: [I=3,A>=0,B>=0,C>=0,G>=B+1,D>=C+1,A+B>=C] 1.23/1.23 1.23/1.23 * Chain [27]: 0 1.23/1.23 with precondition: [I=3,A>=0,B>=0,C>=0,D>=C+1,A+B>=C] 1.23/1.23 1.23/1.23 * Chain [26]: 0 1.23/1.23 with precondition: [I=4,M=E,N=F,A=J,B=K,C=L,A>=0,B>=0,C>=0,C>=D,A+B>=C] 1.23/1.23 1.23/1.23 1.23/1.23 #### Cost of chains of evalfbb5in_loop_cont(A,B,C,D,E,F,G,H,I): 1.23/1.23 * Chain [32]: 0 1.23/1.23 with precondition: [A=3] 1.23/1.23 1.23/1.23 * Chain [31]: 0 1.23/1.23 with precondition: [A=4] 1.23/1.23 1.23/1.23 1.23/1.23 #### Cost of chains of evalfentryin(A,B,C,D,E,F,G,I): 1.23/1.23 * Chain [38]: 0 1.23/1.23 with precondition: [] 1.23/1.23 1.23/1.23 * Chain [37]: 0 1.23/1.23 with precondition: [0>=D] 1.23/1.23 1.23/1.23 * Chain [36]: 4*s(15)+4*s(16)+4*s(20)+0 1.23/1.23 Such that:aux(40) =< D 1.23/1.23 aux(41) =< G+1 1.23/1.23 aux(42) =< G/2 1.23/1.23 s(15) =< aux(41) 1.23/1.23 s(16) =< aux(42) 1.23/1.23 s(20) =< aux(40) 1.23/1.23 s(16) =< aux(40) 1.23/1.23 1.23/1.23 with precondition: [D>=1] 1.23/1.23 1.23/1.23 * Chain [35]: 2*s(27)+0 1.23/1.23 Such that:aux(43) =< G 1.23/1.23 s(27) =< aux(43) 1.23/1.23 1.23/1.23 with precondition: [D>=1,G>=1] 1.23/1.23 1.23/1.23 * Chain [34]: 2*s(29)+2*s(30)+2*s(34)+0 1.23/1.23 Such that:s(33) =< D 1.23/1.23 aux(44) =< G+1 1.23/1.23 aux(45) =< G/2 1.23/1.23 s(29) =< aux(44) 1.23/1.23 s(30) =< aux(45) 1.23/1.23 s(34) =< s(33) 1.23/1.23 s(30) =< s(33) 1.23/1.23 1.23/1.23 with precondition: [D>=2] 1.23/1.23 1.23/1.23 * Chain [33]: 2*s(35)+2*s(36)+2*s(37)+4*s(40)+4*s(41)+0 1.23/1.23 Such that:aux(48) =< D 1.23/1.23 aux(49) =< G 1.23/1.23 aux(50) =< G+1 1.23/1.23 aux(51) =< G/2 1.23/1.23 s(36) =< aux(50) 1.23/1.23 s(35) =< aux(51) 1.23/1.23 s(37) =< aux(51) 1.23/1.23 s(35) =< aux(49) 1.23/1.23 s(40) =< aux(49) 1.23/1.23 s(41) =< aux(48) 1.23/1.23 s(35) =< aux(48) 1.23/1.23 s(37) =< aux(48) 1.23/1.23 1.23/1.23 with precondition: [D>=2,G>=1] 1.23/1.23 1.23/1.23 1.23/1.24 #### Cost of chains of evalfstart(A,B,C,D,E,F,G,I): 1.23/1.24 * Chain [44]: 0 1.23/1.24 with precondition: [] 1.23/1.24 1.23/1.24 * Chain [43]: 0 1.23/1.24 with precondition: [0>=D] 1.23/1.24 1.23/1.24 * Chain [42]: 4*s(52)+4*s(53)+4*s(54)+0 1.23/1.24 Such that:s(49) =< D 1.23/1.24 s(50) =< G+1 1.23/1.24 s(51) =< G/2 1.23/1.24 s(52) =< s(50) 1.23/1.24 s(53) =< s(51) 1.23/1.24 s(54) =< s(49) 1.23/1.24 s(53) =< s(49) 1.23/1.24 1.23/1.24 with precondition: [D>=1] 1.23/1.24 1.23/1.24 * Chain [41]: 2*s(56)+0 1.23/1.24 Such that:s(55) =< G 1.23/1.24 s(56) =< s(55) 1.23/1.24 1.23/1.24 with precondition: [D>=1,G>=1] 1.23/1.24 1.23/1.24 * Chain [40]: 2*s(60)+2*s(61)+2*s(62)+0 1.23/1.24 Such that:s(57) =< D 1.23/1.24 s(58) =< G+1 1.23/1.24 s(59) =< G/2 1.23/1.24 s(60) =< s(58) 1.23/1.24 s(61) =< s(59) 1.23/1.24 s(62) =< s(57) 1.23/1.24 s(61) =< s(57) 1.23/1.24 1.23/1.24 with precondition: [D>=2] 1.23/1.24 1.23/1.24 * Chain [39]: 2*s(67)+2*s(68)+2*s(69)+4*s(70)+4*s(71)+0 1.23/1.24 Such that:s(63) =< D 1.23/1.24 s(64) =< G 1.23/1.24 s(65) =< G+1 1.23/1.24 s(66) =< G/2 1.23/1.24 s(67) =< s(65) 1.23/1.24 s(68) =< s(66) 1.23/1.24 s(69) =< s(66) 1.23/1.24 s(68) =< s(64) 1.23/1.24 s(70) =< s(64) 1.23/1.24 s(71) =< s(63) 1.23/1.24 s(68) =< s(63) 1.23/1.24 s(69) =< s(63) 1.23/1.24 1.23/1.24 with precondition: [D>=2,G>=1] 1.23/1.24 1.23/1.24 1.23/1.24 Closed-form bounds of evalfstart(A,B,C,D,E,F,G,I): 1.23/1.24 ------------------------------------- 1.23/1.24 * Chain [44] with precondition: [] 1.23/1.24 - Upper bound: 0 1.23/1.24 - Complexity: constant 1.23/1.24 * Chain [43] with precondition: [0>=D] 1.23/1.24 - Upper bound: 0 1.23/1.24 - Complexity: constant 1.23/1.24 * Chain [42] with precondition: [D>=1] 1.23/1.24 - Upper bound: nat(G+1)*4+4*D+nat(G/2)*4 1.23/1.24 - Complexity: n 1.23/1.24 * Chain [41] with precondition: [D>=1,G>=1] 1.23/1.24 - Upper bound: 2*G 1.23/1.24 - Complexity: n 1.23/1.24 * Chain [40] with precondition: [D>=2] 1.23/1.24 - Upper bound: nat(G+1)*2+2*D+nat(G/2)*2 1.23/1.24 - Complexity: n 1.23/1.24 * Chain [39] with precondition: [D>=2,G>=1] 1.23/1.24 - Upper bound: 4*D+8*G+2 1.23/1.24 - Complexity: n 1.23/1.24 1.23/1.24 ### Maximum cost of evalfstart(A,B,C,D,E,F,G,I): max([nat(G)*2,nat(G/2)*2+nat(D)*2+max([nat(G)*4,nat(G+1)*2])+(nat(G+1)*2+nat(D)*2+nat(G/2)*2)]) 1.23/1.24 Asymptotic class: n 1.23/1.24 * Total analysis performed in 1079 ms. 1.23/1.24 1.24/1.34 EOF