Profiling results ----------------- Total cpu time observed: 452738ms (out of 454056ms) Number of samples taken: 1400 (once every 323ms) (Hiding functions with self<1.0% and local<2.0%: 12 of 295 hidden) ========================================================================================== Caller Idx Total Self Name+src Local% ms(pct) ms(pct) Callee ========================================================================================== run [32] 50.0% [1] 452738(100.0%) 0(0.0%) ??? ...lects/racket/private/more-scheme.rkt:261:28 profile-thunk16 [17] 50.0% run-improve39 [18] 48.0% prepare-points [43] 1.6% get-final-combination [24] 0.4% loop [30] 0.0% ------------------------------------------------------------------------------------------ free-variables [101] 2.7% substitute-e [171] 9.5% for-loop [153] 16.3% match-e [160] 71.5% [2] 13282(2.9%) 318(0.1%) variable? .../no-costs/src/syntax/syntax.rkt:711:0 ??? [62] 97.6% ------------------------------------------------------------------------------------------ ??? [119] 100.0% [3] 12006(2.7%) 0(0.0%) approximate9 .../no-costs/src/core/taylor.rkt:12:0 loop [19] 80.6% for-loop [29] 16.6% taylor [36] 2.7% ------------------------------------------------------------------------------------------ hash-ref! [128] 100.0% [4] 9338(2.1%) 0(0.0%) ??? ...s/herbie/no-costs/src/core/taylor.rkt:44:15 hash-ref! [128] 86.2% ??? [37] 13.8% ------------------------------------------------------------------------------------------ hash-ref! [128] 100.0% [5] 8740(1.9%) 0(0.0%) ??? .../herbie/no-costs/src/core/taylor.rkt:295:23 for-loop [20] 100.0% ------------------------------------------------------------------------------------------ hash-ref! [128] 100.0% [6] 5170(1.1%) 0(0.0%) ??? .../herbie/no-costs/src/core/taylor.rkt:392:23 for-loop [23] 100.0% ------------------------------------------------------------------------------------------ loop [201] 25.9% for-loop [237] 74.1% [7] 4942(1.1%) 0(0.0%) syntax-e (unknown source) syntax-e/no-taint [22] 100.0% ------------------------------------------------------------------------------------------ map-enodes [149] 8.6% loop [198] 91.4% [8] 3818(0.8%) 0(0.0%) set-precompute! ...sts/src/core/simplify.rkt:140:0 for-loop [25] 91.9% make-sequence [203] 8.1% ------------------------------------------------------------------------------------------ hash-ref! [128] 100.0% [9] 3570(0.8%) 648(0.1%) ??? .../herbie/no-costs/src/core/taylor.rkt:322:33 hash-ref! [128] 49.7% simplify [64] 36.4% ------------------------------------------------------------------------------------------ hash-ref! [128] 100.0% [10] 2884(0.6%) 0(0.0%) ??? .../herbie/no-costs/src/core/taylor.rkt:483:23 for-loop [27] 100.0% ------------------------------------------------------------------------------------------ hash-ref! [128] 100.0% [11] 2550(0.6%) 0(0.0%) ??? .../herbie/no-costs/src/core/taylor.rkt:285:26 for-loop [28] 100.0% ------------------------------------------------------------------------------------------ f67 [117] 100.0% [12] 1326(0.3%) 0(0.0%) loop ...s/herbie/no-costs/src/core/reduce.rkt:18:2 type-of [21] 100.0% ------------------------------------------------------------------------------------------ for-loop [237] 100.0% [13] 962(0.2%) 0(0.0%) expand-identifier (unknown source) resolve+shift28 [26] 100.0% ------------------------------------------------------------------------------------------ for-loop [237] 100.0% [14] 896(0.2%) 0(0.0%) expand-implicit (unknown source) resolve+shift28 [26] 100.0% ------------------------------------------------------------------------------------------ copying-mergesort [98] 100.0% [15] 652(0.1%) 0(0.0%) jloop ...t/collects/racket/private/sort.rkt:120:23 ??? [119] 50.3% ??? [115] 49.7% ------------------------------------------------------------------------------------------ for-loop [237] 100.0% [16] 142(0.0%) 0(0.0%) [running body] ...h/private/bigfloat/mpfr.rkt":##f loop [31] 100.0% ------------------------------------------------------------------------------------------ ??? [1] 100.0% [17] 452738(100.0%) 0(0.0%) profile-thunk16 ...e/pkgs/profile-lib/main.rkt:9:0 run [32] 100.0% ------------------------------------------------------------------------------------------ ??? [1] 100.0% [18] 434228(95.9%) 0(0.0%) run-improve39 ...e/no-costs/src/mainloop.rkt:284:0 for-loop [33] 99.4% setup-prog!32 [39] 0.2% ------------------------------------------------------------------------------------------ approximate9 [3] 100.0% [19] 9680(2.1%) 0(0.0%) loop ...s/herbie/no-costs/src/core/taylor.rkt:86:4 hash-ref! [128] 74.2% ??? [119] 25.8% ------------------------------------------------------------------------------------------ ??? [5] 100.0% [20] 8740(1.9%) 0(0.0%) for-loop ...ie/no-costs/src/core/taylor.rkt:298:27 hash-ref! [128] 98.9% ??? [37] 1.1% ------------------------------------------------------------------------------------------ loop [12] 21.1% for-loop [96] 78.9% [21] 6282(1.4%) 0(0.0%) type-of ...herbie/no-costs/src/type-check.rkt:34:0 table-ref [219] 31.0% ??? [217] 28.4% for-loop [255] 25.7% ...costs/src/common.rkt:48:2 [222] 9.7% ??? [251] 5.1% ------------------------------------------------------------------------------------------ gf [211] 4.9% expand-id-application-form17 [213] 15.4% syntax-e [7] 79.7% [22] 6198(1.4%) 0(0.0%) syntax-e/no-taint (unknown source) loop [201] 100.0% ------------------------------------------------------------------------------------------ ??? [6] 100.0% [23] 5170(1.1%) 0(0.0%) for-loop ...ie/no-costs/src/core/taylor.rkt:396:33 hash-ref! [128] 100.0% ------------------------------------------------------------------------------------------ ??? [1] 100.0% [24] 3860(0.9%) 0(0.0%) get-final-combination ...ts/src/mainloop.rkt:307:0 infer-splitpoints [34] 100.0% ------------------------------------------------------------------------------------------ set-precompute! [8] 100.0% [25] 3508(0.8%) 322(0.1%) for-loop ...e/no-costs/src/core/simplify.rkt:142:2 setfindf [38] 45.1% eval-const-expr [40] 26.9% ??? [115] 9.4% compose [100] 9.4% ------------------------------------------------------------------------------------------ core-form-sym [216] 10.3% free-identifier=? [144] 10.3% expand-id-application-form17 [213] 21.1% expand-implicit [14] 28.1% expand-identifier [13] 30.2% [26] 3188(0.7%) 328(0.1%) resolve+shift28 (unknown source) fallback-loop [35] 89.7% ------------------------------------------------------------------------------------------ ??? [10] 100.0% [27] 2884(0.6%) 0(0.0%) for-loop ...ie/no-costs/src/core/taylor.rkt:487:35 parse-loop14 [95] 100.0% ------------------------------------------------------------------------------------------ ??? [11] 100.0% [28] 2550(0.6%) 0(0.0%) for-loop ...ie/no-costs/src/core/taylor.rkt:285:52 hash-ref! [128] 75.1% ??? [37] 24.9% ------------------------------------------------------------------------------------------ approximate9 [3] 100.0% [29] 1998(0.4%) 0(0.0%) for-loop ...bie/no-costs/src/core/taylor.rkt:29:18 taylor [36] 100.0% ------------------------------------------------------------------------------------------ ??? [1] 100.0% [30] 336(0.1%) 0(0.0%) loop ...tlies/herbie/no-costs/src/points.rkt:180:2 make-exacts* [65] 100.0% ------------------------------------------------------------------------------------------ [running body] [16] 100.0% [31] 142(0.0%) 0(0.0%) loop ...ket/collects/racket/private/list.rkt:82:16 free-identifier=?17 [41] 100.0% ------------------------------------------------------------------------------------------ profile-thunk16 [17] 100.0% [32] 452738(100.0%) 0(0.0%) run ...racket/share/pkgs/profile-lib/main.rkt:39:2 ??? [1] 100.0% ------------------------------------------------------------------------------------------ run-improve39 [18] 100.0% [33] 431628(95.3%) 0(0.0%) for-loop ...herbie/no-costs/src/mainloop.rkt:301:8 run-iter! [42] 100.0% ------------------------------------------------------------------------------------------ get-final-combination [24] 100.0% [34] 3860(0.9%) 0(0.0%) infer-splitpoints ...sts/src/core/regimes.rkt:21:0 for-loop [44] 100.0% ------------------------------------------------------------------------------------------ resolve+shift28 [26] 100.0% [35] 2860(0.6%) 640(0.1%) fallback-loop (unknown source) for-loop [237] 77.6% ------------------------------------------------------------------------------------------ map [210] 1.8% hash-ref! [128] 1.8% approximate9 [3] 4.1% for-loop [29] 38.0% taylor [36] 54.3% [36] 2668(0.6%) 340(0.1%) taylor ...erbie/no-costs/src/core/taylor.rkt:163:0 taylor [36] 54.3% loop [45] 25.0% map [210] 4.3% taylor-invert [46] 1.9% loop [198] 1.8% ------------------------------------------------------------------------------------------ for-loop [20] 15.8% for-loop [28] 24.8% ??? [4] 59.4% [37] 1900(0.4%) 0(0.0%) ??? .../herbie/no-costs/src/core/taylor.rkt:288:19 hash-ref! [128] 100.0% ------------------------------------------------------------------------------------------ for-loop [25] 100.0% [38] 1582(0.3%) 642(0.1%) setfindf ...s/herbie/no-costs/src/common.rkt:176:0 for-loop [47] 39.8% make-sequence [203] 19.6% ------------------------------------------------------------------------------------------ run-improve39 [18] 100.0% [39] 1044(0.2%) 0(0.0%) setup-prog!32 ...ie/no-costs/src/mainloop.rkt:63:0 prepare-points [43] 100.0% ------------------------------------------------------------------------------------------ for-loop [25] 100.0% [40] 944(0.2%) 0(0.0%) eval-const-expr ...no-costs/src/programs.rkt:132:0 eval-prog [113] 100.0% ------------------------------------------------------------------------------------------ loop [31] 100.0% [41] 142(0.0%) 0(0.0%) free-identifier=?17 (unknown source) force/generic [48] 100.0% ------------------------------------------------------------------------------------------ for-loop [33] 100.0% [42] 431628(95.3%) 0(0.0%) run-iter! ...erbie/no-costs/src/mainloop.rkt:265:0 simplify! [49] 83.9% finalize-iter! [50] 11.0% gen-series! [51] 2.8% gen-rewrites! [52] 1.6% choose-best-alt! [55] 0.5% localize-error [56] 0.2% ------------------------------------------------------------------------------------------ setup-prog!32 [39] 6.8% ??? [1] 93.2% [43] 15358(3.4%) 0(0.0%) prepare-points ...ie/no-costs/src/points.rkt:156:0 make-exacts* [65] 43.4% loop [67] 30.8% loop [54] 23.7% for-loop [58] 2.1% ------------------------------------------------------------------------------------------ infer-splitpoints [34] 100.0% [44] 3860(0.9%) 0(0.0%) for-loop ...bie/no-costs/src/core/regimes.rkt:33:6 option-on-expr [53] 100.0% ------------------------------------------------------------------------------------------ taylor [36] 100.0% [45] 1312(0.3%) 0(0.0%) loop .../herbie/no-costs/src/core/taylor.rkt:262:2 hash-ref! [128] 100.0% ------------------------------------------------------------------------------------------ map [210] 48.4% taylor [36] 51.6% [46] 674(0.1%) 0(0.0%) taylor-invert ...o-costs/src/core/taylor.rkt:312:0 first-nonzero-exp [57] 100.0% ------------------------------------------------------------------------------------------ setfindf [38] 100.0% [47] 630(0.1%) 334(0.1%) for-loop ...s/herbie/no-costs/src/common.rkt:177:2 ??? [62] 47.0% ------------------------------------------------------------------------------------------ make-expand-context10 [59] 50.0% free-identifier=?17 [41] 50.0% [48] 142(0.0%) 0(0.0%) force/generic (unknown source) make-expand-context10 [59] 50.0% ...nder/eval/module.rkt:283:39 [60] 50.0% ------------------------------------------------------------------------------------------ run-iter! [42] 100.0% [49] 362312(80.0%) 0(0.0%) simplify! ...erbie/no-costs/src/mainloop.rkt:179:0 for-loop [61] 100.0% ------------------------------------------------------------------------------------------ run-iter! [42] 100.0% [50] 47614(10.5%) 0(0.0%) finalize-iter! .../no-costs/src/mainloop.rkt:219:0 ??? [62] 100.0% ------------------------------------------------------------------------------------------ run-iter! [42] 100.0% [51] 12006(2.7%) 0(0.0%) gen-series! ...bie/no-costs/src/mainloop.rkt:149:0 for-loop [63] 100.0% ------------------------------------------------------------------------------------------ run-iter! [42] 100.0% [52] 6810(1.5%) 0(0.0%) gen-rewrites! ...e/no-costs/src/mainloop.rkt:162:0 for-loop [66] 100.0% ------------------------------------------------------------------------------------------ for-loop [44] 100.0% [53] 3860(0.9%) 0(0.0%) option-on-expr ...-costs/src/core/regimes.rkt:99:0 for-loop [68] 57.6% sort-context-on-expr [69] 33.8% err-lsts->split-indices [70] 8.6% ------------------------------------------------------------------------------------------ prepare-points [43] 100.0% [54] 3638(0.8%) 0(0.0%) loop ...tlies/herbie/no-costs/src/points.rkt:124:2 make-exacts* [65] 60.0% loop [67] 40.0% ------------------------------------------------------------------------------------------ run-iter! [42] 100.0% [55] 1950(0.4%) 0(0.0%) choose-best-alt! ...o-costs/src/mainloop.rkt:111:0 ??? [62] 100.0% ------------------------------------------------------------------------------------------ run-iter! [42] 100.0% [56] 936(0.2%) 0(0.0%) localize-error ...costs/src/core/localize.rkt:47:0 hash-ref! [128] 100.0% ------------------------------------------------------------------------------------------ taylor-invert [46] 100.0% [57] 674(0.1%) 326(0.1%) first-nonzero-exp ...sts/src/core/taylor.rkt:260:0 simplify [64] 51.6% ------------------------------------------------------------------------------------------ prepare-points [43] 100.0% [58] 322(0.1%) 0(0.0%) for-loop .../herbie/no-costs/src/points.rkt:195:19 ??? [71] 100.0% ------------------------------------------------------------------------------------------ force/generic [48] 100.0% [59] 142(0.0%) 0(0.0%) make-expand-context10 (unknown source) force/generic [48] 100.0% ------------------------------------------------------------------------------------------ force/generic [48] 100.0% [60] 142(0.0%) 0(0.0%) ...nder/eval/module.rkt:283:39 (unknown source) root-expand-context-decode-for-module [72] 100.0% ------------------------------------------------------------------------------------------ simplify! [49] 100.0% [61] 362312(80.0%) 0(0.0%) for-loop ...herbie/no-costs/src/mainloop.rkt:183:6 for-loop [73] 99.9% debug-print [83] 0.1% ------------------------------------------------------------------------------------------ for-loop [47] 0.4% for-loop [205] 0.8% choose-best-alt! [55] 2.6% substitute-e [171] 3.4% match-e [160] 12.9% variable? [2] 17.1% finalize-iter! [50] 62.8% [62] 75836(16.8%) 17734(3.9%) ??? ...contract/private/arrow-val-first.rkt:388:18 for-loop [74] 62.8% hash-has-key? [202] 11.3% ??? [77] 2.6% ------------------------------------------------------------------------------------------ gen-series! [51] 100.0% [63] 12006(2.7%) 0(0.0%) for-loop ...herbie/no-costs/src/mainloop.rkt:155:7 taylor-alt [75] 100.0% ------------------------------------------------------------------------------------------ loop [198] 3.2% first-nonzero-exp [57] 3.3% ??? [9] 12.2% hash-ref! [128] 81.4% [64] 10692(2.4%) 0(0.0%) simplify ...rbie/no-costs/src/core/reduce.rkt:16:0 f67 [117] 72.7% simplify* [224] 9.3% parse-loop14 [95] 9.0% simplify-node [79] 6.0% debug7 [81] 3.1% ------------------------------------------------------------------------------------------ loop [30] 3.7% loop [54] 23.7% prepare-points [43] 72.6% [65] 9190(2.0%) 0(0.0%) make-exacts* ...rbie/no-costs/src/points.rkt:104:0 loop [198] 94.6% eval-prog [113] 5.4% ------------------------------------------------------------------------------------------ gen-rewrites! [52] 100.0% [66] 6810(1.5%) 0(0.0%) for-loop ...erbie/no-costs/src/mainloop.rkt:167:11 ??? [76] 100.0% ------------------------------------------------------------------------------------------ loop [54] 23.6% prepare-points [43] 76.4% [67] 6182(1.4%) 0(0.0%) loop ...tlies/herbie/no-costs/src/points.rkt:107:4 loop [198] 100.0% ------------------------------------------------------------------------------------------ option-on-expr [53] 100.0% [68] 2222(0.5%) 0(0.0%) for-loop ...ie/no-costs/src/core/regimes.rkt:107:4 errors [104] 100.0% ------------------------------------------------------------------------------------------ option-on-expr [53] 100.0% [69] 1306(0.3%) 0(0.0%) sort-context-on-expr ...-costs/src/points.rkt:90:0 ??? [78] 100.0% ------------------------------------------------------------------------------------------ option-on-expr [53] 100.0% [70] 332(0.1%) 0(0.0%) err-lsts->split-indices .../core/regimes.rkt:242:0 loop [80] 100.0% ------------------------------------------------------------------------------------------ for-loop [58] 100.0% [71] 322(0.1%) 0(0.0%) ??? ...htlies/herbie/no-costs/src/points.rkt:172:7 for-loop [82] 100.0% ------------------------------------------------------------------------------------------ ...nder/eval/module.rkt:283:39 [60] 100.0% [72] 142(0.0%) 0(0.0%) root-expand-context-decode-for-module ...n source) unpack-defined-syms [84] 100.0% ------------------------------------------------------------------------------------------ for-loop [61] 100.0% [73] 362014(80.0%) 0(0.0%) for-loop ...herbie/no-costs/src/mainloop.rkt:207:8 ??? [119] 99.9% ------------------------------------------------------------------------------------------ ??? [62] 100.0% [74] 47614(10.5%) 0(0.0%) for-loop ...e/no-costs/src/core/alt-table.rkt:51:2 atab-add-altn [85] 100.0% ------------------------------------------------------------------------------------------ for-loop [63] 100.0% [75] 12006(2.7%) 0(0.0%) taylor-alt ...rbie/no-costs/src/mainloop.rkt:134:0 for-loop [86] 100.0% ------------------------------------------------------------------------------------------ for-loop [66] 100.0% [76] 6810(1.5%) 0(0.0%) ??? ...es/herbie/no-costs/src/alternative.rkt:57:0 rewriter [87] 91.1% loop [198] 8.9% ------------------------------------------------------------------------------------------ ??? [62] 100.0% [77] 1950(0.4%) 0(0.0%) ??? ...herbie/no-costs/src/core/alt-table.rkt:54:0 ??? [119] 100.0% ------------------------------------------------------------------------------------------ sort-context-on-expr [69] 100.0% [78] 1306(0.3%) 0(0.0%) ??? ...cket/collects/racket/private/sort.rkt:369:3 generic-sort/key [89] 74.6% loop [108] 25.4% ------------------------------------------------------------------------------------------ for-loop [109] 16.4% map [210] 32.7% simplify [64] 50.9% [79] 954(0.2%) 0(0.0%) simplify-node ...no-costs/src/core/reduce.rkt:50:0 append-map [88] 49.1% gather-additive-terms6 [91] 34.6% gather-multiplicative-terms [92] 16.4% ------------------------------------------------------------------------------------------ err-lsts->split-indices [70] 100.0% [80] 332(0.1%) 0(0.0%) loop ...herbie/no-costs/src/core/regimes.rkt:293:4 for-loop [90] 100.0% ------------------------------------------------------------------------------------------ simplify [64] 100.0% [81] 328(0.1%) 328(0.1%) debug7 ...lies/herbie/no-costs/src/debug.rkt:102:0 ------------------------------------------------------------------------------------------ ??? [71] 100.0% [82] 322(0.1%) 0(0.0%) for-loop ...s/herbie/no-costs/src/points.rkt:173:9 ??? [119] 100.0% ------------------------------------------------------------------------------------------ for-loop [61] 100.0% [83] 298(0.1%) 0(0.0%) debug-print ...herbie/no-costs/src/debug.rkt:107:0 for-loop [93] 100.0% ------------------------------------------------------------------------------------------ root-expand-context-decode-for-module [72] 100.0% [84] 142(0.0%) 0(0.0%) unpack-defined-syms (unknown source) for-loop [237] 100.0% ------------------------------------------------------------------------------------------ for-loop [74] 100.0% [85] 47614(10.5%) 0(0.0%) atab-add-altn ...osts/src/core/alt-table.rkt:208:0 best-and-tied-at-points [94] 96.8% override-at-pnts [97] 3.2% ------------------------------------------------------------------------------------------ taylor-alt [75] 100.0% [86] 12006(2.7%) 0(0.0%) for-loop ...herbie/no-costs/src/mainloop.rkt:140:6 ??? [119] 100.0% ------------------------------------------------------------------------------------------ ??? [76] 35.3% matcher [105] 64.7% [87] 6206(1.4%) 0(0.0%) rewriter ...ie/no-costs/src/core/matcher.rkt:131:2 for-loop [96] 96.2% *rules* [99] 3.8% ------------------------------------------------------------------------------------------ f67 [117] 36.2% simplify-node [79] 63.8% [88] 978(0.2%) 0(0.0%) append-map ...acket/collects/racket/list.rkt:586:2 parse-loop14 [95] 63.8% free-variables [101] 36.2% ------------------------------------------------------------------------------------------ ??? [78] 100.0% [89] 974(0.2%) 0(0.0%) generic-sort/key .../racket/private/sort.rkt:156:2 copying-mergesort [98] 100.0% ------------------------------------------------------------------------------------------ loop [80] 100.0% [90] 332(0.1%) 0(0.0%) for-loop ...ie/no-costs/src/core/regimes.rkt:258:4 for-loop [102] 100.0% ------------------------------------------------------------------------------------------ simplify-node [79] 100.0% [91] 330(0.1%) 0(0.0%) gather-additive-terms6 ...src/core/reduce.rkt:72:0 parse-loop14 [95] 100.0% ------------------------------------------------------------------------------------------ simplify-node [79] 100.0% [92] 312(0.1%) 0(0.0%) gather-multiplicative-terms ...re/reduce.rkt:116:0 compose [100] 100.0% ------------------------------------------------------------------------------------------ debug-print [83] 100.0% [93] 298(0.1%) 0(0.0%) for-loop ...es/herbie/no-costs/src/debug.rkt:113:2 write-proc [103] 100.0% ------------------------------------------------------------------------------------------ atab-add-altn [85] 100.0% [94] 46088(10.2%) 296(0.1%) best-and-tied-at-points ...ore/alt-table.rkt:122:0 errors [104] 97.3% for-loop [107] 2.0% ------------------------------------------------------------------------------------------ loop [198] 1.0% gather-additive-terms6 [91] 2.1% simplify [64] 3.0% append-map [88] 5.9% hash-ref! [128] 11.7% parse-loop14 [95] 11.8% for-loop [27] 28.8% map [210] 35.7% [95] 7978(1.8%) 974(0.2%) parse-loop14 ...s/racket/match/compiler.rkt:418:15 for-loop [106] 28.8% f67 [117] 14.9% loop [198] 12.7% parse-loop14 [95] 11.8% temp68_2 [116] 11.7% for-loop [109] 5.9% loop [110] 2.2% simplify* [224] 2.1% foldr [111] 2.1% eval [123] 0.8% ------------------------------------------------------------------------------------------ rewriter [87] 100.0% [96] 6206(1.4%) 0(0.0%) for-loop ...e/no-costs/src/core/matcher.rkt:134:10 matcher [105] 68.5% type-of [21] 29.1% ??? [276] 2.4% ------------------------------------------------------------------------------------------ atab-add-altn [85] 100.0% [97] 1526(0.3%) 0(0.0%) override-at-pnts ...s/src/core/alt-table.rkt:145:0 errors [104] 100.0% ------------------------------------------------------------------------------------------ generic-sort/key [89] 33.3% copying-mergesort [98] 66.7% [98] 974(0.2%) 0(0.0%) copying-mergesort ...racket/private/sort.rkt:129:8 copying-mergesort [98] 66.7% jloop [15] 16.7% loop [108] 16.5% ------------------------------------------------------------------------------------------ rewriter [87] 100.0% [99] 952(0.2%) 328(0.1%) *rules* ...bie/no-costs/src/syntax/rules.rkt:643:0 for-loop [151] 65.5% ------------------------------------------------------------------------------------------ gather-multiplicative-terms [92] 48.6% for-loop [25] 51.4% [100] 642(0.1%) 642(0.1%) compose ...collects/racket/private/list.rkt:385:12 ------------------------------------------------------------------------------------------ append-map [88] 100.0% [101] 354(0.1%) 0(0.0%) free-variables ...e/no-costs/src/programs.rkt:80:0 variable? [2] 100.0% ------------------------------------------------------------------------------------------ for-loop [90] 100.0% [102] 332(0.1%) 0(0.0%) for-loop ...ie/no-costs/src/core/regimes.rkt:262:8 curried [184] 100.0% ------------------------------------------------------------------------------------------ for-loop [93] 100.0% [103] 298(0.1%) 298(0.1%) write-proc ...ie/no-costs/src/alternative.rkt:20:9 ------------------------------------------------------------------------------------------ override-at-pnts [97] 3.0% ??? [163] 3.9% for-loop [68] 4.4% best-and-tied-at-points [94] 88.7% [104] 50554(11.2%) 0(0.0%) errors ...ies/herbie/no-costs/src/points.rkt:203:0 for-loop [112] 74.2% eval-prog [113] 25.1% ------------------------------------------------------------------------------------------ for-loop [114] 50.0% for-loop [96] 50.0% [105] 6206(1.4%) 0(0.0%) matcher ...bie/no-costs/src/core/matcher.rkt:168:2 for-loop [114] 50.0% rewriter [87] 50.0% ------------------------------------------------------------------------------------------ parse-loop14 [95] 100.0% [106] 2884(0.6%) 0(0.0%) for-loop ...ie/no-costs/src/core/taylor.rkt:490:59 hash-ref! [128] 100.0% ------------------------------------------------------------------------------------------ best-and-tied-at-points [94] 100.0% [107] 936(0.2%) 936(0.2%) for-loop ...no-costs/src/core/alt-table.rkt:124:16 ------------------------------------------------------------------------------------------ copying-mergesort [98] 49.2% ??? [78] 50.8% [108] 654(0.1%) 0(0.0%) loop ...ket/collects/racket/private/sort.rkt:96:12 ??? [115] 100.0% ------------------------------------------------------------------------------------------ parse-loop14 [95] 100.0% [109] 624(0.1%) 0(0.0%) for-loop ...bie/no-costs/src/core/reduce.rkt:99:13 simplify-node [79] 50.0% make-multiplication-node [229] 50.0% ------------------------------------------------------------------------------------------ parse-loop14 [95] 1.4% loop [110] 98.6% [110] 344(0.1%) 344(0.1%) loop ...cket/collects/racket/private/map.rkt:54:19 loop [110] 98.6% ------------------------------------------------------------------------------------------ parse-loop14 [95] 100.0% [111] 330(0.1%) 330(0.1%) foldr ...et/collects/racket/private/list.rkt:242:4 ------------------------------------------------------------------------------------------ errors [104] 100.0% [112] 37532(8.3%) 1944(0.4%) for-loop ...s/herbie/no-costs/src/points.rkt:206:4 ??? [115] 88.6% ulp-difference [118] 3.6% ??? [119] 2.6% ------------------------------------------------------------------------------------------ make-exacts* [65] 3.5% eval-const-expr [40] 6.7% errors [104] 89.8% [113] 14136(3.1%) 0(0.0%) eval-prog ...erbie/no-costs/src/programs.rkt:109:0 temp68_2 [116] 75.1% f67 [117] 20.2% loop [201] 2.4% eval [123] 2.3% ------------------------------------------------------------------------------------------ matcher [105] 100.0% [114] 6206(1.4%) 0(0.0%) for-loop ...e/no-costs/src/core/matcher.rkt:184:21 matcher [105] 100.0% ------------------------------------------------------------------------------------------ jloop [15] 0.7% for-loop [25] 0.7% loop [108] 1.4% loop [198] 27.9% for-loop [112] 69.4% [115] 47940(10.6%) 3292(0.7%) ??? ...lies/herbie/no-costs/src/programs.rkt:129:2 ??? [120] 67.5% ??? [119] 15.3% bf [122] 9.7% ??? [276] 0.6% ------------------------------------------------------------------------------------------ parse-loop14 [95] 7.2% f67 [117] 10.4% eval-prog [113] 82.4% [116] 12886(2.8%) 0(0.0%) temp68_2 (unknown source) compile16 [121] 100.0% ------------------------------------------------------------------------------------------ hash-ref! [128] 2.9% eval-prog [113] 12.7% parse-loop14 [95] 13.5% map [210] 19.0% f67 [117] 19.3% simplify [64] 32.2% [117] 11926(2.6%) 330(0.1%) f67 ...t/collects/racket/match/compiler.rkt:507:40 map [210] 49.1% f67 [117] 19.3% table-ref [219] 11.3% temp68_2 [116] 8.1% loop [12] 3.1% eval [123] 2.7% eval-one-top12 [124] 2.5% ??? [119] 0.7% ...costs/src/common.rkt:48:2 [222] 0.6% append-map [88] 0.6% ------------------------------------------------------------------------------------------ for-loop [112] 100.0% [118] 1350(0.3%) 338(0.1%) ulp-difference ...rbie/no-costs/src/float.rkt:19:0 ??? [248] 49.3% return/no-unsupplied [239] 25.6% ------------------------------------------------------------------------------------------ map [210] 0.1% ??? [230] 0.1% for-loop [82] 0.1% jloop [15] 0.1% f67 [117] 0.1% for-loop [112] 0.2% loop [19] 0.2% ??? [77] 0.4% loop [198] 0.4% ??? [139] 0.6% for-loop [86] 1.1% ??? [115] 1.8% for-loop [73] 46.8% location-do [125] 48.0% [119] 386036(85.3%) 2396(0.5%) ??? ...tract/private/arrow-higher-order.rkt:357:33 location-do [125] 48.0% ??? [126] 46.7% ->flonum [129] 2.2% approximate9 [3] 1.1% hash-ref! [128] 0.8% loop [157] 0.3% ??? [133] 0.2% argmin [134] 0.1% ------------------------------------------------------------------------------------------ ??? [115] 100.0% [120] 32378(7.2%) 18308(4.0%) ??? ...acket/collects/racket/private/kw.rkt:592:14 bf* [130] 13.2% ??? [131] 12.1% ??? [132] 12.0% ??? [221] 4.2% ??? [277] 2.0% ------------------------------------------------------------------------------------------ temp68_2 [116] 100.0% [121] 12886(2.8%) 0(0.0%) compile16 (unknown source) temp74_0 [127] 100.0% ------------------------------------------------------------------------------------------ ??? [115] 100.0% [122] 4628(1.0%) 0(0.0%) bf ...ath-lib/math/private/bigfloat/mpfr.rkt:601:2 new-mpfr [246] 92.3% ??? [249] 7.7% ------------------------------------------------------------------------------------------ f67 [117] 33.0% eval-prog [113] 33.2% parse-loop14 [95] 33.8% [123] 970(0.2%) 0(0.0%) eval (unknown source) namespace-syntax-introduce3 [135] 33.8% add-ns-scopes [136] 33.2% datum->syntax6 [185] 33.0% ------------------------------------------------------------------------------------------ f67 [117] 100.0% [124] 294(0.1%) 294(0.1%) eval-one-top12 (unknown source) ------------------------------------------------------------------------------------------ ??? [119] 45.6% location-do [125] 54.4% [125] 373712(82.5%) 0(0.0%) location-do ...rbie/no-costs/src/programs.rkt:90:0 location-do [125] 54.4% ??? [119] 45.6% ------------------------------------------------------------------------------------------ ??? [119] 99.6% [126] 361998(80.0%) 306(0.1%) ??? .../herbie/no-costs/src/core/simplify.rkt:31:0 iterate-egraph!7 [137] 97.7% mk-egraph [141] 1.3% loop [142] 0.9% ------------------------------------------------------------------------------------------ compile16 [121] 100.0% [127] 12886(2.8%) 0(0.0%) temp74_0 (unknown source) expand-single [138] 100.0% ------------------------------------------------------------------------------------------ for-loop [28] 2.0% ??? [9] 2.5% ??? [37] 2.7% localize-error [56] 3.1% ??? [139] 3.5% for-loop [106] 3.8% loop [45] 4.4% loop [198] 4.8% for-loop [23] 6.1% ??? [140] 8.9% loop [19] 10.4% ??? [4] 12.5% ??? [119] 15.7% for-loop [20] 19.8% [128] 11928(2.6%) 0(0.0%) hash-ref! .../racket/private/more-scheme.rkt:376:2 ??? [5] 20.0% simplify [64] 15.9% ??? [4] 14.3% ??? [139] 13.9% ??? [140] 8.9% parse-loop14 [95] 6.9% ??? [6] 6.1% ??? [9] 5.2% ??? [10] 3.8% ??? [11] 2.7% taylor [36] 1.4% f67 [117] 1.0% ------------------------------------------------------------------------------------------ ??? [119] 100.0% [129] 8970(2.0%) 6346(1.4%) ->flonum .../herbie/no-costs/src/programs.rkt:36:0 ??? [248] 11.6% return/no-unsupplied [239] 11.2% ??? [276] 3.7% ??? [249] 2.8% ------------------------------------------------------------------------------------------ ??? [120] 100.0% [130] 4264(0.9%) 0(0.0%) bf* ...ath/private/bigfloat/bigfloat-mpfr.rkt:95:0 ??? [221] 100.0% ------------------------------------------------------------------------------------------ ??? [120] 100.0% [131] 3914(0.9%) 2270(0.5%) ??? ...erbie/no-costs/src/syntax/syntax.rkt:193:17 return/no-unsupplied [239] 25.1% ??? [248] 9.1% list-member? [145] 7.8% ------------------------------------------------------------------------------------------ ??? [120] 100.0% [132] 3878(0.9%) 3878(0.9%) ??? ...rivate/unconstrained-domain-arrow.rkt:40:13 ------------------------------------------------------------------------------------------ ??? [119] 100.0% [133] 1264(0.3%) 0(0.0%) ??? ...ies/herbie/no-costs/src/mainloop.rkt:208:62 *simplify-rules* [143] 100.0% ------------------------------------------------------------------------------------------ ??? [119] 100.0% [134] 654(0.1%) 0(0.0%) argmin ...92/racket/collects/racket/list.rkt:765:0 ??? [163] 100.0% ------------------------------------------------------------------------------------------ eval [123] 100.0% [135] 328(0.1%) 0(0.0%) namespace-syntax-introduce3 (unknown source) free-identifier=? [144] 100.0% ------------------------------------------------------------------------------------------ eval [123] 100.0% [136] 322(0.1%) 0(0.0%) add-ns-scopes (unknown source) gf [211] 100.0% ------------------------------------------------------------------------------------------ ??? [126] 100.0% [137] 353730(78.1%) 954(0.2%) iterate-egraph!7 ...sts/src/core/simplify.rkt:55:0 one-iter [146] 98.7% map-enodes [149] 1.1% ------------------------------------------------------------------------------------------ temp74_0 [127] 100.0% [138] 12886(2.8%) 0(0.0%) expand-single (unknown source) expand-capturing-lifts [147] 100.0% ------------------------------------------------------------------------------------------ hash-ref! [128] 100.0% [139] 7186(1.6%) 0(0.0%) ??? ...s/herbie/no-costs/src/core/taylor.rkt:67:15 ??? [119] 81.9% hash-ref! [128] 18.1% ------------------------------------------------------------------------------------------ hash-ref! [128] 100.0% [140] 4872(1.1%) 0(0.0%) ??? .../herbie/no-costs/src/core/taylor.rkt:338:33 hash-ref! [128] 100.0% ------------------------------------------------------------------------------------------ ??? [126] 100.0% [141] 4848(1.1%) 0(0.0%) mk-egraph ...ie/no-costs/src/core/egraph.rkt:131:0 mk-enode-rec! [148] 93.8% mk-enode! [188] 6.2% ------------------------------------------------------------------------------------------ ??? [126] 100.0% [142] 3114(0.7%) 0(0.0%) loop ...erbie/no-costs/src/core/simplify.rkt:193:2 for-loop [150] 100.0% ------------------------------------------------------------------------------------------ ??? [133] 100.0% [143] 1264(0.3%) 0(0.0%) *simplify-rules* ...sts/src/syntax/rules.rkt:648:0 for-loop [151] 100.0% ------------------------------------------------------------------------------------------ namespace-syntax-introduce3 [135] 100.0% [144] 328(0.1%) 0(0.0%) free-identifier=? (unknown source) resolve+shift28 [26] 100.0% ------------------------------------------------------------------------------------------ ??? [131] 100.0% [145] 306(0.1%) 306(0.1%) list-member? ...llects/racket/private/set.rkt:24:0 ------------------------------------------------------------------------------------------ iterate-egraph!7 [137] 100.0% [146] 348958(77.1%) 6728(1.5%) one-iter ...ie/no-costs/src/core/simplify.rkt:66:0 for-loop [152] 62.6% for-loop [153] 35.3% ------------------------------------------------------------------------------------------ loop [201] 2.6% expand-single [138] 97.4% [147] 13232(2.9%) 0(0.0%) expand-capturing-lifts (unknown source) lambda-clause-expander [154] 80.2% dispatch-transformer41 [155] 12.6% loop [201] 2.6% expand-id-application-form17 [213] 2.3% for-loop [237] 2.3% ------------------------------------------------------------------------------------------ mk-enode-rec! [148] 35.3% mk-egraph [141] 64.7% [148] 4548(1.0%) 300(0.1%) mk-enode-rec! ...o-costs/src/core/egraph.rkt:122:0 mk-enode! [188] 58.1% mk-enode-rec! [148] 35.3% ------------------------------------------------------------------------------------------ iterate-egraph!7 [137] 100.0% [149] 3818(0.8%) 0(0.0%) map-enodes ...e/no-costs/src/core/egraph.rkt:140:0 loop [198] 91.4% set-precompute! [8] 8.6% ------------------------------------------------------------------------------------------ loop [142] 100.0% [150] 3114(0.7%) 0(0.0%) for-loop .../no-costs/src/core/simplify.rkt:186:29 for-loop [156] 79.7% make-sequence [203] 10.4% loop [157] 9.9% ------------------------------------------------------------------------------------------ *rules* [99] 33.1% *simplify-rules* [143] 66.9% [151] 1888(0.4%) 644(0.1%) for-loop ...es/herbie/no-costs/src/common.rkt:92:9 ormap [158] 65.9% ------------------------------------------------------------------------------------------ one-iter [146] 100.0% [152] 218438(48.2%) 906(0.2%) for-loop ...e/no-costs/src/core/simplify.rkt:113:2 for-loop [159] 84.2% match-e [160] 9.6% update-leader! [177] 2.6% set [208] 1.0% custom-set-intersect [164] 0.8% reduce-to-single! [165] 0.8% ------------------------------------------------------------------------------------------ for-loop [153] 48.1% one-iter [146] 51.9% [153] 123182(27.2%) 33796(7.5%) for-loop ...e/no-costs/src/core/simplify.rkt:76:12 for-loop [153] 48.1% match-e [160] 35.2% variable? [2] 0.9% ??? [192] 0.2% ------------------------------------------------------------------------------------------ expand-capturing-lifts [147] 100.0% [154] 10616(2.3%) 0(0.0%) lambda-clause-expander (unknown source) finish-bodys [161] 90.9% loop [201] 9.1% ------------------------------------------------------------------------------------------ for-loop [237] 26.4% loop [201] 27.0% expand-capturing-lifts [147] 46.6% [155] 3578(0.8%) 0(0.0%) dispatch-transformer41 (unknown source) apply-transformer52 [162] 100.0% ------------------------------------------------------------------------------------------ for-loop [150] 100.0% [156] 2482(0.5%) 2182(0.5%) for-loop .../no-costs/src/core/simplify.rkt:172:13 for-loop [168] 12.1% ------------------------------------------------------------------------------------------ for-loop [150] 19.2% ??? [119] 80.8% [157] 1604(0.4%) 0(0.0%) loop .../p92/racket/collects/racket/list.rkt:751:4 ??? [163] 80.8% expression-size [167] 19.2% ------------------------------------------------------------------------------------------ for-loop [151] 100.0% [158] 1244(0.3%) 0(0.0%) ormap ...et/collects/racket/private/map.rkt:141:13 flag-set? [166] 100.0% ------------------------------------------------------------------------------------------ for-loop [152] 100.0% [159] 184016(40.6%) 1542(0.3%) for-loop ...ie/no-costs/src/core/simplify.rkt:98:4 mk-enode! [188] 33.6% merge-egraph-nodes! [170] 27.5% substitute-e [171] 20.2% loop! [189] 17.9% ------------------------------------------------------------------------------------------ for-loop [152] 12.0% for-loop [176] 18.5% for-loop [153] 69.5% [160] 107502(23.7%) 33440(7.4%) match-e ...erbie/no-costs/src/core/ematch.rkt:46:0 for-loop [169] 58.7% ??? [62] 4.6% make-sequence [203] 3.9% variable? [2] 3.7% ------------------------------------------------------------------------------------------ lambda-clause-expander [154] 13.3% for-loop [237] 86.7% [161] 9650(2.1%) 0(0.0%) finish-bodys (unknown source) for-loop [237] 100.0% ------------------------------------------------------------------------------------------ dispatch-transformer41 [155] 100.0% [162] 3578(0.8%) 0(0.0%) apply-transformer52 (unknown source) apply-transformer-in-context [172] 45.7% loop [201] 35.8% apply-post-expansion [175] 18.4% ------------------------------------------------------------------------------------------ argmin [134] 33.5% loop [157] 66.5% [163] 1950(0.4%) 0(0.0%) ??? ...ies/herbie/no-costs/src/mainloop.rkt:109:10 errors [104] 100.0% ------------------------------------------------------------------------------------------ for-loop [152] 100.0% [164] 1832(0.4%) 310(0.1%) custom-set-intersect ...rivate/set-types.rkt:195:0 for-loop [174] 66.8% for-loop [212] 16.3% ------------------------------------------------------------------------------------------ for-loop [152] 100.0% [165] 1674(0.4%) 0(0.0%) reduce-to-single! ...sts/src/core/egraph.rkt:325:0 for-loop [173] 80.4% make-sequence [203] 19.6% ------------------------------------------------------------------------------------------ ormap [158] 100.0% [166] 1244(0.3%) 636(0.1%) flag-set? ...s/herbie/no-costs/src/config.rkt:31:0 ??? [248] 24.6% return/no-unsupplied [239] 24.3% ------------------------------------------------------------------------------------------ map [210] 50.0% loop [157] 50.0% [167] 308(0.1%) 0(0.0%) expression-size ...sts/src/core/simplify.rkt:162:0 loop [198] 100.0% ------------------------------------------------------------------------------------------ for-loop [156] 100.0% [168] 300(0.1%) 300(0.1%) for-loop .../no-costs/src/core/simplify.rkt:175:37 ------------------------------------------------------------------------------------------ match-e [160] 100.0% [169] 73100(16.1%) 33414(7.4%) for-loop ...bie/no-costs/src/core/ematch.rkt:59:11 for-loop [176] 48.5% list-cartesian-product [180] 8.8% curry* [182] 1.9% loop [198] 0.9% foldl [214] 0.4% curried [184] 0.2% ------------------------------------------------------------------------------------------ for-loop [179] 8.1% for-loop [159] 91.9% [170] 50676(11.2%) 1616(0.4%) merge-egraph-nodes! ...s/src/core/egraph.rkt:153:0 update-leader! [177] 61.7% for-loop [179] 27.0% enode-merge! [181] 6.5% make-sequence [203] 1.3% update-en-expr [245] 0.6% ------------------------------------------------------------------------------------------ for-loop [178] 7.6% for-loop [159] 92.4% [171] 37156(8.2%) 1876(0.4%) substitute-e .../no-costs/src/core/ematch.rkt:71:0 for-loop [178] 92.2% ??? [62] 3.2% variable? [2] 1.4% ------------------------------------------------------------------------------------------ apply-transformer52 [162] 100.0% [172] 1636(0.4%) 320(0.1%) apply-transformer-in-context (unknown source) parse-app [183] 40.3% datum->syntax6 [185] 20.2% go [187] 19.9% ------------------------------------------------------------------------------------------ reduce-to-single! [165] 100.0% [173] 1346(0.3%) 1346(0.3%) for-loop ...bie/no-costs/src/core/egraph.rkt:326:8 ------------------------------------------------------------------------------------------ custom-set-intersect [164] 100.0% [174] 1224(0.3%) 618(0.1%) for-loop ...cts/racket/private/set-types.rkt:207:3 for-loop [186] 49.5% ------------------------------------------------------------------------------------------ apply-transformer52 [162] 100.0% [175] 660(0.1%) 0(0.0%) apply-post-expansion (unknown source) gf [211] 100.0% ------------------------------------------------------------------------------------------ for-loop [169] 100.0% [176] 41440(9.2%) 2182(0.5%) for-loop ...bie/no-costs/src/core/ematch.rkt:65:37 match-e [160] 86.6% ??? [192] 8.1% ------------------------------------------------------------------------------------------ for-loop [152] 14.5% merge-egraph-nodes! [170] 85.5% [177] 39116(8.6%) 1266(0.3%) update-leader! ...-costs/src/core/egraph.rkt:218:0 for-loop [190] 71.0% for-loop [191] 25.0% ------------------------------------------------------------------------------------------ substitute-e [171] 100.0% [178] 36544(8.1%) 944(0.2%) for-loop ...bie/no-costs/src/core/ematch.rkt:80:24 mk-enode! [188] 83.4% substitute-e [171] 14.0% ------------------------------------------------------------------------------------------ merge-egraph-nodes! [170] 100.0% [179] 15970(3.5%) 0(0.0%) for-loop ...ie/no-costs/src/core/egraph.rkt:201:10 loop! [189] 59.9% merge-egraph-nodes! [170] 40.1% ------------------------------------------------------------------------------------------ list-cartesian-product [180] 35.8% for-loop [169] 64.2% [180] 7688(1.7%) 5640(1.2%) list-cartesian-product ...src/core/ematch.rkt:20:0 list-cartesian-product [180] 35.8% for-loop [193] 13.3% ------------------------------------------------------------------------------------------ merge-egraph-nodes! [170] 100.0% [181] 3458(0.8%) 946(0.2%) enode-merge! .../no-costs/src/core/enode.rkt:127:0 adopt-enode! [194] 45.5% custom-set-intersect! [195] 27.1% ------------------------------------------------------------------------------------------ for-loop [169] 100.0% [182] 1570(0.3%) 932(0.2%) curry* ...racket/collects/racket/function.rkt:44:2 procedure-arity [274] 40.6% ------------------------------------------------------------------------------------------ apply-transformer-in-context [172] 100.0% [183] 660(0.1%) 0(0.0%) parse-app ...collects/racket/private/kw.rkt:1105:2 syntax->list [196] 100.0% ------------------------------------------------------------------------------------------ for-loop [169] 49.2% for-loop [102] 50.8% [184] 654(0.1%) 654(0.1%) curried ...cket/collects/racket/function.rkt:71:18 ------------------------------------------------------------------------------------------ eval [123] 49.2% apply-transformer-in-context [172] 50.8% [185] 650(0.1%) 0(0.0%) datum->syntax6 (unknown source) loop [201] 100.0% ------------------------------------------------------------------------------------------ for-loop [174] 100.0% [186] 606(0.1%) 606(0.1%) for-loop ...cts/racket/private/set-types.rkt:201:4 ------------------------------------------------------------------------------------------ apply-transformer-in-context [172] 100.0% [187] 326(0.1%) 326(0.1%) go .../collects/racket/private/qq-and-or.rkt:50:20 ------------------------------------------------------------------------------------------ mk-egraph [141] 0.3% mk-enode-rec! [148] 4.4% for-loop [178] 31.5% for-loop [159] 63.8% [188] 96776(21.4%) 3210(0.7%) mk-enode! ...ie/no-costs/src/core/egraph.rkt:102:0 new-enode [197] 92.1% for-loop [204] 3.3% hash-has-key? [202] 1.3% ------------------------------------------------------------------------------------------ for-loop [179] 17.6% loop [198] 32.1% for-loop [159] 50.3% [189] 44080(9.7%) 8860(2.0%) loop! .../herbie/no-costs/src/core/enode.rkt:190:2 custom-set-union [200] 35.4% loop [198] 35.0% set [208] 10.3% update-en-expr [245] 8.5% ------------------------------------------------------------------------------------------ update-leader! [177] 100.0% [190] 27770(6.1%) 968(0.2%) for-loop ...bie/no-costs/src/core/egraph.rkt:223:6 for-loop [199] 95.3% update-en-expr [245] 1.2% ------------------------------------------------------------------------------------------ update-leader! [177] 100.0% [191] 9780(2.2%) 7554(1.7%) for-loop ...bie/no-costs/src/core/egraph.rkt:233:6 update-en-expr [245] 22.8% ------------------------------------------------------------------------------------------ for-loop [153] 14.8% for-loop [176] 85.2% [192] 4146(0.9%) 1334(0.3%) ??? ...es/herbie/no-costs/src/core/ematch.rkt:50:5 for-loop [205] 60.1% make-sequence [203] 7.7% ------------------------------------------------------------------------------------------ list-cartesian-product [180] 100.0% [193] 2048(0.5%) 2048(0.5%) for-loop ...rbie/no-costs/src/core/ematch.rkt:24:8 ------------------------------------------------------------------------------------------ enode-merge! [181] 100.0% [194] 1574(0.3%) 960(0.2%) adopt-enode! .../no-costs/src/core/enode.rkt:103:0 custom-set-union [200] 39.0% ------------------------------------------------------------------------------------------ enode-merge! [181] 100.0% [195] 938(0.2%) 938(0.2%) custom-set-intersect! ...ivate/set-types.rkt:269:0 ------------------------------------------------------------------------------------------ parse-app [183] 100.0% [196] 660(0.1%) 0(0.0%) syntax->list (unknown source) loop [201] 100.0% ------------------------------------------------------------------------------------------ mk-enode! [188] 100.0% [197] 89142(19.7%) 0(0.0%) new-enode ...rbie/no-costs/src/core/enode.rkt:95:0 type-of-enode-expr [206] 99.3% set [208] 0.7% ------------------------------------------------------------------------------------------ loop [67] 0.0% ??? [76] 0.1% for-loop [169] 0.4% make-exacts* [65] 0.6% expression-size [167] 0.6% taylor [36] 0.7% map-enodes [149] 1.7% parse-loop14 [95] 2.3% loop! [189] 12.0% loop [198] 81.6% [198] 50750(11.2%) 1582(0.3%) loop ...cket/collects/racket/private/map.rkt:40:19 loop [198] 81.6% loop! [189] 11.9% set-precompute! [8] 1.7% hash-ref! [128] 1.4% simplify [64] 0.7% parse-loop14 [95] 0.6% map [210] 0.6% ??? [115] 0.6% simplify* [224] 0.3% foldl [214] 0.2% ??? [119] 0.0% ------------------------------------------------------------------------------------------ for-loop [190] 100.0% [199] 26478(5.8%) 660(0.1%) for-loop ...bie/no-costs/src/core/egraph.rkt:224:8 hash-update! [207] 97.5% ------------------------------------------------------------------------------------------ adopt-enode! [194] 3.5% loop! [189] 96.5% [200] 17708(3.9%) 5030(1.1%) custom-set-union ...et/private/set-types.rkt:168:0 for-loop [209] 60.8% for-loop [212] 10.8% ------------------------------------------------------------------------------------------ expand-capturing-lifts [147] 1.2% eval-prog [113] 1.2% datum->syntax6 [185] 1.7% lambda-clause-expander [154] 4.1% syntax->list [196] 5.0% gf [211] 6.3% apply-transformer52 [162] 7.4% loop [201] 11.3% for-loop [237] 12.5% syntax-e/no-taint [22] 49.4% [201] 9830(2.2%) 1958(0.4%) loop (unknown source) gf [211] 51.7% expand-id-application-form17 [213] 11.7% loop [201] 11.3% syntax-e [7] 5.7% dispatch-transformer41 [155] 4.1% core-form-sym [216] 3.3% expand-capturing-lifts [147] 1.2% for-loop [237] 1.2% ------------------------------------------------------------------------------------------ mk-enode! [188] 13.0% ??? [62] 87.0% [202] 9814(2.2%) 5138(1.1%) hash-has-key? ...ket/private/more-scheme.rkt:371:2 ??? [236] 38.2% ??? [215] 9.4% ------------------------------------------------------------------------------------------ set-precompute! [8] 4.6% setfindf [38] 4.6% ??? [192] 4.7% for-loop [150] 4.8% reduce-to-single! [165] 4.9% merge-egraph-nodes! [170] 9.6% match-e [160] 66.8% [203] 6748(1.5%) 6748(1.5%) make-sequence ...ects/racket/private/for.rkt:528:2 ------------------------------------------------------------------------------------------ mk-enode! [188] 100.0% [204] 3148(0.7%) 3148(0.7%) for-loop ...ie/no-costs/src/core/egraph.rkt:114:10 ------------------------------------------------------------------------------------------ ??? [192] 100.0% [205] 2492(0.6%) 1864(0.4%) for-loop ...rbie/no-costs/src/core/ematch.rkt:51:7 ??? [62] 25.2% ------------------------------------------------------------------------------------------ new-enode [197] 100.0% [206] 88520(19.6%) 1574(0.3%) type-of-enode-expr ...osts/src/core/enode.rkt:68:0 ??? [217] 39.8% for-loop [255] 31.4% table-ref [219] 19.0% ...costs/src/common.rkt:48:2 [222] 5.2% get/build-late-neg-projection [265] 2.5% ??? [251] 0.3% ------------------------------------------------------------------------------------------ for-loop [199] 100.0% [207] 25818(5.7%) 0(0.0%) hash-update! ...cket/private/more-scheme.rkt:365:4 ??? [218] 100.0% ------------------------------------------------------------------------------------------ new-enode [197] 5.3% for-loop [152] 18.6% loop! [189] 76.0% [208] 11704(2.6%) 10168(2.2%) set ...collects/racket/private/set-types.rkt:981:0 for-loop [225] 13.1% ------------------------------------------------------------------------------------------ custom-set-union [200] 100.0% [209] 10758(2.4%) 3140(0.7%) for-loop ...cts/racket/private/set-types.rkt:174:3 for-loop [220] 70.8% ------------------------------------------------------------------------------------------ loop [198] 7.3% taylor [36] 8.7% f67 [117] 84.0% [210] 7654(1.7%) 928(0.2%) map ...acket/collects/racket/private/map.rkt:35:13 f67 [117] 34.9% parse-loop14 [95] 29.7% simplify* [224] 4.7% taylor [36] 4.5% ??? [221] 4.5% taylor-invert [46] 4.3% ??? [119] 3.3% make-multiplication-node [229] 2.1% simplify-node [79] 2.0% expression-size [167] 2.0% ------------------------------------------------------------------------------------------ add-ns-scopes [136] 1.2% apply-post-expansion [175] 6.7% loop [201] 92.2% [211] 6878(1.5%) 302(0.1%) gf (unknown source) propagation-apply [223] 39.3% propagation-merge [226] 14.1% cache-or-reuse-set [227] 13.6% propagation-apply-shifted [228] 13.6% loop [201] 11.4% cache-or-reuse-hash [231] 5.1% syntax-e/no-taint [22] 1.5% ------------------------------------------------------------------------------------------ custom-set-intersect [164] 13.4% custom-set-union [200] 86.6% [212] 2218(0.5%) 2218(0.5%) for-loop ...cts/racket/private/set-types.rkt:152:2 ------------------------------------------------------------------------------------------ expand-capturing-lifts [147] 15.7% loop [201] 84.3% [213] 1932(0.4%) 0(0.0%) expand-id-application-form17 (unknown source) syntax-e/no-taint [22] 49.4% resolve+shift28 [26] 34.9% binding-lookup50 [233] 15.7% ------------------------------------------------------------------------------------------ for-loop [169] 24.4% loop [198] 75.6% [214] 1236(0.3%) 302(0.1%) foldl ...et/collects/racket/private/list.rkt:229:4 ??? [230] 48.9% merge2 [232] 26.7% ------------------------------------------------------------------------------------------ hash-has-key? [202] 100.0% [215] 926(0.2%) 926(0.2%) ??? ...ects/racket/contract/private/hash.rkt:283:7 ------------------------------------------------------------------------------------------ loop [201] 100.0% [216] 328(0.1%) 0(0.0%) core-form-sym (unknown source) resolve+shift28 [26] 100.0% ------------------------------------------------------------------------------------------ type-of [21] 4.8% type-of-enode-expr [206] 95.2% [217] 36984(8.2%) 0(0.0%) ??? ...ects/racket/contract/private/hash.rkt:227:4 contract-pos/neg-doubling/proc [234] 100.0% ------------------------------------------------------------------------------------------ hash-update! [207] 100.0% [218] 25818(5.7%) 308(0.1%) ??? .../herbie/no-costs/src/core/egraph.rkt:226:24 for-loop [235] 98.8% ------------------------------------------------------------------------------------------ type-of [21] 9.3% f67 [117] 10.5% type-of-enode-expr [206] 80.2% [219] 20954(4.6%) 6606(1.5%) table-ref ...s/herbie/no-costs/src/common.rkt:47:0 ??? [236] 65.3% ??? [264] 1.5% ------------------------------------------------------------------------------------------ for-loop [209] 100.0% [220] 7618(1.7%) 7618(1.7%) for-loop ...cts/racket/private/set-types.rkt:178:5 ------------------------------------------------------------------------------------------ map [210] 5.7% ??? [120] 22.8% bf* [130] 71.4% [221] 5968(1.3%) 0(0.0%) ??? ...-racket/utils/simple-result-arrow.rkt:39:12 bfmul [238] 82.9% bfcbrt [242] 17.1% ------------------------------------------------------------------------------------------ f67 [117] 5.4% type-of [21] 11.0% type-of-enode-expr [206] 83.6% [222] 5544(1.2%) 308(0.1%) ...costs/src/common.rkt:48:2 ...e/arr-i.rkt:918:19 ??? [240] 61.1% ??? [241] 28.0% coerce-contract [244] 5.4% ------------------------------------------------------------------------------------------ gf [211] 100.0% [223] 2704(0.6%) 2704(0.6%) propagation-apply (unknown source) ------------------------------------------------------------------------------------------ loop [198] 14.7% parse-loop14 [95] 14.8% map [210] 26.9% simplify [64] 43.6% [224] 2272(0.5%) 612(0.1%) simplify* ...bie/no-costs/src/core/reduce.rkt:31:0 return/no-unsupplied [239] 43.2% ??? [248] 29.8% ------------------------------------------------------------------------------------------ set [208] 100.0% [225] 1536(0.3%) 1536(0.3%) for-loop ...cts/racket/private/set-types.rkt:937:4 ------------------------------------------------------------------------------------------ gf [211] 100.0% [226] 970(0.2%) 970(0.2%) propagation-merge (unknown source) ------------------------------------------------------------------------------------------ gf [211] 100.0% [227] 938(0.2%) 938(0.2%) cache-or-reuse-set (unknown source) ------------------------------------------------------------------------------------------ gf [211] 100.0% [228] 936(0.2%) 936(0.2%) propagation-apply-shifted (unknown source) ------------------------------------------------------------------------------------------ for-loop [109] 49.2% map [210] 50.8% [229] 634(0.1%) 0(0.0%) make-multiplication-node .../core/reduce.rkt:230:0 make-multiplication-subnode [243] 100.0% ------------------------------------------------------------------------------------------ foldl [214] 100.0% [230] 604(0.1%) 0(0.0%) ??? ...es/herbie/no-costs/src/alternative.rkt:48:9 ??? [277] 50.3% ??? [119] 49.7% ------------------------------------------------------------------------------------------ gf [211] 100.0% [231] 348(0.1%) 0(0.0%) cache-or-reuse-hash (unknown source) for-loop [237] 100.0% ------------------------------------------------------------------------------------------ foldl [214] 100.0% [232] 330(0.1%) 330(0.1%) merge2 ...herbie/no-costs/src/core/ematch.rkt:31:0 ------------------------------------------------------------------------------------------ expand-id-application-form17 [213] 100.0% [233] 304(0.1%) 304(0.1%) binding-lookup50 (unknown source) ------------------------------------------------------------------------------------------ ??? [217] 100.0% [234] 36984(8.2%) 34446(7.6%) contract-pos/neg-doubling/proc ...e/guts.rkt:956:0 ??? [250] 6.9% ------------------------------------------------------------------------------------------ ??? [218] 100.0% [235] 25510(5.6%) 23302(5.1%) for-loop ...ie/no-costs/src/core/egraph.rkt:227:26 update-en-expr [245] 8.7% ------------------------------------------------------------------------------------------ hash-has-key? [202] 21.5% table-ref [219] 78.5% [236] 17442(3.9%) 6974(1.5%) ??? ...ects/racket/contract/private/list.rkt:798:4 for-loop [247] 38.4% ??? [257] 11.0% successfully-got-the-right-kind-of-function [252] 5.2% arrow-higher-order:lnp [259] 3.6% ??? [264] 1.8% ------------------------------------------------------------------------------------------ unpack-defined-syms [84] 0.4% expand-capturing-lifts [147] 0.9% loop [201] 1.4% fallback-loop [35] 2.4% cache-or-reuse-hash [231] 3.3% for-loop [237] 8.5% finish-bodys [161] 81.6% [237] 10642(2.4%) 3344(0.7%) for-loop (unknown source) finish-bodys [161] 72.4% for-loop [237] 8.5% syntax-e [7] 3.4% expand-implicit [14] 1.6% loop [201] 1.4% dispatch-transformer41 [155] 0.9% expand-identifier [13] 0.5% [running body] [16] 0.4% ------------------------------------------------------------------------------------------ ??? [221] 100.0% [238] 4946(1.1%) 0(0.0%) bfmul ...-lib/math/private/bigfloat/mpfr.rkt:821:4 new-mpfr [246] 52.4% ??? [249] 47.6% ------------------------------------------------------------------------------------------ flag-set? [166] 8.4% ulp-difference [118] 9.6% simplify* [224] 27.2% ??? [131] 27.2% ->flonum [129] 27.8% [239] 3616(0.8%) 2940(0.6%) return/no-unsupplied ...ct/private/arr-i.rkt:534:0 filter [253] 18.7% ------------------------------------------------------------------------------------------ ??? [264] 9.7% for-loop [272] 13.6% ...costs/src/common.rkt:48:2 [222] 76.7% [240] 3388(0.7%) 950(0.2%) ??? ...ects/racket/contract/private/list.rkt:367:4 ??? [264] 50.0% ??? [251] 17.8% ??? [276] 13.7% ------------------------------------------------------------------------------------------ ...costs/src/common.rkt:48:2 [222] 100.0% [241] 1550(0.3%) 620(0.1%) ??? ...s/racket/contract/private/arr-i.rkt:1286:39 ??? [248] 40.4% assoc-ref [254] 19.6% ------------------------------------------------------------------------------------------ ??? [221] 100.0% [242] 1022(0.2%) 342(0.1%) bfcbrt ...lib/math/private/bigfloat/mpfr.rkt:618:4 new-mpfr [246] 38.4% ??? [249] 28.2% ------------------------------------------------------------------------------------------ make-multiplication-node [229] 100.0% [243] 634(0.1%) 634(0.1%) make-multiplication-subnode ...re/reduce.rkt:240:0 ------------------------------------------------------------------------------------------ ...costs/src/common.rkt:48:2 [222] 100.0% [244] 298(0.1%) 298(0.1%) coerce-contract ...contract/private/guts.rkt:285:0 ------------------------------------------------------------------------------------------ merge-egraph-nodes! [170] 2.3% for-loop [190] 2.5% for-loop [235] 17.0% for-loop [191] 17.1% loop! [189] 61.1% [245] 13014(2.9%) 4106(0.9%) update-en-expr ...-costs/src/core/egraph.rkt:212:0 for-loop [256] 68.4% ------------------------------------------------------------------------------------------ bfcbrt [242] 5.4% bfmul [238] 35.7% bf [122] 58.9% [246] 7258(1.6%) 7258(1.6%) new-mpfr ...b/math/private/bigfloat/mpfr.rkt:335:0 ------------------------------------------------------------------------------------------ ??? [236] 100.0% [247] 6694(1.5%) 2580(0.6%) for-loop ...acket/contract/private/list.rkt:804:12 ??? [257] 33.5% for-loop [255] 23.5% arrow-higher-order:lnp [259] 4.5% ------------------------------------------------------------------------------------------ flag-set? [166] 8.3% ??? [131] 9.7% ??? [241] 17.0% ulp-difference [118] 18.1% simplify* [224] 18.5% ->flonum [129] 28.4% [248] 3674(0.8%) 3014(0.7%) ??? ...s/racket/contract/private/arr-i.rkt:1252:29 ??? [261] 18.0% ------------------------------------------------------------------------------------------ ->flonum [129] 7.7% bfcbrt [242] 8.9% bf [122] 11.0% bfmul [238] 72.5% [249] 3246(0.7%) 3246(0.7%) ??? /home/p92/racket/collects/ffi/unsafe.rkt:898:4 ------------------------------------------------------------------------------------------ contract-pos/neg-doubling/proc [234] 100.0% [250] 2538(0.6%) 296(0.1%) ??? ...ects/racket/contract/private/list.rkt:191:2 ??? [258] 88.3% ------------------------------------------------------------------------------------------ type-of-enode-expr [206] 25.0% type-of [21] 26.1% ??? [240] 48.9% [251] 1234(0.3%) 302(0.1%) ??? ...ects/racket/contract/private/hash.rkt:236:9 check-hash/c [260] 75.5% ------------------------------------------------------------------------------------------ ??? [236] 100.0% [252] 910(0.2%) 0(0.0%) successfully-got-the-right-kind-of-function ...5:4 loop [262] 65.9% arity-checking-wrapper [263] 34.1% ------------------------------------------------------------------------------------------ return/no-unsupplied [239] 100.0% [253] 676(0.1%) 676(0.1%) filter ...t/collects/racket/private/list.rkt:256:2 ------------------------------------------------------------------------------------------ ??? [241] 100.0% [254] 304(0.1%) 304(0.1%) assoc-ref ...collects/racket/private/dict.rkt:56:0 ------------------------------------------------------------------------------------------ for-loop [247] 5.1% type-of [21] 5.2% type-of-enode-expr [206] 89.7% [255] 30950(6.8%) 1592(0.4%) for-loop ...racket/contract/private/hash.rkt:277:6 ??? [264] 93.8% ??? [277] 1.0% ------------------------------------------------------------------------------------------ update-en-expr [245] 100.0% [256] 8908(2.0%) 8908(2.0%) for-loop ...bie/no-costs/src/core/egraph.rkt:214:6 ------------------------------------------------------------------------------------------ ??? [236] 46.2% for-loop [247] 53.8% [257] 4164(0.9%) 2248(0.5%) ??? ...private/unconstrained-domain-arrow.rkt:74:4 make-keyword-procedure [266] 46.0% ------------------------------------------------------------------------------------------ ??? [250] 100.0% [258] 2242(0.5%) 940(0.2%) ??? ...ects/racket/contract/private/list.rkt:739:5 get/build-late-neg-projection [265] 58.1% ------------------------------------------------------------------------------------------ for-loop [247] 32.2% ??? [236] 67.8% [259] 932(0.2%) 598(0.1%) arrow-higher-order:lnp ...w-higher-order.rkt:633:7 ??? [268] 35.8% ------------------------------------------------------------------------------------------ ??? [251] 100.0% [260] 932(0.2%) 302(0.1%) check-hash/c ...ket/contract/private/hash.rkt:83:0 flat-contract? [267] 67.6% ------------------------------------------------------------------------------------------ ??? [248] 100.0% [261] 660(0.1%) 660(0.1%) ??? ...ects/racket/contract/private/prop.rkt:274:4 ------------------------------------------------------------------------------------------ loop [262] 37.5% successfully-got-the-right-kind-of-function [252] 62.5% [262] 600(0.1%) 600(0.1%) loop ...ts/racket/contract/private/blame.rkt:320:2 loop [262] 37.5% ------------------------------------------------------------------------------------------ successfully-got-the-right-kind-of-function [252]100.0% [263] 310(0.1%) 0(0.0%) arity-checking-wrapper ...w-higher-order.rkt:425:0 matches-arity-exactly? [269] 100.0% ------------------------------------------------------------------------------------------ ??? [236] 1.0% table-ref [219] 1.0% ??? [240] 7.7% for-loop [255] 90.3% [264] 32144(7.1%) 606(0.1%) ??? ...cts/racket/contract/private/list.rkt:209:10 ??? [270] 90.3% for-loop [272] 4.8% ??? [240] 2.0% ??? [277] 1.0% ------------------------------------------------------------------------------------------ listof-late-neg-projection [275] 6.2% ??? [271] 19.2% ??? [258] 36.7% type-of-enode-expr [206] 38.0% [265] 3550(0.8%) 1926(0.4%) get/build-late-neg-projection ...te/guts.rkt:793:0 ??? [273] 32.0% ??? [271] 28.6% listof-late-neg-projection [275] 6.2% ------------------------------------------------------------------------------------------ ??? [257] 100.0% [266] 1916(0.4%) 1916(0.4%) make-keyword-procedure ...ket/private/kw.rkt:407:4 ------------------------------------------------------------------------------------------ check-hash/c [260] 100.0% [267] 630(0.1%) 630(0.1%) flat-contract? .../contract/private/guts.rkt:122:0 ------------------------------------------------------------------------------------------ arrow-higher-order:lnp [259] 100.0% [268] 334(0.1%) 334(0.1%) ??? ...et/contract/private/arity-checking.rkt:19:2 ------------------------------------------------------------------------------------------ arity-checking-wrapper [263] 100.0% [269] 310(0.1%) 0(0.0%) matches-arity-exactly? ...te/arrow-common.rkt:70:0 procedure-arity [274] 100.0% ------------------------------------------------------------------------------------------ ??? [264] 100.0% [270] 29042(6.4%) 312(0.1%) ??? ...ects/racket/contract/private/list.rkt:747:7 ??? [276] 95.7% ??? [277] 3.2% ------------------------------------------------------------------------------------------ get/build-late-neg-projection [265] 100.0% [271] 1916(0.4%) 336(0.1%) ??? ...ects/racket/contract/private/hash.rkt:221:2 get/build-late-neg-projection [265] 82.5% ------------------------------------------------------------------------------------------ ??? [264] 100.0% [272] 1532(0.3%) 608(0.1%) for-loop ...acket/contract/private/list.rkt:212:15 ??? [240] 60.3% ------------------------------------------------------------------------------------------ get/build-late-neg-projection [265] 100.0% [273] 1288(0.3%) 0(0.0%) ??? ...cts/racket/contract/private/prop.rkt:344:12 build-compound-type-name [278] 100.0% ------------------------------------------------------------------------------------------ matches-arity-exactly? [269] 32.7% curry* [182] 67.3% [274] 948(0.2%) 948(0.2%) procedure-arity ...ket/private/norm-arity.rkt:7:27 ------------------------------------------------------------------------------------------ get/build-late-neg-projection [265] 100.0% [275] 656(0.1%) 0(0.0%) listof-late-neg-projection ...ivate/list.rkt:184:0 get/build-late-neg-projection [265] 100.0% ------------------------------------------------------------------------------------------ for-loop [96] 1.0% ??? [115] 1.0% ->flonum [129] 1.1% ??? [240] 3.1% ??? [270] 93.7% [276] 29654(6.5%) 28724(6.3%) ??? ...ects/racket/contract/private/guts.rkt:746:8 contract? [280] 3.1% ------------------------------------------------------------------------------------------ ??? [230] 12.1% ??? [264] 12.3% for-loop [255] 12.6% ??? [120] 25.9% ??? [270] 37.1% [277] 2514(0.6%) 1890(0.4%) ??? ...ects/racket/contract/private/prop.rkt:519:4 ??? [281] 24.8% ------------------------------------------------------------------------------------------ contract-struct-name [279] 13.4% ??? [273] 86.6% [278] 1288(0.3%) 344(0.1%) build-compound-type-name ...private/guts.rkt:515:0 contract-struct-name [279] 86.6% ------------------------------------------------------------------------------------------ build-compound-type-name [278] 100.0% [279] 1288(0.3%) 944(0.2%) contract-struct-name ...ract/private/prop.rkt:87:0 build-compound-type-name [278] 26.7% ------------------------------------------------------------------------------------------ ??? [276] 100.0% [280] 930(0.2%) 620(0.1%) contract? ...acket/contract/private/guts.rkt:118:0 coerce-contract/f [283] 33.3% ------------------------------------------------------------------------------------------ ??? [277] 100.0% [281] 624(0.1%) 0(0.0%) ??? ...lects/racket/contract/private/orc.rkt:83:14 ??? [282] 100.0% ------------------------------------------------------------------------------------------ ??? [281] 100.0% [282] 624(0.1%) 624(0.1%) ??? ...ects/racket/contract/private/list.rkt:163:5 ------------------------------------------------------------------------------------------ contract? [280] 100.0% [283] 310(0.1%) 310(0.1%) coerce-contract/f ...ntract/private/guts.rkt:350:0 ------------------------------------------------------------------------------------------