Profiling results ----------------- Total cpu time observed: 277652ms (out of 279468ms) Number of samples taken: 852 (once every 326ms) (Hiding functions with self<1.0% and local<2.0%: 7 of 303 hidden) =========================================================================== Caller Idx Total Self Name+src Local% ms(pct) ms(pct) Callee =========================================================================== ??? [123] 100.0% [1] 277652(100.0%) 0(0.0%) profile-thunk16 ...e/pkgs/profile-lib/main.rkt:9:0 run [17] 100.0% --------------------------------------------------------------------------- ??? [123] 100.0% [2] 173580(62.5%) 0(0.0%) run-improve40 .../better-rr/src/mainloop.rkt:336:0 for-loop [18] 83.0% simplify! [36] 16.1% prepare-points-intervals [19] 1.0% --------------------------------------------------------------------------- matcher [103] 100.0% [3] 18708(6.7%) 324(0.1%) ??? ...erbie/better-rr/src/core/matcher.rkt:130:11 for-loop [20] 92.5% for-loop [26] 7.1% --------------------------------------------------------------------------- ??? [232] 100.0% [4] 16164(5.8%) 0(0.0%) approximate9 ...better-rr/src/core/taylor.rkt:12:0 loop [21] 88.2% for-loop [28] 11.8% --------------------------------------------------------------------------- hash-ref! [243] 100.0% [5] 8230(3.0%) 0(0.0%) ??? .../herbie/better-rr/src/core/taylor.rkt:68:15 ??? [232] 56.5% hash-ref! [243] 43.5% --------------------------------------------------------------------------- loop [182] 9.2% for-loop [244] 90.8% [6] 6654(2.4%) 310(0.1%) syntax-e (unknown source) syntax-e/no-taint [22] 95.3% --------------------------------------------------------------------------- hash-ref! [243] 100.0% [7] 5816(2.1%) 0(0.0%) ??? ...herbie/better-rr/src/core/taylor.rkt:291:26 for-loop [23] 100.0% --------------------------------------------------------------------------- hash-ref! [243] 100.0% [8] 5596(2.0%) 0(0.0%) ??? ...herbie/better-rr/src/core/taylor.rkt:301:23 for-loop [24] 100.0% --------------------------------------------------------------------------- hash-ref! [243] 100.0% [9] 4710(1.7%) 0(0.0%) ??? ...herbie/better-rr/src/core/taylor.rkt:407:23 for-loop [25] 100.0% --------------------------------------------------------------------------- for-loop [244] 100.0% [10] 1940(0.7%) 314(0.1%) expand-implicit (unknown source) resolve+shift28 [221] 83.8% --------------------------------------------------------------------------- hash-ref! [243] 100.0% [11] 1582(0.6%) 0(0.0%) ??? ...herbie/better-rr/src/core/taylor.rkt:510:23 for-loop [29] 100.0% --------------------------------------------------------------------------- for-loop [86] 100.0% [12] 1336(0.5%) 336(0.1%) type-of ...erbie/better-rr/src/type-check.rkt:34:0 variable? [27] 47.5% ??? [47] 27.4% --------------------------------------------------------------------------- for-loop [244] 100.0% [13] 940(0.3%) 294(0.1%) expand-identifier (unknown source) resolve+shift28 [221] 68.7% --------------------------------------------------------------------------- taylor [260] 100.0% [14] 888(0.3%) 0(0.0%) taylor-log .../better-rr/src/core/taylor.rkt:503:0 simplify [42] 100.0% --------------------------------------------------------------------------- taylor [260] 100.0% [15] 332(0.1%) 0(0.0%) taylor-sqrt ...better-rr/src/core/taylor.rkt:352:0 simplify [42] 100.0% --------------------------------------------------------------------------- loop [200] 100.0% [16] 288(0.1%) 0(0.0%) ??? ...erbie/better-rr/src/core/localize.rkt:43:32 ??? [232] 100.0% --------------------------------------------------------------------------- profile-thunk16 [1] 100.0% [17] 277652(100.0%) 0(0.0%) run ...et-7.0/share/pkgs/profile-lib/main.rkt:39:2 ??? [123] 100.0% --------------------------------------------------------------------------- run-improve40 [2] 100.0% [18] 144008(51.9%) 0(0.0%) for-loop ...erbie/better-rr/src/mainloop.rkt:351:4 run-iter! [30] 100.0% --------------------------------------------------------------------------- run-improve40 [2] 2.0% ??? [123] 98.0% [19] 87302(31.4%) 0(0.0%) prepare-points-intervals ...r/src/points.rkt:133:0 loop [31] 100.0% --------------------------------------------------------------------------- ??? [3] 100.0% [20] 18048(6.5%) 0(0.0%) for-loop .../better-rr/src/core/matcher.rkt:132:15 matcher [103] 100.0% --------------------------------------------------------------------------- approximate9 [4] 100.0% [21] 14264(5.1%) 0(0.0%) loop .../herbie/better-rr/src/core/taylor.rkt:87:4 hash-ref! [243] 57.7% ??? [232] 42.3% --------------------------------------------------------------------------- gf [203] 3.8% expand-id-application-form17 [205] 15.7% syntax-e [6] 80.5% [22] 7880(2.8%) 0(0.0%) syntax-e/no-taint (unknown source) loop [182] 100.0% --------------------------------------------------------------------------- ??? [7] 100.0% [23] 5816(2.1%) 0(0.0%) for-loop ...e/better-rr/src/core/taylor.rkt:291:52 hash-ref! [243] 82.0% simplify [42] 15.4% ??? [35] 2.6% --------------------------------------------------------------------------- ??? [8] 100.0% [24] 5596(2.0%) 334(0.1%) for-loop ...e/better-rr/src/core/taylor.rkt:304:27 hash-ref! [243] 94.0% --------------------------------------------------------------------------- ??? [9] 100.0% [25] 4710(1.7%) 0(0.0%) for-loop ...e/better-rr/src/core/taylor.rkt:411:33 for-loop [32] 71.2% hash-ref! [243] 28.8% --------------------------------------------------------------------------- ??? [3] 100.0% [26] 2912(1.0%) 0(0.0%) for-loop ...e/better-rr/src/core/matcher.rkt:106:4 foldl [33] 100.0% --------------------------------------------------------------------------- for-loop [86] 13.0% type-of [12] 25.3% match-e [125] 61.7% [27] 2508(0.9%) 0(0.0%) variable? ...etter-rr/src/syntax/syntax.rkt:1159:0 ??? [47] 100.0% --------------------------------------------------------------------------- approximate9 [4] 100.0% [28] 1900(0.7%) 0(0.0%) for-loop ...ie/better-rr/src/core/taylor.rkt:30:18 taylor [260] 81.2% taylor-exp [34] 18.8% --------------------------------------------------------------------------- ??? [11] 100.0% [29] 1582(0.6%) 0(0.0%) for-loop ...e/better-rr/src/core/taylor.rkt:514:35 parse-loop15 [50] 100.0% --------------------------------------------------------------------------- for-loop [18] 100.0% [30] 144008(51.9%) 0(0.0%) run-iter! ...rbie/better-rr/src/mainloop.rkt:317:0 simplify! [36] 47.9% finalize-iter! [38] 25.7% gen-rewrites! [40] 13.2% gen-series! [41] 11.4% choose-best-alt! [44] 1.1% localize! [45] 0.6% --------------------------------------------------------------------------- prepare-points-intervals [19] 100.0% [31] 87302(31.4%) 622(0.2%) loop ...lies/herbie/better-rr/src/points.rkt:145:4 loop [37] 75.5% ??? [39] 23.8% --------------------------------------------------------------------------- for-loop [25] 100.0% [32] 3354(1.2%) 0(0.0%) for-loop ...e/better-rr/src/core/taylor.rkt:413:39 hash-ref! [243] 100.0% --------------------------------------------------------------------------- for-loop [26] 100.0% [33] 2912(1.0%) 0(0.0%) foldl ....0/collects/racket/private/list.rkt:229:4 ??? [43] 100.0% --------------------------------------------------------------------------- for-loop [28] 100.0% [34] 358(0.1%) 0(0.0%) taylor-exp .../better-rr/src/core/taylor.rkt:401:0 simplify [42] 100.0% --------------------------------------------------------------------------- for-loop [23] 100.0% [35] 302(0.1%) 0(0.0%) ??? ...herbie/better-rr/src/core/taylor.rkt:294:19 hash-ref! [243] 100.0% --------------------------------------------------------------------------- run-improve40 [2] 28.8% run-iter! [30] 71.2% [36] 96784(34.9%) 0(0.0%) simplify! ...rbie/better-rr/src/mainloop.rkt:213:0 ??? [46] 97.8% for-loop [51] 1.6% for-loop [53] 0.6% --------------------------------------------------------------------------- loop [31] 100.0% [37] 65938(23.7%) 998(0.4%) loop ...lies/herbie/better-rr/src/points.rkt:104:2 ??? [135] 95.2% ??? [232] 2.9% ??? [47] 0.5% --------------------------------------------------------------------------- run-iter! [30] 100.0% [38] 37040(13.3%) 0(0.0%) finalize-iter! ...better-rr/src/mainloop.rkt:268:0 ??? [47] 100.0% --------------------------------------------------------------------------- loop [31] 100.0% [39] 20742(7.5%) 2706(1.0%) ??? ...tlies/herbie/better-rr/src/points.rkt:129:2 ??? [232] 52.7% loop [201] 32.9% ??? [163] 1.4% --------------------------------------------------------------------------- run-iter! [30] 100.0% [40] 19032(6.9%) 0(0.0%) gen-rewrites! .../better-rr/src/mainloop.rkt:172:0 for-loop [48] 98.3% for-loop [55] 1.7% --------------------------------------------------------------------------- run-iter! [30] 100.0% [41] 16462(5.9%) 0(0.0%) gen-series! ...ie/better-rr/src/mainloop.rkt:149:0 for-loop [49] 100.0% --------------------------------------------------------------------------- ??? [232] 2.0% ??? [255] 2.0% taylor-invert [196] 2.1% taylor-sqrt [15] 2.2% taylor-exp [34] 2.4% taylor-log [14] 6.0% for-loop [23] 6.0% hash-ref! [243] 77.3% [42] 14918(5.4%) 0(0.0%) simplify ...bie/better-rr/src/core/reduce.rkt:16:0 parse-loop15 [50] 51.5% f67 [63] 40.2% debug-print [274] 6.3% simplify-node [56] 2.0% --------------------------------------------------------------------------- foldl [33] 100.0% [43] 2912(1.0%) 0(0.0%) ??? .../herbie/better-rr/src/core/matcher.rkt:26:7 core651 [155] 76.4% fallback-update [54] 12.4% return/no-unsupplied [256] 11.3% --------------------------------------------------------------------------- run-iter! [30] 100.0% [44] 1634(0.6%) 0(0.0%) choose-best-alt! ...tter-rr/src/mainloop.rkt:107:0 ??? [47] 100.0% --------------------------------------------------------------------------- run-iter! [30] 100.0% [45] 922(0.3%) 0(0.0%) localize! ...rbie/better-rr/src/mainloop.rkt:116:0 localize-error [52] 100.0% --------------------------------------------------------------------------- ??? [161] 0.3% simplify! [36] 99.7% [46] 94948(34.2%) 0(0.0%) ??? ...herbie/better-rr/src/core/simplify.rkt:26:0 for-loop [57] 49.8% one-iter [71] 31.0% loop [60] 18.9% for-loop [70] 0.3% --------------------------------------------------------------------------- debug5 [279] 0.7% loop [37] 0.7% type-of [12] 0.8% choose-best-alt! [44] 3.7% match-e [125] 4.2% variable? [27] 5.7% finalize-iter! [38] 84.2% [47] 43984(15.8%) 5012(1.8%) ??? ...contract/private/arrow-val-first.rkt:388:18 for-loop [58] 84.2% ??? [64] 3.7% ??? [292] 0.7% --------------------------------------------------------------------------- gen-rewrites! [40] 100.0% [48] 18708(6.7%) 0(0.0%) for-loop ...rbie/better-rr/src/mainloop.rkt:180:11 rewrite-expression-head20 [59] 100.0% --------------------------------------------------------------------------- gen-series! [41] 100.0% [49] 16462(5.9%) 0(0.0%) for-loop ...erbie/better-rr/src/mainloop.rkt:156:7 taylor-alt [61] 100.0% --------------------------------------------------------------------------- append-map [69] 2.8% parse-loop15 [50] 6.9% hash-ref! [243] 8.5% for-loop [29] 9.1% map [167] 13.0% simplify [42] 59.8% [50] 10906(3.9%) 972(0.4%) parse-loop15 ...s/racket/match/compiler.rkt:418:15 eval-const-expr [62] 60.5% loop [201] 7.0% parse-loop15 [50] 6.9% f67 [63] 6.2% for-loop [66] 6.2% for-loop [68] 2.8% map [167] 1.5% --------------------------------------------------------------------------- simplify! [36] 100.0% [51] 1536(0.6%) 0(0.0%) for-loop ...erbie/better-rr/src/mainloop.rkt:252:6 for-loop [65] 100.0% --------------------------------------------------------------------------- localize! [45] 100.0% [52] 922(0.3%) 0(0.0%) localize-error ...er-rr/src/core/localize.rkt:52:0 hash-ref! [243] 100.0% --------------------------------------------------------------------------- simplify! [36] 100.0% [53] 600(0.2%) 0(0.0%) for-loop ...erbie/better-rr/src/mainloop.rkt:218:6 debug-print [274] 100.0% --------------------------------------------------------------------------- ??? [43] 100.0% [54] 360(0.1%) 360(0.1%) fallback-update ...s/racket/private/dict.rkt:115:2 --------------------------------------------------------------------------- gen-rewrites! [40] 100.0% [55] 324(0.1%) 0(0.0%) for-loop ...erbie/better-rr/src/mainloop.rkt:197:4 for-loop [67] 100.0% --------------------------------------------------------------------------- simplify [42] 100.0% [56] 304(0.1%) 0(0.0%) simplify-node ...etter-rr/src/core/reduce.rkt:48:0 append-map [69] 100.0% --------------------------------------------------------------------------- ??? [46] 100.0% [57] 47298(17.0%) 0(0.0%) for-loop ...e/better-rr/src/core/simplify.rkt:33:2 one-iter [71] 100.0% --------------------------------------------------------------------------- ??? [47] 100.0% [58] 37040(13.3%) 0(0.0%) for-loop .../better-rr/src/core/alt-table.rkt:56:2 atab-add-altn [72] 90.6% loop [77] 9.4% --------------------------------------------------------------------------- for-loop [48] 100.0% [59] 18708(6.7%) 0(0.0%) rewrite-expression-head20 ...core/matcher.rkt:87:0 rewriter [74] 100.0% --------------------------------------------------------------------------- ??? [46] 100.0% [60] 17938(6.5%) 0(0.0%) loop ...rbie/better-rr/src/core/simplify.rkt:143:2 for-loop [75] 100.0% --------------------------------------------------------------------------- for-loop [49] 100.0% [61] 16462(5.9%) 0(0.0%) taylor-alt ...bie/better-rr/src/mainloop.rkt:135:0 for-loop [76] 100.0% --------------------------------------------------------------------------- ??? [123] 20.6% f67 [63] 27.2% parse-loop15 [50] 52.2% [62] 14896(5.4%) 0(0.0%) eval-const-expr ...etter-rr/src/programs.rkt:149:0 eval-prog [73] 100.0% --------------------------------------------------------------------------- hash-ref! [243] 8.8% parse-loop15 [50] 9.8% map [167] 23.4% simplify [42] 58.1% [63] 7234(2.6%) 0(0.0%) f67 ...0/collects/racket/match/compiler.rkt:507:40 map [167] 54.7% eval-const-expr [62] 41.2% compose [81] 4.1% --------------------------------------------------------------------------- ??? [47] 100.0% [64] 1634(0.6%) 0(0.0%) ??? ...erbie/better-rr/src/core/alt-table.rkt:59:0 ??? [232] 100.0% --------------------------------------------------------------------------- for-loop [51] 100.0% [65] 1536(0.6%) 0(0.0%) for-loop ...erbie/better-rr/src/mainloop.rkt:253:8 expression-cost [104] 100.0% --------------------------------------------------------------------------- parse-loop15 [50] 100.0% [66] 1270(0.5%) 0(0.0%) for-loop ...e/better-rr/src/core/taylor.rkt:517:59 hash-ref! [243] 100.0% --------------------------------------------------------------------------- for-loop [55] 100.0% [67] 324(0.1%) 0(0.0%) for-loop ...erbie/better-rr/src/mainloop.rkt:198:6 change-apply [78] 100.0% --------------------------------------------------------------------------- parse-loop15 [50] 100.0% [68] 304(0.1%) 0(0.0%) for-loop ...ie/better-rr/src/core/reduce.rkt:97:13 make-multiplication-node [79] 100.0% --------------------------------------------------------------------------- append-map [69] 33.3% gather-additive-terms6 [80] 33.3% simplify-node [56] 33.3% [69] 304(0.1%) 0(0.0%) append-map ...t-7.0/collects/racket/list.rkt:586:2 gather-additive-terms6 [80] 33.3% append-map [69] 33.3% parse-loop15 [50] 33.3% --------------------------------------------------------------------------- ??? [46] 100.0% [70] 296(0.1%) 0(0.0%) for-loop .../better-rr/src/core/simplify.rkt:31:14 mk-enode-rec! [231] 100.0% --------------------------------------------------------------------------- ??? [46] 38.3% for-loop [57] 61.7% [71] 76714(27.6%) 0(0.0%) one-iter ...e/better-rr/src/core/simplify.rkt:86:0 for-loop [82] 47.9% find-matches [84] 44.9% for-loop [90] 7.2% --------------------------------------------------------------------------- for-loop [58] 100.0% [72] 33544(12.1%) 0(0.0%) atab-add-altn ...r-rr/src/core/alt-table.rkt:202:0 errors [83] 91.8% best-and-tied-at-points [91] 4.6% override-at-pnts [94] 2.7% loop [93] 0.9% --------------------------------------------------------------------------- loop [201] 2.2% errors [83] 42.2% eval-const-expr [62] 55.5% [73] 26816(9.7%) 302(0.1%) eval-prog ...rbie/better-rr/src/programs.rkt:130:0 temp68_2 [85] 91.8% loop [182] 4.5% hash-ref! [243] 1.3% inductor [97] 1.3% --------------------------------------------------------------------------- rewrite-expression-head20 [59] 26.4% matcher [103] 73.6% [74] 18708(6.7%) 982(0.4%) rewriter ...ie/better-rr/src/core/matcher.rkt:89:2 for-loop [86] 89.7% *rules* [87] 8.6% --------------------------------------------------------------------------- loop [60] 100.0% [75] 17938(6.5%) 0(0.0%) for-loop .../better-rr/src/core/simplify.rkt:149:4 argmin [88] 37.9% loop [89] 31.0% expression-cost [104] 15.5% for-loop [105] 6.9% for-loop [92] 5.4% make-sequence [143] 3.3% --------------------------------------------------------------------------- taylor-alt [61] 100.0% [76] 16462(5.9%) 0(0.0%) for-loop ...erbie/better-rr/src/mainloop.rkt:141:6 ??? [232] 100.0% --------------------------------------------------------------------------- for-loop [58] 100.0% [77] 3496(1.3%) 334(0.1%) loop ...bie/better-rr/src/core/alt-table.rkt:176:2 map [167] 27.6% loop [95] 18.9% loop [93] 18.2% argmax [96] 17.2% loop [187] 8.6% --------------------------------------------------------------------------- for-loop [67] 100.0% [78] 324(0.1%) 0(0.0%) change-apply ...etter-rr/src/core/matcher.rkt:70:0 pattern-substitute [131] 100.0% --------------------------------------------------------------------------- for-loop [68] 100.0% [79] 304(0.1%) 0(0.0%) make-multiplication-node .../core/reduce.rkt:234:0 make-multiplication-subnode [98] 100.0% --------------------------------------------------------------------------- append-map [69] 100.0% [80] 304(0.1%) 0(0.0%) gather-additive-terms6 ...src/core/reduce.rkt:70:0 append-map [69] 100.0% --------------------------------------------------------------------------- f67 [63] 100.0% [81] 298(0.1%) 298(0.1%) compose ...collects/racket/private/list.rkt:385:12 --------------------------------------------------------------------------- one-iter [71] 100.0% [82] 36750(13.2%) 0(0.0%) for-loop ...e/better-rr/src/core/simplify.rkt:95:2 loop [99] 94.8% update-leader! [150] 3.5% reduce-to-single! [112] 1.7% --------------------------------------------------------------------------- ??? [123] 2.5% ??? [275] 4.5% for-loop [204] 8.4% atab-add-altn [72] 84.7% [83] 36386(13.1%) 0(0.0%) errors ...es/herbie/better-rr/src/points.rkt:228:0 for-loop [101] 68.9% eval-prog [73] 31.1% --------------------------------------------------------------------------- one-iter [71] 100.0% [84] 34448(12.4%) 0(0.0%) find-matches ...tter-rr/src/core/simplify.rkt:56:0 for-loop [100] 100.0% --------------------------------------------------------------------------- eval-prog [73] 100.0% [85] 24612(8.9%) 0(0.0%) temp68_2 (unknown source) compile16 [102] 100.0% --------------------------------------------------------------------------- rewriter [74] 100.0% [86] 18708(6.7%) 2044(0.7%) for-loop ...ie/better-rr/src/core/matcher.rkt:91:4 matcher [103] 91.4% for-loop [108] 3.5% type-of [12] 1.4% ??? [282] 1.0% variable? [27] 0.3% --------------------------------------------------------------------------- rewriter [74] 100.0% [87] 7224(2.6%) 622(0.2%) *rules* ...ie/better-rr/src/syntax/rules.rkt:783:0 for-loop [106] 91.4% --------------------------------------------------------------------------- for-loop [75] 100.0% [88] 6794(2.4%) 0(0.0%) argmin ...acket-7.0/collects/racket/list.rkt:765:0 for-loop [105] 63.1% expression-cost [104] 36.9% --------------------------------------------------------------------------- baseline-error [147] 5.1% for-loop [75] 94.9% [89] 5860(2.1%) 0(0.0%) loop .../racket-7.0/collects/racket/list.rkt:751:4 expression-cost [104] 68.6% for-loop [105] 26.2% ??? [113] 5.1% --------------------------------------------------------------------------- one-iter [71] 100.0% [90] 5516(2.0%) 0(0.0%) for-loop .../better-rr/src/core/simplify.rkt:111:2 set-precompute! [107] 100.0% --------------------------------------------------------------------------- atab-add-altn [72] 100.0% [91] 1538(0.6%) 0(0.0%) best-and-tied-at-points ...ore/alt-table.rkt:117:0 for-loop [109] 100.0% --------------------------------------------------------------------------- for-loop [75] 100.0% [92] 960(0.3%) 332(0.1%) for-loop ...better-rr/src/core/simplify.rkt:153:16 for-loop [111] 65.4% --------------------------------------------------------------------------- atab-add-altn [72] 32.1% loop [77] 67.9% [93] 936(0.3%) 936(0.3%) loop ...-7.0/collects/racket/private/hash.rkt:20:4 --------------------------------------------------------------------------- atab-add-altn [72] 100.0% [94] 900(0.3%) 0(0.0%) override-at-pnts ...r/src/core/alt-table.rkt:138:0 for-loop [110] 100.0% --------------------------------------------------------------------------- loop [77] 2.1% loop [95] 97.9% [95] 660(0.2%) 660(0.2%) loop ...racket-7.0/collects/racket/list.rkt:434:28 loop [95] 97.9% --------------------------------------------------------------------------- loop [77] 100.0% [96] 600(0.2%) 0(0.0%) argmax ...acket-7.0/collects/racket/list.rkt:766:0 for-loop [105] 50.3% expression-cost [104] 49.7% --------------------------------------------------------------------------- eval-prog [73] 20.0% inductor [97] 80.0% [97] 336(0.1%) 0(0.0%) inductor ...erbie/better-rr/src/programs.rkt:135:4 inductor [97] 80.0% ??? [293] 20.0% --------------------------------------------------------------------------- make-multiplication-node [79] 100.0% [98] 304(0.1%) 304(0.1%) make-multiplication-subnode ...re/reduce.rkt:244:0 --------------------------------------------------------------------------- loop [99] 0.9% for-loop [82] 99.1% [99] 34850(12.6%) 0(0.0%) loop ...rbie/better-rr/src/core/simplify.rkt:100:4 apply-match [114] 99.1% loop [99] 0.9% --------------------------------------------------------------------------- for-loop [100] 48.7% find-matches [84] 51.3% [100] 34448(12.4%) 7872(2.8%) for-loop ...e/better-rr/src/core/simplify.rkt:58:8 for-loop [100] 48.7% match-e [125] 38.1% ??? [173] 0.5% --------------------------------------------------------------------------- errors [83] 100.0% [101] 25062(9.0%) 628(0.2%) for-loop .../herbie/better-rr/src/points.rkt:230:2 ??? [135] 81.3% ??? [232] 7.8% ulp-difference [236] 6.1% point-error [225] 2.4% --------------------------------------------------------------------------- temp68_2 [85] 100.0% [102] 24612(8.9%) 0(0.0%) compile16 (unknown source) temp74_0 [115] 90.7% loop [182] 9.3% --------------------------------------------------------------------------- for-loop [20] 47.1% for-loop [86] 52.9% [103] 18708(6.7%) 0(0.0%) matcher ...ie/better-rr/src/core/matcher.rkt:118:2 ??? [3] 52.9% rewriter [74] 47.1% --------------------------------------------------------------------------- argmax [96] 2.7% for-loop [65] 13.8% argmin [88] 22.5% for-loop [75] 25.0% loop [89] 36.1% [104] 11144(4.0%) 298(0.1%) expression-cost ...etter-rr/src/programs.rkt:204:0 compile [116] 97.3% --------------------------------------------------------------------------- argmax [96] 4.1% for-loop [75] 16.8% loop [89] 20.9% argmin [88] 58.2% [105] 7370(2.7%) 1224(0.4%) for-loop ...erbie/better-rr/src/programs.rkt:205:2 table-ref [219] 83.4% --------------------------------------------------------------------------- *rules* [87] 100.0% [106] 6602(2.4%) 1990(0.7%) for-loop ...s/herbie/better-rr/src/common.rkt:71:9 ormap [118] 43.8% flag-set? [127] 26.1% --------------------------------------------------------------------------- for-loop [90] 100.0% [107] 5516(2.0%) 0(0.0%) set-precompute! ...-rr/src/core/simplify.rkt:117:0 for-loop [117] 100.0% --------------------------------------------------------------------------- for-loop [86] 100.0% [108] 2606(0.9%) 0(0.0%) for-loop ...ie/better-rr/src/core/matcher.rkt:99:8 fix-up-variables [119] 100.0% --------------------------------------------------------------------------- best-and-tied-at-points [91] 100.0% [109] 1538(0.6%) 936(0.3%) for-loop ...etter-rr/src/core/alt-table.rkt:119:16 ??? [121] 39.1% --------------------------------------------------------------------------- override-at-pnts [94] 100.0% [110] 900(0.3%) 900(0.3%) for-loop ...etter-rr/src/core/alt-table.rkt:139:22 --------------------------------------------------------------------------- for-loop [92] 100.0% [111] 628(0.2%) 628(0.2%) for-loop ...better-rr/src/core/simplify.rkt:157:23 --------------------------------------------------------------------------- for-loop [82] 100.0% [112] 626(0.2%) 302(0.1%) reduce-to-single! ...-rr/src/core/egraph.rkt:320:0 for-loop [122] 51.8% --------------------------------------------------------------------------- loop [89] 100.0% [113] 300(0.1%) 0(0.0%) ??? ...lies/herbie/better-rr/src/points.rkt:217:27 eval-errors [120] 100.0% --------------------------------------------------------------------------- loop [99] 100.0% [114] 34850(12.6%) 308(0.1%) apply-match ...etter-rr/src/core/simplify.rkt:65:0 for-loop [124] 87.9% match-e [125] 7.6% set [237] 1.8% custom-set-intersect [132] 1.8% --------------------------------------------------------------------------- compile16 [102] 100.0% [115] 22334(8.0%) 0(0.0%) temp74_0 (unknown source) expand-single [126] 87.5% compile-top9 [128] 11.2% loop [182] 1.3% --------------------------------------------------------------------------- expression-cost [104] 100.0% [116] 10846(3.9%) 0(0.0%) compile ...herbie/better-rr/src/programs.rkt:181:0 hash-ref! [243] 100.0% --------------------------------------------------------------------------- set-precompute! [107] 100.0% [117] 5516(2.0%) 608(0.2%) for-loop .../better-rr/src/core/simplify.rkt:119:2 ??? [123] 62.0% merge-egraph-nodes! [136] 16.5% setfindf [133] 10.4% --------------------------------------------------------------------------- for-loop [106] 100.0% [118] 2890(1.0%) 684(0.2%) ormap ....0/collects/racket/private/map.rkt:141:13 flag-set? [127] 66.0% curried [265] 10.4% --------------------------------------------------------------------------- for-loop [108] 100.0% [119] 2606(0.9%) 0(0.0%) fix-up-variables ...-rr/src/core/matcher.rkt:111:2 pattern-match [129] 63.6% pattern-substitute [131] 25.2% for-loop [134] 11.2% --------------------------------------------------------------------------- ??? [113] 25.0% ??? [123] 75.0% [120] 1200(0.4%) 0(0.0%) eval-errors ...rbie/better-rr/src/points.rkt:203:0 for-loop [130] 100.0% --------------------------------------------------------------------------- for-loop [109] 100.0% [121] 602(0.2%) 602(0.2%) ??? ...7.0/collects/racket/private/for.rkt:1208:14 --------------------------------------------------------------------------- reduce-to-single! [112] 100.0% [122] 324(0.1%) 324(0.1%) for-loop ...ie/better-rr/src/core/egraph.rkt:321:8 --------------------------------------------------------------------------- for-loop [117] 0.4% run [17] 49.8% [123] 277652(100.0%) 350(0.1%) ??? ...lects/racket/private/more-scheme.rkt:261:28 profile-thunk16 [1] 49.8% run-improve40 [2] 31.1% prepare-points-intervals [19] 15.4% oracle-error [139] 1.9% get-final-combination [140] 0.9% eval-const-expr [62] 0.4% errors [83] 0.2% eval-errors [120] 0.2% loop [201] 0.1% baseline-error [147] 0.1% --------------------------------------------------------------------------- apply-match [114] 100.0% [124] 30630(11.0%) 0(0.0%) for-loop ...e/better-rr/src/core/simplify.rkt:78:2 merge-egraph-nodes! [136] 75.1% dedup-children! [168] 14.8% mk-enode! [171] 8.0% substitute-e [144] 2.2% --------------------------------------------------------------------------- apply-match [114] 7.0% for-loop [151] 22.1% for-loop [100] 71.0% [125] 28902(10.4%) 7374(2.7%) match-e ...rbie/better-rr/src/core/ematch.rkt:39:0 for-loop [137] 70.1% ??? [47] 3.0% custom-in-set [174] 2.5% variable? [27] 2.3% make-sequence [143] 1.0% --------------------------------------------------------------------------- temp74_0 [115] 100.0% [126] 19534(7.0%) 300(0.1%) expand-single (unknown source) expand-capturing-lifts [138] 98.5% --------------------------------------------------------------------------- for-loop [106] 47.5% ormap [118] 52.5% [127] 3628(1.3%) 1968(0.7%) flag-set? .../herbie/better-rr/src/config.rkt:28:0 return/no-unsupplied [256] 35.6% ??? [282] 10.2% --------------------------------------------------------------------------- temp74_0 [115] 100.0% [128] 2502(0.9%) 296(0.1%) compile-top9 (unknown source) compile-forms31 [141] 88.2% --------------------------------------------------------------------------- fix-up-variables [119] 100.0% [129] 1658(0.6%) 0(0.0%) pattern-match ...tter-rr/src/core/matcher.rkt:30:0 for-loop [142] 100.0% --------------------------------------------------------------------------- eval-errors [120] 100.0% [130] 1200(0.4%) 900(0.3%) for-loop .../herbie/better-rr/src/points.rkt:205:2 ??? [135] 25.0% --------------------------------------------------------------------------- fix-up-variables [119] 27.4% change-apply [78] 33.1% pattern-substitute [131] 39.6% [131] 980(0.4%) 682(0.2%) pattern-substitute ...rr/src/core/matcher.rkt:46:0 pattern-substitute [131] 39.6% return/no-unsupplied [256] 15.2% --------------------------------------------------------------------------- apply-match [114] 100.0% [132] 624(0.2%) 0(0.0%) custom-set-intersect ...rivate/set-types.rkt:195:0 for-loop [145] 100.0% --------------------------------------------------------------------------- for-loop [117] 100.0% [133] 576(0.2%) 0(0.0%) setfindf .../herbie/better-rr/src/common.rkt:139:0 for-loop [146] 100.0% --------------------------------------------------------------------------- fix-up-variables [119] 100.0% [134] 292(0.1%) 0(0.0%) for-loop ...ie/better-rr/src/core/matcher.rkt:42:9 for-loop [142] 100.0% --------------------------------------------------------------------------- for-loop [130] 0.3% loop [269] 0.7% loop [201] 3.0% ??? [220] 6.4% for-loop [101] 21.9% loop [37] 67.6% [135] 92812(33.4%) 598(0.2%) ??? ...ies/herbie/better-rr/src/programs.rkt:146:2 ??? [148] 74.9% ??? [232] 12.2% loop [201] 11.9% ??? [292] 0.3% --------------------------------------------------------------------------- for-loop [117] 2.9% merge-egraph-nodes! [136] 7.7% for-loop [153] 8.0% for-loop [124] 81.3% [136] 23906(8.6%) 620(0.2%) merge-egraph-nodes! ...r/src/core/egraph.rkt:145:0 update-leader! [150] 46.9% loop! [218] 29.9% for-loop [153] 9.8% merge-egraph-nodes! [136] 7.7% dedup-children! [168] 1.9% enode-merge! [162] 1.1% --------------------------------------------------------------------------- match-e [125] 100.0% [137] 22470(8.1%) 11974(4.3%) for-loop ...ie/better-rr/src/core/ematch.rkt:52:11 for-loop [151] 46.4% loop [201] 2.7% foldr [159] 2.0% curried [265] 1.3% cp-2 [177] 0.7% --------------------------------------------------------------------------- loop [182] 14.2% expand-single [126] 85.8% [138] 22424(8.1%) 322(0.1%) expand-capturing-lifts (unknown source) lambda-clause-expander [149] 81.6% loop [182] 7.4% dispatch-transformer41 [156] 5.4% expand-id-application-form17 [205] 4.2% --------------------------------------------------------------------------- ??? [123] 100.0% [139] 10558(3.8%) 0(0.0%) oracle-error ...bie/better-rr/src/points.rkt:212:0 for-loop [152] 100.0% --------------------------------------------------------------------------- ??? [123] 100.0% [140] 5218(1.9%) 0(0.0%) get-final-combination ...rr/src/mainloop.rkt:357:0 infer-splitpoints [154] 94.3% ??? [161] 5.7% --------------------------------------------------------------------------- compile-top9 [128] 100.0% [141] 2206(0.8%) 298(0.1%) compile-forms31 (unknown source) for-loop [244] 86.5% --------------------------------------------------------------------------- for-loop [134] 15.0% pattern-match [129] 85.0% [142] 1950(0.7%) 0(0.0%) for-loop ...ie/better-rr/src/core/matcher.rkt:27:9 core651 [155] 81.5% return/no-unsupplied [256] 18.5% --------------------------------------------------------------------------- match-e [125] 33.0% for-loop [75] 67.0% [143] 896(0.3%) 596(0.2%) make-sequence ...ects/racket/private/for.rkt:528:2 ??? [160] 33.5% --------------------------------------------------------------------------- for-loop [157] 25.0% for-loop [124] 75.0% [144] 664(0.2%) 332(0.1%) substitute-e ...better-rr/src/core/ematch.rkt:64:0 for-loop [157] 75.0% --------------------------------------------------------------------------- custom-set-intersect [132] 100.0% [145] 624(0.2%) 0(0.0%) for-loop ...cts/racket/private/set-types.rkt:207:3 for-loop [158] 100.0% --------------------------------------------------------------------------- setfindf [133] 100.0% [146] 576(0.2%) 576(0.2%) for-loop .../herbie/better-rr/src/common.rkt:140:2 --------------------------------------------------------------------------- ??? [123] 100.0% [147] 300(0.1%) 0(0.0%) baseline-error ...e/better-rr/src/points.rkt:216:0 loop [89] 100.0% --------------------------------------------------------------------------- ??? [135] 100.0% [148] 69554(25.1%) 4962(1.8%) ??? ...t-7.0/collects/racket/private/kw.rkt:592:14 ??? [163] 65.2% ??? [166] 19.2% ??? [232] 7.5% double->posit16 [176] 0.9% --------------------------------------------------------------------------- expand-capturing-lifts [138] 100.0% [149] 18298(6.6%) 0(0.0%) lambda-clause-expander (unknown source) finish-bodys [164] 94.7% loop [182] 3.5% --------------------------------------------------------------------------- for-loop [82] 8.9% merge-egraph-nodes! [136] 91.1% [150] 14324(5.2%) 308(0.1%) update-leader! ...ter-rr/src/core/egraph.rkt:213:0 for-loop [165] 95.5% hash-ref! [243] 2.3% --------------------------------------------------------------------------- for-loop [137] 100.0% [151] 12924(4.7%) 1242(0.4%) for-loop ...ie/better-rr/src/core/ematch.rkt:58:37 match-e [125] 85.8% ??? [173] 7.1% --------------------------------------------------------------------------- oracle-error [139] 100.0% [152] 10558(3.8%) 0(0.0%) for-loop .../herbie/better-rr/src/points.rkt:213:2 map [167] 50.1% loop [201] 49.9% --------------------------------------------------------------------------- merge-egraph-nodes! [136] 100.0% [153] 5022(1.8%) 0(0.0%) for-loop ...ie/better-rr/src/core/egraph.rkt:199:4 merge-egraph-nodes! [136] 87.1% dedup-children! [168] 12.9% --------------------------------------------------------------------------- get-final-combination [140] 100.0% [154] 4918(1.8%) 0(0.0%) infer-splitpoints ...-rr/src/core/regimes.rkt:34:0 for-loop [169] 100.0% --------------------------------------------------------------------------- for-loop [142] 41.7% ??? [43] 58.3% [155] 3814(1.4%) 360(0.1%) core651 ...acket/contract/private/arr-i.rkt:918:19 ??? [172] 41.1% un-dep/maybe-chaperone [175] 23.9% ??? [284] 17.8% arrow-higher-order:lnp [178] 7.8% --------------------------------------------------------------------------- loop [182] 22.6% for-loop [244] 34.7% expand-capturing-lifts [138] 42.7% [156] 2838(1.0%) 0(0.0%) dispatch-transformer41 (unknown source) apply-transformer52 [170] 100.0% --------------------------------------------------------------------------- substitute-e [144] 100.0% [157] 664(0.2%) 0(0.0%) for-loop ...ie/better-rr/src/core/ematch.rkt:73:24 mk-enode! [171] 50.0% substitute-e [144] 50.0% --------------------------------------------------------------------------- for-loop [145] 100.0% [158] 624(0.2%) 624(0.2%) for-loop ...cts/racket/private/set-types.rkt:201:4 --------------------------------------------------------------------------- for-loop [137] 100.0% [159] 604(0.2%) 304(0.1%) foldr ....0/collects/racket/private/list.rkt:242:4 cp-2 [177] 49.7% --------------------------------------------------------------------------- make-sequence [143] 100.0% [160] 300(0.1%) 0(0.0%) ??? ...t-7.0/collects/racket/private/for.rkt:448:7 custom-in-set [174] 100.0% --------------------------------------------------------------------------- get-final-combination [140] 100.0% [161] 300(0.1%) 0(0.0%) ??? ...herbie/better-rr/src/core/simplify.rkt:22:0 ??? [46] 100.0% --------------------------------------------------------------------------- merge-egraph-nodes! [136] 100.0% [162] 274(0.1%) 0(0.0%) enode-merge! ...better-rr/src/core/enode.rkt:128:0 adopt-enode! [179] 100.0% --------------------------------------------------------------------------- ??? [39] 0.6% fold-binary-pred [273] 2.7% ??? [148] 96.7% [163] 46260(16.7%) 4324(1.6%) ??? ...tract/private/arrow-higher-order.rkt:361:33 ival-log [180] 42.9% ival-add [181] 31.9% ival-sub [183] 17.2% --------------------------------------------------------------------------- lambda-clause-expander [149] 26.6% for-loop [244] 73.4% [164] 17330(6.2%) 0(0.0%) finish-bodys (unknown source) for-loop [244] 100.0% --------------------------------------------------------------------------- update-leader! [150] 100.0% [165] 13680(4.9%) 574(0.2%) for-loop ...ie/better-rr/src/core/egraph.rkt:218:6 hash-update! [202] 60.1% for-loop [185] 35.7% --------------------------------------------------------------------------- ??? [148] 100.0% [166] 13362(4.8%) 9044(3.3%) ??? ...rbie/better-rr/src/syntax/syntax.rkt:317:17 return/no-unsupplied [256] 18.7% ??? [282] 13.6% --------------------------------------------------------------------------- map [167] 1.1% parse-loop15 [50] 3.5% loop [77] 7.4% taylor [260] 16.2% f67 [63] 31.5% for-loop [152] 40.3% [167] 13130(4.7%) 634(0.2%) map ...t-7.0/collects/racket/private/map.rkt:35:13 loop [201] 27.5% ??? [220] 16.7% f67 [63] 16.3% taylor [260] 15.1% parse-loop15 [50] 9.4% ??? [192] 2.3% loop [200] 2.2% point-error [225] 2.2% hash-ref! [243] 1.3% taylor-invert [196] 1.2% map [167] 1.1% --------------------------------------------------------------------------- merge-egraph-nodes! [136] 10.0% for-loop [153] 14.0% for-loop [124] 75.9% [168] 5954(2.1%) 0(0.0%) dedup-children! ...ter-rr/src/core/enode.rkt:199:0 loop [186] 64.6% loop [187] 35.4% --------------------------------------------------------------------------- infer-splitpoints [154] 100.0% [169] 4918(1.8%) 0(0.0%) for-loop ...ie/better-rr/src/core/regimes.rkt:46:6 option-on-expr [184] 100.0% --------------------------------------------------------------------------- dispatch-transformer41 [156] 100.0% [170] 2838(1.0%) 300(0.1%) apply-transformer52 (unknown source) loop [182] 56.0% apply-transformer-in-context [193] 11.8% for-loop [244] 10.9% apply-post-expansion [197] 10.6% --------------------------------------------------------------------------- for-loop [157] 11.9% for-loop [124] 88.1% [171] 2780(1.0%) 1580(0.6%) mk-enode! ...ie/better-rr/src/core/egraph.rkt:99:0 new-enode [188] 43.2% --------------------------------------------------------------------------- core651 [155] 100.0% [172] 1566(0.6%) 324(0.1%) ??? ...s/racket/contract/private/arr-i.rkt:1249:27 build-unary-very-simple--> [189] 40.1% or/c [190] 39.2% --------------------------------------------------------------------------- for-loop [100] 26.3% for-loop [151] 73.7% [173] 1238(0.4%) 912(0.3%) ??? ...s/herbie/better-rr/src/core/ematch.rkt:43:5 for-loop [194] 26.3% --------------------------------------------------------------------------- ??? [160] 24.7% match-e [125] 75.3% [174] 1216(0.4%) 1216(0.4%) custom-in-set ...acket/private/set-types.rkt:577:0 --------------------------------------------------------------------------- core651 [155] 100.0% [175] 912(0.3%) 298(0.1%) un-dep/maybe-chaperone ...private/arr-i.rkt:1097:2 ??? [191] 67.3% --------------------------------------------------------------------------- ??? [148] 100.0% [176] 628(0.2%) 302(0.1%) double->posit16 ...ftposit-rkt/softposit.rkt:248:0 get-ffi-obj* [195] 51.9% --------------------------------------------------------------------------- for-loop [137] 49.8% foldr [159] 50.2% [177] 598(0.2%) 300(0.1%) cp-2 .../racket-7.0/collects/racket/list.rkt:826:2 for-loop [198] 49.8% --------------------------------------------------------------------------- core651 [155] 100.0% [178] 298(0.1%) 0(0.0%) arrow-higher-order:lnp ...w-higher-order.rkt:633:7 ??? [199] 100.0% --------------------------------------------------------------------------- enode-merge! [162] 100.0% [179] 274(0.1%) 0(0.0%) adopt-enode! ...better-rr/src/core/enode.rkt:104:0 custom-set-union [234] 100.0% --------------------------------------------------------------------------- ??? [163] 100.0% [180] 20500(7.4%) 5124(1.8%) ival-log ...ie/better-rr/src/biginterval.rkt:179:0 ??? [271] 59.1% fold-binary-pred [273] 6.3% ...higher-order.rkt:357:33 [208] 5.2% force [276] 4.4% --------------------------------------------------------------------------- ??? [163] 100.0% [181] 14748(5.3%) 3172(1.1%) ival-add ...bie/better-rr/src/biginterval.rkt:87:0 ??? [271] 74.4% ...higher-order.rkt:361:33 [267] 4.1% --------------------------------------------------------------------------- loop [182] 1.1% lambda-clause-expander [149] 1.9% temp74_0 [115] 2.1% expand-capturing-lifts [138] 5.8% eval-prog [73] 6.0% loop [187] 6.3% apply-transformer52 [170] 7.2% compile16 [102] 10.2% for-loop [244] 12.1% syntax-e/no-taint [22] 47.3% [182] 14178(5.1%) 3748(1.3%) loop (unknown source) gf [203] 46.2% expand-capturing-lifts [138] 14.2% core-form-sym [206] 10.2% expand-id-application-form17 [205] 5.5% dispatch-transformer41 [156] 1.9% syntax-e [6] 1.4% loop [182] 1.1% --------------------------------------------------------------------------- ??? [163] 100.0% [183] 7974(2.9%) 1612(0.6%) ival-sub ...bie/better-rr/src/biginterval.rkt:93:0 ??? [271] 79.8% --------------------------------------------------------------------------- for-loop [169] 100.0% [184] 4918(1.8%) 0(0.0%) option-on-expr ...er-rr/src/core/regimes.rkt:150:0 for-loop [204] 61.9% sort-context-on-expr [210] 13.0% loop [201] 12.9% err-lsts->split-indices [211] 12.3% --------------------------------------------------------------------------- for-loop [165] 100.0% [185] 4880(1.8%) 0(0.0%) for-loop ...ie/better-rr/src/core/egraph.rkt:219:8 hash-update! [202] 100.0% --------------------------------------------------------------------------- dedup-children! [168] 15.1% loop [186] 84.9% [186] 3844(1.4%) 3844(1.4%) loop ...racket-7.0/collects/racket/list.rkt:434:17 loop [186] 84.9% --------------------------------------------------------------------------- loop [77] 3.1% dedup-children! [168] 17.7% loop [187] 79.2% [187] 2410(0.9%) 580(0.2%) loop ...racket-7.0/collects/racket/list.rkt:417:34 loop [187] 79.2% member [209] 6.5% loop [182] 5.4% --------------------------------------------------------------------------- mk-enode! [171] 100.0% [188] 1200(0.4%) 0(0.0%) new-enode ...bie/better-rr/src/core/enode.rkt:96:0 type-of-enode-expr [207] 100.0% --------------------------------------------------------------------------- ??? [172] 100.0% [189] 628(0.2%) 326(0.1%) build-unary-very-simple--> ...val-first.rkt:1014:0 coerce-contract [215] 48.1% --------------------------------------------------------------------------- ??? [172] 100.0% [190] 614(0.2%) 314(0.1%) or/c ...lects/racket/contract/private/orc.rkt:16:2 build-compound-type-name [216] 48.9% --------------------------------------------------------------------------- un-dep/maybe-chaperone [175] 100.0% [191] 614(0.2%) 292(0.1%) ??? ...ntract/private/arrow-higher-order.rkt:554:2 get-blame-party-info [214] 52.4% --------------------------------------------------------------------------- map [167] 100.0% [192] 600(0.2%) 0(0.0%) ??? ...s/herbie/better-rr/src/core/reduce.rkt:59:5 for-loop [212] 100.0% --------------------------------------------------------------------------- apply-transformer52 [170] 100.0% [193] 336(0.1%) 336(0.1%) apply-transformer-in-context (unknown source) --------------------------------------------------------------------------- ??? [173] 100.0% [194] 326(0.1%) 326(0.1%) for-loop ...bie/better-rr/src/core/ematch.rkt:44:7 --------------------------------------------------------------------------- double->posit16 [176] 100.0% [195] 326(0.1%) 0(0.0%) get-ffi-obj* ...-7.0/collects/ffi/unsafe.rkt:209:2 get-ffi-lib9 [213] 100.0% --------------------------------------------------------------------------- map [167] 100.0% [196] 310(0.1%) 0(0.0%) taylor-invert ...tter-rr/src/core/taylor.rkt:318:0 simplify [42] 100.0% --------------------------------------------------------------------------- apply-transformer52 [170] 100.0% [197] 302(0.1%) 0(0.0%) apply-post-expansion (unknown source) gf [203] 100.0% --------------------------------------------------------------------------- cp-2 [177] 100.0% [198] 298(0.1%) 298(0.1%) for-loop ...ket-7.0/collects/racket/list.rkt:827:4 --------------------------------------------------------------------------- arrow-higher-order:lnp [178] 100.0% [199] 298(0.1%) 298(0.1%) ??? ...et/contract/private/arity-checking.rkt:19:2 --------------------------------------------------------------------------- map [167] 5.9% loop [200] 94.1% [200] 288(0.1%) 0(0.0%) loop ...-7.0/collects/racket/private/map.rkt:54:19 loop [200] 94.1% ??? [16] 5.9% --------------------------------------------------------------------------- option-on-expr [184] 0.0% ??? [123] 0.8% mk-enode-rec! [231] 0.9% for-loop [137] 1.1% parse-loop15 [50] 1.9% loop! [218] 3.0% map [167] 7.0% for-loop [152] 8.7% ??? [39] 20.6% loop [201] 25.0% ??? [135] 31.1% [201] 33094(11.9%) 2584(0.9%) loop ...-7.0/collects/racket/private/map.rkt:40:19 ??? [232] 45.7% loop [201] 25.0% ??? [220] 9.6% ??? [135] 3.0% loop! [218] 3.0% hash-ref! [243] 1.9% ulp-difference [236] 1.0% mk-enode-rec! [231] 0.9% eval-prog [73] 0.8% point-error [225] 0.4% ??? [292] 0.4% ??? [228] 0.3% curried [265] 0.2% ??? [271] 0.0% --------------------------------------------------------------------------- for-loop [185] 37.2% for-loop [165] 62.8% [202] 13106(4.7%) 0(0.0%) hash-update! ...cket/private/more-scheme.rkt:365:4 ??? [217] 100.0% --------------------------------------------------------------------------- apply-post-expansion [197] 3.8% loop [182] 96.2% [203] 7880(2.8%) 1212(0.4%) gf (unknown source) propagation-apply-shifted [222] 28.3% propagation-apply [223] 23.9% propagation-merge [224] 20.2% cache-or-reuse-set [226] 8.4% syntax-e/no-taint [22] 3.8% --------------------------------------------------------------------------- option-on-expr [184] 100.0% [204] 3042(1.1%) 0(0.0%) for-loop ...e/better-rr/src/core/regimes.rkt:158:4 errors [83] 100.0% --------------------------------------------------------------------------- expand-capturing-lifts [138] 42.9% loop [182] 57.1% [205] 2178(0.8%) 0(0.0%) expand-id-application-form17 (unknown source) syntax-e/no-taint [22] 56.7% resolve+shift28 [221] 43.3% --------------------------------------------------------------------------- loop [182] 100.0% [206] 1612(0.6%) 0(0.0%) core-form-sym (unknown source) resolve+shift28 [221] 100.0% --------------------------------------------------------------------------- new-enode [188] 100.0% [207] 1200(0.4%) 0(0.0%) type-of-enode-expr ...r-rr/src/core/enode.rkt:69:0 table-ref [219] 100.0% --------------------------------------------------------------------------- ival-log [180] 100.0% [208] 1066(0.4%) 346(0.1%) ...higher-order.rkt:357:33 (unknown source) ??? [277] 36.0% ??? [284] 31.5% --------------------------------------------------------------------------- loop [187] 100.0% [209] 934(0.3%) 934(0.3%) member (unknown source) --------------------------------------------------------------------------- option-on-expr [184] 100.0% [210] 638(0.2%) 0(0.0%) sort-context-on-expr ...src/core/regimes.rkt:145:0 ??? [227] 100.0% --------------------------------------------------------------------------- option-on-expr [184] 100.0% [211] 604(0.2%) 0(0.0%) err-lsts->split-indices .../core/regimes.rkt:281:0 loop [229] 100.0% --------------------------------------------------------------------------- ??? [192] 100.0% [212] 600(0.2%) 600(0.2%) for-loop ...bie/better-rr/src/core/reduce.rkt:60:7 --------------------------------------------------------------------------- get-ffi-obj* [195] 100.0% [213] 326(0.1%) 0(0.0%) get-ffi-lib9 ...-7.0/collects/ffi/unsafe.rkt:121:0 get-cross-lib-search-dirs [230] 100.0% --------------------------------------------------------------------------- ??? [191] 100.0% [214] 322(0.1%) 322(0.1%) get-blame-party-info ...ate/arrow-common.rkt:136:0 --------------------------------------------------------------------------- build-unary-very-simple--> [189] 100.0% [215] 302(0.1%) 302(0.1%) coerce-contract ...contract/private/guts.rkt:285:0 --------------------------------------------------------------------------- or/c [190] 100.0% [216] 300(0.1%) 300(0.1%) build-compound-type-name ...private/guts.rkt:515:0 --------------------------------------------------------------------------- hash-update! [202] 100.0% [217] 13106(4.7%) 0(0.0%) ??? ...herbie/better-rr/src/core/egraph.rkt:221:24 for-loop [233] 100.0% --------------------------------------------------------------------------- loop [201] 27.1% merge-egraph-nodes! [136] 72.9% [218] 8530(3.1%) 1510(0.5%) loop! ...herbie/better-rr/src/core/enode.rkt:191:2 custom-set-union [234] 49.0% loop [201] 27.1% set [237] 13.4% --------------------------------------------------------------------------- type-of-enode-expr [207] 16.3% for-loop [105] 83.7% [219] 7346(2.6%) 4604(1.7%) table-ref .../herbie/better-rr/src/common.rkt:42:0 for-loop [238] 28.5% dict? [239] 8.8% --------------------------------------------------------------------------- map [167] 31.6% loop [201] 68.4% [220] 6920(2.5%) 0(0.0%) ??? ...lies/herbie/better-rr/src/points.rkt:214:26 ??? [135] 86.2% ??? [232] 9.1% ulp-difference [236] 4.7% --------------------------------------------------------------------------- expand-identifier [13] 13.4% expand-id-application-form17 [205] 19.6% core-form-sym [206] 33.4% expand-implicit [10] 33.7% [221] 4828(1.7%) 328(0.1%) resolve+shift28 (unknown source) fallback-loop [235] 93.2% --------------------------------------------------------------------------- gf [203] 100.0% [222] 2230(0.8%) 2230(0.8%) propagation-apply-shifted (unknown source) --------------------------------------------------------------------------- gf [203] 100.0% [223] 1884(0.7%) 1884(0.7%) propagation-apply (unknown source) --------------------------------------------------------------------------- gf [203] 100.0% [224] 1594(0.6%) 1594(0.6%) propagation-merge (unknown source) --------------------------------------------------------------------------- map [167] 24.1% loop [201] 25.1% for-loop [101] 50.8% [225] 1178(0.4%) 0(0.0%) point-error ...rbie/better-rr/src/points.rkt:195:0 ulp-difference [236] 100.0% --------------------------------------------------------------------------- gf [203] 100.0% [226] 658(0.2%) 658(0.2%) cache-or-reuse-set (unknown source) --------------------------------------------------------------------------- sort-context-on-expr [210] 100.0% [227] 638(0.2%) 0(0.0%) ??? ...-7.0/collects/racket/private/sort.rkt:369:3 generic-sort/key [241] 52.7% loop [269] 47.3% --------------------------------------------------------------------------- loop [201] 100.0% [228] 632(0.2%) 334(0.1%) ??? ...bie/better-rr/src/core/alt-table.rkt:193:30 loop [242] 47.2% --------------------------------------------------------------------------- err-lsts->split-indices [211] 100.0% [229] 604(0.2%) 0(0.0%) loop ...erbie/better-rr/src/core/regimes.rkt:332:4 for-loop [240] 100.0% --------------------------------------------------------------------------- get-ffi-lib9 [213] 100.0% [230] 326(0.1%) 326(0.1%) get-cross-lib-search-dirs ...rivate/dirs.rkt:168:7 --------------------------------------------------------------------------- loop [201] 50.0% for-loop [70] 50.0% [231] 296(0.1%) 296(0.1%) mk-enode-rec! ...tter-rr/src/core/egraph.rkt:119:0 loop [201] 50.0% --------------------------------------------------------------------------- ??? [16] 0.4% ??? [220] 1.0% ??? [64] 2.2% for-loop [101] 2.7% loop [37] 2.9% loop [21] 3.1% ??? [5] 4.2% ??? [148] 8.0% location-do [245] 8.9% for-loop [76] 8.9% ??? [39] 16.6% ??? [135] 17.2% loop [201] 24.1% [232] 65852(23.7%) 6674(2.4%) ??? ...tract/private/arrow-higher-order.rkt:357:33 ->flonum [246] 21.8% sample-multi-bounded [247] 18.9% mk-ival [248] 14.3% location-do [245] 8.9% approximate9 [4] 8.7% ival-mult [249] 8.0% hash-ref! [243] 7.2% best-alt [251] 2.2% simplify [42] 0.2% --------------------------------------------------------------------------- ??? [217] 100.0% [233] 13106(4.7%) 11852(4.3%) for-loop ...e/better-rr/src/core/egraph.rkt:222:26 update-en-expr [252] 9.6% --------------------------------------------------------------------------- adopt-enode! [179] 5.5% loop! [218] 94.5% [234] 5008(1.8%) 2106(0.8%) custom-set-union ...et/private/set-types.rkt:168:0 for-loop [250] 57.9% --------------------------------------------------------------------------- resolve+shift28 [221] 100.0% [235] 4500(1.6%) 2218(0.8%) fallback-loop (unknown source) for-loop [244] 50.7% --------------------------------------------------------------------------- loop [201] 9.7% ??? [220] 9.7% point-error [225] 35.2% for-loop [101] 45.4% [236] 3348(1.2%) 2426(0.9%) ulp-difference ...bie/better-rr/src/float.rkt:14:0 return/no-unsupplied [256] 18.7% ??? [282] 8.8% --------------------------------------------------------------------------- apply-match [114] 21.8% loop! [218] 78.2% [237] 2922(1.1%) 2922(1.1%) set ...collects/racket/private/set-types.rkt:981:0 --------------------------------------------------------------------------- table-ref [219] 100.0% [238] 2096(0.8%) 2096(0.8%) for-loop ...s/herbie/better-rr/src/common.rkt:44:4 --------------------------------------------------------------------------- table-ref [219] 100.0% [239] 646(0.2%) 646(0.2%) dict? ...ollects/racket/private/generic.rkt:146:11 --------------------------------------------------------------------------- loop [229] 100.0% [240] 604(0.2%) 0(0.0%) for-loop ...e/better-rr/src/core/regimes.rkt:297:4 for-loop [253] 100.0% --------------------------------------------------------------------------- ??? [227] 100.0% [241] 336(0.1%) 0(0.0%) generic-sort/key .../racket/private/sort.rkt:156:2 copying-mergesort [254] 100.0% --------------------------------------------------------------------------- ??? [228] 20.0% loop [242] 80.0% [242] 298(0.1%) 298(0.1%) loop ...7.0/collects/racket/private/list.rkt:82:16 loop [242] 80.0% --------------------------------------------------------------------------- ??? [35] 0.1% map [167] 0.2% eval-prog [73] 0.3% loop [280] 0.3% localize-error [52] 0.8% for-loop [66] 0.8% for-loop [25] 1.2% update-leader! [150] 1.3% loop [201] 2.5% for-loop [32] 3.3% for-loop [24] 4.6% for-loop [23] 4.7% ??? [5] 6.5% loop [21] 6.7% ??? [255] 11.9% ??? [232] 13.7% compile [116] 18.5% ??? [257] 22.6% [243] 26368(9.5%) 10308(3.7%) hash-ref! .../racket/private/more-scheme.rkt:376:2 ??? [257] 24.6% ??? [5] 13.2% ??? [255] 12.3% simplify [42] 10.3% ??? [7] 6.1% ??? [8] 5.0% ??? [9] 4.4% parse-loop15 [50] 3.1% taylor [260] 1.4% ??? [11] 1.0% f67 [63] 0.4% --------------------------------------------------------------------------- fallback-loop [235] 0.8% apply-transformer52 [170] 1.6% for-loop [244] 6.4% compile-forms31 [141] 9.8% finish-bodys [164] 81.2% [244] 19548(7.0%) 6042(2.2%) for-loop (unknown source) finish-bodys [164] 59.7% increment-binding-layer [264] 7.0% for-loop [244] 6.4% loop [182] 4.2% syntax-e [6] 3.0% expand-implicit [10] 0.6% expand-identifier [13] 0.4% dispatch-transformer41 [156] 0.3% --------------------------------------------------------------------------- location-do [245] 47.4% ??? [232] 52.6% [245] 16462(5.9%) 0(0.0%) location-do ...ie/better-rr/src/programs.rkt:111:0 ??? [232] 52.6% location-do [245] 47.4% --------------------------------------------------------------------------- ??? [232] 100.0% [246] 14338(5.2%) 8754(3.2%) ->flonum ...herbie/better-rr/src/programs.rkt:38:0 return/no-unsupplied [256] 21.7% ??? [282] 13.1% ??? [287] 4.1% --------------------------------------------------------------------------- ??? [232] 100.0% [247] 12428(4.5%) 5468(2.0%) sample-multi-bounded ...ter-rr/src/points.rkt:16:0 for-loop [261] 14.8% ??? [282] 14.3% return/no-unsupplied [256] 13.6% loop [268] 5.4% ??? [284] 5.1% list-member? [270] 2.7% --------------------------------------------------------------------------- ??? [232] 100.0% [248] 9440(3.4%) 2598(0.9%) mk-ival ...rbie/better-rr/src/biginterval.rkt:59:0 bf [258] 69.0% ??? [284] 3.5% --------------------------------------------------------------------------- ??? [232] 100.0% [249] 5236(1.9%) 924(0.3%) ival-mult ...e/better-rr/src/biginterval.rkt:105:0 classify-ival [259] 53.9% bf* [266] 20.2% ...higher-order.rkt:361:33 [267] 8.2% --------------------------------------------------------------------------- custom-set-union [234] 100.0% [250] 2902(1.0%) 1472(0.5%) for-loop ...cts/racket/private/set-types.rkt:174:3 for-loop [263] 49.3% --------------------------------------------------------------------------- ??? [232] 100.0% [251] 1634(0.6%) 0(0.0%) best-alt ...erbie/better-rr/src/mainloop.rkt:102:0 loop [262] 100.0% --------------------------------------------------------------------------- for-loop [233] 100.0% [252] 1254(0.5%) 1254(0.5%) update-en-expr ...ter-rr/src/core/egraph.rkt:207:0 --------------------------------------------------------------------------- for-loop [240] 100.0% [253] 604(0.2%) 304(0.1%) for-loop ...e/better-rr/src/core/regimes.rkt:301:8 curried [265] 49.7% --------------------------------------------------------------------------- generic-sort/key [241] 33.3% copying-mergesort [254] 66.7% [254] 336(0.1%) 0(0.0%) copying-mergesort ...racket/private/sort.rkt:129:8 copying-mergesort [254] 66.7% loop [269] 33.3% --------------------------------------------------------------------------- hash-ref! [243] 100.0% [255] 13080(4.7%) 0(0.0%) ??? .../herbie/better-rr/src/core/taylor.rkt:45:15 hash-ref! [243] 97.7% simplify [42] 2.3% --------------------------------------------------------------------------- pattern-substitute [131] 2.9% ??? [43] 3.2% for-loop [142] 3.5% ulp-difference [236] 6.1% flag-set? [127] 12.6% sample-multi-bounded [247] 16.5% ??? [166] 24.5% ->flonum [246] 30.5% [256] 10208(3.7%) 7366(2.7%) return/no-unsupplied ...ct/private/arr-i.rkt:534:0 filter [272] 27.8% --------------------------------------------------------------------------- hash-ref! [243] 100.0% [257] 9290(3.3%) 1236(0.4%) ??? ...ies/herbie/better-rr/src/programs.rkt:189:5 hash-ref! [243] 94.4% --------------------------------------------------------------------------- mk-ival [248] 100.0% [258] 6512(2.3%) 292(0.1%) bf ...ath-lib/math/private/bigfloat/mpfr.rkt:601:2 ??? [287] 63.7% new-mpfr [288] 31.8% --------------------------------------------------------------------------- ival-mult [249] 100.0% [259] 2824(1.0%) 1918(0.7%) classify-ival ...tter-rr/src/biginterval.rkt:310:0 fold-binary-pred [273] 21.4% force [276] 10.7% --------------------------------------------------------------------------- for-loop [28] 12.8% hash-ref! [243] 22.7% map [167] 25.4% taylor [260] 39.2% [260] 2726(1.0%) 0(0.0%) taylor ...rbie/better-rr/src/core/taylor.rkt:170:0 taylor [260] 39.2% map [167] 27.7% debug5 [279] 13.1% taylor-log [14] 11.8% loop [280] 3.6% taylor-sqrt [15] 3.0% debug-print [274] 1.6% --------------------------------------------------------------------------- sample-multi-bounded [247] 100.0% [261] 1838(0.7%) 1838(0.7%) for-loop ...s/herbie/better-rr/src/points.rkt:26:4 --------------------------------------------------------------------------- best-alt [251] 100.0% [262] 1634(0.6%) 0(0.0%) loop ...tlies/herbie/better-rr/src/common.rkt:94:2 ??? [275] 100.0% --------------------------------------------------------------------------- for-loop [250] 100.0% [263] 1430(0.5%) 1430(0.5%) for-loop ...cts/racket/private/set-types.rkt:178:5 --------------------------------------------------------------------------- for-loop [244] 100.0% [264] 1376(0.5%) 1376(0.5%) increment-binding-layer (unknown source) --------------------------------------------------------------------------- ormap [118] 25.0% for-loop [137] 25.0% for-loop [253] 25.0% loop [201] 25.1% [265] 1202(0.4%) 1202(0.4%) curried ...-7.0/collects/racket/function.rkt:71:18 --------------------------------------------------------------------------- ival-mult [249] 100.0% [266] 1058(0.4%) 0(0.0%) bf* ...ath/private/bigfloat/bigfloat-mpfr.rkt:95:0 ??? [271] 100.0% --------------------------------------------------------------------------- ival-mult [249] 41.4% ival-add [181] 58.6% [267] 1038(0.4%) 296(0.1%) ...higher-order.rkt:361:33 (unknown source) ??? [277] 71.5% --------------------------------------------------------------------------- sample-multi-bounded [247] 100.0% [268] 674(0.2%) 0(0.0%) loop ...tlies/herbie/better-rr/src/points.rkt:45:6 random-exp [278] 100.0% --------------------------------------------------------------------------- ??? [227] 47.3% copying-mergesort [254] 52.7% [269] 638(0.2%) 0(0.0%) loop ...7.0/collects/racket/private/sort.rkt:96:12 ??? [135] 100.0% --------------------------------------------------------------------------- sample-multi-bounded [247] 100.0% [270] 338(0.1%) 338(0.1%) list-member? ...llects/racket/private/set.rkt:24:0 --------------------------------------------------------------------------- loop [201] 1.1% bf* [266] 3.4% ival-sub [183] 20.6% ival-add [181] 35.6% ival-log [180] 39.3% [271] 30846(11.1%) 8418(3.0%) ??? ...-racket/utils/simple-result-arrow.rkt:39:12 bfsub [281] 53.6% bflog [283] 19.1% --------------------------------------------------------------------------- return/no-unsupplied [256] 100.0% [272] 2842(1.0%) 2842(1.0%) filter ...0/collects/racket/private/list.rkt:256:2 --------------------------------------------------------------------------- classify-ival [259] 32.0% ival-log [180] 68.0% [273] 1890(0.7%) 0(0.0%) fold-binary-pred ...gfloat/bigfloat-mpfr.rkt:117:0 ??? [163] 100.0% --------------------------------------------------------------------------- taylor [260] 16.4% for-loop [53] 32.7% simplify [42] 50.9% [274] 1836(0.7%) 302(0.1%) debug-print ...erbie/better-rr/src/debug.rkt:110:0 for-loop [285] 67.1% ??? [286] 16.4% --------------------------------------------------------------------------- loop [262] 100.0% [275] 1634(0.6%) 0(0.0%) ??? ...es/herbie/better-rr/src/mainloop.rkt:104:19 errors [83] 100.0% --------------------------------------------------------------------------- classify-ival [259] 25.1% ival-log [180] 74.9% [276] 1202(0.4%) 1202(0.4%) force ...collects/racket/private/promise.rkt:109:0 --------------------------------------------------------------------------- ...higher-order.rkt:357:33 [208] 34.1% ...higher-order.rkt:361:33 [267] 65.9% [277] 1126(0.4%) 312(0.1%) ??? ...cts/racket/contract/private/list.rkt:209:10 ??? [284] 72.3% --------------------------------------------------------------------------- loop [268] 100.0% [278] 674(0.2%) 674(0.2%) random-exp ...erbie/better-rr/src/common.rkt:173:0 --------------------------------------------------------------------------- taylor [260] 100.0% [279] 596(0.2%) 0(0.0%) debug5 ...ies/herbie/better-rr/src/debug.rkt:102:0 ??? [47] 50.0% ??? [282] 50.0% --------------------------------------------------------------------------- taylor [260] 100.0% [280] 298(0.1%) 0(0.0%) loop ...herbie/better-rr/src/core/taylor.rkt:268:2 hash-ref! [243] 100.0% --------------------------------------------------------------------------- ??? [271] 100.0% [281] 16536(6.0%) 2084(0.8%) bfsub ...-lib/math/private/bigfloat/mpfr.rkt:821:4 ??? [287] 44.7% new-mpfr [288] 42.7% --------------------------------------------------------------------------- ulp-difference [236] 4.0% debug5 [279] 4.0% flag-set? [127] 5.0% for-loop [86] 12.9% sample-multi-bounded [247] 24.1% ??? [166] 24.6% ->flonum [246] 25.4% [282] 7396(2.7%) 7396(2.7%) ??? ...s/racket/contract/private/arr-i.rkt:1252:29 --------------------------------------------------------------------------- ??? [271] 100.0% [283] 5892(2.1%) 0(0.0%) bflog ...-lib/math/private/bigfloat/mpfr.rkt:618:4 ??? [287] 61.5% new-mpfr [288] 38.5% --------------------------------------------------------------------------- mk-ival [248] 11.8% ...higher-order.rkt:357:33 [208] 12.0% sample-multi-bounded [247] 22.9% core651 [155] 24.2% ??? [277] 29.1% [284] 2798(1.0%) 2120(0.8%) ??? ...ects/racket/contract/private/guts.rkt:746:8 ??? [289] 24.2% --------------------------------------------------------------------------- debug-print [274] 100.0% [285] 1232(0.4%) 1232(0.4%) for-loop ...s/herbie/better-rr/src/debug.rkt:116:2 --------------------------------------------------------------------------- debug-print [274] 100.0% [286] 302(0.1%) 0(0.0%) ??? .../contract/private/arrow-val-first.rkt:428:3 mk-call [290] 100.0% --------------------------------------------------------------------------- ->flonum [246] 3.7% bflog [283] 23.0% bf [258] 26.4% bfsub [281] 46.9% [287] 15746(5.7%) 15746(5.7%) ??? /opt/racket-7.0/collects/ffi/unsafe.rkt:898:4 --------------------------------------------------------------------------- bf [258] 18.1% bflog [283] 19.9% bfsub [281] 62.0% [288] 11406(4.1%) 11406(4.1%) new-mpfr ...b/math/private/bigfloat/mpfr.rkt:335:0 --------------------------------------------------------------------------- ??? [284] 100.0% [289] 678(0.2%) 678(0.2%) ??? /opt/racket-7.0/collects/racket/dict.rkt:11:8 --------------------------------------------------------------------------- ??? [286] 100.0% [290] 302(0.1%) 0(0.0%) mk-call ...tract/private/arrow-val-first.rkt:431:5 loop [291] 100.0% --------------------------------------------------------------------------- mk-call [290] 100.0% [291] 302(0.1%) 0(0.0%) loop ...contract/private/arrow-val-first.rkt:435:8 ??? [292] 100.0% --------------------------------------------------------------------------- loop [201] 23.9% ??? [135] 25.1% ??? [47] 25.3% loop [291] 25.6% [292] 1178(0.4%) 578(0.2%) ??? ...ects/racket/contract/private/prop.rkt:519:4 ??? [294] 25.6% ??? [293] 25.3% --------------------------------------------------------------------------- ??? [292] 47.0% inductor [97] 53.0% [293] 634(0.2%) 298(0.1%) ??? ...lects/racket/contract/private/orc.rkt:83:14 keyword-apply [295] 53.0% --------------------------------------------------------------------------- ??? [292] 100.0% [294] 302(0.1%) 0(0.0%) ??? ...ects/racket/contract/private/list.rkt:681:0 contract-first-order [296] 100.0% --------------------------------------------------------------------------- ??? [293] 100.0% [295] 336(0.1%) 336(0.1%) keyword-apply ...lects/racket/private/kw.rkt:421:2 --------------------------------------------------------------------------- ??? [294] 100.0% [296] 302(0.1%) 302(0.1%) contract-first-order ...act/private/guts.rkt:216:0 ---------------------------------------------------------------------------