Profiling results ----------------- Total cpu time observed: 467832ms (out of 469564ms) Number of samples taken: 1437 (once every 326ms) (Hiding functions with self<1.0% and local<2.0%: 24 of 313 hidden) ================================================================================ Caller Idx Total Self Name+src Local% ms(pct) ms(pct) Callee ================================================================================ run [30] 50.0% [1] 467832(100.0%) 0(0.0%) ??? ...lects/racket/private/more-scheme.rkt:261:28 profile-thunk16 [17] 50.0% run-improve39 [18] 45.1% prepare-points [41] 2.1% loop [42] 1.9% get-final-combination [21] 1.0% -------------------------------------------------------------------------------- ??? [112] 100.0% [2] 16036(3.4%) 0(0.0%) approximate9 ...e/develop/src/core/taylor.rkt:12:0 loop [20] 60.0% for-loop [24] 30.2% taylor [34] 9.8% -------------------------------------------------------------------------------- loop [54] 14.4% for-loop [164] 85.6% [3] 8950(1.9%) 298(0.1%) syntax-e (unknown source) syntax-e/no-taint [19] 96.7% -------------------------------------------------------------------------------- map-enodes [141] 10.7% loop [266] 89.3% [4] 5590(1.2%) 634(0.1%) set-precompute! ...lop/src/core/simplify.rkt:140:0 for-loop [25] 83.1% make-sequence [229] 5.5% -------------------------------------------------------------------------------- hash-ref! [286] 100.0% [5] 5430(1.2%) 0(0.0%) ??? ...s/herbie/develop/src/core/taylor.rkt:295:23 for-loop [23] 100.0% -------------------------------------------------------------------------------- substitute-e [163] 6.5% for-loop [147] 18.4% match-e [154] 75.0% [6] 5118(1.1%) 0(0.0%) variable? ...e/develop/src/syntax/syntax.rkt:713:0 ??? [66] 100.0% -------------------------------------------------------------------------------- expand-capturing-lifts [139] 6.7% for-loop [164] 93.3% [7] 4826(1.0%) 0(0.0%) expand-implicit (unknown source) resolve+shift28 [22] 86.9% datum->syntax6 [123] 6.9% binding-lookup50 [188] 6.2% -------------------------------------------------------------------------------- hash-ref! [286] 100.0% [8] 4472(1.0%) 0(0.0%) ??? ...s/herbie/develop/src/core/taylor.rkt:285:26 for-loop [26] 100.0% -------------------------------------------------------------------------------- hash-ref! [286] 100.0% [9] 4182(0.9%) 0(0.0%) ??? ...s/herbie/develop/src/core/taylor.rkt:392:23 for-loop [27] 100.0% -------------------------------------------------------------------------------- for-loop [164] 100.0% [10] 3230(0.7%) 332(0.1%) expand-identifier (unknown source) resolve+shift28 [22] 89.7% -------------------------------------------------------------------------------- taylor [34] 100.0% [11] 1620(0.3%) 0(0.0%) taylor-invert ...develop/src/core/taylor.rkt:312:0 simplify [32] 81.6% first-nonzero-exp [63] 18.4% -------------------------------------------------------------------------------- for-loop [24] 19.8% taylor [34] 80.2% [12] 1608(0.3%) 0(0.0%) taylor-exp ...ie/develop/src/core/taylor.rkt:386:0 simplify [32] 100.0% -------------------------------------------------------------------------------- hash-ref! [286] 100.0% [13] 1600(0.3%) 0(0.0%) ??? ...s/herbie/develop/src/core/taylor.rkt:483:23 for-loop [28] 100.0% -------------------------------------------------------------------------------- hash-ref! [286] 100.0% [14] 626(0.1%) 0(0.0%) ??? ...s/herbie/develop/src/core/taylor.rkt:322:33 for-loop [29] 50.5% simplify [32] 49.5% -------------------------------------------------------------------------------- copying-mergesort [98] 100.0% [15] 322(0.1%) 0(0.0%) jloop ...t/collects/racket/private/sort.rkt:120:23 ??? [108] 100.0% -------------------------------------------------------------------------------- taylor [34] 100.0% [16] 322(0.1%) 0(0.0%) taylor-log ...ie/develop/src/core/taylor.rkt:476:0 simplify [32] 100.0% -------------------------------------------------------------------------------- ??? [1] 100.0% [17] 467832(100.0%) 0(0.0%) profile-thunk16 ...e/pkgs/profile-lib/main.rkt:9:0 run [30] 100.0% -------------------------------------------------------------------------------- ??? [1] 100.0% [18] 422026(90.2%) 0(0.0%) run-improve39 ...ie/develop/src/mainloop.rkt:286:0 for-loop [31] 99.8% -------------------------------------------------------------------------------- gf [203] 10.1% expand-id-application-form17 [173] 22.5% syntax-e [3] 67.5% [19] 12826(2.7%) 324(0.1%) syntax-e/no-taint (unknown source) loop [54] 97.5% -------------------------------------------------------------------------------- approximate9 [2] 100.0% [20] 9620(2.1%) 312(0.1%) loop ...es/herbie/develop/src/core/taylor.rkt:86:4 hash-ref! [286] 90.2% iterate-diagonal [38] 3.3% ??? [112] 3.2% -------------------------------------------------------------------------------- ??? [1] 100.0% [21] 8994(1.9%) 0(0.0%) get-final-combination ...op/src/mainloop.rkt:309:0 infer-splitpoints [33] 100.0% -------------------------------------------------------------------------------- core-form-sym [77] 3.7% expand-id-application-form17 [173] 15.0% expand-identifier [10] 33.2% expand-implicit [7] 48.1% [22] 8720(1.9%) 1318(0.3%) resolve+shift28 (unknown source) fallback-loop [35] 84.9% -------------------------------------------------------------------------------- ??? [5] 100.0% [23] 5430(1.2%) 0(0.0%) for-loop ...bie/develop/src/core/taylor.rkt:298:27 hash-ref! [286] 88.6% simplify [32] 11.4% -------------------------------------------------------------------------------- approximate9 [2] 100.0% [24] 4848(1.0%) 0(0.0%) for-loop ...rbie/develop/src/core/taylor.rkt:29:18 taylor [34] 93.4% taylor-exp [12] 6.6% -------------------------------------------------------------------------------- set-precompute! [4] 100.0% [25] 4646(1.0%) 0(0.0%) for-loop ...ie/develop/src/core/simplify.rkt:142:2 setfindf [36] 47.4% eval-const-expr [37] 38.9% curried [276] 7.0% compose [39] 6.7% -------------------------------------------------------------------------------- ??? [8] 100.0% [26] 4472(1.0%) 0(0.0%) for-loop ...bie/develop/src/core/taylor.rkt:285:52 hash-ref! [286] 100.0% -------------------------------------------------------------------------------- ??? [9] 100.0% [27] 4182(0.9%) 0(0.0%) for-loop ...bie/develop/src/core/taylor.rkt:396:33 hash-ref! [286] 100.0% -------------------------------------------------------------------------------- ??? [13] 100.0% [28] 1600(0.3%) 0(0.0%) for-loop ...bie/develop/src/core/taylor.rkt:487:35 parse-loop14 [44] 100.0% -------------------------------------------------------------------------------- ??? [14] 100.0% [29] 316(0.1%) 0(0.0%) for-loop ...bie/develop/src/core/taylor.rkt:324:46 simplify [32] 100.0% -------------------------------------------------------------------------------- profile-thunk16 [17] 100.0% [30] 467832(100.0%) 0(0.0%) run ...racket/share/pkgs/profile-lib/main.rkt:39:2 ??? [1] 100.0% -------------------------------------------------------------------------------- run-improve39 [18] 100.0% [31] 421064(90.0%) 0(0.0%) for-loop .../herbie/develop/src/mainloop.rkt:303:8 run-iter! [40] 100.0% -------------------------------------------------------------------------------- first-nonzero-exp [63] 2.2% ??? [14] 2.3% ??? [112] 2.3% for-loop [29] 2.4% taylor-log [16] 2.4% for-loop [23] 4.6% taylor-invert [11] 9.8% taylor-exp [12] 12.0% hash-ref! [286] 62.0% [32] 13438(2.9%) 306(0.1%) simplify ...erbie/develop/src/core/reduce.rkt:16:0 f46 [255] 54.1% make-multiplication-node [46] 12.0% debug-print [131] 12.0% parse-loop14 [44] 9.9% debug7 [49] 5.2% simplify* [47] 4.7% -------------------------------------------------------------------------------- get-final-combination [21] 100.0% [33] 8994(1.9%) 0(0.0%) infer-splitpoints ...lop/src/core/regimes.rkt:21:0 for-loop [43] 100.0% -------------------------------------------------------------------------------- approximate9 [2] 11.0% map [263] 12.4% hash-ref! [286] 15.9% for-loop [24] 16.8% taylor [34] 43.8% [34] 8078(1.7%) 320(0.1%) taylor ...herbie/develop/src/core/taylor.rkt:163:0 taylor [34] 43.8% debug-print [131] 13.2% map [263] 12.4% loop [45] 12.2% taylor-quotient [50] 5.1% ??? [51] 3.9% taylor-exp [12] 3.2% taylor-invert [11] 3.1% curry* [185] 1.3% taylor-log [16] 0.4% -------------------------------------------------------------------------------- resolve+shift28 [22] 100.0% [35] 7402(1.6%) 1284(0.3%) fallback-loop (unknown source) for-loop [164] 82.7% -------------------------------------------------------------------------------- for-loop [25] 100.0% [36] 2204(0.5%) 938(0.2%) setfindf ...es/herbie/develop/src/common.rkt:176:0 for-loop [48] 42.3% custom-in-set [245] 15.2% -------------------------------------------------------------------------------- for-loop [25] 100.0% [37] 1806(0.4%) 0(0.0%) eval-const-expr .../develop/src/programs.rkt:132:0 eval-prog [106] 100.0% -------------------------------------------------------------------------------- loop [20] 100.0% [38] 322(0.1%) 322(0.1%) iterate-diagonal ...elop/src/core/taylor.rkt:153:0 -------------------------------------------------------------------------------- for-loop [25] 100.0% [39] 312(0.1%) 312(0.1%) compose ...collects/racket/private/list.rkt:385:12 -------------------------------------------------------------------------------- for-loop [31] 100.0% [40] 421064(90.0%) 0(0.0%) run-iter! ...herbie/develop/src/mainloop.rkt:267:0 simplify! [52] 74.1% finalize-iter! [53] 20.2% gen-series! [55] 3.9% gen-rewrites! [58] 1.5% -------------------------------------------------------------------------------- ??? [1] 98.5% [41] 19658(4.2%) 0(0.0%) prepare-points ...bie/develop/src/points.rkt:156:0 loop [56] 35.6% loop [67] 27.4% make-exacts* [69] 24.9% for-loop [59] 6.1% filter-p&e [62] 6.0% -------------------------------------------------------------------------------- ??? [1] 98.2% [42] 17782(3.8%) 0(0.0%) loop ...htlies/herbie/develop/src/points.rkt:180:2 loop [56] 40.9% loop [67] 32.9% make-exacts* [69] 15.4% for-loop [59] 10.7% -------------------------------------------------------------------------------- infer-splitpoints [33] 100.0% [43] 8994(1.9%) 0(0.0%) for-loop ...rbie/develop/src/core/regimes.rkt:33:6 option-on-expr [57] 96.7% filter [243] 3.3% -------------------------------------------------------------------------------- hash-ref! [286] 11.0% parse-loop14 [44] 13.2% map [263] 13.7% append-map [275] 16.1% simplify [32] 18.1% for-loop [28] 27.8% [44] 5754(1.2%) 308(0.1%) parse-loop14 ...s/racket/match/compiler.rkt:418:15 for-loop [61] 27.8% temp68_2 [109] 17.5% parse-loop14 [44] 13.2% loop [266] 11.0% loop [54] 8.3% eval [111] 6.0% for-loop [64] 5.6% make-multiplication-node [46] 5.2% -------------------------------------------------------------------------------- taylor [34] 100.0% [45] 1910(0.4%) 0(0.0%) loop ...s/herbie/develop/src/core/taylor.rkt:262:2 hash-ref! [286] 100.0% -------------------------------------------------------------------------------- parse-loop14 [44] 15.6% simplify [32] 84.4% [46] 1908(0.4%) 0(0.0%) make-multiplication-node .../core/reduce.rkt:230:0 make-multiplication-subnode [60] 100.0% -------------------------------------------------------------------------------- simplify [32] 40.3% map [263] 59.7% [47] 1560(0.3%) 318(0.1%) simplify* ...rbie/develop/src/core/reduce.rkt:31:0 hash-ref! [286] 59.7% return/no-unsupplied [233] 19.9% -------------------------------------------------------------------------------- setfindf [36] 100.0% [48] 932(0.2%) 932(0.2%) for-loop ...es/herbie/develop/src/common.rkt:177:2 -------------------------------------------------------------------------------- simplify [32] 100.0% [49] 696(0.1%) 360(0.1%) debug7 ...tlies/herbie/develop/src/debug.rkt:102:0 ??? [66] 48.3% -------------------------------------------------------------------------------- taylor [34] 100.0% [50] 660(0.1%) 0(0.0%) taylor-quotient ...velop/src/core/taylor.rkt:328:0 first-nonzero-exp [63] 100.0% -------------------------------------------------------------------------------- taylor [34] 100.0% [51] 312(0.1%) 312(0.1%) ??? ...e/develop/src/function-definitions.rkt:46:2 -------------------------------------------------------------------------------- run-iter! [40] 100.0% [52] 311972(66.7%) 0(0.0%) simplify! ...herbie/develop/src/mainloop.rkt:181:0 for-loop [65] 100.0% -------------------------------------------------------------------------------- run-iter! [40] 100.0% [53] 84948(18.2%) 0(0.0%) finalize-iter! ...e/develop/src/mainloop.rkt:221:0 ??? [66] 100.0% -------------------------------------------------------------------------------- datum->syntax6 [123] 0.3% gf [203] 0.5% apply-transformer52 [181] 1.8% syntax->list [230] 2.3% expand-capturing-lifts [139] 2.5% f46 [255] 2.7% eval-prog [106] 2.8% parse-loop14 [44] 3.6% loop [54] 4.8% lambda-clause-expander [149] 7.4% for-loop [164] 17.2% syntax-e/no-taint [19] 54.1% [54] 17910(3.8%) 2842(0.6%) loop (unknown source) gf [203] 52.8% expand-id-application-form17 [173] 17.2% dispatch-transformer41 [172] 5.7% loop [54] 4.8% expand-capturing-lifts [139] 3.7% syntax-e [3] 2.3% core-form-sym [77] 1.8% -------------------------------------------------------------------------------- run-iter! [40] 100.0% [55] 16348(3.5%) 0(0.0%) gen-series! ...rbie/develop/src/mainloop.rkt:151:0 for-loop [68] 100.0% -------------------------------------------------------------------------------- prepare-points [41] 49.0% loop [42] 51.0% [56] 14282(3.1%) 0(0.0%) loop ...htlies/herbie/develop/src/points.rkt:124:2 make-exacts* [69] 59.0% loop [67] 41.0% -------------------------------------------------------------------------------- for-loop [43] 100.0% [57] 8694(1.9%) 0(0.0%) option-on-expr ...velop/src/core/regimes.rkt:101:0 for-loop [71] 53.2% sort-context-on-expr [73] 28.3% err-lsts->split-indices [76] 11.0% loop [266] 3.8% eval-prog [106] 3.7% -------------------------------------------------------------------------------- run-iter! [40] 100.0% [58] 6220(1.3%) 0(0.0%) gen-rewrites! ...ie/develop/src/mainloop.rkt:164:0 for-loop [70] 100.0% -------------------------------------------------------------------------------- prepare-points [41] 38.6% loop [42] 61.4% [59] 3108(0.7%) 0(0.0%) for-loop ...s/herbie/develop/src/points.rkt:195:19 ??? [72] 100.0% -------------------------------------------------------------------------------- make-multiplication-node [46] 100.0% [60] 1908(0.4%) 0(0.0%) make-multiplication-subnode ...re/reduce.rkt:240:0 for-loop [74] 100.0% -------------------------------------------------------------------------------- parse-loop14 [44] 100.0% [61] 1600(0.3%) 0(0.0%) for-loop ...bie/develop/src/core/taylor.rkt:490:59 hash-ref! [286] 100.0% -------------------------------------------------------------------------------- prepare-points [41] 100.0% [62] 1176(0.3%) 0(0.0%) filter-p&e .../herbie/develop/src/points.rkt:137:0 for-loop [75] 100.0% -------------------------------------------------------------------------------- taylor-invert [11] 31.1% taylor-quotient [50] 68.9% [63] 958(0.2%) 0(0.0%) first-nonzero-exp ...lop/src/core/taylor.rkt:260:0 hash-ref! [286] 68.9% simplify [32] 31.1% -------------------------------------------------------------------------------- parse-loop14 [44] 100.0% [64] 322(0.1%) 0(0.0%) for-loop ...rbie/develop/src/core/reduce.rkt:99:13 simplify-node [267] 100.0% -------------------------------------------------------------------------------- simplify! [52] 100.0% [65] 311972(66.7%) 0(0.0%) for-loop .../herbie/develop/src/mainloop.rkt:185:6 for-loop [78] 99.9% ??? [112] 0.1% -------------------------------------------------------------------------------- debug7 [49] 0.3% substitute-e [163] 1.6% variable? [6] 5.0% match-e [154] 8.6% finalize-iter! [53] 83.5% [66] 101692(21.7%) 12384(2.6%) ??? ...contract/private/arrow-val-first.rkt:388:18 for-loop [79] 83.5% hash-has-key? [194] 3.4% -------------------------------------------------------------------------------- prepare-points [41] 31.5% loop [42] 34.2% loop [56] 34.2% [67] 17090(3.7%) 0(0.0%) loop ...htlies/herbie/develop/src/points.rkt:107:4 loop [266] 95.6% ??? [108] 4.4% -------------------------------------------------------------------------------- gen-series! [55] 100.0% [68] 16348(3.5%) 0(0.0%) for-loop .../herbie/develop/src/mainloop.rkt:157:7 taylor-alt [80] 100.0% -------------------------------------------------------------------------------- loop [42] 17.1% prepare-points [41] 30.4% loop [56] 52.5% [69] 16066(3.4%) 0(0.0%) make-exacts* ...erbie/develop/src/points.rkt:104:0 loop [266] 93.8% eval-prog [106] 6.2% -------------------------------------------------------------------------------- gen-rewrites! [58] 100.0% [70] 6220(1.3%) 0(0.0%) for-loop ...herbie/develop/src/mainloop.rkt:169:11 ??? [81] 100.0% -------------------------------------------------------------------------------- option-on-expr [57] 100.0% [71] 4624(1.0%) 0(0.0%) for-loop ...bie/develop/src/core/regimes.rkt:109:4 errors [102] 100.0% -------------------------------------------------------------------------------- for-loop [59] 100.0% [72] 3108(0.7%) 0(0.0%) ??? ...ghtlies/herbie/develop/src/points.rkt:172:7 for-loop [82] 100.0% -------------------------------------------------------------------------------- option-on-expr [57] 100.0% [73] 2460(0.5%) 0(0.0%) sort-context-on-expr ...evelop/src/points.rkt:90:0 ??? [83] 100.0% -------------------------------------------------------------------------------- make-multiplication-subnode [60] 100.0% [74] 1908(0.4%) 0(0.0%) for-loop ...rbie/develop/src/core/reduce.rkt:242:3 mterm->expr [84] 83.2% make-multiplication-subsubsubnode [86] 16.8% -------------------------------------------------------------------------------- filter-p&e [62] 100.0% [75] 1176(0.3%) 1176(0.3%) for-loop ...es/herbie/develop/src/points.rkt:139:2 -------------------------------------------------------------------------------- option-on-expr [57] 100.0% [76] 956(0.2%) 0(0.0%) err-lsts->split-indices .../core/regimes.rkt:244:0 loop [85] 100.0% -------------------------------------------------------------------------------- loop [54] 100.0% [77] 320(0.1%) 0(0.0%) core-form-sym (unknown source) resolve+shift28 [22] 100.0% -------------------------------------------------------------------------------- for-loop [65] 100.0% [78] 311640(66.6%) 0(0.0%) for-loop .../herbie/develop/src/mainloop.rkt:209:8 ??? [112] 100.0% -------------------------------------------------------------------------------- ??? [66] 100.0% [79] 84948(18.2%) 0(0.0%) for-loop ...ie/develop/src/core/alt-table.rkt:51:2 atab-add-altn [87] 95.8% loop [91] 4.2% -------------------------------------------------------------------------------- for-loop [68] 100.0% [80] 16348(3.5%) 0(0.0%) taylor-alt ...erbie/develop/src/mainloop.rkt:136:0 for-loop [88] 100.0% -------------------------------------------------------------------------------- for-loop [70] 100.0% [81] 6220(1.3%) 0(0.0%) ??? ...ies/herbie/develop/src/alternative.rkt:60:0 rewriter [90] 100.0% -------------------------------------------------------------------------------- ??? [72] 100.0% [82] 3108(0.7%) 604(0.1%) for-loop ...es/herbie/develop/src/points.rkt:173:9 ??? [112] 80.6% -------------------------------------------------------------------------------- sort-context-on-expr [73] 100.0% [83] 2460(0.5%) 0(0.0%) ??? ...cket/collects/racket/private/sort.rkt:369:3 generic-sort/key [92] 62.3% loop [104] 37.7% -------------------------------------------------------------------------------- for-loop [74] 100.0% [84] 1588(0.3%) 0(0.0%) mterm->expr ...e/develop/src/core/reduce.rkt:270:0 type-of [89] 100.0% -------------------------------------------------------------------------------- err-lsts->split-indices [76] 100.0% [85] 956(0.2%) 0(0.0%) loop .../herbie/develop/src/core/regimes.rkt:295:4 for-loop [93] 100.0% -------------------------------------------------------------------------------- for-loop [74] 100.0% [86] 320(0.1%) 320(0.1%) make-multiplication-subsubsubnode ...uce.rkt:262:0 -------------------------------------------------------------------------------- for-loop [79] 100.0% [87] 81376(17.4%) 0(0.0%) atab-add-altn ...elop/src/core/alt-table.rkt:210:0 best-and-tied-at-points [94] 52.8% override-at-pnts [95] 47.2% -------------------------------------------------------------------------------- taylor-alt [80] 100.0% [88] 16348(3.5%) 0(0.0%) for-loop .../herbie/develop/src/mainloop.rkt:142:6 ??? [112] 100.0% -------------------------------------------------------------------------------- mterm->expr [84] 23.1% for-loop [96] 76.9% [89] 6884(1.5%) 0(0.0%) type-of .../herbie/develop/src/type-check.rkt:34:0 ??? [213] 44.9% for-loop [239] 27.7% table-ref [212] 18.4% ??? [244] 4.6% ...velop/src/common.rkt:48:2 [214] 4.3% -------------------------------------------------------------------------------- ??? [81] 28.7% matcher [103] 71.3% [90] 6220(1.3%) 0(0.0%) rewriter ...bie/develop/src/core/matcher.rkt:131:2 for-loop [96] 95.0% *rules* [99] 5.0% -------------------------------------------------------------------------------- for-loop [79] 100.0% [91] 3572(0.8%) 1356(0.3%) loop ...erbie/develop/src/core/alt-table.rkt:184:2 argmax [97] 44.6% map [263] 9.0% loop [101] 8.5% -------------------------------------------------------------------------------- ??? [83] 100.0% [92] 1532(0.3%) 0(0.0%) generic-sort/key .../racket/private/sort.rkt:156:2 copying-mergesort [98] 100.0% -------------------------------------------------------------------------------- loop [85] 100.0% [93] 956(0.2%) 300(0.1%) for-loop ...bie/develop/src/core/regimes.rkt:260:4 for-loop [100] 68.6% -------------------------------------------------------------------------------- atab-add-altn [87] 100.0% [94] 42998(9.2%) 0(0.0%) best-and-tied-at-points ...ore/alt-table.rkt:122:0 errors [102] 98.5% filter [243] 0.7% -------------------------------------------------------------------------------- atab-add-altn [87] 100.0% [95] 38378(8.2%) 0(0.0%) override-at-pnts ...p/src/core/alt-table.rkt:145:0 errors [102] 99.2% -------------------------------------------------------------------------------- rewriter [90] 100.0% [96] 6220(1.3%) 0(0.0%) for-loop ...ie/develop/src/core/matcher.rkt:134:10 matcher [103] 76.2% type-of [89] 23.8% -------------------------------------------------------------------------------- loop [91] 100.0% [97] 1592(0.3%) 0(0.0%) argmax ...92/racket/collects/racket/list.rkt:766:0 for-loop [155] 80.3% expression-cost [157] 19.7% -------------------------------------------------------------------------------- generic-sort/key [92] 41.5% copying-mergesort [98] 58.5% [98] 1532(0.3%) 0(0.0%) copying-mergesort ...racket/private/sort.rkt:129:8 copying-mergesort [98] 58.5% loop [104] 36.2% jloop [15] 5.3% -------------------------------------------------------------------------------- rewriter [90] 100.0% [99] 924(0.2%) 0(0.0%) *rules* ...rbie/develop/src/syntax/rules.rkt:643:0 for-loop [176] 100.0% -------------------------------------------------------------------------------- for-loop [93] 100.0% [100] 656(0.1%) 322(0.1%) for-loop ...bie/develop/src/core/regimes.rkt:264:8 curried [276] 50.9% -------------------------------------------------------------------------------- loop [91] 100.0% [101] 302(0.1%) 302(0.1%) loop ...p92/racket/collects/racket/list.rkt:434:28 -------------------------------------------------------------------------------- ??? [145] 1.1% for-loop [71] 5.4% override-at-pnts [95] 44.3% best-and-tied-at-points [94] 49.3% [102] 86006(18.4%) 690(0.1%) errors ...lies/herbie/develop/src/points.rkt:203:0 for-loop [105] 58.5% eval-prog [106] 40.3% -------------------------------------------------------------------------------- for-loop [107] 50.0% for-loop [96] 50.0% [103] 6220(1.3%) 0(0.0%) matcher ...rbie/develop/src/core/matcher.rkt:168:2 for-loop [107] 50.0% rewriter [90] 50.0% -------------------------------------------------------------------------------- ??? [83] 43.4% copying-mergesort [98] 56.6% [104] 2138(0.5%) 298(0.1%) loop ...ket/collects/racket/private/sort.rkt:96:12 ??? [108] 86.1% -------------------------------------------------------------------------------- errors [102] 100.0% [105] 50306(10.8%) 2182(0.5%) for-loop ...es/herbie/develop/src/points.rkt:206:4 ??? [108] 85.4% ulp-difference [110] 5.2% ??? [112] 3.8% -------------------------------------------------------------------------------- option-on-expr [57] 0.8% make-exacts* [69] 2.6% eval-const-expr [37] 4.8% errors [102] 91.8% [106] 37776(8.1%) 0(0.0%) eval-prog ...herbie/develop/src/programs.rkt:109:0 temp68_2 [109] 73.0% f46 [255] 20.2% loop [54] 3.4% eval [111] 2.4% -------------------------------------------------------------------------------- matcher [103] 100.0% [107] 6220(1.3%) 0(0.0%) for-loop ...ie/develop/src/core/matcher.rkt:184:21 matcher [103] 100.0% -------------------------------------------------------------------------------- jloop [15] 0.4% loop [67] 1.0% loop [104] 2.4% loop [266] 40.1% for-loop [105] 56.1% [108] 76646(16.4%) 5596(1.2%) ??? ...tlies/herbie/develop/src/programs.rkt:129:2 ??? [113] 53.0% loop [266] 25.4% bf [272] 8.9% ??? [112] 5.3% -------------------------------------------------------------------------------- f46 [255] 3.1% parse-loop14 [44] 5.4% eval-prog [106] 91.6% [109] 30116(6.4%) 0(0.0%) temp68_2 (unknown source) compile16 [114] 100.0% -------------------------------------------------------------------------------- for-loop [105] 100.0% [110] 2602(0.6%) 978(0.2%) ulp-difference ...erbie/develop/src/float.rkt:19:0 ??? [232] 48.7% return/no-unsupplied [233] 13.7% -------------------------------------------------------------------------------- parse-loop14 [44] 27.3% eval-prog [106] 72.7% [111] 1268(0.3%) 0(0.0%) eval (unknown source) namespace-syntax-introduce3 [115] 50.6% datum->syntax6 [123] 49.4% -------------------------------------------------------------------------------- loop [20] 0.0% for-loop [65] 0.1% map [263] 0.2% for-loop [105] 0.6% for-loop [82] 0.7% ??? [287] 0.8% ??? [108] 1.2% for-loop [88] 1.9% loop [266] 2.7% for-loop [78] 44.8% location-do [116] 46.7% [112] 347974(74.4%) 2918(0.6%) ??? ...tract/private/arrow-higher-order.rkt:357:33 location-do [116] 46.8% ??? [117] 44.7% ->flonum [119] 3.9% approximate9 [2] 1.9% hash-ref! [286] 0.9% best-alt [125] 0.3% ??? [126] 0.0% simplify [32] 0.0% -------------------------------------------------------------------------------- ??? [108] 100.0% [113] 40622(8.7%) 24238(5.2%) ??? ...acket/collects/racket/private/kw.rkt:592:14 ??? [120] 11.7% bf* [121] 10.6% ??? [122] 7.6% ??? [130] 5.3% ...higher-order.rkt:361:33 [124] 2.7% ??? [264] 2.4% -------------------------------------------------------------------------------- temp68_2 [109] 100.0% [114] 30116(6.4%) 0(0.0%) compile16 (unknown source) temp74_0 [118] 100.0% -------------------------------------------------------------------------------- eval [111] 100.0% [115] 642(0.1%) 296(0.1%) namespace-syntax-introduce3 (unknown source) datum->syntax6 [123] 53.9% -------------------------------------------------------------------------------- ??? [112] 30.0% location-do [116] 70.0% [116] 328320(70.2%) 332(0.1%) location-do ...erbie/develop/src/programs.rkt:90:0 location-do [116] 70.0% ??? [112] 29.9% -------------------------------------------------------------------------------- ??? [112] 99.9% [117] 311662(66.6%) 0(0.0%) ??? ...s/herbie/develop/src/core/simplify.rkt:31:0 iterate-egraph!7 [127] 78.0% loop [128] 21.4% mk-egraph [133] 0.5% debug-print [131] 0.1% -------------------------------------------------------------------------------- compile16 [114] 100.0% [118] 30116(6.4%) 0(0.0%) temp74_0 (unknown source) expand-single [129] 94.7% compile-top9 [132] 5.3% -------------------------------------------------------------------------------- ??? [112] 100.0% [119] 13596(2.9%) 7152(1.5%) ->flonum ...s/herbie/develop/src/programs.rkt:36:0 return/no-unsupplied [233] 23.0% ??? [232] 19.5% ??? [262] 2.4% ??? [281] 2.4% -------------------------------------------------------------------------------- ??? [113] 100.0% [120] 4752(1.0%) 2482(0.5%) ??? ...herbie/develop/src/syntax/syntax.rkt:195:17 return/no-unsupplied [233] 20.5% ??? [232] 13.9% list-member? [270] 13.4% -------------------------------------------------------------------------------- ??? [113] 100.0% [121] 4286(0.9%) 0(0.0%) bf* ...ath/private/bigfloat/bigfloat-mpfr.rkt:95:0 ??? [130] 100.0% -------------------------------------------------------------------------------- ??? [113] 100.0% [122] 3106(0.7%) 3106(0.7%) ??? ...rivate/unconstrained-domain-arrow.rkt:40:13 -------------------------------------------------------------------------------- expand-implicit [7] 25.6% namespace-syntax-introduce3 [115] 26.5% eval [111] 47.9% [123] 1306(0.3%) 680(0.1%) datum->syntax6 (unknown source) loop [54] 47.9% -------------------------------------------------------------------------------- ??? [113] 100.0% [124] 1102(0.2%) 0(0.0%) ...higher-order.rkt:361:33 (unknown source) ??? [247] 100.0% -------------------------------------------------------------------------------- ??? [112] 100.0% [125] 944(0.2%) 0(0.0%) best-alt .../herbie/develop/src/mainloop.rkt:108:0 loop [134] 67.2% argmins [136] 32.8% -------------------------------------------------------------------------------- ??? [112] 100.0% [126] 312(0.1%) 0(0.0%) ??? ...lies/herbie/develop/src/mainloop.rkt:210:62 *simplify-rules* [135] 100.0% -------------------------------------------------------------------------------- ??? [117] 100.0% [127] 243202(52.0%) 0(0.0%) iterate-egraph!7 ...lop/src/core/simplify.rkt:55:0 one-iter [137] 97.6% map-enodes [141] 2.4% -------------------------------------------------------------------------------- ??? [117] 100.0% [128] 66574(14.2%) 322(0.1%) loop ...herbie/develop/src/core/simplify.rkt:184:2 for-loop [138] 99.5% -------------------------------------------------------------------------------- temp74_0 [118] 100.0% [129] 28510(6.1%) 0(0.0%) expand-single (unknown source) expand-capturing-lifts [139] 100.0% -------------------------------------------------------------------------------- ??? [113] 33.6% bf* [121] 66.4% [130] 6454(1.4%) 0(0.0%) ??? ...-racket/utils/simple-result-arrow.rkt:39:12 bfmul [140] 100.0% -------------------------------------------------------------------------------- ??? [117] 9.2% taylor [34] 40.9% simplify [32] 49.9% [131] 3226(0.7%) 596(0.1%) debug-print .../herbie/develop/src/debug.rkt:107:0 for-loop [142] 81.5% -------------------------------------------------------------------------------- temp74_0 [118] 100.0% [132] 1606(0.3%) 0(0.0%) compile-top9 (unknown source) compile-forms31 [143] 100.0% -------------------------------------------------------------------------------- ??? [117] 100.0% [133] 1588(0.3%) 0(0.0%) mk-egraph ...bie/develop/src/core/egraph.rkt:131:0 mk-enode-rec! [144] 100.0% -------------------------------------------------------------------------------- best-alt [125] 100.0% [134] 634(0.1%) 0(0.0%) loop ...htlies/herbie/develop/src/common.rkt:143:2 ??? [145] 100.0% -------------------------------------------------------------------------------- ??? [126] 100.0% [135] 312(0.1%) 0(0.0%) *simplify-rules* ...lop/src/syntax/rules.rkt:648:0 for-loop [176] 100.0% -------------------------------------------------------------------------------- best-alt [125] 100.0% [136] 310(0.1%) 0(0.0%) argmins ...ies/herbie/develop/src/common.rkt:142:0 ??? [145] 100.0% -------------------------------------------------------------------------------- iterate-egraph!7 [127] 100.0% [137] 237280(50.7%) 2606(0.6%) one-iter ...bie/develop/src/core/simplify.rkt:66:0 for-loop [146] 67.9% for-loop [147] 30.9% filter [243] 0.1% -------------------------------------------------------------------------------- loop [128] 100.0% [138] 66252(14.2%) 1256(0.3%) for-loop ...e/develop/src/core/simplify.rkt:177:29 argmin [148] 81.2% loop [150] 12.2% for-loop [151] 4.3% make-sequence [229] 0.5% -------------------------------------------------------------------------------- loop [54] 5.3% expand-single [129] 94.7% [139] 30110(6.4%) 312(0.1%) expand-capturing-lifts (unknown source) lambda-clause-expander [149] 88.4% dispatch-transformer41 [172] 6.4% loop [54] 2.0% expand-implicit [7] 1.1% -------------------------------------------------------------------------------- ??? [130] 100.0% [140] 6454(1.4%) 0(0.0%) bfmul ...-lib/math/private/bigfloat/mpfr.rkt:821:4 new-mpfr [280] 74.7% ??? [281] 25.3% -------------------------------------------------------------------------------- iterate-egraph!7 [127] 100.0% [141] 5922(1.3%) 0(0.0%) map-enodes ...ie/develop/src/core/egraph.rkt:140:0 loop [266] 84.3% set-precompute! [4] 10.1% hash-keys [152] 5.6% -------------------------------------------------------------------------------- debug-print [131] 100.0% [142] 2630(0.6%) 2630(0.6%) for-loop ...ies/herbie/develop/src/debug.rkt:113:2 -------------------------------------------------------------------------------- compile-top9 [132] 100.0% [143] 1606(0.3%) 310(0.1%) compile-forms31 (unknown source) for-loop [164] 80.7% -------------------------------------------------------------------------------- mk-egraph [133] 21.0% mk-enode-rec! [144] 79.0% [144] 1588(0.3%) 322(0.1%) mk-enode-rec! ...develop/src/core/egraph.rkt:122:0 mk-enode-rec! [144] 79.0% mk-enode! [178] 17.7% -------------------------------------------------------------------------------- argmins [136] 32.8% loop [134] 67.2% [145] 944(0.2%) 0(0.0%) ??? ...lies/herbie/develop/src/mainloop.rkt:110:19 errors [102] 100.0% -------------------------------------------------------------------------------- one-iter [137] 100.0% [146] 161100(34.4%) 296(0.1%) for-loop ...ie/develop/src/core/simplify.rkt:113:2 for-loop [153] 85.2% match-e [154] 11.0% set [205] 2.0% reduce-to-single! [159] 0.6% make-sequence [229] 0.2% custom-set-intersect [161] 0.2% -------------------------------------------------------------------------------- for-loop [147] 48.3% one-iter [137] 51.7% [147] 73266(15.7%) 17566(3.8%) for-loop ...ie/develop/src/core/simplify.rkt:76:12 for-loop [147] 48.3% match-e [154] 37.1% variable? [6] 0.6% ??? [183] 0.2% -------------------------------------------------------------------------------- for-loop [138] 100.0% [148] 53796(11.5%) 0(0.0%) argmin ...92/racket/collects/racket/list.rkt:765:0 for-loop [155] 87.1% expression-cost [157] 12.9% -------------------------------------------------------------------------------- expand-capturing-lifts [139] 100.0% [149] 26620(5.7%) 0(0.0%) lambda-clause-expander (unknown source) finish-bodys [156] 91.7% loop [54] 8.3% -------------------------------------------------------------------------------- for-loop [138] 100.0% [150] 8076(1.7%) 0(0.0%) loop .../p92/racket/collects/racket/list.rkt:751:4 for-loop [155] 88.5% expression-cost [157] 11.5% -------------------------------------------------------------------------------- for-loop [138] 100.0% [151] 2816(0.6%) 942(0.2%) for-loop ...e/develop/src/core/simplify.rkt:164:13 for-loop [158] 66.5% -------------------------------------------------------------------------------- map-enodes [141] 100.0% [152] 332(0.1%) 0(0.0%) hash-keys .../collects/racket/private/hash.rkt:2:2 loop [160] 100.0% -------------------------------------------------------------------------------- for-loop [146] 100.0% [153] 137254(29.3%) 324(0.1%) for-loop ...bie/develop/src/core/simplify.rkt:98:4 mk-enode! [178] 44.0% substitute-e [163] 30.7% merge-egraph-nodes! [165] 16.2% loop! [179] 8.8% -------------------------------------------------------------------------------- for-loop [146] 15.3% for-loop [169] 23.5% for-loop [147] 61.1% [154] 72078(15.4%) 20542(4.4%) match-e ...herbie/develop/src/core/ematch.rkt:46:0 for-loop [162] 65.6% ??? [66] 5.5% variable? [6] 2.3% custom-in-set [245] 0.4% make-sequence [229] 0.2% -------------------------------------------------------------------------------- argmax [97] 2.3% loop [150] 12.9% argmin [148] 84.8% [155] 55286(11.8%) 2750(0.6%) for-loop .../herbie/develop/src/programs.rkt:169:2 table-ref [212] 73.5% ...velop/src/common.rkt:48:2 [214] 21.6% -------------------------------------------------------------------------------- lambda-clause-expander [149] 6.8% for-loop [164] 93.2% [156] 24412(5.2%) 0(0.0%) finish-bodys (unknown source) for-loop [164] 100.0% -------------------------------------------------------------------------------- argmax [97] 3.8% loop [150] 11.4% argmin [148] 84.8% [157] 8178(1.7%) 608(0.1%) expression-cost .../develop/src/programs.rkt:168:0 compile [166] 92.6% -------------------------------------------------------------------------------- for-loop [151] 100.0% [158] 1874(0.4%) 1874(0.4%) for-loop ...e/develop/src/core/simplify.rkt:167:37 -------------------------------------------------------------------------------- for-loop [146] 100.0% [159] 904(0.2%) 602(0.1%) reduce-to-single! ...lop/src/core/egraph.rkt:325:0 make-sequence [229] 33.4% -------------------------------------------------------------------------------- hash-keys [152] 1.4% loop [160] 98.6% [160] 332(0.1%) 332(0.1%) loop ...acket/collects/racket/private/hash.rkt:3:4 loop [160] 98.6% -------------------------------------------------------------------------------- for-loop [146] 100.0% [161] 298(0.1%) 0(0.0%) custom-set-intersect ...rivate/set-types.rkt:195:0 for-loop [167] 100.0% -------------------------------------------------------------------------------- match-e [154] 100.0% [162] 53982(11.5%) 25498(5.5%) for-loop ...rbie/develop/src/core/ematch.rkt:59:11 for-loop [169] 49.2% list-cartesian-product [174] 5.5% loop [266] 4.6% foldl [273] 2.3% curry* [185] 0.9% filter [243] 0.6% -------------------------------------------------------------------------------- for-loop [168] 4.7% for-loop [153] 95.3% [163] 42130(9.0%) 620(0.1%) substitute-e ...e/develop/src/core/ematch.rkt:71:0 for-loop [168] 97.5% ??? [66] 1.4% variable? [6] 0.4% -------------------------------------------------------------------------------- fallback-loop [35] 1.9% compile-forms31 [143] 5.0% for-loop [164] 5.4% finish-bodys [156] 87.7% [164] 26032(5.6%) 8978(1.9%) for-loop (unknown source) finish-bodys [156] 82.2% for-loop [164] 5.4% syntax-e [3] 1.6% loop [54] 1.1% expand-implicit [7] 1.1% expand-identifier [10] 0.8% dispatch-transformer41 [172] 0.3% expand-id-application-form17 [173] 0.1% -------------------------------------------------------------------------------- for-loop [171] 9.2% for-loop [153] 90.8% [165] 22270(4.8%) 312(0.1%) merge-egraph-nodes! ...p/src/core/egraph.rkt:153:0 update-leader! [170] 64.6% for-loop [171] 24.1% enode-merge! [175] 7.8% make-sequence [229] 1.4% for-loop [176] 0.7% -------------------------------------------------------------------------------- expression-cost [157] 100.0% [166] 7570(1.6%) 0(0.0%) compile ...s/herbie/develop/src/programs.rkt:145:0 hash-ref! [286] 100.0% -------------------------------------------------------------------------------- custom-set-intersect [161] 100.0% [167] 298(0.1%) 0(0.0%) for-loop ...cts/racket/private/set-types.rkt:207:3 for-loop [177] 100.0% -------------------------------------------------------------------------------- substitute-e [163] 100.0% [168] 42130(9.0%) 1030(0.2%) for-loop ...rbie/develop/src/core/ematch.rkt:80:24 mk-enode! [178] 91.5% substitute-e [163] 7.2% -------------------------------------------------------------------------------- for-loop [162] 100.0% [169] 33852(7.2%) 1548(0.3%) for-loop ...rbie/develop/src/core/ematch.rkt:65:37 match-e [154] 91.6% ??? [183] 4.7% -------------------------------------------------------------------------------- merge-egraph-nodes! [165] 100.0% [170] 15028(3.2%) 1558(0.3%) update-leader! ...evelop/src/core/egraph.rkt:218:0 for-loop [180] 50.3% for-loop [182] 32.9% make-sequence [229] 4.4% custom-set-union! [189] 2.1% -------------------------------------------------------------------------------- merge-egraph-nodes! [165] 100.0% [171] 6616(1.4%) 0(0.0%) for-loop ...bie/develop/src/core/egraph.rkt:201:10 loop! [179] 50.2% merge-egraph-nodes! [165] 49.8% -------------------------------------------------------------------------------- for-loop [164] 30.1% loop [54] 34.8% expand-capturing-lifts [139] 35.1% [172] 5472(1.2%) 0(0.0%) dispatch-transformer41 (unknown source) apply-transformer52 [181] 100.0% -------------------------------------------------------------------------------- for-loop [164] 11.6% loop [54] 88.4% [173] 5118(1.1%) 334(0.1%) expand-id-application-form17 (unknown source) syntax-e/no-taint [19] 56.3% resolve+shift28 [22] 25.6% binding-lookup50 [188] 11.6% -------------------------------------------------------------------------------- list-cartesian-product [174] 13.7% for-loop [162] 86.3% [174] 4654(1.0%) 3116(0.7%) list-cartesian-product ...src/core/ematch.rkt:20:0 for-loop [184] 26.3% list-cartesian-product [174] 13.7% -------------------------------------------------------------------------------- merge-egraph-nodes! [165] 100.0% [175] 2192(0.5%) 0(0.0%) enode-merge! ...e/develop/src/core/enode.rkt:127:0 custom-set-intersect! [186] 57.7% adopt-enode! [187] 42.3% -------------------------------------------------------------------------------- *simplify-rules* [135] 20.0% merge-egraph-nodes! [165] 20.7% *rules* [99] 59.3% [176] 1558(0.3%) 944(0.2%) for-loop ...ies/herbie/develop/src/common.rkt:92:9 curry* [185] 20.2% ormap [190] 19.3% -------------------------------------------------------------------------------- for-loop [167] 100.0% [177] 298(0.1%) 298(0.1%) for-loop ...cts/racket/private/set-types.rkt:201:4 -------------------------------------------------------------------------------- mk-enode-rec! [144] 1.3% for-loop [168] 38.5% for-loop [153] 60.3% [178] 100266(21.4%) 4712(1.0%) mk-enode! ...bie/develop/src/core/egraph.rkt:102:0 new-enode [191] 89.9% for-loop [195] 3.8% hash-has-key? [194] 1.0% -------------------------------------------------------------------------------- for-loop [171] 18.2% loop [266] 29.3% for-loop [153] 52.5% [179] 16212(3.5%) 2816(0.6%) loop! ...s/herbie/develop/src/core/enode.rkt:190:2 custom-set-union [193] 36.8% loop [266] 33.1% set [205] 10.6% update-en-expr [234] 8.2% -------------------------------------------------------------------------------- update-leader! [170] 100.0% [180] 7560(1.6%) 332(0.1%) for-loop ...rbie/develop/src/core/egraph.rkt:223:6 for-loop [192] 95.6% -------------------------------------------------------------------------------- dispatch-transformer41 [172] 100.0% [181] 5472(1.2%) 306(0.1%) apply-transformer52 (unknown source) apply-transformer-in-context [196] 64.9% apply-post-expansion [197] 23.6% loop [54] 5.8% -------------------------------------------------------------------------------- update-leader! [170] 100.0% [182] 4938(1.1%) 4000(0.9%) for-loop ...rbie/develop/src/core/egraph.rkt:233:6 update-en-expr [234] 19.0% -------------------------------------------------------------------------------- for-loop [147] 16.7% for-loop [169] 83.3% [183] 1926(0.4%) 1272(0.3%) ??? ...ies/herbie/develop/src/core/ematch.rkt:50:5 for-loop [198] 34.0% -------------------------------------------------------------------------------- list-cartesian-product [174] 100.0% [184] 1538(0.3%) 1538(0.3%) for-loop ...erbie/develop/src/core/ematch.rkt:24:8 -------------------------------------------------------------------------------- for-loop [176] 24.5% taylor [34] 25.4% for-loop [162] 50.1% [185] 1282(0.3%) 962(0.2%) curry* ...racket/collects/racket/function.rkt:44:2 procedure-arity [199] 25.0% -------------------------------------------------------------------------------- enode-merge! [175] 100.0% [186] 1264(0.3%) 1264(0.3%) custom-set-intersect! ...ivate/set-types.rkt:269:0 -------------------------------------------------------------------------------- enode-merge! [175] 100.0% [187] 928(0.2%) 330(0.1%) adopt-enode! ...e/develop/src/core/enode.rkt:103:0 custom-set-union [193] 64.4% -------------------------------------------------------------------------------- expand-implicit [7] 33.4% expand-id-application-form17 [173] 66.6% [188] 892(0.2%) 592(0.1%) binding-lookup50 (unknown source) binding->module-instance [200] 33.6% -------------------------------------------------------------------------------- update-leader! [170] 100.0% [189] 310(0.1%) 310(0.1%) custom-set-union! ...t/private/set-types.rkt:245:0 -------------------------------------------------------------------------------- for-loop [176] 100.0% [190] 300(0.1%) 0(0.0%) ormap ...et/collects/racket/private/map.rkt:141:13 flag-set? [201] 100.0% -------------------------------------------------------------------------------- mk-enode! [178] 100.0% [191] 90152(19.3%) 638(0.1%) new-enode ...erbie/develop/src/core/enode.rkt:95:0 type-of-enode-expr [202] 98.6% set [205] 0.7% -------------------------------------------------------------------------------- for-loop [180] 100.0% [192] 7228(1.5%) 0(0.0%) for-loop ...rbie/develop/src/core/egraph.rkt:224:8 hash-update! [204] 100.0% -------------------------------------------------------------------------------- adopt-enode! [187] 8.3% loop! [179] 91.7% [193] 7164(1.5%) 3096(0.7%) custom-set-union ...et/private/set-types.rkt:168:0 for-loop [206] 48.2% for-loop [210] 8.6% -------------------------------------------------------------------------------- mk-enode! [178] 22.3% ??? [66] 77.7% [194] 4396(0.9%) 1918(0.4%) hash-has-key? ...ket/private/more-scheme.rkt:371:2 ??? [225] 35.1% ??? [209] 21.2% -------------------------------------------------------------------------------- mk-enode! [178] 100.0% [195] 3790(0.8%) 3790(0.8%) for-loop ...bie/develop/src/core/egraph.rkt:114:10 -------------------------------------------------------------------------------- apply-transformer52 [181] 100.0% [196] 3554(0.8%) 952(0.2%) apply-transformer-in-context (unknown source) ??? [207] 36.4% parse-app [208] 28.2% go [211] 8.7% -------------------------------------------------------------------------------- apply-transformer52 [181] 100.0% [197] 1292(0.3%) 0(0.0%) apply-post-expansion (unknown source) gf [203] 100.0% -------------------------------------------------------------------------------- ??? [183] 100.0% [198] 654(0.1%) 654(0.1%) for-loop ...erbie/develop/src/core/ematch.rkt:51:7 -------------------------------------------------------------------------------- curry* [185] 100.0% [199] 320(0.1%) 320(0.1%) procedure-arity ...ket/private/norm-arity.rkt:7:27 -------------------------------------------------------------------------------- binding-lookup50 [188] 100.0% [200] 300(0.1%) 300(0.1%) binding->module-instance (unknown source) -------------------------------------------------------------------------------- ormap [190] 100.0% [201] 300(0.1%) 300(0.1%) flag-set? ...es/herbie/develop/src/config.rkt:31:0 -------------------------------------------------------------------------------- new-enode [191] 100.0% [202] 88916(19.0%) 934(0.2%) type-of-enode-expr ...elop/src/core/enode.rkt:68:0 ??? [213] 50.8% for-loop [239] 22.4% table-ref [212] 18.0% ...velop/src/common.rkt:48:2 [214] 7.0% get/build-late-neg-projection [249] 0.7% -------------------------------------------------------------------------------- apply-post-expansion [197] 4.3% loop [54] 95.7% [203] 12492(2.7%) 1258(0.3%) gf (unknown source) propagation-apply [216] 43.1% propagation-apply-shifted [218] 20.4% propagation-merge [219] 14.5% cache-or-reuse-set [222] 5.3% syntax-e/no-taint [19] 4.3% loop [54] 2.2% -------------------------------------------------------------------------------- for-loop [192] 100.0% [204] 7228(1.5%) 0(0.0%) hash-update! ...cket/private/more-scheme.rkt:365:4 ??? [215] 100.0% -------------------------------------------------------------------------------- new-enode [191] 8.3% for-loop [146] 43.8% loop! [179] 47.9% [205] 7176(1.5%) 5576(1.2%) set ...collects/racket/private/set-types.rkt:981:0 for-loop [220] 22.3% -------------------------------------------------------------------------------- custom-set-union [193] 100.0% [206] 3450(0.7%) 602(0.1%) for-loop ...cts/racket/private/set-types.rkt:174:3 for-loop [217] 82.6% -------------------------------------------------------------------------------- apply-transformer-in-context [196] 100.0% [207] 1292(0.3%) 0(0.0%) ??? ...collects/racket/private/qq-and-or.rkt:155:9 ??? [221] 76.8% syntax->list [230] 23.2% -------------------------------------------------------------------------------- apply-transformer-in-context [196] 100.0% [208] 1002(0.2%) 1002(0.2%) parse-app ...collects/racket/private/kw.rkt:1105:2 -------------------------------------------------------------------------------- hash-has-key? [194] 100.0% [209] 934(0.2%) 934(0.2%) ??? ...ects/racket/contract/private/hash.rkt:283:7 -------------------------------------------------------------------------------- custom-set-union [193] 100.0% [210] 618(0.1%) 618(0.1%) for-loop ...cts/racket/private/set-types.rkt:152:2 -------------------------------------------------------------------------------- apply-transformer-in-context [196] 100.0% [211] 308(0.1%) 0(0.0%) go .../collects/racket/private/qq-and-or.rkt:50:20 loop [223] 100.0% -------------------------------------------------------------------------------- type-of [89] 2.0% f46 [255] 7.6% type-of-enode-expr [202] 25.6% for-loop [155] 64.8% [212] 62654(13.4%) 17352(3.7%) table-ref ...es/herbie/develop/src/common.rkt:47:0 ??? [225] 66.3% ??? [232] 2.0% ??? [247] 1.5% return/no-unsupplied [233] 1.0% -------------------------------------------------------------------------------- type-of [89] 6.4% type-of-enode-expr [202] 93.6% [213] 48280(10.3%) 332(0.1%) ??? ...ects/racket/contract/private/hash.rkt:227:4 contract-pos/neg-doubling/proc [224] 99.3% -------------------------------------------------------------------------------- type-of [89] 1.4% f46 [255] 9.1% type-of-enode-expr [202] 30.2% for-loop [155] 57.5% [214] 20730(4.4%) 4224(0.9%) ...velop/src/common.rkt:48:2 ...e/arr-i.rkt:918:19 ??? [226] 49.2% ??? [228] 30.4% -------------------------------------------------------------------------------- hash-update! [204] 100.0% [215] 7228(1.5%) 0(0.0%) ??? ...s/herbie/develop/src/core/egraph.rkt:226:24 for-loop [227] 95.8% make-sequence [229] 4.2% -------------------------------------------------------------------------------- gf [203] 100.0% [216] 5390(1.2%) 5390(1.2%) propagation-apply (unknown source) -------------------------------------------------------------------------------- for-loop [206] 100.0% [217] 2848(0.6%) 2848(0.6%) for-loop ...cts/racket/private/set-types.rkt:178:5 -------------------------------------------------------------------------------- gf [203] 100.0% [218] 2548(0.5%) 2548(0.5%) propagation-apply-shifted (unknown source) -------------------------------------------------------------------------------- gf [203] 100.0% [219] 1990(0.4%) 1990(0.4%) propagation-merge (unknown source) -------------------------------------------------------------------------------- set [205] 100.0% [220] 1600(0.3%) 1600(0.3%) for-loop ...cts/racket/private/set-types.rkt:937:4 -------------------------------------------------------------------------------- ??? [207] 100.0% [221] 992(0.2%) 0(0.0%) ??? ...ollects/racket/private/qq-and-or.rkt:164:21 syntax->list [230] 100.0% -------------------------------------------------------------------------------- gf [203] 100.0% [222] 662(0.1%) 662(0.1%) cache-or-reuse-set (unknown source) -------------------------------------------------------------------------------- go [211] 12.5% loop [223] 87.5% [223] 308(0.1%) 308(0.1%) loop ...llects/racket/private/qq-and-or.rkt:101:61 loop [223] 87.5% -------------------------------------------------------------------------------- ??? [213] 100.0% [224] 47948(10.2%) 44814(9.6%) contract-pos/neg-doubling/proc ...e/guts.rkt:956:0 ??? [235] 6.5% -------------------------------------------------------------------------------- hash-has-key? [194] 3.6% table-ref [212] 96.4% [225] 43112(9.2%) 11212(2.4%) ??? ...ects/racket/contract/private/list.rkt:798:4 for-loop [231] 43.7% ??? [240] 27.5% arrow-higher-order:lnp [238] 1.4% ??? [247] 0.7% -------------------------------------------------------------------------------- ??? [247] 12.6% for-loop [256] 14.2% ...velop/src/common.rkt:48:2 [214] 73.2% [226] 10198(2.2%) 2564(0.5%) ??? ...ects/racket/contract/private/list.rkt:367:4 ??? [247] 54.5% ??? [262] 17.3% ??? [244] 12.6% -------------------------------------------------------------------------------- ??? [215] 100.0% [227] 6928(1.5%) 5410(1.2%) for-loop ...bie/develop/src/core/egraph.rkt:227:26 update-en-expr [234] 21.9% -------------------------------------------------------------------------------- ...velop/src/common.rkt:48:2 [214] 100.0% [228] 6308(1.3%) 3078(0.7%) ??? ...s/racket/contract/private/arr-i.rkt:1286:39 return/no-unsupplied [233] 20.4% ??? [232] 15.2% assoc-ref [237] 9.9% ??? [262] 5.7% -------------------------------------------------------------------------------- ??? [215] 10.6% merge-egraph-nodes! [165] 10.7% reduce-to-single! [159] 10.7% match-e [154] 10.8% for-loop [138] 10.9% set-precompute! [4] 11.0% for-loop [146] 11.8% update-leader! [170] 23.5% [229] 2822(0.6%) 1894(0.4%) make-sequence ...ects/racket/private/for.rkt:528:2 ??? [236] 32.9% -------------------------------------------------------------------------------- ??? [207] 23.2% ??? [221] 76.8% [230] 1292(0.3%) 0(0.0%) syntax->list (unknown source) loop [54] 100.0% -------------------------------------------------------------------------------- ??? [225] 100.0% [231] 18830(4.0%) 5694(1.2%) for-loop ...acket/contract/private/list.rkt:804:12 ??? [240] 42.7% for-loop [239] 23.8% ??? [244] 3.2% -------------------------------------------------------------------------------- ??? [120] 9.7% ??? [228] 14.1% table-ref [212] 18.3% ulp-difference [110] 18.7% ->flonum [119] 39.2% [232] 6784(1.5%) 6784(1.5%) ??? ...s/racket/contract/private/arr-i.rkt:1252:29 -------------------------------------------------------------------------------- simplify* [47] 4.7% ulp-difference [110] 5.3% table-ref [212] 9.1% ??? [120] 14.6% ??? [228] 19.3% ->flonum [119] 47.0% [233] 6666(1.4%) 4806(1.0%) return/no-unsupplied ...ct/private/arr-i.rkt:534:0 filter [243] 27.9% -------------------------------------------------------------------------------- for-loop [182] 17.9% for-loop [227] 29.0% loop! [179] 53.1% [234] 5234(1.1%) 1220(0.3%) update-en-expr ...evelop/src/core/egraph.rkt:212:0 for-loop [241] 76.7% -------------------------------------------------------------------------------- contract-pos/neg-doubling/proc [224] 100.0% [235] 3134(0.7%) 0(0.0%) ??? ...ects/racket/contract/private/list.rkt:191:2 ??? [242] 100.0% -------------------------------------------------------------------------------- make-sequence [229] 100.0% [236] 928(0.2%) 310(0.1%) ??? ...acket/collects/racket/private/for.rkt:448:7 custom-in-set [245] 66.6% -------------------------------------------------------------------------------- ??? [228] 100.0% [237] 622(0.1%) 622(0.1%) assoc-ref ...collects/racket/private/dict.rkt:56:0 -------------------------------------------------------------------------------- ??? [225] 100.0% [238] 614(0.1%) 304(0.1%) arrow-higher-order:lnp ...w-higher-order.rkt:633:7 ??? [246] 50.5% -------------------------------------------------------------------------------- type-of [89] 7.3% for-loop [231] 17.1% type-of-enode-expr [202] 75.7% [239] 26288(5.6%) 2530(0.5%) for-loop ...racket/contract/private/hash.rkt:277:6 ??? [247] 88.0% ??? [264] 2.4% -------------------------------------------------------------------------------- for-loop [231] 40.5% ??? [225] 59.5% [240] 19888(4.3%) 12106(2.6%) ??? ...private/unconstrained-domain-arrow.rkt:74:4 make-keyword-procedure [248] 34.1% loop [250] 5.1% -------------------------------------------------------------------------------- update-en-expr [234] 100.0% [241] 4014(0.9%) 4014(0.9%) for-loop ...rbie/develop/src/core/egraph.rkt:214:6 -------------------------------------------------------------------------------- ??? [235] 100.0% [242] 3134(0.7%) 638(0.1%) ??? ...ects/racket/contract/private/list.rkt:739:5 get/build-late-neg-projection [249] 69.7% add-list-context [252] 10.0% -------------------------------------------------------------------------------- for-loop [43] 9.7% one-iter [137] 9.9% for-loop [162] 10.0% best-and-tied-at-points [94] 10.3% return/no-unsupplied [233] 60.1% [243] 3096(0.7%) 2796(0.6%) filter ...t/collects/racket/private/list.rkt:256:2 ??? [253] 9.7% -------------------------------------------------------------------------------- type-of [89] 14.5% for-loop [231] 27.1% ??? [226] 58.4% [244] 2206(0.5%) 1224(0.3%) ??? ...ects/racket/contract/private/hash.rkt:236:9 check-hash/c [251] 44.5% -------------------------------------------------------------------------------- match-e [154] 24.3% setfindf [36] 26.6% ??? [236] 49.1% [245] 1258(0.3%) 1258(0.3%) custom-in-set ...acket/private/set-types.rkt:577:0 -------------------------------------------------------------------------------- arrow-higher-order:lnp [238] 100.0% [246] 310(0.1%) 310(0.1%) ??? ...et/contract/private/arity-checking.rkt:19:2 -------------------------------------------------------------------------------- ??? [225] 0.9% table-ref [212] 2.8% ...higher-order.rkt:361:33 [124] 3.3% ??? [226] 24.5% for-loop [239] 68.5% [247] 33780(7.2%) 3672(0.8%) ??? ...cts/racket/contract/private/list.rkt:209:10 ??? [254] 67.4% for-loop [256] 14.1% ??? [226] 7.6% -------------------------------------------------------------------------------- ??? [240] 100.0% [248] 6774(1.4%) 6774(1.4%) make-keyword-procedure ...ket/private/kw.rkt:407:4 -------------------------------------------------------------------------------- listof-late-neg-projection [261] 3.0% ??? [260] 3.0% unconstrained-domain->-projection [258] 9.3% f46 [255] 9.3% type-of-enode-expr [202] 12.1% ??? [242] 63.3% [249] 3450(0.7%) 1862(0.4%) get/build-late-neg-projection ...te/guts.rkt:793:0 ??? [257] 41.3% unconstrained-domain->-projection [258] 9.3% ??? [260] 3.0% listof-late-neg-projection [261] 3.0% -------------------------------------------------------------------------------- ??? [240] 27.7% loop [250] 72.3% [250] 1008(0.2%) 1008(0.2%) loop ...ts/racket/contract/private/blame.rkt:320:2 loop [250] 72.3% -------------------------------------------------------------------------------- ??? [244] 100.0% [251] 982(0.2%) 662(0.1%) check-hash/c ...ket/contract/private/hash.rkt:83:0 flat-contract? [259] 32.6% -------------------------------------------------------------------------------- ??? [242] 100.0% [252] 312(0.1%) 312(0.1%) add-list-context ...ontract/private/list.rkt:813:0 -------------------------------------------------------------------------------- filter [243] 100.0% [253] 300(0.1%) 0(0.0%) ??? ...s/herbie/develop/src/core/regimes.rkt:36:35 f46 [255] 100.0% -------------------------------------------------------------------------------- ??? [247] 100.0% [254] 22780(4.9%) 632(0.1%) ??? ...ects/racket/contract/private/list.rkt:747:7 ??? [262] 90.4% ??? [264] 6.9% -------------------------------------------------------------------------------- ??? [253] 0.6% append-map [275] 1.8% hash-ref! [286] 2.1% eval-prog [106] 13.4% simplify [32] 18.0% map [263] 27.8% f46 [255] 35.8% [255] 15520(3.3%) 0(0.0%) f46 ...t/collects/racket/match/compiler.rkt:507:40 map [263] 43.2% f46 [255] 35.8% table-ref [212] 6.9% ...velop/src/common.rkt:48:2 [214] 3.7% temp68_2 [109] 3.1% append-map [275] 2.9% get/build-late-neg-projection [249] 2.4% loop [54] 1.1% -------------------------------------------------------------------------------- ??? [247] 100.0% [256] 4762(1.0%) 1866(0.4%) for-loop ...acket/contract/private/list.rkt:212:15 ??? [226] 60.8% -------------------------------------------------------------------------------- get/build-late-neg-projection [249] 100.0% [257] 1588(0.3%) 300(0.1%) ??? ...cts/racket/contract/private/prop.rkt:344:12 build-compound-type-name [265] 81.1% -------------------------------------------------------------------------------- get/build-late-neg-projection [249] 100.0% [258] 640(0.1%) 0(0.0%) unconstrained-domain->-projection ...rrow.rkt:60:0 get/build-late-neg-projection [249] 100.0% -------------------------------------------------------------------------------- check-hash/c [251] 100.0% [259] 320(0.1%) 320(0.1%) flat-contract? .../contract/private/guts.rkt:122:0 -------------------------------------------------------------------------------- get/build-late-neg-projection [249] 100.0% [260] 314(0.1%) 0(0.0%) ??? ...ects/racket/contract/private/hash.rkt:221:2 get/build-late-neg-projection [249] 100.0% -------------------------------------------------------------------------------- get/build-late-neg-projection [249] 100.0% [261] 314(0.1%) 0(0.0%) listof-late-neg-projection ...ivate/list.rkt:184:0 get/build-late-neg-projection [249] 100.0% -------------------------------------------------------------------------------- ->flonum [119] 1.3% ??? [228] 1.5% ??? [226] 14.2% ??? [254] 83.0% [262] 24796(5.3%) 21600(4.6%) ??? ...ects/racket/contract/private/guts.rkt:746:8 contract? [268] 11.6% list-member? [270] 1.2% -------------------------------------------------------------------------------- loop [91] 3.3% loop [266] 4.8% taylor [34] 25.1% f46 [255] 66.8% [263] 9864(2.1%) 0(0.0%) map ...acket/collects/racket/private/map.rkt:35:13 f46 [255] 46.4% taylor [34] 25.1% simplify-node [267] 12.0% ??? [112] 4.8% parse-loop14 [44] 3.9% loop [266] 3.3% simplify* [47] 2.9% hash-ref! [286] 1.6% -------------------------------------------------------------------------------- for-loop [239] 19.7% ??? [113] 30.7% ??? [254] 49.6% [264] 3158(0.7%) 1592(0.3%) ??? ...ects/racket/contract/private/prop.rkt:519:4 ??? [269] 49.6% -------------------------------------------------------------------------------- contract-struct-name [271] 25.4% ??? [257] 74.6% [265] 1288(0.3%) 1288(0.3%) build-compound-type-name ...private/guts.rkt:515:0 contract-struct-name [271] 25.4% -------------------------------------------------------------------------------- parse-loop14 [44] 0.0% map [263] 0.2% option-on-expr [57] 0.3% loop [67] 1.0% for-loop [162] 1.1% make-exacts* [69] 1.2% map-enodes [141] 1.8% loop! [179] 4.4% ??? [108] 12.3% loop [266] 77.7% [266] 58998(12.6%) 4520(1.0%) loop ...cket/collects/racket/private/map.rkt:40:19 loop [266] 77.7% ??? [112] 10.8% loop! [179] 4.3% ??? [108] 2.5% set-precompute! [4] 1.8% bf [272] 0.6% foldl [273] 0.2% curried [276] 0.0% hash-ref! [286] 0.0% map [263] 0.0% -------------------------------------------------------------------------------- for-loop [64] 5.1% map [263] 94.9% [267] 3184(0.7%) 312(0.1%) simplify-node .../develop/src/core/reduce.rkt:50:0 combine-mterms [274] 56.0% append-map [275] 24.1% combine-aterms [278] 10.1% -------------------------------------------------------------------------------- ??? [262] 100.0% [268] 2888(0.6%) 2568(0.5%) contract? ...acket/contract/private/guts.rkt:118:0 coerce-contract/f [279] 11.1% -------------------------------------------------------------------------------- ??? [264] 100.0% [269] 1566(0.3%) 628(0.1%) ??? ...lects/racket/contract/private/orc.rkt:83:14 ??? [277] 59.9% -------------------------------------------------------------------------------- ??? [262] 32.6% ??? [120] 67.4% [270] 946(0.2%) 946(0.2%) list-member? ...llects/racket/private/set.rkt:24:0 -------------------------------------------------------------------------------- build-compound-type-name [265] 100.0% [271] 654(0.1%) 0(0.0%) contract-struct-name ...ract/private/prop.rkt:87:0 build-compound-type-name [265] 100.0% -------------------------------------------------------------------------------- ??? [108] 45.3% loop [266] 54.7% [272] 15100(3.2%) 370(0.1%) bf ...ath-lib/math/private/bigfloat/mpfr.rkt:601:2 new-mpfr [280] 60.0% ??? [281] 37.6% -------------------------------------------------------------------------------- loop [266] 43.6% for-loop [162] 56.4% [273] 2210(0.5%) 946(0.2%) foldl ...et/collects/racket/private/list.rkt:229:4 merge2 [283] 57.2% -------------------------------------------------------------------------------- simplify-node [267] 100.0% [274] 1944(0.4%) 654(0.1%) combine-mterms ...evelop/src/core/reduce.rkt:191:0 for-loop [282] 66.4% -------------------------------------------------------------------------------- append-map [275] 9.7% f46 [255] 39.7% simplify-node [267] 50.6% [275] 1540(0.3%) 312(0.1%) append-map ...acket/collects/racket/list.rkt:586:2 parse-loop14 [44] 50.6% f46 [255] 23.1% append-map [275] 9.7% loop [285] 6.5% -------------------------------------------------------------------------------- loop [266] 32.2% for-loop [25] 33.4% for-loop [100] 34.4% [276] 970(0.2%) 970(0.2%) curried ...cket/collects/racket/function.rkt:71:18 -------------------------------------------------------------------------------- ??? [269] 100.0% [277] 938(0.2%) 938(0.2%) ??? ...ects/racket/contract/private/list.rkt:163:5 -------------------------------------------------------------------------------- simplify-node [267] 100.0% [278] 322(0.1%) 0(0.0%) combine-aterms ...evelop/src/core/reduce.rkt:183:0 for-loop [284] 100.0% -------------------------------------------------------------------------------- contract? [268] 100.0% [279] 320(0.1%) 320(0.1%) coerce-contract/f ...ntract/private/guts.rkt:350:0 -------------------------------------------------------------------------------- bfmul [140] 34.7% bf [272] 65.3% [280] 13878(3.0%) 13878(3.0%) new-mpfr ...b/math/private/bigfloat/mpfr.rkt:335:0 -------------------------------------------------------------------------------- ->flonum [119] 4.2% bfmul [140] 21.4% bf [272] 74.4% [281] 7628(1.6%) 7628(1.6%) ??? /home/p92/racket/collects/ffi/unsafe.rkt:898:4 -------------------------------------------------------------------------------- combine-mterms [274] 100.0% [282] 1290(0.3%) 1290(0.3%) for-loop ...rbie/develop/src/core/reduce.rkt:195:5 -------------------------------------------------------------------------------- foldl [273] 100.0% [283] 1264(0.3%) 1264(0.3%) merge2 .../herbie/develop/src/core/ematch.rkt:31:0 -------------------------------------------------------------------------------- combine-aterms [278] 100.0% [284] 322(0.1%) 0(0.0%) for-loop ...rbie/develop/src/core/reduce.rkt:185:4 hash-ref! [286] 100.0% -------------------------------------------------------------------------------- loop [285] 50.0% append-map [275] 50.0% [285] 300(0.1%) 300(0.1%) loop ...p92/racket/collects/racket/list.rkt:417:34 loop [285] 50.0% -------------------------------------------------------------------------------- for-loop [284] 0.3% map [263] 0.4% first-nonzero-exp [63] 0.5% for-loop [61] 0.6% loop [266] 1.7% simplify* [47] 2.2% for-loop [27] 2.4% for-loop [23] 3.7% for-loop [26] 4.3% ??? [288] 5.3% loop [20] 6.3% loop [45] 6.5% ??? [112] 7.1% compile [166] 17.6% ??? [287] 17.7% ??? [289] 22.1% [286] 19070(4.1%) 7234(1.5%) hash-ref! .../racket/private/more-scheme.rkt:376:2 ??? [289] 25.2% ??? [287] 24.0% simplify [32] 8.7% ??? [5] 7.0% ??? [288] 5.3% ??? [8] 4.3% parse-loop14 [44] 2.9% ??? [9] 2.4% taylor [34] 1.8% ??? [13] 0.6% f46 [255] 0.4% ??? [14] 0.4% -------------------------------------------------------------------------------- hash-ref! [286] 100.0% [287] 8674(1.9%) 0(0.0%) ??? ...es/herbie/develop/src/core/taylor.rkt:67:15 hash-ref! [286] 69.5% ??? [112] 30.5% -------------------------------------------------------------------------------- hash-ref! [286] 100.0% [288] 7006(1.5%) 0(0.0%) ??? ...es/herbie/develop/src/core/taylor.rkt:44:15 hash-ref! [286] 100.0% -------------------------------------------------------------------------------- hash-ref! [286] 100.0% [289] 6614(1.4%) 1590(0.3%) ??? ...tlies/herbie/develop/src/programs.rkt:153:5 hash-ref! [286] 91.0% --------------------------------------------------------------------------------