Profiling results ----------------- Total cpu time observed: 505780ms (out of 507960ms) Number of samples taken: 1542 (once every 328ms) (Hiding functions with self<1.0% and local<2.0%: 21 of 306 hidden) ========================================================================================== Caller Idx Total Self Name+src Local% ms(pct) ms(pct) Callee ========================================================================================== run [34] 50.0% [1] 505780(100.0%) 0(0.0%) ??? ...lects/racket/private/more-scheme.rkt:261:28 profile-thunk16 [18] 50.0% run-improve39 [19] 45.5% prepare-points [44] 2.5% get-final-combination [20] 2.1% ------------------------------------------------------------------------------------------ ??? [90] 100.0% [2] 27020(5.3%) 0(0.0%) approximate9 ...e/develop/src/core/taylor.rkt:12:0 loop [22] 67.7% for-loop [27] 21.5% taylor [36] 7.1% taylor-sqrt [45] 3.7% ------------------------------------------------------------------------------------------ hash-ref! [172] 100.0% [3] 19678(3.9%) 0(0.0%) ??? ...s/herbie/develop/src/core/taylor.rkt:295:23 for-loop [21] 100.0% ------------------------------------------------------------------------------------------ hash-ref! [172] 100.0% [4] 17430(3.4%) 0(0.0%) ??? ...s/herbie/develop/src/core/taylor.rkt:285:26 for-loop [23] 100.0% ------------------------------------------------------------------------------------------ hash-ref! [172] 100.0% [5] 17426(3.4%) 0(0.0%) ??? ...s/herbie/develop/src/core/taylor.rkt:392:23 for-loop [24] 100.0% ------------------------------------------------------------------------------------------ hash-ref! [172] 100.0% [6] 10200(2.0%) 0(0.0%) ??? ...s/herbie/develop/src/core/taylor.rkt:483:23 for-loop [26] 100.0% ------------------------------------------------------------------------------------------ substitute-e [155] 6.1% for-loop [133] 18.7% match-e [144] 75.3% [7] 10070(2.0%) 0(0.0%) variable? ...e/develop/src/syntax/syntax.rkt:714:0 ??? [66] 100.0% ------------------------------------------------------------------------------------------ loop [161] 100.0% [8] 3982(0.8%) 0(0.0%) set-precompute! ...lop/src/core/simplify.rkt:144:0 for-loop [29] 100.0% ------------------------------------------------------------------------------------------ loop [272] 24.5% for-loop [285] 75.5% [9] 3976(0.8%) 970(0.2%) syntax-e (unknown source) syntax-e/no-taint [28] 75.6% ------------------------------------------------------------------------------------------ expand-capturing-lifts [125] 21.5% for-loop [285] 78.5% [10] 2972(0.6%) 318(0.1%) expand-implicit (unknown source) resolve+shift28 [277] 77.9% binding-lookup50 [281] 11.4% ------------------------------------------------------------------------------------------ copying-mergesort [228] 100.0% [11] 2512(0.5%) 614(0.1%) jloop ...t/collects/racket/private/sort.rkt:120:23 ??? [86] 75.6% ------------------------------------------------------------------------------------------ hash-ref! [172] 100.0% [12] 1980(0.4%) 0(0.0%) ??? ...s/herbie/develop/src/core/taylor.rkt:408:23 for-loop [30] 100.0% ------------------------------------------------------------------------------------------ f8 [87] 100.0% [13] 1892(0.4%) 0(0.0%) loop ...es/herbie/develop/src/core/reduce.rkt:18:2 type-of [25] 100.0% ------------------------------------------------------------------------------------------ map [93] 100.0% [14] 1284(0.3%) 0(0.0%) simplify-node .../develop/src/core/reduce.rkt:50:0 gather-multiplicative-terms [107] 75.1% combine-mterms [32] 24.9% ------------------------------------------------------------------------------------------ taylor [36] 100.0% [15] 620(0.1%) 0(0.0%) taylor-quotient ...velop/src/core/taylor.rkt:328:0 first-nonzero-exp [31] 100.0% ------------------------------------------------------------------------------------------ matcher [81] 100.0% [16] 312(0.1%) 0(0.0%) for-loop ...bie/develop/src/core/matcher.rkt:160:6 pattern-substitute [33] 100.0% ------------------------------------------------------------------------------------------ append-map [95] 100.0% [17] 310(0.1%) 0(0.0%) free-variables ...ie/develop/src/programs.rkt:80:0 ??? [66] 100.0% ------------------------------------------------------------------------------------------ ??? [1] 100.0% [18] 505780(100.0%) 0(0.0%) profile-thunk16 ...e/pkgs/profile-lib/main.rkt:9:0 run [34] 100.0% ------------------------------------------------------------------------------------------ ??? [1] 100.0% [19] 460058(91.0%) 0(0.0%) run-improve39 ...ie/develop/src/mainloop.rkt:286:0 for-loop [35] 99.1% setup-prog!32 [40] 0.2% ------------------------------------------------------------------------------------------ ??? [1] 100.0% [20] 20786(4.1%) 0(0.0%) get-final-combination ...op/src/mainloop.rkt:320:0 f8 [87] 100.0% ------------------------------------------------------------------------------------------ ??? [3] 100.0% [21] 19678(3.9%) 652(0.1%) for-loop ...bie/develop/src/core/taylor.rkt:298:27 hash-ref! [172] 93.5% simplify [52] 4.8% ------------------------------------------------------------------------------------------ approximate9 [2] 100.0% [22] 18296(3.6%) 0(0.0%) loop ...es/herbie/develop/src/core/taylor.rkt:86:4 hash-ref! [172] 86.1% ??? [90] 13.9% ------------------------------------------------------------------------------------------ ??? [4] 100.0% [23] 17430(3.4%) 962(0.2%) for-loop ...bie/develop/src/core/taylor.rkt:285:52 hash-ref! [172] 61.0% ??? [37] 26.2% simplify [52] 7.2% ------------------------------------------------------------------------------------------ ??? [5] 100.0% [24] 17426(3.4%) 0(0.0%) for-loop ...bie/develop/src/core/taylor.rkt:396:33 hash-ref! [172] 100.0% ------------------------------------------------------------------------------------------ loop [13] 10.9% for-loop [78] 89.1% [25] 17422(3.4%) 1230(0.2%) type-of .../herbie/develop/src/type-check.rkt:34:0 ??? [215] 45.1% table-ref [214] 22.2% for-loop [240] 16.4% ...velop/src/common.rkt:48:2 [216] 7.3% get/build-late-neg-projection [249] 1.9% ------------------------------------------------------------------------------------------ ??? [6] 100.0% [26] 10200(2.0%) 0(0.0%) for-loop ...bie/develop/src/core/taylor.rkt:487:35 parse-loop14 [61] 100.0% ------------------------------------------------------------------------------------------ approximate9 [2] 100.0% [27] 5806(1.1%) 0(0.0%) for-loop ...rbie/develop/src/core/taylor.rkt:29:18 taylor [36] 60.2% taylor-sqrt [45] 39.8% ------------------------------------------------------------------------------------------ expand-id-application-form17 [275] 17.0% gf [274] 29.2% syntax-e [9] 53.7% [28] 5594(1.1%) 0(0.0%) syntax-e/no-taint (unknown source) loop [272] 100.0% ------------------------------------------------------------------------------------------ set-precompute! [8] 100.0% [29] 3982(0.8%) 348(0.1%) for-loop ...ie/develop/src/core/simplify.rkt:146:2 setfindf [38] 40.7% eval-const-expr [39] 33.0% ??? [86] 17.5% ------------------------------------------------------------------------------------------ ??? [12] 100.0% [30] 1980(0.4%) 0(0.0%) for-loop ...bie/develop/src/core/taylor.rkt:411:30 hash-ref! [172] 100.0% ------------------------------------------------------------------------------------------ taylor-quotient [15] 100.0% [31] 620(0.1%) 0(0.0%) first-nonzero-exp ...lop/src/core/taylor.rkt:260:0 hash-ref! [172] 100.0% ------------------------------------------------------------------------------------------ simplify-node [14] 100.0% [32] 320(0.1%) 0(0.0%) combine-mterms ...evelop/src/core/reduce.rkt:191:0 for-loop [41] 100.0% ------------------------------------------------------------------------------------------ for-loop [16] 33.3% for-loop [42] 66.7% [33] 312(0.1%) 0(0.0%) pattern-substitute ...op/src/core/matcher.rkt:73:0 for-loop [42] 66.7% ??? [66] 33.3% ------------------------------------------------------------------------------------------ profile-thunk16 [18] 100.0% [34] 505780(100.0%) 0(0.0%) run ...racket/share/pkgs/profile-lib/main.rkt:39:2 ??? [1] 100.0% ------------------------------------------------------------------------------------------ run-improve39 [19] 100.0% [35] 456118(90.2%) 0(0.0%) for-loop .../herbie/develop/src/mainloop.rkt:303:8 run-iter! [43] 100.0% ------------------------------------------------------------------------------------------ map [93] 4.0% hash-ref! [172] 5.7% approximate9 [2] 21.9% for-loop [27] 25.6% taylor [36] 42.8% [36] 6658(1.3%) 0(0.0%) taylor ...herbie/develop/src/core/taylor.rkt:163:0 taylor [36] 42.8% taylor-sqrt [45] 42.3% loop [46] 5.9% map [93] 4.0% taylor-quotient [15] 1.7% debug7 [63] 1.4% ------------------------------------------------------------------------------------------ for-loop [23] 100.0% [37] 6136(1.2%) 0(0.0%) ??? ...s/herbie/develop/src/core/taylor.rkt:288:19 hash-ref! [172] 100.0% ------------------------------------------------------------------------------------------ for-loop [29] 100.0% [38] 1622(0.3%) 340(0.1%) setfindf ...es/herbie/develop/src/common.rkt:176:0 for-loop [47] 79.0% ------------------------------------------------------------------------------------------ for-loop [29] 100.0% [39] 1316(0.3%) 0(0.0%) eval-const-expr .../develop/src/programs.rkt:132:0 eval-prog [85] 100.0% ------------------------------------------------------------------------------------------ run-improve39 [19] 100.0% [40] 976(0.2%) 0(0.0%) setup-prog!32 ...bie/develop/src/mainloop.rkt:63:0 prepare-points [44] 64.5% loop [48] 35.5% ------------------------------------------------------------------------------------------ combine-mterms [32] 100.0% [41] 320(0.1%) 0(0.0%) for-loop ...rbie/develop/src/core/reduce.rkt:195:5 hash-ref! [172] 100.0% ------------------------------------------------------------------------------------------ pattern-substitute [33] 100.0% [42] 312(0.1%) 0(0.0%) for-loop ...bie/develop/src/core/matcher.rkt:81:10 pattern-substitute [33] 100.0% ------------------------------------------------------------------------------------------ for-loop [35] 100.0% [43] 456118(90.2%) 0(0.0%) run-iter! ...herbie/develop/src/mainloop.rkt:267:0 simplify! [49] 82.7% finalize-iter! [50] 6.5% gen-series! [51] 5.9% gen-rewrites! [53] 4.4% choose-best-alt! [55] 0.3% ------------------------------------------------------------------------------------------ setup-prog!32 [40] 2.5% ??? [1] 97.5% [44] 25566(5.1%) 0(0.0%) prepare-points ...bie/develop/src/points.rkt:156:0 loop [60] 53.3% loop [54] 23.8% make-exacts* [62] 20.3% for-loop [56] 2.7% ------------------------------------------------------------------------------------------ hash-ref! [172] 12.7% approximate9 [2] 13.5% for-loop [27] 31.1% taylor [36] 42.7% [45] 7430(1.5%) 0(0.0%) taylor-sqrt ...e/develop/src/core/taylor.rkt:346:0 hash-ref! [172] 83.2% simplify [52] 16.8% ------------------------------------------------------------------------------------------ taylor [36] 100.0% [46] 1580(0.3%) 0(0.0%) loop ...s/herbie/develop/src/core/taylor.rkt:262:2 hash-ref! [172] 100.0% ------------------------------------------------------------------------------------------ setfindf [38] 100.0% [47] 1282(0.3%) 1282(0.3%) for-loop ...es/herbie/develop/src/common.rkt:177:2 ------------------------------------------------------------------------------------------ setup-prog!32 [40] 100.0% [48] 346(0.1%) 0(0.0%) loop ...htlies/herbie/develop/src/points.rkt:180:2 make-exacts* [62] 100.0% ------------------------------------------------------------------------------------------ run-iter! [43] 100.0% [49] 377298(74.6%) 0(0.0%) simplify! ...herbie/develop/src/mainloop.rkt:181:0 for-loop [57] 100.0% ------------------------------------------------------------------------------------------ run-iter! [43] 100.0% [50] 29602(5.9%) 0(0.0%) finalize-iter! ...e/develop/src/mainloop.rkt:221:0 ??? [66] 100.0% ------------------------------------------------------------------------------------------ run-iter! [43] 100.0% [51] 27020(5.3%) 0(0.0%) gen-series! ...rbie/develop/src/mainloop.rkt:151:0 for-loop [58] 100.0% ------------------------------------------------------------------------------------------ for-loop [21] 3.9% taylor-sqrt [45] 5.1% for-loop [23] 6.5% hash-ref! [172] 79.2% [52] 24482(4.8%) 0(0.0%) simplify ...erbie/develop/src/core/reduce.rkt:16:0 f8 [87] 77.6% parse-loop14 [61] 17.3% debug7 [63] 2.5% debug-print [71] 1.4% simplify* [104] 1.3% ------------------------------------------------------------------------------------------ run-iter! [43] 100.0% [53] 20296(4.0%) 0(0.0%) gen-rewrites! ...ie/develop/src/mainloop.rkt:164:0 for-loop [59] 100.0% ------------------------------------------------------------------------------------------ prepare-points [44] 100.0% [54] 6072(1.2%) 0(0.0%) loop ...htlies/herbie/develop/src/points.rkt:124:2 loop [60] 63.6% make-exacts* [62] 36.4% ------------------------------------------------------------------------------------------ run-iter! [43] 100.0% [55] 1282(0.3%) 0(0.0%) choose-best-alt! ...develop/src/mainloop.rkt:113:0 ??? [66] 100.0% ------------------------------------------------------------------------------------------ prepare-points [44] 100.0% [56] 694(0.1%) 0(0.0%) for-loop ...s/herbie/develop/src/points.rkt:195:19 ??? [64] 100.0% ------------------------------------------------------------------------------------------ simplify! [49] 100.0% [57] 377298(74.6%) 0(0.0%) for-loop .../herbie/develop/src/mainloop.rkt:185:6 for-loop [65] 99.9% debug-print [71] 0.1% ------------------------------------------------------------------------------------------ gen-series! [51] 100.0% [58] 27020(5.3%) 0(0.0%) for-loop .../herbie/develop/src/mainloop.rkt:157:7 taylor-alt [67] 100.0% ------------------------------------------------------------------------------------------ gen-rewrites! [53] 100.0% [59] 20296(4.0%) 0(0.0%) for-loop ...herbie/develop/src/mainloop.rkt:169:11 ??? [68] 100.0% ------------------------------------------------------------------------------------------ loop [54] 22.1% prepare-points [44] 77.9% [60] 17482(3.5%) 0(0.0%) loop ...htlies/herbie/develop/src/points.rkt:107:4 loop [161] 98.1% ??? [86] 1.9% ------------------------------------------------------------------------------------------ loop [161] 2.0% hash-ref! [172] 3.6% simplify [52] 9.0% parse-loop14 [61] 12.7% map [93] 30.6% for-loop [26] 42.1% [61] 17234(3.4%) 2198(0.4%) parse-loop14 ...s/racket/match/compiler.rkt:418:15 for-loop [69] 42.1% temp68_2 [88] 22.1% parse-loop14 [61] 12.7% f8 [87] 6.4% loop [161] 6.2% ??? [106] 1.0% loop [272] 0.9% map [93] 0.4% ------------------------------------------------------------------------------------------ loop [48] 4.5% loop [54] 28.5% prepare-points [44] 67.0% [62] 7736(1.5%) 0(0.0%) make-exacts* ...erbie/develop/src/points.rkt:104:0 loop [161] 95.5% eval-prog [85] 4.5% ------------------------------------------------------------------------------------------ simplify [52] 49.4% taylor [36] 50.6% [63] 1222(0.2%) 604(0.1%) debug7 ...tlies/herbie/develop/src/debug.rkt:102:0 ??? [66] 25.4% ??? [237] 25.2% ------------------------------------------------------------------------------------------ for-loop [56] 100.0% [64] 694(0.1%) 0(0.0%) ??? ...ghtlies/herbie/develop/src/points.rkt:172:7 for-loop [70] 100.0% ------------------------------------------------------------------------------------------ for-loop [57] 100.0% [65] 376966(74.5%) 0(0.0%) for-loop .../herbie/develop/src/mainloop.rkt:209:8 ??? [90] 100.0% ------------------------------------------------------------------------------------------ debug7 [63] 0.5% free-variables [17] 0.5% pattern-substitute [33] 0.5% choose-best-alt! [55] 2.2% substitute-e [155] 3.4% variable? [7] 17.5% match-e [144] 23.6% finalize-iter! [50] 51.6% [66] 57398(11.3%) 19166(3.8%) ??? ...contract/private/arrow-val-first.rkt:388:18 for-loop [72] 51.6% hash-has-key? [191] 11.1% ??? [75] 2.2% ??? [262] 1.7% ------------------------------------------------------------------------------------------ for-loop [58] 100.0% [67] 27020(5.3%) 0(0.0%) taylor-alt ...erbie/develop/src/mainloop.rkt:136:0 for-loop [73] 100.0% ------------------------------------------------------------------------------------------ for-loop [59] 100.0% [68] 20296(4.0%) 0(0.0%) ??? ...ies/herbie/develop/src/alternative.rkt:60:0 rewriter [74] 100.0% ------------------------------------------------------------------------------------------ parse-loop14 [61] 100.0% [69] 10200(2.0%) 0(0.0%) for-loop ...bie/develop/src/core/taylor.rkt:490:59 hash-ref! [172] 100.0% ------------------------------------------------------------------------------------------ ??? [64] 100.0% [70] 694(0.1%) 336(0.1%) for-loop ...es/herbie/develop/src/points.rkt:173:9 ??? [90] 51.6% ------------------------------------------------------------------------------------------ for-loop [57] 49.0% simplify [52] 51.0% [71] 678(0.1%) 0(0.0%) debug-print .../herbie/develop/src/debug.rkt:107:0 for-loop [76] 100.0% ------------------------------------------------------------------------------------------ ??? [66] 100.0% [72] 29602(5.9%) 0(0.0%) for-loop ...ie/develop/src/core/alt-table.rkt:51:2 atab-add-altn [77] 100.0% ------------------------------------------------------------------------------------------ taylor-alt [67] 100.0% [73] 27020(5.3%) 0(0.0%) for-loop .../herbie/develop/src/mainloop.rkt:142:6 ??? [90] 100.0% ------------------------------------------------------------------------------------------ ??? [68] 22.0% matcher [81] 78.0% [74] 20296(4.0%) 668(0.1%) rewriter ...bie/develop/src/core/matcher.rkt:131:2 for-loop [78] 96.7% *rules* [79] 2.8% ------------------------------------------------------------------------------------------ ??? [66] 100.0% [75] 1282(0.3%) 0(0.0%) ??? .../herbie/develop/src/core/alt-table.rkt:54:0 ??? [90] 100.0% ------------------------------------------------------------------------------------------ debug-print [71] 100.0% [76] 678(0.1%) 678(0.1%) for-loop ...ies/herbie/develop/src/debug.rkt:113:2 ------------------------------------------------------------------------------------------ for-loop [72] 100.0% [77] 29602(5.9%) 0(0.0%) atab-add-altn ...elop/src/core/alt-table.rkt:208:0 best-and-tied-at-points [80] 99.0% ------------------------------------------------------------------------------------------ rewriter [74] 100.0% [78] 20296(4.0%) 612(0.1%) for-loop ...ie/develop/src/core/matcher.rkt:134:10 matcher [81] 82.0% type-of [25] 16.8% return/no-unsupplied [234] 0.2% ------------------------------------------------------------------------------------------ rewriter [74] 100.0% [79] 2862(0.6%) 624(0.1%) *rules* ...rbie/develop/src/syntax/rules.rkt:643:0 for-loop [127] 78.2% ------------------------------------------------------------------------------------------ atab-add-altn [77] 100.0% [80] 29306(5.8%) 0(0.0%) best-and-tied-at-points ...ore/alt-table.rkt:122:0 errors [82] 99.0% ------------------------------------------------------------------------------------------ for-loop [83] 50.0% for-loop [78] 50.0% [81] 20296(4.0%) 0(0.0%) matcher ...rbie/develop/src/core/matcher.rkt:168:2 for-loop [83] 50.0% rewriter [74] 49.6% for-loop [16] 0.4% ------------------------------------------------------------------------------------------ ??? [129] 3.2% for-loop [189] 23.7% best-and-tied-at-points [80] 72.3% [82] 40112(7.9%) 0(0.0%) errors ...lies/herbie/develop/src/points.rkt:203:0 for-loop [84] 65.6% eval-prog [85] 34.4% ------------------------------------------------------------------------------------------ matcher [81] 100.0% [83] 20296(4.0%) 0(0.0%) for-loop ...ie/develop/src/core/matcher.rkt:184:21 matcher [81] 100.0% ------------------------------------------------------------------------------------------ errors [82] 100.0% [84] 26314(5.2%) 612(0.1%) for-loop ...es/herbie/develop/src/points.rkt:206:4 ??? [86] 91.6% ??? [90] 4.9% ------------------------------------------------------------------------------------------ option-on-expr [173] 1.9% make-exacts* [62] 2.1% point->alt [210] 3.7% eval-const-expr [39] 7.9% errors [82] 82.5% [85] 16726(3.3%) 0(0.0%) eval-prog ...herbie/develop/src/programs.rkt:109:0 temp68_2 [88] 56.8% f8 [87] 31.5% hash-ref! [172] 4.0% loop [272] 3.9% eval [89] 3.8% ------------------------------------------------------------------------------------------ loop [60] 0.6% for-loop [29] 1.2% ??? [222] 2.4% jloop [11] 3.4% loop [236] 8.0% loop [161] 41.4% for-loop [84] 42.9% [86] 56136(11.1%) 1186(0.2%) ??? ...tlies/herbie/develop/src/programs.rkt:129:2 ??? [91] 83.9% ??? [90] 8.0% bf [94] 5.9% ------------------------------------------------------------------------------------------ loop [161] 0.4% hash-ref! [172] 0.7% append-map [95] 1.7% eval-prog [85] 2.5% parse-loop14 [61] 3.8% f8 [87] 12.5% map [93] 12.5% simplify [52] 22.1% get-final-combination [20] 43.1% [87] 44314(8.8%) 1908(0.4%) f8 ...et/collects/racket/match/compiler.rkt:507:40 loop [161] 36.4% map [93] 31.7% f8 [87] 12.5% option-on-expr [173] 6.6% temp68_2 [88] 3.9% append-map [95] 2.3% table-ref [214] 1.7% loop [13] 0.9% ...velop/src/common.rkt:48:2 [216] 0.2% eval [89] 0.2% ??? [90] 0.1% ------------------------------------------------------------------------------------------ f8 [87] 9.9% parse-loop14 [61] 41.8% eval-prog [85] 48.3% [88] 19650(3.9%) 0(0.0%) temp68_2 (unknown source) compile16 [92] 100.0% ------------------------------------------------------------------------------------------ f8 [87] 31.9% eval-prog [85] 68.1% [89] 940(0.2%) 0(0.0%) eval (unknown source) add-ns-scopes [96] 68.1% namespace-syntax-introduce3 [97] 31.9% ------------------------------------------------------------------------------------------ f8 [87] 0.1% for-loop [70] 0.1% loop [22] 0.2% ??? [75] 0.3% for-loop [84] 0.3% loop [161] 0.5% ??? [86] 1.1% ??? [186] 1.3% for-loop [73] 2.5% for-loop [65] 45.5% location-do [98] 48.1% [90] 414014(81.9%) 710(0.1%) ??? ...tract/private/arrow-higher-order.rkt:357:33 location-do [98] 48.1% ??? [99] 45.5% approximate9 [2] 2.5% ->flonum [101] 1.9% hash-ref! [172] 1.5% best-alt [105] 0.3% ??? [111] 0.0% ------------------------------------------------------------------------------------------ ??? [86] 100.0% [91] 47112(9.3%) 21300(4.2%) ??? ...acket/collects/racket/private/kw.rkt:592:14 ??? [188] 24.7% ??? [102] 14.2% ??? [260] 5.1% bf* [177] 4.2% ??? [103] 4.1% ...higher-order.rkt:361:33 [109] 1.8% ------------------------------------------------------------------------------------------ temp68_2 [88] 100.0% [92] 19650(3.9%) 0(0.0%) compile16 (unknown source) temp74_0 [100] 100.0% ------------------------------------------------------------------------------------------ gather-multiplicative-terms [107] 0.7% for-loop [212] 2.0% parse-loop14 [61] 2.0% taylor [36] 7.9% f8 [87] 87.4% [93] 16718(3.3%) 1272(0.3%) map ...acket/collects/racket/private/map.rkt:35:13 f8 [87] 36.9% parse-loop14 [61] 35.3% taylor [36] 7.9% simplify* [104] 4.7% loop [161] 4.0% simplify-node [14] 2.5% make-multiplication-node [108] 2.3% gather-multiplicative-terms [107] 0.7% ??? [106] 0.7% ------------------------------------------------------------------------------------------ ??? [86] 100.0% [94] 3340(0.7%) 756(0.1%) bf ...ath-lib/math/private/bigfloat/mpfr.rkt:601:2 new-mpfr [218] 65.0% ??? [221] 12.3% ------------------------------------------------------------------------------------------ f8 [87] 100.0% [95] 1614(0.3%) 970(0.2%) append-map ...acket/collects/racket/list.rkt:586:2 f8 [87] 62.5% loop [110] 5.2% free-variables [17] 3.8% ------------------------------------------------------------------------------------------ eval [89] 100.0% [96] 640(0.1%) 0(0.0%) add-ns-scopes (unknown source) gf [274] 100.0% ------------------------------------------------------------------------------------------ eval [89] 100.0% [97] 300(0.1%) 300(0.1%) namespace-syntax-introduce3 (unknown source) ------------------------------------------------------------------------------------------ ??? [90] 45.2% location-do [98] 54.8% [98] 403986(79.9%) 0(0.0%) location-do ...erbie/develop/src/programs.rkt:90:0 location-do [98] 54.8% ??? [90] 45.2% ------------------------------------------------------------------------------------------ ??? [90] 99.2% [99] 379630(75.1%) 0(0.0%) ??? ...s/herbie/develop/src/core/simplify.rkt:31:0 iterate-egraph!7 [112] 80.3% loop [113] 19.1% mk-egraph [116] 0.6% ------------------------------------------------------------------------------------------ compile16 [92] 100.0% [100] 19650(3.9%) 0(0.0%) temp74_0 (unknown source) expand-single [114] 80.0% compile-top9 [115] 18.2% loop [272] 1.8% ------------------------------------------------------------------------------------------ ??? [90] 100.0% [101] 8036(1.6%) 6332(1.3%) ->flonum ...s/herbie/develop/src/programs.rkt:36:0 return/no-unsupplied [234] 12.0% ??? [221] 5.2% ??? [237] 4.1% ------------------------------------------------------------------------------------------ ??? [91] 100.0% [102] 6672(1.3%) 5716(1.1%) ??? ...herbie/develop/src/syntax/syntax.rkt:196:17 ??? [237] 9.7% return/no-unsupplied [234] 4.7% ------------------------------------------------------------------------------------------ ??? [91] 100.0% [103] 1950(0.4%) 1950(0.4%) ??? ...rivate/unconstrained-domain-arrow.rkt:40:13 ------------------------------------------------------------------------------------------ simplify [52] 22.9% map [93] 77.1% [104] 1356(0.3%) 0(0.0%) simplify* ...rbie/develop/src/core/reduce.rkt:31:0 hash-ref! [172] 50.9% return/no-unsupplied [234] 49.1% ------------------------------------------------------------------------------------------ ??? [90] 100.0% [105] 1282(0.3%) 0(0.0%) best-alt .../herbie/develop/src/mainloop.rkt:108:0 loop [118] 74.6% argmins [120] 25.4% ------------------------------------------------------------------------------------------ parse-loop14 [61] 33.9% map [93] 66.1% [106] 980(0.2%) 0(0.0%) ??? ...ies/herbie/develop/src/core/reduce.rkt:61:5 for-loop [117] 100.0% ------------------------------------------------------------------------------------------ map [93] 17.4% simplify-node [14] 82.6% [107] 964(0.2%) 656(0.1%) gather-multiplicative-terms ...re/reduce.rkt:116:0 compose [121] 32.0% map [93] 17.4% ------------------------------------------------------------------------------------------ map [93] 100.0% [108] 934(0.2%) 0(0.0%) make-multiplication-node .../core/reduce.rkt:230:0 make-multiplication-subnode [119] 100.0% ------------------------------------------------------------------------------------------ ??? [91] 100.0% [109] 838(0.2%) 0(0.0%) ...higher-order.rkt:361:33 (unknown source) ??? [247] 100.0% ------------------------------------------------------------------------------------------ append-map [95] 100.0% [110] 334(0.1%) 334(0.1%) loop ...p92/racket/collects/racket/list.rkt:417:34 ------------------------------------------------------------------------------------------ ??? [90] 100.0% [111] 300(0.1%) 0(0.0%) ??? ...lies/herbie/develop/src/mainloop.rkt:210:62 *simplify-rules* [122] 100.0% ------------------------------------------------------------------------------------------ ??? [99] 100.0% [112] 304874(60.3%) 332(0.1%) iterate-egraph!7 ...lop/src/core/simplify.rkt:55:0 one-iter [123] 98.6% ------------------------------------------------------------------------------------------ ??? [99] 100.0% [113] 72512(14.3%) 334(0.1%) loop ...herbie/develop/src/core/simplify.rkt:188:2 for-loop [124] 99.5% ------------------------------------------------------------------------------------------ temp74_0 [100] 100.0% [114] 15726(3.1%) 0(0.0%) expand-single (unknown source) expand-capturing-lifts [125] 100.0% ------------------------------------------------------------------------------------------ temp74_0 [100] 100.0% [115] 3578(0.7%) 300(0.1%) compile-top9 (unknown source) compile-forms31 [126] 91.6% ------------------------------------------------------------------------------------------ ??? [99] 100.0% [116] 2244(0.4%) 0(0.0%) mk-egraph ...bie/develop/src/core/egraph.rkt:131:0 mk-enode-rec! [128] 70.9% mk-enode! [170] 29.1% ------------------------------------------------------------------------------------------ ??? [106] 100.0% [117] 980(0.2%) 648(0.1%) for-loop ...erbie/develop/src/core/reduce.rkt:62:7 pattern-match [130] 33.9% ------------------------------------------------------------------------------------------ best-alt [105] 100.0% [118] 956(0.2%) 0(0.0%) loop ...htlies/herbie/develop/src/common.rkt:143:2 ??? [129] 100.0% ------------------------------------------------------------------------------------------ make-multiplication-node [108] 100.0% [119] 934(0.2%) 612(0.1%) make-multiplication-subnode ...re/reduce.rkt:240:0 for-loop [131] 34.5% ------------------------------------------------------------------------------------------ best-alt [105] 100.0% [120] 326(0.1%) 0(0.0%) argmins ...ies/herbie/develop/src/common.rkt:142:0 ??? [129] 100.0% ------------------------------------------------------------------------------------------ gather-multiplicative-terms [107] 100.0% [121] 308(0.1%) 308(0.1%) compose ...collects/racket/private/list.rkt:385:12 ------------------------------------------------------------------------------------------ ??? [111] 100.0% [122] 300(0.1%) 0(0.0%) *simplify-rules* ...lop/src/syntax/rules.rkt:648:0 for-loop [127] 100.0% ------------------------------------------------------------------------------------------ iterate-egraph!7 [112] 100.0% [123] 300560(59.4%) 4538(0.9%) one-iter ...bie/develop/src/core/simplify.rkt:66:0 for-loop [132] 74.4% for-loop [133] 23.5% ------------------------------------------------------------------------------------------ loop [113] 100.0% [124] 72178(14.3%) 610(0.1%) for-loop ...e/develop/src/core/simplify.rkt:181:29 argmin [134] 67.8% loop [135] 23.4% for-loop [137] 7.9% ------------------------------------------------------------------------------------------ loop [272] 7.6% expand-single [114] 92.4% [125] 17026(3.4%) 0(0.0%) expand-capturing-lifts (unknown source) lambda-clause-expander [136] 53.9% dispatch-transformer41 [138] 21.2% for-loop [285] 7.8% loop [272] 5.8% expand-identifier [140] 5.6% expand-implicit [10] 3.8% expand-id-application-form17 [275] 1.9% ------------------------------------------------------------------------------------------ compile-top9 [115] 100.0% [126] 3278(0.6%) 344(0.1%) compile-forms31 (unknown source) for-loop [285] 79.7% serialize-phase-to-link-module-uses [142] 9.8% ------------------------------------------------------------------------------------------ *simplify-rules* [122] 11.8% *rules* [79] 88.2% [127] 2538(0.5%) 626(0.1%) for-loop ...ies/herbie/develop/src/common.rkt:92:9 ormap [139] 75.3% ------------------------------------------------------------------------------------------ mk-egraph [116] 18.7% mk-enode-rec! [128] 81.3% [128] 1590(0.3%) 0(0.0%) mk-enode-rec! ...develop/src/core/egraph.rkt:122:0 mk-enode-rec! [128] 81.3% mk-enode! [170] 18.7% ------------------------------------------------------------------------------------------ argmins [120] 25.4% loop [118] 74.6% [129] 1282(0.3%) 0(0.0%) ??? ...lies/herbie/develop/src/mainloop.rkt:110:19 errors [82] 100.0% ------------------------------------------------------------------------------------------ for-loop [117] 100.0% [130] 332(0.1%) 332(0.1%) pattern-match ...develop/src/core/matcher.rkt:48:0 ------------------------------------------------------------------------------------------ make-multiplication-subnode [119] 100.0% [131] 322(0.1%) 0(0.0%) for-loop ...rbie/develop/src/core/reduce.rkt:242:3 partition [141] 100.0% ------------------------------------------------------------------------------------------ one-iter [123] 100.0% [132] 223540(44.2%) 646(0.1%) for-loop ...ie/develop/src/core/simplify.rkt:117:2 for-loop [143] 88.2% match-e [144] 11.2% reduce-to-single! [151] 0.3% ------------------------------------------------------------------------------------------ for-loop [133] 48.6% one-iter [123] 51.4% [133] 70556(13.9%) 16938(3.3%) for-loop ...ie/develop/src/core/simplify.rkt:76:12 for-loop [133] 48.6% match-e [144] 36.7% variable? [7] 1.3% ------------------------------------------------------------------------------------------ for-loop [124] 100.0% [134] 48962(9.7%) 326(0.1%) argmin ...92/racket/collects/racket/list.rkt:765:0 for-loop [145] 92.1% expression-cost [148] 7.3% ------------------------------------------------------------------------------------------ for-loop [124] 100.0% [135] 16918(3.3%) 0(0.0%) loop .../p92/racket/collects/racket/list.rkt:751:4 for-loop [145] 96.0% expression-cost [148] 4.0% ------------------------------------------------------------------------------------------ expand-capturing-lifts [125] 100.0% [136] 9180(1.8%) 0(0.0%) lambda-clause-expander (unknown source) finish-bodys [146] 89.4% loop [272] 10.6% ------------------------------------------------------------------------------------------ for-loop [124] 100.0% [137] 5688(1.1%) 2880(0.6%) for-loop ...e/develop/src/core/simplify.rkt:168:13 for-loop [149] 38.4% andmap [153] 10.9% ------------------------------------------------------------------------------------------ loop [272] 12.8% for-loop [285] 18.0% expand-capturing-lifts [125] 69.1% [138] 5224(1.0%) 0(0.0%) dispatch-transformer41 (unknown source) apply-transformer52 [147] 100.0% ------------------------------------------------------------------------------------------ for-loop [127] 100.0% [139] 1912(0.4%) 340(0.1%) ormap ...et/collects/racket/private/map.rkt:141:13 flag-set? [150] 49.5% curried [152] 32.7% ------------------------------------------------------------------------------------------ for-loop [285] 38.5% expand-capturing-lifts [125] 61.5% [140] 1562(0.3%) 310(0.1%) expand-identifier (unknown source) resolve+shift28 [277] 80.2% ------------------------------------------------------------------------------------------ for-loop [131] 100.0% [141] 322(0.1%) 322(0.1%) partition ...racket/collects/racket/list.rkt:555:0 ------------------------------------------------------------------------------------------ compile-forms31 [126] 100.0% [142] 320(0.1%) 320(0.1%) serialize-phase-to-link-module-uses ...own source) ------------------------------------------------------------------------------------------ for-loop [132] 100.0% [143] 197220(39.0%) 956(0.2%) for-loop ...ie/develop/src/core/simplify.rkt:99:10 mk-enode! [170] 36.7% substitute-e [155] 20.4% loop! [171] 19.6% merge-egraph-nodes! [156] 19.5% list-member? [270] 3.3% ------------------------------------------------------------------------------------------ for-loop [132] 19.9% for-loop [162] 26.9% for-loop [133] 53.2% [144] 76782(15.2%) 15872(3.1%) match-e ...herbie/develop/src/core/ematch.rkt:46:0 for-loop [154] 66.7% ??? [66] 8.4% variable? [7] 3.9% make-sequence [176] 3.3% ------------------------------------------------------------------------------------------ loop [135] 26.5% argmin [134] 73.5% [145] 61326(12.1%) 3330(0.7%) for-loop .../herbie/develop/src/programs.rkt:169:2 table-ref [214] 66.7% ...velop/src/common.rkt:48:2 [216] 27.9% ------------------------------------------------------------------------------------------ lambda-clause-expander [136] 12.5% for-loop [285] 87.5% [146] 8210(1.6%) 0(0.0%) finish-bodys (unknown source) for-loop [285] 100.0% ------------------------------------------------------------------------------------------ dispatch-transformer41 [138] 100.0% [147] 5224(1.0%) 330(0.1%) apply-transformer52 (unknown source) loop [272] 37.0% apply-post-expansion [158] 31.3% apply-transformer-in-context [159] 25.3% ------------------------------------------------------------------------------------------ loop [135] 15.9% argmin [134] 84.1% [148] 4228(0.8%) 0(0.0%) expression-cost .../develop/src/programs.rkt:168:0 compile [157] 100.0% ------------------------------------------------------------------------------------------ for-loop [137] 100.0% [149] 2186(0.4%) 2186(0.4%) for-loop ...e/develop/src/core/simplify.rkt:171:37 ------------------------------------------------------------------------------------------ ormap [139] 100.0% [150] 946(0.2%) 946(0.2%) flag-set? ...es/herbie/develop/src/config.rkt:33:0 ------------------------------------------------------------------------------------------ for-loop [132] 100.0% [151] 630(0.1%) 0(0.0%) reduce-to-single! ...lop/src/core/egraph.rkt:325:0 for-loop [160] 100.0% ------------------------------------------------------------------------------------------ ormap [139] 100.0% [152] 626(0.1%) 626(0.1%) curried ...cket/collects/racket/function.rkt:71:18 ------------------------------------------------------------------------------------------ for-loop [137] 100.0% [153] 622(0.1%) 622(0.1%) andmap ...t/collects/racket/private/map.rkt:102:13 ------------------------------------------------------------------------------------------ match-e [144] 100.0% [154] 61524(12.2%) 20948(4.1%) for-loop ...rbie/develop/src/core/ematch.rkt:59:11 for-loop [162] 58.5% list-cartesian-product [166] 9.3% loop [161] 3.0% filter [244] 0.8% foldl [181] 0.3% ------------------------------------------------------------------------------------------ for-loop [163] 5.5% for-loop [143] 94.5% [155] 40196(7.9%) 946(0.2%) substitute-e ...e/develop/src/core/ematch.rkt:71:0 for-loop [163] 96.1% ??? [66] 1.7% variable? [7] 0.6% ------------------------------------------------------------------------------------------ for-loop [165] 3.7% for-loop [143] 96.3% [156] 38476(7.6%) 664(0.1%) merge-egraph-nodes! ...p/src/core/egraph.rkt:153:0 update-leader! [164] 69.7% for-loop [165] 24.4% enode-merge! [167] 4.2% ------------------------------------------------------------------------------------------ expression-cost [148] 100.0% [157] 4228(0.8%) 334(0.1%) compile ...s/herbie/develop/src/programs.rkt:145:0 hash-ref! [172] 92.1% ------------------------------------------------------------------------------------------ apply-transformer52 [147] 100.0% [158] 1636(0.3%) 0(0.0%) apply-post-expansion (unknown source) gf [274] 100.0% ------------------------------------------------------------------------------------------ apply-transformer52 [147] 100.0% [159] 1324(0.3%) 646(0.1%) apply-transformer-in-context (unknown source) parse-app [168] 25.8% ??? [169] 25.4% ------------------------------------------------------------------------------------------ reduce-to-single! [151] 100.0% [160] 630(0.1%) 630(0.1%) for-loop ...rbie/develop/src/core/egraph.rkt:326:8 ------------------------------------------------------------------------------------------ make-exacts* [62] 0.0% option-on-expr [173] 0.0% ??? [194] 0.4% map [93] 0.4% loop [60] 0.4% for-loop [154] 1.2% parse-loop14 [61] 1.2% loop! [171] 9.0% f8 [87] 17.8% loop [161] 68.9% [161] 81710(16.2%) 3222(0.6%) loop ...cket/collects/racket/private/map.rkt:40:19 loop [161] 68.9% option-on-expr [173] 17.8% loop! [171] 8.3% parse-loop14 [61] 1.2% set-precompute! [8] 0.5% ??? [86] 0.5% hash-ref! [172] 0.5% f8 [87] 0.4% foldl [181] 0.4% bf* [177] 0.0% ??? [90] 0.0% ??? [222] 0.0% ------------------------------------------------------------------------------------------ for-loop [154] 100.0% [162] 42164(8.3%) 3250(0.6%) for-loop ...rbie/develop/src/core/ematch.rkt:65:37 match-e [144] 88.2% ??? [178] 4.1% ------------------------------------------------------------------------------------------ substitute-e [155] 100.0% [163] 39896(7.9%) 598(0.1%) for-loop ...rbie/develop/src/core/ematch.rkt:80:24 mk-enode! [170] 90.5% substitute-e [155] 8.8% ------------------------------------------------------------------------------------------ merge-egraph-nodes! [156] 100.0% [164] 27286(5.4%) 616(0.1%) update-leader! ...evelop/src/core/egraph.rkt:218:0 for-loop [174] 59.7% for-loop [175] 35.8% make-sequence [176] 1.1% ------------------------------------------------------------------------------------------ merge-egraph-nodes! [156] 100.0% [165] 9848(1.9%) 0(0.0%) for-loop ...bie/develop/src/core/egraph.rkt:201:10 loop! [171] 81.0% merge-egraph-nodes! [156] 19.0% ------------------------------------------------------------------------------------------ list-cartesian-product [166] 32.7% for-loop [154] 67.3% [166] 7288(1.4%) 6278(1.2%) list-cartesian-product ...src/core/ematch.rkt:20:0 list-cartesian-product [166] 32.7% for-loop [179] 11.4% ------------------------------------------------------------------------------------------ merge-egraph-nodes! [156] 100.0% [167] 1614(0.3%) 310(0.1%) enode-merge! ...e/develop/src/core/enode.rkt:127:0 adopt-enode! [180] 59.2% custom-set-intersect! [182] 21.6% ------------------------------------------------------------------------------------------ apply-transformer-in-context [159] 100.0% [168] 342(0.1%) 342(0.1%) parse-app ...collects/racket/private/kw.rkt:1105:2 ------------------------------------------------------------------------------------------ apply-transformer-in-context [159] 100.0% [169] 336(0.1%) 0(0.0%) ??? ...collects/racket/private/qq-and-or.rkt:155:9 ??? [183] 100.0% ------------------------------------------------------------------------------------------ mk-egraph [116] 0.6% mk-enode-rec! [128] 1.4% for-loop [163] 32.6% for-loop [143] 65.3% [170] 110640(21.9%) 4544(0.9%) mk-enode! ...bie/develop/src/core/egraph.rkt:102:0 new-enode [184] 89.8% for-loop [193] 4.3% hash-has-key? [191] 1.4% ------------------------------------------------------------------------------------------ for-loop [165] 13.1% loop [161] 30.5% for-loop [143] 56.5% [171] 47660(9.4%) 9378(1.9%) loop! ...s/herbie/develop/src/core/enode.rkt:190:2 loop [161] 34.5% custom-set-union [185] 32.2% set [202] 13.7% update-en-expr [233] 7.5% ------------------------------------------------------------------------------------------ for-loop [41] 0.3% for-loop [30] 0.6% first-nonzero-exp [31] 0.9% simplify* [104] 1.2% eval-prog [85] 1.5% loop [161] 2.0% ??? [37] 2.3% ??? [186] 2.5% loop [46] 2.6% for-loop [69] 3.7% taylor-sqrt [45] 3.8% compile [157] 5.9% ??? [194] 7.0% loop [22] 7.9% for-loop [23] 8.1% for-loop [24] 8.1% ??? [187] 8.6% ??? [90] 10.5% for-loop [21] 18.4% [172] 30002(5.9%) 4266(0.8%) hash-ref! .../racket/private/more-scheme.rkt:376:2 ??? [3] 19.6% simplify [52] 12.6% ??? [4] 12.3% ??? [186] 10.4% ??? [194] 9.6% ??? [187] 8.6% ??? [5] 8.1% ??? [6] 3.7% parse-loop14 [61] 1.5% taylor [36] 0.9% ??? [12] 0.6% f8 [87] 0.5% bigfloat-hash [199] 0.4% taylor-sqrt [45] 0.3% ------------------------------------------------------------------------------------------ f8 [87] 14.2% loop [161] 85.8% [173] 20786(4.1%) 0(0.0%) option-on-expr ...evelop/src/core/regimes.rkt:83:0 for-loop [189] 45.8% sort-context-on-expr [192] 33.8% pick-errors [195] 7.9% loop [161] 6.2% err-lsts->split-indices [197] 3.2% eval-prog [85] 1.5% ------------------------------------------------------------------------------------------ update-leader! [164] 100.0% [174] 16296(3.2%) 12442(2.5%) for-loop ...rbie/develop/src/core/egraph.rkt:233:6 update-en-expr [233] 23.6% ------------------------------------------------------------------------------------------ update-leader! [164] 100.0% [175] 9760(1.9%) 310(0.1%) for-loop ...rbie/develop/src/core/egraph.rkt:223:6 for-loop [190] 96.8% ------------------------------------------------------------------------------------------ update-leader! [164] 9.7% match-e [144] 90.3% [176] 3136(0.6%) 3136(0.6%) make-sequence ...ects/racket/private/for.rkt:528:2 ------------------------------------------------------------------------------------------ loop [161] 13.2% ??? [91] 86.8% [177] 2260(0.4%) 0(0.0%) bf* ...ath/private/bigfloat/bigfloat-mpfr.rkt:95:0 ??? [188] 100.0% ------------------------------------------------------------------------------------------ for-loop [162] 100.0% [178] 1918(0.4%) 1232(0.2%) ??? ...ies/herbie/develop/src/core/ematch.rkt:50:5 for-loop [196] 35.8% ------------------------------------------------------------------------------------------ list-cartesian-product [166] 100.0% [179] 1010(0.2%) 1010(0.2%) for-loop ...erbie/develop/src/core/ematch.rkt:24:8 ------------------------------------------------------------------------------------------ enode-merge! [167] 100.0% [180] 956(0.2%) 324(0.1%) adopt-enode! ...e/develop/src/core/enode.rkt:103:0 custom-set-union [185] 66.1% ------------------------------------------------------------------------------------------ loop [161] 46.1% for-loop [154] 53.9% [181] 646(0.1%) 0(0.0%) foldl ...et/collects/racket/private/list.rkt:229:4 merge2 [198] 100.0% ------------------------------------------------------------------------------------------ enode-merge! [167] 100.0% [182] 348(0.1%) 348(0.1%) custom-set-intersect! ...ivate/set-types.rkt:269:0 ------------------------------------------------------------------------------------------ ??? [169] 100.0% [183] 336(0.1%) 0(0.0%) ??? ...ollects/racket/private/qq-and-or.rkt:164:21 syntax->list [200] 100.0% ------------------------------------------------------------------------------------------ mk-enode! [170] 100.0% [184] 99404(19.7%) 340(0.1%) new-enode ...erbie/develop/src/core/enode.rkt:95:0 type-of-enode-expr [201] 97.8% set [202] 1.8% ------------------------------------------------------------------------------------------ adopt-enode! [180] 3.8% loop! [171] 96.2% [185] 16758(3.3%) 4144(0.8%) custom-set-union ...et/private/set-types.rkt:168:0 for-loop [203] 58.5% for-loop [207] 16.7% ------------------------------------------------------------------------------------------ hash-ref! [172] 100.0% [186] 15758(3.1%) 0(0.0%) ??? ...es/herbie/develop/src/core/taylor.rkt:67:15 ??? [90] 81.6% hash-ref! [172] 18.4% ------------------------------------------------------------------------------------------ hash-ref! [172] 100.0% [187] 15492(3.1%) 0(0.0%) ??? ...es/herbie/develop/src/core/taylor.rkt:44:15 hash-ref! [172] 100.0% ------------------------------------------------------------------------------------------ bf* [177] 16.3% ??? [91] 83.7% [188] 13900(2.7%) 3610(0.7%) ??? ...-racket/utils/simple-result-arrow.rkt:39:12 bfdiv [205] 64.1% bfcos [208] 9.9% ------------------------------------------------------------------------------------------ option-on-expr [173] 100.0% [189] 9522(1.9%) 0(0.0%) for-loop ...rbie/develop/src/core/regimes.rkt:90:4 errors [82] 100.0% ------------------------------------------------------------------------------------------ for-loop [175] 100.0% [190] 9450(1.9%) 0(0.0%) for-loop ...rbie/develop/src/core/egraph.rkt:224:8 hash-update! [204] 100.0% ------------------------------------------------------------------------------------------ mk-enode! [170] 20.1% ??? [66] 79.9% [191] 7984(1.6%) 3512(0.7%) hash-has-key? ...ket/private/more-scheme.rkt:371:2 ??? [225] 47.4% ??? [230] 8.6% ------------------------------------------------------------------------------------------ option-on-expr [173] 100.0% [192] 7018(1.4%) 0(0.0%) sort-context-on-expr ...evelop/src/points.rkt:90:0 ??? [206] 100.0% ------------------------------------------------------------------------------------------ mk-enode! [170] 100.0% [193] 4760(0.9%) 4760(0.9%) for-loop ...bie/develop/src/core/egraph.rkt:114:10 ------------------------------------------------------------------------------------------ hash-ref! [172] 100.0% [194] 3920(0.8%) 1266(0.3%) ??? ...tlies/herbie/develop/src/programs.rkt:153:5 hash-ref! [172] 77.2% loop [161] 8.8% ------------------------------------------------------------------------------------------ option-on-expr [173] 100.0% [195] 1650(0.3%) 0(0.0%) pick-errors .../develop/src/core/regimes.rkt:202:0 for-loop [209] 62.5% point->alt [210] 37.5% ------------------------------------------------------------------------------------------ ??? [178] 100.0% [196] 686(0.1%) 686(0.1%) for-loop ...erbie/develop/src/core/ematch.rkt:51:7 ------------------------------------------------------------------------------------------ option-on-expr [173] 100.0% [197] 666(0.1%) 0(0.0%) err-lsts->split-indices .../core/regimes.rkt:239:0 for-loop [212] 50.2% loop [213] 49.8% ------------------------------------------------------------------------------------------ foldl [181] 100.0% [198] 646(0.1%) 646(0.1%) merge2 .../herbie/develop/src/core/ematch.rkt:31:0 ------------------------------------------------------------------------------------------ hash-ref! [172] 100.0% [199] 346(0.1%) 0(0.0%) bigfloat-hash ...h/private/bigfloat/mpfr.rkt:167:0 sig+exp->bigfloat [211] 100.0% ------------------------------------------------------------------------------------------ ??? [183] 100.0% [200] 336(0.1%) 0(0.0%) syntax->list (unknown source) loop [272] 100.0% ------------------------------------------------------------------------------------------ new-enode [184] 100.0% [201] 97234(19.2%) 2472(0.5%) type-of-enode-expr ...elop/src/core/enode.rkt:68:0 ??? [215] 47.0% for-loop [240] 23.7% table-ref [214] 18.1% ...velop/src/common.rkt:48:2 [216] 6.0% get/build-late-neg-projection [249] 1.7% ??? [264] 0.3% ------------------------------------------------------------------------------------------ new-enode [184] 12.2% loop! [171] 87.8% [202] 14942(3.0%) 14942(3.0%) set ...collects/racket/private/set-types.rkt:981:0 ------------------------------------------------------------------------------------------ custom-set-union [185] 100.0% [203] 9810(1.9%) 2520(0.5%) for-loop ...cts/racket/private/set-types.rkt:174:3 for-loop [219] 74.3% ------------------------------------------------------------------------------------------ for-loop [190] 100.0% [204] 9450(1.9%) 0(0.0%) hash-update! ...cket/private/more-scheme.rkt:365:4 ??? [217] 100.0% ------------------------------------------------------------------------------------------ ??? [188] 100.0% [205] 8908(1.8%) 292(0.1%) bfdiv ...-lib/math/private/bigfloat/mpfr.rkt:821:4 new-mpfr [218] 69.4% ??? [221] 27.3% ------------------------------------------------------------------------------------------ sort-context-on-expr [192] 100.0% [206] 7018(1.4%) 0(0.0%) ??? ...cket/collects/racket/private/sort.rkt:369:3 generic-sort/key [220] 100.0% ------------------------------------------------------------------------------------------ custom-set-union [185] 100.0% [207] 2804(0.6%) 2804(0.6%) for-loop ...cts/racket/private/set-types.rkt:152:2 ------------------------------------------------------------------------------------------ ??? [188] 100.0% [208] 1382(0.3%) 0(0.0%) bfcos ...-lib/math/private/bigfloat/mpfr.rkt:618:4 new-mpfr [218] 54.3% ??? [221] 45.7% ------------------------------------------------------------------------------------------ pick-errors [195] 100.0% [209] 1032(0.2%) 0(0.0%) for-loop ...bie/develop/src/core/regimes.rkt:204:2 ??? [222] 100.0% ------------------------------------------------------------------------------------------ pick-errors [195] 100.0% [210] 618(0.1%) 0(0.0%) point->alt ...e/develop/src/core/regimes.rkt:189:0 eval-prog [85] 100.0% ------------------------------------------------------------------------------------------ bigfloat-hash [199] 100.0% [211] 346(0.1%) 0(0.0%) sig+exp->bigfloat ...ivate/bigfloat/mpfr.rkt:387:0 new-mpfr [218] 100.0% ------------------------------------------------------------------------------------------ err-lsts->split-indices [197] 100.0% [212] 334(0.1%) 0(0.0%) for-loop ...bie/develop/src/core/regimes.rkt:279:4 map [93] 100.0% ------------------------------------------------------------------------------------------ err-lsts->split-indices [197] 100.0% [213] 332(0.1%) 0(0.0%) loop .../herbie/develop/src/core/regimes.rkt:290:4 for-loop [223] 100.0% ------------------------------------------------------------------------------------------ f8 [87] 5.0% type-of [25] 5.9% type-of-enode-expr [201] 26.8% for-loop [145] 62.3% [214] 65626(13.0%) 17140(3.4%) table-ref ...es/herbie/develop/src/common.rkt:47:0 ??? [225] 64.9% ??? [247] 3.2% return/no-unsupplied [234] 2.5% for-loop [229] 2.4% ??? [230] 0.5% dict? [269] 0.5% ------------------------------------------------------------------------------------------ type-of [25] 14.7% type-of-enode-expr [201] 85.3% [215] 53536(10.6%) 0(0.0%) ??? ...ects/racket/contract/private/hash.rkt:227:4 contract-pos/neg-doubling/proc [224] 100.0% ------------------------------------------------------------------------------------------ f8 [87] 2.7% type-of [25] 5.1% type-of-enode-expr [201] 23.6% for-loop [145] 68.6% [216] 24950(4.9%) 5250(1.0%) ...velop/src/common.rkt:48:2 ...e/arr-i.rkt:918:19 ??? [259] 40.2% ??? [226] 37.4% ------------------------------------------------------------------------------------------ hash-update! [204] 100.0% [217] 9450(1.9%) 636(0.1%) ??? ...s/herbie/develop/src/core/egraph.rkt:226:24 for-loop [227] 93.3% ------------------------------------------------------------------------------------------ sig+exp->bigfloat [211] 3.7% bfcos [208] 7.9% bf [94] 23.0% bfdiv [205] 65.4% [218] 9448(1.9%) 9448(1.9%) new-mpfr ...b/math/private/bigfloat/mpfr.rkt:335:0 ------------------------------------------------------------------------------------------ for-loop [203] 100.0% [219] 7290(1.4%) 7290(1.4%) for-loop ...cts/racket/private/set-types.rkt:178:5 ------------------------------------------------------------------------------------------ ??? [206] 100.0% [220] 7018(1.4%) 0(0.0%) generic-sort/key .../racket/private/sort.rkt:156:2 copying-mergesort [228] 86.5% loop [236] 13.5% ------------------------------------------------------------------------------------------ bf [94] 10.6% ->flonum [101] 10.6% bfcos [208] 16.2% bfdiv [205] 62.6% [221] 3894(0.8%) 3894(0.8%) ??? /home/p92/racket/collects/ffi/unsafe.rkt:898:4 ------------------------------------------------------------------------------------------ loop [161] 23.1% for-loop [209] 76.9% [222] 1342(0.3%) 0(0.0%) ??? ...s/herbie/develop/src/core/regimes.rkt:195:2 ??? [86] 100.0% ------------------------------------------------------------------------------------------ loop [213] 100.0% [223] 332(0.1%) 0(0.0%) for-loop ...bie/develop/src/core/regimes.rkt:255:4 for-loop [231] 100.0% ------------------------------------------------------------------------------------------ ??? [215] 100.0% [224] 53536(10.6%) 47210(9.3%) contract-pos/neg-doubling/proc ...e/guts.rkt:956:0 ??? [235] 10.6% ??? [239] 1.2% ------------------------------------------------------------------------------------------ hash-has-key? [191] 8.2% table-ref [214] 91.8% [225] 46372(9.2%) 14234(2.8%) ??? ...ects/racket/contract/private/list.rkt:798:4 for-loop [232] 49.8% ??? [241] 15.3% successfully-got-the-right-kind-of-function [245] 2.8% arrow-higher-order:lnp [246] 1.4% ------------------------------------------------------------------------------------------ ...velop/src/common.rkt:48:2 [216] 100.0% [226] 9340(1.8%) 4724(0.9%) ??? ...s/racket/contract/private/arr-i.rkt:1286:39 return/no-unsupplied [234] 28.4% assoc-ref [238] 10.2% ??? [262] 7.0% ??? [237] 3.9% ------------------------------------------------------------------------------------------ ??? [217] 100.0% [227] 8814(1.7%) 6584(1.3%) for-loop ...bie/develop/src/core/egraph.rkt:227:26 update-en-expr [233] 25.3% ------------------------------------------------------------------------------------------ copying-mergesort [228] 48.6% generic-sort/key [220] 51.4% [228] 6074(1.2%) 0(0.0%) copying-mergesort ...racket/private/sort.rkt:129:8 copying-mergesort [228] 48.6% loop [236] 41.1% jloop [11] 10.3% ------------------------------------------------------------------------------------------ table-ref [214] 100.0% [229] 1572(0.3%) 1572(0.3%) for-loop ...ies/herbie/develop/src/common.rkt:53:4 ------------------------------------------------------------------------------------------ table-ref [214] 32.0% hash-has-key? [191] 68.0% [230] 1006(0.2%) 1006(0.2%) ??? ...ects/racket/contract/private/hash.rkt:283:7 ------------------------------------------------------------------------------------------ for-loop [223] 100.0% [231] 332(0.1%) 332(0.1%) for-loop ...bie/develop/src/core/regimes.rkt:259:8 ------------------------------------------------------------------------------------------ ??? [225] 100.0% [232] 23110(4.6%) 7598(1.5%) for-loop ...acket/contract/private/list.rkt:804:12 ??? [241] 32.2% for-loop [240] 28.2% ??? [264] 4.1% successfully-got-the-right-kind-of-function [245] 1.3% arrow-higher-order:lnp [246] 1.3% ------------------------------------------------------------------------------------------ for-loop [227] 16.9% for-loop [174] 29.2% loop! [171] 53.9% [233] 13192(2.6%) 5886(1.2%) update-en-expr ...evelop/src/core/egraph.rkt:212:0 for-loop [242] 55.4% ------------------------------------------------------------------------------------------ for-loop [78] 4.8% ??? [102] 4.8% simplify* [104] 10.2% ->flonum [101] 14.8% table-ref [214] 24.9% ??? [226] 40.6% [234] 6524(1.3%) 5260(1.0%) return/no-unsupplied ...ct/private/arr-i.rkt:534:0 filter [244] 19.4% ------------------------------------------------------------------------------------------ contract-pos/neg-doubling/proc [224] 100.0% [235] 5658(1.1%) 302(0.1%) ??? ...ects/racket/contract/private/list.rkt:191:2 ??? [243] 94.7% ------------------------------------------------------------------------------------------ generic-sort/key [220] 20.9% copying-mergesort [228] 79.1% [236] 4506(0.9%) 0(0.0%) loop ...ket/collects/racket/private/sort.rkt:96:12 ??? [86] 100.0% ------------------------------------------------------------------------------------------ debug7 [63] 18.8% ->flonum [101] 19.9% ??? [226] 22.0% ??? [102] 39.3% [237] 1638(0.3%) 1638(0.3%) ??? ...s/racket/contract/private/arr-i.rkt:1252:29 ------------------------------------------------------------------------------------------ ??? [226] 100.0% [238] 956(0.2%) 956(0.2%) assoc-ref ...collects/racket/private/dict.rkt:56:0 ------------------------------------------------------------------------------------------ contract-pos/neg-doubling/proc [224] 100.0% [239] 668(0.1%) 0(0.0%) ??? ...cts/racket/contract/private/guts.rkt:954:34 blame-add-context7 [251] 100.0% ------------------------------------------------------------------------------------------ type-of [25] 8.8% for-loop [232] 20.1% type-of-enode-expr [201] 71.1% [240] 32428(6.4%) 1940(0.4%) for-loop ...racket/contract/private/hash.rkt:277:6 ??? [247] 92.1% ??? [260] 1.9% ------------------------------------------------------------------------------------------ ??? [225] 48.9% for-loop [232] 51.1% [241] 14550(2.9%) 6822(1.3%) ??? ...private/unconstrained-domain-arrow.rkt:74:4 make-keyword-procedure [248] 46.4% loop [250] 6.7% ------------------------------------------------------------------------------------------ update-en-expr [233] 100.0% [242] 7306(1.4%) 7306(1.4%) for-loop ...rbie/develop/src/core/egraph.rkt:214:6 ------------------------------------------------------------------------------------------ ??? [235] 100.0% [243] 5356(1.1%) 936(0.2%) ??? ...ects/racket/contract/private/list.rkt:739:5 get/build-late-neg-projection [249] 76.7% blame-add-context7 [251] 5.8% ------------------------------------------------------------------------------------------ for-loop [154] 43.5% return/no-unsupplied [234] 56.5% [244] 2236(0.4%) 2236(0.4%) filter ...t/collects/racket/private/list.rkt:256:2 ------------------------------------------------------------------------------------------ for-loop [232] 19.0% ??? [225] 81.0% [245] 1582(0.3%) 950(0.2%) successfully-got-the-right-kind-of-function ...5:4 arity-checking-wrapper [252] 39.9% ------------------------------------------------------------------------------------------ for-loop [232] 32.1% ??? [225] 67.9% [246] 934(0.2%) 610(0.1%) arrow-higher-order:lnp ...w-higher-order.rkt:633:7 ??? [253] 34.7% ------------------------------------------------------------------------------------------ ...higher-order.rkt:361:33 [109] 2.0% table-ref [214] 5.1% ??? [259] 20.3% for-loop [240] 72.6% [247] 41176(8.1%) 4372(0.9%) ??? ...cts/racket/contract/private/list.rkt:209:10 ??? [254] 71.1% for-loop [255] 10.4% ??? [259] 7.8% ------------------------------------------------------------------------------------------ ??? [241] 100.0% [248] 6750(1.3%) 6750(1.3%) make-keyword-procedure ...ket/private/kw.rkt:407:4 ------------------------------------------------------------------------------------------ type-of [25] 5.4% ??? [257] 10.6% type-of-enode-expr [201] 16.1% ??? [243] 67.9% [249] 6054(1.2%) 2572(0.5%) get/build-late-neg-projection ...te/guts.rkt:793:0 ??? [256] 49.3% ??? [257] 16.1% ------------------------------------------------------------------------------------------ loop [250] 37.7% ??? [241] 62.3% [250] 978(0.2%) 978(0.2%) loop ...ts/racket/contract/private/blame.rkt:320:2 loop [250] 37.7% ------------------------------------------------------------------------------------------ ??? [243] 31.7% ??? [239] 68.3% [251] 978(0.2%) 978(0.2%) blame-add-context7 ...ract/private/blame.rkt:165:0 ------------------------------------------------------------------------------------------ successfully-got-the-right-kind-of-function [245]100.0% [252] 632(0.1%) 0(0.0%) arity-checking-wrapper ...w-higher-order.rkt:425:0 matches-arity-exactly? [258] 100.0% ------------------------------------------------------------------------------------------ arrow-higher-order:lnp [246] 100.0% [253] 324(0.1%) 324(0.1%) ??? ...et/contract/private/arity-checking.rkt:19:2 ------------------------------------------------------------------------------------------ ??? [247] 100.0% [254] 29280(5.8%) 320(0.1%) ??? ...ects/racket/contract/private/list.rkt:747:7 ??? [262] 86.7% ??? [260] 12.2% ------------------------------------------------------------------------------------------ ??? [247] 100.0% [255] 4298(0.8%) 1700(0.3%) for-loop ...acket/contract/private/list.rkt:212:15 ??? [259] 60.4% ------------------------------------------------------------------------------------------ get/build-late-neg-projection [249] 100.0% [256] 3148(0.6%) 300(0.1%) ??? ...cts/racket/contract/private/prop.rkt:344:12 build-compound-type-name [261] 90.5% ------------------------------------------------------------------------------------------ get/build-late-neg-projection [249] 100.0% [257] 1620(0.3%) 334(0.1%) ??? ...ects/racket/contract/private/hash.rkt:221:2 get/build-late-neg-projection [249] 79.4% ------------------------------------------------------------------------------------------ arity-checking-wrapper [252] 100.0% [258] 632(0.1%) 632(0.1%) matches-arity-exactly? ...te/arrow-common.rkt:70:0 ------------------------------------------------------------------------------------------ for-loop [255] 13.0% ??? [247] 16.1% ...velop/src/common.rkt:48:2 [216] 71.0% [259] 10030(2.0%) 1616(0.3%) ??? ...ects/racket/contract/private/list.rkt:367:4 ??? [247] 54.4% ??? [262] 22.6% ??? [264] 13.2% ------------------------------------------------------------------------------------------ for-loop [240] 9.2% ??? [91] 36.5% ??? [254] 54.3% [260] 6596(1.3%) 2402(0.5%) ??? ...ects/racket/contract/private/prop.rkt:519:4 ??? [263] 63.6% ------------------------------------------------------------------------------------------ contract-struct-name [265] 17.0% ??? [256] 83.0% [261] 2848(0.6%) 2228(0.4%) build-compound-type-name ...private/guts.rkt:515:0 contract-struct-name [265] 38.7% ------------------------------------------------------------------------------------------ ??? [226] 2.1% ??? [66] 3.1% ??? [259] 14.4% ??? [254] 80.5% [262] 31538(6.2%) 27000(5.3%) ??? ...ects/racket/contract/private/guts.rkt:746:8 contract? [266] 12.3% dict? [269] 2.1% ------------------------------------------------------------------------------------------ ??? [260] 100.0% [263] 4194(0.8%) 612(0.1%) ??? ...lects/racket/contract/private/orc.rkt:83:14 ??? [267] 85.4% ------------------------------------------------------------------------------------------ type-of-enode-expr [201] 12.9% for-loop [232] 36.3% ??? [259] 50.8% [264] 2608(0.5%) 1004(0.2%) ??? ...ects/racket/contract/private/hash.rkt:236:9 check-hash/c [268] 61.5% ------------------------------------------------------------------------------------------ build-compound-type-name [261] 100.0% [265] 1586(0.3%) 620(0.1%) contract-struct-name ...ract/private/prop.rkt:87:0 build-compound-type-name [261] 60.9% ------------------------------------------------------------------------------------------ ??? [262] 100.0% [266] 3886(0.8%) 3886(0.8%) contract? ...acket/contract/private/guts.rkt:118:0 ------------------------------------------------------------------------------------------ ??? [263] 100.0% [267] 3582(0.7%) 2914(0.6%) ??? ...ects/racket/contract/private/list.rkt:163:5 list-member? [270] 18.6% ------------------------------------------------------------------------------------------ ??? [264] 100.0% [268] 1604(0.3%) 336(0.1%) check-hash/c ...ket/contract/private/hash.rkt:83:0 flat-contract? [271] 79.1% ------------------------------------------------------------------------------------------ table-ref [214] 31.7% ??? [262] 68.3% [269] 954(0.2%) 954(0.2%) dict? ...ollects/racket/private/generic.rkt:146:11 ------------------------------------------------------------------------------------------ ??? [267] 9.3% for-loop [143] 90.7% [270] 7214(1.4%) 972(0.2%) list-member? ...llects/racket/private/set.rkt:24:0 member [273] 43.4% loop [272] 43.2% ------------------------------------------------------------------------------------------ check-hash/c [268] 100.0% [271] 1268(0.3%) 1268(0.3%) flat-contract? .../contract/private/guts.rkt:122:0 ------------------------------------------------------------------------------------------ syntax->list [200] 0.8% parse-loop14 [61] 1.1% temp74_0 [100] 1.2% eval-prog [85] 1.4% loop [272] 4.0% lambda-clause-expander [136] 4.3% expand-capturing-lifts [125] 4.7% gf [274] 5.0% apply-transformer52 [147] 12.8% for-loop [285] 13.1% list-member? [270] 22.3% syntax-e/no-taint [28] 29.2% [272] 13940(2.8%) 6008(1.2%) loop (unknown source) gf [274] 32.9% expand-id-application-form17 [275] 10.8% core-form-sym [276] 7.0% syntax-e [9] 4.3% loop [272] 4.0% expand-capturing-lifts [125] 3.7% dispatch-transformer41 [138] 3.2% ------------------------------------------------------------------------------------------ list-member? [270] 100.0% [273] 3128(0.6%) 3128(0.6%) member (unknown source) ------------------------------------------------------------------------------------------ add-ns-scopes [96] 2.3% apply-post-expansion [158] 10.7% loop [272] 87.0% [274] 6234(1.2%) 1292(0.3%) gf (unknown source) propagation-merge [278] 22.4% loop [272] 16.9% propagation-apply-shifted [279] 15.6% cache-or-reuse-set [280] 15.4% syntax-e/no-taint [28] 10.7% propagation-apply [282] 10.1% ------------------------------------------------------------------------------------------ expand-capturing-lifts [125] 14.2% loop [272] 85.8% [275] 2318(0.5%) 0(0.0%) expand-id-application-form17 (unknown source) resolve+shift28 [277] 44.7% syntax-e/no-taint [28] 41.1% binding-lookup50 [281] 14.2% ------------------------------------------------------------------------------------------ loop [272] 100.0% [276] 978(0.2%) 310(0.1%) core-form-sym (unknown source) resolve+shift28 [277] 68.3% ------------------------------------------------------------------------------------------ core-form-sym [276] 12.7% expand-id-application-form17 [275] 19.7% expand-identifier [140] 23.7% expand-implicit [10] 43.9% [277] 5272(1.0%) 672(0.1%) resolve+shift28 (unknown source) fallback-loop [283] 81.3% apply-syntax-shifts [284] 6.0% ------------------------------------------------------------------------------------------ gf [274] 100.0% [278] 1394(0.3%) 1394(0.3%) propagation-merge (unknown source) ------------------------------------------------------------------------------------------ gf [274] 100.0% [279] 972(0.2%) 972(0.2%) propagation-apply-shifted (unknown source) ------------------------------------------------------------------------------------------ gf [274] 100.0% [280] 962(0.2%) 962(0.2%) cache-or-reuse-set (unknown source) ------------------------------------------------------------------------------------------ expand-id-application-form17 [275] 49.4% expand-implicit [10] 50.6% [281] 668(0.1%) 668(0.1%) binding-lookup50 (unknown source) ------------------------------------------------------------------------------------------ gf [274] 100.0% [282] 630(0.1%) 630(0.1%) propagation-apply (unknown source) ------------------------------------------------------------------------------------------ resolve+shift28 [277] 100.0% [283] 4286(0.8%) 636(0.1%) fallback-loop (unknown source) for-loop [285] 85.2% ------------------------------------------------------------------------------------------ resolve+shift28 [277] 100.0% [284] 314(0.1%) 314(0.1%) apply-syntax-shifts (unknown source) ------------------------------------------------------------------------------------------ fallback-loop [283] 6.9% expand-capturing-lifts [125] 7.2% for-loop [285] 7.7% compile-forms31 [126] 20.4% finish-bodys [146] 57.7% [285] 12810(2.5%) 6620(1.3%) for-loop (unknown source) finish-bodys [146] 52.1% for-loop [285] 7.7% syntax-e [9] 5.0% expand-implicit [10] 3.4% dispatch-transformer41 [138] 2.8% loop [272] 1.0% expand-identifier [140] 0.4% ------------------------------------------------------------------------------------------