Profiling results ----------------- Total cpu time observed: 97764ms (out of 98480ms) Number of samples taken: 303 (once every 323ms) (Hiding functions with self<1.0% and local<2.0%: 3 of 214 hidden) =========================================================================== Caller Idx Total Self Name+src Local% ms(pct) ms(pct) Callee =========================================================================== ??? [76] 100.0% [1] 97764(100.0%) 0(0.0%) profile-thunk16 ...e/pkgs/profile-lib/main.rkt:9:0 run [10] 100.0% --------------------------------------------------------------------------- ??? [76] 100.0% [2] 81060(82.9%) 0(0.0%) run-improve40 ...xperiments/src/mainloop.rkt:340:0 for-loop [11] 98.6% ??? [28] 0.5% simplify! [21] 0.5% prepare-points-intervals [85] 0.4% --------------------------------------------------------------------------- hash-ref! [161] 100.0% [3] 6438(6.6%) 304(0.3%) ??? .../pruning-experiments/src/programs.rkt:189:5 hash-ref! [161] 94.1% loop [115] 5.1% --------------------------------------------------------------------------- loop [163] 20.9% for-loop [180] 79.1% [4] 1566(1.6%) 0(0.0%) syntax-e (unknown source) syntax-e/no-taint [12] 100.0% --------------------------------------------------------------------------- ??? [150] 100.0% [5] 1548(1.6%) 0(0.0%) approximate9 ...periments/src/core/taylor.rkt:12:0 loop [13] 80.6% taylor [15] 19.4% --------------------------------------------------------------------------- for-loop [180] 100.0% [6] 1210(1.2%) 0(0.0%) expand-implicit (unknown source) resolve+shift28 [129] 75.5% binding-lookup50 [17] 24.5% --------------------------------------------------------------------------- parse-loop80 [24] 1.3% loop [7] 98.7% [7] 312(0.3%) 0(0.0%) loop ...-7.0/collects/racket/private/map.rkt:54:19 loop [7] 98.7% ??? [150] 1.3% --------------------------------------------------------------------------- hash-ref! [161] 100.0% [8] 302(0.3%) 0(0.0%) ??? ...ning-experiments/src/core/taylor.rkt:291:26 for-loop [14] 100.0% --------------------------------------------------------------------------- matcher [72] 100.0% [9] 298(0.3%) 0(0.0%) ??? ...ing-experiments/src/core/matcher.rkt:175:11 for-loop [16] 100.0% --------------------------------------------------------------------------- profile-thunk16 [1] 100.0% [10] 97764(100.0%) 0(0.0%) run ...et-7.0/share/pkgs/profile-lib/main.rkt:39:2 ??? [76] 100.0% --------------------------------------------------------------------------- run-improve40 [2] 100.0% [11] 79912(81.7%) 0(0.0%) for-loop ...ing-experiments/src/mainloop.rkt:355:4 run-iter! [18] 100.0% --------------------------------------------------------------------------- gf [206] 11.9% expand-id-application-form17 [188] 25.4% syntax-e [4] 62.7% [12] 2496(2.6%) 0(0.0%) syntax-e/no-taint (unknown source) loop [163] 100.0% --------------------------------------------------------------------------- approximate9 [5] 100.0% [13] 1248(1.3%) 0(0.0%) loop ...uning-experiments/src/core/taylor.rkt:87:4 ??? [150] 100.0% --------------------------------------------------------------------------- ??? [8] 100.0% [14] 302(0.3%) 0(0.0%) for-loop ...experiments/src/core/taylor.rkt:291:52 simplify [19] 100.0% --------------------------------------------------------------------------- approximate9 [5] 100.0% [15] 300(0.3%) 0(0.0%) taylor ...ng-experiments/src/core/taylor.rkt:170:0 taylor-sqrt [20] 100.0% --------------------------------------------------------------------------- ??? [9] 100.0% [16] 298(0.3%) 0(0.0%) for-loop ...xperiments/src/core/matcher.rkt:179:21 matcher [72] 100.0% --------------------------------------------------------------------------- expand-implicit [6] 100.0% [17] 296(0.3%) 296(0.3%) binding-lookup50 (unknown source) --------------------------------------------------------------------------- for-loop [11] 100.0% [18] 79912(81.7%) 0(0.0%) run-iter! ...ng-experiments/src/mainloop.rkt:321:0 simplify! [21] 79.3% finalize-iter! [22] 16.8% gen-series! [23] 1.9% gen-rewrites! [25] 1.6% localize! [26] 0.4% --------------------------------------------------------------------------- for-loop [14] 19.5% hash-ref! [161] 80.5% [19] 1548(1.6%) 0(0.0%) simplify ...g-experiments/src/core/reduce.rkt:16:0 parse-loop80 [24] 61.1% f67 [30] 38.9% --------------------------------------------------------------------------- taylor [15] 100.0% [20] 300(0.3%) 0(0.0%) taylor-sqrt ...periments/src/core/taylor.rkt:352:0 hash-ref! [161] 100.0% --------------------------------------------------------------------------- run-improve40 [2] 0.6% run-iter! [18] 99.4% [21] 63766(65.2%) 0(0.0%) simplify! ...ng-experiments/src/mainloop.rkt:217:0 ??? [27] 99.1% for-loop [34] 0.5% for-loop [35] 0.5% --------------------------------------------------------------------------- run-iter! [18] 100.0% [22] 13436(13.7%) 0(0.0%) finalize-iter! ...periments/src/mainloop.rkt:272:0 ??? [28] 100.0% --------------------------------------------------------------------------- run-iter! [18] 100.0% [23] 1548(1.6%) 0(0.0%) gen-series! ...-experiments/src/mainloop.rkt:153:0 for-loop [29] 100.0% --------------------------------------------------------------------------- parse-loop80 [24] 12.9% hash-ref! [161] 24.8% simplify [19] 62.3% [24] 1258(1.3%) 0(0.0%) parse-loop80 ...s/racket/match/compiler.rkt:418:15 eval-const-expr [39] 49.4% loop [115] 16.5% parse-loop80 [24] 12.9% f67 [30] 12.9% loop [7] 8.3% --------------------------------------------------------------------------- run-iter! [18] 100.0% [25] 1240(1.3%) 0(0.0%) gen-rewrites! ...xperiments/src/mainloop.rkt:176:0 for-loop [31] 74.2% for-loop [32] 25.8% --------------------------------------------------------------------------- run-iter! [18] 100.0% [26] 312(0.3%) 0(0.0%) localize! ...ng-experiments/src/mainloop.rkt:120:0 localize-error [33] 100.0% --------------------------------------------------------------------------- simplify! [21] 100.0% [27] 63172(64.6%) 0(0.0%) ??? ...ning-experiments/src/core/simplify.rkt:29:0 loop [36] 81.4% loop [38] 18.6% --------------------------------------------------------------------------- variable? [91] 2.0% substitute-e [88] 2.2% run-improve40 [2] 2.7% match-e [79] 6.0% finalize-iter! [22] 87.1% [28] 15418(15.8%) 1232(1.3%) ??? ...contract/private/arrow-val-first.rkt:388:18 for-loop [37] 87.1% make-alt-table [42] 2.7% ??? [186] 2.2% --------------------------------------------------------------------------- gen-series! [23] 100.0% [29] 1548(1.6%) 0(0.0%) for-loop ...ing-experiments/src/mainloop.rkt:160:7 taylor-alt [40] 100.0% --------------------------------------------------------------------------- hash-ref! [161] 25.2% parse-loop80 [24] 26.2% simplify [19] 48.6% [30] 1238(1.3%) 0(0.0%) f67 ...0/collects/racket/match/compiler.rkt:507:40 eval-const-expr [39] 74.8% map [44] 25.2% --------------------------------------------------------------------------- gen-rewrites! [25] 100.0% [31] 920(0.9%) 0(0.0%) for-loop ...ng-experiments/src/mainloop.rkt:184:11 rewrite-expression-head20 [41] 100.0% --------------------------------------------------------------------------- gen-rewrites! [25] 100.0% [32] 320(0.3%) 0(0.0%) for-loop ...ing-experiments/src/mainloop.rkt:201:4 for-loop [43] 100.0% --------------------------------------------------------------------------- localize! [26] 100.0% [33] 312(0.3%) 0(0.0%) localize-error ...ments/src/core/localize.rkt:52:0 hash-ref! [161] 100.0% --------------------------------------------------------------------------- simplify! [21] 100.0% [34] 298(0.3%) 0(0.0%) for-loop ...ing-experiments/src/mainloop.rkt:256:6 for-loop [45] 100.0% --------------------------------------------------------------------------- simplify! [21] 100.0% [35] 296(0.3%) 0(0.0%) for-loop ...ing-experiments/src/mainloop.rkt:222:6 debug-print [46] 100.0% --------------------------------------------------------------------------- ??? [27] 100.0% [36] 51444(52.6%) 0(0.0%) loop ...ing-experiments/src/core/simplify.rkt:44:2 one-iter [47] 81.4% loop [50] 18.6% --------------------------------------------------------------------------- ??? [28] 100.0% [37] 13436(13.7%) 0(0.0%) for-loop ...xperiments/src/core/alt-table.rkt:56:2 atab-add-altn [48] 93.1% loop [52] 6.9% --------------------------------------------------------------------------- ??? [27] 100.0% [38] 11728(12.0%) 298(0.3%) loop ...ng-experiments/src/core/simplify.rkt:132:2 for-loop [49] 97.5% --------------------------------------------------------------------------- parse-loop80 [24] 21.7% f67 [30] 32.3% ??? [76] 46.1% [39] 2870(2.9%) 0(0.0%) eval-const-expr ...eriments/src/programs.rkt:149:0 eval-prog [78] 100.0% --------------------------------------------------------------------------- for-loop [29] 100.0% [40] 1548(1.6%) 0(0.0%) taylor-alt ...g-experiments/src/mainloop.rkt:139:0 for-loop [51] 100.0% --------------------------------------------------------------------------- for-loop [31] 100.0% [41] 920(0.9%) 0(0.0%) rewrite-expression-head20 ...ore/matcher.rkt:126:0 rewriter [53] 100.0% --------------------------------------------------------------------------- ??? [28] 100.0% [42] 414(0.4%) 414(0.4%) make-alt-table ...ents/src/core/alt-table.rkt:33:0 --------------------------------------------------------------------------- for-loop [32] 100.0% [43] 320(0.3%) 0(0.0%) for-loop ...ing-experiments/src/mainloop.rkt:202:6 ??? [150] 100.0% --------------------------------------------------------------------------- f67 [30] 100.0% [44] 312(0.3%) 0(0.0%) map ...t-7.0/collects/racket/private/map.rkt:35:13 hash-ref! [161] 100.0% --------------------------------------------------------------------------- for-loop [34] 100.0% [45] 298(0.3%) 0(0.0%) for-loop ...ing-experiments/src/mainloop.rkt:257:8 expression-cost [67] 100.0% --------------------------------------------------------------------------- for-loop [35] 100.0% [46] 296(0.3%) 296(0.3%) debug-print ...ing-experiments/src/debug.rkt:110:0 --------------------------------------------------------------------------- loop [36] 100.0% [47] 41858(42.8%) 0(0.0%) one-iter ...xperiments/src/core/simplify.rkt:100:0 for-loop [54] 86.6% find-matches [58] 13.4% --------------------------------------------------------------------------- for-loop [37] 100.0% [48] 12510(12.8%) 300(0.3%) atab-add-altn ...ents/src/core/alt-table.rkt:205:0 best-and-tied-at-points [55] 58.7% override-at-pnts [59] 34.1% append-at-pnts [63] 4.8% --------------------------------------------------------------------------- loop [38] 100.0% [49] 11430(11.7%) 300(0.3%) for-loop ...xperiments/src/core/simplify.rkt:138:4 loop [56] 51.2% expression-cost [67] 23.8% argmin [60] 16.5% for-loop [62] 5.8% --------------------------------------------------------------------------- loop [36] 100.0% [50] 9586(9.8%) 0(0.0%) loop ...-7.0/collects/racket/private/map.rkt:74:19 set-precompute! [57] 59.0% update-leader! [99] 41.0% --------------------------------------------------------------------------- taylor-alt [40] 100.0% [51] 1548(1.6%) 0(0.0%) for-loop ...ing-experiments/src/mainloop.rkt:145:6 ??? [150] 100.0% --------------------------------------------------------------------------- for-loop [37] 100.0% [52] 926(0.9%) 0(0.0%) loop ...g-experiments/src/core/alt-table.rkt:179:2 loop [71] 67.4% loop [64] 32.6% --------------------------------------------------------------------------- rewrite-expression-head20 [41] 100.0% [53] 920(0.9%) 0(0.0%) rewriter ...experiments/src/core/matcher.rkt:128:2 for-loop [61] 100.0% --------------------------------------------------------------------------- one-iter [47] 100.0% [54] 36258(37.1%) 0(0.0%) for-loop ...xperiments/src/core/simplify.rkt:101:2 apply-match [65] 100.0% --------------------------------------------------------------------------- atab-add-altn [48] 100.0% [55] 7338(7.5%) 296(0.3%) best-and-tied-at-points ...ore/alt-table.rkt:117:0 errors [66] 91.9% for-loop [75] 4.1% --------------------------------------------------------------------------- for-loop [49] 100.0% [56] 5854(6.0%) 296(0.3%) loop .../racket-7.0/collects/racket/list.rkt:751:4 expression-cost [67] 63.3% for-loop [70] 31.6% --------------------------------------------------------------------------- loop [50] 100.0% [57] 5656(5.8%) 0(0.0%) set-precompute! ...nts/src/core/simplify.rkt:105:0 for-loop [68] 100.0% --------------------------------------------------------------------------- one-iter [47] 100.0% [58] 5600(5.7%) 0(0.0%) find-matches ...riments/src/core/simplify.rkt:64:0 for-loop [69] 100.0% --------------------------------------------------------------------------- atab-add-altn [48] 100.0% [59] 4270(4.4%) 304(0.3%) override-at-pnts ...s/src/core/alt-table.rkt:140:0 errors [66] 92.9% --------------------------------------------------------------------------- for-loop [49] 100.0% [60] 1890(1.9%) 390(0.4%) argmin ...acket-7.0/collects/racket/list.rkt:765:0 for-loop [70] 47.6% expression-cost [67] 31.7% --------------------------------------------------------------------------- rewriter [53] 100.0% [61] 920(0.9%) 0(0.0%) for-loop ...xperiments/src/core/matcher.rkt:131:10 matcher [72] 65.2% type-of [74] 34.8% --------------------------------------------------------------------------- for-loop [49] 100.0% [62] 660(0.7%) 326(0.3%) for-loop ...periments/src/core/simplify.rkt:142:16 for-loop [73] 50.6% --------------------------------------------------------------------------- atab-add-altn [48] 100.0% [63] 602(0.6%) 0(0.0%) append-at-pnts ...nts/src/core/alt-table.rkt:149:0 loop [71] 100.0% --------------------------------------------------------------------------- loop [52] 2.0% loop [64] 98.0% [64] 302(0.3%) 302(0.3%) loop ...racket-7.0/collects/racket/list.rkt:434:28 loop [64] 98.0% --------------------------------------------------------------------------- for-loop [54] 100.0% [65] 36258(37.1%) 0(0.0%) apply-match ...eriments/src/core/simplify.rkt:73:0 for-loop [77] 85.4% match-e [79] 11.0% set [141] 1.9% update-leader! [99] 1.7% --------------------------------------------------------------------------- ??? [76] 6.0% override-at-pnts [59] 34.8% best-and-tied-at-points [55] 59.2% [66] 11394(11.7%) 0(0.0%) errors ...pruning-experiments/src/points.rkt:228:0 eval-prog [78] 54.2% for-loop [81] 45.8% --------------------------------------------------------------------------- for-loop [45] 4.1% argmin [60] 8.2% for-loop [49] 37.2% loop [56] 50.6% [67] 7330(7.5%) 0(0.0%) expression-cost ...eriments/src/programs.rkt:204:0 compile [80] 100.0% --------------------------------------------------------------------------- set-precompute! [57] 100.0% [68] 5656(5.8%) 0(0.0%) for-loop ...xperiments/src/core/simplify.rkt:108:2 ??? [76] 94.7% compose [82] 5.3% --------------------------------------------------------------------------- for-loop [69] 50.0% find-matches [58] 50.0% [69] 5600(5.7%) 922(0.9%) for-loop ...experiments/src/core/simplify.rkt:66:8 for-loop [69] 50.0% match-e [79] 41.8% --------------------------------------------------------------------------- argmin [60] 32.7% loop [56] 67.3% [70] 2752(2.8%) 0(0.0%) for-loop ...ing-experiments/src/programs.rkt:205:2 table-ref [153] 100.0% --------------------------------------------------------------------------- append-at-pnts [63] 49.1% loop [52] 50.9% [71] 1226(1.3%) 1226(1.3%) loop ...g-experiments/src/core/alt-table.rkt:101:2 --------------------------------------------------------------------------- for-loop [16] 24.8% for-loop [61] 75.2% [72] 600(0.6%) 302(0.3%) matcher ...-experiments/src/core/matcher.rkt:163:2 ??? [9] 24.8% for-loop [83] 24.8% --------------------------------------------------------------------------- for-loop [62] 100.0% [73] 334(0.3%) 334(0.3%) for-loop ...periments/src/core/simplify.rkt:146:23 --------------------------------------------------------------------------- for-loop [61] 100.0% [74] 320(0.3%) 320(0.3%) type-of ...ing-experiments/src/type-check.rkt:34:0 --------------------------------------------------------------------------- best-and-tied-at-points [55] 100.0% [75] 300(0.3%) 300(0.3%) for-loop ...eriments/src/core/alt-table.rkt:119:16 --------------------------------------------------------------------------- for-loop [68] 1.8% run [10] 49.1% [76] 97764(100.0%) 0(0.0%) ??? ...lects/racket/private/more-scheme.rkt:261:28 profile-thunk16 [1] 49.1% run-improve40 [2] 40.5% prepare-points-intervals [85] 7.4% merge-egraph-nodes! [84] 1.4% eval-const-expr [39] 0.5% errors [66] 0.4% oracle-error [92] 0.3% eval-errors [93] 0.3% get-final-combination [95] 0.2% --------------------------------------------------------------------------- apply-match [65] 100.0% [77] 30966(31.7%) 0(0.0%) for-loop ...experiments/src/core/simplify.rkt:87:2 merge-egraph-nodes! [84] 72.0% dedup-children! [116] 19.0% substitute-e [88] 5.1% mk-enode! [118] 3.9% --------------------------------------------------------------------------- eval-const-expr [39] 31.7% errors [66] 68.3% [78] 9042(9.2%) 0(0.0%) eval-prog ...ng-experiments/src/programs.rkt:130:0 temp68_2 [87] 72.0% eval [89] 7.1% inductor [90] 7.0% loop [163] 6.6% eval-one-top12 [94] 3.7% hash-ref! [161] 3.6% --------------------------------------------------------------------------- apply-match [65] 23.0% for-loop [102] 36.0% for-loop [69] 41.0% [79] 8682(8.9%) 594(0.6%) match-e ...ng-experiments/src/core/ematch.rkt:39:0 for-loop [86] 86.5% ??? [28] 4.1% custom-in-set [96] 3.4% variable? [91] 3.1% --------------------------------------------------------------------------- expression-cost [67] 100.0% [80] 7330(7.5%) 0(0.0%) compile ...ning-experiments/src/programs.rkt:181:0 hash-ref! [161] 100.0% --------------------------------------------------------------------------- errors [66] 100.0% [81] 5222(5.3%) 298(0.3%) for-loop ...uning-experiments/src/points.rkt:230:2 ??? [124] 70.7% ??? [150] 12.1% ulp-difference [106] 5.7% point-error [98] 5.7% --------------------------------------------------------------------------- for-loop [68] 100.0% [82] 302(0.3%) 302(0.3%) compose ...collects/racket/private/list.rkt:385:12 --------------------------------------------------------------------------- matcher [72] 100.0% [83] 298(0.3%) 0(0.0%) for-loop ...experiments/src/core/matcher.rkt:155:4 pattern-substitute [97] 100.0% --------------------------------------------------------------------------- merge-egraph-nodes! [84] 6.1% for-loop [103] 7.3% ??? [76] 14.7% for-loop [77] 71.8% [84] 26332(26.9%) 0(0.0%) merge-egraph-nodes! ...s/src/core/egraph.rkt:145:0 loop! [125] 43.9% update-leader! [99] 37.1% for-loop [103] 8.6% merge-egraph-nodes! [84] 6.1% dedup-children! [116] 4.3% --------------------------------------------------------------------------- run-improve40 [2] 2.3% ??? [76] 97.7% [85] 14822(15.2%) 392(0.4%) prepare-points-intervals ...s/src/points.rkt:133:0 loop [100] 97.4% --------------------------------------------------------------------------- match-e [79] 100.0% [86] 8384(8.6%) 4644(4.8%) for-loop ...-experiments/src/core/ematch.rkt:52:11 for-loop [102] 49.4% loop [115] 11.8% foldr [112] 1.8% --------------------------------------------------------------------------- eval-prog [78] 100.0% [87] 6508(6.7%) 0(0.0%) temp68_2 (unknown source) compile16 [101] 100.0% --------------------------------------------------------------------------- for-loop [104] 24.4% for-loop [77] 75.6% [88] 1586(1.6%) 326(0.3%) substitute-e ...periments/src/core/ematch.rkt:64:0 for-loop [104] 82.7% ??? [28] 7.1% --------------------------------------------------------------------------- eval-prog [78] 100.0% [89] 644(0.7%) 0(0.0%) eval (unknown source) add-ns-scopes [109] 50.3% namespace-syntax-introduce3 [111] 49.7% --------------------------------------------------------------------------- inductor [90] 39.4% eval-prog [78] 60.6% [90] 634(0.6%) 300(0.3%) inductor ...ing-experiments/src/programs.rkt:135:4 ??? [108] 52.7% inductor [90] 39.4% --------------------------------------------------------------------------- match-e [79] 100.0% [91] 634(0.6%) 328(0.3%) variable? ...eriments/src/syntax/syntax.rkt:1159:0 ??? [28] 48.3% --------------------------------------------------------------------------- ??? [76] 100.0% [92] 622(0.6%) 0(0.0%) oracle-error ...g-experiments/src/points.rkt:212:0 for-loop [105] 100.0% --------------------------------------------------------------------------- ??? [76] 100.0% [93] 596(0.6%) 0(0.0%) eval-errors ...ng-experiments/src/points.rkt:203:0 for-loop [107] 100.0% --------------------------------------------------------------------------- eval-prog [78] 100.0% [94] 334(0.3%) 0(0.0%) eval-one-top12 (unknown source) for-loop [180] 100.0% --------------------------------------------------------------------------- ??? [76] 100.0% [95] 322(0.3%) 0(0.0%) get-final-combination ...ts/src/mainloop.rkt:361:0 infer-splitpoints [110] 100.0% --------------------------------------------------------------------------- match-e [79] 100.0% [96] 298(0.3%) 298(0.3%) custom-in-set ...acket/private/set-types.rkt:577:0 --------------------------------------------------------------------------- for-loop [83] 100.0% [97] 298(0.3%) 298(0.3%) pattern-substitute ...ts/src/core/matcher.rkt:71:0 --------------------------------------------------------------------------- for-loop [81] 100.0% [98] 298(0.3%) 0(0.0%) point-error ...ng-experiments/src/points.rkt:195:0 ulp-difference [106] 100.0% --------------------------------------------------------------------------- apply-match [65] 3.8% loop [50] 24.4% merge-egraph-nodes! [84] 71.8% [99] 16082(16.4%) 326(0.3%) update-leader! ...iments/src/core/egraph.rkt:213:0 for-loop [113] 94.1% custom-set-union! [120] 2.0% --------------------------------------------------------------------------- prepare-points-intervals [85] 100.0% [100] 14430(14.8%) 0(0.0%) loop ...e/pruning-experiments/src/points.rkt:145:4 loop [114] 88.4% ??? [119] 11.6% --------------------------------------------------------------------------- temp68_2 [87] 100.0% [101] 6508(6.7%) 0(0.0%) compile16 (unknown source) temp74_0 [117] 95.4% loop [163] 4.6% --------------------------------------------------------------------------- for-loop [86] 100.0% [102] 5834(6.0%) 300(0.3%) for-loop ...-experiments/src/core/ematch.rkt:58:37 match-e [79] 97.4% --------------------------------------------------------------------------- merge-egraph-nodes! [84] 100.0% [103] 4438(4.5%) 0(0.0%) for-loop ...-experiments/src/core/egraph.rkt:199:4 merge-egraph-nodes! [84] 92.5% dedup-children! [116] 7.5% --------------------------------------------------------------------------- substitute-e [88] 100.0% [104] 1586(1.6%) 0(0.0%) for-loop ...-experiments/src/core/ematch.rkt:73:24 mk-enode! [118] 58.3% substitute-e [88] 41.7% --------------------------------------------------------------------------- oracle-error [92] 100.0% [105] 622(0.6%) 0(0.0%) for-loop ...uning-experiments/src/points.rkt:213:2 loop [115] 100.0% --------------------------------------------------------------------------- point-error [98] 49.8% for-loop [81] 50.2% [106] 598(0.6%) 598(0.6%) ulp-difference ...g-experiments/src/float.rkt:14:0 --------------------------------------------------------------------------- eval-errors [93] 100.0% [107] 596(0.6%) 298(0.3%) for-loop ...uning-experiments/src/points.rkt:205:2 ??? [150] 50.0% --------------------------------------------------------------------------- inductor [90] 100.0% [108] 334(0.3%) 334(0.3%) ??? ...lects/racket/contract/private/orc.rkt:83:14 --------------------------------------------------------------------------- eval [89] 100.0% [109] 324(0.3%) 0(0.0%) add-ns-scopes (unknown source) gf [206] 100.0% --------------------------------------------------------------------------- get-final-combination [95] 100.0% [110] 322(0.3%) 0(0.0%) infer-splitpoints ...nts/src/core/regimes.rkt:34:0 for-loop [121] 100.0% --------------------------------------------------------------------------- eval [89] 100.0% [111] 320(0.3%) 0(0.0%) namespace-syntax-introduce3 (unknown source) free-identifier=? [122] 100.0% --------------------------------------------------------------------------- for-loop [86] 100.0% [112] 294(0.3%) 0(0.0%) foldr ....0/collects/racket/private/list.rkt:242:4 cp-2 [123] 100.0% --------------------------------------------------------------------------- update-leader! [99] 100.0% [113] 15132(15.5%) 300(0.3%) for-loop ...-experiments/src/core/egraph.rkt:218:6 for-loop [126] 49.2% hash-update! [137] 48.8% --------------------------------------------------------------------------- loop [100] 100.0% [114] 12752(13.0%) 920(0.9%) loop ...e/pruning-experiments/src/points.rkt:104:2 ??? [124] 85.6% ??? [150] 7.2% --------------------------------------------------------------------------- for-loop [86] 0.7% parse-loop80 [24] 3.6% ??? [3] 3.7% for-loop [105] 7.1% loop! [125] 15.4% loop [115] 69.4% [115] 8724(8.9%) 298(0.3%) loop ...-7.0/collects/racket/private/map.rkt:40:19 loop [115] 69.4% loop! [125] 15.4% hash-ref! [161] 7.3% ??? [150] 3.6% ??? [124] 3.6% foldl [132] 0.2% --------------------------------------------------------------------------- for-loop [103] 4.2% merge-egraph-nodes! [84] 20.8% for-loop [77] 74.9% [116] 7832(8.0%) 0(0.0%) dedup-children! ...iments/src/core/enode.rkt:199:0 loop [127] 88.2% loop [131] 11.8% --------------------------------------------------------------------------- compile16 [101] 100.0% [117] 6206(6.3%) 0(0.0%) temp74_0 (unknown source) expand-single [128] 80.7% compile-top9 [130] 19.3% --------------------------------------------------------------------------- for-loop [104] 43.3% for-loop [77] 56.7% [118] 2134(2.2%) 1200(1.2%) mk-enode! ...-experiments/src/core/egraph.rkt:99:0 hash-has-key? [133] 29.5% new-enode [136] 14.2% --------------------------------------------------------------------------- loop [100] 100.0% [119] 1678(1.7%) 648(0.7%) ??? ...ie/pruning-experiments/src/points.rkt:129:2 ??? [150] 61.4% --------------------------------------------------------------------------- update-leader! [99] 100.0% [120] 326(0.3%) 0(0.0%) custom-set-union! ...t/private/set-types.rkt:245:0 for-loop [134] 100.0% --------------------------------------------------------------------------- infer-splitpoints [110] 100.0% [121] 322(0.3%) 0(0.0%) for-loop ...-experiments/src/core/regimes.rkt:46:6 option-on-expr [135] 100.0% --------------------------------------------------------------------------- namespace-syntax-introduce3 [111] 100.0% [122] 320(0.3%) 0(0.0%) free-identifier=? (unknown source) resolve+shift28 [129] 100.0% --------------------------------------------------------------------------- foldr [112] 100.0% [123] 294(0.3%) 294(0.3%) cp-2 .../racket-7.0/collects/racket/list.rkt:826:2 --------------------------------------------------------------------------- loop [115] 2.1% for-loop [81] 24.8% loop [114] 73.2% [124] 14922(15.3%) 0(0.0%) ??? .../pruning-experiments/src/programs.rkt:146:2 ??? [138] 91.6% ??? [150] 8.4% --------------------------------------------------------------------------- loop [115] 26.5% merge-egraph-nodes! [84] 73.5% [125] 12822(13.1%) 3830(3.9%) loop! ...ning-experiments/src/core/enode.rkt:191:2 custom-set-union [140] 38.9% loop [115] 26.5% set [141] 11.3% update-en-expr [182] 1.2% --------------------------------------------------------------------------- for-loop [113] 100.0% [126] 7448(7.6%) 300(0.3%) for-loop ...-experiments/src/core/egraph.rkt:219:8 hash-update! [137] 96.0% --------------------------------------------------------------------------- dedup-children! [116] 10.5% loop [127] 89.5% [127] 6908(7.1%) 6908(7.1%) loop ...racket-7.0/collects/racket/list.rkt:434:17 loop [127] 89.5% --------------------------------------------------------------------------- temp74_0 [117] 100.0% [128] 5008(5.1%) 0(0.0%) expand-single (unknown source) expand-capturing-lifts [139] 100.0% --------------------------------------------------------------------------- core-form-sym [191] 19.6% free-identifier=? [122] 20.9% expand-implicit [6] 59.6% [129] 1534(1.6%) 626(0.6%) resolve+shift28 (unknown source) fallback-loop [142] 59.2% --------------------------------------------------------------------------- temp74_0 [117] 100.0% [130] 1198(1.2%) 300(0.3%) compile-top9 (unknown source) compile-forms31 [143] 75.0% --------------------------------------------------------------------------- dedup-children! [116] 38.6% loop [131] 61.4% [131] 924(0.9%) 0(0.0%) loop ...racket-7.0/collects/racket/list.rkt:417:34 loop [131] 61.4% loop [163] 22.7% member [147] 15.9% --------------------------------------------------------------------------- loop [115] 100.0% [132] 694(0.7%) 0(0.0%) foldl ....0/collects/racket/private/list.rkt:229:4 merge2 [144] 100.0% --------------------------------------------------------------------------- mk-enode! [118] 100.0% [133] 630(0.6%) 630(0.6%) hash-has-key? ...ket/private/more-scheme.rkt:371:2 --------------------------------------------------------------------------- custom-set-union! [120] 100.0% [134] 326(0.3%) 326(0.3%) for-loop ...cts/racket/private/set-types.rkt:253:4 --------------------------------------------------------------------------- for-loop [121] 100.0% [135] 322(0.3%) 0(0.0%) option-on-expr ...ments/src/core/regimes.rkt:150:0 err-lsts->split-indices [145] 100.0% --------------------------------------------------------------------------- mk-enode! [118] 100.0% [136] 304(0.3%) 0(0.0%) new-enode ...g-experiments/src/core/enode.rkt:96:0 type-of-enode-expr [146] 100.0% --------------------------------------------------------------------------- for-loop [126] 49.2% for-loop [113] 50.8% [137] 14532(14.9%) 0(0.0%) hash-update! ...cket/private/more-scheme.rkt:365:4 ??? [148] 100.0% --------------------------------------------------------------------------- ??? [124] 100.0% [138] 13672(14.0%) 696(0.7%) ??? ...t-7.0/collects/racket/private/kw.rkt:592:14 ??? [149] 65.2% ??? [154] 13.5% ??? [150] 9.5% double->posit16 [155] 6.7% --------------------------------------------------------------------------- loop [163] 15.2% expand-single [128] 84.8% [139] 5906(6.0%) 302(0.3%) expand-capturing-lifts (unknown source) lambda-clause-expander [151] 84.8% dispatch-transformer41 [195] 10.1% --------------------------------------------------------------------------- loop! [125] 100.0% [140] 5484(5.6%) 1998(2.0%) custom-set-union ...et/private/set-types.rkt:168:0 for-loop [152] 58.1% for-loop [158] 5.5% --------------------------------------------------------------------------- apply-match [65] 17.6% loop! [125] 82.4% [141] 3892(4.0%) 3532(3.6%) set ...collects/racket/private/set-types.rkt:981:0 for-loop [156] 9.2% --------------------------------------------------------------------------- resolve+shift28 [129] 100.0% [142] 908(0.9%) 308(0.3%) fallback-loop (unknown source) for-loop [180] 66.1% --------------------------------------------------------------------------- compile-top9 [130] 100.0% [143] 898(0.9%) 598(0.6%) compile-forms31 (unknown source) loop! [159] 33.4% --------------------------------------------------------------------------- foldl [132] 100.0% [144] 694(0.7%) 694(0.7%) merge2 ...ing-experiments/src/core/ematch.rkt:24:0 --------------------------------------------------------------------------- option-on-expr [135] 100.0% [145] 322(0.3%) 0(0.0%) err-lsts->split-indices .../core/regimes.rkt:282:0 loop [157] 100.0% --------------------------------------------------------------------------- new-enode [136] 100.0% [146] 304(0.3%) 0(0.0%) type-of-enode-expr ...ents/src/core/enode.rkt:69:0 table-ref [153] 100.0% --------------------------------------------------------------------------- loop [131] 100.0% [147] 294(0.3%) 294(0.3%) member (unknown source) --------------------------------------------------------------------------- hash-update! [137] 100.0% [148] 14532(14.9%) 298(0.3%) ??? ...ning-experiments/src/core/egraph.rkt:221:24 for-loop [160] 97.9% --------------------------------------------------------------------------- fold-binary-pred [193] 1.6% ??? [138] 98.4% [149] 8916(9.1%) 286(0.3%) ??? ...tract/private/arrow-higher-order.rkt:361:33 ival-div [162] 64.6% ival-atan [167] 14.6% ival-sub [170] 11.4% ival-add [176] 4.5% ival-sqrt [179] 3.3% --------------------------------------------------------------------------- for-loop [107] 3.8% loop [7] 3.9% loop [115] 3.9% for-loop [43] 4.0% loop [13] 5.3% location-do [166] 7.2% for-loop [51] 7.2% for-loop [81] 8.0% loop [114] 11.6% ??? [119] 13.0% ??? [124] 15.8% ??? [138] 16.4% [150] 7912(8.1%) 632(0.6%) ??? ...tract/private/arrow-higher-order.rkt:357:33 ->flonum [165] 39.1% ival-mult [168] 16.4% sample-multi-bounded [169] 13.0% location-do [166] 7.2% approximate9 [5] 7.2% hash-ref! [161] 5.3% mk-ival [178] 3.9% --------------------------------------------------------------------------- expand-capturing-lifts [139] 100.0% [151] 5008(5.1%) 0(0.0%) lambda-clause-expander (unknown source) finish-bodys [164] 74.2% loop [163] 25.8% --------------------------------------------------------------------------- custom-set-union [140] 100.0% [152] 3184(3.3%) 2540(2.6%) for-loop ...cts/racket/private/set-types.rkt:174:3 for-loop [173] 20.2% --------------------------------------------------------------------------- type-of-enode-expr [146] 9.9% for-loop [70] 90.1% [153] 3056(3.1%) 1552(1.6%) table-ref ...uning-experiments/src/common.rkt:42:0 for-loop [172] 29.6% assoc-iterate-first [175] 19.6% --------------------------------------------------------------------------- ??? [138] 100.0% [154] 1852(1.9%) 906(0.9%) ??? ...ng-experiments/src/syntax/syntax.rkt:317:17 return/no-unsupplied [171] 51.1% --------------------------------------------------------------------------- ??? [138] 100.0% [155] 912(0.9%) 300(0.3%) double->posit16 ...ftposit-rkt/softposit.rkt:248:0 get-ffi-obj* [174] 67.1% --------------------------------------------------------------------------- set [141] 100.0% [156] 360(0.4%) 360(0.4%) for-loop ...cts/racket/private/set-types.rkt:937:4 --------------------------------------------------------------------------- err-lsts->split-indices [145] 100.0% [157] 322(0.3%) 0(0.0%) loop ...ing-experiments/src/core/regimes.rkt:333:4 for-loop [177] 100.0% --------------------------------------------------------------------------- custom-set-union [140] 100.0% [158] 302(0.3%) 302(0.3%) for-loop ...cts/racket/private/set-types.rkt:152:2 --------------------------------------------------------------------------- compile-forms31 [143] 100.0% [159] 300(0.3%) 0(0.0%) loop! (unknown source) for-loop [180] 100.0% --------------------------------------------------------------------------- ??? [148] 100.0% [160] 14234(14.6%) 12706(13.0%) for-loop ...experiments/src/core/egraph.rkt:222:26 update-en-expr [182] 10.7% --------------------------------------------------------------------------- eval-prog [78] 0.6% localize-error [33] 0.7% map [44] 1.4% loop [115] 3.1% taylor-sqrt [20] 3.3% ??? [184] 5.1% ??? [150] 5.1% compile [80] 33.8% ??? [3] 46.0% [161] 9190(9.4%) 7352(7.5%) hash-ref! .../racket/private/more-scheme.rkt:376:2 ??? [3] 48.3% simplify [19] 7.2% ??? [184] 5.1% parse-loop80 [24] 2.0% f67 [30] 1.4% ??? [8] 1.1% --------------------------------------------------------------------------- ??? [149] 100.0% [162] 5906(6.0%) 2148(2.2%) ival-div ...-experiments/src/biginterval.rkt:141:0 classify-ival [181] 37.8% ??? [194] 16.0% force [192] 5.0% fold-binary-pred [193] 4.8% --------------------------------------------------------------------------- loop [163] 1.5% syntax->list [211] 2.2% apply-transformer52 [199] 3.0% eval-prog [78] 3.7% compile16 [101] 6.0% for-loop [180] 6.3% gf [206] 9.4% loop [131] 12.6% lambda-clause-expander [151] 21.4% syntax-e/no-taint [12] 33.9% [163] 5018(5.1%) 1250(1.3%) loop (unknown source) gf [206] 36.1% dispatch-transformer41 [195] 21.4% expand-capturing-lifts [139] 9.7% expand-id-application-form17 [188] 6.3% core-form-sym [191] 3.0% syntax-e [4] 2.2% loop [163] 1.5% --------------------------------------------------------------------------- lambda-clause-expander [151] 20.4% for-loop [180] 79.6% [164] 3714(3.8%) 0(0.0%) finish-bodys (unknown source) for-loop [180] 100.0% --------------------------------------------------------------------------- ??? [150] 100.0% [165] 3094(3.2%) 1542(1.6%) ->flonum ...ning-experiments/src/programs.rkt:38:0 ??? [183] 50.2% --------------------------------------------------------------------------- ??? [150] 27.4% location-do [166] 72.6% [166] 1548(1.6%) 0(0.0%) location-do ...-experiments/src/programs.rkt:111:0 location-do [166] 72.6% ??? [150] 27.4% --------------------------------------------------------------------------- ??? [149] 100.0% [167] 1300(1.3%) 0(0.0%) ival-atan ...experiments/src/biginterval.rkt:307:0 ??? [194] 100.0% --------------------------------------------------------------------------- ??? [150] 100.0% [168] 1296(1.3%) 0(0.0%) ival-mult ...experiments/src/biginterval.rkt:105:0 bf* [185] 54.8% classify-ival [181] 45.2% --------------------------------------------------------------------------- ??? [150] 100.0% [169] 1030(1.1%) 706(0.7%) sample-multi-bounded ...iments/src/points.rkt:16:0 ??? [186] 31.5% --------------------------------------------------------------------------- ??? [149] 100.0% [170] 1016(1.0%) 346(0.4%) ival-sub ...g-experiments/src/biginterval.rkt:93:0 ??? [194] 65.9% --------------------------------------------------------------------------- ??? [154] 100.0% [171] 946(1.0%) 300(0.3%) return/no-unsupplied ...ct/private/arr-i.rkt:534:0 filter [187] 68.3% --------------------------------------------------------------------------- table-ref [153] 100.0% [172] 906(0.9%) 906(0.9%) for-loop ...runing-experiments/src/common.rkt:44:4 --------------------------------------------------------------------------- for-loop [152] 100.0% [173] 644(0.7%) 644(0.7%) for-loop ...cts/racket/private/set-types.rkt:178:5 --------------------------------------------------------------------------- double->posit16 [155] 100.0% [174] 612(0.6%) 0(0.0%) get-ffi-obj* ...-7.0/collects/ffi/unsafe.rkt:209:2 get-ffi-lib9 [189] 100.0% --------------------------------------------------------------------------- table-ref [153] 100.0% [175] 598(0.6%) 598(0.6%) assoc-iterate-first ...cket/private/dict.rkt:166:0 --------------------------------------------------------------------------- ??? [149] 100.0% [176] 404(0.4%) 404(0.4%) ival-add ...g-experiments/src/biginterval.rkt:87:0 --------------------------------------------------------------------------- loop [157] 100.0% [177] 322(0.3%) 322(0.3%) for-loop ...experiments/src/core/regimes.rkt:298:4 --------------------------------------------------------------------------- ??? [150] 100.0% [178] 312(0.3%) 0(0.0%) mk-ival ...ng-experiments/src/biginterval.rkt:59:0 bf [190] 100.0% --------------------------------------------------------------------------- ??? [149] 100.0% [179] 290(0.3%) 0(0.0%) ival-sqrt ...experiments/src/biginterval.rkt:191:0 ??? [194] 100.0% --------------------------------------------------------------------------- loop! [159] 6.5% fallback-loop [142] 7.0% eval-one-top12 [94] 7.2% for-loop [180] 9.0% finish-bodys [164] 70.4% [180] 4648(4.8%) 1234(1.3%) for-loop (unknown source) finish-bodys [164] 58.3% for-loop [180] 9.0% syntax-e [4] 4.9% expand-implicit [6] 2.3% dispatch-transformer41 [195] 1.8% loop [163] 1.7% --------------------------------------------------------------------------- ival-mult [168] 20.8% ival-div [162] 79.2% [181] 2816(2.9%) 2526(2.6%) classify-ival ...riments/src/biginterval.rkt:310:0 ...higher-order.rkt:357:33 [198] 10.3% --------------------------------------------------------------------------- loop! [125] 16.4% for-loop [160] 83.6% [182] 1828(1.9%) 1828(1.9%) update-en-expr ...iments/src/core/egraph.rkt:207:0 --------------------------------------------------------------------------- ->flonum [165] 100.0% [183] 1552(1.6%) 942(1.0%) ??? ...s/racket/contract/private/arr-i.rkt:1252:29 ??? [197] 39.3% --------------------------------------------------------------------------- hash-ref! [161] 100.0% [184] 1248(1.3%) 0(0.0%) ??? ...uning-experiments/src/core/taylor.rkt:45:15 hash-ref! [161] 100.0% --------------------------------------------------------------------------- ival-mult [168] 100.0% [185] 710(0.7%) 0(0.0%) bf* ...ath/private/bigfloat/bigfloat-mpfr.rkt:95:0 ??? [194] 100.0% --------------------------------------------------------------------------- sample-multi-bounded [169] 49.1% ??? [28] 50.9% [186] 660(0.7%) 660(0.7%) ??? ...ects/racket/contract/private/guts.rkt:746:8 --------------------------------------------------------------------------- return/no-unsupplied [171] 100.0% [187] 646(0.7%) 646(0.7%) filter ...0/collects/racket/private/list.rkt:256:2 --------------------------------------------------------------------------- loop [163] 100.0% [188] 634(0.6%) 0(0.0%) expand-id-application-form17 (unknown source) syntax-e/no-taint [12] 100.0% --------------------------------------------------------------------------- get-ffi-obj* [174] 100.0% [189] 612(0.6%) 0(0.0%) get-ffi-lib9 ...-7.0/collects/ffi/unsafe.rkt:121:0 get-cross-lib-search-dirs [196] 100.0% --------------------------------------------------------------------------- mk-ival [178] 100.0% [190] 312(0.3%) 0(0.0%) bf ...ath-lib/math/private/bigfloat/mpfr.rkt:601:2 ??? [203] 100.0% --------------------------------------------------------------------------- loop [163] 100.0% [191] 300(0.3%) 0(0.0%) core-form-sym (unknown source) resolve+shift28 [129] 100.0% --------------------------------------------------------------------------- ival-div [162] 100.0% [192] 298(0.3%) 298(0.3%) force ...collects/racket/private/promise.rkt:109:0 --------------------------------------------------------------------------- ival-div [162] 100.0% [193] 286(0.3%) 0(0.0%) fold-binary-pred ...gfloat/bigfloat-mpfr.rkt:117:0 ??? [149] 100.0% --------------------------------------------------------------------------- ival-sqrt [179] 7.4% ival-sub [170] 17.1% bf* [185] 18.1% ival-div [162] 24.1% ival-atan [167] 33.2% [194] 3914(4.0%) 598(0.6%) ??? ...-racket/utils/simple-result-arrow.rkt:39:12 bfmul [200] 51.7% bfatan [201] 33.0% --------------------------------------------------------------------------- for-loop [180] 15.0% expand-capturing-lifts [139] 26.8% loop [163] 58.2% [195] 2224(2.3%) 0(0.0%) dispatch-transformer41 (unknown source) apply-transformer52 [199] 100.0% --------------------------------------------------------------------------- get-ffi-lib9 [189] 100.0% [196] 612(0.6%) 612(0.6%) get-cross-lib-search-dirs ...rivate/dirs.rkt:168:7 --------------------------------------------------------------------------- ??? [183] 100.0% [197] 610(0.6%) 610(0.6%) ??? ...ects/racket/contract/private/prop.rkt:274:4 --------------------------------------------------------------------------- classify-ival [181] 100.0% [198] 290(0.3%) 290(0.3%) ...higher-order.rkt:357:33 (unknown source) --------------------------------------------------------------------------- dispatch-transformer41 [195] 100.0% [199] 2224(2.3%) 298(0.3%) apply-transformer52 (unknown source) apply-transformer-in-context [204] 59.8% loop [163] 13.5% apply-post-expansion [205] 13.3% --------------------------------------------------------------------------- ??? [194] 100.0% [200] 2024(2.1%) 0(0.0%) bfmul ...-lib/math/private/bigfloat/mpfr.rkt:821:4 new-mpfr [202] 66.9% ??? [203] 33.1% --------------------------------------------------------------------------- ??? [194] 100.0% [201] 1292(1.3%) 0(0.0%) bfatan ...lib/math/private/bigfloat/mpfr.rkt:618:4 ??? [203] 51.5% new-mpfr [202] 48.5% --------------------------------------------------------------------------- bfatan [201] 31.6% bfmul [200] 68.4% [202] 1980(2.0%) 1980(2.0%) new-mpfr ...b/math/private/bigfloat/mpfr.rkt:335:0 --------------------------------------------------------------------------- bf [190] 18.9% bfatan [201] 40.4% bfmul [200] 40.7% [203] 1648(1.7%) 1648(1.7%) ??? /opt/racket-7.0/collects/ffi/unsafe.rkt:898:4 --------------------------------------------------------------------------- apply-transformer52 [199] 100.0% [204] 1330(1.4%) 668(0.7%) apply-transformer-in-context (unknown source) ??? [207] 49.8% --------------------------------------------------------------------------- apply-transformer52 [199] 100.0% [205] 296(0.3%) 0(0.0%) apply-post-expansion (unknown source) gf [206] 100.0% --------------------------------------------------------------------------- apply-post-expansion [205] 2.1% add-ns-scopes [109] 11.5% loop [163] 86.4% [206] 2820(2.9%) 328(0.3%) gf (unknown source) propagation-apply [208] 54.3% loop [163] 19.9% propagation-apply-shifted [210] 12.1% syntax-e/no-taint [12] 2.1% --------------------------------------------------------------------------- apply-transformer-in-context [204]100.0% [207] 662(0.7%) 0(0.0%) ??? ...collects/racket/private/qq-and-or.rkt:155:9 ??? [209] 100.0% --------------------------------------------------------------------------- gf [206] 100.0% [208] 1530(1.6%) 1530(1.6%) propagation-apply (unknown source) --------------------------------------------------------------------------- ??? [207] 100.0% [209] 662(0.7%) 334(0.3%) ??? ...ollects/racket/private/qq-and-or.rkt:164:21 syntax->list [211] 49.5% --------------------------------------------------------------------------- gf [206] 100.0% [210] 342(0.3%) 342(0.3%) propagation-apply-shifted (unknown source) --------------------------------------------------------------------------- ??? [209] 100.0% [211] 328(0.3%) 0(0.0%) syntax->list (unknown source) loop [163] 100.0% ---------------------------------------------------------------------------