Profiling results ----------------- Total cpu time observed: 232242ms (out of 234672ms) Number of samples taken: 732 (once every 317ms) (Hiding functions with self<1.0% and local<2.0%: 15 of 304 hidden) =========================================================================================== Caller Idx Total Self Name+src Local% ms(pct) ms(pct) Callee =========================================================================================== ??? [153] 100.0% [1] 232242(100.0%) 0(0.0%) profile-thunk16 ...e/pkgs/profile-lib/main.rkt:9:0 run [16] 100.0% ------------------------------------------------------------------------------------------- ??? [153] 100.0% [2] 132762(57.2%) 0(0.0%) run-improve47 ...bie/master/src/mainloop.rkt:345:0 for-loop [17] 97.7% prepare-points-intervals [18] 2.0% ??? [55] 0.3% ------------------------------------------------------------------------------------------- ??? [219] 100.0% [3] 39468(17.0%) 0(0.0%) approximate9 ...ie/master/src/core/taylor.rkt:12:0 loop [19] 78.7% for-loop [23] 15.8% taylor [70] 2.5% simplify [34] 1.5% apply-contract [30] 0.8% taylor-quotient [37] 0.8% ------------------------------------------------------------------------------------------- hash-ref! [235] 100.0% [4] 26408(11.4%) 0(0.0%) ??? ...ies/herbie/master/src/core/taylor.rkt:68:15 ??? [219] 73.7% hash-ref! [235] 26.3% ------------------------------------------------------------------------------------------- hash-ref! [235] 100.0% [5] 26012(11.2%) 0(0.0%) ??? ...es/herbie/master/src/core/taylor.rkt:291:26 for-loop [20] 100.0% ------------------------------------------------------------------------------------------- hash-ref! [235] 100.0% [6] 25042(10.8%) 0(0.0%) ??? ...es/herbie/master/src/core/taylor.rkt:301:23 for-loop [21] 100.0% ------------------------------------------------------------------------------------------- eval4 [120] 4.0% loop [105] 29.9% for-loop [220] 66.1% [7] 7538(3.2%) 0(0.0%) syntax-e (unknown source) syntax-e/no-taint [22] 100.0% ------------------------------------------------------------------------------------------- matcher [128] 100.0% [8] 3802(1.6%) 0(0.0%) ??? ...s/herbie/master/src/core/matcher.rkt:130:11 for-loop [24] 100.0% ------------------------------------------------------------------------------------------- ??? [153] 100.0% [9] 3720(1.6%) 0(0.0%) get-final-combination ...er/src/mainloop.rkt:370:0 infer-splitpoints [25] 100.0% ------------------------------------------------------------------------------------------- for-loop [220] 100.0% [10] 3098(1.3%) 326(0.1%) expand-implicit (unknown source) resolve+shift28 [144] 67.1% binding-lookup52 [211] 22.4% ------------------------------------------------------------------------------------------- hash-ref! [235] 100.0% [11] 2954(1.3%) 0(0.0%) ??? ...es/herbie/master/src/core/taylor.rkt:407:23 for-loop [27] 56.5% for-loop [28] 43.5% ------------------------------------------------------------------------------------------- hash-ref! [235] 100.0% [12] 2162(0.9%) 0(0.0%) ??? ...es/herbie/master/src/core/taylor.rkt:510:23 for-loop [26] 100.0% ------------------------------------------------------------------------------------------- for-loop [220] 100.0% [13] 1590(0.7%) 360(0.2%) expand-identifier (unknown source) resolve+shift28 [144] 77.4% ------------------------------------------------------------------------------------------- hash-ref! [235] 100.0% [14] 590(0.3%) 300(0.1%) ??? ...es/herbie/master/src/core/taylor.rkt:423:23 for-loop [31] 49.2% ------------------------------------------------------------------------------------------- parse-loop30 [69] 100.0% [15] 302(0.1%) 0(0.0%) make-multiplication-subsubsubnode ...uce.rkt:266:0 mterm->expr [29] 100.0% ------------------------------------------------------------------------------------------- profile-thunk16 [1] 100.0% [16] 232242(100.0%) 0(0.0%) run ...et-7.2/share/pkgs/profile-lib/main.rkt:39:2 ??? [153] 100.0% ------------------------------------------------------------------------------------------- run-improve47 [2] 100.0% [17] 129766(55.9%) 0(0.0%) for-loop ...s/herbie/master/src/mainloop.rkt:364:4 run-iter! [32] 100.0% ------------------------------------------------------------------------------------------- run-improve47 [2] 2.9% ??? [153] 97.1% [18] 90800(39.1%) 0(0.0%) prepare-points-intervals ...r/src/points.rkt:110:0 loop [33] 100.0% ------------------------------------------------------------------------------------------- approximate9 [3] 100.0% [19] 31060(13.4%) 0(0.0%) loop ...ies/herbie/master/src/core/taylor.rkt:87:4 hash-ref! [235] 85.0% ??? [219] 15.0% ------------------------------------------------------------------------------------------- ??? [5] 100.0% [20] 26012(11.2%) 552(0.2%) for-loop ...rbie/master/src/core/taylor.rkt:291:52 hash-ref! [235] 72.6% ??? [35] 20.7% simplify [34] 4.6% ------------------------------------------------------------------------------------------- ??? [6] 100.0% [21] 25042(10.8%) 298(0.1%) for-loop ...rbie/master/src/core/taylor.rkt:304:27 hash-ref! [235] 99.7% ------------------------------------------------------------------------------------------- gf [272] 3.0% expand-id-application-form17 [190] 27.3% syntax-e [7] 69.7% [22] 10818(4.7%) 312(0.1%) syntax-e/no-taint (unknown source) loop [105] 97.1% ------------------------------------------------------------------------------------------- approximate9 [3] 100.0% [23] 6226(2.7%) 0(0.0%) for-loop ...erbie/master/src/core/taylor.rkt:30:18 taylor [70] 80.6% taylor-quotient [37] 19.4% ------------------------------------------------------------------------------------------- ??? [8] 100.0% [24] 3802(1.6%) 0(0.0%) for-loop ...bie/master/src/core/matcher.rkt:132:15 matcher [128] 100.0% ------------------------------------------------------------------------------------------- get-final-combination [9] 100.0% [25] 3720(1.6%) 0(0.0%) infer-splitpoints ...ter/src/core/regimes.rkt:34:0 for-loop [36] 91.8% exprs-to-branch-on [38] 8.2% ------------------------------------------------------------------------------------------- ??? [12] 100.0% [26] 2162(0.9%) 0(0.0%) for-loop ...rbie/master/src/core/taylor.rkt:514:35 parse-loop30 [69] 100.0% ------------------------------------------------------------------------------------------- ??? [11] 100.0% [27] 1670(0.7%) 0(0.0%) for-loop ...rbie/master/src/core/taylor.rkt:411:33 hash-ref! [235] 100.0% ------------------------------------------------------------------------------------------- ??? [11] 100.0% [28] 1284(0.6%) 0(0.0%) for-loop ...rbie/master/src/core/taylor.rkt:413:39 hash-ref! [235] 100.0% ------------------------------------------------------------------------------------------- make-multiplication-subsubsubnode [15] 100.0% [29] 302(0.1%) 0(0.0%) mterm->expr ...ie/master/src/core/reduce.rkt:274:0 free-variables [75] 100.0% ------------------------------------------------------------------------------------------- approximate9 [3] 100.0% [30] 300(0.1%) 0(0.0%) apply-contract ...t/contract/private/base.rkt:70:0 ??? [39] 100.0% ------------------------------------------------------------------------------------------- ??? [14] 100.0% [31] 290(0.1%) 0(0.0%) for-loop ...rbie/master/src/core/taylor.rkt:426:30 hash-ref! [235] 100.0% ------------------------------------------------------------------------------------------- for-loop [17] 100.0% [32] 129766(55.9%) 0(0.0%) run-iter! .../herbie/master/src/mainloop.rkt:326:0 simplify! [41] 44.5% gen-series! [42] 30.4% finalize-iter! [44] 18.9% gen-rewrites! [45] 2.9% localize! [48] 2.0% choose-best-alt! [50] 1.2% ------------------------------------------------------------------------------------------- prepare-points-intervals [18] 100.0% [33] 90800(39.1%) 0(0.0%) loop ...ghtlies/herbie/master/src/points.rkt:123:4 loop [40] 97.1% ??? [47] 2.9% ------------------------------------------------------------------------------------------- approximate9 [3] 1.7% taylor-quotient [37] 1.8% loop [204] 2.6% map [56] 4.4% for-loop [20] 6.0% hash-ref! [235] 81.0% [34] 35680(15.4%) 862(0.4%) simplify ...herbie/master/src/core/reduce.rkt:16:0 f67 [43] 68.7% parse-loop30 [69] 18.7% debug-print [89] 5.2% simplify-node [73] 2.6% simplify* [74] 2.4% ------------------------------------------------------------------------------------------- for-loop [20] 100.0% [35] 12228(5.3%) 0(0.0%) ??? ...es/herbie/master/src/core/taylor.rkt:294:19 hash-ref! [235] 100.0% ------------------------------------------------------------------------------------------- infer-splitpoints [25] 100.0% [36] 3414(1.5%) 0(0.0%) for-loop ...erbie/master/src/core/regimes.rkt:47:6 option-on-expr [46] 100.0% ------------------------------------------------------------------------------------------- approximate9 [3] 11.0% hash-ref! [235] 11.3% taylor [70] 33.3% for-loop [23] 44.4% [37] 2724(1.2%) 0(0.0%) taylor-quotient ...aster/src/core/taylor.rkt:334:0 first-nonzero-exp [49] 75.8% simplify [34] 24.2% ------------------------------------------------------------------------------------------- infer-splitpoints [25] 100.0% [38] 306(0.1%) 0(0.0%) exprs-to-branch-on ...er/src/core/regimes.rkt:59:0 all-critical-subexpressions [51] 100.0% ------------------------------------------------------------------------------------------- apply-contract [30] 100.0% [39] 300(0.1%) 0(0.0%) ??? ...cts/racket/contract/private/guts.rkt:837:10 ??? [52] 100.0% ------------------------------------------------------------------------------------------- loop [33] 100.0% [40] 88212(38.0%) 338(0.1%) loop ...ightlies/herbie/master/src/points.rkt:81:2 ??? [141] 99.3% hash-update! [222] 0.3% ------------------------------------------------------------------------------------------- run-iter! [32] 100.0% [41] 57758(24.9%) 0(0.0%) simplify! .../herbie/master/src/mainloop.rkt:223:0 ??? [53] 99.4% for-loop [62] 0.6% ------------------------------------------------------------------------------------------- run-iter! [32] 100.0% [42] 39468(17.0%) 0(0.0%) gen-series! ...erbie/master/src/mainloop.rkt:159:0 for-loop [54] 100.0% ------------------------------------------------------------------------------------------- ??? [167] 0.2% f67 [43] 2.0% map [56] 26.2% simplify [34] 71.6% [43] 24818(10.7%) 306(0.1%) f67 ...2/collects/racket/match/compiler.rkt:507:40 map [56] 74.4% eval-const-expr [84] 19.2% composed [60] 4.0% f67 [43] 2.0% loop [64] 0.2% ------------------------------------------------------------------------------------------- run-iter! [32] 100.0% [44] 24586(10.6%) 0(0.0%) finalize-iter! ...ie/master/src/mainloop.rkt:277:0 ??? [55] 100.0% ------------------------------------------------------------------------------------------- run-iter! [32] 100.0% [45] 3802(1.6%) 0(0.0%) gen-rewrites! ...bie/master/src/mainloop.rkt:182:0 for-loop [57] 100.0% ------------------------------------------------------------------------------------------- for-loop [36] 100.0% [46] 3414(1.5%) 0(0.0%) option-on-expr ...aster/src/core/regimes.rkt:126:0 for-loop [59] 65.9% sort-context-on-expr [61] 26.0% err-lsts->split-indices [65] 8.1% ------------------------------------------------------------------------------------------- loop [33] 100.0% [47] 2588(1.1%) 252(0.1%) ??? ...ightlies/herbie/master/src/points.rkt:106:2 ??? [219] 64.9% loop [204] 25.3% ------------------------------------------------------------------------------------------- run-iter! [32] 100.0% [48] 2562(1.1%) 0(0.0%) localize! .../herbie/master/src/mainloop.rkt:126:0 localize-error [58] 100.0% ------------------------------------------------------------------------------------------- taylor-quotient [37] 100.0% [49] 2064(0.9%) 0(0.0%) first-nonzero-exp ...ter/src/core/taylor.rkt:266:0 hash-ref! [235] 100.0% ------------------------------------------------------------------------------------------- run-iter! [32] 100.0% [50] 1590(0.7%) 0(0.0%) choose-best-alt! .../master/src/mainloop.rkt:116:0 ??? [55] 100.0% ------------------------------------------------------------------------------------------- exprs-to-branch-on [38] 100.0% [51] 306(0.1%) 0(0.0%) all-critical-subexpressions ...re/regimes.rkt:76:0 for-loop [63] 100.0% ------------------------------------------------------------------------------------------- ??? [39] 100.0% [52] 300(0.1%) 300(0.1%) ??? ...ntract/private/arrow-higher-order.rkt:560:2 ------------------------------------------------------------------------------------------- simplify! [41] 100.0% [53] 57428(24.7%) 0(0.0%) ??? ...es/herbie/master/src/core/simplify.rkt:26:0 for-loop [66] 76.6% one-iter [82] 21.9% loop [92] 1.0% for-loop [80] 0.6% ------------------------------------------------------------------------------------------- gen-series! [42] 100.0% [54] 39468(17.0%) 0(0.0%) for-loop ...s/herbie/master/src/mainloop.rkt:166:7 taylor-alt [67] 100.0% ------------------------------------------------------------------------------------------- free-variables [75] 1.0% substitute-e [146] 1.0% run-improve47 [2] 1.2% match-e [142] 3.1% variable? [160] 3.2% choose-best-alt! [50] 5.5% finalize-iter! [44] 84.9% [55] 28968(12.5%) 2440(1.1%) ??? ...contract/private/arrow-val-first.rkt:390:18 for-loop [68] 81.7% ??? [76] 5.5% atab-add-altns [78] 3.2% ------------------------------------------------------------------------------------------- gather-multiplicative-terms [94] 0.3% loop [95] 1.8% parse-loop30 [69] 6.8% for-loop [188] 7.8% taylor [70] 20.3% f67 [43] 63.0% [56] 28712(12.4%) 1244(0.5%) map ...t-7.2/collects/racket/private/map.rkt:35:13 f67 [43] 24.6% parse-loop30 [69] 21.9% taylor [70] 17.4% loop [204] 6.7% ??? [71] 6.0% hash-ref! [235] 5.6% ??? [223] 3.9% simplify-node [73] 3.7% make-multiplication-node [90] 2.2% simplify* [74] 2.1% simplify [34] 1.7% ??? [224] 1.2% loop [79] 0.2% ------------------------------------------------------------------------------------------- gen-rewrites! [45] 100.0% [57] 3802(1.6%) 0(0.0%) for-loop .../herbie/master/src/mainloop.rkt:190:11 rewrite-expression-head20 [72] 100.0% ------------------------------------------------------------------------------------------- localize! [48] 100.0% [58] 2562(1.1%) 0(0.0%) localize-error ...aster/src/core/localize.rkt:66:0 hash-ref! [235] 76.0% ??? [77] 24.0% ------------------------------------------------------------------------------------------- option-on-expr [46] 100.0% [59] 2250(1.0%) 0(0.0%) for-loop ...rbie/master/src/core/regimes.rkt:136:4 errors [103] 100.0% ------------------------------------------------------------------------------------------- f67 [43] 100.0% [60] 2048(0.9%) 0(0.0%) composed ...ollects/racket/private/list.rkt:321:16 free-variables [75] 100.0% ------------------------------------------------------------------------------------------- option-on-expr [46] 100.0% [61] 888(0.4%) 0(0.0%) sort-context-on-expr ...src/core/regimes.rkt:119:0 ??? [77] 100.0% ------------------------------------------------------------------------------------------- for-loop [62] 50.0% simplify! [41] 50.0% [62] 330(0.1%) 0(0.0%) for-loop ...s/herbie/master/src/mainloop.rkt:250:6 for-loop [62] 50.0% ??? [219] 50.0% ------------------------------------------------------------------------------------------- all-critical-subexpressions [51] 100.0% [63] 306(0.1%) 0(0.0%) for-loop ...erbie/master/src/core/regimes.rkt:83:2 ??? [167] 100.0% ------------------------------------------------------------------------------------------- f67 [43] 100.0% [64] 300(0.1%) 0(0.0%) loop ...ies/herbie/master/src/core/reduce.rkt:18:2 free-variables [75] 100.0% ------------------------------------------------------------------------------------------- option-on-expr [46] 100.0% [65] 276(0.1%) 0(0.0%) err-lsts->split-indices .../core/regimes.rkt:262:0 loop [81] 100.0% ------------------------------------------------------------------------------------------- ??? [53] 100.0% [66] 43976(18.9%) 0(0.0%) for-loop ...rbie/master/src/core/simplify.rkt:35:2 one-iter [82] 97.8% loop [92] 2.2% ------------------------------------------------------------------------------------------- for-loop [54] 100.0% [67] 39468(17.0%) 0(0.0%) taylor-alt ...herbie/master/src/mainloop.rkt:145:0 for-loop [83] 100.0% ------------------------------------------------------------------------------------------- ??? [55] 100.0% [68] 23662(10.2%) 0(0.0%) for-loop ...bie/master/src/core/alt-table.rkt:55:2 atab-add-altn [85] 63.4% errors [103] 31.6% loop [95] 3.8% override-at-pnts [99] 1.3% ------------------------------------------------------------------------------------------- for-loop [138] 0.3% parse-loop30 [69] 2.3% append-map [109] 2.9% for-loop [26] 7.7% hash-ref! [235] 11.1% simplify [34] 34.9% map [56] 40.8% [69] 17574(7.6%) 300(0.1%) parse-loop30 ...s/racket/match/compiler.rkt:418:15 eval-const-expr [84] 74.1% map [56] 11.1% for-loop [91] 7.7% make-multiplication-node [90] 2.9% parse-loop30 [69] 2.3% make-multiplication-subsubsubnode [15] 0.3% ------------------------------------------------------------------------------------------- approximate9 [3] 1.9% hash-ref! [235] 10.4% for-loop [23] 15.3% map [56] 16.2% taylor [70] 56.3% [70] 9608(4.1%) 840(0.4%) taylor .../herbie/master/src/core/taylor.rkt:170:0 taylor [70] 56.3% map [56] 22.6% loop [88] 12.4% loop [204] 2.0% taylor-quotient [37] 1.5% do-curry [173] 0.8% debug-print [89] 0.6% ------------------------------------------------------------------------------------------- map [56] 100.0% [71] 3876(1.7%) 602(0.3%) ??? ...lies/herbie/master/src/core/reduce.rkt:59:5 for-loop [87] 84.5% ------------------------------------------------------------------------------------------- for-loop [57] 100.0% [72] 3802(1.6%) 0(0.0%) rewrite-expression-head20 ...core/matcher.rkt:87:0 rewriter [86] 100.0% ------------------------------------------------------------------------------------------- simplify [34] 32.7% map [56] 67.3% [73] 2780(1.2%) 0(0.0%) simplify-node ...e/master/src/core/reduce.rkt:48:0 gather-multiplicative-terms [94] 33.9% append-map [109] 33.4% gather-additive-terms6 [98] 12.1% constant? [187] 10.8% combine-mterms [101] 9.9% ------------------------------------------------------------------------------------------- simplify [34] 32.1% map [56] 67.9% [74] 2704(1.2%) 1726(0.7%) simplify* ...erbie/master/src/core/reduce.rkt:31:0 return/no-unsupplied [252] 23.1% hash-ref! [235] 13.1% ------------------------------------------------------------------------------------------- loop [64] 5.7% mterm->expr [29] 11.4% composed [60] 39.3% append-map [109] 43.7% [75] 2650(1.1%) 334(0.1%) free-variables ...bie/master/src/programs.rkt:57:0 append-map [109] 55.1% constant? [187] 35.8% ??? [55] 2.7% ------------------------------------------------------------------------------------------- ??? [55] 100.0% [76] 1590(0.7%) 0(0.0%) ??? ...s/herbie/master/src/core/alt-table.rkt:58:0 loop [195] 59.6% argmin [96] 40.4% ------------------------------------------------------------------------------------------- localize-error [58] 40.9% sort-context-on-expr [61] 59.1% [77] 1502(0.6%) 0(0.0%) ??? ...-7.2/collects/racket/private/sort.rkt:369:3 generic-sort/key [93] 100.0% ------------------------------------------------------------------------------------------- ??? [55] 100.0% [78] 924(0.4%) 0(0.0%) atab-add-altns ...ster/src/core/alt-table.rkt:49:0 atab-add-altn [85] 100.0% ------------------------------------------------------------------------------------------- map [56] 1.7% loop [79] 98.3% [79] 358(0.2%) 0(0.0%) loop ...-7.2/collects/racket/private/map.rkt:54:19 loop [79] 98.3% ??? [97] 1.7% ------------------------------------------------------------------------------------------- ??? [53] 100.0% [80] 324(0.1%) 0(0.0%) for-loop ...bie/master/src/core/simplify.rkt:32:14 mk-enode-rec! [232] 100.0% ------------------------------------------------------------------------------------------- err-lsts->split-indices [65] 100.0% [81] 276(0.1%) 0(0.0%) loop ...s/herbie/master/src/core/regimes.rkt:313:4 for-loop [100] 100.0% ------------------------------------------------------------------------------------------- ??? [53] 22.6% for-loop [66] 77.4% [82] 55574(23.9%) 0(0.0%) one-iter ...rbie/master/src/core/simplify.rkt:72:0 find-matches [102] 80.0% for-loop [106] 9.8% for-loop [107] 8.0% for-loop [113] 2.2% ------------------------------------------------------------------------------------------- taylor-alt [67] 100.0% [83] 39468(17.0%) 0(0.0%) for-loop ...s/herbie/master/src/mainloop.rkt:151:6 ??? [219] 100.0% ------------------------------------------------------------------------------------------- ??? [153] 4.8% f67 [43] 25.2% parse-loop30 [69] 70.1% [84] 19736(8.5%) 300(0.1%) eval-const-expr ...e/master/src/programs.rkt:118:0 temp85_0 [104] 63.8% loop [105] 22.3% eval [115] 4.5% inductor [118] 3.2% ??? [167] 1.6% eval4 [120] 1.5% ------------------------------------------------------------------------------------------- atab-add-altns [78] 5.8% for-loop [68] 94.2% [85] 15914(6.9%) 0(0.0%) atab-add-altn ...ster/src/core/alt-table.rkt:203:0 errors [103] 97.9% loop [119] 2.1% ------------------------------------------------------------------------------------------- rewrite-expression-head20 [72] 29.6% matcher [128] 70.4% [86] 3802(1.6%) 324(0.1%) rewriter ...erbie/master/src/core/matcher.rkt:90:2 for-loop [108] 77.3% *rules* [110] 21.0% ------------------------------------------------------------------------------------------- ??? [71] 100.0% [87] 3274(1.4%) 0(0.0%) for-loop ...herbie/master/src/core/reduce.rkt:60:7 pattern-match [159] 100.0% ------------------------------------------------------------------------------------------- taylor [70] 100.0% [88] 3274(1.4%) 0(0.0%) loop ...es/herbie/master/src/core/taylor.rkt:268:2 hash-ref! [235] 100.0% ------------------------------------------------------------------------------------------- taylor [70] 22.7% simplify [34] 77.3% [89] 2392(1.0%) 606(0.3%) debug-print ...s/herbie/master/src/debug.rkt:110:0 for-loop [114] 39.3% ??? [117] 35.4% ------------------------------------------------------------------------------------------- parse-loop30 [69] 43.4% map [56] 56.6% [90] 2220(1.0%) 0(0.0%) make-multiplication-node .../core/reduce.rkt:234:0 make-multiplication-subnode [111] 100.0% ------------------------------------------------------------------------------------------- parse-loop30 [69] 100.0% [91] 2162(0.9%) 0(0.0%) for-loop ...rbie/master/src/core/taylor.rkt:517:59 hash-ref! [235] 100.0% ------------------------------------------------------------------------------------------- ??? [53] 37.5% for-loop [66] 62.5% [92] 1530(0.7%) 0(0.0%) loop ...herbie/master/src/core/extraction.rkt:25:2 for-loop [112] 100.0% ------------------------------------------------------------------------------------------- ??? [77] 100.0% [93] 1502(0.6%) 0(0.0%) generic-sort/key .../racket/private/sort.rkt:156:2 copying-mergesort [116] 56.9% loop [133] 43.1% ------------------------------------------------------------------------------------------- simplify-node [73] 100.0% [94] 942(0.4%) 300(0.1%) gather-multiplicative-terms ...re/reduce.rkt:112:0 map [56] 35.5% do-curry [173] 32.7% ------------------------------------------------------------------------------------------- for-loop [68] 100.0% [95] 898(0.4%) 370(0.2%) loop ...herbie/master/src/core/alt-table.rkt:177:2 map [56] 58.8% ------------------------------------------------------------------------------------------- ??? [76] 100.0% [96] 642(0.3%) 0(0.0%) argmin ...acket-7.2/collects/racket/list.rkt:765:0 ??? [210] 100.0% ------------------------------------------------------------------------------------------- loop [79] 100.0% [97] 358(0.2%) 0(0.0%) ??? ...s/herbie/master/src/core/localize.rkt:58:36 ulp-difference [244] 100.0% ------------------------------------------------------------------------------------------- simplify-node [73] 100.0% [98] 336(0.1%) 0(0.0%) gather-additive-terms6 ...src/core/reduce.rkt:70:0 append-map [109] 100.0% ------------------------------------------------------------------------------------------- for-loop [68] 100.0% [99] 300(0.1%) 0(0.0%) override-at-pnts ...r/src/core/alt-table.rkt:138:0 for-loop [121] 100.0% ------------------------------------------------------------------------------------------- loop [81] 100.0% [100] 276(0.1%) 0(0.0%) for-loop ...rbie/master/src/core/regimes.rkt:278:4 for-loop [122] 100.0% ------------------------------------------------------------------------------------------- simplify-node [73] 100.0% [101] 274(0.1%) 274(0.1%) combine-mterms ...master/src/core/reduce.rkt:195:0 ------------------------------------------------------------------------------------------- one-iter [82] 100.0% [102] 44454(19.1%) 0(0.0%) find-matches .../master/src/core/simplify.rkt:62:0 for-loop [123] 100.0% ------------------------------------------------------------------------------------------- ??? [153] 2.9% ??? [210] 5.7% for-loop [59] 8.0% for-loop [68] 26.6% atab-add-altn [85] 55.5% [103] 28074(12.1%) 0(0.0%) errors ...tlies/herbie/master/src/points.rkt:205:0 for-loop [125] 59.6% eval-prog [221] 40.4% ------------------------------------------------------------------------------------------- eval-prog [221] 47.3% eval-const-expr [84] 52.7% [104] 23880(10.3%) 0(0.0%) temp85_0 (unknown source) compile15 [124] 100.0% ------------------------------------------------------------------------------------------- eval-prog [221] 0.1% datum->syntax6 [275] 0.2% gf [272] 1.5% syntax->list [286] 2.5% loop [105] 2.7% expand-capturing-lifts [169] 3.0% compile15 [124] 5.0% lambda-clause-expander [185] 8.1% for-loop [220] 10.5% apply-transformer52 [251] 10.8% eval-const-expr [84] 16.8% syntax-e/no-taint [22] 38.9% [105] 19754(8.5%) 2692(1.2%) loop (unknown source) gf [272] 37.8% expand-capturing-lifts [169] 20.5% expand-id-application-form17 [190] 10.5% core-form-sym [130] 9.3% dispatch-transformer41 [237] 8.1% syntax-e [7] 5.4% loop [105] 2.7% ------------------------------------------------------------------------------------------- one-iter [82] 100.0% [106] 5452(2.3%) 0(0.0%) for-loop ...rbie/master/src/core/simplify.rkt:74:2 for-loop [126] 100.0% ------------------------------------------------------------------------------------------- one-iter [82] 100.0% [107] 4434(1.9%) 0(0.0%) for-loop ...rbie/master/src/core/simplify.rkt:79:2 set-precompute! [127] 100.0% ------------------------------------------------------------------------------------------- rewriter [86] 100.0% [108] 3802(1.6%) 0(0.0%) for-loop ...erbie/master/src/core/matcher.rkt:92:4 matcher [128] 97.2% for-loop [136] 2.8% ------------------------------------------------------------------------------------------- gather-additive-terms6 [98] 3.4% append-map [109] 11.3% simplify-node [73] 23.5% free-variables [75] 61.8% [109] 3310(1.4%) 908(0.4%) append-map ...t-7.2/collects/racket/list.rkt:586:2 free-variables [75] 52.6% parse-loop30 [69] 17.8% append-map [109] 11.3% ------------------------------------------------------------------------------------------- rewriter [86] 100.0% [110] 2846(1.2%) 0(0.0%) *rules* ...erbie/master/src/syntax/rules.rkt:666:0 for-loop [129] 100.0% ------------------------------------------------------------------------------------------- make-multiplication-node [90] 100.0% [111] 2220(1.0%) 894(0.4%) make-multiplication-subnode ...re/reduce.rkt:244:0 group-by61 [132] 46.1% for-loop [138] 13.6% ------------------------------------------------------------------------------------------- loop [92] 100.0% [112] 1530(0.7%) 300(0.1%) for-loop ...ie/master/src/core/extraction.rkt:29:4 for-loop [131] 80.4% ------------------------------------------------------------------------------------------- one-iter [82] 100.0% [113] 1234(0.5%) 0(0.0%) for-loop ...rbie/master/src/core/simplify.rkt:82:2 update-leader! [172] 100.0% ------------------------------------------------------------------------------------------- debug-print [89] 100.0% [114] 940(0.4%) 940(0.4%) for-loop ...lies/herbie/master/src/debug.rkt:116:2 ------------------------------------------------------------------------------------------- eval-const-expr [84] 100.0% [115] 896(0.4%) 0(0.0%) eval (unknown source) datum->syntax6 [275] 35.0% namespace-syntax-introduce3 [137] 34.6% add-ns-scopes [140] 30.4% ------------------------------------------------------------------------------------------- generic-sort/key [93] 35.9% copying-mergesort [116] 64.1% [116] 854(0.4%) 0(0.0%) copying-mergesort ...racket/private/sort.rkt:129:8 copying-mergesort [116] 64.1% jloop [135] 25.0% loop [133] 10.9% ------------------------------------------------------------------------------------------- debug-print [89] 100.0% [117] 846(0.4%) 246(0.1%) ??? .../contract/private/arrow-val-first.rkt:430:3 mk-call [134] 70.9% ------------------------------------------------------------------------------------------- eval-const-expr [84] 100.0% [118] 630(0.3%) 0(0.0%) inductor ...s/herbie/master/src/programs.rkt:104:4 table-ref [231] 52.4% value? [205] 47.6% ------------------------------------------------------------------------------------------- atab-add-altn [85] 100.0% [119] 332(0.1%) 332(0.1%) loop ...-7.2/collects/racket/private/hash.rkt:20:4 ------------------------------------------------------------------------------------------- eval-const-expr [84] 100.0% [120] 302(0.1%) 0(0.0%) eval4 (unknown source) syntax-e [7] 100.0% ------------------------------------------------------------------------------------------- override-at-pnts [99] 100.0% [121] 300(0.1%) 0(0.0%) for-loop ...e/master/src/core/alt-table.rkt:139:22 ??? [139] 100.0% ------------------------------------------------------------------------------------------- for-loop [100] 100.0% [122] 276(0.1%) 0(0.0%) for-loop ...rbie/master/src/core/regimes.rkt:282:8 ??? [224] 100.0% ------------------------------------------------------------------------------------------- for-loop [123] 49.7% find-matches [102] 50.3% [123] 44454(19.1%) 542(0.2%) for-loop ...rbie/master/src/core/simplify.rkt:64:8 for-loop [123] 49.7% match-e [142] 49.4% ------------------------------------------------------------------------------------------- temp85_0 [104] 100.0% [124] 23880(10.3%) 0(0.0%) compile15 (unknown source) temp91_0 [143] 95.1% loop [105] 4.9% ------------------------------------------------------------------------------------------- errors [103] 100.0% [125] 16730(7.2%) 596(0.3%) for-loop ...ies/herbie/master/src/points.rkt:207:2 ??? [153] 96.4% ------------------------------------------------------------------------------------------- for-loop [106] 100.0% [126] 5452(2.3%) 0(0.0%) for-loop ...rbie/master/src/core/simplify.rkt:77:4 merge-egraph-nodes! [157] 61.7% substitute-e [146] 27.5% dedup-children! [178] 10.8% ------------------------------------------------------------------------------------------- for-loop [107] 100.0% [127] 4434(1.9%) 0(0.0%) set-precompute! ...ster/src/core/simplify.rkt:86:0 for-loop [145] 100.0% ------------------------------------------------------------------------------------------- for-loop [24] 50.0% for-loop [108] 50.0% [128] 3802(1.6%) 308(0.1%) matcher ...erbie/master/src/core/matcher.rkt:118:2 ??? [8] 50.0% rewriter [86] 48.0% ------------------------------------------------------------------------------------------- *rules* [110] 100.0% [129] 2846(1.2%) 1334(0.6%) for-loop ...lies/herbie/master/src/common.rkt:74:9 ormap [147] 31.0% flag-set? [163] 22.1% ------------------------------------------------------------------------------------------- loop [105] 100.0% [130] 2472(1.1%) 608(0.3%) core-form-sym (unknown source) resolve+shift28 [144] 75.4% ------------------------------------------------------------------------------------------- for-loop [112] 100.0% [131] 1230(0.5%) 582(0.3%) for-loop ...e/master/src/core/extraction.rkt:37:16 for-loop [148] 52.7% ------------------------------------------------------------------------------------------- make-multiplication-subnode [111] 100.0% [132] 1024(0.4%) 688(0.3%) group-by61 ...t-7.2/collects/racket/list.rkt:771:0 for-loop [151] 32.8% ------------------------------------------------------------------------------------------- copying-mergesort [116] 30.0% generic-sort/key [93] 70.0% [133] 926(0.4%) 0(0.0%) loop ...7.2/collects/racket/private/sort.rkt:96:12 ??? [141] 63.7% errors-score [149] 36.3% ------------------------------------------------------------------------------------------- ??? [117] 100.0% [134] 600(0.3%) 0(0.0%) mk-call ...tract/private/arrow-val-first.rkt:433:5 loop [150] 100.0% ------------------------------------------------------------------------------------------- copying-mergesort [116] 100.0% [135] 576(0.2%) 298(0.1%) jloop ...2/collects/racket/private/sort.rkt:120:23 errors-score [149] 48.3% ------------------------------------------------------------------------------------------- for-loop [108] 100.0% [136] 324(0.1%) 0(0.0%) for-loop ...erbie/master/src/core/matcher.rkt:99:8 fix-up-variables [152] 100.0% ------------------------------------------------------------------------------------------- eval [115] 100.0% [137] 310(0.1%) 310(0.1%) namespace-syntax-introduce3 (unknown source) ------------------------------------------------------------------------------------------- make-multiplication-subnode [111] 100.0% [138] 302(0.1%) 0(0.0%) for-loop ...erbie/master/src/core/reduce.rkt:246:3 parse-loop30 [69] 100.0% ------------------------------------------------------------------------------------------- for-loop [121] 100.0% [139] 300(0.1%) 300(0.1%) ??? ...7.2/collects/racket/private/for.rkt:1233:14 ------------------------------------------------------------------------------------------- eval [115] 100.0% [140] 272(0.1%) 0(0.0%) add-ns-scopes (unknown source) gf [272] 100.0% ------------------------------------------------------------------------------------------- loop [133] 0.5% loop [204] 0.7% for-loop [243] 0.9% ??? [223] 3.9% ??? [153] 13.4% loop [40] 80.6% [141] 108698(46.8%) 2406(1.0%) ??? ...htlies/herbie/master/src/programs.rkt:115:2 ??? [154] 93.6% loop [204] 1.8% ??? [219] 1.8% ??? [224] 0.6% ------------------------------------------------------------------------------------------- for-loop [168] 35.0% for-loop [123] 65.0% [142] 43912(18.9%) 8508(3.7%) match-e .../herbie/master/src/core/ematch.rkt:39:0 for-loop [155] 79.1% constant? [187] 6.3% variable? [160] 1.9% ??? [55] 0.7% ------------------------------------------------------------------------------------------- compile15 [124] 100.0% [143] 22720(9.8%) 0(0.0%) temp91_0 (unknown source) temp118_0 [156] 91.8% compile-top9 [161] 8.2% ------------------------------------------------------------------------------------------- expand-identifier [13] 18.5% expand-id-application-form17 [190] 22.3% core-form-sym [130] 28.0% expand-implicit [10] 31.2% [144] 6656(2.9%) 1836(0.8%) resolve+shift28 (unknown source) fallback-loop [158] 72.4% ------------------------------------------------------------------------------------------- set-precompute! [127] 100.0% [145] 4434(1.9%) 322(0.1%) for-loop ...rbie/master/src/core/simplify.rkt:88:2 merge-egraph-nodes! [157] 56.7% ??? [153] 21.2% setfindf [164] 14.8% ------------------------------------------------------------------------------------------- for-loop [162] 19.8% for-loop [126] 80.2% [146] 1502(0.6%) 0(0.0%) substitute-e ...ie/master/src/core/ematch.rkt:64:0 for-loop [162] 90.0% ??? [55] 10.0% ------------------------------------------------------------------------------------------- for-loop [129] 100.0% [147] 882(0.4%) 0(0.0%) ormap ....2/collects/racket/private/map.rkt:141:13 ??? [224] 70.3% flag-set? [163] 29.7% ------------------------------------------------------------------------------------------- for-loop [131] 100.0% [148] 648(0.3%) 648(0.3%) for-loop ...e/master/src/core/extraction.rkt:41:23 ------------------------------------------------------------------------------------------- jloop [135] 45.3% loop [133] 54.7% [149] 614(0.3%) 0(0.0%) errors-score ...herbie/master/src/points.rkt:196:0 loop [204] 54.7% loop [166] 45.3% ------------------------------------------------------------------------------------------- mk-call [134] 100.0% [150] 600(0.3%) 0(0.0%) loop ...contract/private/arrow-val-first.rkt:437:8 ??? [165] 100.0% ------------------------------------------------------------------------------------------- group-by61 [132] 100.0% [151] 336(0.1%) 336(0.1%) for-loop ...ket-7.2/collects/racket/list.rkt:805:4 ------------------------------------------------------------------------------------------- for-loop [136] 100.0% [152] 324(0.1%) 0(0.0%) fix-up-variables ...ter/src/core/matcher.rkt:111:2 pattern-match [159] 100.0% ------------------------------------------------------------------------------------------- for-loop [145] 0.1% for-loop [125] 2.3% run [16] 48.8% [153] 232242(100.0%) 958(0.4%) ??? ...lects/racket/private/more-scheme.rkt:261:28 profile-thunk16 [1] 48.8% run-improve47 [2] 27.5% prepare-points-intervals [18] 19.0% ??? [141] 2.1% oracle-error [171] 1.2% get-final-combination [9] 0.7% eval-errors [226] 0.2% eval-const-expr [84] 0.1% errors [103] 0.1% baseline-error [183] 0.1% loop [204] 0.1% ulp-difference [244] 0.0% ??? [219] 0.0% ------------------------------------------------------------------------------------------- ??? [141] 100.0% [154] 101752(43.8%) 4620(2.0%) ??? ...t-7.2/collects/racket/private/kw.rkt:594:14 ??? [167] 69.9% ??? [170] 13.4% ??? [219] 12.1% ------------------------------------------------------------------------------------------- match-e [142] 100.0% [155] 39820(17.1%) 15244(6.6%) for-loop ...erbie/master/src/core/ematch.rkt:52:11 for-loop [168] 54.0% loop [204] 8.3% procedure-reduce-keyword-arity-mask [175] 3.5% do-curry [173] 3.4% foldl [227] 0.8% filter [265] 0.3% ------------------------------------------------------------------------------------------- temp91_0 [143] 100.0% [156] 20858(9.0%) 0(0.0%) temp118_0 (unknown source) expand-capturing-lifts [169] 100.0% ------------------------------------------------------------------------------------------- for-loop [181] 2.0% merge-egraph-nodes! [157] 7.1% for-loop [145] 40.3% for-loop [126] 50.6% [157] 5878(2.5%) 0(0.0%) merge-egraph-nodes! ...r/src/core/egraph.rkt:143:0 update-leader! [172] 57.0% loop! [225] 23.5% merge-egraph-nodes! [157] 7.1% dedup-children! [178] 5.3% enode-merge! [182] 5.1% for-loop [181] 2.0% ------------------------------------------------------------------------------------------- resolve+shift28 [144] 100.0% [158] 4820(2.1%) 2756(1.2%) fallback-loop (unknown source) for-loop [220] 42.8% ------------------------------------------------------------------------------------------- fix-up-variables [152] 4.5% pattern-match [159] 8.7% for-loop [87] 86.8% [159] 3598(1.5%) 300(0.1%) pattern-match .../master/src/core/matcher.rkt:30:0 constant? [187] 46.5% for-loop [176] 36.5% pattern-match [159] 8.7% ------------------------------------------------------------------------------------------- match-e [142] 100.0% [160] 2384(1.0%) 302(0.1%) variable? ...ie/master/src/syntax/syntax.rkt:729:0 value? [205] 47.9% ??? [55] 39.4% ------------------------------------------------------------------------------------------- temp91_0 [143] 100.0% [161] 1862(0.8%) 0(0.0%) compile-top9 (unknown source) compile-forms33 [174] 100.0% ------------------------------------------------------------------------------------------- substitute-e [146] 100.0% [162] 1502(0.6%) 296(0.1%) for-loop ...erbie/master/src/core/ematch.rkt:73:24 mk-enode! [177] 60.3% substitute-e [146] 29.8% ------------------------------------------------------------------------------------------- ormap [147] 29.4% for-loop [129] 70.6% [163] 892(0.4%) 566(0.2%) flag-set? ...ies/herbie/master/src/config.rkt:28:0 return/no-unsupplied [252] 36.5% ------------------------------------------------------------------------------------------- for-loop [145] 100.0% [164] 656(0.3%) 0(0.0%) setfindf ...ies/herbie/master/src/common.rkt:142:0 for-loop [179] 100.0% ------------------------------------------------------------------------------------------- loop [150] 100.0% [165] 600(0.3%) 0(0.0%) ??? ...ects/racket/contract/private/prop.rkt:541:4 ??? [180] 100.0% ------------------------------------------------------------------------------------------- errors-score [149] 100.0% [166] 278(0.1%) 0(0.0%) loop .../racket-7.2/collects/racket/list.rkt:559:2 ??? [224] 100.0% ------------------------------------------------------------------------------------------- eval-const-expr [84] 0.4% for-loop [63] 0.4% ??? [154] 99.1% [167] 71748(30.9%) 7804(3.4%) ??? ...tract/private/arrow-higher-order.rkt:364:33 ival-sin [184] 47.8% ival-cos [186] 22.1% ival-add [191] 6.0% ival-asin [192] 5.7% ival-atan2 [193] 5.6% ival-sub [196] 1.5% f67 [43] 0.4% ------------------------------------------------------------------------------------------- for-loop [155] 100.0% [168] 28996(12.5%) 884(0.4%) for-loop ...erbie/master/src/core/ematch.rkt:58:37 match-e [142] 96.5% ??? [201] 1.0% ------------------------------------------------------------------------------------------- loop [105] 21.1% temp118_0 [156] 78.9% [169] 26444(11.4%) 570(0.2%) expand-capturing-lifts (unknown source) lambda-clause-expander [185] 75.5% dispatch-transformer41 [237] 13.4% loop [105] 4.5% expand-id-application-form17 [190] 4.5% ------------------------------------------------------------------------------------------- ??? [154] 100.0% [170] 13670(5.9%) 10246(4.4%) ??? .../herbie/master/src/syntax/syntax.rkt:214:17 return/no-unsupplied [252] 25.0% ------------------------------------------------------------------------------------------- ??? [153] 100.0% [171] 5542(2.4%) 0(0.0%) oracle-error ...herbie/master/src/points.rkt:188:0 for-loop [188] 100.0% ------------------------------------------------------------------------------------------- for-loop [113] 24.8% merge-egraph-nodes! [157] 75.2% [172] 4974(2.1%) 0(0.0%) update-leader! ...master/src/core/egraph.rkt:211:0 for-loop [189] 100.0% ------------------------------------------------------------------------------------------- gather-multiplicative-terms [94] 11.2% taylor [70] 11.5% for-loop [155] 77.3% [173] 2754(1.2%) 2754(1.2%) do-curry ...-7.2/collects/racket/function.rkt:71:2 ------------------------------------------------------------------------------------------- compile-top9 [161] 100.0% [174] 1862(0.8%) 0(0.0%) compile-forms33 (unknown source) for-loop [220] 100.0% ------------------------------------------------------------------------------------------- for-loop [155] 100.0% [175] 1834(0.8%) 1834(0.8%) procedure-reduce-keyword-arity-mask ....rkt:1562:4 ------------------------------------------------------------------------------------------- pattern-match [159] 100.0% [176] 1464(0.6%) 270(0.1%) for-loop ...erbie/master/src/core/matcher.rkt:27:9 core651 [194] 81.6% ------------------------------------------------------------------------------------------- for-loop [162] 100.0% [177] 906(0.4%) 310(0.1%) mk-enode! ...erbie/master/src/core/egraph.rkt:97:0 new-enode [198] 65.8% ------------------------------------------------------------------------------------------- merge-egraph-nodes! [157] 34.5% for-loop [126] 65.5% [178] 898(0.4%) 0(0.0%) dedup-children! ...master/src/core/enode.rkt:202:0 loop [199] 63.0% loop [200] 37.0% ------------------------------------------------------------------------------------------- setfindf [164] 100.0% [179] 656(0.3%) 324(0.1%) for-loop ...ies/herbie/master/src/common.rkt:143:2 constant? [187] 50.6% ------------------------------------------------------------------------------------------- ??? [165] 100.0% [180] 600(0.3%) 0(0.0%) ??? ...ects/racket/contract/private/list.rkt:681:0 contract-first-order [197] 100.0% ------------------------------------------------------------------------------------------- merge-egraph-nodes! [157] 100.0% [181] 360(0.2%) 0(0.0%) for-loop ...erbie/master/src/core/egraph.rkt:197:4 merge-egraph-nodes! [157] 100.0% ------------------------------------------------------------------------------------------- merge-egraph-nodes! [157] 100.0% [182] 298(0.1%) 0(0.0%) enode-merge! ...ie/master/src/core/enode.rkt:131:0 adopt-enode! [202] 100.0% ------------------------------------------------------------------------------------------- ??? [153] 100.0% [183] 246(0.1%) 0(0.0%) baseline-error ...rbie/master/src/points.rkt:192:0 loop [195] 100.0% ------------------------------------------------------------------------------------------- ??? [167] 100.0% [184] 34302(14.8%) 10928(4.7%) ival-sin ...erbie/master/src/biginterval.rkt:291:0 bfdiv [262] 32.3% pi.bf [206] 13.3% bfsin [238] 9.4% bffloor [207] 8.9% bfeven? [209] 3.5% bfodd? [212] 0.8% ------------------------------------------------------------------------------------------- expand-capturing-lifts [169] 100.0% [185] 19976(8.6%) 0(0.0%) lambda-clause-expander (unknown source) finish-bodys [203] 87.0% loop [105] 13.0% ------------------------------------------------------------------------------------------- ??? [167] 100.0% [186] 15850(6.8%) 3580(1.5%) ival-cos ...erbie/master/src/biginterval.rkt:274:0 bfdiv [262] 30.2% bfsin [238] 17.1% pi.bf [206] 15.1% bffloor [207] 9.3% bfeven? [209] 3.9% bfodd? [212] 1.8% ------------------------------------------------------------------------------------------- simplify-node [73] 3.5% for-loop [179] 3.9% free-variables [75] 16.5% pattern-match [159] 21.4% match-e [142] 54.7% [187] 8580(3.7%) 936(0.4%) constant? ...ie/master/src/syntax/syntax.rkt:726:0 value? [205] 89.1% ------------------------------------------------------------------------------------------- oracle-error [171] 100.0% [188] 5542(2.4%) 0(0.0%) for-loop ...ies/herbie/master/src/points.rkt:189:2 loop [204] 59.5% map [56] 40.5% ------------------------------------------------------------------------------------------- update-leader! [172] 100.0% [189] 4974(2.1%) 294(0.1%) for-loop ...erbie/master/src/core/egraph.rkt:216:6 hash-update! [222] 51.0% for-loop [208] 43.1% ------------------------------------------------------------------------------------------- expand-capturing-lifts [169] 24.9% loop [105] 75.1% [190] 4736(2.0%) 0(0.0%) expand-id-application-form17 (unknown source) syntax-e/no-taint [22] 62.4% resolve+shift28 [144] 31.3% binding-lookup52 [211] 6.3% ------------------------------------------------------------------------------------------- ??? [167] 100.0% [191] 4296(1.8%) 296(0.1%) ival-add ...herbie/master/src/biginterval.rkt:93:0 bfdiv [262] 93.1% ------------------------------------------------------------------------------------------- ??? [167] 100.0% [192] 4092(1.8%) 2754(1.2%) ival-asin ...rbie/master/src/biginterval.rkt:343:0 bfsin [238] 32.7% ------------------------------------------------------------------------------------------- ??? [167] 100.0% [193] 3988(1.7%) 558(0.2%) ival-atan2 ...bie/master/src/biginterval.rkt:317:0 pi.bf [206] 48.3% bfdiv [262] 37.7% ------------------------------------------------------------------------------------------- for-loop [176] 100.0% [194] 1194(0.5%) 600(0.3%) core651 ...acket/contract/private/arr-i.rkt:929:19 un-dep/maybe-chaperone [215] 25.0% successfully-got-the-right-kind-of-function [216] 24.8% ------------------------------------------------------------------------------------------- baseline-error [183] 20.6% ??? [76] 79.4% [195] 1194(0.5%) 0(0.0%) loop .../racket-7.2/collects/racket/list.rkt:751:4 ??? [210] 79.4% ??? [218] 20.6% ------------------------------------------------------------------------------------------- ??? [167] 100.0% [196] 1110(0.5%) 274(0.1%) ival-sub ...herbie/master/src/biginterval.rkt:99:0 bfdiv [262] 75.3% ------------------------------------------------------------------------------------------- ??? [180] 100.0% [197] 600(0.3%) 282(0.1%) contract-first-order ...act/private/guts.rkt:239:0 coerce-contract/f [283] 53.0% ------------------------------------------------------------------------------------------- mk-enode! [177] 100.0% [198] 596(0.3%) 0(0.0%) new-enode ...erbie/master/src/core/enode.rkt:101:0 type-of-enode-expr [213] 51.0% check-valid-enode5 [217] 49.0% ------------------------------------------------------------------------------------------- dedup-children! [178] 14.7% loop [199] 85.3% [199] 566(0.2%) 566(0.2%) loop ...racket-7.2/collects/racket/list.rkt:434:17 loop [199] 85.3% ------------------------------------------------------------------------------------------- loop [200] 50.0% dedup-children! [178] 50.0% [200] 332(0.1%) 332(0.1%) loop ...racket-7.2/collects/racket/list.rkt:417:34 loop [200] 50.0% ------------------------------------------------------------------------------------------- for-loop [168] 100.0% [201] 300(0.1%) 0(0.0%) ??? ...lies/herbie/master/src/core/ematch.rkt:43:5 for-loop [214] 100.0% ------------------------------------------------------------------------------------------- enode-merge! [182] 100.0% [202] 298(0.1%) 0(0.0%) adopt-enode! ...ie/master/src/core/enode.rkt:109:0 custom-set-union [246] 100.0% ------------------------------------------------------------------------------------------- lambda-clause-expander [185] 18.4% for-loop [220] 81.6% [203] 17382(7.5%) 0(0.0%) finish-bodys (unknown source) for-loop [220] 100.0% ------------------------------------------------------------------------------------------- errors-score [149] 0.2% for-loop [155] 0.7% ??? [153] 0.8% mk-enode-rec! [232] 2.1% loop! [225] 3.2% ??? [47] 4.3% taylor [70] 6.1% map [56] 7.6% ??? [141] 13.1% for-loop [188] 13.5% loop [204] 48.4% [204] 15260(6.6%) 4400(1.9%) loop ...-7.2/collects/racket/private/map.rkt:40:19 loop [204] 48.4% ??? [223] 15.3% ??? [219] 11.9% simplify [34] 6.1% ??? [141] 3.8% loop! [225] 3.2% mk-enode-rec! [232] 2.1% ??? [224] 2.0% eval-prog [221] 0.8% ??? [228] 0.2% foldl [227] 0.0% ------------------------------------------------------------------------------------------- inductor [118] 3.3% variable? [160] 12.6% constant? [187] 84.1% [205] 9086(3.9%) 9086(3.9%) value? .../herbie/master/src/syntax/types.rkt:18:0 ------------------------------------------------------------------------------------------- ival-atan2 [193] 21.7% ival-cos [186] 27.0% ival-sin [184] 51.4% [206] 8892(3.8%) 230(0.1%) pi.bf ...-lib/math/private/bigfloat/mpfr.rkt:998:4 new-mpfr [270] 66.3% ??? [271] 31.2% ------------------------------------------------------------------------------------------- ival-cos [186] 32.4% ival-sin [184] 67.6% [207] 4524(1.9%) 0(0.0%) bffloor ...ib/math/private/bigfloat/mpfr.rkt:716:4 new-mpfr [270] 55.4% ??? [271] 44.6% ------------------------------------------------------------------------------------------- for-loop [189] 100.0% [208] 2142(0.9%) 0(0.0%) for-loop ...erbie/master/src/core/egraph.rkt:217:8 hash-update! [222] 100.0% ------------------------------------------------------------------------------------------- ival-cos [186] 34.1% ival-sin [184] 65.9% [209] 1826(0.8%) 216(0.1%) bfeven? ...ib/math/private/bigfloat/mpfr.rkt:800:0 size+limbs->integer [230] 37.7% ??? [271] 34.4% new-mpz [229] 16.1% ------------------------------------------------------------------------------------------- argmin [96] 40.4% loop [195] 59.6% [210] 1590(0.7%) 0(0.0%) ??? ...tlies/herbie/master/src/mainloop.rkt:113:10 errors [103] 100.0% ------------------------------------------------------------------------------------------- expand-id-application-form17 [190] 30.0% expand-implicit [10] 70.0% [211] 992(0.4%) 992(0.4%) binding-lookup52 (unknown source) ------------------------------------------------------------------------------------------- ival-sin [184] 47.7% ival-cos [186] 52.3% [212] 554(0.2%) 0(0.0%) bfodd? ...lib/math/private/bigfloat/mpfr.rkt:803:0 new-mpz [229] 100.0% ------------------------------------------------------------------------------------------- new-enode [198] 100.0% [213] 304(0.1%) 0(0.0%) type-of-enode-expr ...ster/src/core/enode.rkt:66:0 table-ref [231] 100.0% ------------------------------------------------------------------------------------------- ??? [201] 100.0% [214] 300(0.1%) 300(0.1%) for-loop ...herbie/master/src/core/ematch.rkt:44:7 ------------------------------------------------------------------------------------------- core651 [194] 100.0% [215] 298(0.1%) 298(0.1%) un-dep/maybe-chaperone ...private/arr-i.rkt:1108:2 ------------------------------------------------------------------------------------------- core651 [194] 100.0% [216] 296(0.1%) 0(0.0%) successfully-got-the-right-kind-of-function ...1:4 val-has-arrow-collapsible-support? [233] 100.0% ------------------------------------------------------------------------------------------- new-enode [198] 100.0% [217] 292(0.1%) 292(0.1%) check-valid-enode5 ...ter/src/core/enode.rkt:211:0 ------------------------------------------------------------------------------------------- loop [195] 100.0% [218] 246(0.1%) 0(0.0%) ??? ...ghtlies/herbie/master/src/points.rkt:193:27 eval-errors [226] 100.0% ------------------------------------------------------------------------------------------- for-loop [62] 0.6% ??? [153] 0.6% loop [19] 2.7% ??? [47] 2.9% loop [204] 3.1% ??? [141] 3.3% ??? [4] 15.2% ??? [154] 21.3% location-do [234] 25.2% for-loop [83] 25.2% [219] 57880(24.9%) 1412(0.6%) ??? ...tract/private/arrow-higher-order.rkt:360:33 location-do [234] 25.2% approximate9 [3] 25.2% ival-mult [236] 21.3% hash-ref! [235] 17.9% mk-ival [240] 4.3% sample-multi-bounded [241] 3.2% ------------------------------------------------------------------------------------------- fallback-loop [158] 2.1% for-loop [220] 8.5% compile-forms33 [174] 9.4% finish-bodys [203] 78.5% [220] 19830(8.5%) 3654(1.6%) for-loop (unknown source) finish-bodys [203] 65.4% for-loop [220] 8.5% compile-module-linklet57 [247] 4.4% syntax-e [7] 3.8% loop [105] 3.4% expand-implicit [10] 2.2% dispatch-transformer41 [237] 1.6% expand-identifier [13] 0.6% add-local-binding!39 [242] 0.5% ------------------------------------------------------------------------------------------- loop [204] 2.1% errors [103] 97.9% [221] 11590(5.0%) 0(0.0%) eval-prog ...s/herbie/master/src/programs.rkt:83:0 temp85_0 [104] 97.4% loop [105] 2.6% ------------------------------------------------------------------------------------------- loop [40] 6.2% for-loop [208] 42.9% for-loop [189] 50.9% [222] 4988(2.1%) 308(0.1%) hash-update! ...cket/private/more-scheme.rkt:365:4 ??? [239] 93.8% ------------------------------------------------------------------------------------------- map [56] 25.0% loop [204] 75.0% [223] 4540(2.0%) 0(0.0%) ??? ...ghtlies/herbie/master/src/points.rkt:190:26 ??? [141] 94.5% ulp-difference [244] 5.5% ------------------------------------------------------------------------------------------- for-loop [122] 11.4% loop [166] 11.5% loop [204] 12.4% map [56] 13.9% ??? [141] 25.3% ormap [147] 25.6% [224] 2424(1.0%) 2424(1.0%) ??? ...cket-7.2/collects/racket/function.rkt:93:12 ------------------------------------------------------------------------------------------- loop [204] 34.2% merge-egraph-nodes! [157] 65.8% [225] 1530(0.7%) 300(0.1%) loop! ...es/herbie/master/src/core/enode.rkt:194:2 custom-set-union [246] 38.8% loop [204] 34.2% set [248] 17.1% ------------------------------------------------------------------------------------------- ??? [218] 24.8% ??? [153] 75.2% [226] 990(0.4%) 0(0.0%) eval-errors .../herbie/master/src/points.rkt:179:0 for-loop [243] 100.0% ------------------------------------------------------------------------------------------- loop [204] 35.8% for-loop [155] 64.2% [227] 934(0.4%) 0(0.0%) foldl ....2/collects/racket/private/list.rkt:229:4 merge2 [245] 100.0% ------------------------------------------------------------------------------------------- loop [204] 100.0% [228] 934(0.4%) 640(0.3%) ??? ...-racket/utils/simple-result-arrow.rkt:39:12 bfsin [238] 31.5% ------------------------------------------------------------------------------------------- bfeven? [209] 34.7% bfodd? [212] 65.3% [229] 848(0.4%) 848(0.4%) new-mpz ...-lib/math/private/bigfloat/gmp.rkt:73:0 ------------------------------------------------------------------------------------------- bfeven? [209] 100.0% [230] 688(0.3%) 688(0.3%) size+limbs->integer ...vate/bigfloat/gmp.rkt:103:0 ------------------------------------------------------------------------------------------- type-of-enode-expr [213] 47.9% inductor [118] 52.1% [231] 634(0.3%) 330(0.1%) table-ref ...ies/herbie/master/src/common.rkt:45:0 dict? [249] 47.9% ------------------------------------------------------------------------------------------- for-loop [80] 14.3% loop [204] 85.7% [232] 324(0.1%) 324(0.1%) mk-enode-rec! .../master/src/core/egraph.rkt:117:0 loop [204] 85.7% ------------------------------------------------------------------------------------------- successfully-got-the-right-kind-of-function [216]100.0% [233] 296(0.1%) 296(0.1%) val-has-arrow-collapsible-support? ...le.rkt:116:0 ------------------------------------------------------------------------------------------- ??? [219] 22.2% location-do [234] 77.8% [234] 39468(17.0%) 0(0.0%) location-do ...herbie/master/src/programs.rkt:64:0 location-do [234] 77.8% ??? [219] 22.2% ------------------------------------------------------------------------------------------- for-loop [31] 0.1% simplify* [74] 0.2% for-loop [28] 0.5% for-loop [27] 0.5% for-loop [91] 0.6% localize-error [58] 0.9% first-nonzero-exp [49] 1.6% map [56] 4.3% loop [88] 4.5% ??? [35] 4.6% ??? [4] 5.8% ??? [250] 10.8% loop [19] 12.3% ??? [219] 14.6% for-loop [20] 15.8% for-loop [21] 21.8% [235] 37186(16.0%) 354(0.2%) hash-ref! .../racket/private/more-scheme.rkt:376:2 ??? [5] 23.1% ??? [6] 21.9% ??? [4] 18.1% simplify [34] 14.0% ??? [250] 10.8% parse-loop30 [69] 5.2% taylor [70] 3.6% ??? [11] 1.0% ??? [12] 0.6% ??? [14] 0.2% taylor-quotient [37] 0.1% ??? [259] 0.1% ------------------------------------------------------------------------------------------- ??? [219] 100.0% [236] 12326(5.3%) 2590(1.1%) ival-mult ...rbie/master/src/biginterval.rkt:111:0 bfdiv [262] 55.2% bfmax* [255] 14.0% bfmin* [257] 7.8% bfnext [261] 2.0% ------------------------------------------------------------------------------------------- for-loop [220] 23.9% loop [105] 32.2% expand-capturing-lifts [169] 43.9% [237] 8054(3.5%) 0(0.0%) dispatch-transformer41 (unknown source) apply-transformer52 [251] 100.0% ------------------------------------------------------------------------------------------- ??? [228] 3.9% ival-asin [192] 17.7% ival-cos [186] 35.9% ival-sin [184] 42.5% [238] 7552(3.3%) 0(0.0%) bfsin ...-lib/math/private/bigfloat/mpfr.rkt:618:4 new-mpfr [270] 81.3% ??? [271] 18.7% ------------------------------------------------------------------------------------------- hash-update! [222] 100.0% [239] 4680(2.0%) 0(0.0%) ??? ...es/herbie/master/src/core/egraph.rkt:219:24 for-loop [253] 100.0% ------------------------------------------------------------------------------------------- ??? [219] 100.0% [240] 2508(1.1%) 0(0.0%) mk-ival .../herbie/master/src/biginterval.rkt:57:0 bf [254] 100.0% ------------------------------------------------------------------------------------------- ??? [219] 100.0% [241] 1836(0.8%) 0(0.0%) sample-multi-bounded ...master/src/points.rkt:15:0 random-ranges [256] 83.0% return/no-unsupplied [252] 17.0% ------------------------------------------------------------------------------------------- for-loop [220] 100.0% [242] 1308(0.6%) 938(0.4%) add-local-binding!39 (unknown source) binding-table-add [258] 28.3% ------------------------------------------------------------------------------------------- eval-errors [226] 100.0% [243] 990(0.4%) 0(0.0%) for-loop ...ies/herbie/master/src/points.rkt:181:2 ??? [141] 100.0% ------------------------------------------------------------------------------------------- ??? [223] 26.5% ??? [153] 35.5% ??? [97] 38.0% [244] 942(0.4%) 942(0.4%) ulp-difference ...herbie/master/src/float.rkt:20:0 ------------------------------------------------------------------------------------------- foldl [227] 100.0% [245] 934(0.4%) 934(0.4%) merge2 ...s/herbie/master/src/core/ematch.rkt:24:0 ------------------------------------------------------------------------------------------- adopt-enode! [202] 33.4% loop! [225] 66.6% [246] 892(0.4%) 592(0.3%) custom-set-union ...et/private/set-types.rkt:168:0 for-loop [260] 33.6% ------------------------------------------------------------------------------------------- for-loop [220] 100.0% [247] 872(0.4%) 872(0.4%) compile-module-linklet57 (unknown source) ------------------------------------------------------------------------------------------- loop! [225] 100.0% [248] 636(0.3%) 636(0.3%) set ...collects/racket/private/set-types.rkt:981:0 ------------------------------------------------------------------------------------------- table-ref [231] 100.0% [249] 304(0.1%) 304(0.1%) dict? ...ollects/racket/private/generic.rkt:146:11 ------------------------------------------------------------------------------------------- hash-ref! [235] 100.0% [250] 27140(11.7%) 0(0.0%) ??? ...ies/herbie/master/src/core/taylor.rkt:45:15 hash-ref! [235] 100.0% ------------------------------------------------------------------------------------------- dispatch-transformer41 [237] 100.0% [251] 8054(3.5%) 600(0.3%) apply-transformer52 (unknown source) apply-transformer-in-context [263] 45.9% loop [105] 38.9% apply-post-expansion [266] 7.7% ------------------------------------------------------------------------------------------- sample-multi-bounded [241] 6.7% flag-set? [163] 7.0% simplify* [74] 13.3% ??? [170] 73.1% [252] 4686(2.0%) 3706(1.6%) return/no-unsupplied ...ct/private/arr-i.rkt:542:0 filter [265] 20.9% ------------------------------------------------------------------------------------------- ??? [239] 100.0% [253] 4680(2.0%) 4346(1.9%) for-loop ...rbie/master/src/core/egraph.rkt:220:26 update-en-expr [267] 7.1% ------------------------------------------------------------------------------------------- mk-ival [240] 100.0% [254] 2508(1.1%) 0(0.0%) bf ...ath-lib/math/private/bigfloat/mpfr.rkt:601:2 new-mpfr [270] 100.0% ------------------------------------------------------------------------------------------- ival-mult [236] 100.0% [255] 1724(0.7%) 0(0.0%) bfmax* .../herbie/master/src/biginterval.rkt:108:0 bfdiv [262] 100.0% ------------------------------------------------------------------------------------------- sample-multi-bounded [241] 100.0% [256] 1524(0.7%) 0(0.0%) random-ranges ...erbie/master/src/common.rkt:183:0 build--> [264] 100.0% ------------------------------------------------------------------------------------------- ival-mult [236] 100.0% [257] 958(0.4%) 0(0.0%) bfmin* .../herbie/master/src/biginterval.rkt:105:0 bfdiv [262] 100.0% ------------------------------------------------------------------------------------------- add-local-binding!39 [242] 100.0% [258] 370(0.2%) 370(0.2%) binding-table-add (unknown source) ------------------------------------------------------------------------------------------- hash-ref! [235] 100.0% [259] 300(0.1%) 0(0.0%) ??? ...es/herbie/master/src/core/taylor.rkt:452:23 rle [268] 100.0% ------------------------------------------------------------------------------------------- custom-set-union [246] 100.0% [260] 300(0.1%) 0(0.0%) for-loop ...cts/racket/private/set-types.rkt:174:3 for-loop [269] 100.0% ------------------------------------------------------------------------------------------- ival-mult [236] 100.0% [261] 250(0.1%) 0(0.0%) bfnext ...lib/math/private/bigfloat/mpfr.rkt:867:0 ??? [271] 100.0% ------------------------------------------------------------------------------------------- ival-sub [196] 2.6% bfmin* [257] 3.0% ival-atan2 [193] 4.7% bfmax* [255] 5.4% ival-add [191] 12.6% ival-cos [186] 15.1% ival-mult [236] 21.5% ival-sin [184] 34.9% [262] 31680(13.6%) 2430(1.0%) bfdiv ...-lib/math/private/bigfloat/mpfr.rkt:821:4 new-mpfr [270] 70.1% ??? [271] 22.2% ------------------------------------------------------------------------------------------- apply-transformer52 [251] 100.0% [263] 3700(1.6%) 1176(0.5%) apply-transformer-in-context (unknown source) ??? [273] 27.5% go [274] 17.1% datum->syntax6 [275] 8.1% parse-app [277] 8.1% new-lambda [278] 7.4% ------------------------------------------------------------------------------------------- random-ranges [256] 100.0% [264] 1524(0.7%) 1180(0.5%) build--> ...act/private/arrow-val-first.rkt:1088:0 coerce-contract [276] 22.6% ------------------------------------------------------------------------------------------- for-loop [155] 20.1% return/no-unsupplied [252] 79.9% [265] 1226(0.5%) 1226(0.5%) filter ...2/collects/racket/private/list.rkt:256:2 ------------------------------------------------------------------------------------------- apply-transformer52 [251] 100.0% [266] 622(0.3%) 0(0.0%) apply-post-expansion (unknown source) gf [272] 100.0% ------------------------------------------------------------------------------------------- for-loop [253] 100.0% [267] 334(0.1%) 334(0.1%) update-en-expr ...master/src/core/egraph.rkt:205:0 ------------------------------------------------------------------------------------------- ??? [259] 100.0% [268] 300(0.1%) 300(0.1%) rle ...ies/herbie/master/src/core/taylor.rkt:397:0 ------------------------------------------------------------------------------------------- for-loop [260] 100.0% [269] 300(0.1%) 300(0.1%) for-loop ...cts/racket/private/set-types.rkt:178:5 ------------------------------------------------------------------------------------------- bf [254] 6.4% bffloor [207] 6.4% pi.bf [206] 15.0% bfsin [238] 15.6% bfdiv [262] 56.6% [270] 39256(16.9%) 39256(16.9%) new-mpfr ...b/math/private/bigfloat/mpfr.rkt:335:0 ------------------------------------------------------------------------------------------- bfnext [261] 1.8% bfeven? [209] 4.4% bfsin [238] 10.0% bffloor [207] 14.3% pi.bf [206] 19.6% bfdiv [262] 49.9% [271] 14118(6.1%) 14118(6.1%) ??? /opt/racket-7.2/collects/ffi/unsafe.rkt:905:4 ------------------------------------------------------------------------------------------- add-ns-scopes [140] 0.7% apply-post-expansion [266] 2.1% loop [105] 97.2% [272] 10446(4.5%) 1618(0.7%) gf (unknown source) propagation-apply [279] 53.6% propagation-merge [280] 10.4% propagation-apply-shifted [282] 7.8% cache-or-reuse-set [285] 5.7% loop [105] 5.4% syntax-e/no-taint [22] 1.6% ------------------------------------------------------------------------------------------- apply-transformer-in-context [263] 100.0% [273] 1018(0.4%) 0(0.0%) ??? ...collects/racket/private/qq-and-or.rkt:155:9 ??? [281] 100.0% ------------------------------------------------------------------------------------------- apply-transformer-in-context [263] 100.0% [274] 634(0.3%) 0(0.0%) go .../collects/racket/private/qq-and-or.rkt:50:20 loop [284] 100.0% ------------------------------------------------------------------------------------------- apply-transformer-in-context [263] 48.9% eval [115] 51.1% [275] 614(0.3%) 300(0.1%) datum->syntax6 (unknown source) loop [105] 51.1% ------------------------------------------------------------------------------------------- build--> [264] 100.0% [276] 344(0.1%) 0(0.0%) coerce-contract ...contract/private/guts.rkt:308:0 coerce-contract/f [283] 100.0% ------------------------------------------------------------------------------------------- apply-transformer-in-context [263] 100.0% [277] 298(0.1%) 0(0.0%) parse-app ...collects/racket/private/kw.rkt:1107:2 syntax->list [286] 100.0% ------------------------------------------------------------------------------------------- apply-transformer-in-context [263] 100.0% [278] 274(0.1%) 274(0.1%) new-lambda ...ollects/racket/private/kw.rkt:824:11 ------------------------------------------------------------------------------------------- gf [272] 100.0% [279] 5594(2.4%) 5594(2.4%) propagation-apply (unknown source) ------------------------------------------------------------------------------------------- gf [272] 100.0% [280] 1252(0.5%) 1252(0.5%) propagation-merge (unknown source) ------------------------------------------------------------------------------------------- ??? [273] 100.0% [281] 1018(0.4%) 0(0.0%) ??? ...ollects/racket/private/qq-and-or.rkt:164:21 syntax->list [286] 100.0% ------------------------------------------------------------------------------------------- gf [272] 100.0% [282] 816(0.4%) 816(0.4%) propagation-apply-shifted (unknown source) ------------------------------------------------------------------------------------------- contract-first-order [197] 48.0% coerce-contract [276] 52.0% [283] 662(0.3%) 318(0.1%) coerce-contract/f ...ntract/private/guts.rkt:373:0 coerce-simple-value [287] 52.0% ------------------------------------------------------------------------------------------- go [274] 23.3% loop [284] 76.7% [284] 634(0.3%) 0(0.0%) loop ...llects/racket/private/qq-and-or.rkt:101:61 loop [284] 76.7% stx-cdr [289] 15.8% stx-pair? [288] 7.5% ------------------------------------------------------------------------------------------- gf [272] 100.0% [285] 598(0.3%) 598(0.3%) cache-or-reuse-set (unknown source) ------------------------------------------------------------------------------------------- parse-app [277] 22.6% ??? [281] 77.4% [286] 1316(0.6%) 0(0.0%) syntax->list (unknown source) loop [105] 100.0% ------------------------------------------------------------------------------------------- coerce-contract/f [283] 100.0% [287] 344(0.1%) 344(0.1%) coerce-simple-value ...ract/private/guts.rkt:386:0 ------------------------------------------------------------------------------------------- loop [284] 100.0% [288] 334(0.1%) 334(0.1%) stx-pair? .../collects/racket/private/stx.rkt:40:4 ------------------------------------------------------------------------------------------- loop [284] 100.0% [289] 300(0.1%) 300(0.1%) stx-cdr ....2/collects/racket/private/stx.rkt:74:4 -------------------------------------------------------------------------------------------