Profiling results ----------------- Total cpu time observed: 308648ms (out of 309656ms) Number of samples taken: 961 (once every 321ms) (Hiding functions with self<1.0% and local<2.0%: 18 of 309 hidden) ========================================================================================== Caller Idx Total Self Name+src Local% ms(pct) ms(pct) Callee ========================================================================================== ??? [149] 100.0% [1] 308648(100.0%) 0(0.0%) profile-thunk16 ...e/pkgs/profile-lib/main.rkt:9:0 run [15] 100.0% ------------------------------------------------------------------------------------------ ??? [149] 100.0% [2] 283226(91.8%) 0(0.0%) run-improve43 ...ie/develop/src/mainloop.rkt:339:0 for-loop [16] 92.2% simplify! [35] 7.8% ------------------------------------------------------------------------------------------ eval4 [162] 2.2% loop [73] 23.8% for-loop [226] 74.0% [3] 16000(5.2%) 0(0.0%) syntax-e (unknown source) syntax-e/no-taint [17] 100.0% ------------------------------------------------------------------------------------------ matcher [99] 100.0% [4] 11268(3.7%) 0(0.0%) ??? .../herbie/develop/src/core/matcher.rkt:130:11 for-loop [19] 92.9% for-loop [25] 6.5% foldl [30] 0.6% ------------------------------------------------------------------------------------------ expand-capturing-lifts [201] 17.7% loop [73] 34.4% for-loop [226] 47.9% [5] 10940(3.5%) 0(0.0%) dispatch-transformer41 (unknown source) apply-transformer52 [18] 100.0% ------------------------------------------------------------------------------------------ ??? [253] 100.0% [6] 8946(2.9%) 0(0.0%) approximate9 ...e/develop/src/core/taylor.rkt:12:0 loop [20] 67.7% for-loop [23] 17.1% taylor [29] 15.3% ------------------------------------------------------------------------------------------ hash-ref! [257] 100.0% [7] 5720(1.9%) 0(0.0%) ??? ...es/herbie/develop/src/core/taylor.rkt:45:15 hash-ref! [257] 77.7% ??? [24] 16.1% simplify [49] 6.3% ------------------------------------------------------------------------------------------ hash-ref! [257] 100.0% [8] 5080(1.6%) 0(0.0%) ??? ...s/herbie/develop/src/core/taylor.rkt:301:23 for-loop [21] 100.0% ------------------------------------------------------------------------------------------ for-loop [226] 100.0% [9] 4412(1.4%) 572(0.2%) expand-implicit (unknown source) resolve+shift28 [100] 87.0% ------------------------------------------------------------------------------------------ for-loop [85] 100.0% [10] 3710(1.2%) 0(0.0%) for-loop ...rbie/develop/src/core/matcher.rkt:99:8 fix-up-variables [22] 100.0% ------------------------------------------------------------------------------------------ for-loop [226] 100.0% [11] 2808(0.9%) 290(0.1%) expand-identifier (unknown source) resolve+shift28 [100] 89.7% ------------------------------------------------------------------------------------------ hash-ref! [257] 100.0% [12] 710(0.2%) 0(0.0%) ??? ...s/herbie/develop/src/core/taylor.rkt:291:26 for-loop [26] 100.0% ------------------------------------------------------------------------------------------ loop [210] 100.0% [13] 344(0.1%) 0(0.0%) ??? .../herbie/develop/src/core/localize.rkt:50:36 ulp-difference [227] 100.0% ------------------------------------------------------------------------------------------ copying-mergesort [240] 100.0% [14] 338(0.1%) 0(0.0%) jloop ...2/collects/racket/private/sort.rkt:120:23 ??? [245] 100.0% ------------------------------------------------------------------------------------------ profile-thunk16 [1] 100.0% [15] 308648(100.0%) 0(0.0%) run ...et-7.2/share/pkgs/profile-lib/main.rkt:39:2 ??? [149] 100.0% ------------------------------------------------------------------------------------------ run-improve43 [2] 100.0% [16] 261198(84.6%) 0(0.0%) for-loop .../herbie/develop/src/mainloop.rkt:354:4 run-iter! [27] 100.0% ------------------------------------------------------------------------------------------ gf [179] 1.7% expand-id-application-form17 [234] 21.1% syntax-e [3] 77.2% [17] 20730(6.7%) 352(0.1%) syntax-e/no-taint (unknown source) loop [73] 98.3% ------------------------------------------------------------------------------------------ dispatch-transformer41 [5] 100.0% [18] 10940(3.5%) 1600(0.5%) apply-transformer52 (unknown source) apply-transformer-in-context [28] 43.1% loop [73] 33.1% apply-post-expansion [32] 9.2% ------------------------------------------------------------------------------------------ ??? [4] 100.0% [19] 10690(3.5%) 0(0.0%) for-loop ...ie/develop/src/core/matcher.rkt:132:15 matcher [99] 100.0% ------------------------------------------------------------------------------------------ approximate9 [6] 100.0% [20] 6054(2.0%) 0(0.0%) loop ...es/herbie/develop/src/core/taylor.rkt:87:4 ??? [253] 63.3% hash-ref! [257] 36.7% ------------------------------------------------------------------------------------------ ??? [8] 100.0% [21] 5080(1.6%) 0(0.0%) for-loop ...bie/develop/src/core/taylor.rkt:304:27 hash-ref! [257] 100.0% ------------------------------------------------------------------------------------------ for-loop [10] 100.0% [22] 3710(1.2%) 0(0.0%) fix-up-variables ...lop/src/core/matcher.rkt:111:2 pattern-match [31] 41.7% pattern-substitute [88] 32.7% for-loop [33] 25.6% ------------------------------------------------------------------------------------------ approximate9 [6] 100.0% [23] 1526(0.5%) 0(0.0%) for-loop ...rbie/develop/src/core/taylor.rkt:30:18 taylor [29] 100.0% ------------------------------------------------------------------------------------------ ??? [7] 100.0% [24] 920(0.3%) 0(0.0%) ??? ...s/herbie/develop/src/core/taylor.rkt:294:19 hash-ref! [257] 100.0% ------------------------------------------------------------------------------------------ ??? [4] 100.0% [25] 878(0.3%) 0(0.0%) for-loop ...bie/develop/src/core/matcher.rkt:106:4 foldl [30] 100.0% ------------------------------------------------------------------------------------------ ??? [12] 100.0% [26] 710(0.2%) 0(0.0%) for-loop ...bie/develop/src/core/taylor.rkt:291:52 hash-ref! [257] 100.0% ------------------------------------------------------------------------------------------ for-loop [16] 100.0% [27] 261198(84.6%) 0(0.0%) run-iter! ...herbie/develop/src/mainloop.rkt:320:0 finalize-iter! [34] 50.4% simplify! [35] 40.1% gen-rewrites! [36] 5.1% gen-series! [37] 3.4% localize! [41] 0.5% ------------------------------------------------------------------------------------------ apply-transformer52 [18] 100.0% [28] 4718(1.5%) 966(0.3%) apply-transformer-in-context (unknown source) ??? [39] 45.0% parse-app [42] 27.2% go [44] 7.4% ------------------------------------------------------------------------------------------ taylor [29] 30.5% approximate9 [6] 34.3% for-loop [23] 35.2% [29] 2892(0.9%) 308(0.1%) taylor ...herbie/develop/src/core/taylor.rkt:170:0 taylor-quotient [40] 56.6% taylor [29] 30.5% taylor-invert [45] 5.8% loop [213] 3.5% ------------------------------------------------------------------------------------------ ??? [4] 21.9% loop [213] 22.4% for-loop [25] 55.8% [30] 1574(0.5%) 696(0.2%) foldl ....2/collects/racket/private/list.rkt:229:4 ??? [43] 55.8% ------------------------------------------------------------------------------------------ fix-up-variables [22] 100.0% [31] 1548(0.5%) 0(0.0%) pattern-match ...develop/src/core/matcher.rkt:30:0 for-loop [38] 100.0% ------------------------------------------------------------------------------------------ apply-transformer52 [18] 100.0% [32] 1002(0.3%) 0(0.0%) apply-post-expansion (unknown source) gf [179] 100.0% ------------------------------------------------------------------------------------------ fix-up-variables [22] 100.0% [33] 948(0.3%) 0(0.0%) for-loop ...rbie/develop/src/core/matcher.rkt:42:9 for-loop [38] 100.0% ------------------------------------------------------------------------------------------ run-iter! [27] 100.0% [34] 131638(42.6%) 0(0.0%) finalize-iter! ...e/develop/src/mainloop.rkt:271:0 ??? [96] 100.0% ------------------------------------------------------------------------------------------ run-improve43 [2] 17.4% run-iter! [27] 82.6% [35] 126698(41.0%) 558(0.2%) simplify! ...herbie/develop/src/mainloop.rkt:217:0 ??? [46] 96.1% for-loop [50] 3.3% ------------------------------------------------------------------------------------------ run-iter! [27] 100.0% [36] 13340(4.3%) 0(0.0%) gen-rewrites! ...ie/develop/src/mainloop.rkt:176:0 for-loop [47] 84.5% for-loop [53] 15.5% ------------------------------------------------------------------------------------------ run-iter! [27] 100.0% [37] 8946(2.9%) 0(0.0%) gen-series! ...rbie/develop/src/mainloop.rkt:153:0 for-loop [48] 100.0% ------------------------------------------------------------------------------------------ for-loop [33] 38.0% pattern-match [31] 62.0% [38] 2496(0.8%) 292(0.1%) for-loop ...rbie/develop/src/core/matcher.rkt:27:9 core651 [51] 75.2% fallback-update [56] 13.1% ------------------------------------------------------------------------------------------ apply-transformer-in-context [28] 100.0% [39] 2122(0.7%) 0(0.0%) ??? ...collects/racket/private/qq-and-or.rkt:155:9 ??? [52] 100.0% ------------------------------------------------------------------------------------------ taylor [29] 100.0% [40] 1638(0.5%) 0(0.0%) taylor-quotient ...velop/src/core/taylor.rkt:334:0 first-nonzero-exp [55] 78.3% simplify [49] 21.7% ------------------------------------------------------------------------------------------ run-iter! [27] 100.0% [41] 1320(0.4%) 0(0.0%) localize! ...herbie/develop/src/mainloop.rkt:120:0 localize-error [54] 100.0% ------------------------------------------------------------------------------------------ apply-transformer-in-context [28] 100.0% [42] 1282(0.4%) 302(0.1%) parse-app ...collects/racket/private/kw.rkt:1107:2 syntax->list [62] 76.4% ------------------------------------------------------------------------------------------ foldl [30] 100.0% [43] 878(0.3%) 0(0.0%) ??? ...es/herbie/develop/src/core/matcher.rkt:26:7 fallback-update [56] 64.0% core651 [51] 36.0% ------------------------------------------------------------------------------------------ apply-transformer-in-context [28] 100.0% [44] 348(0.1%) 0(0.0%) go .../collects/racket/private/qq-and-or.rkt:50:20 syntax->list [62] 100.0% ------------------------------------------------------------------------------------------ taylor [29] 100.0% [45] 336(0.1%) 0(0.0%) taylor-invert ...develop/src/core/taylor.rkt:318:0 simplify [49] 100.0% ------------------------------------------------------------------------------------------ simplify! [35] 100.0% [46] 121736(39.4%) 304(0.1%) ??? ...s/herbie/develop/src/core/simplify.rkt:26:0 one-iter [71] 57.2% loop [57] 25.7% for-loop [58] 14.9% for-loop [65] 0.8% loop [213] 0.5% debug-print [67] 0.3% ------------------------------------------------------------------------------------------ gen-rewrites! [36] 100.0% [47] 11268(3.7%) 0(0.0%) for-loop ...herbie/develop/src/mainloop.rkt:184:11 rewrite-expression-head20 [59] 100.0% ------------------------------------------------------------------------------------------ gen-series! [37] 100.0% [48] 8946(2.9%) 0(0.0%) for-loop .../herbie/develop/src/mainloop.rkt:160:7 taylor-alt [60] 100.0% ------------------------------------------------------------------------------------------ taylor-invert [45] 3.9% taylor-quotient [40] 4.1% ??? [7] 4.1% loop [213] 7.1% hash-ref! [257] 80.8% [49] 8638(2.8%) 0(0.0%) simplify ...erbie/develop/src/core/reduce.rkt:16:0 parse-loop80 [271] 61.9% f46 [64] 23.1% debug-print [67] 7.3% debug5 [68] 3.9% simplify* [207] 3.8% ------------------------------------------------------------------------------------------ simplify! [35] 100.0% [50] 4128(1.3%) 0(0.0%) for-loop .../herbie/develop/src/mainloop.rkt:255:6 for-loop [61] 100.0% ------------------------------------------------------------------------------------------ ??? [43] 14.4% for-loop [38] 85.6% [51] 2192(0.7%) 316(0.1%) core651 ...acket/contract/private/arr-i.rkt:929:19 un-dep/maybe-chaperone [66] 43.2% arrow-higher-order:lnp [69] 14.7% successfully-got-the-right-kind-of-function [267] 14.4% build-unary-very-simple--> [70] 13.3% ------------------------------------------------------------------------------------------ ??? [39] 100.0% [52] 2122(0.7%) 308(0.1%) ??? ...ollects/racket/private/qq-and-or.rkt:164:21 syntax->list [62] 85.5% ------------------------------------------------------------------------------------------ gen-rewrites! [36] 100.0% [53] 2072(0.7%) 0(0.0%) for-loop .../herbie/develop/src/mainloop.rkt:201:4 for-loop [63] 100.0% ------------------------------------------------------------------------------------------ localize! [41] 100.0% [54] 1320(0.4%) 0(0.0%) localize-error ...velop/src/core/localize.rkt:57:0 hash-ref! [257] 75.9% ??? [224] 24.1% ------------------------------------------------------------------------------------------ taylor-quotient [40] 100.0% [55] 1282(0.4%) 0(0.0%) first-nonzero-exp ...lop/src/core/taylor.rkt:266:0 hash-ref! [257] 100.0% ------------------------------------------------------------------------------------------ for-loop [38] 36.9% ??? [43] 63.1% [56] 890(0.3%) 300(0.1%) fallback-update ...s/racket/private/dict.rkt:115:2 ??? [253] 66.3% ------------------------------------------------------------------------------------------ ??? [46] 100.0% [57] 31304(10.1%) 308(0.1%) loop ...herbie/develop/src/core/simplify.rkt:142:2 for-loop [72] 98.1% ------------------------------------------------------------------------------------------ ??? [46] 100.0% [58] 18184(5.9%) 0(0.0%) for-loop ...bie/develop/src/core/simplify.rkt:33:2 one-iter [71] 100.0% ------------------------------------------------------------------------------------------ for-loop [47] 100.0% [59] 11268(3.7%) 0(0.0%) rewrite-expression-head20 ...core/matcher.rkt:87:0 rewriter [74] 100.0% ------------------------------------------------------------------------------------------ for-loop [48] 100.0% [60] 8946(2.9%) 0(0.0%) taylor-alt ...erbie/develop/src/mainloop.rkt:139:0 for-loop [75] 100.0% ------------------------------------------------------------------------------------------ for-loop [50] 100.0% [61] 4128(1.3%) 0(0.0%) for-loop .../herbie/develop/src/mainloop.rkt:256:8 expression-cost [138] 71.0% for-loop [101] 15.0% ??? [256] 14.0% ------------------------------------------------------------------------------------------ go [44] 11.1% parse-app [42] 31.2% ??? [52] 57.7% [62] 3142(1.0%) 348(0.1%) syntax->list (unknown source) loop [73] 88.9% ------------------------------------------------------------------------------------------ for-loop [53] 100.0% [63] 2072(0.7%) 0(0.0%) for-loop .../herbie/develop/src/mainloop.rkt:202:6 change-apply [76] 85.5% ??? [253] 14.5% ------------------------------------------------------------------------------------------ map [191] 26.0% simplify [49] 74.0% [64] 1994(0.6%) 0(0.0%) f46 ...2/collects/racket/match/compiler.rkt:507:40 map [191] 74.1% eval-const-expr [282] 18.0% composed [80] 7.9% ------------------------------------------------------------------------------------------ ??? [46] 100.0% [65] 1000(0.3%) 0(0.0%) for-loop ...ie/develop/src/core/simplify.rkt:31:14 mk-enode-rec! [223] 100.0% ------------------------------------------------------------------------------------------ core651 [51] 100.0% [66] 946(0.3%) 332(0.1%) un-dep/maybe-chaperone ...private/arr-i.rkt:1108:2 ??? [78] 64.9% ------------------------------------------------------------------------------------------ ??? [46] 32.7% simplify [49] 67.3% [67] 942(0.3%) 0(0.0%) debug-print .../herbie/develop/src/debug.rkt:110:0 ??? [77] 67.3% for-loop [81] 32.7% ------------------------------------------------------------------------------------------ simplify [49] 100.0% [68] 334(0.1%) 0(0.0%) debug5 ...tlies/herbie/develop/src/debug.rkt:102:0 return/no-unsupplied [287] 100.0% ------------------------------------------------------------------------------------------ core651 [51] 100.0% [69] 322(0.1%) 0(0.0%) arrow-higher-order:lnp ...w-higher-order.rkt:699:7 ??? [79] 100.0% ------------------------------------------------------------------------------------------ core651 [51] 100.0% [70] 292(0.1%) 292(0.1%) build-unary-very-simple--> ...val-first.rkt:1016:0 ------------------------------------------------------------------------------------------ for-loop [58] 20.7% ??? [46] 79.3% [71] 87860(28.5%) 0(0.0%) one-iter ...bie/develop/src/core/simplify.rkt:85:0 for-loop [82] 49.8% find-matches [83] 47.4% for-loop [90] 2.8% ------------------------------------------------------------------------------------------ loop [57] 100.0% [72] 30718(10.0%) 594(0.2%) for-loop ...ie/develop/src/core/simplify.rkt:148:4 argmin [84] 40.3% loop [86] 25.4% expression-cost [138] 20.0% for-loop [91] 8.0% for-loop [101] 4.3% ------------------------------------------------------------------------------------------ datum->syntax6 [174] 0.0% compile15 [163] 1.0% temp91_0 [178] 1.0% gf [179] 1.6% loop [169] 3.1% loop [73] 3.8% syntax->list [62] 4.2% eval-prog [137] 4.3% lambda-clause-expander [212] 6.4% apply-transformer52 [18] 8.8% for-loop [226] 13.4% syntax-e/no-taint [17] 52.3% [73] 29632(9.6%) 3404(1.1%) loop (unknown source) gf [179] 52.7% expand-id-application-form17 [234] 12.3% core-form-sym [89] 8.3% dispatch-transformer41 [5] 6.4% expand-capturing-lifts [201] 5.3% syntax-e [3] 4.7% loop [73] 3.8% ------------------------------------------------------------------------------------------ rewrite-expression-head20 [59] 34.0% matcher [99] 66.0% [74] 11268(3.7%) 924(0.3%) rewriter ...rbie/develop/src/core/matcher.rkt:90:2 for-loop [85] 86.0% *rules* [87] 11.7% ------------------------------------------------------------------------------------------ taylor-alt [60] 100.0% [75] 8946(2.9%) 0(0.0%) for-loop .../herbie/develop/src/mainloop.rkt:145:6 ??? [253] 100.0% ------------------------------------------------------------------------------------------ for-loop [63] 100.0% [76] 1772(0.6%) 0(0.0%) change-apply .../develop/src/core/matcher.rkt:70:0 pattern-substitute [88] 100.0% ------------------------------------------------------------------------------------------ debug-print [67] 100.0% [77] 634(0.2%) 0(0.0%) ??? .../contract/private/arrow-val-first.rkt:430:3 mk-call [93] 55.8% ~r78 [95] 44.2% ------------------------------------------------------------------------------------------ un-dep/maybe-chaperone [66] 100.0% [78] 614(0.2%) 0(0.0%) ??? ...cts/racket/contract/private/guts.rkt:837:10 ??? [92] 100.0% ------------------------------------------------------------------------------------------ arrow-higher-order:lnp [69] 100.0% [79] 322(0.1%) 322(0.1%) ??? ...et/contract/private/arity-checking.rkt:19:2 ------------------------------------------------------------------------------------------ f46 [64] 100.0% [80] 316(0.1%) 0(0.0%) composed ...ollects/racket/private/list.rkt:321:16 free-variables [94] 100.0% ------------------------------------------------------------------------------------------ debug-print [67] 100.0% [81] 308(0.1%) 308(0.1%) for-loop ...ies/herbie/develop/src/debug.rkt:116:2 ------------------------------------------------------------------------------------------ one-iter [71] 100.0% [82] 43754(14.2%) 0(0.0%) for-loop ...bie/develop/src/core/simplify.rkt:94:2 loop [97] 97.9% update-leader! [139] 1.4% reduce-to-single! [106] 0.7% ------------------------------------------------------------------------------------------ one-iter [71] 100.0% [83] 41636(13.5%) 0(0.0%) find-matches ...develop/src/core/simplify.rkt:55:0 for-loop [98] 100.0% ------------------------------------------------------------------------------------------ baseline-error [176] 2.3% for-loop [72] 97.7% [84] 12678(4.1%) 336(0.1%) argmin ...acket-7.2/collects/racket/list.rkt:765:0 expression-cost [138] 58.3% for-loop [101] 36.7% ??? [108] 2.3% ------------------------------------------------------------------------------------------ rewriter [74] 100.0% [85] 11268(3.7%) 0(0.0%) for-loop ...rbie/develop/src/core/matcher.rkt:92:4 matcher [99] 87.5% for-loop [10] 12.5% ------------------------------------------------------------------------------------------ for-loop [72] 100.0% [86] 7802(2.5%) 606(0.2%) loop .../racket-7.2/collects/racket/list.rkt:751:4 expression-cost [138] 68.7% for-loop [101] 23.6% ------------------------------------------------------------------------------------------ rewriter [74] 100.0% [87] 5116(1.7%) 316(0.1%) *rules* ...rbie/develop/src/syntax/rules.rkt:666:0 for-loop [102] 93.8% ------------------------------------------------------------------------------------------ fix-up-variables [22] 17.1% change-apply [76] 23.1% pattern-substitute [88] 59.8% [88] 2986(1.0%) 1824(0.6%) pattern-substitute ...op/src/core/matcher.rkt:46:0 pattern-substitute [88] 59.8% variable? [143] 8.7% ??? [96] 3.5% ------------------------------------------------------------------------------------------ loop [73] 100.0% [89] 2610(0.8%) 274(0.1%) core-form-sym (unknown source) resolve+shift28 [100] 89.5% ------------------------------------------------------------------------------------------ one-iter [71] 100.0% [90] 2470(0.8%) 0(0.0%) for-loop ...ie/develop/src/core/simplify.rkt:110:2 set-precompute! [103] 100.0% ------------------------------------------------------------------------------------------ for-loop [72] 100.0% [91] 2448(0.8%) 662(0.2%) for-loop ...e/develop/src/core/simplify.rkt:152:16 for-loop [104] 73.0% ------------------------------------------------------------------------------------------ ??? [78] 100.0% [92] 614(0.2%) 614(0.2%) ??? ...ntract/private/arrow-higher-order.rkt:560:2 ------------------------------------------------------------------------------------------ ??? [77] 100.0% [93] 354(0.1%) 0(0.0%) mk-call ...tract/private/arrow-val-first.rkt:433:5 loop [105] 100.0% ------------------------------------------------------------------------------------------ composed [80] 20.0% append-map [107] 80.0% [94] 316(0.1%) 0(0.0%) free-variables ...ie/develop/src/programs.rkt:57:0 append-map [107] 80.0% ??? [96] 20.0% ------------------------------------------------------------------------------------------ ??? [77] 100.0% [95] 280(0.1%) 280(0.1%) ~r78 ...acket-7.2/collects/racket/format.rkt:189:0 ------------------------------------------------------------------------------------------ inductor [155] 0.1% pattern-substitute [88] 0.2% free-variables [94] 0.2% match-e [118] 1.4% variable? [143] 1.5% finalize-iter! [34] 95.6% [96] 137574(44.6%) 4972(1.6%) ??? ...contract/private/arrow-val-first.rkt:390:18 for-loop [109] 95.1% ??? [114] 0.9% ------------------------------------------------------------------------------------------ for-loop [82] 100.0% [97] 42828(13.9%) 0(0.0%) loop .../herbie/develop/src/core/simplify.rkt:99:4 apply-match [110] 100.0% ------------------------------------------------------------------------------------------ for-loop [98] 48.9% find-matches [83] 51.1% [98] 41636(13.5%) 6320(2.0%) for-loop ...bie/develop/src/core/simplify.rkt:57:8 for-loop [98] 48.9% match-e [118] 42.4% ------------------------------------------------------------------------------------------ for-loop [19] 46.8% for-loop [85] 53.2% [99] 11268(3.7%) 296(0.1%) matcher ...rbie/develop/src/core/matcher.rkt:118:2 ??? [4] 53.2% rewriter [74] 46.6% ------------------------------------------------------------------------------------------ free-identifier=? [185] 3.0% expand-id-application-form17 [234] 15.2% core-form-sym [89] 22.0% expand-identifier [11] 23.7% expand-implicit [9] 36.1% [100] 10624(3.4%) 2144(0.7%) resolve+shift28 (unknown source) fallback-loop [111] 79.8% ------------------------------------------------------------------------------------------ for-loop [61] 7.3% for-loop [72] 15.8% loop [86] 21.8% argmin [84] 55.1% [101] 8448(2.7%) 0(0.0%) for-loop .../herbie/develop/src/programs.rkt:158:2 table-ref [190] 100.0% ------------------------------------------------------------------------------------------ *rules* [87] 100.0% [102] 4800(1.6%) 1628(0.5%) for-loop ...ies/herbie/develop/src/common.rkt:70:9 ormap [113] 33.2% do-curry [228] 20.5% flag-set? [121] 12.4% ------------------------------------------------------------------------------------------ for-loop [90] 100.0% [103] 2470(0.8%) 0(0.0%) set-precompute! ...lop/src/core/simplify.rkt:116:0 for-loop [112] 100.0% ------------------------------------------------------------------------------------------ for-loop [91] 100.0% [104] 1786(0.6%) 1786(0.6%) for-loop ...e/develop/src/core/simplify.rkt:156:23 ------------------------------------------------------------------------------------------ mk-call [93] 100.0% [105] 354(0.1%) 0(0.0%) loop ...contract/private/arrow-val-first.rkt:437:8 ??? [286] 100.0% ------------------------------------------------------------------------------------------ for-loop [82] 100.0% [106] 322(0.1%) 0(0.0%) reduce-to-single! ...lop/src/core/egraph.rkt:318:0 for-loop [116] 100.0% ------------------------------------------------------------------------------------------ free-variables [94] 100.0% [107] 316(0.1%) 0(0.0%) append-map ...t-7.2/collects/racket/list.rkt:586:2 free-variables [94] 100.0% ------------------------------------------------------------------------------------------ argmin [84] 100.0% [108] 296(0.1%) 0(0.0%) ??? ...htlies/herbie/develop/src/points.rkt:212:27 eval-errors [115] 100.0% ------------------------------------------------------------------------------------------ ??? [96] 100.0% [109] 130986(42.4%) 1000(0.3%) for-loop ...ie/develop/src/core/alt-table.rkt:56:2 atab-add-altn [117] 62.1% errors [124] 28.5% loop [120] 7.1% override-at-pnts [129] 1.0% for-loop [127] 0.2% loop [132] 0.2% ------------------------------------------------------------------------------------------ loop [97] 100.0% [110] 42828(13.9%) 0(0.0%) apply-match .../develop/src/core/simplify.rkt:64:0 for-loop [119] 83.6% match-e [118] 14.1% set [229] 2.3% ------------------------------------------------------------------------------------------ resolve+shift28 [100] 100.0% [111] 8480(2.7%) 3042(1.0%) fallback-loop (unknown source) for-loop [226] 64.1% ------------------------------------------------------------------------------------------ set-precompute! [103] 100.0% [112] 2470(0.8%) 318(0.1%) for-loop ...ie/develop/src/core/simplify.rkt:118:2 setfindf [122] 61.5% ??? [149] 25.7% ------------------------------------------------------------------------------------------ for-loop [102] 100.0% [113] 1592(0.5%) 316(0.1%) ormap ....2/collects/racket/private/map.rkt:141:13 flag-set? [121] 80.2% ------------------------------------------------------------------------------------------ ??? [96] 100.0% [114] 1284(0.4%) 0(0.0%) ??? .../herbie/develop/src/core/alt-table.rkt:59:0 ??? [253] 100.0% ------------------------------------------------------------------------------------------ ??? [108] 24.1% ??? [149] 75.9% [115] 1230(0.4%) 0(0.0%) eval-errors ...herbie/develop/src/points.rkt:198:0 for-loop [123] 100.0% ------------------------------------------------------------------------------------------ reduce-to-single! [106] 100.0% [116] 322(0.1%) 322(0.1%) for-loop ...rbie/develop/src/core/egraph.rkt:319:8 ------------------------------------------------------------------------------------------ for-loop [109] 99.2% [117] 82022(26.6%) 952(0.3%) atab-add-altn ...elop/src/core/alt-table.rkt:202:0 errors [124] 90.4% for-loop [127] 4.8% override-at-pnts [129] 1.1% loop [132] 0.4% paired-fold [133] 0.4% map [191] 0.4% ------------------------------------------------------------------------------------------ apply-match [110] 8.6% for-loop [140] 20.0% for-loop [98] 71.4% [118] 41374(13.4%) 8650(2.8%) match-e ...herbie/develop/src/core/ematch.rkt:39:0 for-loop [126] 64.0% constant? [192] 12.2% variable? [143] 2.2% ??? [96] 1.8% ------------------------------------------------------------------------------------------ apply-match [110] 100.0% [119] 35792(11.6%) 318(0.1%) for-loop ...bie/develop/src/core/simplify.rkt:77:2 merge-egraph-nodes! [125] 82.6% dedup-children! [153] 6.9% substitute-e [128] 6.8% mk-enode! [154] 2.8% ------------------------------------------------------------------------------------------ for-loop [109] 100.0% [120] 9310(3.0%) 1602(0.5%) loop ...erbie/develop/src/core/alt-table.rkt:176:2 map [191] 28.2% argmax [130] 14.2% loop [213] 13.7% loop [132] 6.3% loop [134] 3.7% loop [231] 3.7% paired-fold [133] 3.5% loop [169] 3.4% do-curry [228] 3.1% loop [135] 3.0% ------------------------------------------------------------------------------------------ for-loop [102] 31.8% ormap [113] 68.2% [121] 1870(0.6%) 1264(0.4%) flag-set? ...es/herbie/develop/src/config.rkt:28:0 return/no-unsupplied [287] 32.4% ------------------------------------------------------------------------------------------ for-loop [112] 100.0% [122] 1518(0.5%) 264(0.1%) setfindf ...es/herbie/develop/src/common.rkt:138:0 for-loop [131] 82.6% ------------------------------------------------------------------------------------------ eval-errors [115] 100.0% [123] 1230(0.4%) 0(0.0%) for-loop ...es/herbie/develop/src/points.rkt:200:2 ordinary-value? [252] 51.5% ??? [245] 48.5% ------------------------------------------------------------------------------------------ for-loop [215] 0.6% ??? [149] 0.6% ??? [285] 1.1% for-loop [109] 32.7% atab-add-altn [117] 64.9% [124] 114144(37.0%) 630(0.2%) errors ...lies/herbie/develop/src/points.rkt:223:0 for-loop [136] 58.3% eval-prog [137] 41.1% ------------------------------------------------------------------------------------------ for-loop [141] 8.7% merge-egraph-nodes! [125] 11.5% for-loop [119] 79.8% [125] 29580(9.6%) 0(0.0%) merge-egraph-nodes! ...p/src/core/egraph.rkt:143:0 update-leader! [139] 59.1% loop! [220] 14.5% merge-egraph-nodes! [125] 11.5% for-loop [141] 9.7% dedup-children! [153] 3.9% enode-merge! [147] 1.3% ------------------------------------------------------------------------------------------ match-e [118] 100.0% [126] 29242(9.5%) 12736(4.1%) for-loop ...rbie/develop/src/core/ematch.rkt:52:11 for-loop [140] 44.2% procedure-reduce-keyword-arity-mask [142] 13.1% do-curry [228] 4.4% foldr [146] 2.8% loop [213] 2.3% ------------------------------------------------------------------------------------------ for-loop [109] 7.4% atab-add-altn [117] 92.6% [127] 4296(1.4%) 4296(1.4%) for-loop ...e/develop/src/core/alt-table.rkt:119:2 ------------------------------------------------------------------------------------------ for-loop [144] 17.9% for-loop [119] 82.1% [128] 2420(0.8%) 0(0.0%) substitute-e ...e/develop/src/core/ematch.rkt:64:0 for-loop [144] 91.0% variable? [143] 9.0% ------------------------------------------------------------------------------------------ atab-add-altn [117] 40.5% for-loop [109] 59.5% [129] 2200(0.7%) 0(0.0%) override-at-pnts ...p/src/core/alt-table.rkt:138:0 for-loop [145] 100.0% ------------------------------------------------------------------------------------------ loop [120] 100.0% [130] 1326(0.4%) 0(0.0%) argmax ...acket-7.2/collects/racket/list.rkt:766:0 expression-cost [138] 75.1% alt-cost [148] 24.9% ------------------------------------------------------------------------------------------ setfindf [122] 100.0% [131] 1254(0.4%) 1254(0.4%) for-loop ...es/herbie/develop/src/common.rkt:139:2 ------------------------------------------------------------------------------------------ for-loop [109] 24.6% atab-add-altn [117] 27.7% loop [120] 47.7% [132] 1220(0.4%) 1220(0.4%) loop ...-7.2/collects/racket/private/hash.rkt:20:4 ------------------------------------------------------------------------------------------ atab-add-altn [117] 48.8% loop [120] 51.2% [133] 644(0.2%) 644(0.2%) paired-fold ...llects/racket/private/hash.rkt:19:2 ------------------------------------------------------------------------------------------ loop [120] 100.0% [134] 340(0.1%) 340(0.1%) loop ...erbie/develop/src/core/alt-table.rkt:101:2 ------------------------------------------------------------------------------------------ loop [120] 6.7% loop [135] 93.3% [135] 278(0.1%) 278(0.1%) loop ...racket-7.2/collects/racket/list.rkt:434:28 loop [135] 93.3% ------------------------------------------------------------------------------------------ errors [124] 100.0% [136] 66562(21.6%) 2740(0.9%) for-loop ...es/herbie/develop/src/points.rkt:225:2 ??? [149] 94.9% ??? [158] 0.9% ------------------------------------------------------------------------------------------ eval-const-expr [282] 11.9% errors [124] 88.1% [137] 53290(17.3%) 0(0.0%) eval-prog .../herbie/develop/src/programs.rkt:83:0 temp85_0 [150] 88.1% loop [73] 4.2% hash-ref! [257] 2.7% inductor [155] 2.4% eval [157] 1.9% eval4 [162] 0.7% ------------------------------------------------------------------------------------------ argmax [130] 4.4% for-loop [61] 12.8% loop [86] 23.5% for-loop [72] 27.0% argmin [84] 32.4% [138] 22832(7.4%) 0(0.0%) expression-cost .../develop/src/programs.rkt:157:0 compile [151] 100.0% ------------------------------------------------------------------------------------------ for-loop [82] 2.7% merge-egraph-nodes! [125] 97.3% [139] 21986(7.1%) 0(0.0%) update-leader! ...evelop/src/core/egraph.rkt:211:0 for-loop [152] 95.6% custom-set-union! [159] 3.1% ------------------------------------------------------------------------------------------ for-loop [126] 100.0% [140] 17448(5.7%) 642(0.2%) for-loop ...rbie/develop/src/core/ematch.rkt:58:37 match-e [118] 89.1% ??? [156] 7.3% ------------------------------------------------------------------------------------------ merge-egraph-nodes! [125] 100.0% [141] 7446(2.4%) 0(0.0%) for-loop ...rbie/develop/src/core/egraph.rkt:197:4 merge-egraph-nodes! [125] 95.8% dedup-children! [153] 4.2% ------------------------------------------------------------------------------------------ for-loop [126] 100.0% [142] 4166(1.3%) 4166(1.3%) procedure-reduce-keyword-arity-mask ....rkt:1562:4 ------------------------------------------------------------------------------------------ substitute-e [128] 17.2% pattern-substitute [88] 22.5% match-e [118] 60.3% [143] 3784(1.2%) 0(0.0%) variable? ...e/develop/src/syntax/syntax.rkt:724:0 ??? [96] 55.5% value? [203] 44.5% ------------------------------------------------------------------------------------------ substitute-e [128] 100.0% [144] 2420(0.8%) 0(0.0%) for-loop ...rbie/develop/src/core/ematch.rkt:73:24 mk-enode! [154] 73.1% substitute-e [128] 26.9% ------------------------------------------------------------------------------------------ override-at-pnts [129] 100.0% [145] 2200(0.7%) 1876(0.6%) for-loop .../develop/src/core/alt-table.rkt:139:22 ??? [158] 14.7% ------------------------------------------------------------------------------------------ for-loop [126] 100.0% [146] 966(0.3%) 322(0.1%) foldr ....2/collects/racket/private/list.rkt:242:4 cp-2 [160] 66.7% ------------------------------------------------------------------------------------------ merge-egraph-nodes! [125] 100.0% [147] 640(0.2%) 0(0.0%) enode-merge! ...e/develop/src/core/enode.rkt:127:0 adopt-enode! [161] 100.0% ------------------------------------------------------------------------------------------ argmax [130] 100.0% [148] 330(0.1%) 0(0.0%) alt-cost ...erbie/develop/src/alternative.rkt:23:0 ??? [256] 100.0% ------------------------------------------------------------------------------------------ for-loop [112] 0.1% for-loop [136] 6.8% run [15] 46.6% [149] 308648(100.0%) 3120(1.0%) ??? ...lects/racket/private/more-scheme.rkt:261:28 profile-thunk16 [1] 46.6% run-improve43 [2] 42.5% ??? [245] 3.8% prepare-points [164] 2.1% oracle-error [166] 1.3% ordinary-value? [252] 1.0% ulp-difference [227] 0.8% ??? [253] 0.7% get-final-combination [168] 0.3% eval-errors [115] 0.2% errors-score [239] 0.1% *bit-width* [170] 0.1% errors [124] 0.1% eval-const-expr [282] 0.1% baseline-error [176] 0.0% ------------------------------------------------------------------------------------------ eval-prog [137] 100.0% [150] 46950(15.2%) 0(0.0%) temp85_0 (unknown source) compile15 [163] 100.0% ------------------------------------------------------------------------------------------ expression-cost [138] 100.0% [151] 22832(7.4%) 352(0.1%) compile ...s/herbie/develop/src/programs.rkt:134:0 hash-ref! [257] 98.5% ------------------------------------------------------------------------------------------ update-leader! [139] 100.0% [152] 21008(6.8%) 320(0.1%) for-loop ...rbie/develop/src/core/egraph.rkt:216:6 for-loop [165] 56.6% hash-update! [180] 41.9% ------------------------------------------------------------------------------------------ for-loop [141] 7.1% merge-egraph-nodes! [125] 36.2% for-loop [119] 56.7% [153] 4366(1.4%) 0(0.0%) dedup-children! ...evelop/src/core/enode.rkt:198:0 loop [167] 79.2% loop [169] 20.8% ------------------------------------------------------------------------------------------ for-loop [119] 36.1% for-loop [144] 63.9% [154] 2770(0.9%) 2212(0.7%) mk-enode! ...rbie/develop/src/core/egraph.rkt:97:0 new-enode [172] 20.1% ------------------------------------------------------------------------------------------ eval-prog [137] 31.7% inductor [155] 68.3% [155] 1272(0.4%) 0(0.0%) inductor ...s/herbie/develop/src/programs.rkt:88:4 inductor [155] 68.3% table-ref [190] 21.5% ??? [253] 6.0% ??? [96] 4.2% ------------------------------------------------------------------------------------------ for-loop [140] 100.0% [156] 1266(0.4%) 994(0.3%) ??? ...ies/herbie/develop/src/core/ematch.rkt:43:5 for-loop [177] 21.5% ------------------------------------------------------------------------------------------ eval-prog [137] 100.0% [157] 1004(0.3%) 0(0.0%) eval (unknown source) add-ns-scopes [173] 35.7% datum->syntax6 [174] 32.5% namespace-syntax-introduce3 [175] 31.9% ------------------------------------------------------------------------------------------ for-loop [145] 34.2% for-loop [136] 65.8% [158] 948(0.3%) 948(0.3%) ??? ...7.2/collects/racket/private/for.rkt:1233:14 ------------------------------------------------------------------------------------------ update-leader! [139] 100.0% [159] 682(0.2%) 0(0.0%) custom-set-union! ...t/private/set-types.rkt:245:0 for-loop [171] 100.0% ------------------------------------------------------------------------------------------ foldr [146] 100.0% [160] 644(0.2%) 644(0.2%) cp-2 .../racket-7.2/collects/racket/list.rkt:826:2 ------------------------------------------------------------------------------------------ enode-merge! [147] 100.0% [161] 640(0.2%) 314(0.1%) adopt-enode! ...e/develop/src/core/enode.rkt:103:0 custom-set-union [230] 50.9% ------------------------------------------------------------------------------------------ eval-prog [137] 100.0% [162] 352(0.1%) 0(0.0%) eval4 (unknown source) syntax-e [3] 100.0% ------------------------------------------------------------------------------------------ temp85_0 [150] 100.0% [163] 46950(15.2%) 0(0.0%) compile15 (unknown source) temp91_0 [178] 99.3% loop [73] 0.7% ------------------------------------------------------------------------------------------ ??? [149] 100.0% [164] 13084(4.2%) 0(0.0%) prepare-points ...bie/develop/src/points.rkt:166:0 loop [181] 100.0% ------------------------------------------------------------------------------------------ for-loop [152] 100.0% [165] 11884(3.9%) 0(0.0%) for-loop ...rbie/develop/src/core/egraph.rkt:217:8 hash-update! [180] 100.0% ------------------------------------------------------------------------------------------ ??? [149] 100.0% [166] 7870(2.5%) 0(0.0%) oracle-error ...erbie/develop/src/points.rkt:207:0 for-loop [182] 100.0% ------------------------------------------------------------------------------------------ dedup-children! [153] 26.5% loop [167] 73.5% [167] 3460(1.1%) 3460(1.1%) loop ...racket-7.2/collects/racket/list.rkt:434:17 loop [167] 73.5% ------------------------------------------------------------------------------------------ ??? [149] 100.0% [168] 1894(0.6%) 0(0.0%) get-final-combination ...op/src/mainloop.rkt:360:0 infer-splitpoints [183] 100.0% ------------------------------------------------------------------------------------------ loop [120] 6.5% dedup-children! [153] 6.8% loop [169] 86.7% [169] 1224(0.4%) 318(0.1%) loop ...racket-7.2/collects/racket/list.rkt:417:34 loop [169] 86.7% loop [73] 6.8% ------------------------------------------------------------------------------------------ ??? [149] 100.0% [170] 894(0.3%) 620(0.2%) *bit-width* ...s/herbie/develop/src/float.rkt:62:0 return/no-unsupplied [287] 30.6% ------------------------------------------------------------------------------------------ custom-set-union! [159] 100.0% [171] 682(0.2%) 682(0.2%) for-loop ...cts/racket/private/set-types.rkt:253:4 ------------------------------------------------------------------------------------------ mk-enode! [154] 100.0% [172] 558(0.2%) 0(0.0%) new-enode ...erbie/develop/src/core/enode.rkt:95:0 type-of-enode-expr [184] 100.0% ------------------------------------------------------------------------------------------ eval [157] 100.0% [173] 358(0.1%) 0(0.0%) add-ns-scopes (unknown source) gf [179] 100.0% ------------------------------------------------------------------------------------------ eval [157] 100.0% [174] 326(0.1%) 0(0.0%) datum->syntax6 (unknown source) loop [73] 100.0% ------------------------------------------------------------------------------------------ eval [157] 100.0% [175] 320(0.1%) 0(0.0%) namespace-syntax-introduce3 (unknown source) free-identifier=? [185] 100.0% ------------------------------------------------------------------------------------------ ??? [149] 100.0% [176] 296(0.1%) 0(0.0%) baseline-error ...bie/develop/src/points.rkt:211:0 argmin [84] 100.0% ------------------------------------------------------------------------------------------ ??? [156] 100.0% [177] 272(0.1%) 0(0.0%) for-loop ...erbie/develop/src/core/ematch.rkt:44:7 constant? [192] 100.0% ------------------------------------------------------------------------------------------ compile15 [163] 100.0% [178] 46644(15.1%) 0(0.0%) temp91_0 (unknown source) temp118_0 [186] 92.4% compile-top9 [194] 6.9% loop [73] 0.7% ------------------------------------------------------------------------------------------ add-ns-scopes [173] 0.4% apply-post-expansion [32] 1.5% loop [73] 98.1% [179] 20868(6.8%) 1930(0.6%) gf (unknown source) propagation-apply [189] 49.3% propagation-merge [193] 16.3% propagation-apply-shifted [195] 10.8% cache-or-reuse-set [196] 7.2% loop [73] 4.9% syntax-e/no-taint [17] 0.8% ------------------------------------------------------------------------------------------ for-loop [152] 42.6% for-loop [165] 57.4% [180] 20688(6.7%) 0(0.0%) hash-update! ...cket/private/more-scheme.rkt:365:4 ??? [187] 100.0% ------------------------------------------------------------------------------------------ prepare-points [164] 100.0% [181] 13084(4.2%) 0(0.0%) loop ...htlies/herbie/develop/src/points.rkt:143:4 loop [188] 88.6% ??? [198] 8.2% andmap [199] 3.3% ------------------------------------------------------------------------------------------ oracle-error [166] 100.0% [182] 7870(2.5%) 330(0.1%) for-loop ...es/herbie/develop/src/points.rkt:208:2 loop [213] 75.4% map [191] 20.4% ------------------------------------------------------------------------------------------ get-final-combination [168] 100.0% [183] 1894(0.6%) 0(0.0%) infer-splitpoints ...lop/src/core/regimes.rkt:34:0 for-loop [197] 84.5% exprs-to-branch-on [200] 15.5% ------------------------------------------------------------------------------------------ new-enode [172] 100.0% [184] 558(0.2%) 0(0.0%) type-of-enode-expr ...elop/src/core/enode.rkt:67:0 table-ref [190] 55.6% constant? [192] 44.4% ------------------------------------------------------------------------------------------ namespace-syntax-introduce3 [175] 100.0% [185] 320(0.1%) 0(0.0%) free-identifier=? (unknown source) resolve+shift28 [100] 100.0% ------------------------------------------------------------------------------------------ temp91_0 [178] 100.0% [186] 43122(14.0%) 0(0.0%) temp118_0 (unknown source) expand-capturing-lifts [201] 100.0% ------------------------------------------------------------------------------------------ hash-update! [180] 100.0% [187] 20688(6.7%) 0(0.0%) ??? ...s/herbie/develop/src/core/egraph.rkt:219:24 for-loop [202] 98.3% update-en-expr [214] 1.7% ------------------------------------------------------------------------------------------ loop [181] 100.0% [188] 11586(3.8%) 0(0.0%) loop ...htlies/herbie/develop/src/points.rkt:102:2 ??? [245] 97.4% ??? [284] 2.6% ------------------------------------------------------------------------------------------ gf [179] 100.0% [189] 10286(3.3%) 10286(3.3%) propagation-apply (unknown source) ------------------------------------------------------------------------------------------ type-of-enode-expr [184] 3.3% inductor [155] 6.9% for-loop [101] 89.8% [190] 9406(3.0%) 3746(1.2%) table-ref ...es/herbie/develop/src/common.rkt:41:0 for-loop [204] 43.3% dict? [208] 10.0% assoc-iterate-first [209] 6.9% ------------------------------------------------------------------------------------------ gather-multiplicative-terms [217] 2.3% atab-add-altn [117] 4.1% loop [213] 4.3% parse-loop80 [271] 13.4% f46 [64] 19.6% for-loop [182] 21.4% loop [120] 35.1% [191] 7498(2.4%) 322(0.1%) map ...t-7.2/collects/racket/private/map.rkt:35:13 loop [213] 46.0% hash-ref! [257] 11.1% simplify* [207] 10.5% ??? [221] 8.2% f46 [64] 7.9% loop [231] 4.1% loop [210] 2.3% ??? [222] 2.3% gather-multiplicative-terms [217] 2.3% simplify-node [211] 1.1% ------------------------------------------------------------------------------------------ type-of-enode-expr [184] 3.9% for-loop [177] 4.3% match-e [118] 91.7% [192] 6292(2.0%) 0(0.0%) constant? ...e/develop/src/syntax/syntax.rkt:721:0 value? [203] 100.0% ------------------------------------------------------------------------------------------ gf [179] 100.0% [193] 3396(1.1%) 3396(1.1%) propagation-merge (unknown source) ------------------------------------------------------------------------------------------ temp91_0 [178] 100.0% [194] 3212(1.0%) 0(0.0%) compile-top9 (unknown source) compile-forms33 [205] 100.0% ------------------------------------------------------------------------------------------ gf [179] 100.0% [195] 2244(0.7%) 2244(0.7%) propagation-apply-shifted (unknown source) ------------------------------------------------------------------------------------------ gf [179] 100.0% [196] 1668(0.5%) 1668(0.5%) cache-or-reuse-set (unknown source) ------------------------------------------------------------------------------------------ infer-splitpoints [183] 100.0% [197] 1600(0.5%) 0(0.0%) for-loop ...rbie/develop/src/core/regimes.rkt:46:6 option-on-expr [206] 100.0% ------------------------------------------------------------------------------------------ loop [181] 100.0% [198] 1068(0.3%) 320(0.1%) ??? ...ghtlies/herbie/develop/src/points.rkt:127:2 ??? [253] 70.0% ------------------------------------------------------------------------------------------ loop [181] 100.0% [199] 430(0.1%) 0(0.0%) andmap ...2/collects/racket/private/map.rkt:102:13 ordinary-value? [252] 100.0% ------------------------------------------------------------------------------------------ infer-splitpoints [183] 100.0% [200] 294(0.1%) 0(0.0%) exprs-to-branch-on ...op/src/core/regimes.rkt:58:0 loop [213] 100.0% ------------------------------------------------------------------------------------------ loop [73] 5.6% temp118_0 [186] 94.4% [201] 45684(14.8%) 626(0.2%) expand-capturing-lifts (unknown source) lambda-clause-expander [212] 93.7% dispatch-transformer41 [5] 4.2% expand-id-application-form17 [234] 0.7% ------------------------------------------------------------------------------------------ ??? [187] 100.0% [202] 20332(6.6%) 19740(6.4%) for-loop ...bie/develop/src/core/egraph.rkt:220:26 update-en-expr [214] 2.9% ------------------------------------------------------------------------------------------ variable? [143] 21.1% constant? [192] 78.9% [203] 7976(2.6%) 7976(2.6%) value? ...herbie/develop/src/syntax/types.rkt:18:0 ------------------------------------------------------------------------------------------ table-ref [190] 100.0% [204] 4070(1.3%) 4070(1.3%) for-loop ...ies/herbie/develop/src/common.rkt:43:4 ------------------------------------------------------------------------------------------ compile-top9 [194] 100.0% [205] 3212(1.0%) 672(0.2%) compile-forms33 (unknown source) for-loop [226] 68.7% loop! [218] 10.4% ------------------------------------------------------------------------------------------ for-loop [197] 100.0% [206] 1600(0.5%) 0(0.0%) option-on-expr ...velop/src/core/regimes.rkt:123:0 for-loop [215] 40.6% sort-context-on-expr [216] 39.2% loop [213] 20.1% ------------------------------------------------------------------------------------------ simplify [49] 25.2% map [191] 74.8% [207] 1312(0.4%) 646(0.2%) simplify* ...rbie/develop/src/core/reduce.rkt:31:0 hash-ref! [257] 25.6% return/no-unsupplied [287] 25.2% ------------------------------------------------------------------------------------------ table-ref [190] 100.0% [208] 942(0.3%) 942(0.3%) dict? ...ollects/racket/private/generic.rkt:146:11 ------------------------------------------------------------------------------------------ table-ref [190] 100.0% [209] 648(0.2%) 648(0.2%) assoc-iterate-first ...cket/private/dict.rkt:166:0 ------------------------------------------------------------------------------------------ map [191] 2.3% loop [210] 97.7% [210] 344(0.1%) 0(0.0%) loop ...-7.2/collects/racket/private/map.rkt:54:19 loop [210] 97.7% ??? [13] 2.3% ------------------------------------------------------------------------------------------ map [191] 100.0% [211] 338(0.1%) 0(0.0%) simplify-node .../develop/src/core/reduce.rkt:48:0 gather-multiplicative-terms [217] 100.0% ------------------------------------------------------------------------------------------ expand-capturing-lifts [201] 100.0% [212] 42800(13.9%) 338(0.1%) lambda-clause-expander (unknown source) finish-bodys [219] 89.6% loop [73] 8.8% for-loop [226] 0.8% ------------------------------------------------------------------------------------------ ??? [46] 0.1% loop [120] 0.9% exprs-to-branch-on [200] 1.5% option-on-expr [206] 1.6% for-loop [126] 1.8% taylor [29] 3.1% map [191] 4.2% mk-enode-rec! [223] 5.1% loop! [220] 5.3% ??? [269] 5.9% for-loop [182] 13.7% loop [213] 56.5% [213] 19548(6.3%) 2564(0.8%) loop ...-7.2/collects/racket/private/map.rkt:40:19 loop [213] 56.5% ??? [221] 13.6% hash-ref! [257] 5.9% loop! [220] 5.3% mk-enode-rec! [223] 4.2% simplify [49] 3.1% ??? [245] 2.6% map [191] 1.6% all-critical-subexpressions [225] 1.5% ??? [253] 0.9% ??? [222] 0.8% foldl [30] 0.1% ------------------------------------------------------------------------------------------ ??? [187] 37.6% for-loop [202] 62.4% [214] 948(0.3%) 948(0.3%) update-en-expr ...evelop/src/core/egraph.rkt:205:0 ------------------------------------------------------------------------------------------ option-on-expr [206] 100.0% [215] 650(0.2%) 0(0.0%) for-loop ...bie/develop/src/core/regimes.rkt:131:4 errors [124] 100.0% ------------------------------------------------------------------------------------------ option-on-expr [206] 100.0% [216] 628(0.2%) 0(0.0%) sort-context-on-expr ...src/core/regimes.rkt:118:0 ??? [224] 100.0% ------------------------------------------------------------------------------------------ simplify-node [211] 33.3% map [191] 66.7% [217] 338(0.1%) 0(0.0%) gather-multiplicative-terms ...re/reduce.rkt:112:0 map [191] 66.7% do-curry [228] 33.3% ------------------------------------------------------------------------------------------ compile-forms33 [205] 100.0% [218] 334(0.1%) 0(0.0%) loop! (unknown source) for-loop [226] 100.0% ------------------------------------------------------------------------------------------ lambda-clause-expander [212] 12.8% for-loop [226] 87.2% [219] 38358(12.4%) 0(0.0%) finish-bodys (unknown source) for-loop [226] 100.0% ------------------------------------------------------------------------------------------ loop [213] 29.6% merge-egraph-nodes! [125] 70.4% [220] 5666(1.8%) 1256(0.4%) loop! ...s/herbie/develop/src/core/enode.rkt:190:2 custom-set-union [230] 43.9% loop [213] 29.6% set [229] 13.6% ------------------------------------------------------------------------------------------ map [191] 11.0% loop [213] 89.0% [221] 5618(1.8%) 0(0.0%) ??? ...htlies/herbie/develop/src/points.rkt:209:26 ??? [245] 34.5% ordinary-value? [252] 27.3% ulp-difference [227] 21.8% ??? [253] 16.4% ------------------------------------------------------------------------------------------ map [191] 6.5% loop [213] 93.5% [222] 2630(0.9%) 2014(0.7%) ??? ...erbie/develop/src/core/alt-table.rkt:193:30 loop [231] 23.4% ------------------------------------------------------------------------------------------ for-loop [65] 33.6% loop [213] 66.4% [223] 1000(0.3%) 300(0.1%) mk-enode-rec! ...develop/src/core/egraph.rkt:117:0 loop [213] 83.6% do-curry [228] 8.9% ------------------------------------------------------------------------------------------ localize-error [54] 33.6% sort-context-on-expr [216] 66.4% [224] 946(0.3%) 0(0.0%) ??? ...-7.2/collects/racket/private/sort.rkt:369:3 generic-sort/key [232] 100.0% ------------------------------------------------------------------------------------------ loop [213] 100.0% [225] 294(0.1%) 0(0.0%) all-critical-subexpressions ...re/regimes.rkt:75:0 for-loop [233] 100.0% ------------------------------------------------------------------------------------------ compile-let13 [249] 0.4% loop! [218] 0.4% lambda-clause-expander [212] 0.8% fallback-loop [111] 0.9% compile-forms33 [205] 5.3% for-loop [226] 6.7% finish-bodys [219] 85.4% [226] 41242(13.4%) 11264(3.6%) for-loop (unknown source) finish-bodys [219] 75.2% for-loop [226] 6.7% compile-module-linklet57 [236] 5.3% loop [73] 2.7% syntax-e [3] 2.3% add-local-binding!39 [238] 1.1% dispatch-transformer41 [5] 1.0% expand-implicit [9] 1.0% expand-identifier [11] 0.5% compile5 [241] 0.4% expand-id-application-form17 [234] 0.2% ------------------------------------------------------------------------------------------ ??? [13] 3.7% ??? [221] 13.0% ??? [149] 83.3% [227] 9396(3.0%) 2358(0.8%) ulp-difference ...erbie/develop/src/float.rkt:46:0 infer-representation [235] 71.6% ??? [253] 3.3% ------------------------------------------------------------------------------------------ loop [120] 7.3% gather-multiplicative-terms [217] 8.7% mk-enode-rec! [223] 9.1% for-loop [102] 25.3% for-loop [126] 49.5% [228] 3892(1.3%) 3892(1.3%) do-curry ...-7.2/collects/racket/function.rkt:71:2 ------------------------------------------------------------------------------------------ apply-match [110] 33.7% loop! [220] 66.3% [229] 2898(0.9%) 2574(0.8%) set ...collects/racket/private/set-types.rkt:981:0 for-loop [242] 11.2% ------------------------------------------------------------------------------------------ adopt-enode! [161] 11.6% loop! [220] 88.4% [230] 2816(0.9%) 1208(0.4%) custom-set-union ...et/private/set-types.rkt:168:0 for-loop [237] 46.6% for-loop [243] 10.5% ------------------------------------------------------------------------------------------ map [191] 0.2% ??? [222] 16.3% loop [120] 27.0% loop [231] 56.5% [231] 1260(0.4%) 1260(0.4%) loop ...7.2/collects/racket/private/list.rkt:82:16 loop [231] 56.5% ------------------------------------------------------------------------------------------ ??? [224] 100.0% [232] 946(0.3%) 0(0.0%) generic-sort/key .../racket/private/sort.rkt:156:2 copying-mergesort [240] 35.7% errors-score [239] 33.6% loop [244] 30.7% ------------------------------------------------------------------------------------------ all-critical-subexpressions [225] 100.0% [233] 294(0.1%) 294(0.1%) for-loop ...rbie/develop/src/core/regimes.rkt:82:2 ------------------------------------------------------------------------------------------ expand-capturing-lifts [201] 4.2% for-loop [226] 17.6% loop [73] 78.2% [234] 7608(2.5%) 344(0.1%) expand-id-application-form17 (unknown source) syntax-e/no-taint [17] 57.6% resolve+shift28 [100] 21.2% binding-lookup52 [246] 16.7% ------------------------------------------------------------------------------------------ ulp-difference [227] 100.0% [235] 6728(2.2%) 5152(1.7%) infer-representation ...develop/src/float.rkt:15:0 return/no-unsupplied [287] 23.4% ------------------------------------------------------------------------------------------ for-loop [226] 100.0% [236] 2206(0.7%) 2206(0.7%) compile-module-linklet57 (unknown source) ------------------------------------------------------------------------------------------ custom-set-union [230] 100.0% [237] 1312(0.4%) 330(0.1%) for-loop ...cts/racket/private/set-types.rkt:174:3 for-loop [247] 74.8% ------------------------------------------------------------------------------------------ for-loop [226] 100.0% [238] 978(0.3%) 646(0.2%) add-local-binding!39 (unknown source) binding-table-add [250] 33.9% ------------------------------------------------------------------------------------------ generic-sort/key [232] 33.8% ??? [149] 66.2% [239] 940(0.3%) 0(0.0%) errors-score ...erbie/develop/src/points.rkt:215:0 loop [248] 100.0% ------------------------------------------------------------------------------------------ generic-sort/key [232] 25.0% copying-mergesort [240] 75.0% [240] 338(0.1%) 0(0.0%) copying-mergesort ...racket/private/sort.rkt:129:8 copying-mergesort [240] 75.0% jloop [14] 25.0% ------------------------------------------------------------------------------------------ for-loop [226] 100.0% [241] 334(0.1%) 0(0.0%) compile5 (unknown source) compile-let13 [249] 100.0% ------------------------------------------------------------------------------------------ set [229] 100.0% [242] 324(0.1%) 324(0.1%) for-loop ...cts/racket/private/set-types.rkt:937:4 ------------------------------------------------------------------------------------------ custom-set-union [230] 100.0% [243] 296(0.1%) 296(0.1%) for-loop ...cts/racket/private/set-types.rkt:152:2 ------------------------------------------------------------------------------------------ generic-sort/key [232] 100.0% [244] 290(0.1%) 0(0.0%) loop ...7.2/collects/racket/private/sort.rkt:96:12 ??? [245] 100.0% ------------------------------------------------------------------------------------------ loop [244] 0.6% jloop [14] 0.7% for-loop [123] 1.2% loop [213] 3.1% ??? [221] 3.8% loop [188] 21.9% ??? [149] 68.9% [245] 51552(16.7%) 6360(2.1%) ??? ...htlies/herbie/develop/src/programs.rkt:99:2 ??? [251] 47.0% ??? [253] 40.1% ------------------------------------------------------------------------------------------ expand-id-application-form17 [234] 100.0% [246] 1270(0.4%) 1270(0.4%) binding-lookup52 (unknown source) ------------------------------------------------------------------------------------------ for-loop [237] 100.0% [247] 982(0.3%) 982(0.3%) for-loop ...cts/racket/private/set-types.rkt:178:5 ------------------------------------------------------------------------------------------ errors-score [239] 100.0% [248] 940(0.3%) 308(0.1%) loop .../racket-7.2/collects/racket/list.rkt:559:2 ordinary-value? [252] 67.2% ------------------------------------------------------------------------------------------ compile5 [241] 7.1% compile-let13 [249] 92.9% [249] 334(0.1%) 0(0.0%) compile-let13 (unknown source) compile-let13 [249] 92.9% for-loop [226] 7.1% ------------------------------------------------------------------------------------------ add-local-binding!39 [238] 100.0% [250] 332(0.1%) 332(0.1%) binding-table-add (unknown source) ------------------------------------------------------------------------------------------ ??? [245] 100.0% [251] 24230(7.9%) 6012(1.9%) ??? ...t-7.2/collects/racket/private/kw.rkt:594:14 ??? [255] 40.7% ??? [253] 17.4% ??? [256] 17.1% ------------------------------------------------------------------------------------------ andmap [199] 3.3% loop [248] 4.9% for-loop [123] 4.9% ??? [221] 12.0% ??? [149] 74.8% [252] 12844(4.2%) 1280(0.4%) ordinary-value? ...rbie/develop/src/float.rkt:80:0 special-value? [254] 90.0% ------------------------------------------------------------------------------------------ for-loop [63] 0.7% inductor [155] 0.7% ulp-difference [227] 0.7% fallback-update [56] 1.3% loop [213] 1.5% ??? [198] 1.7% ??? [221] 2.0% ??? [114] 2.5% loop [20] 2.8% location-do [260] 7.7% for-loop [75] 7.7% ??? [251] 9.3% ??? [149] 13.8% ??? [245] 45.5% [253] 45098(14.6%) 3952(1.3%) ??? ...tract/private/arrow-higher-order.rkt:360:33 ->flonum [258] 49.6% ival-mult [261] 9.3% location-do [260] 8.3% approximate9 [6] 7.7% mk-ival [262] 6.5% hash-ref! [257] 4.5% best-alt [265] 2.5% sample-multi-bounded [266] 1.7% successfully-got-the-right-kind-of-function [267] 0.7% ------------------------------------------------------------------------------------------ ordinary-value? [252] 100.0% [254] 11564(3.7%) 860(0.3%) special-value? ...erbie/develop/src/float.rkt:76:0 for-loop [259] 92.6% ------------------------------------------------------------------------------------------ ??? [251] 100.0% [255] 9862(3.2%) 6364(2.1%) ??? ...herbie/develop/src/syntax/syntax.rkt:209:17 return/no-unsupplied [287] 35.5% ------------------------------------------------------------------------------------------ alt-cost [148] 6.5% for-loop [61] 11.4% ??? [251] 82.1% [256] 5060(1.6%) 636(0.2%) ??? ...tract/private/arrow-higher-order.rkt:364:33 ival-div [263] 41.5% ival-sub [264] 28.3% ??? [286] 11.4% ival-pi [268] 6.2% ------------------------------------------------------------------------------------------ for-loop [26] 0.3% ??? [24] 0.7% localize-error [54] 0.9% simplify* [207] 1.0% eval-prog [137] 1.5% loop [20] 1.7% ??? [274] 2.1% map [191] 2.2% first-nonzero-exp [55] 2.5% loop [213] 3.0% ??? [7] 3.7% for-loop [21] 4.5% ??? [253] 6.4% compile [151] 33.6% ??? [269] 35.3% [257] 32610(10.6%) 22210(7.2%) hash-ref! .../racket/private/more-scheme.rkt:376:2 ??? [269] 40.9% simplify [49] 7.8% ??? [7] 5.4% ??? [8] 4.5% parse-loop80 [271] 2.7% ??? [274] 2.1% ??? [12] 0.3% ------------------------------------------------------------------------------------------ ??? [253] 100.0% [258] 22526(7.3%) 4832(1.6%) ->flonum ...ies/herbie/develop/src/float.rkt:149:0 ??? [270] 78.5% ------------------------------------------------------------------------------------------ special-value? [254] 100.0% [259] 10704(3.5%) 8856(2.9%) for-loop ...lies/herbie/develop/src/float.rkt:17:3 return/no-unsupplied [287] 17.3% ------------------------------------------------------------------------------------------ location-do [260] 37.0% ??? [253] 63.0% [260] 9222(3.0%) 0(0.0%) location-do ...erbie/develop/src/programs.rkt:64:0 ??? [253] 62.0% location-do [260] 37.0% ??? [280] 1.0% ------------------------------------------------------------------------------------------ ??? [253] 100.0% [261] 4204(1.4%) 1380(0.4%) ival-mult ...bie/develop/src/biginterval.rkt:112:0 bfsub [272] 67.2% ------------------------------------------------------------------------------------------ ??? [253] 100.0% [262] 2930(0.9%) 0(0.0%) mk-ival ...herbie/develop/src/biginterval.rkt:57:0 bf [273] 100.0% ------------------------------------------------------------------------------------------ ??? [256] 100.0% [263] 2098(0.7%) 944(0.3%) ival-div ...rbie/develop/src/biginterval.rkt:148:0 bfsub [272] 55.0% ------------------------------------------------------------------------------------------ ??? [256] 100.0% [264] 1434(0.5%) 0(0.0%) ival-sub ...rbie/develop/src/biginterval.rkt:100:0 bfsub [272] 100.0% ------------------------------------------------------------------------------------------ ??? [253] 100.0% [265] 1284(0.4%) 0(0.0%) best-alt .../herbie/develop/src/mainloop.rkt:106:0 loop [275] 75.2% argmins [277] 24.8% ------------------------------------------------------------------------------------------ ??? [253] 100.0% [266] 748(0.2%) 314(0.1%) sample-multi-bounded ...evelop/src/points.rkt:15:0 for-loop [276] 58.0% ------------------------------------------------------------------------------------------ ??? [253] 48.7% core651 [51] 51.3% [267] 616(0.2%) 316(0.1%) successfully-got-the-right-kind-of-function ...1:4 arity-checking-wrapper [279] 48.7% ------------------------------------------------------------------------------------------ ??? [256] 100.0% [268] 314(0.1%) 0(0.0%) ival-pi ...herbie/develop/src/biginterval.rkt:75:0 pi.bf [278] 100.0% ------------------------------------------------------------------------------------------ hash-ref! [257] 100.0% [269] 18530(6.0%) 2062(0.7%) ??? ...tlies/herbie/develop/src/programs.rkt:142:5 hash-ref! [257] 88.7% loop [213] 6.7% ------------------------------------------------------------------------------------------ ->flonum [258] 100.0% [270] 17694(5.7%) 0(0.0%) ??? ...nightlies/herbie/develop/src/float.rkt:23:2 for-loop [281] 100.0% ------------------------------------------------------------------------------------------ parse-loop80 [271] 2.8% hash-ref! [257] 15.8% simplify [49] 81.4% [271] 6348(2.1%) 0(0.0%) parse-loop80 ...s/racket/match/compiler.rkt:418:15 eval-const-expr [282] 81.4% map [191] 15.8% parse-loop80 [271] 2.8% ------------------------------------------------------------------------------------------ ival-div [263] 21.3% ival-sub [264] 26.5% ival-mult [261] 52.2% [272] 5412(1.8%) 0(0.0%) bfsub ...-lib/math/private/bigfloat/mpfr.rkt:821:4 ??? [284] 54.1% new-mpfr [283] 45.9% ------------------------------------------------------------------------------------------ mk-ival [262] 100.0% [273] 2930(0.9%) 0(0.0%) bf ...ath-lib/math/private/bigfloat/mpfr.rkt:601:2 new-mpfr [283] 100.0% ------------------------------------------------------------------------------------------ hash-ref! [257] 100.0% [274] 2616(0.8%) 0(0.0%) ??? ...s/herbie/develop/src/core/taylor.rkt:344:33 hash-ref! [257] 100.0% ------------------------------------------------------------------------------------------ best-alt [265] 100.0% [275] 966(0.3%) 0(0.0%) loop ...ghtlies/herbie/develop/src/common.rkt:93:2 ??? [285] 100.0% ------------------------------------------------------------------------------------------ sample-multi-bounded [266] 100.0% [276] 434(0.1%) 434(0.1%) for-loop ...ies/herbie/develop/src/points.rkt:23:4 ------------------------------------------------------------------------------------------ best-alt [265] 100.0% [277] 318(0.1%) 0(0.0%) argmins ...lies/herbie/develop/src/common.rkt:92:0 ??? [285] 100.0% ------------------------------------------------------------------------------------------ ival-pi [268] 100.0% [278] 314(0.1%) 0(0.0%) pi.bf ...-lib/math/private/bigfloat/mpfr.rkt:998:4 ??? [284] 100.0% ------------------------------------------------------------------------------------------ successfully-got-the-right-kind-of-function [267]100.0% [279] 300(0.1%) 300(0.1%) arity-checking-wrapper ...w-higher-order.rkt:428:0 ------------------------------------------------------------------------------------------ location-do [260] 100.0% [280] 276(0.1%) 0(0.0%) ??? ...tract/private/arrow-higher-order.rkt:348:46 ??? [286] 100.0% ------------------------------------------------------------------------------------------ ??? [270] 100.0% [281] 17694(5.7%) 14064(4.6%) for-loop ...lies/herbie/develop/src/float.rkt:24:5 return/no-unsupplied [287] 20.5% ------------------------------------------------------------------------------------------ f46 [64] 5.6% ??? [149] 10.0% parse-loop80 [271] 84.3% [282] 6338(2.1%) 0(0.0%) eval-const-expr .../develop/src/programs.rkt:102:0 eval-prog [137] 100.0% ------------------------------------------------------------------------------------------ bfsub [272] 45.9% bf [273] 54.1% [283] 5414(1.8%) 5414(1.8%) new-mpfr ...b/math/private/bigfloat/mpfr.rkt:335:0 ------------------------------------------------------------------------------------------ loop [188] 8.5% pi.bf [278] 8.9% bfsub [272] 82.7% [284] 3542(1.1%) 3542(1.1%) ??? /opt/racket-7.2/collects/ffi/unsafe.rkt:905:4 ------------------------------------------------------------------------------------------ argmins [277] 24.8% loop [275] 75.2% [285] 1284(0.4%) 0(0.0%) ??? ...lies/herbie/develop/src/mainloop.rkt:108:19 errors [124] 100.0% ------------------------------------------------------------------------------------------ ??? [280] 22.8% loop [105] 29.3% ??? [256] 47.8% [286] 1208(0.4%) 0(0.0%) ??? ...ects/racket/contract/private/prop.rkt:541:4 ??? [288] 70.7% ??? [289] 29.3% ------------------------------------------------------------------------------------------ *bit-width* [170] 2.3% simplify* [207] 2.7% debug5 [68] 2.8% flag-set? [121] 5.0% infer-representation [235] 13.0% for-loop [259] 15.3% ??? [255] 28.9% for-loop [281] 30.0% [287] 12096(3.9%) 8716(2.8%) return/no-unsupplied ...ct/private/arr-i.rkt:542:0 filter [290] 27.9% ------------------------------------------------------------------------------------------ ??? [286] 100.0% [288] 854(0.3%) 0(0.0%) ??? ...lects/racket/contract/private/orc.rkt:83:14 ??? [291] 100.0% ------------------------------------------------------------------------------------------ ??? [286] 100.0% [289] 354(0.1%) 354(0.1%) ??? ...ects/racket/contract/private/list.rkt:681:0 ------------------------------------------------------------------------------------------ return/no-unsupplied [287] 100.0% [290] 3380(1.1%) 3380(1.1%) filter ...2/collects/racket/private/list.rkt:256:2 ------------------------------------------------------------------------------------------ ??? [288] 100.0% [291] 854(0.3%) 854(0.3%) ??? ...ects/racket/contract/private/list.rkt:163:5 ------------------------------------------------------------------------------------------