Profiling results ----------------- Total cpu time observed: 80762ms (out of 81376ms) Number of samples taken: 254 (once every 318ms) (Hiding functions with self<1.0% and local<2.0%: 4 of 209 hidden) ========================================================================= Caller Idx Total Self Name+src Local% ms(pct) ms(pct) Callee ========================================================================= ??? [94] 100.0% [1] 80762(100.0%) 0(0.0%) profile-thunk16 ...e/pkgs/profile-lib/main.rkt:9:0 run [16] 100.0% ------------------------------------------------------------------------- ??? [94] 100.0% [2] 68340(84.6%) 0(0.0%) run-improve40 ...lify-tweak/src/mainloop.rkt:340:0 for-loop [17] 99.1% simplify! [35] 0.9% ------------------------------------------------------------------------- ??? [154] 100.0% [3] 9708(12.0%) 0(0.0%) approximate9 ...ify-tweak/src/core/taylor.rkt:12:0 loop [19] 83.7% for-loop [26] 12.9% simplify [18] 3.4% ------------------------------------------------------------------------- loop [194] 14.0% for-loop [160] 86.0% [4] 4612(5.7%) 0(0.0%) syntax-e (unknown source) syntax-e/no-taint [20] 100.0% ------------------------------------------------------------------------- hash-ref! [161] 100.0% [5] 4558(5.6%) 0(0.0%) ??? ...e/simplify-tweak/src/core/taylor.rkt:407:23 for-loop [22] 92.7% for-loop [31] 7.3% ------------------------------------------------------------------------- hash-ref! [161] 100.0% [6] 4276(5.3%) 0(0.0%) ??? ...e/simplify-tweak/src/core/taylor.rkt:301:23 for-loop [21] 100.0% ------------------------------------------------------------------------- matcher [77] 100.0% [7] 2592(3.2%) 0(0.0%) ??? .../simplify-tweak/src/core/matcher.rkt:175:11 for-loop [24] 100.0% ------------------------------------------------------------------------- for-loop [160] 100.0% [8] 1632(2.0%) 328(0.4%) expand-implicit (unknown source) resolve+shift28 [23] 79.9% ------------------------------------------------------------------------- hash-ref! [161] 100.0% [9] 1308(1.6%) 0(0.0%) ??? ...ie/simplify-tweak/src/core/taylor.rkt:68:15 ??? [154] 75.1% hash-ref! [161] 24.9% ------------------------------------------------------------------------- hash-ref! [161] 100.0% [10] 1286(1.6%) 0(0.0%) ??? ...e/simplify-tweak/src/core/taylor.rkt:291:26 for-loop [25] 100.0% ------------------------------------------------------------------------- loop [194] 26.3% for-loop [160] 73.7% [11] 1268(1.6%) 0(0.0%) expand-identifier (unknown source) resolve+shift28 [23] 100.0% ------------------------------------------------------------------------- taylor [174] 100.0% [12] 652(0.8%) 0(0.0%) taylor-invert ...y-tweak/src/core/taylor.rkt:318:0 first-nonzero-exp [27] 100.0% ------------------------------------------------------------------------- parse-loop15 [30] 2.4% loop [13] 97.6% [13] 600(0.7%) 0(0.0%) loop ...-7.0/collects/racket/private/map.rkt:54:19 loop [13] 97.6% ??? [154] 2.4% ------------------------------------------------------------------------- taylor [174] 100.0% [14] 326(0.4%) 0(0.0%) taylor-log ...lify-tweak/src/core/taylor.rkt:503:0 simplify [18] 100.0% ------------------------------------------------------------------------- hash-ref! [161] 100.0% [15] 324(0.4%) 0(0.0%) ??? ...e/simplify-tweak/src/core/taylor.rkt:510:23 for-loop [28] 100.0% ------------------------------------------------------------------------- profile-thunk16 [1] 100.0% [16] 80762(100.0%) 0(0.0%) run ...et-7.0/share/pkgs/profile-lib/main.rkt:39:2 ??? [94] 100.0% ------------------------------------------------------------------------- run-improve40 [2] 100.0% [17] 67732(83.9%) 0(0.0%) for-loop .../simplify-tweak/src/mainloop.rkt:355:4 run-iter! [29] 100.0% ------------------------------------------------------------------------- loop [134] 3.6% taylor-log [14] 3.6% approximate9 [3] 3.6% ??? [154] 3.7% hash-ref! [161] 85.6% [18] 9122(11.3%) 0(0.0%) simplify ...implify-tweak/src/core/reduce.rkt:16:0 f46 [32] 46.2% parse-loop15 [30] 43.7% debug-print [54] 10.1% ------------------------------------------------------------------------- approximate9 [3] 100.0% [19] 8126(10.1%) 318(0.4%) loop ...ie/simplify-tweak/src/core/taylor.rkt:87:4 ??? [154] 80.0% hash-ref! [161] 16.1% ------------------------------------------------------------------------- expand-id-application-form17 [198] 17.3% syntax-e [4] 82.7% [20] 5580(6.9%) 0(0.0%) syntax-e/no-taint (unknown source) loop [194] 100.0% ------------------------------------------------------------------------- ??? [6] 100.0% [21] 4276(5.3%) 0(0.0%) for-loop ...plify-tweak/src/core/taylor.rkt:304:27 hash-ref! [161] 100.0% ------------------------------------------------------------------------- ??? [5] 100.0% [22] 4226(5.2%) 0(0.0%) for-loop ...plify-tweak/src/core/taylor.rkt:411:33 for-loop [31] 100.0% ------------------------------------------------------------------------- expand-id-application-form17 [198] 8.5% core-form-sym [199] 24.1% expand-identifier [11] 33.2% expand-implicit [8] 34.2% [23] 3814(4.7%) 300(0.4%) resolve+shift28 (unknown source) fallback-loop [33] 92.1% ------------------------------------------------------------------------- ??? [7] 100.0% [24] 2592(3.2%) 0(0.0%) for-loop ...lify-tweak/src/core/matcher.rkt:179:21 matcher [77] 100.0% ------------------------------------------------------------------------- ??? [10] 100.0% [25] 1286(1.6%) 0(0.0%) for-loop ...plify-tweak/src/core/taylor.rkt:291:52 hash-ref! [161] 88.4% ??? [34] 11.6% ------------------------------------------------------------------------- approximate9 [3] 100.0% [26] 1252(1.6%) 0(0.0%) for-loop ...mplify-tweak/src/core/taylor.rkt:30:18 taylor [174] 100.0% ------------------------------------------------------------------------- taylor-invert [12] 100.0% [27] 652(0.8%) 0(0.0%) first-nonzero-exp ...eak/src/core/taylor.rkt:266:0 hash-ref! [161] 100.0% ------------------------------------------------------------------------- ??? [15] 100.0% [28] 324(0.4%) 0(0.0%) for-loop ...plify-tweak/src/core/taylor.rkt:514:35 parse-loop15 [30] 100.0% ------------------------------------------------------------------------- for-loop [17] 100.0% [29] 67732(83.9%) 0(0.0%) run-iter! ...simplify-tweak/src/mainloop.rkt:321:0 simplify! [35] 40.8% finalize-iter! [36] 38.2% gen-series! [37] 14.8% gen-rewrites! [39] 4.8% localize! [40] 1.4% ------------------------------------------------------------------------- for-loop [28] 2.1% hash-ref! [161] 12.2% map [142] 37.0% simplify [18] 48.8% [30] 7844(9.7%) 326(0.4%) parse-loop15 ...s/racket/match/compiler.rkt:418:15 eval-const-expr [38] 77.4% loop [134] 9.0% ??? [96] 4.2% loop [13] 3.2% for-loop [41] 2.1% ------------------------------------------------------------------------- ??? [5] 7.3% for-loop [22] 92.7% [31] 4558(5.6%) 0(0.0%) for-loop ...plify-tweak/src/core/taylor.rkt:413:39 hash-ref! [161] 100.0% ------------------------------------------------------------------------- map [142] 37.0% simplify [18] 63.0% [32] 4212(5.2%) 0(0.0%) f46 ...0/collects/racket/match/compiler.rkt:507:40 map [142] 76.7% eval-const-expr [38] 23.3% ------------------------------------------------------------------------- resolve+shift28 [23] 100.0% [33] 3514(4.4%) 0(0.0%) fallback-loop (unknown source) for-loop [160] 100.0% ------------------------------------------------------------------------- for-loop [25] 100.0% [34] 298(0.4%) 0(0.0%) ??? ...e/simplify-tweak/src/core/taylor.rkt:294:19 hash-ref! [161] 100.0% ------------------------------------------------------------------------- run-improve40 [2] 2.2% run-iter! [29] 97.8% [35] 28226(34.9%) 0(0.0%) simplify! ...simplify-tweak/src/mainloop.rkt:217:0 ??? [42] 96.5% for-loop [47] 2.4% for-loop [48] 1.1% ------------------------------------------------------------------------- run-iter! [29] 100.0% [36] 25864(32.0%) 0(0.0%) finalize-iter! ...ify-tweak/src/mainloop.rkt:272:0 ??? [43] 100.0% ------------------------------------------------------------------------- run-iter! [29] 100.0% [37] 10042(12.4%) 0(0.0%) gen-series! ...mplify-tweak/src/mainloop.rkt:153:0 for-loop [44] 100.0% ------------------------------------------------------------------------- ??? [94] 4.3% f46 [32] 13.0% parse-loop15 [30] 82.6% [38] 7542(9.3%) 0(0.0%) eval-const-expr ...fy-tweak/src/programs.rkt:149:0 eval-prog [86] 100.0% ------------------------------------------------------------------------- run-iter! [29] 100.0% [39] 3252(4.0%) 0(0.0%) gen-rewrites! ...lify-tweak/src/mainloop.rkt:176:0 for-loop [45] 100.0% ------------------------------------------------------------------------- run-iter! [29] 100.0% [40] 956(1.2%) 0(0.0%) localize! ...simplify-tweak/src/mainloop.rkt:120:0 localize-error [46] 100.0% ------------------------------------------------------------------------- parse-loop15 [30] 100.0% [41] 324(0.4%) 0(0.0%) for-loop ...plify-tweak/src/core/taylor.rkt:517:59 hash-ref! [161] 100.0% ------------------------------------------------------------------------- simplify! [35] 100.0% [42] 27236(33.7%) 0(0.0%) ??? ...e/simplify-tweak/src/core/simplify.rkt:26:0 one-iter [57] 48.1% for-loop [51] 30.2% loop [52] 21.6% ------------------------------------------------------------------------- loop [133] 1.0% match-e [88] 3.4% finalize-iter! [36] 95.6% [43] 27066(33.5%) 932(1.2%) ??? ...contract/private/arrow-val-first.rkt:388:18 for-loop [49] 95.6% ------------------------------------------------------------------------- gen-series! [37] 100.0% [44] 10042(12.4%) 0(0.0%) for-loop .../simplify-tweak/src/mainloop.rkt:160:7 taylor-alt [50] 100.0% ------------------------------------------------------------------------- gen-rewrites! [39] 100.0% [45] 3252(4.0%) 0(0.0%) for-loop ...simplify-tweak/src/mainloop.rkt:184:11 rewrite-expression-head20 [53] 100.0% ------------------------------------------------------------------------- localize! [40] 100.0% [46] 956(1.2%) 0(0.0%) localize-error ...tweak/src/core/localize.rkt:52:0 hash-ref! [161] 100.0% ------------------------------------------------------------------------- simplify! [35] 100.0% [47] 666(0.8%) 0(0.0%) for-loop .../simplify-tweak/src/mainloop.rkt:222:6 ??? [154] 50.2% debug-print [54] 49.8% ------------------------------------------------------------------------- simplify! [35] 100.0% [48] 324(0.4%) 0(0.0%) for-loop .../simplify-tweak/src/mainloop.rkt:256:6 for-loop [55] 100.0% ------------------------------------------------------------------------- ??? [43] 100.0% [49] 25864(32.0%) 0(0.0%) for-loop ...lify-tweak/src/core/alt-table.rkt:51:2 atab-add-altn [56] 100.0% ------------------------------------------------------------------------- for-loop [44] 100.0% [50] 10042(12.4%) 0(0.0%) taylor-alt ...implify-tweak/src/mainloop.rkt:139:0 for-loop [58] 100.0% ------------------------------------------------------------------------- ??? [42] 100.0% [51] 8232(10.2%) 0(0.0%) for-loop ...plify-tweak/src/core/simplify.rkt:33:2 one-iter [57] 100.0% ------------------------------------------------------------------------- ??? [42] 100.0% [52] 5896(7.3%) 0(0.0%) loop ...simplify-tweak/src/core/simplify.rkt:132:2 for-loop [59] 94.9% loop [62] 5.1% ------------------------------------------------------------------------- for-loop [45] 100.0% [53] 3252(4.0%) 0(0.0%) rewrite-expression-head20 ...ore/matcher.rkt:126:0 rewriter [60] 89.7% loop [134] 10.3% ------------------------------------------------------------------------- for-loop [47] 26.5% simplify [18] 73.5% [54] 1254(1.6%) 0(0.0%) debug-print .../simplify-tweak/src/debug.rkt:110:0 for-loop [61] 100.0% ------------------------------------------------------------------------- for-loop [48] 100.0% [55] 324(0.4%) 0(0.0%) for-loop .../simplify-tweak/src/mainloop.rkt:257:8 expression-cost [78] 100.0% ------------------------------------------------------------------------- for-loop [49] 100.0% [56] 25864(32.0%) 334(0.4%) atab-add-altn ...weak/src/core/alt-table.rkt:200:0 override-at-pnts [64] 50.4% best-and-tied-at-points [65] 48.3% ------------------------------------------------------------------------- for-loop [51] 38.6% ??? [42] 61.4% [57] 21340(26.4%) 0(0.0%) one-iter ...plify-tweak/src/core/simplify.rkt:86:0 find-matches [63] 77.7% for-loop [66] 20.8% for-loop [72] 1.5% ------------------------------------------------------------------------- taylor-alt [50] 100.0% [58] 10042(12.4%) 0(0.0%) for-loop .../simplify-tweak/src/mainloop.rkt:145:6 ??? [154] 100.0% ------------------------------------------------------------------------- loop [52] 100.0% [59] 5598(6.9%) 0(0.0%) for-loop ...lify-tweak/src/core/simplify.rkt:138:4 argmin [68] 45.2% loop [69] 27.0% for-loop [71] 11.7% for-loop [76] 10.7% expression-cost [78] 5.4% ------------------------------------------------------------------------- rewrite-expression-head20 [53] 32.7% matcher [77] 67.3% [60] 2918(3.6%) 612(0.8%) rewriter ...plify-tweak/src/core/matcher.rkt:128:2 for-loop [67] 77.4% *rules* [70] 16.5% ------------------------------------------------------------------------- debug-print [54] 100.0% [61] 1254(1.6%) 1254(1.6%) for-loop ...bie/simplify-tweak/src/debug.rkt:116:2 ------------------------------------------------------------------------- loop [52] 100.0% [62] 298(0.4%) 298(0.4%) loop .../racket-7.0/collects/racket/list.rkt:537:4 ------------------------------------------------------------------------- one-iter [57] 100.0% [63] 16574(20.5%) 0(0.0%) find-matches ...y-tweak/src/core/simplify.rkt:56:0 for-loop [74] 100.0% ------------------------------------------------------------------------- atab-add-altn [56] 100.0% [64] 13048(16.2%) 654(0.8%) override-at-pnts ...k/src/core/alt-table.rkt:135:0 errors [73] 95.0% ------------------------------------------------------------------------- atab-add-altn [56] 100.0% [65] 12482(15.5%) 0(0.0%) best-and-tied-at-points ...ore/alt-table.rkt:112:0 errors [73] 92.4% for-loop [83] 2.6% loop [84] 2.6% ??? [85] 2.4% ------------------------------------------------------------------------- one-iter [57] 100.0% [66] 4438(5.5%) 0(0.0%) for-loop ...plify-tweak/src/core/simplify.rkt:95:2 apply-match [75] 77.5% update-leader! [111] 15.1% reduce-to-single! [81] 7.5% ------------------------------------------------------------------------- rewriter [60] 100.0% [67] 2592(3.2%) 1000(1.2%) for-loop ...lify-tweak/src/core/matcher.rkt:131:10 matcher [77] 88.7% return/no-unsupplied [171] 3.4% ------------------------------------------------------------------------- for-loop [59] 100.0% [68] 2530(3.1%) 0(0.0%) argmin ...acket-7.0/collects/racket/list.rkt:765:0 for-loop [76] 51.0% expression-cost [78] 49.0% ------------------------------------------------------------------------- for-loop [59] 100.0% [69] 1512(1.9%) 0(0.0%) loop .../racket-7.0/collects/racket/list.rkt:751:4 for-loop [76] 59.5% expression-cost [78] 40.5% ------------------------------------------------------------------------- rewriter [60] 100.0% [70] 956(1.2%) 0(0.0%) *rules* ...mplify-tweak/src/syntax/rules.rkt:783:0 for-loop [79] 100.0% ------------------------------------------------------------------------- for-loop [59] 100.0% [71] 656(0.8%) 296(0.4%) for-loop ...ify-tweak/src/core/simplify.rkt:142:16 for-loop [80] 54.9% ------------------------------------------------------------------------- one-iter [57] 100.0% [72] 328(0.4%) 0(0.0%) for-loop ...lify-tweak/src/core/simplify.rkt:100:2 set-precompute! [82] 100.0% ------------------------------------------------------------------------- ??? [94] 5.0% best-and-tied-at-points [65] 45.8% override-at-pnts [64] 49.2% [73] 25174(31.2%) 0(0.0%) errors ...rbie/simplify-tweak/src/points.rkt:228:0 for-loop [87] 59.4% eval-prog [86] 39.2% make-sequence [99] 1.3% ------------------------------------------------------------------------- for-loop [74] 49.1% find-matches [63] 50.9% [74] 16574(20.5%) 4022(5.0%) for-loop ...plify-tweak/src/core/simplify.rkt:58:8 for-loop [74] 49.1% match-e [88] 37.9% ------------------------------------------------------------------------- for-loop [66] 100.0% [75] 3438(4.3%) 0(0.0%) apply-match ...fy-tweak/src/core/simplify.rkt:65:0 for-loop [89] 73.7% match-e [88] 26.3% ------------------------------------------------------------------------- for-loop [59] 21.5% loop [69] 32.3% argmin [68] 46.2% [76] 2790(3.5%) 632(0.8%) for-loop .../simplify-tweak/src/programs.rkt:205:2 table-ref [91] 77.3% ------------------------------------------------------------------------- for-loop [67] 49.1% for-loop [24] 50.9% [77] 2592(3.2%) 0(0.0%) matcher ...mplify-tweak/src/core/matcher.rkt:163:2 ??? [7] 50.9% rewriter [60] 49.1% ------------------------------------------------------------------------- for-loop [59] 12.1% for-loop [55] 13.1% loop [69] 24.7% argmin [68] 50.1% [78] 2476(3.1%) 0(0.0%) expression-cost ...fy-tweak/src/programs.rkt:204:0 compile [90] 100.0% ------------------------------------------------------------------------- *rules* [70] 100.0% [79] 956(1.2%) 0(0.0%) for-loop ...bie/simplify-tweak/src/common.rkt:71:9 ormap [92] 100.0% ------------------------------------------------------------------------- for-loop [71] 100.0% [80] 360(0.4%) 360(0.4%) for-loop ...ify-tweak/src/core/simplify.rkt:146:23 ------------------------------------------------------------------------- for-loop [66] 100.0% [81] 332(0.4%) 332(0.4%) reduce-to-single! ...eak/src/core/egraph.rkt:320:0 ------------------------------------------------------------------------- for-loop [72] 100.0% [82] 328(0.4%) 0(0.0%) set-precompute! ...eak/src/core/simplify.rkt:106:0 for-loop [93] 100.0% ------------------------------------------------------------------------- best-and-tied-at-points [65] 100.0% [83] 326(0.4%) 326(0.4%) for-loop ...fy-tweak/src/core/alt-table.rkt:114:16 ------------------------------------------------------------------------- best-and-tied-at-points [65] 100.0% [84] 324(0.4%) 324(0.4%) loop ...7.0/collects/racket/private/list.rkt:264:4 ------------------------------------------------------------------------- best-and-tied-at-points [65] 100.0% [85] 300(0.4%) 300(0.4%) ??? ...7.0/collects/racket/private/for.rkt:1208:14 ------------------------------------------------------------------------- sort-context-on-expr [151] 1.8% eval-const-expr [38] 42.5% errors [73] 55.7% [86] 17740(22.0%) 336(0.4%) eval-prog ...simplify-tweak/src/programs.rkt:130:0 temp68_2 [95] 87.1% loop [194] 5.5% inductor [101] 3.6% hash-ref! [161] 1.9% ------------------------------------------------------------------------- errors [73] 100.0% [87] 14960(18.5%) 1918(2.4%) for-loop ...ie/simplify-tweak/src/points.rkt:230:2 ??? [96] 52.8% ulp-difference [135] 17.2% ??? [154] 15.0% point-error [104] 2.2% ------------------------------------------------------------------------- apply-match [75] 4.5% for-loop [109] 16.0% for-loop [74] 79.4% [88] 13456(16.7%) 5364(6.6%) match-e ...simplify-tweak/src/core/ematch.rkt:39:0 for-loop [97] 55.1% make-sequence [99] 3.7% ??? [43] 2.7% custom-in-set [105] 2.2% ------------------------------------------------------------------------- apply-match [75] 100.0% [89] 2534(3.1%) 0(0.0%) for-loop ...plify-tweak/src/core/simplify.rkt:78:2 merge-egraph-nodes! [98] 50.7% mk-enode! [125] 25.9% substitute-e [103] 23.4% ------------------------------------------------------------------------- expression-cost [78] 100.0% [90] 2476(3.1%) 0(0.0%) compile ...e/simplify-tweak/src/programs.rkt:181:0 hash-ref! [161] 100.0% ------------------------------------------------------------------------- for-loop [76] 100.0% [91] 2158(2.7%) 1532(1.9%) table-ref ...ie/simplify-tweak/src/common.rkt:42:0 for-loop [102] 29.0% ------------------------------------------------------------------------- for-loop [79] 100.0% [92] 956(1.2%) 0(0.0%) ormap ....0/collects/racket/private/map.rkt:141:13 flag-set? [100] 100.0% ------------------------------------------------------------------------- set-precompute! [82] 100.0% [93] 328(0.4%) 0(0.0%) for-loop ...lify-tweak/src/core/simplify.rkt:108:2 ??? [94] 100.0% ------------------------------------------------------------------------- for-loop [93] 0.1% run [16] 49.9% [94] 80762(100.0%) 0(0.0%) ??? ...lects/racket/private/more-scheme.rkt:261:28 profile-thunk16 [1] 49.9% run-improve40 [2] 42.2% prepare-points-intervals [108] 5.0% oracle-error [110] 1.1% errors [73] 0.8% get-final-combination [112] 0.6% eval-errors [119] 0.2% eval-const-expr [38] 0.1% ------------------------------------------------------------------------- eval-prog [86] 100.0% [95] 15450(19.1%) 0(0.0%) temp68_2 (unknown source) compile16 [106] 100.0% ------------------------------------------------------------------------- parse-loop15 [30] 2.2% loop [185] 2.2% ??? [150] 4.1% loop [134] 4.2% loop [133] 34.8% for-loop [87] 52.5% [96] 15030(18.6%) 1530(1.9%) ??? ...erbie/simplify-tweak/src/programs.rkt:146:2 ??? [107] 58.1% ??? [154] 31.7% ------------------------------------------------------------------------- match-e [88] 100.0% [97] 8422(10.4%) 4350(5.4%) for-loop ...mplify-tweak/src/core/ematch.rkt:52:11 for-loop [109] 48.2% foldl [113] 5.6% foldr [117] 4.0% ------------------------------------------------------------------------- for-loop [89] 100.0% [98] 1284(1.6%) 0(0.0%) merge-egraph-nodes! ...k/src/core/egraph.rkt:145:0 update-leader! [111] 74.1% dedup-children! [118] 25.9% ------------------------------------------------------------------------- errors [73] 33.7% match-e [88] 66.3% [99] 996(1.2%) 660(0.8%) make-sequence ...ects/racket/private/for.rkt:528:2 ??? [115] 33.7% ------------------------------------------------------------------------- ormap [92] 100.0% [100] 956(1.2%) 636(0.8%) flag-set? ...ie/simplify-tweak/src/config.rkt:28:0 return/no-unsupplied [171] 33.5% ------------------------------------------------------------------------- eval-prog [86] 26.4% inductor [101] 73.6% [101] 646(0.8%) 310(0.4%) inductor .../simplify-tweak/src/programs.rkt:135:4 inductor [101] 73.6% ??? [116] 10.4% ------------------------------------------------------------------------- table-ref [91] 100.0% [102] 626(0.8%) 626(0.8%) for-loop ...bie/simplify-tweak/src/common.rkt:44:4 ------------------------------------------------------------------------- for-loop [89] 100.0% [103] 594(0.7%) 0(0.0%) substitute-e ...ify-tweak/src/core/ematch.rkt:64:0 for-loop [114] 100.0% ------------------------------------------------------------------------- for-loop [87] 100.0% [104] 332(0.4%) 0(0.0%) point-error ...simplify-tweak/src/points.rkt:195:0 ulp-difference [135] 100.0% ------------------------------------------------------------------------- match-e [88] 100.0% [105] 296(0.4%) 296(0.4%) custom-in-set ...acket/private/set-types.rkt:577:0 ------------------------------------------------------------------------- temp68_2 [95] 100.0% [106] 15450(19.1%) 0(0.0%) compile16 (unknown source) temp74_0 [120] 100.0% ------------------------------------------------------------------------- ??? [96] 100.0% [107] 8738(10.8%) 1590(2.0%) ??? ...t-7.0/collects/racket/private/kw.rkt:592:14 ??? [154] 47.5% ??? [122] 22.4% ??? [191] 8.1% double->posit16 [127] 3.8% ------------------------------------------------------------------------- ??? [94] 100.0% [108] 8094(10.0%) 0(0.0%) prepare-points-intervals ...k/src/points.rkt:133:0 loop [121] 100.0% ------------------------------------------------------------------------- for-loop [97] 100.0% [109] 5004(6.2%) 596(0.7%) for-loop ...mplify-tweak/src/core/ematch.rkt:58:37 match-e [88] 82.1% ??? [130] 6.0% ------------------------------------------------------------------------- ??? [94] 100.0% [110] 1848(2.3%) 0(0.0%) oracle-error ...implify-tweak/src/points.rkt:212:0 for-loop [123] 100.0% ------------------------------------------------------------------------- for-loop [66] 41.2% merge-egraph-nodes! [98] 58.8% [111] 1620(2.0%) 0(0.0%) update-leader! ...-tweak/src/core/egraph.rkt:213:0 for-loop [124] 100.0% ------------------------------------------------------------------------- ??? [94] 100.0% [112] 932(1.2%) 0(0.0%) get-final-combination ...ak/src/mainloop.rkt:361:0 infer-splitpoints [126] 100.0% ------------------------------------------------------------------------- for-loop [97] 100.0% [113] 624(0.8%) 298(0.4%) foldl ....0/collects/racket/private/list.rkt:229:4 merge2 [129] 52.2% ------------------------------------------------------------------------- substitute-e [103] 100.0% [114] 594(0.7%) 0(0.0%) for-loop ...mplify-tweak/src/core/ematch.rkt:73:24 mk-enode! [125] 100.0% ------------------------------------------------------------------------- make-sequence [99] 100.0% [115] 336(0.4%) 336(0.4%) ??? ...-7.0/collects/racket/private/for.rkt:1203:9 ------------------------------------------------------------------------- inductor [101] 100.0% [116] 336(0.4%) 336(0.4%) ??? ...lects/racket/contract/private/orc.rkt:83:14 ------------------------------------------------------------------------- for-loop [97] 100.0% [117] 334(0.4%) 334(0.4%) foldr ....0/collects/racket/private/list.rkt:242:4 ------------------------------------------------------------------------- merge-egraph-nodes! [98] 100.0% [118] 332(0.4%) 0(0.0%) dedup-children! ...-tweak/src/core/enode.rkt:199:0 loop [128] 100.0% ------------------------------------------------------------------------- ??? [94] 100.0% [119] 300(0.4%) 0(0.0%) eval-errors ...simplify-tweak/src/points.rkt:203:0 for-loop [131] 100.0% ------------------------------------------------------------------------- compile16 [106] 100.0% [120] 15450(19.1%) 0(0.0%) temp74_0 (unknown source) expand-single [132] 85.5% compile-top9 [136] 14.5% ------------------------------------------------------------------------- prepare-points-intervals [108] 100.0% [121] 8094(10.0%) 0(0.0%) loop ...herbie/simplify-tweak/src/points.rkt:145:4 loop [133] 84.2% ??? [137] 15.8% ------------------------------------------------------------------------- ??? [107] 100.0% [122] 1960(2.4%) 1648(2.0%) ??? ...simplify-tweak/src/syntax/syntax.rkt:317:17 return/no-unsupplied [171] 15.9% ------------------------------------------------------------------------- oracle-error [110] 100.0% [123] 1848(2.3%) 0(0.0%) for-loop ...ie/simplify-tweak/src/points.rkt:213:2 loop [134] 83.2% map [142] 16.8% ------------------------------------------------------------------------- update-leader! [111] 100.0% [124] 1620(2.0%) 334(0.4%) for-loop ...mplify-tweak/src/core/egraph.rkt:218:6 for-loop [139] 40.1% hash-update! [144] 39.3% ------------------------------------------------------------------------- for-loop [114] 47.5% for-loop [89] 52.5% [125] 1250(1.5%) 1250(1.5%) mk-enode! ...mplify-tweak/src/core/egraph.rkt:99:0 ------------------------------------------------------------------------- get-final-combination [112] 100.0% [126] 932(1.2%) 0(0.0%) infer-splitpoints ...eak/src/core/regimes.rkt:34:0 for-loop [138] 100.0% ------------------------------------------------------------------------- ??? [107] 100.0% [127] 334(0.4%) 0(0.0%) double->posit16 ...ftposit-rkt/softposit.rkt:248:0 get-ffi-obj* [140] 100.0% ------------------------------------------------------------------------- dedup-children! [118] 7.7% loop [128] 92.3% [128] 332(0.4%) 332(0.4%) loop ...racket-7.0/collects/racket/list.rkt:434:17 loop [128] 92.3% ------------------------------------------------------------------------- foldl [113] 100.0% [129] 326(0.4%) 326(0.4%) merge2 .../simplify-tweak/src/core/ematch.rkt:24:0 ------------------------------------------------------------------------- for-loop [109] 100.0% [130] 300(0.4%) 300(0.4%) ??? ...bie/simplify-tweak/src/core/ematch.rkt:43:5 ------------------------------------------------------------------------- eval-errors [119] 100.0% [131] 300(0.4%) 0(0.0%) for-loop ...ie/simplify-tweak/src/points.rkt:205:2 ulp-difference [135] 100.0% ------------------------------------------------------------------------- temp74_0 [120] 100.0% [132] 13208(16.4%) 0(0.0%) expand-single (unknown source) expand-capturing-lifts [141] 100.0% ------------------------------------------------------------------------- loop [121] 100.0% [133] 6812(8.4%) 378(0.5%) loop ...herbie/simplify-tweak/src/points.rkt:104:2 ??? [96] 76.7% ??? [154] 9.2% hash-update! [144] 4.5% ??? [43] 4.0% ------------------------------------------------------------------------- rewrite-expression-head20 [53] 1.3% ??? [172] 8.8% parse-loop15 [30] 16.0% taylor [174] 16.5% for-loop [123] 28.3% loop [134] 29.2% [134] 3786(4.7%) 1268(1.6%) loop ...-7.0/collects/racket/private/map.rkt:40:19 loop [134] 29.2% hash-ref! [161] 22.9% ??? [150] 15.9% simplify [18] 8.6% ??? [96] 8.4% map [142] 0.1% ------------------------------------------------------------------------- for-loop [131] 9.4% point-error [104] 10.4% for-loop [87] 80.3% [135] 3202(4.0%) 2866(3.5%) ulp-difference ...implify-tweak/src/float.rkt:14:0 return/no-unsupplied [171] 10.5% ------------------------------------------------------------------------- temp74_0 [120] 100.0% [136] 2242(2.8%) 310(0.4%) compile-top9 (unknown source) compile-forms31 [143] 86.2% ------------------------------------------------------------------------- loop [121] 100.0% [137] 1282(1.6%) 324(0.4%) ??? .../herbie/simplify-tweak/src/points.rkt:129:2 ??? [154] 74.7% ------------------------------------------------------------------------- infer-splitpoints [126] 100.0% [138] 932(1.2%) 0(0.0%) for-loop ...mplify-tweak/src/core/regimes.rkt:46:6 option-on-expr [145] 100.0% ------------------------------------------------------------------------- for-loop [124] 100.0% [139] 650(0.8%) 0(0.0%) for-loop ...mplify-tweak/src/core/egraph.rkt:219:8 hash-update! [144] 100.0% ------------------------------------------------------------------------- double->posit16 [127] 100.0% [140] 334(0.4%) 0(0.0%) get-ffi-obj* ...-7.0/collects/ffi/unsafe.rkt:209:2 get-ffi-lib9 [146] 100.0% ------------------------------------------------------------------------- loop [194] 6.9% expand-single [132] 93.1% [141] 14182(17.6%) 0(0.0%) expand-capturing-lifts (unknown source) lambda-clause-expander [147] 93.1% dispatch-transformer41 [148] 4.4% loop [194] 2.5% ------------------------------------------------------------------------- for-loop [123] 6.4% loop [134] 7.4% taylor [174] 19.4% f46 [32] 66.8% [142] 4832(6.0%) 0(0.0%) map ...t-7.0/collects/racket/private/map.rkt:35:13 parse-loop15 [30] 33.6% f46 [32] 32.2% taylor [174] 19.4% ??? [154] 7.4% ??? [150] 6.4% simplify* [152] 1.0% ------------------------------------------------------------------------- compile-top9 [136] 100.0% [143] 1932(2.4%) 302(0.4%) compile-forms31 (unknown source) for-loop [160] 84.4% ------------------------------------------------------------------------- loop [133] 19.3% for-loop [124] 39.9% for-loop [139] 40.8% [144] 1594(2.0%) 308(0.4%) hash-update! ...cket/private/more-scheme.rkt:365:4 ??? [149] 80.7% ------------------------------------------------------------------------- for-loop [138] 100.0% [145] 932(1.2%) 0(0.0%) option-on-expr ...tweak/src/core/regimes.rkt:150:0 sort-context-on-expr [151] 69.7% err-lsts->split-indices [153] 30.3% ------------------------------------------------------------------------- get-ffi-obj* [140] 100.0% [146] 334(0.4%) 334(0.4%) get-ffi-lib9 ...-7.0/collects/ffi/unsafe.rkt:121:0 ------------------------------------------------------------------------- expand-capturing-lifts [141] 100.0% [147] 13208(16.4%) 0(0.0%) lambda-clause-expander (unknown source) finish-bodys [155] 90.4% loop [194] 9.6% ------------------------------------------------------------------------- for-loop [160] 15.9% expand-capturing-lifts [141] 32.7% loop [194] 51.4% [148] 1888(2.3%) 0(0.0%) dispatch-transformer41 (unknown source) apply-transformer52 [156] 100.0% ------------------------------------------------------------------------- hash-update! [144] 100.0% [149] 1286(1.6%) 0(0.0%) ??? ...e/simplify-tweak/src/core/egraph.rkt:221:24 for-loop [157] 100.0% ------------------------------------------------------------------------- map [142] 34.0% loop [134] 66.0% [150] 912(1.1%) 0(0.0%) ??? ...herbie/simplify-tweak/src/points.rkt:214:26 ??? [96] 66.9% ??? [154] 33.1% ------------------------------------------------------------------------- option-on-expr [145] 100.0% [151] 650(0.8%) 0(0.0%) sort-context-on-expr ...src/core/regimes.rkt:145:0 ??? [158] 50.8% eval-prog [86] 49.2% ------------------------------------------------------------------------- map [142] 100.0% [152] 330(0.4%) 0(0.0%) simplify* ...mplify-tweak/src/core/reduce.rkt:31:0 ??? [175] 100.0% ------------------------------------------------------------------------- option-on-expr [145] 100.0% [153] 282(0.3%) 0(0.0%) err-lsts->split-indices .../core/regimes.rkt:282:0 loop [159] 100.0% ------------------------------------------------------------------------- ??? [150] 1.2% for-loop [47] 1.4% map [142] 1.5% ??? [9] 1.8% loop [13] 2.5% loop [133] 2.6% ??? [137] 3.9% loop [19] 8.9% for-loop [87] 9.2% location-do [162] 15.3% for-loop [58] 15.3% ??? [107] 17.0% ??? [96] 19.5% [154] 24374(30.2%) 1252(1.6%) ??? ...tract/private/arrow-higher-order.rkt:357:33 ->flonum [163] 32.4% ival-mult [164] 15.8% location-do [162] 15.3% approximate9 [3] 14.6% hash-ref! [161] 10.7% sample-multi-bounded [165] 3.9% simplify [18] 0.7% ------------------------------------------------------------------------- lambda-clause-expander [147] 25.2% for-loop [160] 74.8% [155] 11938(14.8%) 0(0.0%) finish-bodys (unknown source) for-loop [160] 100.0% ------------------------------------------------------------------------- dispatch-transformer41 [148] 100.0% [156] 1888(2.3%) 626(0.8%) apply-transformer52 (unknown source) apply-transformer-in-context [166] 34.1% loop [194] 32.7% ------------------------------------------------------------------------- ??? [149] 100.0% [157] 1286(1.6%) 956(1.2%) for-loop ...plify-tweak/src/core/egraph.rkt:222:26 update-en-expr [167] 25.7% ------------------------------------------------------------------------- sort-context-on-expr [151] 100.0% [158] 330(0.4%) 0(0.0%) ??? ...-7.0/collects/racket/private/sort.rkt:369:3 generic-sort/key [168] 100.0% ------------------------------------------------------------------------- err-lsts->split-indices [153] 100.0% [159] 282(0.3%) 0(0.0%) loop .../simplify-tweak/src/core/regimes.rkt:333:4 for-loop [169] 100.0% ------------------------------------------------------------------------- fallback-loop [33] 5.4% compile-forms31 [143] 11.5% for-loop [160] 12.2% finish-bodys [155] 70.9% [160] 14186(17.6%) 6708(8.3%) for-loop (unknown source) finish-bodys [155] 55.5% for-loop [160] 12.2% syntax-e [4] 2.7% loop [194] 2.5% add-local-binding!37 [176] 1.8% expand-implicit [8] 1.0% expand-identifier [11] 0.6% dispatch-transformer41 [148] 0.2% ------------------------------------------------------------------------- for-loop [41] 0.5% ??? [34] 0.5% eval-prog [86] 0.6% ??? [9] 1.1% first-nonzero-exp [27] 1.2% loop [19] 2.1% for-loop [25] 2.6% localize-error [46] 5.2% loop [134] 5.3% for-loop [31] 9.8% compile [90] 9.8% for-loop [21] 11.3% ??? [172] 11.5% ??? [170] 16.6% ??? [154] 20.4% [161] 11574(14.3%) 2144(2.7%) hash-ref! .../racket/private/more-scheme.rkt:376:2 simplify [18] 20.4% ??? [170] 16.6% ??? [172] 15.4% ??? [6] 11.3% ??? [5] 9.8% parse-loop15 [30] 8.3% ??? [9] 3.2% ??? [10] 3.1% taylor [174] 1.2% ??? [15] 0.5% ------------------------------------------------------------------------- ??? [154] 43.3% location-do [162] 56.7% [162] 10042(12.4%) 0(0.0%) location-do ...mplify-tweak/src/programs.rkt:111:0 location-do [162] 56.7% ??? [154] 43.3% ------------------------------------------------------------------------- ??? [154] 100.0% [163] 7898(9.8%) 5286(6.5%) ->flonum ...e/simplify-tweak/src/programs.rkt:38:0 return/no-unsupplied [171] 17.5% ??? [175] 15.5% ------------------------------------------------------------------------- ??? [154] 100.0% [164] 3852(4.8%) 606(0.8%) ival-mult ...plify-tweak/src/biginterval.rkt:105:0 classify-ival [173] 49.6% bf* [177] 25.3% ...higher-order.rkt:361:33 [179] 9.4% ------------------------------------------------------------------------- ??? [154] 100.0% [165] 958(1.2%) 654(0.8%) sample-multi-bounded ...-tweak/src/points.rkt:16:0 ??? [175] 31.7% ------------------------------------------------------------------------- apply-transformer52 [156] 100.0% [166] 644(0.8%) 0(0.0%) apply-transformer-in-context (unknown source) ??? [178] 100.0% ------------------------------------------------------------------------- for-loop [157] 100.0% [167] 330(0.4%) 330(0.4%) update-en-expr ...-tweak/src/core/egraph.rkt:207:0 ------------------------------------------------------------------------- ??? [158] 100.0% [168] 330(0.4%) 0(0.0%) generic-sort/key .../racket/private/sort.rkt:156:2 copying-mergesort [180] 100.0% ------------------------------------------------------------------------- loop [159] 100.0% [169] 282(0.3%) 0(0.0%) for-loop ...plify-tweak/src/core/regimes.rkt:298:4 for-loop [181] 100.0% ------------------------------------------------------------------------- hash-ref! [161] 100.0% [170] 6858(8.5%) 0(0.0%) ??? ...ie/simplify-tweak/src/core/taylor.rkt:45:15 hash-ref! [161] 100.0% ------------------------------------------------------------------------- ??? [122] 11.5% flag-set? [100] 11.8% ulp-difference [135] 12.4% for-loop [67] 12.9% ->flonum [163] 51.3% [171] 2704(3.3%) 1714(2.1%) return/no-unsupplied ...ct/private/arr-i.rkt:534:0 filter [182] 36.6% ------------------------------------------------------------------------- hash-ref! [161] 100.0% [172] 2486(3.1%) 332(0.4%) ??? ...erbie/simplify-tweak/src/programs.rkt:189:5 hash-ref! [161] 82.1% loop [134] 13.4% ------------------------------------------------------------------------- ival-mult [164] 100.0% [173] 1910(2.4%) 918(1.1%) classify-ival ...y-tweak/src/biginterval.rkt:310:0 ...higher-order.rkt:357:33 [183] 34.9% fold-binary-pred [186] 17.1% ------------------------------------------------------------------------- hash-ref! [161] 10.1% for-loop [26] 14.3% map [142] 14.6% taylor [174] 61.0% [174] 1904(2.4%) 0(0.0%) taylor ...simplify-tweak/src/core/taylor.rkt:170:0 taylor [174] 61.0% map [142] 14.6% taylor-invert [12] 10.1% loop [134] 6.9% taylor-log [14] 4.3% debug5 [187] 3.2% ------------------------------------------------------------------------- sample-multi-bounded [165] 16.3% simplify* [152] 17.7% ->flonum [163] 65.9% [175] 1860(2.3%) 1570(1.9%) ??? ...s/racket/contract/private/arr-i.rkt:1252:29 ??? [189] 15.6% ------------------------------------------------------------------------- for-loop [160] 100.0% [176] 1614(2.0%) 1314(1.6%) add-local-binding!37 (unknown source) binding-table-add [188] 18.6% ------------------------------------------------------------------------- ival-mult [164] 100.0% [177] 974(1.2%) 0(0.0%) bf* ...ath/private/bigfloat/bigfloat-mpfr.rkt:95:0 ??? [197] 100.0% ------------------------------------------------------------------------- apply-transformer-in-context [166]100.0% [178] 644(0.8%) 0(0.0%) ??? ...collects/racket/private/qq-and-or.rkt:155:9 ??? [184] 100.0% ------------------------------------------------------------------------- ival-mult [164] 100.0% [179] 362(0.4%) 362(0.4%) ...higher-order.rkt:361:33 (unknown source) ------------------------------------------------------------------------- copying-mergesort [180] 50.0% generic-sort/key [168] 50.0% [180] 330(0.4%) 0(0.0%) copying-mergesort ...racket/private/sort.rkt:129:8 copying-mergesort [180] 50.0% loop [185] 50.0% ------------------------------------------------------------------------- for-loop [169] 100.0% [181] 282(0.3%) 0(0.0%) for-loop ...plify-tweak/src/core/regimes.rkt:302:8 curried [190] 100.0% ------------------------------------------------------------------------- return/no-unsupplied [171] 100.0% [182] 990(1.2%) 990(1.2%) filter ...0/collects/racket/private/list.rkt:256:2 ------------------------------------------------------------------------- classify-ival [173] 100.0% [183] 666(0.8%) 370(0.5%) ...higher-order.rkt:357:33 (unknown source) ??? [193] 44.4% ------------------------------------------------------------------------- ??? [178] 100.0% [184] 644(0.8%) 0(0.0%) ??? ...ollects/racket/private/qq-and-or.rkt:164:21 syntax->list [192] 100.0% ------------------------------------------------------------------------- copying-mergesort [180] 100.0% [185] 330(0.4%) 0(0.0%) loop ...7.0/collects/racket/private/sort.rkt:96:12 ??? [96] 100.0% ------------------------------------------------------------------------- classify-ival [173] 100.0% [186] 326(0.4%) 0(0.0%) fold-binary-pred ...gfloat/bigfloat-mpfr.rkt:117:0 ??? [191] 100.0% ------------------------------------------------------------------------- taylor [174] 100.0% [187] 302(0.4%) 302(0.4%) debug5 ...erbie/simplify-tweak/src/debug.rkt:102:0 ------------------------------------------------------------------------- add-local-binding!37 [176] 100.0% [188] 300(0.4%) 300(0.4%) binding-table-add (unknown source) ------------------------------------------------------------------------- ??? [175] 100.0% [189] 290(0.4%) 290(0.4%) ??? ...ects/racket/contract/private/prop.rkt:274:4 ------------------------------------------------------------------------- for-loop [181] 100.0% [190] 282(0.3%) 282(0.3%) curried ...-7.0/collects/racket/function.rkt:71:18 ------------------------------------------------------------------------- fold-binary-pred [186] 31.6% ??? [107] 68.4% [191] 1032(1.3%) 326(0.4%) ??? ...tract/private/arrow-higher-order.rkt:361:33 ival-add [195] 68.4% ------------------------------------------------------------------------- ??? [184] 100.0% [192] 644(0.8%) 0(0.0%) syntax->list (unknown source) loop [194] 100.0% ------------------------------------------------------------------------- ...higher-order.rkt:357:33 [183] 100.0% [193] 296(0.4%) 296(0.4%) ??? ...ects/racket/contract/private/guts.rkt:746:8 ------------------------------------------------------------------------- loop [194] 1.3% expand-capturing-lifts [141] 2.2% syntax->list [192] 2.6% apply-transformer52 [156] 3.8% eval-prog [86] 6.0% lambda-clause-expander [147] 10.3% for-loop [160] 17.1% syntax-e/no-taint [20] 56.7% [194] 8138(10.1%) 984(1.2%) loop (unknown source) gf [196] 52.7% expand-id-application-form17 [198] 9.3% core-form-sym [199] 7.5% dispatch-transformer41 [148] 6.6% expand-capturing-lifts [141] 6.0% expand-identifier [11] 4.1% syntax-e [4] 2.6% loop [194] 1.3% ------------------------------------------------------------------------- ??? [191] 100.0% [195] 706(0.9%) 360(0.4%) ival-add ...implify-tweak/src/biginterval.rkt:87:0 ??? [197] 49.0% ------------------------------------------------------------------------- loop [194] 100.0% [196] 5252(6.5%) 314(0.4%) gf (unknown source) propagation-apply [200] 51.4% propagation-apply-shifted [201] 36.3% cache-or-reuse-set [203] 6.3% ------------------------------------------------------------------------- ival-add [195] 26.2% bf* [177] 73.8% [197] 1320(1.6%) 326(0.4%) ??? ...-racket/utils/simple-result-arrow.rkt:39:12 bfadd [202] 75.3% ------------------------------------------------------------------------- loop [194] 100.0% [198] 1292(1.6%) 0(0.0%) expand-id-application-form17 (unknown source) syntax-e/no-taint [20] 74.9% resolve+shift28 [23] 25.1% ------------------------------------------------------------------------- loop [194] 100.0% [199] 918(1.1%) 0(0.0%) core-form-sym (unknown source) resolve+shift28 [23] 100.0% ------------------------------------------------------------------------- gf [196] 100.0% [200] 2700(3.3%) 2700(3.3%) propagation-apply (unknown source) ------------------------------------------------------------------------- gf [196] 100.0% [201] 1908(2.4%) 1908(2.4%) propagation-apply-shifted (unknown source) ------------------------------------------------------------------------- ??? [197] 100.0% [202] 994(1.2%) 0(0.0%) bfadd ...-lib/math/private/bigfloat/mpfr.rkt:821:4 ??? [204] 65.2% new-mpfr [205] 34.8% ------------------------------------------------------------------------- gf [196] 100.0% [203] 330(0.4%) 330(0.4%) cache-or-reuse-set (unknown source) ------------------------------------------------------------------------- bfadd [202] 100.0% [204] 648(0.8%) 648(0.8%) ??? /opt/racket-7.0/collects/ffi/unsafe.rkt:898:4 ------------------------------------------------------------------------- bfadd [202] 100.0% [205] 346(0.4%) 346(0.4%) new-mpfr ...b/math/private/bigfloat/mpfr.rkt:335:0 -------------------------------------------------------------------------