Profiling results ----------------- Total cpu time observed: 132102ms (out of 132760ms) Number of samples taken: 397 (once every 333ms) (Hiding functions with self<1.0% and local<2.0%: 4 of 207 hidden) ========================================================================================= Caller Idx Total Self Name+src Local% ms(pct) ms(pct) Callee ========================================================================================= ??? [17] 100.0% [1] 132102(100.0%) 0(0.0%) profile-thunk16 ...e/pkgs/profile-lib/main.rkt:9:0 run [9] 100.0% ----------------------------------------------------------------------------------------- ??? [73] 100.0% [2] 3222(2.4%) 0(0.0%) approximate9 ...plify-bug/src/core/taylor.rkt:12:0 loop [11] 70.4% for-loop [16] 19.5% simplify [30] 10.1% ----------------------------------------------------------------------------------------- matcher [91] 100.0% [3] 2328(1.8%) 0(0.0%) ??? ...ie/simplify-bug/src/core/matcher.rkt:130:11 for-loop [10] 100.0% ----------------------------------------------------------------------------------------- hash-ref! [86] 100.0% [4] 1602(1.2%) 0(0.0%) ??? ...rbie/simplify-bug/src/core/taylor.rkt:68:15 ??? [73] 100.0% ----------------------------------------------------------------------------------------- hash-ref! [86] 100.0% [5] 1280(1.0%) 0(0.0%) ??? ...bie/simplify-bug/src/core/taylor.rkt:291:26 for-loop [12] 100.0% ----------------------------------------------------------------------------------------- loop [176] 100.0% [6] 1044(0.8%) 0(0.0%) expand-id-application-form17 (unknown source) syntax-e/no-taint [15] 68.6% resolve+shift28 [13] 31.4% ----------------------------------------------------------------------------------------- hash-ref! [86] 100.0% [7] 956(0.7%) 0(0.0%) ??? ...bie/simplify-bug/src/core/taylor.rkt:301:23 for-loop [14] 100.0% ----------------------------------------------------------------------------------------- for-loop [135] 100.0% [8] 602(0.5%) 0(0.0%) expand-identifier (unknown source) resolve+shift28 [13] 100.0% ----------------------------------------------------------------------------------------- profile-thunk16 [1] 100.0% [9] 132102(100.0%) 0(0.0%) run ...et-7.2/share/pkgs/profile-lib/main.rkt:39:2 ??? [17] 100.0% ----------------------------------------------------------------------------------------- ??? [3] 100.0% [10] 2328(1.8%) 0(0.0%) for-loop ...mplify-bug/src/core/matcher.rkt:132:15 matcher [91] 100.0% ----------------------------------------------------------------------------------------- approximate9 [2] 100.0% [11] 2268(1.7%) 0(0.0%) loop ...rbie/simplify-bug/src/core/taylor.rkt:87:4 hash-ref! [86] 70.6% ??? [73] 29.4% ----------------------------------------------------------------------------------------- ??? [5] 100.0% [12] 1280(1.0%) 0(0.0%) for-loop ...implify-bug/src/core/taylor.rkt:291:52 hash-ref! [86] 76.6% ??? [21] 23.4% ----------------------------------------------------------------------------------------- core-form-sym [193] 26.1% expand-id-application-form17 [6] 26.1% expand-identifier [8] 47.9% [13] 1258(1.0%) 328(0.2%) resolve+shift28 (unknown source) fallback-loop [18] 73.9% ----------------------------------------------------------------------------------------- ??? [7] 100.0% [14] 956(0.7%) 0(0.0%) for-loop ...implify-bug/src/core/taylor.rkt:304:27 hash-ref! [86] 100.0% ----------------------------------------------------------------------------------------- expand-id-application-form17 [6] 100.0% [15] 716(0.5%) 0(0.0%) syntax-e/no-taint (unknown source) loop [176] 100.0% ----------------------------------------------------------------------------------------- approximate9 [2] 100.0% [16] 628(0.5%) 0(0.0%) for-loop ...simplify-bug/src/core/taylor.rkt:30:18 taylor [19] 52.2% taylor-quotient [20] 47.8% ----------------------------------------------------------------------------------------- for-loop [106] 0.2% for-loop [196] 0.6% run [9] 49.6% [17] 132102(100.0%) 1244(0.9%) ??? ...lects/racket/private/more-scheme.rkt:261:28 profile-thunk16 [1] 49.6% run-improve47 [22] 43.3% prepare-points-intervals [23] 5.3% oracle-error [24] 0.5% ??? [58] 0.3% eval-const-expr [43] 0.2% errors [188] 0.2% baseline-error [25] 0.1% get-final-combination [27] 0.1% ----------------------------------------------------------------------------------------- resolve+shift28 [13] 100.0% [18] 930(0.7%) 0(0.0%) fallback-loop (unknown source) for-loop [135] 100.0% ----------------------------------------------------------------------------------------- for-loop [16] 100.0% [19] 328(0.2%) 0(0.0%) taylor ...e/simplify-bug/src/core/taylor.rkt:170:0 taylor-invert [26] 100.0% ----------------------------------------------------------------------------------------- for-loop [16] 100.0% [20] 300(0.2%) 300(0.2%) taylor-quotient ...y-bug/src/core/taylor.rkt:334:0 ----------------------------------------------------------------------------------------- for-loop [12] 100.0% [21] 300(0.2%) 0(0.0%) ??? ...bie/simplify-bug/src/core/taylor.rkt:294:19 hash-ref! [86] 100.0% ----------------------------------------------------------------------------------------- ??? [17] 100.0% [22] 115348(87.3%) 0(0.0%) run-improve47 ...mplify-bug/src/mainloop.rkt:345:0 for-loop [28] 76.5% simplify! [39] 23.5% ----------------------------------------------------------------------------------------- ??? [17] 100.0% [23] 14100(10.7%) 0(0.0%) prepare-points-intervals ...g/src/points.rkt:110:0 loop [29] 100.0% ----------------------------------------------------------------------------------------- ??? [17] 100.0% [24] 1376(1.0%) 0(0.0%) oracle-error .../simplify-bug/src/points.rkt:188:0 for-loop [31] 100.0% ----------------------------------------------------------------------------------------- ??? [17] 100.0% [25] 338(0.3%) 0(0.0%) baseline-error ...implify-bug/src/points.rkt:192:0 argmin [169] 100.0% ----------------------------------------------------------------------------------------- taylor [19] 100.0% [26] 328(0.2%) 0(0.0%) taylor-invert ...ify-bug/src/core/taylor.rkt:318:0 simplify [30] 100.0% ----------------------------------------------------------------------------------------- ??? [17] 100.0% [27] 302(0.2%) 0(0.0%) get-final-combination ...ug/src/mainloop.rkt:370:0 infer-splitpoints [32] 100.0% ----------------------------------------------------------------------------------------- run-improve47 [22] 100.0% [28] 88298(66.8%) 0(0.0%) for-loop ...ie/simplify-bug/src/mainloop.rkt:364:4 run-iter! [33] 100.0% ----------------------------------------------------------------------------------------- prepare-points-intervals [23] 100.0% [29] 14100(10.7%) 290(0.2%) loop ...s/herbie/simplify-bug/src/points.rkt:123:4 loop [34] 80.2% ??? [36] 17.8% ----------------------------------------------------------------------------------------- approximate9 [2] 11.2% taylor-invert [26] 11.2% hash-ref! [86] 77.6% [30] 2922(2.2%) 0(0.0%) simplify .../simplify-bug/src/core/reduce.rkt:16:0 f46 [37] 54.8% parse-loop30 [35] 45.2% ----------------------------------------------------------------------------------------- oracle-error [24] 100.0% [31] 1376(1.0%) 0(0.0%) for-loop ...rbie/simplify-bug/src/points.rkt:189:2 map [40] 74.1% loop [147] 25.9% ----------------------------------------------------------------------------------------- get-final-combination [27] 100.0% [32] 302(0.2%) 0(0.0%) infer-splitpoints ...bug/src/core/regimes.rkt:34:0 for-loop [38] 100.0% ----------------------------------------------------------------------------------------- for-loop [28] 100.0% [33] 88298(66.8%) 0(0.0%) run-iter! ...e/simplify-bug/src/mainloop.rkt:326:0 simplify! [39] 87.9% finalize-iter! [41] 3.9% gen-series! [42] 3.6% gen-rewrites! [44] 2.6% localize! [45] 1.6% choose-best-alt! [46] 0.3% ----------------------------------------------------------------------------------------- loop [29] 100.0% [34] 11302(8.6%) 604(0.5%) loop ...es/herbie/simplify-bug/src/points.rkt:81:2 ??? [58] 94.7% ----------------------------------------------------------------------------------------- map [40] 9.7% simplify [30] 43.1% hash-ref! [86] 47.2% [35] 3064(2.3%) 0(0.0%) parse-loop30 ...s/racket/match/compiler.rkt:418:15 eval-const-expr [43] 52.8% map [40] 47.2% ----------------------------------------------------------------------------------------- loop [29] 100.0% [36] 2508(1.9%) 0(0.0%) ??? ...es/herbie/simplify-bug/src/points.rkt:106:2 ??? [73] 100.0% ----------------------------------------------------------------------------------------- map [40] 25.2% simplify [30] 74.8% [37] 1602(1.2%) 332(0.3%) f46 ...2/collects/racket/match/compiler.rkt:507:40 map [40] 79.3% ----------------------------------------------------------------------------------------- infer-splitpoints [32] 100.0% [38] 302(0.2%) 0(0.0%) for-loop ...simplify-bug/src/core/regimes.rkt:47:6 option-on-expr [47] 100.0% ----------------------------------------------------------------------------------------- run-improve47 [22] 25.9% run-iter! [33] 74.1% [39] 104620(79.2%) 0(0.0%) simplify! ...e/simplify-bug/src/mainloop.rkt:223:0 ??? [48] 100.0% ----------------------------------------------------------------------------------------- gather-multiplicative-terms [63] 4.4% for-loop [31] 27.3% f46 [37] 29.6% parse-loop30 [35] 38.7% [40] 3736(2.8%) 646(0.5%) map ...t-7.2/collects/racket/private/map.rkt:35:13 hash-ref! [86] 38.7% ??? [53] 27.3% f46 [37] 10.8% parse-loop30 [35] 8.0% simplify-node [54] 4.4% gather-multiplicative-terms [63] 4.4% ----------------------------------------------------------------------------------------- run-iter! [33] 100.0% [41] 3428(2.6%) 0(0.0%) finalize-iter! ...plify-bug/src/mainloop.rkt:277:0 ??? [133] 100.0% ----------------------------------------------------------------------------------------- run-iter! [33] 100.0% [42] 3222(2.4%) 0(0.0%) gen-series! ...simplify-bug/src/mainloop.rkt:159:0 for-loop [49] 100.0% ----------------------------------------------------------------------------------------- ??? [17] 38.0% parse-loop30 [35] 62.0% [43] 2608(2.0%) 0(0.0%) eval-const-expr ...lify-bug/src/programs.rkt:118:0 temp85_0 [50] 76.8% eval-one-top12 [55] 11.7% loop [176] 11.5% ----------------------------------------------------------------------------------------- run-iter! [33] 100.0% [44] 2328(1.8%) 0(0.0%) gen-rewrites! ...mplify-bug/src/mainloop.rkt:182:0 for-loop [51] 100.0% ----------------------------------------------------------------------------------------- run-iter! [33] 100.0% [45] 1446(1.1%) 0(0.0%) localize! ...e/simplify-bug/src/mainloop.rkt:126:0 localize-error [52] 100.0% ----------------------------------------------------------------------------------------- run-iter! [33] 100.0% [46] 304(0.2%) 0(0.0%) choose-best-alt! ...ify-bug/src/mainloop.rkt:116:0 ??? [133] 100.0% ----------------------------------------------------------------------------------------- for-loop [38] 100.0% [47] 302(0.2%) 0(0.0%) option-on-expr ...y-bug/src/core/regimes.rkt:126:0 for-loop [56] 100.0% ----------------------------------------------------------------------------------------- simplify! [39] 100.0% [48] 104620(79.2%) 0(0.0%) ??? ...bie/simplify-bug/src/core/simplify.rkt:26:0 for-loop [57] 94.3% one-iter [64] 3.4% debug-print [62] 1.7% loop [69] 0.6% ----------------------------------------------------------------------------------------- gen-series! [42] 100.0% [49] 3222(2.4%) 0(0.0%) for-loop ...ie/simplify-bug/src/mainloop.rkt:166:7 taylor-alt [59] 100.0% ----------------------------------------------------------------------------------------- eval-prog [197] 31.1% eval-const-expr [43] 68.9% [50] 2908(2.2%) 0(0.0%) temp85_0 (unknown source) compile15 [60] 100.0% ----------------------------------------------------------------------------------------- gen-rewrites! [44] 100.0% [51] 2328(1.8%) 0(0.0%) for-loop ...e/simplify-bug/src/mainloop.rkt:190:11 rewrite-expression-head20 [61] 100.0% ----------------------------------------------------------------------------------------- localize! [45] 100.0% [52] 1446(1.1%) 0(0.0%) localize-error ...y-bug/src/core/localize.rkt:66:0 hash-ref! [86] 100.0% ----------------------------------------------------------------------------------------- map [40] 100.0% [53] 1020(0.8%) 330(0.2%) ??? ...s/herbie/simplify-bug/src/points.rkt:190:26 ??? [58] 67.6% ----------------------------------------------------------------------------------------- map [40] 100.0% [54] 326(0.2%) 0(0.0%) simplify-node ...lify-bug/src/core/reduce.rkt:48:0 gather-multiplicative-terms [63] 100.0% ----------------------------------------------------------------------------------------- eval-const-expr [43] 100.0% [55] 304(0.2%) 0(0.0%) eval-one-top12 (unknown source) for-loop [135] 100.0% ----------------------------------------------------------------------------------------- option-on-expr [47] 100.0% [56] 302(0.2%) 0(0.0%) for-loop ...implify-bug/src/core/regimes.rkt:136:4 errors [188] 100.0% ----------------------------------------------------------------------------------------- ??? [48] 100.0% [57] 98632(74.7%) 0(0.0%) for-loop ...implify-bug/src/core/simplify.rkt:35:2 one-iter [64] 98.7% loop [69] 1.3% ----------------------------------------------------------------------------------------- ??? [53] 5.5% ??? [17] 10.0% loop [34] 84.5% [58] 12660(9.6%) 332(0.3%) ??? .../herbie/simplify-bug/src/programs.rkt:115:2 ??? [65] 78.8% ??? [73] 18.5% ----------------------------------------------------------------------------------------- for-loop [49] 100.0% [59] 3222(2.4%) 0(0.0%) taylor-alt .../simplify-bug/src/mainloop.rkt:145:0 for-loop [66] 100.0% ----------------------------------------------------------------------------------------- temp85_0 [50] 100.0% [60] 2908(2.2%) 0(0.0%) compile15 (unknown source) temp91_0 [67] 100.0% ----------------------------------------------------------------------------------------- for-loop [51] 100.0% [61] 2328(1.8%) 0(0.0%) rewrite-expression-head20 ...core/matcher.rkt:87:0 rewriter [68] 100.0% ----------------------------------------------------------------------------------------- ??? [48] 100.0% [62] 1770(1.3%) 0(0.0%) debug-print ...ie/simplify-bug/src/debug.rkt:110:0 ??? [70] 100.0% ----------------------------------------------------------------------------------------- map [40] 50.0% simplify-node [54] 50.0% [63] 326(0.2%) 0(0.0%) gather-multiplicative-terms ...re/reduce.rkt:112:0 map [40] 50.0% do-curry [137] 50.0% ----------------------------------------------------------------------------------------- ??? [48] 3.6% for-loop [57] 96.4% [64] 100920(76.4%) 0(0.0%) one-iter ...implify-bug/src/core/simplify.rkt:72:0 for-loop [71] 57.1% find-matches [72] 40.2% for-loop [79] 1.6% for-loop [81] 1.0% ----------------------------------------------------------------------------------------- ??? [58] 100.0% [65] 9980(7.6%) 330(0.2%) ??? ...t-7.2/collects/racket/private/kw.rkt:594:14 ??? [73] 51.2% ??? [74] 32.2% ??? [80] 13.2% ----------------------------------------------------------------------------------------- taylor-alt [59] 100.0% [66] 3222(2.4%) 0(0.0%) for-loop ...ie/simplify-bug/src/mainloop.rkt:151:6 ??? [73] 100.0% ----------------------------------------------------------------------------------------- compile15 [60] 100.0% [67] 2908(2.2%) 0(0.0%) temp91_0 (unknown source) temp118_0 [76] 78.5% loop [176] 21.5% ----------------------------------------------------------------------------------------- rewrite-expression-head20 [61] 28.6% matcher [91] 71.4% [68] 2328(1.8%) 0(0.0%) rewriter ...simplify-bug/src/core/matcher.rkt:90:2 for-loop [75] 78.6% *rules* [78] 21.4% ----------------------------------------------------------------------------------------- ??? [48] 32.5% for-loop [57] 67.5% [69] 1930(1.5%) 0(0.0%) loop .../simplify-bug/src/core/extraction.rkt:25:2 for-loop [77] 100.0% ----------------------------------------------------------------------------------------- debug-print [62] 100.0% [70] 1770(1.3%) 1458(1.1%) ??? .../contract/private/arrow-val-first.rkt:430:3 ~r78 [82] 17.6% ----------------------------------------------------------------------------------------- one-iter [64] 100.0% [71] 57616(43.6%) 0(0.0%) for-loop ...implify-bug/src/core/simplify.rkt:74:2 for-loop [83] 100.0% ----------------------------------------------------------------------------------------- one-iter [64] 100.0% [72] 40616(30.7%) 0(0.0%) find-matches ...ify-bug/src/core/simplify.rkt:62:0 for-loop [84] 100.0% ----------------------------------------------------------------------------------------- for-loop [115] 1.1% loop [11] 1.7% ??? [4] 4.0% location-do [87] 9.3% for-loop [66] 9.3% ??? [58] 17.8% ??? [36] 17.9% ??? [65] 38.7% [73] 13188(10.0%) 598(0.5%) ??? ...tract/private/arrow-higher-order.rkt:360:33 ival-mult [85] 38.7% sample-multi-bounded [90] 17.9% mk-ival [92] 15.5% location-do [87] 9.3% approximate9 [2] 9.3% hash-ref! [86] 5.7% ----------------------------------------------------------------------------------------- ??? [65] 100.0% [74] 3218(2.4%) 288(0.2%) ??? ...tract/private/arrow-higher-order.rkt:364:33 ival-sub [89] 81.7% ival-add [98] 9.3% ----------------------------------------------------------------------------------------- rewriter [68] 100.0% [75] 2328(1.8%) 0(0.0%) for-loop ...simplify-bug/src/core/matcher.rkt:92:4 matcher [91] 96.4% for-loop [97] 3.6% ----------------------------------------------------------------------------------------- temp91_0 [67] 100.0% [76] 2282(1.7%) 0(0.0%) temp118_0 (unknown source) expand-capturing-lifts [88] 100.0% ----------------------------------------------------------------------------------------- loop [69] 100.0% [77] 1930(1.5%) 330(0.2%) for-loop ...plify-bug/src/core/extraction.rkt:29:4 for-loop [94] 82.9% ----------------------------------------------------------------------------------------- rewriter [68] 100.0% [78] 1660(1.3%) 332(0.3%) *rules* ...simplify-bug/src/syntax/rules.rkt:666:0 for-loop [95] 80.0% ----------------------------------------------------------------------------------------- one-iter [64] 100.0% [79] 1660(1.3%) 0(0.0%) for-loop ...implify-bug/src/core/simplify.rkt:81:2 set-precompute! [93] 100.0% ----------------------------------------------------------------------------------------- ??? [65] 100.0% [80] 1322(1.0%) 332(0.3%) ??? ...e/simplify-bug/src/syntax/syntax.rkt:214:17 return/no-unsupplied [122] 74.9% ----------------------------------------------------------------------------------------- one-iter [64] 100.0% [81] 1028(0.8%) 0(0.0%) for-loop ...implify-bug/src/core/simplify.rkt:84:2 update-leader! [132] 65.0% reduce-to-single! [96] 35.0% ----------------------------------------------------------------------------------------- ??? [70] 100.0% [82] 312(0.2%) 312(0.2%) ~r78 ...acket-7.2/collects/racket/format.rkt:189:0 ----------------------------------------------------------------------------------------- for-loop [71] 100.0% [83] 57616(43.6%) 348(0.3%) for-loop ...implify-bug/src/core/simplify.rkt:77:4 merge-egraph-nodes! [117] 60.9% dedup-children! [146] 28.0% mk-enode-rec! [101] 6.0% pattern-substitute [102] 4.4% ----------------------------------------------------------------------------------------- for-loop [84] 49.6% find-matches [72] 50.4% [84] 40616(30.7%) 626(0.5%) for-loop ...implify-bug/src/core/simplify.rkt:64:8 for-loop [84] 49.6% match-e [99] 49.2% ----------------------------------------------------------------------------------------- ??? [73] 100.0% [85] 5110(3.9%) 1600(1.2%) ival-mult ...implify-bug/src/biginterval.rkt:111:0 bfsub [100] 68.7% ----------------------------------------------------------------------------------------- ??? [21] 1.3% ??? [114] 2.2% ??? [111] 4.3% for-loop [12] 5.4% for-loop [14] 6.0% loop [11] 9.0% localize-error [52] 13.0% ??? [104] 16.4% ??? [73] 16.4% map [40] 26.0% [86] 3714(2.8%) 0(0.0%) hash-ref! .../racket/private/more-scheme.rkt:376:2 parse-loop30 [35] 26.0% ??? [104] 16.4% simplify [30] 16.4% ??? [108] 13.0% ??? [4] 9.0% ??? [5] 6.8% ??? [7] 6.0% ??? [111] 4.3% ??? [114] 2.2% ----------------------------------------------------------------------------------------- location-do [87] 16.4% ??? [73] 83.6% [87] 3222(2.4%) 0(0.0%) location-do .../simplify-bug/src/programs.rkt:64:0 ??? [73] 83.6% location-do [87] 16.4% ----------------------------------------------------------------------------------------- loop [176] 20.8% temp118_0 [76] 79.2% [88] 2880(2.2%) 0(0.0%) expand-capturing-lifts (unknown source) lambda-clause-expander [103] 79.2% dispatch-transformer41 [154] 10.4% loop [176] 10.3% ----------------------------------------------------------------------------------------- ??? [74] 100.0% [89] 2630(2.0%) 0(0.0%) ival-sub .../simplify-bug/src/biginterval.rkt:99:0 bfsub [100] 100.0% ----------------------------------------------------------------------------------------- ??? [73] 100.0% [90] 2508(1.9%) 630(0.5%) sample-multi-bounded ...fy-bug/src/points.rkt:15:0 random-ranges [107] 63.3% for-loop [115] 11.6% ----------------------------------------------------------------------------------------- for-loop [10] 50.0% for-loop [75] 50.0% [91] 2328(1.8%) 334(0.3%) matcher ...simplify-bug/src/core/matcher.rkt:118:2 ??? [3] 50.0% rewriter [68] 48.2% ----------------------------------------------------------------------------------------- ??? [73] 100.0% [92] 2040(1.5%) 0(0.0%) mk-ival ...e/simplify-bug/src/biginterval.rkt:57:0 bf [105] 100.0% ----------------------------------------------------------------------------------------- for-loop [79] 100.0% [93] 1660(1.3%) 0(0.0%) set-precompute! ...-bug/src/core/simplify.rkt:88:0 for-loop [106] 100.0% ----------------------------------------------------------------------------------------- for-loop [77] 100.0% [94] 1600(1.2%) 692(0.5%) for-loop ...lify-bug/src/core/extraction.rkt:37:16 for-loop [110] 56.8% ----------------------------------------------------------------------------------------- *rules* [78] 100.0% [95] 1328(1.0%) 334(0.3%) for-loop ...erbie/simplify-bug/src/common.rkt:74:9 ormap [109] 74.8% ----------------------------------------------------------------------------------------- for-loop [81] 100.0% [96] 360(0.3%) 0(0.0%) reduce-to-single! ...bug/src/core/egraph.rkt:320:0 for-loop [112] 100.0% ----------------------------------------------------------------------------------------- for-loop [75] 100.0% [97] 334(0.3%) 0(0.0%) for-loop ...simplify-bug/src/core/matcher.rkt:99:8 fix-up-variables [113] 100.0% ----------------------------------------------------------------------------------------- ??? [74] 100.0% [98] 300(0.2%) 0(0.0%) ival-add .../simplify-bug/src/biginterval.rkt:93:0 bfsub [100] 100.0% ----------------------------------------------------------------------------------------- for-loop [130] 29.8% for-loop [84] 70.2% [99] 39990(30.3%) 3758(2.8%) match-e ...e/simplify-bug/src/core/ematch.rkt:39:0 for-loop [116] 85.7% constant? [177] 4.4% ??? [133] 2.1% variable? [120] 2.0% ----------------------------------------------------------------------------------------- ival-add [98] 4.7% ival-sub [89] 40.8% ival-mult [85] 54.5% [100] 6440(4.9%) 0(0.0%) bfsub ...-lib/math/private/bigfloat/mpfr.rkt:821:4 new-mpfr [118] 55.4% ??? [119] 44.6% ----------------------------------------------------------------------------------------- loop [147] 14.5% for-loop [83] 85.5% [101] 3484(2.6%) 1322(1.0%) mk-enode-rec! ...ify-bug/src/core/egraph.rkt:117:0 for-loop [125] 27.5% loop [147] 23.0% new-enode [127] 17.1% do-curry [137] 8.9% ----------------------------------------------------------------------------------------- pattern-substitute [102] 33.6% for-loop [83] 66.4% [102] 2534(1.9%) 920(0.7%) pattern-substitute ...ug/src/core/matcher.rkt:46:0 pattern-substitute [102] 33.6% return/no-unsupplied [122] 24.6% ??? [152] 7.1% variable? [120] 6.3% ??? [133] 4.1% ----------------------------------------------------------------------------------------- expand-capturing-lifts [88] 100.0% [103] 2282(1.7%) 0(0.0%) lambda-clause-expander (unknown source) finish-bodys [121] 100.0% ----------------------------------------------------------------------------------------- hash-ref! [86] 100.0% [104] 2268(1.7%) 0(0.0%) ??? ...rbie/simplify-bug/src/core/taylor.rkt:45:15 hash-ref! [86] 100.0% ----------------------------------------------------------------------------------------- mk-ival [92] 100.0% [105] 2040(1.5%) 0(0.0%) bf ...ath-lib/math/private/bigfloat/mpfr.rkt:601:2 new-mpfr [118] 67.1% ??? [119] 32.9% ----------------------------------------------------------------------------------------- set-precompute! [93] 100.0% [106] 1660(1.3%) 0(0.0%) for-loop ...implify-bug/src/core/simplify.rkt:90:2 ??? [17] 59.6% merge-egraph-nodes! [117] 40.4% ----------------------------------------------------------------------------------------- sample-multi-bounded [90] 100.0% [107] 1588(1.2%) 646(0.5%) random-ranges ...simplify-bug/src/common.rkt:183:0 build--> [126] 40.4% dict? [129] 18.9% ----------------------------------------------------------------------------------------- hash-ref! [86] 100.0% [108] 1446(1.1%) 0(0.0%) ??? ...ie/simplify-bug/src/core/localize.rkt:23:13 repeat [123] 100.0% ----------------------------------------------------------------------------------------- for-loop [95] 100.0% [109] 994(0.8%) 0(0.0%) ormap ....2/collects/racket/private/map.rkt:141:13 flag-set? [124] 100.0% ----------------------------------------------------------------------------------------- for-loop [94] 100.0% [110] 908(0.7%) 908(0.7%) for-loop ...lify-bug/src/core/extraction.rkt:41:23 ----------------------------------------------------------------------------------------- hash-ref! [86] 100.0% [111] 630(0.5%) 0(0.0%) ??? ...bie/simplify-bug/src/core/taylor.rkt:328:33 hash-ref! [86] 100.0% ----------------------------------------------------------------------------------------- reduce-to-single! [96] 100.0% [112] 360(0.3%) 0(0.0%) for-loop ...simplify-bug/src/core/egraph.rkt:321:8 constant? [177] 100.0% ----------------------------------------------------------------------------------------- for-loop [97] 100.0% [113] 334(0.3%) 0(0.0%) fix-up-variables ...bug/src/core/matcher.rkt:111:2 pattern-match [128] 100.0% ----------------------------------------------------------------------------------------- hash-ref! [86] 100.0% [114] 322(0.2%) 0(0.0%) ??? ...bie/simplify-bug/src/core/taylor.rkt:344:33 hash-ref! [86] 100.0% ----------------------------------------------------------------------------------------- sample-multi-bounded [90] 100.0% [115] 290(0.2%) 0(0.0%) for-loop ...erbie/simplify-bug/src/points.rkt:23:4 ??? [73] 100.0% ----------------------------------------------------------------------------------------- match-e [99] 100.0% [116] 37808(28.6%) 14036(10.6%) for-loop ...simplify-bug/src/core/ematch.rkt:52:11 for-loop [130] 47.7% loop [147] 11.2% procedure-reduce-keyword-arity-mask [136] 4.6% cartesian-product [139] 2.9% step [167] 2.0% foldr [140] 1.7% do-curry [137] 1.3% foldl [168] 0.4% ----------------------------------------------------------------------------------------- for-loop [106] 1.9% for-loop [134] 3.0% merge-egraph-nodes! [117] 5.4% for-loop [83] 89.8% [117] 35776(27.1%) 300(0.2%) merge-egraph-nodes! ...g/src/core/egraph.rkt:145:0 loop! [131] 42.9% update-leader! [132] 39.4% for-loop [134] 6.5% merge-egraph-nodes! [117] 5.4% dedup-children! [146] 4.0% enode-merge! [142] 1.0% ----------------------------------------------------------------------------------------- bf [105] 27.7% bfsub [100] 72.3% [118] 4936(3.7%) 4936(3.7%) new-mpfr ...b/math/private/bigfloat/mpfr.rkt:335:0 ----------------------------------------------------------------------------------------- bf [105] 19.0% bfsub [100] 81.0% [119] 3544(2.7%) 3544(2.7%) ??? /opt/racket-7.2/collects/ffi/unsafe.rkt:905:4 ----------------------------------------------------------------------------------------- pattern-substitute [102] 12.4% match-e [99] 87.6% [120] 2582(2.0%) 0(0.0%) variable? ...plify-bug/src/syntax/syntax.rkt:729:0 ??? [133] 61.0% value? [187] 39.0% ----------------------------------------------------------------------------------------- lambda-clause-expander [103] 43.4% for-loop [135] 56.6% [121] 2282(1.7%) 0(0.0%) finish-bodys (unknown source) for-loop [135] 100.0% ----------------------------------------------------------------------------------------- pattern-substitute [102] 38.7% ??? [80] 61.3% [122] 1614(1.2%) 956(0.7%) return/no-unsupplied ...ct/private/arr-i.rkt:542:0 filter [141] 40.8% ----------------------------------------------------------------------------------------- ??? [108] 100.0% [123] 1446(1.1%) 0(0.0%) repeat ...e/simplify-bug/src/core/localize.rkt:9:0 for-loop [138] 100.0% ----------------------------------------------------------------------------------------- ormap [109] 100.0% [124] 994(0.8%) 994(0.8%) flag-set? ...rbie/simplify-bug/src/config.rkt:28:0 ----------------------------------------------------------------------------------------- mk-enode-rec! [101] 100.0% [125] 958(0.7%) 958(0.7%) for-loop ...implify-bug/src/core/egraph.rkt:109:10 ----------------------------------------------------------------------------------------- random-ranges [107] 100.0% [126] 642(0.5%) 642(0.5%) build--> ...act/private/arrow-val-first.rkt:1088:0 ----------------------------------------------------------------------------------------- mk-enode-rec! [101] 100.0% [127] 596(0.5%) 0(0.0%) new-enode ...simplify-bug/src/core/enode.rkt:101:0 check-valid-enode5 [144] 50.0% type-of-enode-expr [145] 50.0% ----------------------------------------------------------------------------------------- fix-up-variables [113] 100.0% [128] 334(0.3%) 0(0.0%) pattern-match ...ify-bug/src/core/matcher.rkt:30:0 for-loop [143] 100.0% ----------------------------------------------------------------------------------------- random-ranges [107] 100.0% [129] 300(0.2%) 300(0.2%) dict? ...ollects/racket/private/generic.rkt:146:11 ----------------------------------------------------------------------------------------- for-loop [116] 100.0% [130] 23864(18.1%) 934(0.7%) for-loop ...simplify-bug/src/core/ematch.rkt:58:37 match-e [99] 89.2% ??? [151] 6.8% ----------------------------------------------------------------------------------------- loop [147] 27.4% merge-egraph-nodes! [117] 72.6% [131] 16774(12.7%) 4764(3.6%) loop! ...bie/simplify-bug/src/core/enode.rkt:194:2 custom-set-union [162] 36.9% loop [147] 33.1% set [149] 13.4% ----------------------------------------------------------------------------------------- for-loop [81] 4.2% merge-egraph-nodes! [117] 95.8% [132] 15832(12.0%) 0(0.0%) update-leader! ...fy-bug/src/core/egraph.rkt:213:0 for-loop [148] 95.8% for-loop [153] 4.2% ----------------------------------------------------------------------------------------- choose-best-alt! [46] 3.8% pattern-substitute [102] 3.8% variable? [120] 19.4% match-e [99] 30.7% finalize-iter! [41] 42.3% [133] 8106(6.1%) 4048(3.1%) ??? ...contract/private/arrow-val-first.rkt:390:18 for-loop [150] 42.3% ??? [152] 4.0% ??? [159] 3.8% ----------------------------------------------------------------------------------------- merge-egraph-nodes! [117] 100.0% [134] 3488(2.6%) 0(0.0%) for-loop ...simplify-bug/src/core/egraph.rkt:199:4 merge-egraph-nodes! [117] 63.6% dedup-children! [146] 36.4% ----------------------------------------------------------------------------------------- fallback-loop [18] 8.3% for-loop [135] 11.4% eval-one-top12 [55] 11.8% finish-bodys [121] 68.5% [135] 2586(2.0%) 1234(0.9%) for-loop (unknown source) finish-bodys [121] 43.8% loop [176] 15.2% for-loop [135] 11.4% expand-implicit [156] 6.5% expand-identifier [8] 2.0% dispatch-transformer41 [154] 1.1% ----------------------------------------------------------------------------------------- for-loop [116] 100.0% [136] 2242(1.7%) 2242(1.7%) procedure-reduce-keyword-arity-mask ....rkt:1562:4 ----------------------------------------------------------------------------------------- mk-enode-rec! [101] 18.9% gather-multiplicative-terms [63] 19.9% for-loop [116] 61.3% [137] 1642(1.2%) 1642(1.2%) do-curry ...-7.2/collects/racket/function.rkt:71:2 ----------------------------------------------------------------------------------------- repeat [123] 100.0% [138] 1446(1.1%) 1446(1.1%) for-loop ...implify-bug/src/core/localize.rkt:10:2 ----------------------------------------------------------------------------------------- for-loop [116] 100.0% [139] 1250(0.9%) 1250(0.9%) cartesian-product ...ollects/racket/list.rkt:822:0 ----------------------------------------------------------------------------------------- for-loop [116] 100.0% [140] 660(0.5%) 336(0.3%) foldr ....2/collects/racket/private/list.rkt:242:4 cp-2 [158] 49.1% ----------------------------------------------------------------------------------------- return/no-unsupplied [122] 100.0% [141] 658(0.5%) 658(0.5%) filter ...2/collects/racket/private/list.rkt:256:2 ----------------------------------------------------------------------------------------- merge-egraph-nodes! [117] 100.0% [142] 368(0.3%) 0(0.0%) enode-merge! ...plify-bug/src/core/enode.rkt:131:0 adopt-enode! [155] 100.0% ----------------------------------------------------------------------------------------- pattern-match [128] 100.0% [143] 334(0.3%) 0(0.0%) for-loop ...simplify-bug/src/core/matcher.rkt:27:9 core651 [157] 100.0% ----------------------------------------------------------------------------------------- new-enode [127] 100.0% [144] 298(0.2%) 0(0.0%) check-valid-enode5 ...bug/src/core/enode.rkt:211:0 value? [187] 100.0% ----------------------------------------------------------------------------------------- new-enode [127] 100.0% [145] 298(0.2%) 0(0.0%) type-of-enode-expr ...-bug/src/core/enode.rkt:66:0 table-ref [160] 100.0% ----------------------------------------------------------------------------------------- for-loop [134] 6.6% merge-egraph-nodes! [117] 9.8% for-loop [83] 83.6% [146] 19314(14.6%) 0(0.0%) dedup-children! ...fy-bug/src/core/enode.rkt:202:0 loop [161] 73.6% loop [164] 26.4% ----------------------------------------------------------------------------------------- for-loop [116] 1.4% for-loop [31] 2.3% loop! [131] 7.0% mk-enode-rec! [101] 8.4% loop [147] 80.9% [147] 15600(11.8%) 2612(2.0%) loop ...-7.2/collects/racket/private/map.rkt:40:19 loop [147] 80.9% loop! [131] 6.7% mk-enode-rec! [101] 6.5% foldl [168] 0.3% step [167] 0.0% ----------------------------------------------------------------------------------------- update-leader! [132] 100.0% [148] 15164(11.5%) 0(0.0%) for-loop ...simplify-bug/src/core/egraph.rkt:218:6 hash-update! [175] 52.0% for-loop [163] 48.0% ----------------------------------------------------------------------------------------- loop! [131] 100.0% [149] 3952(3.0%) 3952(3.0%) set ...collects/racket/private/set-types.rkt:981:0 ----------------------------------------------------------------------------------------- ??? [133] 100.0% [150] 3428(2.6%) 0(0.0%) for-loop ...mplify-bug/src/core/alt-table.rkt:55:2 atab-add-altn [165] 55.1% loop [170] 18.3% errors [188] 17.9% for-loop [174] 8.8% ----------------------------------------------------------------------------------------- for-loop [130] 100.0% [151] 1634(1.2%) 0(0.0%) ??? ...erbie/simplify-bug/src/core/ematch.rkt:43:5 for-loop [166] 100.0% ----------------------------------------------------------------------------------------- ??? [133] 47.4% pattern-substitute [102] 52.6% [152] 688(0.5%) 688(0.5%) ??? ...ects/racket/contract/private/guts.rkt:772:8 ----------------------------------------------------------------------------------------- update-leader! [132] 100.0% [153] 668(0.5%) 668(0.5%) for-loop ...simplify-bug/src/core/egraph.rkt:228:6 ----------------------------------------------------------------------------------------- expand-capturing-lifts [88] 49.8% for-loop [135] 50.2% [154] 602(0.5%) 0(0.0%) dispatch-transformer41 (unknown source) apply-transformer52 [171] 100.0% ----------------------------------------------------------------------------------------- enode-merge! [142] 100.0% [155] 368(0.3%) 0(0.0%) adopt-enode! ...plify-bug/src/core/enode.rkt:109:0 custom-set-union [162] 100.0% ----------------------------------------------------------------------------------------- for-loop [135] 100.0% [156] 334(0.3%) 0(0.0%) expand-implicit (unknown source) binding-lookup52 [172] 100.0% ----------------------------------------------------------------------------------------- for-loop [143] 100.0% [157] 334(0.3%) 0(0.0%) core651 ...acket/contract/private/arr-i.rkt:929:19 un-dep/maybe-chaperone [173] 100.0% ----------------------------------------------------------------------------------------- foldr [140] 100.0% [158] 324(0.2%) 324(0.2%) cp-2 .../racket-7.2/collects/racket/list.rkt:826:2 ----------------------------------------------------------------------------------------- ??? [133] 100.0% [159] 304(0.2%) 0(0.0%) ??? ...ie/simplify-bug/src/core/alt-table.rkt:58:0 argmin [169] 100.0% ----------------------------------------------------------------------------------------- type-of-enode-expr [145] 100.0% [160] 298(0.2%) 298(0.2%) table-ref ...rbie/simplify-bug/src/common.rkt:45:0 ----------------------------------------------------------------------------------------- dedup-children! [146] 10.1% loop [161] 89.9% [161] 14218(10.8%) 14218(10.8%) loop ...racket-7.2/collects/racket/list.rkt:434:17 loop [161] 89.9% ----------------------------------------------------------------------------------------- adopt-enode! [155] 4.9% loop! [131] 95.1% [162] 7464(5.7%) 2942(2.2%) custom-set-union ...et/private/set-types.rkt:168:0 for-loop [178] 55.7% for-loop [181] 4.9% ----------------------------------------------------------------------------------------- for-loop [148] 100.0% [163] 7274(5.5%) 0(0.0%) for-loop ...simplify-bug/src/core/egraph.rkt:219:8 hash-update! [175] 100.0% ----------------------------------------------------------------------------------------- dedup-children! [146] 20.1% loop [164] 79.9% [164] 5096(3.9%) 600(0.5%) loop ...racket-7.2/collects/racket/list.rkt:417:34 loop [164] 79.9% loop [176] 9.5% member [179] 7.9% ----------------------------------------------------------------------------------------- for-loop [150] 100.0% [165] 1888(1.4%) 324(0.2%) atab-add-altn ...-bug/src/core/alt-table.rkt:203:0 errors [188] 82.8% ----------------------------------------------------------------------------------------- ??? [151] 100.0% [166] 1634(1.2%) 300(0.2%) for-loop .../simplify-bug/src/core/ematch.rkt:44:7 constant? [177] 81.6% ----------------------------------------------------------------------------------------- loop [147] 18.5% for-loop [116] 81.5% [167] 1626(1.2%) 1626(1.2%) step ...ket-7.2/collects/racket/function.rkt:145:9 ----------------------------------------------------------------------------------------- for-loop [116] 20.6% loop [147] 79.4% [168] 1618(1.2%) 662(0.5%) foldl ....2/collects/racket/private/list.rkt:229:4 merge2 [180] 59.1% ----------------------------------------------------------------------------------------- ??? [159] 47.4% baseline-error [25] 52.6% [169] 642(0.5%) 0(0.0%) argmin ...acket-7.2/collects/racket/list.rkt:765:0 ??? [182] 52.6% ??? [184] 47.4% ----------------------------------------------------------------------------------------- for-loop [150] 100.0% [170] 626(0.5%) 626(0.5%) loop .../simplify-bug/src/core/alt-table.rkt:177:2 ----------------------------------------------------------------------------------------- dispatch-transformer41 [154] 100.0% [171] 602(0.5%) 300(0.2%) apply-transformer52 (unknown source) apply-transformer-in-context [185] 50.2% ----------------------------------------------------------------------------------------- expand-implicit [156] 100.0% [172] 334(0.3%) 334(0.3%) binding-lookup52 (unknown source) ----------------------------------------------------------------------------------------- core651 [157] 100.0% [173] 334(0.3%) 0(0.0%) un-dep/maybe-chaperone ...private/arr-i.rkt:1108:2 ??? [183] 100.0% ----------------------------------------------------------------------------------------- for-loop [150] 100.0% [174] 302(0.2%) 302(0.2%) for-loop ...plify-bug/src/core/alt-table.rkt:119:2 ----------------------------------------------------------------------------------------- for-loop [163] 48.0% for-loop [148] 52.0% [175] 15164(11.5%) 0(0.0%) hash-update! ...cket/private/more-scheme.rkt:365:4 ??? [186] 100.0% ----------------------------------------------------------------------------------------- expand-capturing-lifts [88] 2.9% eval-const-expr [43] 5.8% syntax-e/no-taint [15] 6.9% temp91_0 [67] 9.2% for-loop [135] 13.2% loop [164] 62.1% [176] 5202(3.9%) 3530(2.7%) loop (unknown source) expand-id-application-form17 [6] 13.2% expand-capturing-lifts [88] 8.6% gf [190] 6.9% core-form-sym [193] 6.3% ----------------------------------------------------------------------------------------- for-loop [112] 7.9% for-loop [166] 29.3% match-e [99] 62.8% [177] 4558(3.5%) 0(0.0%) constant? ...plify-bug/src/syntax/syntax.rkt:726:0 value? [187] 100.0% ----------------------------------------------------------------------------------------- custom-set-union [162] 100.0% [178] 4154(3.1%) 1578(1.2%) for-loop ...cts/racket/private/set-types.rkt:174:3 for-loop [189] 62.0% ----------------------------------------------------------------------------------------- loop [164] 100.0% [179] 1264(1.0%) 1264(1.0%) member (unknown source) ----------------------------------------------------------------------------------------- foldl [168] 100.0% [180] 956(0.7%) 956(0.7%) merge2 ...ie/simplify-bug/src/core/ematch.rkt:24:0 ----------------------------------------------------------------------------------------- custom-set-union [162] 100.0% [181] 368(0.3%) 368(0.3%) for-loop ...cts/racket/private/set-types.rkt:152:2 ----------------------------------------------------------------------------------------- argmin [169] 100.0% [182] 338(0.3%) 0(0.0%) ??? ...s/herbie/simplify-bug/src/points.rkt:193:27 eval-errors [191] 100.0% ----------------------------------------------------------------------------------------- un-dep/maybe-chaperone [173] 100.0% [183] 334(0.3%) 0(0.0%) ??? ...cts/racket/contract/private/guts.rkt:837:10 ??? [192] 100.0% ----------------------------------------------------------------------------------------- argmin [169] 100.0% [184] 304(0.2%) 0(0.0%) ??? ...herbie/simplify-bug/src/mainloop.rkt:113:10 errors [188] 100.0% ----------------------------------------------------------------------------------------- apply-transformer52 [171] 100.0% [185] 302(0.2%) 0(0.0%) apply-transformer-in-context (unknown source) parse-app [194] 100.0% ----------------------------------------------------------------------------------------- hash-update! [175] 100.0% [186] 15164(11.5%) 0(0.0%) ??? ...bie/simplify-bug/src/core/egraph.rkt:221:24 for-loop [195] 100.0% ----------------------------------------------------------------------------------------- check-valid-enode5 [144] 5.1% variable? [120] 17.2% constant? [177] 77.8% [187] 5862(4.4%) 5862(4.4%) value? ...e/simplify-bug/src/syntax/types.rkt:18:0 ----------------------------------------------------------------------------------------- for-loop [56] 8.8% ??? [184] 8.9% for-loop [150] 17.9% ??? [17] 18.7% atab-add-altn [165] 45.7% [188] 3420(2.6%) 0(0.0%) errors ...herbie/simplify-bug/src/points.rkt:205:0 for-loop [196] 73.6% eval-prog [197] 26.4% ----------------------------------------------------------------------------------------- for-loop [178] 100.0% [189] 2576(2.0%) 2576(2.0%) for-loop ...cts/racket/private/set-types.rkt:178:5 ----------------------------------------------------------------------------------------- loop [176] 100.0% [190] 716(0.5%) 0(0.0%) gf (unknown source) propagation-apply-shifted [198] 50.0% propagation-apply [199] 50.0% ----------------------------------------------------------------------------------------- ??? [182] 100.0% [191] 338(0.3%) 0(0.0%) eval-errors ...e/simplify-bug/src/points.rkt:179:0 for-loop [200] 100.0% ----------------------------------------------------------------------------------------- ??? [183] 100.0% [192] 334(0.3%) 0(0.0%) ??? ...ntract/private/arrow-higher-order.rkt:560:2 get/build-collapsible-late-neg-projection [201]100.0% ----------------------------------------------------------------------------------------- loop [176] 100.0% [193] 328(0.2%) 0(0.0%) core-form-sym (unknown source) resolve+shift28 [13] 100.0% ----------------------------------------------------------------------------------------- apply-transformer-in-context [185] 100.0% [194] 302(0.2%) 302(0.2%) parse-app ...collects/racket/private/kw.rkt:1107:2 ----------------------------------------------------------------------------------------- ??? [186] 100.0% [195] 15164(11.5%) 14200(10.7%) for-loop ...implify-bug/src/core/egraph.rkt:222:26 update-en-expr [202] 6.4% ----------------------------------------------------------------------------------------- errors [188] 100.0% [196] 2516(1.9%) 0(0.0%) for-loop ...rbie/simplify-bug/src/points.rkt:207:2 ??? [17] 100.0% ----------------------------------------------------------------------------------------- errors [188] 100.0% [197] 904(0.7%) 0(0.0%) eval-prog ...ie/simplify-bug/src/programs.rkt:83:0 temp85_0 [50] 100.0% ----------------------------------------------------------------------------------------- gf [190] 100.0% [198] 358(0.3%) 358(0.3%) propagation-apply-shifted (unknown source) ----------------------------------------------------------------------------------------- gf [190] 100.0% [199] 358(0.3%) 358(0.3%) propagation-apply (unknown source) ----------------------------------------------------------------------------------------- eval-errors [191] 100.0% [200] 338(0.3%) 0(0.0%) for-loop ...rbie/simplify-bug/src/points.rkt:181:2 ??? [203] 100.0% ----------------------------------------------------------------------------------------- ??? [192] 100.0% [201] 334(0.3%) 334(0.3%) get/build-collapsible-late-neg-projection ...819:0 ----------------------------------------------------------------------------------------- for-loop [195] 100.0% [202] 964(0.7%) 964(0.7%) update-en-expr ...fy-bug/src/core/egraph.rkt:207:0 ----------------------------------------------------------------------------------------- for-loop [200] 100.0% [203] 338(0.3%) 338(0.3%) ??? ...7.2/collects/racket/private/for.rkt:1233:14 -----------------------------------------------------------------------------------------