Profiling results ----------------- Total cpu time observed: 313134ms (out of 313304ms) Number of samples taken: 1376 (once every 228ms) (Hiding functions with self<1.0% and local<2.0%: 12 of 296 hidden) ========================================================================================== Caller Idx Total Self Name+src Local% ms(pct) ms(pct) Callee ========================================================================================== ??? [60] 100.0% [1] 312932(99.9%) 0(0.0%) profile-thunk16 ...e/pkgs/profile-lib/main.rkt:9:0 run [17] 100.0% ------------------------------------------------------------------------------------------ ??? [60] 100.0% [2] 299494(95.6%) 0(0.0%) run-improve41 ...lt-testing/src/mainloop.rkt:225:0 for-loop [18] 93.2% get-final-combination [20] 5.7% setup-prog!32 [26] 0.5% setup-alt-simplified [27] 0.4% ??? [130] 0.1% ------------------------------------------------------------------------------------------ simplify-alt [36] 0.5% ??? [60] 99.5% [3] 258142(82.4%) 204(0.1%) unpack24 ...alt-testing/src/core/simplify.rkt:43:0 for-loop [19] 69.9% ??? [33] 29.9% *simplify-rules* [30] 0.1% ------------------------------------------------------------------------------------------ ??? [253] 100.0% [4] 7152(2.3%) 0(0.0%) approximate9 ...t-testing/src/core/taylor.rkt:12:0 loop [21] 100.0% ------------------------------------------------------------------------------------------ hash-ref! [259] 100.0% [5] 5038(1.6%) 0(0.0%) ??? ...rbie/alt-testing/src/core/taylor.rkt:295:23 for-loop [22] 100.0% ------------------------------------------------------------------------------------------ hash-ref! [259] 100.0% [6] 4148(1.3%) 0(0.0%) ??? ...rbie/alt-testing/src/core/taylor.rkt:392:23 for-loop [23] 100.0% ------------------------------------------------------------------------------------------ hash-ref! [259] 100.0% [7] 3046(1.0%) 0(0.0%) ??? ...erbie/alt-testing/src/core/taylor.rkt:67:15 ??? [253] 100.0% ------------------------------------------------------------------------------------------ stx-pair? [245] 8.3% loop [243] 25.0% for-loop [219] 66.8% [8] 2444(0.8%) 0(0.0%) syntax-e (unknown source) syntax-e/no-taint [24] 100.0% ------------------------------------------------------------------------------------------ hash-ref! [259] 100.0% [9] 2328(0.7%) 0(0.0%) ??? ...rbie/alt-testing/src/core/taylor.rkt:483:23 for-loop [25] 100.0% ------------------------------------------------------------------------------------------ expand-capturing-lifts [196] 14.4% for-loop [219] 85.6% [10] 1406(0.4%) 0(0.0%) expand-implicit (unknown source) resolve+shift28 [191] 100.0% ------------------------------------------------------------------------------------------ hash-ref! [259] 100.0% [11] 1256(0.4%) 0(0.0%) ??? ...rbie/alt-testing/src/core/taylor.rkt:322:33 simplify [35] 50.5% hash-ref! [259] 49.5% ------------------------------------------------------------------------------------------ expand-capturing-lifts [196] 20.2% for-loop [219] 79.8% [12] 1008(0.3%) 0(0.0%) expand-identifier (unknown source) resolve+shift28 [191] 100.0% ------------------------------------------------------------------------------------------ copying-mergesort [244] 100.0% [13] 804(0.3%) 0(0.0%) jloop ...5/collects/racket/private/sort.rkt:120:23 ??? [249] 74.9% ??? [253] 25.1% ------------------------------------------------------------------------------------------ hash-ref! [259] 100.0% [14] 634(0.2%) 0(0.0%) ??? ...rbie/alt-testing/src/core/taylor.rkt:285:26 for-loop [28] 100.0% ------------------------------------------------------------------------------------------ f67 [172] 100.0% [15] 404(0.1%) 0(0.0%) loop ...erbie/alt-testing/src/core/reduce.rkt:18:2 expression->type [29] 100.0% ------------------------------------------------------------------------------------------ f67 [172] 100.0% [16] 206(0.1%) 0(0.0%) exprs-to-branch-on ...ng/src/core/regimes.rkt:42:0 for-loop [31] 100.0% ------------------------------------------------------------------------------------------ profile-thunk16 [1] 100.0% [17] 312932(99.9%) 0(0.0%) run ...et-7.5/share/pkgs/profile-lib/main.rkt:39:2 ??? [60] 100.0% ------------------------------------------------------------------------------------------ run-improve41 [2] 100.0% [18] 279204(89.2%) 0(0.0%) for-loop ...ie/alt-testing/src/mainloop.rkt:240:10 run-iter! [32] 100.0% ------------------------------------------------------------------------------------------ unpack24 [3] 100.0% [19] 180472(57.6%) 0(0.0%) for-loop ...lt-testing/src/core/simplify.rkt:66:12 ??? [33] 100.0% ------------------------------------------------------------------------------------------ run-improve41 [2] 100.0% [20] 17104(5.5%) 0(0.0%) get-final-combination ...ng/src/mainloop.rkt:255:0 split-table [34] 98.8% extract-alt [40] 1.2% ------------------------------------------------------------------------------------------ approximate9 [4] 100.0% [21] 7152(2.3%) 0(0.0%) loop ...erbie/alt-testing/src/core/taylor.rkt:86:4 ??? [253] 57.4% hash-ref! [259] 42.6% ------------------------------------------------------------------------------------------ ??? [5] 100.0% [22] 5038(1.6%) 0(0.0%) for-loop ...alt-testing/src/core/taylor.rkt:298:27 hash-ref! [259] 96.0% simplify [35] 4.0% ------------------------------------------------------------------------------------------ ??? [6] 100.0% [23] 4148(1.3%) 0(0.0%) for-loop ...alt-testing/src/core/taylor.rkt:396:33 hash-ref! [259] 100.0% ------------------------------------------------------------------------------------------ syntax-e [8] 100.0% [24] 2444(0.8%) 0(0.0%) syntax-e/no-taint (unknown source) loop [243] 100.0% ------------------------------------------------------------------------------------------ ??? [9] 100.0% [25] 2328(0.7%) 0(0.0%) for-loop ...alt-testing/src/core/taylor.rkt:487:35 parse-loop80 [197] 100.0% ------------------------------------------------------------------------------------------ run-improve41 [2] 100.0% [26] 1562(0.5%) 0(0.0%) setup-prog!32 ...alt-testing/src/mainloop.rkt:72:0 loop [72] 81.3% prepare-points [74] 18.7% ------------------------------------------------------------------------------------------ run-improve41 [2] 100.0% [27] 1308(0.4%) 0(0.0%) setup-alt-simplified ...-testing/src/glue.rkt:49:0 simplify-alt [36] 100.0% ------------------------------------------------------------------------------------------ ??? [14] 100.0% [28] 634(0.2%) 0(0.0%) for-loop ...alt-testing/src/core/taylor.rkt:285:52 ??? [38] 53.0% hash-ref! [259] 47.0% ------------------------------------------------------------------------------------------ mterm->expr [211] 33.1% loop [15] 66.9% [29] 604(0.2%) 0(0.0%) expression->type ...esting/src/type-check.rkt:45:0 for-loop [37] 100.0% ------------------------------------------------------------------------------------------ unpack24 [3] 100.0% [30] 250(0.1%) 0(0.0%) *simplify-rules* ...ing/src/syntax/rules.rkt:570:0 for-loop [102] 100.0% ------------------------------------------------------------------------------------------ exprs-to-branch-on [16] 100.0% [31] 206(0.1%) 0(0.0%) for-loop ...alt-testing/src/core/regimes.rkt:44:27 all-critical-subexpressions [39] 100.0% ------------------------------------------------------------------------------------------ for-loop [18] 100.0% [32] 279204(89.2%) 0(0.0%) run-iter! ...ie/alt-testing/src/mainloop.rkt:206:0 simplify! [41] 92.0% finalize-iter! [44] 4.2% gen-series! [45] 2.7% choose-best-alt! [46] 0.8% gen-rewrites! [48] 0.3% localize-error [52] 0.1% ------------------------------------------------------------------------------------------ unpack24 [3] 30.0% for-loop [19] 70.0% [33] 257688(82.3%) 0(0.0%) ??? ...rbie/alt-testing/src/core/simplify.rkt:77:0 iterate-egraph!13 [42] 90.7% loop [43] 8.4% mk-egraph [47] 0.8% loop [49] 0.1% ------------------------------------------------------------------------------------------ get-final-combination [20] 100.0% [34] 16906(5.4%) 0(0.0%) split-table ...rbie/alt-testing/src/glue.rkt:162:0 f67 [172] 100.0% ------------------------------------------------------------------------------------------ ??? [253] 4.5% for-loop [22] 5.4% ??? [11] 8.5% hash-ref! [259] 81.7% [35] 7488(2.4%) 0(0.0%) simplify ...e/alt-testing/src/core/reduce.rkt:16:0 f67 [172] 94.6% parse-loop80 [197] 2.7% debug-print [51] 2.7% ------------------------------------------------------------------------------------------ setup-alt-simplified [27] 100.0% [36] 1308(0.4%) 0(0.0%) simplify-alt ...rbie/alt-testing/src/glue.rkt:76:0 unpack24 [3] 100.0% ------------------------------------------------------------------------------------------ expression->type [29] 100.0% [37] 604(0.2%) 0(0.0%) for-loop ...ie/alt-testing/src/type-check.rkt:52:5 f67 [172] 100.0% ------------------------------------------------------------------------------------------ for-loop [28] 100.0% [38] 336(0.1%) 0(0.0%) ??? ...rbie/alt-testing/src/core/taylor.rkt:288:19 hash-ref! [259] 100.0% ------------------------------------------------------------------------------------------ for-loop [31] 100.0% [39] 206(0.1%) 0(0.0%) all-critical-subexpressions ...re/regimes.rkt:58:0 for-loop [50] 100.0% ------------------------------------------------------------------------------------------ get-final-combination [20] 100.0% [40] 198(0.1%) 0(0.0%) extract-alt ...erbie/alt-testing/src/glue.rkt:55:0 loop [274] 100.0% ------------------------------------------------------------------------------------------ run-iter! [32] 100.0% [41] 256834(82.0%) 0(0.0%) simplify! ...ie/alt-testing/src/mainloop.rkt:146:0 for-loop [53] 100.0% ------------------------------------------------------------------------------------------ ??? [33] 100.0% [42] 233846(74.7%) 200(0.1%) iterate-egraph!13 ...g/src/core/simplify.rkt:105:0 one-iter [54] 98.8% map-enodes [57] 1.1% ------------------------------------------------------------------------------------------ ??? [33] 100.0% [43] 21592(6.9%) 0(0.0%) loop ...ie/alt-testing/src/core/simplify.rkt:237:2 for-loop [55] 100.0% ------------------------------------------------------------------------------------------ run-iter! [32] 100.0% [44] 11804(3.8%) 0(0.0%) finalize-iter! ...t-testing/src/mainloop.rkt:160:0 ??? [130] 100.0% ------------------------------------------------------------------------------------------ run-iter! [32] 100.0% [45] 7488(2.4%) 0(0.0%) gen-series! .../alt-testing/src/mainloop.rkt:120:0 for-loop [56] 100.0% ------------------------------------------------------------------------------------------ run-iter! [32] 100.0% [46] 2138(0.7%) 0(0.0%) choose-best-alt! ...testing/src/mainloop.rkt:106:0 ??? [130] 100.0% ------------------------------------------------------------------------------------------ ??? [33] 100.0% [47] 2042(0.7%) 0(0.0%) mk-egraph ...alt-testing/src/core/egraph.rkt:131:0 mk-enode-rec! [58] 80.1% mk-enode! [109] 19.9% ------------------------------------------------------------------------------------------ run-iter! [32] 100.0% [48] 740(0.2%) 0(0.0%) gen-rewrites! ...lt-testing/src/mainloop.rkt:133:0 for-loop [59] 100.0% ------------------------------------------------------------------------------------------ ??? [33] 100.0% [49] 208(0.1%) 0(0.0%) loop ...7.5/collects/racket/private/map.rkt:149:23 ormap [116] 100.0% ------------------------------------------------------------------------------------------ all-critical-subexpressions [39] 100.0% [50] 206(0.1%) 0(0.0%) for-loop .../alt-testing/src/core/regimes.rkt:62:2 f67 [172] 100.0% ------------------------------------------------------------------------------------------ simplify [35] 100.0% [51] 202(0.1%) 202(0.1%) debug-print ...bie/alt-testing/src/debug.rkt:107:0 ------------------------------------------------------------------------------------------ run-iter! [32] 100.0% [52] 200(0.1%) 0(0.0%) localize-error ...sting/src/core/localize.rkt:47:0 hash-ref! [259] 100.0% ------------------------------------------------------------------------------------------ simplify! [41] 100.0% [53] 256834(82.0%) 0(0.0%) for-loop ...bie/alt-testing/src/mainloop.rkt:150:6 ??? [60] 100.0% ------------------------------------------------------------------------------------------ iterate-egraph!13 [42] 100.0% [54] 231034(73.8%) 2484(0.8%) one-iter ...lt-testing/src/core/simplify.rkt:116:0 for-loop [61] 68.4% for-loop [62] 30.5% ------------------------------------------------------------------------------------------ loop [43] 100.0% [55] 21592(6.9%) 204(0.1%) for-loop ...t-testing/src/core/simplify.rkt:230:29 argmin [63] 75.7% loop [65] 20.2% for-loop [68] 3.1% ------------------------------------------------------------------------------------------ gen-series! [45] 100.0% [56] 7488(2.4%) 0(0.0%) for-loop ...bie/alt-testing/src/mainloop.rkt:126:7 taylor-alt [64] 100.0% ------------------------------------------------------------------------------------------ iterate-egraph!13 [42] 100.0% [57] 2612(0.8%) 0(0.0%) map-enodes ...lt-testing/src/core/egraph.rkt:140:0 loop [204] 73.3% set-precompute! [66] 26.7% ------------------------------------------------------------------------------------------ mk-egraph [47] 32.6% mk-enode-rec! [58] 67.4% [58] 1636(0.5%) 0(0.0%) mk-enode-rec! ...testing/src/core/egraph.rkt:122:0 mk-enode-rec! [58] 67.4% mk-enode! [109] 32.6% ------------------------------------------------------------------------------------------ gen-rewrites! [48] 100.0% [59] 740(0.2%) 0(0.0%) for-loop ...ie/alt-testing/src/mainloop.rkt:138:11 ??? [67] 100.0% ------------------------------------------------------------------------------------------ for-loop [53] 27.4% run [17] 36.3% [60] 312932(99.9%) 0(0.0%) ??? ...lects/racket/private/more-scheme.rkt:261:28 profile-thunk16 [1] 36.3% run-improve41 [2] 34.2% unpack24 [3] 27.4% loop [72] 1.4% prepare-points [74] 0.8% ------------------------------------------------------------------------------------------ one-iter [54] 100.0% [61] 158006(50.5%) 902(0.3%) for-loop ...lt-testing/src/core/simplify.rkt:166:2 for-loop [69] 84.7% match-e [70] 13.2% update-leader! [95] 1.1% reduce-to-single! [78] 0.4% ------------------------------------------------------------------------------------------ for-loop [62] 48.4% one-iter [54] 51.6% [62] 70544(22.5%) 9922(3.2%) for-loop ...t-testing/src/core/simplify.rkt:126:12 for-loop [62] 48.4% match-e [70] 42.8% ??? [114] 0.1% ------------------------------------------------------------------------------------------ for-loop [55] 100.0% [63] 16352(5.2%) 0(0.0%) argmin ...acket-7.5/collects/racket/list.rkt:765:0 for-loop [71] 94.8% expression-cost [76] 5.2% ------------------------------------------------------------------------------------------ for-loop [56] 100.0% [64] 7488(2.4%) 0(0.0%) taylor-alt ...erbie/alt-testing/src/glue.rkt:134:0 for-loop [73] 100.0% ------------------------------------------------------------------------------------------ for-loop [55] 100.0% [65] 4356(1.4%) 0(0.0%) loop .../racket-7.5/collects/racket/list.rkt:751:4 for-loop [71] 83.3% expression-cost [76] 16.7% ------------------------------------------------------------------------------------------ map-enodes [57] 26.7% loop [204] 73.3% [66] 2612(0.8%) 0(0.0%) set-precompute! ...ing/src/core/simplify.rkt:193:0 for-loop [75] 100.0% ------------------------------------------------------------------------------------------ for-loop [59] 100.0% [67] 740(0.2%) 0(0.0%) ??? ...herbie/alt-testing/src/alternative.rkt:88:0 rewriter [77] 100.0% ------------------------------------------------------------------------------------------ for-loop [55] 100.0% [68] 680(0.2%) 478(0.2%) for-loop ...t-testing/src/core/simplify.rkt:217:13 for-loop [79] 29.7% ------------------------------------------------------------------------------------------ for-loop [61] 100.0% [69] 133886(42.8%) 280(0.1%) for-loop ...t-testing/src/core/simplify.rkt:148:10 mk-enode! [109] 34.5% substitute-e [81] 34.0% merge-egraph-nodes! [82] 17.3% loop! [212] 12.7% list-member? [84] 1.3% ------------------------------------------------------------------------------------------ for-loop [61] 16.2% for-loop [94] 26.8% for-loop [62] 57.1% [70] 81330(26.0%) 12518(4.0%) match-e ...ie/alt-testing/src/core/ematch.rkt:46:0 for-loop [80] 77.9% ??? [130] 5.5% variable? [97] 3.0% make-sequence [135] 0.7% ------------------------------------------------------------------------------------------ loop [65] 19.0% argmin [63] 81.0% [71] 19128(6.1%) 2132(0.7%) for-loop ...bie/alt-testing/src/programs.rkt:210:2 table-ref [131] 62.2% ...sting/src/common.rkt:47:2 [132] 26.6% ------------------------------------------------------------------------------------------ setup-prog!32 [26] 12.8% ??? [60] 87.2% [72] 9944(3.2%) 0(0.0%) loop ...es/herbie/alt-testing/src/points.rkt:238:2 loop [83] 46.3% make-exacts* [96] 27.3% loop [100] 26.4% ------------------------------------------------------------------------------------------ taylor-alt [64] 100.0% [73] 7488(2.4%) 0(0.0%) for-loop .../herbie/alt-testing/src/glue.rkt:139:6 ??? [253] 100.0% ------------------------------------------------------------------------------------------ setup-prog!32 [26] 5.8% ??? [60] 94.2% [74] 5056(1.6%) 0(0.0%) prepare-points ...alt-testing/src/points.rkt:214:0 loop [83] 38.9% make-exacts* [96] 28.7% loop [100] 24.0% filter-exacts [90] 4.4% for-loop [91] 4.0% ------------------------------------------------------------------------------------------ set-precompute! [66] 100.0% [75] 2612(0.8%) 722(0.2%) for-loop ...lt-testing/src/core/simplify.rkt:195:2 setfindf [86] 30.9% eval-const-expr [89] 26.0% eval [174] 7.8% temp85_0 [173] 7.7% ------------------------------------------------------------------------------------------ loop [65] 46.1% argmin [63] 53.9% [76] 1580(0.5%) 254(0.1%) expression-cost ...-testing/src/programs.rkt:209:0 compile [85] 83.9% ------------------------------------------------------------------------------------------ ??? [67] 34.9% matcher [103] 65.1% [77] 740(0.2%) 0(0.0%) rewriter ...alt-testing/src/core/matcher.rkt:131:2 for-loop [88] 65.1% *rules* [87] 34.9% ------------------------------------------------------------------------------------------ for-loop [61] 100.0% [78] 618(0.2%) 0(0.0%) reduce-to-single! ...ing/src/core/egraph.rkt:325:0 make-sequence [135] 67.6% for-loop [92] 32.4% ------------------------------------------------------------------------------------------ for-loop [68] 100.0% [79] 202(0.1%) 202(0.1%) for-loop ...t-testing/src/core/simplify.rkt:220:37 ------------------------------------------------------------------------------------------ match-e [70] 100.0% [80] 70588(22.5%) 24856(7.9%) for-loop .../alt-testing/src/core/ematch.rkt:59:11 for-loop [94] 44.0% do-curry [111] 8.6% procedure-reduce-keyword-arity-mask [99] 7.3% list-cartesian-product [101] 5.7% loop [204] 3.5% filter [279] 0.6% foldl [216] 0.3% ------------------------------------------------------------------------------------------ for-loop [93] 5.5% for-loop [69] 94.5% [81] 45542(14.5%) 686(0.2%) substitute-e ...t-testing/src/core/ematch.rkt:71:0 for-loop [93] 95.1% ??? [130] 1.9% variable? [97] 1.7% ------------------------------------------------------------------------------------------ for-loop [98] 9.5% for-loop [69] 90.5% [82] 23172(7.4%) 636(0.2%) merge-egraph-nodes! ...g/src/core/egraph.rkt:153:0 update-leader! [95] 62.2% for-loop [98] 31.2% for-loop [102] 1.8% enode-merge! [106] 1.1% make-sequence [135] 0.9% ------------------------------------------------------------------------------------------ prepare-points [74] 29.9% loop [72] 70.1% [83] 6570(2.1%) 0(0.0%) loop ...es/herbie/alt-testing/src/points.rkt:158:2 make-exacts* [96] 59.1% loop [100] 40.9% ------------------------------------------------------------------------------------------ for-loop [69] 100.0% [84] 1684(0.5%) 0(0.0%) list-member? ...llects/racket/private/set.rkt:24:0 loop [243] 71.9% member [105] 28.1% ------------------------------------------------------------------------------------------ expression-cost [76] 100.0% [85] 1326(0.4%) 0(0.0%) compile ...rbie/alt-testing/src/programs.rkt:186:0 hash-ref! [259] 100.0% ------------------------------------------------------------------------------------------ for-loop [75] 100.0% [86] 806(0.3%) 0(0.0%) setfindf ...erbie/alt-testing/src/common.rkt:186:0 for-loop [104] 74.9% make-sequence [135] 25.1% ------------------------------------------------------------------------------------------ rewriter [77] 100.0% [87] 740(0.2%) 0(0.0%) *rules* .../alt-testing/src/syntax/rules.rkt:565:0 for-loop [102] 100.0% ------------------------------------------------------------------------------------------ rewriter [77] 100.0% [88] 740(0.2%) 0(0.0%) for-loop ...lt-testing/src/core/matcher.rkt:134:10 matcher [103] 100.0% ------------------------------------------------------------------------------------------ for-loop [75] 100.0% [89] 678(0.2%) 256(0.1%) eval-const-expr ...-testing/src/programs.rkt:168:0 f67 [172] 62.2% ------------------------------------------------------------------------------------------ prepare-points [74] 100.0% [90] 222(0.1%) 0(0.0%) filter-exacts .../alt-testing/src/points.rkt:178:0 for-loop [107] 100.0% ------------------------------------------------------------------------------------------ prepare-points [74] 100.0% [91] 202(0.1%) 0(0.0%) for-loop ...rbie/alt-testing/src/points.rkt:255:26 ??? [108] 100.0% ------------------------------------------------------------------------------------------ reduce-to-single! [78] 100.0% [92] 200(0.1%) 200(0.1%) for-loop .../alt-testing/src/core/egraph.rkt:326:8 ------------------------------------------------------------------------------------------ substitute-e [81] 100.0% [93] 45060(14.4%) 454(0.1%) for-loop .../alt-testing/src/core/ematch.rkt:80:24 mk-enode! [109] 89.8% substitute-e [81] 9.5% ------------------------------------------------------------------------------------------ for-loop [80] 100.0% [94] 42528(13.6%) 1440(0.5%) for-loop .../alt-testing/src/core/ematch.rkt:65:37 match-e [70] 95.1% ??? [114] 1.5% ------------------------------------------------------------------------------------------ for-loop [61] 10.0% merge-egraph-nodes! [82] 90.0% [95] 16894(5.4%) 400(0.1%) update-leader! ...esting/src/core/egraph.rkt:218:0 for-loop [110] 73.0% for-loop [112] 23.4% hash-ref! [259] 1.2% ------------------------------------------------------------------------------------------ prepare-points [74] 18.0% loop [72] 33.8% loop [83] 48.2% [96] 8052(2.6%) 0(0.0%) make-exacts* ...e/alt-testing/src/points.rkt:138:0 loop [204] 78.7% eval-prog [169] 21.3% ------------------------------------------------------------------------------------------ substitute-e [81] 24.1% match-e [70] 75.9% [97] 7982(2.5%) 620(0.2%) variable? ...t-testing/src/syntax/syntax.rkt:665:0 ??? [130] 92.2% ------------------------------------------------------------------------------------------ merge-egraph-nodes! [82] 100.0% [98] 7922(2.5%) 0(0.0%) for-loop ...alt-testing/src/core/egraph.rkt:201:10 loop! [212] 63.4% merge-egraph-nodes! [82] 36.6% ------------------------------------------------------------------------------------------ for-loop [80] 100.0% [99] 6538(2.1%) 6538(2.1%) procedure-reduce-keyword-arity-mask ....rkt:1597:4 ------------------------------------------------------------------------------------------ prepare-points [74] 18.6% loop [72] 40.2% loop [83] 41.2% [100] 6524(2.1%) 220(0.1%) loop ...es/herbie/alt-testing/src/points.rkt:141:4 loop [204] 96.6% ------------------------------------------------------------------------------------------ list-cartesian-product [101] 28.7% for-loop [80] 71.3% [101] 5650(1.8%) 3864(1.2%) list-cartesian-product ...src/core/ematch.rkt:20:0 list-cartesian-product [101] 28.7% for-loop [113] 21.9% ------------------------------------------------------------------------------------------ *simplify-rules* [30] 17.7% merge-egraph-nodes! [82] 29.8% *rules* [87] 52.5% [102] 1410(0.5%) 420(0.1%) for-loop ...herbie/alt-testing/src/common.rkt:99:9 do-curry [111] 23.7% ormap [116] 17.7% ??? [118] 14.6% flag-set? [123] 14.2% ------------------------------------------------------------------------------------------ for-loop [115] 50.0% for-loop [88] 50.0% [103] 740(0.2%) 0(0.0%) matcher .../alt-testing/src/core/matcher.rkt:167:2 for-loop [115] 50.0% rewriter [77] 50.0% ------------------------------------------------------------------------------------------ setfindf [86] 100.0% [104] 604(0.2%) 402(0.1%) for-loop ...erbie/alt-testing/src/common.rkt:187:2 ??? [130] 33.4% ------------------------------------------------------------------------------------------ list-member? [84] 100.0% [105] 474(0.2%) 474(0.2%) member (unknown source) ------------------------------------------------------------------------------------------ merge-egraph-nodes! [82] 100.0% [106] 252(0.1%) 0(0.0%) enode-merge! ...t-testing/src/core/enode.rkt:129:0 custom-set-intersect! [117] 100.0% ------------------------------------------------------------------------------------------ filter-exacts [90] 100.0% [107] 222(0.1%) 222(0.1%) for-loop ...erbie/alt-testing/src/points.rkt:181:4 ------------------------------------------------------------------------------------------ for-loop [91] 100.0% [108] 202(0.1%) 0(0.0%) ??? ...ies/herbie/alt-testing/src/points.rkt:230:7 for-loop [119] 100.0% ------------------------------------------------------------------------------------------ mk-egraph [47] 0.5% mk-enode-rec! [58] 1.8% for-loop [93] 45.6% for-loop [69] 52.1% [109] 88696(28.3%) 1852(0.6%) mk-enode! ...alt-testing/src/core/egraph.rkt:102:0 new-enode [120] 94.5% for-loop [122] 2.1% hash-has-key? [138] 1.3% ------------------------------------------------------------------------------------------ update-leader! [95] 100.0% [110] 12332(3.9%) 0(0.0%) for-loop .../alt-testing/src/core/egraph.rkt:223:6 for-loop [121] 100.0% ------------------------------------------------------------------------------------------ for-loop [102] 4.1% for-loop [80] 95.9% [111] 8174(2.6%) 8174(2.6%) do-curry ...-7.5/collects/racket/function.rkt:71:2 ------------------------------------------------------------------------------------------ update-leader! [95] 100.0% [112] 3958(1.3%) 2902(0.9%) for-loop .../alt-testing/src/core/egraph.rkt:233:6 update-en-expr [220] 26.7% ------------------------------------------------------------------------------------------ list-cartesian-product [101] 100.0% [113] 1786(0.6%) 1786(0.6%) for-loop ...e/alt-testing/src/core/ematch.rkt:24:8 ------------------------------------------------------------------------------------------ for-loop [62] 23.9% for-loop [94] 76.1% [114] 844(0.3%) 642(0.2%) ??? ...herbie/alt-testing/src/core/ematch.rkt:50:5 for-loop [124] 23.9% ------------------------------------------------------------------------------------------ matcher [103] 100.0% [115] 740(0.2%) 0(0.0%) for-loop ...lt-testing/src/core/matcher.rkt:183:21 matcher [103] 100.0% ------------------------------------------------------------------------------------------ ormap [116] 22.7% loop [49] 22.7% for-loop [102] 54.6% [116] 458(0.1%) 208(0.1%) ormap ....5/collects/racket/private/map.rkt:141:13 flag-set? [123] 54.6% ormap [116] 22.7% ------------------------------------------------------------------------------------------ enode-merge! [106] 100.0% [117] 252(0.1%) 252(0.1%) custom-set-intersect! ...ivate/set-types.rkt:269:0 ------------------------------------------------------------------------------------------ for-loop [102] 100.0% [118] 206(0.1%) 206(0.1%) ??? ...cket-7.5/collects/racket/function.rkt:93:12 ------------------------------------------------------------------------------------------ ??? [108] 100.0% [119] 202(0.1%) 0(0.0%) for-loop ...erbie/alt-testing/src/points.rkt:231:9 ??? [253] 100.0% ------------------------------------------------------------------------------------------ mk-enode! [109] 100.0% [120] 83802(26.8%) 0(0.0%) new-enode ...e/alt-testing/src/core/enode.rkt:97:0 type-of-enode-expr [125] 99.3% ------------------------------------------------------------------------------------------ for-loop [110] 100.0% [121] 12332(3.9%) 0(0.0%) for-loop .../alt-testing/src/core/egraph.rkt:224:8 hash-update! [126] 100.0% ------------------------------------------------------------------------------------------ mk-enode! [109] 100.0% [122] 1864(0.6%) 1864(0.6%) for-loop ...alt-testing/src/core/egraph.rkt:114:10 ------------------------------------------------------------------------------------------ for-loop [102] 44.4% ormap [116] 55.6% [123] 450(0.1%) 200(0.1%) flag-set? ...erbie/alt-testing/src/config.rkt:34:0 return/no-unsupplied [270] 55.6% ------------------------------------------------------------------------------------------ ??? [114] 100.0% [124] 202(0.1%) 202(0.1%) for-loop ...e/alt-testing/src/core/ematch.rkt:51:7 ------------------------------------------------------------------------------------------ new-enode [120] 100.0% [125] 83198(26.6%) 1322(0.4%) type-of-enode-expr ...ting/src/core/enode.rkt:68:0 get-sigs [127] 98.4% ------------------------------------------------------------------------------------------ for-loop [121] 100.0% [126] 12332(3.9%) 0(0.0%) hash-update! ...cket/private/more-scheme.rkt:365:4 ??? [128] 100.0% ------------------------------------------------------------------------------------------ type-of-enode-expr [125] 100.0% [127] 81876(26.1%) 1550(0.5%) get-sigs ...bie/alt-testing/src/type-check.rkt:5:0 ??? [129] 54.7% table-ref [131] 18.4% ...sting/src/common.rkt:47:2 [132] 8.1% for-loop [134] 7.8% ??? [130] 6.7% get/build-late-neg-projection [178] 1.7% ??? [162] 0.6% ------------------------------------------------------------------------------------------ hash-update! [126] 100.0% [128] 12332(3.9%) 0(0.0%) ??? ...rbie/alt-testing/src/core/egraph.rkt:226:24 for-loop [133] 98.4% make-sequence [135] 1.6% ------------------------------------------------------------------------------------------ f67 [172] 0.4% get-sigs [127] 99.6% [129] 45006(14.4%) 0(0.0%) ??? ...ects/racket/contract/private/hash.rkt:278:4 contract-pos/neg-doubling/proc [136] 100.0% ------------------------------------------------------------------------------------------ for-loop [104] 0.5% run-improve41 [2] 0.8% ??? [260] 1.0% substitute-e [81] 5.3% choose-best-alt! [46] 5.6% get-sigs [127] 14.5% variable? [97] 19.4% match-e [70] 21.8% finalize-iter! [44] 31.1% [130] 37978(12.1%) 13302(4.2%) ??? ...contract/private/arrow-val-first.rkt:486:18 for-loop [137] 31.9% hash-has-key? [138] 26.1% atab-pick-alt8 [141] 5.6% ??? [260] 1.3% ------------------------------------------------------------------------------------------ f67 [172] 1.4% ??? [253] 4.4% for-loop [71] 41.5% get-sigs [127] 52.7% [131] 28650(9.1%) 6980(2.2%) table-ref ...erbie/alt-testing/src/common.rkt:46:0 ??? [143] 71.2% ??? [151] 1.0% dict? [276] 0.7% return/no-unsupplied [270] 0.7% ------------------------------------------------------------------------------------------ ??? [253] 4.9% for-loop [71] 41.3% get-sigs [127] 53.8% [132] 12330(3.9%) 3484(1.1%) ...sting/src/common.rkt:47:2 ...e/arr-i.rkt:976:19 ??? [139] 41.1% ??? [140] 30.7% ------------------------------------------------------------------------------------------ ??? [128] 100.0% [133] 12130(3.9%) 9814(3.1%) for-loop ...alt-testing/src/core/egraph.rkt:227:26 update-en-expr [220] 19.1% ------------------------------------------------------------------------------------------ for-loop [153] 16.9% get-sigs [127] 83.1% [134] 7696(2.5%) 1072(0.3%) for-loop ...racket/contract/private/hash.rkt:328:6 ??? [151] 86.1% ------------------------------------------------------------------------------------------ ??? [128] 11.0% setfindf [86] 11.0% merge-egraph-nodes! [82] 11.9% reduce-to-single! [78] 22.7% match-e [70] 43.4% [135] 1838(0.6%) 1624(0.5%) make-sequence ...ects/racket/private/for.rkt:533:2 ??? [142] 11.6% ------------------------------------------------------------------------------------------ ??? [129] 100.0% [136] 45006(14.4%) 42176(13.5%) contract-pos/neg-doubling/proc .../guts.rkt:1005:0 ??? [145] 5.4% ------------------------------------------------------------------------------------------ ??? [130] 100.0% [137] 12120(3.9%) 0(0.0%) for-loop ...lt-testing/src/core/alt-table.rkt:53:2 atab-add-altn [144] 100.0% ------------------------------------------------------------------------------------------ mk-enode! [109] 10.6% ??? [130] 89.4% [138] 11094(3.5%) 3362(1.1%) hash-has-key? ...ket/private/more-scheme.rkt:371:2 ??? [143] 64.1% ??? [147] 5.6% ------------------------------------------------------------------------------------------ for-loop [161] 12.7% ??? [151] 15.9% ...sting/src/common.rkt:47:2 [132] 71.4% [139] 5062(1.6%) 1458(0.5%) ??? ...ects/racket/contract/private/list.rkt:370:4 ??? [151] 59.4% ??? [260] 20.2% ------------------------------------------------------------------------------------------ ...sting/src/common.rkt:47:2 [132] 100.0% [140] 3784(1.2%) 1580(0.5%) ??? ...s/racket/contract/private/arr-i.rkt:1321:39 return/no-unsupplied [270] 33.8% ??? [260] 12.0% assoc-ref [149] 7.2% ??? [150] 5.2% ------------------------------------------------------------------------------------------ ??? [130] 100.0% [141] 2138(0.7%) 0(0.0%) atab-pick-alt8 ...ting/src/core/alt-table.rkt:64:0 point-best-alt [146] 47.3% write-json* [148] 24.5% ??? [253] 18.8% errors [158] 9.4% ------------------------------------------------------------------------------------------ make-sequence [135] 100.0% [142] 214(0.1%) 214(0.1%) ??? ...t-7.5/collects/racket/private/for.rkt:453:7 ------------------------------------------------------------------------------------------ hash-has-key? [138] 25.9% table-ref [131] 74.1% [143] 27498(8.8%) 9936(3.2%) ??? ...ects/racket/contract/private/list.rkt:808:4 for-loop [153] 38.6% ??? [159] 17.2% arrow-higher-order:lnp [155] 5.8% ??? [151] 1.5% successfully-got-the-right-kind-of-function [166] 0.8% ------------------------------------------------------------------------------------------ for-loop [137] 100.0% [144] 12120(3.9%) 0(0.0%) atab-add-altn ...ting/src/core/alt-table.rkt:239:0 best-and-tied-at-points [152] 96.7% override-at-pnts [157] 3.3% ------------------------------------------------------------------------------------------ contract-pos/neg-doubling/proc [136] 100.0% [145] 2428(0.8%) 200(0.1%) ??? ...ects/racket/contract/private/list.rkt:191:2 ??? [154] 91.8% ------------------------------------------------------------------------------------------ atab-pick-alt8 [141] 100.0% [146] 1012(0.3%) 0(0.0%) point-best-alt ...ting/src/core/alt-table.rkt:56:0 loop [204] 100.0% ------------------------------------------------------------------------------------------ hash-has-key? [138] 100.0% [147] 620(0.2%) 620(0.2%) ??? ...ects/racket/contract/private/hash.rkt:334:7 ------------------------------------------------------------------------------------------ atab-pick-alt8 [141] 100.0% [148] 524(0.2%) 0(0.0%) write-json* ...ket-7.5/collects/json/main.rkt:94:0 loop [156] 100.0% ------------------------------------------------------------------------------------------ ??? [140] 100.0% [149] 272(0.1%) 272(0.1%) assoc-ref ...collects/racket/private/dict.rkt:56:0 ------------------------------------------------------------------------------------------ ??? [140] 100.0% [150] 198(0.1%) 198(0.1%) ??? ...ects/racket/contract/private/prop.rkt:301:4 ------------------------------------------------------------------------------------------ table-ref [131] 2.5% ??? [143] 3.4% ??? [139] 37.8% for-loop [134] 56.2% [151] 11784(3.8%) 1786(0.6%) ??? ...cts/racket/contract/private/list.rkt:209:10 ??? [160] 53.4% for-loop [161] 16.1% ??? [139] 13.7% ??? [257] 1.7% ------------------------------------------------------------------------------------------ atab-add-altn [144] 100.0% [152] 11722(3.7%) 0(0.0%) best-and-tied-at-points ...ore/alt-table.rkt:153:0 errors [158] 94.7% for-loop [163] 5.3% ------------------------------------------------------------------------------------------ ??? [143] 100.0% [153] 10622(3.4%) 6340(2.0%) for-loop ...acket/contract/private/list.rkt:814:12 ??? [159] 24.1% for-loop [134] 12.3% successfully-got-the-right-kind-of-function [166] 2.1% ??? [162] 1.9% ------------------------------------------------------------------------------------------ ??? [145] 100.0% [154] 2228(0.7%) 680(0.2%) ??? ...ects/racket/contract/private/list.rkt:749:5 get/build-late-neg-projection [178] 60.4% add-list-context [167] 9.1% ------------------------------------------------------------------------------------------ ??? [143] 100.0% [155] 1588(0.5%) 1588(0.5%) arrow-higher-order:lnp ...w-higher-order.rkt:673:7 ------------------------------------------------------------------------------------------ loop [156] 25.0% for-loop [164] 25.0% for-loop [165] 25.0% write-json* [148] 25.0% [156] 524(0.2%) 524(0.2%) loop /opt/racket-7.5/collects/json/main.rkt:132:2 for-loop [165] 25.0% for-loop [164] 25.0% loop [156] 25.0% ------------------------------------------------------------------------------------------ atab-add-altn [144] 100.0% [157] 398(0.1%) 0(0.0%) override-at-pnts ...g/src/core/alt-table.rkt:176:0 errors [158] 100.0% ------------------------------------------------------------------------------------------ atab-pick-alt8 [141] 1.0% override-at-pnts [157] 1.9% composed [281] 2.9% option-on-expr [213] 5.0% loop [204] 34.8% best-and-tied-at-points [152] 54.3% [158] 20446(6.5%) 0(0.0%) errors .../herbie/alt-testing/src/points.rkt:271:0 for-loop [168] 64.2% eval-prog [169] 35.8% ------------------------------------------------------------------------------------------ for-loop [153] 35.2% ??? [143] 64.8% [159] 7286(2.3%) 6880(2.2%) ??? ...private/unconstrained-domain-arrow.rkt:74:4 loop [171] 5.6% ------------------------------------------------------------------------------------------ ??? [151] 100.0% [160] 6290(2.0%) 916(0.3%) ??? ...ects/racket/contract/private/list.rkt:757:7 ??? [260] 82.2% ??? [257] 3.3% ------------------------------------------------------------------------------------------ ??? [151] 100.0% [161] 1892(0.6%) 608(0.2%) for-loop ...acket/contract/private/list.rkt:212:15 ??? [139] 67.9% ------------------------------------------------------------------------------------------ for-loop [153] 27.5% get-sigs [127] 72.5% [162] 728(0.2%) 202(0.1%) ??? ...ects/racket/contract/private/hash.rkt:287:9 check-hash/c [170] 72.3% ------------------------------------------------------------------------------------------ best-and-tied-at-points [152] 100.0% [163] 626(0.2%) 626(0.2%) for-loop ...-testing/src/core/alt-table.rkt:155:16 ------------------------------------------------------------------------------------------ loop [156] 100.0% [164] 524(0.2%) 0(0.0%) for-loop ...cket-7.5/collects/json/main.rkt:142:13 loop [156] 100.0% ------------------------------------------------------------------------------------------ loop [156] 100.0% [165] 524(0.2%) 0(0.0%) for-loop ...cket-7.5/collects/json/main.rkt:147:11 loop [156] 100.0% ------------------------------------------------------------------------------------------ for-loop [153] 49.3% ??? [143] 50.7% [166] 442(0.1%) 442(0.1%) successfully-got-the-right-kind-of-function ...5:4 ------------------------------------------------------------------------------------------ ??? [154] 100.0% [167] 202(0.1%) 202(0.1%) add-list-context ...ontract/private/list.rkt:823:0 ------------------------------------------------------------------------------------------ errors [158] 100.0% [168] 13118(4.2%) 406(0.1%) for-loop ...erbie/alt-testing/src/points.rkt:274:4 ??? [249] 86.2% ulp-difference [217] 7.7% ??? [253] 3.0% ------------------------------------------------------------------------------------------ sort-context-on-expr [221] 3.3% option-on-expr [213] 5.0% sindices->spoints [226] 6.8% point->alt [230] 10.0% make-exacts* [96] 14.2% errors [158] 60.6% [169] 12086(3.9%) 0(0.0%) eval-prog ...ie/alt-testing/src/programs.rkt:150:0 temp85_0 [173] 63.9% f67 [172] 23.9% hash-ref! [259] 8.9% eval [174] 3.4% ------------------------------------------------------------------------------------------ ??? [162] 100.0% [170] 526(0.2%) 200(0.1%) check-hash/c ...ket/contract/private/hash.rkt:86:0 flat-contract? [175] 62.0% ------------------------------------------------------------------------------------------ ??? [159] 100.0% [171] 406(0.1%) 406(0.1%) loop ...ts/racket/contract/private/blame.rkt:320:2 ------------------------------------------------------------------------------------------ for-loop [50] 0.1% composed [281] 0.4% for-loop [37] 0.8% append-map [194] 0.9% eval-const-expr [89] 1.7% parse-loop80 [197] 1.9% eval-prog [169] 3.4% f67 [172] 6.5% map [177] 6.9% simplify [35] 16.7% split-table [34] 60.7% [172] 25472(8.1%) 220(0.1%) f67 ...5/collects/racket/match/compiler.rkt:507:40 loop [204] 54.9% map [177] 19.0% f67 [172] 6.5% option-on-expr [213] 5.7% temp85_0 [173] 4.0% ??? [253] 3.4% append-map [194] 1.4% loop [243] 1.3% get/build-late-neg-projection [178] 0.9% ??? [265] 0.8% table-ref [131] 0.6% loop [15] 0.4% composed [281] 0.4% ??? [129] 0.3% eval [174] 0.2% exprs-to-branch-on [16] 0.1% ------------------------------------------------------------------------------------------ for-loop [75] 1.8% f67 [172] 13.0% parse-loop80 [197] 15.5% eval-prog [169] 69.7% [173] 11080(3.5%) 0(0.0%) temp85_0 (unknown source) compile15 [176] 100.0% ------------------------------------------------------------------------------------------ f67 [172] 16.4% for-loop [75] 16.8% parse-loop80 [197] 33.2% eval-prog [169] 33.6% [174] 1216(0.4%) 402(0.1%) eval (unknown source) namespace-syntax-introduce3 [179] 50.2% datum->syntax6 [185] 16.8% ------------------------------------------------------------------------------------------ check-hash/c [170] 100.0% [175] 326(0.1%) 326(0.1%) flat-contract? .../contract/private/guts.rkt:129:0 ------------------------------------------------------------------------------------------ temp85_0 [173] 100.0% [176] 11080(3.5%) 0(0.0%) compile15 (unknown source) temp91_0 [180] 98.1% loop [243] 1.9% ------------------------------------------------------------------------------------------ f67 [172] 100.0% [177] 5510(1.8%) 0(0.0%) map ...t-7.5/collects/racket/private/map.rkt:35:13 parse-loop80 [197] 46.3% f67 [172] 40.9% simplify-node [186] 6.1% make-multiplication-node [189] 3.6% simplify* [183] 3.0% ------------------------------------------------------------------------------------------ listof-late-neg-projection [188] 2.1% ??? [253] 3.2% f67 [172] 3.5% unconstrained-domain->-projection [184] 6.7% ??? [182] 17.7% get-sigs [127] 24.0% ??? [154] 42.7% [178] 3154(1.0%) 964(0.3%) get/build-late-neg-projection ...te/guts.rkt:827:0 ??? [181] 56.1% ??? [182] 17.7% unconstrained-domain->-projection [184] 6.7% listof-late-neg-projection [188] 2.1% ------------------------------------------------------------------------------------------ eval [174] 100.0% [179] 610(0.2%) 0(0.0%) namespace-syntax-introduce3 (unknown source) free-identifier=? [187] 33.8% for-loop [219] 33.4% datum->syntax6 [185] 32.8% ------------------------------------------------------------------------------------------ compile15 [176] 100.0% [180] 10874(3.5%) 0(0.0%) temp91_0 (unknown source) temp118_0 [190] 80.1% compile-top9 [192] 19.9% ------------------------------------------------------------------------------------------ get/build-late-neg-projection [178] 100.0% [181] 2190(0.7%) 624(0.2%) ??? ...cts/racket/contract/private/prop.rkt:376:12 build-compound-type-name [193] 71.5% ------------------------------------------------------------------------------------------ get/build-late-neg-projection [178] 100.0% [182] 1184(0.4%) 0(0.0%) ??? ...ects/racket/contract/private/hash.rkt:272:2 get/build-late-neg-projection [178] 100.0% ------------------------------------------------------------------------------------------ map [177] 100.0% [183] 606(0.2%) 200(0.1%) simplify* .../alt-testing/src/core/reduce.rkt:31:0 hash-ref! [259] 67.0% ------------------------------------------------------------------------------------------ get/build-late-neg-projection [178] 100.0% [184] 424(0.1%) 0(0.0%) unconstrained-domain->-projection ...rrow.rkt:60:0 get/build-late-neg-projection [178] 100.0% ------------------------------------------------------------------------------------------ namespace-syntax-introduce3 [179] 49.5% eval [174] 50.5% [185] 404(0.1%) 200(0.1%) datum->syntax6 (unknown source) loop [243] 50.5% ------------------------------------------------------------------------------------------ map [177] 100.0% [186] 336(0.1%) 0(0.0%) simplify-node ...-testing/src/core/reduce.rkt:50:0 append-map [194] 100.0% ------------------------------------------------------------------------------------------ namespace-syntax-introduce3 [179] 100.0% [187] 206(0.1%) 0(0.0%) free-identifier=? (unknown source) resolve+shift28 [191] 100.0% ------------------------------------------------------------------------------------------ get/build-late-neg-projection [178] 100.0% [188] 202(0.1%) 0(0.0%) listof-late-neg-projection ...ivate/list.rkt:184:0 get/build-late-neg-projection [178] 100.0% ------------------------------------------------------------------------------------------ map [177] 100.0% [189] 200(0.1%) 0(0.0%) make-multiplication-node .../core/reduce.rkt:230:0 make-multiplication-subnode [195] 100.0% ------------------------------------------------------------------------------------------ temp91_0 [180] 100.0% [190] 8706(2.8%) 0(0.0%) temp118_0 (unknown source) expand-capturing-lifts [196] 100.0% ------------------------------------------------------------------------------------------ free-identifier=? [187] 6.0% expand-id-application-form17 [235] 11.7% core-form-sym [248] 11.8% expand-identifier [12] 29.4% expand-implicit [10] 41.1% [191] 3424(1.1%) 808(0.3%) resolve+shift28 (unknown source) fallback-loop [198] 70.4% apply-syntax-shifts [201] 6.0% ------------------------------------------------------------------------------------------ temp91_0 [180] 100.0% [192] 2168(0.7%) 0(0.0%) compile-top9 (unknown source) compile-forms33 [199] 90.7% mpis-as-vector [202] 9.3% ------------------------------------------------------------------------------------------ contract-struct-name [200] 23.6% ??? [181] 76.4% [193] 1566(0.5%) 1148(0.4%) build-compound-type-name ...private/guts.rkt:537:0 contract-struct-name [200] 43.4% ------------------------------------------------------------------------------------------ simplify-node [186] 35.7% f67 [172] 64.3% [194] 940(0.3%) 604(0.2%) append-map ...t-7.5/collects/racket/list.rkt:586:2 f67 [172] 38.7% parse-loop80 [197] 35.7% ------------------------------------------------------------------------------------------ make-multiplication-node [189] 100.0% [195] 200(0.1%) 0(0.0%) make-multiplication-subnode ...re/reduce.rkt:240:0 for-loop [203] 100.0% ------------------------------------------------------------------------------------------ loop [243] 7.9% temp118_0 [190] 92.1% [196] 9448(3.0%) 408(0.1%) expand-capturing-lifts (unknown source) lambda-clause-expander [205] 66.6% dispatch-transformer41 [206] 12.7% loop [243] 5.7% for-loop [219] 4.2% expand-identifier [12] 2.2% expand-implicit [10] 2.1% expand-id-application-form17 [235] 2.1% ------------------------------------------------------------------------------------------ loop [204] 1.4% simplify [35] 1.4% hash-ref! [259] 4.0% append-map [194] 6.7% parse-loop80 [197] 8.4% for-loop [25] 26.7% map [177] 51.4% [197] 4982(1.6%) 336(0.1%) parse-loop80 ...s/racket/match/compiler.rkt:418:15 for-loop [207] 26.7% temp85_0 [173] 20.7% f67 [172] 16.8% parse-loop80 [197] 8.4% eval-one-top12 [208] 5.9% eval [174] 5.4% loop [243] 4.1% loop [210] 4.0% loop [204] 1.4% ------------------------------------------------------------------------------------------ resolve+shift28 [191] 100.0% [198] 2412(0.8%) 802(0.3%) fallback-loop (unknown source) for-loop [219] 66.7% ------------------------------------------------------------------------------------------ compile-top9 [192] 100.0% [199] 1966(0.6%) 402(0.1%) compile-forms33 (unknown source) for-loop [219] 69.3% loop! [209] 10.3% ------------------------------------------------------------------------------------------ build-compound-type-name [193] 100.0% [200] 942(0.3%) 418(0.1%) contract-struct-name ...ract/private/prop.rkt:98:0 build-compound-type-name [193] 67.1% ------------------------------------------------------------------------------------------ resolve+shift28 [191] 100.0% [201] 204(0.1%) 204(0.1%) apply-syntax-shifts (unknown source) ------------------------------------------------------------------------------------------ compile-top9 [192] 100.0% [202] 202(0.1%) 202(0.1%) mpis-as-vector (unknown source) ------------------------------------------------------------------------------------------ make-multiplication-subnode [195] 100.0% [203] 200(0.1%) 0(0.0%) for-loop .../alt-testing/src/core/reduce.rkt:242:3 mterm->expr [211] 100.0% ------------------------------------------------------------------------------------------ parse-loop80 [197] 0.2% make-exacts* [96] 0.2% loop [100] 0.3% map-enodes [57] 0.5% point-best-alt [146] 1.4% ??? [271] 2.2% for-loop [80] 2.6% option-on-expr [213] 4.0% loop! [212] 7.7% f67 [172] 15.4% loop [204] 65.4% [204] 49766(15.9%) 1738(0.6%) loop ...-7.5/collects/racket/private/map.rkt:40:19 loop [204] 65.4% option-on-expr [213] 15.4% loop! [212] 7.6% errors [158] 5.4% hash-ref! [259] 2.2% foldl [216] 0.9% ??? [249] 0.5% set-precompute! [66] 0.5% parse-loop80 [197] 0.2% ??? [240] 0.0% ??? [253] 0.0% ------------------------------------------------------------------------------------------ expand-capturing-lifts [196] 100.0% [205] 6294(2.0%) 0(0.0%) lambda-clause-expander (unknown source) finish-bodys [214] 90.3% loop [243] 9.7% ------------------------------------------------------------------------------------------ loop [243] 21.6% for-loop [219] 35.8% expand-capturing-lifts [196] 42.6% [206] 2822(0.9%) 0(0.0%) dispatch-transformer41 (unknown source) apply-transformer52 [215] 100.0% ------------------------------------------------------------------------------------------ parse-loop80 [197] 100.0% [207] 2328(0.7%) 0(0.0%) for-loop ...alt-testing/src/core/taylor.rkt:490:59 hash-ref! [259] 100.0% ------------------------------------------------------------------------------------------ parse-loop80 [197] 100.0% [208] 824(0.3%) 824(0.3%) eval-one-top12 (unknown source) ------------------------------------------------------------------------------------------ compile-forms33 [199] 100.0% [209] 202(0.1%) 0(0.0%) loop! (unknown source) for-loop [219] 100.0% ------------------------------------------------------------------------------------------ parse-loop80 [197] 1.5% loop [210] 98.5% [210] 200(0.1%) 0(0.0%) loop ...-7.5/collects/racket/private/map.rkt:54:19 loop [210] 98.5% ulp-difference [217] 1.5% ------------------------------------------------------------------------------------------ for-loop [203] 100.0% [211] 200(0.1%) 0(0.0%) mterm->expr ...t-testing/src/core/reduce.rkt:270:0 expression->type [29] 100.0% ------------------------------------------------------------------------------------------ for-loop [98] 16.5% loop [204] 31.6% for-loop [69] 51.9% [212] 23466(7.5%) 6902(2.2%) loop! ...rbie/alt-testing/src/core/enode.rkt:192:2 custom-set-union [218] 35.2% loop [204] 33.4% update-en-expr [220] 8.1% set [222] 6.0% ------------------------------------------------------------------------------------------ f67 [172] 8.7% loop [204] 91.3% [213] 16700(5.3%) 0(0.0%) option-on-expr ...esting/src/core/regimes.rkt:83:0 loop [204] 40.2% sort-context-on-expr [221] 36.5% errors [158] 6.2% pick-errors [224] 6.1% sindices->spoints [226] 4.9% eval-prog [169] 3.6% point->alt [230] 2.4% ------------------------------------------------------------------------------------------ lambda-clause-expander [205] 15.7% for-loop [219] 84.3% [214] 5684(1.8%) 0(0.0%) finish-bodys (unknown source) for-loop [219] 100.0% ------------------------------------------------------------------------------------------ dispatch-transformer41 [206] 100.0% [215] 2822(0.9%) 500(0.2%) apply-transformer52 (unknown source) apply-transformer-in-context [223] 53.7% loop [243] 28.6% ------------------------------------------------------------------------------------------ for-loop [80] 35.5% loop [204] 64.5% [216] 1346(0.4%) 478(0.2%) foldl ....5/collects/racket/private/list.rkt:229:4 merge2 [225] 64.5% ------------------------------------------------------------------------------------------ loop [210] 16.6% for-loop [168] 83.4% [217] 1204(0.4%) 802(0.3%) ulp-difference ...e/alt-testing/src/float.rkt:19:0 return/no-unsupplied [270] 33.4% ------------------------------------------------------------------------------------------ loop! [212] 100.0% [218] 9204(2.9%) 3760(1.2%) custom-set-union ...et/private/set-types.rkt:168:0 for-loop [228] 54.3% for-loop [234] 4.9% ------------------------------------------------------------------------------------------ expand-capturing-lifts [196] 1.6% loop! [209] 2.5% namespace-syntax-introduce3 [179] 2.5% fallback-loop [198] 3.4% for-loop [219] 12.1% compile-forms33 [199] 16.9% finish-bodys [214] 60.9% [219] 8052(2.6%) 2828(0.9%) for-loop (unknown source) finish-bodys [214] 51.9% compile-module-linklet57 [231] 14.4% for-loop [219] 12.1% expand-id-application-form17 [235] 2.5% expand-implicit [10] 2.4% dispatch-transformer41 [206] 1.9% syntax-e [8] 1.5% expand-identifier [12] 0.7% ------------------------------------------------------------------------------------------ for-loop [112] 14.2% for-loop [133] 31.2% loop! [212] 54.6% [220] 7432(2.4%) 3620(1.2%) update-en-expr ...esting/src/core/egraph.rkt:212:0 for-loop [229] 51.3% ------------------------------------------------------------------------------------------ option-on-expr [213] 100.0% [221] 6100(1.9%) 0(0.0%) sort-context-on-expr ...sting/src/points.rkt:115:0 ??? [227] 93.4% eval-prog [169] 6.6% ------------------------------------------------------------------------------------------ loop! [212] 100.0% [222] 2896(0.9%) 2896(0.9%) set ...collects/racket/private/set-types.rkt:992:0 ------------------------------------------------------------------------------------------ apply-transformer52 [215] 100.0% [223] 1516(0.5%) 404(0.1%) apply-transformer-in-context (unknown source) go [232] 40.2% parse-app [233] 33.1% ------------------------------------------------------------------------------------------ option-on-expr [213] 100.0% [224] 1026(0.3%) 0(0.0%) pick-errors ...-testing/src/core/regimes.rkt:201:0 point->alt [230] 78.4% for-loop [236] 21.6% ------------------------------------------------------------------------------------------ foldl [216] 100.0% [225] 868(0.3%) 868(0.3%) merge2 ...bie/alt-testing/src/core/ematch.rkt:31:0 ------------------------------------------------------------------------------------------ option-on-expr [213] 100.0% [226] 822(0.3%) 0(0.0%) sindices->spoints ...ng/src/core/regimes.rkt:136:0 eval-prog [169] 100.0% ------------------------------------------------------------------------------------------ sort-context-on-expr [221] 100.0% [227] 5696(1.8%) 0(0.0%) ??? ...-7.5/collects/racket/private/sort.rkt:369:3 generic-sort/key [237] 78.7% loop [246] 21.3% ------------------------------------------------------------------------------------------ custom-set-union [218] 100.0% [228] 4996(1.6%) 1014(0.3%) for-loop ...cts/racket/private/set-types.rkt:174:3 for-loop [238] 79.7% ------------------------------------------------------------------------------------------ update-en-expr [220] 100.0% [229] 3812(1.2%) 3812(1.2%) for-loop .../alt-testing/src/core/egraph.rkt:214:6 ------------------------------------------------------------------------------------------ option-on-expr [213] 33.4% pick-errors [224] 66.6% [230] 1208(0.4%) 0(0.0%) point->alt ...t-testing/src/core/regimes.rkt:188:0 eval-prog [169] 100.0% ------------------------------------------------------------------------------------------ for-loop [219] 100.0% [231] 1160(0.4%) 964(0.3%) compile-module-linklet57 (unknown source) make-module-use-to-linklet [242] 16.9% ------------------------------------------------------------------------------------------ apply-transformer-in-context [223] 100.0% [232] 610(0.2%) 0(0.0%) go .../collects/racket/private/qq-and-or.rkt:50:20 syntax->list [239] 66.9% loop [241] 33.1% ------------------------------------------------------------------------------------------ apply-transformer-in-context [223] 100.0% [233] 502(0.2%) 202(0.1%) parse-app ...collects/racket/private/kw.rkt:1142:2 syntax->list [239] 59.8% ------------------------------------------------------------------------------------------ custom-set-union [218] 100.0% [234] 448(0.1%) 448(0.1%) for-loop ...cts/racket/private/set-types.rkt:152:2 ------------------------------------------------------------------------------------------ expand-capturing-lifts [196] 50.0% for-loop [219] 50.0% [235] 400(0.1%) 0(0.0%) expand-id-application-form17 (unknown source) resolve+shift28 [191] 100.0% ------------------------------------------------------------------------------------------ pick-errors [224] 100.0% [236] 222(0.1%) 0(0.0%) for-loop ...alt-testing/src/core/regimes.rkt:203:2 ??? [240] 100.0% ------------------------------------------------------------------------------------------ ??? [227] 100.0% [237] 4484(1.4%) 0(0.0%) generic-sort/key .../racket/private/sort.rkt:156:2 copying-mergesort [244] 77.1% loop [246] 22.9% ------------------------------------------------------------------------------------------ for-loop [228] 100.0% [238] 3982(1.3%) 3982(1.3%) for-loop ...cts/racket/private/set-types.rkt:178:5 ------------------------------------------------------------------------------------------ parse-app [233] 42.4% go [232] 57.6% [239] 708(0.2%) 0(0.0%) syntax->list (unknown source) loop [243] 100.0% ------------------------------------------------------------------------------------------ loop [204] 47.6% for-loop [236] 52.4% [240] 424(0.1%) 0(0.0%) ??? ...rbie/alt-testing/src/core/regimes.rkt:194:2 ??? [249] 100.0% ------------------------------------------------------------------------------------------ loop [241] 50.0% go [232] 50.0% [241] 202(0.1%) 0(0.0%) loop ...llects/racket/private/qq-and-or.rkt:101:61 loop [241] 50.0% stx-pair? [245] 50.0% ------------------------------------------------------------------------------------------ compile-module-linklet57 [231] 100.0% [242] 196(0.1%) 196(0.1%) make-module-use-to-linklet (unknown source) ------------------------------------------------------------------------------------------ compile15 [176] 1.9% lambda-clause-expander [205] 2.7% f67 [172] 3.0% parse-loop80 [197] 3.7% datum->syntax6 [185] 3.7% expand-capturing-lifts [196] 4.9% loop [243] 4.9% syntax->list [239] 6.3% apply-transformer52 [215] 12.8% list-member? [84] 22.0% syntax-e/no-taint [24] 34.2% [243] 5504(1.8%) 2662(0.9%) loop (unknown source) gf [247] 33.3% core-form-sym [248] 11.0% expand-capturing-lifts [196] 8.6% loop [243] 4.9% syntax-e [8] 2.7% dispatch-transformer41 [206] 2.7% ------------------------------------------------------------------------------------------ copying-mergesort [244] 49.0% generic-sort/key [237] 51.0% [244] 3456(1.1%) 0(0.0%) copying-mergesort ...racket/private/sort.rkt:129:8 copying-mergesort [244] 49.0% loop [246] 45.2% jloop [13] 5.8% ------------------------------------------------------------------------------------------ loop [241] 100.0% [245] 202(0.1%) 0(0.0%) stx-pair? .../collects/racket/private/stx.rkt:40:4 syntax-e [8] 100.0% ------------------------------------------------------------------------------------------ generic-sort/key [237] 21.0% ??? [227] 24.8% copying-mergesort [244] 54.2% [246] 4892(1.6%) 222(0.1%) loop ...7.5/collects/racket/private/sort.rkt:96:12 ??? [249] 83.0% ??? [253] 12.4% ------------------------------------------------------------------------------------------ loop [243] 100.0% [247] 2036(0.7%) 604(0.2%) gf (unknown source) propagation-merge [250] 30.6% propagation-apply-shifted [251] 29.8% propagation-apply [252] 9.9% ------------------------------------------------------------------------------------------ loop [243] 100.0% [248] 604(0.2%) 200(0.1%) core-form-sym (unknown source) resolve+shift28 [191] 66.9% ------------------------------------------------------------------------------------------ ??? [240] 1.5% jloop [13] 2.1% loop [246] 14.4% for-loop [168] 40.0% loop [204] 42.0% [249] 28246(9.0%) 16266(5.2%) ??? ...s/herbie/alt-testing/src/programs.rkt:156:4 bf* [254] 9.4% ??? [253] 8.2% ??? [255] 6.4% ??? [256] 6.1% ??? [262] 5.7% ...higher-order.rkt:379:33 [258] 2.5% bf [264] 2.3% ??? [257] 1.8% ------------------------------------------------------------------------------------------ gf [247] 100.0% [250] 624(0.2%) 624(0.2%) propagation-merge (unknown source) ------------------------------------------------------------------------------------------ gf [247] 100.0% [251] 606(0.2%) 606(0.2%) propagation-apply-shifted (unknown source) ------------------------------------------------------------------------------------------ gf [247] 100.0% [252] 202(0.1%) 202(0.1%) propagation-apply (unknown source) ------------------------------------------------------------------------------------------ jloop [13] 1.3% for-loop [119] 1.3% for-loop [168] 2.6% atab-pick-alt8 [141] 2.6% loop [246] 4.0% loop [204] 5.0% ??? [7] 6.6% loop [21] 9.0% ??? [249] 15.2% location-do [261] 16.7% for-loop [73] 16.7% f67 [172] 18.9% [253] 15280(4.9%) 1204(0.4%) ??? ...tract/private/arrow-higher-order.rkt:375:33 ->flonum [263] 21.6% location-do [261] 16.7% approximate9 [4] 15.6% hash-ref! [259] 15.6% table-ref [131] 8.2% ...sting/src/common.rkt:47:2 [132] 4.0% best-alt [266] 2.6% ??? [260] 2.6% bf [264] 1.5% ??? [265] 1.4% get/build-late-neg-projection [178] 1.3% simplify [35] 1.1% ------------------------------------------------------------------------------------------ ??? [249] 100.0% [254] 2666(0.9%) 230(0.1%) bf* ...ath/private/bigfloat/bigfloat-mpfr.rkt:95:0 ??? [262] 91.4% ------------------------------------------------------------------------------------------ ??? [249] 100.0% [255] 1810(0.6%) 1810(0.6%) ??? ...ie/alt-testing/src/syntax/syntax.rkt:156:17 ------------------------------------------------------------------------------------------ ??? [249] 100.0% [256] 1712(0.5%) 1712(0.5%) ??? ...rivate/unconstrained-domain-arrow.rkt:40:13 ------------------------------------------------------------------------------------------ ??? [151] 22.2% ??? [160] 22.6% ??? [249] 55.2% [257] 910(0.3%) 704(0.2%) ??? ...ects/racket/contract/private/prop.rkt:567:4 ??? [267] 22.6% ------------------------------------------------------------------------------------------ ??? [249] 100.0% [258] 704(0.2%) 704(0.2%) ...higher-order.rkt:379:33 (unknown source) ------------------------------------------------------------------------------------------ for-loop [28] 0.4% ??? [11] 0.7% simplify* [183] 0.7% ??? [38] 0.8% localize-error [52] 2.0% update-leader! [95] 2.0% eval-prog [169] 2.4% for-loop [207] 3.2% loop [21] 5.5% ??? [271] 6.1% compile [85] 7.2% loop [204] 8.4% for-loop [23] 9.3% for-loop [22] 14.7% ??? [268] 18.3% ??? [253] 18.3% [259] 9952(3.2%) 2272(0.7%) hash-ref! .../racket/private/more-scheme.rkt:376:2 ??? [268] 18.3% simplify [35] 16.2% ??? [5] 15.5% ??? [271] 14.5% ??? [6] 9.3% ??? [7] 5.5% ??? [9] 3.2% parse-loop80 [197] 2.0% ??? [11] 1.9% bigfloat-hash [273] 1.9% ??? [14] 1.2% ------------------------------------------------------------------------------------------ ??? [253] 4.6% ??? [140] 5.3% ??? [130] 5.9% ??? [139] 23.9% ??? [160] 60.3% [260] 8566(2.7%) 5922(1.9%) ??? ...ects/racket/contract/private/guts.rkt:770:8 contract? [272] 23.9% ??? [130] 4.6% dict? [276] 2.4% ------------------------------------------------------------------------------------------ ??? [253] 22.7% location-do [261] 77.3% [261] 7488(2.4%) 0(0.0%) location-do .../alt-testing/src/programs.rkt:116:0 location-do [261] 77.3% ??? [253] 22.7% ------------------------------------------------------------------------------------------ ??? [249] 39.7% bf* [254] 60.3% [262] 4042(1.3%) 646(0.2%) ??? ...-racket/utils/simple-result-arrow.rkt:39:12 bfmul [269] 84.0% ------------------------------------------------------------------------------------------ ??? [253] 100.0% [263] 3298(1.1%) 2174(0.7%) ->flonum ...rbie/alt-testing/src/programs.rkt:37:0 return/no-unsupplied [270] 34.1% ------------------------------------------------------------------------------------------ ??? [253] 25.6% ??? [249] 74.4% [264] 876(0.3%) 0(0.0%) bf ...ath-lib/math/private/bigfloat/mpfr.rkt:615:2 new-mpfr [278] 74.2% ??? [280] 25.8% ------------------------------------------------------------------------------------------ f67 [172] 49.0% ??? [253] 51.0% [265] 408(0.1%) 0(0.0%) ??? ...private/unconstrained-domain-arrow.rkt:69:2 get-blame-party-info [275] 100.0% ------------------------------------------------------------------------------------------ ??? [253] 100.0% [266] 402(0.1%) 0(0.0%) best-alt ...s/herbie/alt-testing/src/glue.rkt:71:0 loop [274] 100.0% ------------------------------------------------------------------------------------------ ??? [257] 100.0% [267] 206(0.1%) 0(0.0%) ??? ...lects/racket/contract/private/orc.rkt:83:14 ??? [277] 100.0% ------------------------------------------------------------------------------------------ hash-ref! [259] 100.0% [268] 7152(2.3%) 0(0.0%) ??? ...erbie/alt-testing/src/core/taylor.rkt:44:15 hash-ref! [259] 100.0% ------------------------------------------------------------------------------------------ ??? [262] 100.0% [269] 3396(1.1%) 484(0.2%) bfmul ...-lib/math/private/bigfloat/mpfr.rkt:835:4 new-mpfr [278] 59.4% ??? [280] 26.3% ------------------------------------------------------------------------------------------ table-ref [131] 6.1% flag-set? [123] 7.7% ulp-difference [217] 12.3% ->flonum [263] 34.5% ??? [140] 39.3% [270] 3256(1.0%) 1080(0.3%) return/no-unsupplied ...ct/private/arr-i.rkt:566:0 filter [279] 66.8% ------------------------------------------------------------------------------------------ hash-ref! [259] 100.0% [271] 2066(0.7%) 0(0.0%) ??? ...s/herbie/alt-testing/src/programs.rkt:194:5 loop [204] 51.8% hash-ref! [259] 48.2% ------------------------------------------------------------------------------------------ ??? [260] 100.0% [272] 2044(0.7%) 1424(0.5%) contract? ...acket/contract/private/guts.rkt:125:0 coerce-contract/f [283] 30.3% ------------------------------------------------------------------------------------------ hash-ref! [259] 100.0% [273] 734(0.2%) 0(0.0%) bigfloat-hash ...h/private/bigfloat/mpfr.rkt:168:0 bfcanonicalize [282] 100.0% ------------------------------------------------------------------------------------------ extract-alt [40] 33.0% best-alt [266] 67.0% [274] 600(0.2%) 0(0.0%) loop ...es/herbie/alt-testing/src/common.rkt:153:2 composed [281] 100.0% ------------------------------------------------------------------------------------------ ??? [265] 100.0% [275] 408(0.1%) 208(0.1%) get-blame-party-info ...ate/arrow-common.rkt:136:0 show-blame-positive [284] 49.0% ------------------------------------------------------------------------------------------ ??? [260] 50.0% table-ref [131] 50.0% [276] 404(0.1%) 404(0.1%) dict? ...ollects/racket/private/generic.rkt:146:11 ------------------------------------------------------------------------------------------ ??? [267] 100.0% [277] 206(0.1%) 206(0.1%) ??? ...ects/racket/contract/private/list.rkt:163:5 ------------------------------------------------------------------------------------------ bf [264] 24.4% bfmul [269] 75.6% [278] 2668(0.9%) 2668(0.9%) new-mpfr ...b/math/private/bigfloat/mpfr.rkt:348:0 ------------------------------------------------------------------------------------------ for-loop [80] 15.6% return/no-unsupplied [270] 84.4% [279] 2578(0.8%) 2578(0.8%) filter ...5/collects/racket/private/list.rkt:256:2 ------------------------------------------------------------------------------------------ bf [264] 20.2% bfmul [269] 79.8% [280] 1120(0.4%) 1120(0.4%) ??? /opt/racket-7.5/collects/ffi/unsafe.rkt:938:4 ------------------------------------------------------------------------------------------ f67 [172] 39.9% loop [274] 60.1% [281] 998(0.3%) 0(0.0%) composed ...ollects/racket/private/list.rkt:321:16 errors [158] 60.1% f67 [172] 39.9% ------------------------------------------------------------------------------------------ bigfloat-hash [273] 100.0% [282] 734(0.2%) 734(0.2%) bfcanonicalize .../private/bigfloat/mpfr.rkt:158:0 ------------------------------------------------------------------------------------------ contract? [272] 100.0% [283] 620(0.2%) 620(0.2%) coerce-contract/f ...ntract/private/guts.rkt:372:0 ------------------------------------------------------------------------------------------ get-blame-party-info [275] 100.0% [284] 200(0.1%) 200(0.1%) show-blame-positive ...act/private/blame.rkt:341:0 ------------------------------------------------------------------------------------------