Profiling results ----------------- Total cpu time observed: 309438ms (out of 310044ms) Number of samples taken: 940 (once every 329ms) (Hiding functions with self<1.0% and local<2.0%: 15 of 298 hidden) =========================================================================================== Caller Idx Total Self Name+src Local% ms(pct) ms(pct) Callee =========================================================================================== ??? [67] 100.0% [1] 309438(100.0%) 0(0.0%) profile-thunk16 ...e/pkgs/profile-lib/main.rkt:9:0 run [18] 100.0% ------------------------------------------------------------------------------------------- ??? [67] 100.0% [2] 302520(97.8%) 0(0.0%) run-improve41 ...lt-testing/src/mainloop.rkt:225:0 for-loop [19] 92.4% get-final-combination [21] 7.3% setup-prog!32 [31] 0.2% setup-alt-simplified [36] 0.1% ------------------------------------------------------------------------------------------- simplify-alt [47] 0.1% ??? [67] 99.9% [3] 229256(74.1%) 300(0.1%) unpack24 ...alt-testing/src/core/simplify.rkt:43:0 for-loop [20] 52.2% ??? [39] 47.4% *simplify-rules* [35] 0.3% ------------------------------------------------------------------------------------------- ??? [257] 100.0% [4] 18328(5.9%) 0(0.0%) approximate9 ...t-testing/src/core/taylor.rkt:12:0 loop [22] 84.2% for-loop [29] 10.5% taylor [44] 3.6% taylor-quotient [58] 1.6% ------------------------------------------------------------------------------------------- simplify [130] 5.0% parse-loop14 [204] 14.9% for-loop [211] 20.8% map [197] 59.3% [5] 6464(2.1%) 0(0.0%) make-multiplication-node .../core/reduce.rkt:230:0 make-multiplication-subnode [23] 100.0% ------------------------------------------------------------------------------------------- hash-ref! [117] 100.0% [6] 4892(1.6%) 0(0.0%) ??? ...rbie/alt-testing/src/core/taylor.rkt:295:23 for-loop [24] 100.0% ------------------------------------------------------------------------------------------- hash-ref! [117] 100.0% [7] 4242(1.4%) 0(0.0%) ??? ...rbie/alt-testing/src/core/taylor.rkt:285:26 for-loop [25] 100.0% ------------------------------------------------------------------------------------------- hash-ref! [117] 100.0% [8] 3558(1.1%) 0(0.0%) ??? ...rbie/alt-testing/src/core/taylor.rkt:392:23 for-loop [26] 100.0% ------------------------------------------------------------------------------------------- map [197] 100.0% [9] 2946(1.0%) 0(0.0%) simplify-node ...-testing/src/core/reduce.rkt:50:0 append-map [43] 56.8% gather-multiplicative-terms [32] 21.8% gather-additive-terms6 [34] 21.4% ------------------------------------------------------------------------------------------- copying-mergesort [245] 100.0% [10] 2658(0.9%) 0(0.0%) jloop ...5/collects/racket/private/sort.rkt:120:23 ??? [255] 87.4% ??? [257] 12.6% ------------------------------------------------------------------------------------------- hash-ref! [117] 100.0% [11] 2254(0.7%) 0(0.0%) ??? ...rbie/alt-testing/src/core/taylor.rkt:483:23 for-loop [28] 100.0% ------------------------------------------------------------------------------------------- eval4 [203] 15.2% loop [238] 16.9% for-loop [258] 67.9% [12] 1968(0.6%) 0(0.0%) syntax-e (unknown source) syntax-e/no-taint [27] 100.0% ------------------------------------------------------------------------------------------- for-loop [258] 100.0% [13] 1258(0.4%) 0(0.0%) expand-implicit (unknown source) resolve+shift28 [252] 76.3% binding-lookup52 [37] 23.7% ------------------------------------------------------------------------------------------- f190 [188] 100.0% [14] 1204(0.4%) 0(0.0%) for-loop ...e/alt-testing/src/type-check.rkt:62:26 expression->type [92] 87.5% f190 [188] 12.5% ------------------------------------------------------------------------------------------- taylor [44] 100.0% [15] 998(0.3%) 0(0.0%) taylor-invert ...testing/src/core/taylor.rkt:312:0 simplify [130] 66.3% first-nonzero-exp [33] 33.7% ------------------------------------------------------------------------------------------- for-loop [258] 100.0% [16] 690(0.2%) 0(0.0%) dispatch-variable (unknown source) substitute-variable6 [30] 100.0% ------------------------------------------------------------------------------------------- append-map [43] 100.0% [17] 600(0.2%) 0(0.0%) free-variables ...t-testing/src/programs.rkt:102:0 variable? [107] 50.3% ??? [148] 49.7% ------------------------------------------------------------------------------------------- profile-thunk16 [1] 100.0% [18] 309438(100.0%) 0(0.0%) run ...et-7.5/share/pkgs/profile-lib/main.rkt:39:2 ??? [67] 100.0% ------------------------------------------------------------------------------------------- run-improve41 [2] 100.0% [19] 279580(90.4%) 0(0.0%) for-loop ...ie/alt-testing/src/mainloop.rkt:240:10 run-iter! [38] 100.0% ------------------------------------------------------------------------------------------- unpack24 [3] 100.0% [20] 119586(38.6%) 0(0.0%) for-loop ...lt-testing/src/core/simplify.rkt:66:12 ??? [39] 100.0% ------------------------------------------------------------------------------------------- run-improve41 [2] 100.0% [21] 21954(7.1%) 0(0.0%) get-final-combination ...ng/src/mainloop.rkt:255:0 split-table [40] 98.5% extract-alt [46] 1.5% ------------------------------------------------------------------------------------------- approximate9 [4] 100.0% [22] 15434(5.0%) 0(0.0%) loop ...erbie/alt-testing/src/core/taylor.rkt:86:4 ??? [257] 98.0% ------------------------------------------------------------------------------------------- make-multiplication-node [5] 100.0% [23] 6464(2.1%) 0(0.0%) make-multiplication-subnode ...re/reduce.rkt:240:0 for-loop [41] 89.0% group-by61 [45] 11.0% ------------------------------------------------------------------------------------------- ??? [6] 100.0% [24] 4892(1.6%) 0(0.0%) for-loop ...alt-testing/src/core/taylor.rkt:298:27 hash-ref! [117] 100.0% ------------------------------------------------------------------------------------------- ??? [7] 100.0% [25] 4242(1.4%) 0(0.0%) for-loop ...alt-testing/src/core/taylor.rkt:285:52 ??? [42] 71.7% hash-ref! [117] 28.3% ------------------------------------------------------------------------------------------- ??? [8] 100.0% [26] 3558(1.1%) 0(0.0%) for-loop ...alt-testing/src/core/taylor.rkt:396:33 hash-ref! [117] 100.0% ------------------------------------------------------------------------------------------- gf [246] 8.5% expand-id-application-form17 [247] 35.8% syntax-e [12] 55.7% [27] 3532(1.1%) 0(0.0%) syntax-e/no-taint (unknown source) loop [238] 100.0% ------------------------------------------------------------------------------------------- ??? [11] 100.0% [28] 2254(0.7%) 0(0.0%) for-loop ...alt-testing/src/core/taylor.rkt:487:35 parse-loop14 [204] 100.0% ------------------------------------------------------------------------------------------- approximate9 [4] 100.0% [29] 1930(0.6%) 0(0.0%) for-loop .../alt-testing/src/core/taylor.rkt:29:18 taylor [44] 100.0% ------------------------------------------------------------------------------------------- dispatch-variable [16] 100.0% [30] 690(0.2%) 326(0.1%) substitute-variable6 (unknown source) datum->syntax6 [202] 52.8% ------------------------------------------------------------------------------------------- run-improve41 [2] 100.0% [31] 660(0.2%) 0(0.0%) setup-prog!32 ...alt-testing/src/mainloop.rkt:72:0 prepare-points [80] 100.0% ------------------------------------------------------------------------------------------- simplify-node [9] 100.0% [32] 642(0.2%) 642(0.2%) gather-multiplicative-terms ...re/reduce.rkt:116:0 ------------------------------------------------------------------------------------------- taylor-quotient [58] 47.2% taylor-invert [15] 52.8% [33] 636(0.2%) 0(0.0%) first-nonzero-exp ...ing/src/core/taylor.rkt:260:0 simplify [130] 52.8% hash-ref! [117] 47.2% ------------------------------------------------------------------------------------------- simplify-node [9] 100.0% [34] 630(0.2%) 0(0.0%) gather-additive-terms6 ...src/core/reduce.rkt:72:0 append-map [43] 100.0% ------------------------------------------------------------------------------------------- unpack24 [3] 100.0% [35] 628(0.2%) 0(0.0%) *simplify-rules* ...ing/src/syntax/rules.rkt:570:0 for-loop [111] 100.0% ------------------------------------------------------------------------------------------- run-improve41 [2] 100.0% [36] 326(0.1%) 0(0.0%) setup-alt-simplified ...-testing/src/glue.rkt:49:0 simplify-alt [47] 100.0% ------------------------------------------------------------------------------------------- expand-implicit [13] 100.0% [37] 298(0.1%) 298(0.1%) binding-lookup52 (unknown source) ------------------------------------------------------------------------------------------- for-loop [19] 100.0% [38] 279580(90.4%) 0(0.0%) run-iter! ...ie/alt-testing/src/mainloop.rkt:206:0 simplify! [48] 81.9% finalize-iter! [50] 7.4% gen-series! [51] 6.7% choose-best-alt! [54] 1.9% gen-rewrites! [55] 1.8% localize-error [57] 0.4% ------------------------------------------------------------------------------------------- unpack24 [3] 47.6% for-loop [20] 52.4% [39] 228328(73.8%) 330(0.1%) ??? ...rbie/alt-testing/src/core/simplify.rkt:77:0 iterate-egraph!13 [49] 91.3% loop [52] 7.1% mk-egraph [56] 1.5% ------------------------------------------------------------------------------------------- get-final-combination [21] 100.0% [40] 21620(7.0%) 0(0.0%) split-table ...rbie/alt-testing/src/glue.rkt:162:0 f190 [188] 100.0% ------------------------------------------------------------------------------------------- make-multiplication-subnode [23] 100.0% [41] 5750(1.9%) 0(0.0%) for-loop .../alt-testing/src/core/reduce.rkt:242:3 mterm->expr [53] 94.7% compose [59] 5.3% ------------------------------------------------------------------------------------------- for-loop [25] 100.0% [42] 3208(1.0%) 0(0.0%) ??? ...rbie/alt-testing/src/core/taylor.rkt:288:19 hash-ref! [117] 100.0% ------------------------------------------------------------------------------------------- f190 [188] 20.7% gather-additive-terms6 [34] 21.7% simplify-node [9] 57.6% [43] 2904(0.9%) 0(0.0%) append-map ...t-7.5/collects/racket/list.rkt:586:2 parse-loop14 [204] 79.3% f190 [188] 15.1% free-variables [17] 5.5% ------------------------------------------------------------------------------------------- approximate9 [4] 5.1% map [197] 13.8% for-loop [29] 24.5% taylor [44] 56.6% [44] 2596(0.8%) 334(0.1%) taylor ...ie/alt-testing/src/core/taylor.rkt:163:0 taylor [44] 56.6% map [197] 13.8% taylor-quotient [58] 11.6% taylor-invert [15] 9.4% loop [207] 3.5% debug-print [142] 2.6% ------------------------------------------------------------------------------------------- make-multiplication-subnode [23] 100.0% [45] 714(0.2%) 714(0.2%) group-by61 ...t-7.5/collects/racket/list.rkt:771:0 ------------------------------------------------------------------------------------------- get-final-combination [21] 100.0% [46] 334(0.1%) 0(0.0%) extract-alt ...erbie/alt-testing/src/glue.rkt:55:0 loop [274] 100.0% ------------------------------------------------------------------------------------------- setup-alt-simplified [36] 100.0% [47] 326(0.1%) 0(0.0%) simplify-alt ...rbie/alt-testing/src/glue.rkt:76:0 unpack24 [3] 100.0% ------------------------------------------------------------------------------------------- run-iter! [38] 100.0% [48] 228930(74.0%) 0(0.0%) simplify! ...ie/alt-testing/src/mainloop.rkt:146:0 for-loop [60] 100.0% ------------------------------------------------------------------------------------------- ??? [39] 100.0% [49] 208362(67.3%) 628(0.2%) iterate-egraph!13 ...g/src/core/simplify.rkt:105:0 one-iter [61] 97.5% map-enodes [65] 2.0% debug-print [142] 0.2% ------------------------------------------------------------------------------------------- run-iter! [38] 100.0% [50] 20712(6.7%) 0(0.0%) finalize-iter! ...t-testing/src/mainloop.rkt:160:0 ??? [148] 100.0% ------------------------------------------------------------------------------------------- run-iter! [38] 100.0% [51] 18628(6.0%) 0(0.0%) gen-series! .../alt-testing/src/mainloop.rkt:120:0 for-loop [62] 100.0% ------------------------------------------------------------------------------------------- ??? [39] 100.0% [52] 16290(5.3%) 0(0.0%) loop ...ie/alt-testing/src/core/simplify.rkt:237:2 for-loop [63] 100.0% ------------------------------------------------------------------------------------------- for-loop [41] 100.0% [53] 5448(1.8%) 0(0.0%) mterm->expr ...t-testing/src/core/reduce.rkt:270:0 f190 [188] 100.0% ------------------------------------------------------------------------------------------- run-iter! [38] 100.0% [54] 5184(1.7%) 0(0.0%) choose-best-alt! ...testing/src/mainloop.rkt:106:0 ??? [148] 100.0% ------------------------------------------------------------------------------------------- run-iter! [38] 100.0% [55] 5118(1.7%) 0(0.0%) gen-rewrites! ...lt-testing/src/mainloop.rkt:133:0 for-loop [64] 100.0% ------------------------------------------------------------------------------------------- ??? [39] 100.0% [56] 3346(1.1%) 0(0.0%) mk-egraph ...alt-testing/src/core/egraph.rkt:131:0 mk-enode-rec! [66] 70.2% mk-enode! [116] 29.8% ------------------------------------------------------------------------------------------- run-iter! [38] 100.0% [57] 1008(0.3%) 0(0.0%) localize-error ...sting/src/core/localize.rkt:47:0 hash-ref! [117] 100.0% ------------------------------------------------------------------------------------------- approximate9 [4] 49.8% taylor [44] 50.2% [58] 598(0.2%) 0(0.0%) taylor-quotient ...sting/src/core/taylor.rkt:328:0 first-nonzero-exp [33] 50.2% simplify [130] 49.8% ------------------------------------------------------------------------------------------- for-loop [41] 100.0% [59] 302(0.1%) 302(0.1%) compose ...collects/racket/private/list.rkt:385:12 ------------------------------------------------------------------------------------------- simplify! [48] 100.0% [60] 228930(74.0%) 0(0.0%) for-loop ...bie/alt-testing/src/mainloop.rkt:150:6 ??? [67] 100.0% ------------------------------------------------------------------------------------------- iterate-egraph!13 [49] 100.0% [61] 203186(65.7%) 3712(1.2%) one-iter ...lt-testing/src/core/simplify.rkt:116:0 for-loop [68] 61.6% for-loop [69] 36.3% ------------------------------------------------------------------------------------------- gen-series! [51] 100.0% [62] 18628(6.0%) 0(0.0%) for-loop ...bie/alt-testing/src/mainloop.rkt:126:7 taylor-alt [70] 100.0% ------------------------------------------------------------------------------------------- loop [52] 100.0% [63] 16290(5.3%) 658(0.2%) for-loop ...t-testing/src/core/simplify.rkt:230:29 argmin [71] 57.8% loop [73] 28.4% for-loop [75] 9.8% ------------------------------------------------------------------------------------------- gen-rewrites! [55] 100.0% [64] 5118(1.7%) 0(0.0%) for-loop ...ie/alt-testing/src/mainloop.rkt:138:11 ??? [72] 100.0% ------------------------------------------------------------------------------------------- iterate-egraph!13 [49] 100.0% [65] 4216(1.4%) 0(0.0%) map-enodes ...lt-testing/src/core/egraph.rkt:140:0 loop [207] 77.2% set-precompute! [74] 22.8% ------------------------------------------------------------------------------------------- mk-enode-rec! [66] 39.2% mk-egraph [56] 60.8% [66] 2348(0.8%) 0(0.0%) mk-enode-rec! ...testing/src/core/egraph.rkt:122:0 mk-enode! [116] 60.8% mk-enode-rec! [66] 39.2% ------------------------------------------------------------------------------------------- for-loop [60] 24.7% run [18] 37.7% [67] 309438(100.0%) 0(0.0%) ??? ...lects/racket/private/more-scheme.rkt:261:28 profile-thunk16 [1] 37.7% run-improve41 [2] 36.6% unpack24 [3] 24.7% prepare-points [80] 1.1% ------------------------------------------------------------------------------------------- one-iter [61] 100.0% [68] 125124(40.4%) 1254(0.4%) for-loop ...lt-testing/src/core/simplify.rkt:166:2 for-loop [76] 84.4% match-e [77] 13.6% reduce-to-single! [85] 0.7% update-leader! [101] 0.3% ------------------------------------------------------------------------------------------- for-loop [69] 48.7% one-iter [61] 51.3% [69] 73682(23.8%) 12214(3.9%) for-loop ...t-testing/src/core/simplify.rkt:126:12 for-loop [69] 48.7% match-e [77] 41.5% ??? [122] 0.2% ------------------------------------------------------------------------------------------- for-loop [62] 100.0% [70] 18628(6.0%) 0(0.0%) taylor-alt ...erbie/alt-testing/src/glue.rkt:134:0 for-loop [78] 100.0% ------------------------------------------------------------------------------------------- for-loop [63] 100.0% [71] 9412(3.0%) 320(0.1%) argmin ...acket-7.5/collects/racket/list.rkt:765:0 for-loop [79] 89.6% expression-cost [83] 7.0% ------------------------------------------------------------------------------------------- for-loop [64] 100.0% [72] 5118(1.7%) 0(0.0%) ??? ...herbie/alt-testing/src/alternative.rkt:88:0 rewriter [81] 100.0% ------------------------------------------------------------------------------------------- for-loop [63] 100.0% [73] 4622(1.5%) 0(0.0%) loop .../racket-7.5/collects/racket/list.rkt:751:4 for-loop [79] 92.8% expression-cost [83] 7.2% ------------------------------------------------------------------------------------------- map-enodes [65] 22.8% loop [207] 77.2% [74] 4216(1.4%) 0(0.0%) set-precompute! ...ing/src/core/simplify.rkt:193:0 for-loop [82] 100.0% ------------------------------------------------------------------------------------------- for-loop [63] 100.0% [75] 1598(0.5%) 618(0.2%) for-loop ...t-testing/src/core/simplify.rkt:217:13 for-loop [84] 61.3% ------------------------------------------------------------------------------------------- for-loop [68] 100.0% [76] 105556(34.1%) 662(0.2%) for-loop ...t-testing/src/core/simplify.rkt:148:10 mk-enode! [116] 33.8% substitute-e [87] 28.4% merge-egraph-nodes! [88] 17.7% loop! [216] 15.1% list-member? [90] 4.3% ------------------------------------------------------------------------------------------- for-loop [68] 13.7% for-loop [99] 22.0% for-loop [69] 64.3% [77] 78184(25.3%) 15954(5.2%) match-e ...ie/alt-testing/src/core/ematch.rkt:46:0 for-loop [86] 73.1% ??? [148] 3.8% variable? [107] 1.8% make-sequence [121] 1.2% custom-in-set [135] 1.1% ------------------------------------------------------------------------------------------- taylor-alt [70] 100.0% [78] 18628(6.0%) 0(0.0%) for-loop .../herbie/alt-testing/src/glue.rkt:139:6 ??? [257] 100.0% ------------------------------------------------------------------------------------------- loop [73] 33.7% argmin [71] 66.3% [79] 12726(4.1%) 1016(0.3%) for-loop ...bie/alt-testing/src/programs.rkt:210:2 table-ref [150] 68.9% ...sting/src/common.rkt:47:2 [151] 23.1% ------------------------------------------------------------------------------------------- setup-prog!32 [31] 8.7% ??? [67] 91.3% [80] 7578(2.4%) 0(0.0%) prepare-points ...alt-testing/src/points.rkt:214:0 loop [91] 40.1% loop [108] 31.9% make-exacts* [109] 23.7% for-loop [97] 4.3% ------------------------------------------------------------------------------------------- ??? [72] 38.5% matcher [105] 61.5% [81] 5118(1.7%) 660(0.2%) rewriter ...alt-testing/src/core/matcher.rkt:131:2 for-loop [89] 74.3% f190 [188] 9.2% *rules* [93] 7.4% expression->type [92] 5.8% ------------------------------------------------------------------------------------------- set-precompute! [74] 100.0% [82] 4216(1.4%) 1598(0.5%) for-loop ...lt-testing/src/core/simplify.rkt:195:2 temp85_0 [189] 31.6% eval-const-expr [95] 15.6% do-curry [102] 7.9% setfindf [98] 7.0% ------------------------------------------------------------------------------------------- loop [73] 33.6% argmin [71] 66.4% [83] 988(0.3%) 324(0.1%) expression-cost ...-testing/src/programs.rkt:209:0 compile [94] 67.2% ------------------------------------------------------------------------------------------- for-loop [75] 100.0% [84] 980(0.3%) 980(0.3%) for-loop ...t-testing/src/core/simplify.rkt:220:37 ------------------------------------------------------------------------------------------- for-loop [68] 100.0% [85] 936(0.3%) 0(0.0%) reduce-to-single! ...ing/src/core/egraph.rkt:325:0 for-loop [96] 64.1% make-sequence [121] 35.9% ------------------------------------------------------------------------------------------- match-e [77] 100.0% [86] 61894(20.0%) 27104(8.8%) for-loop .../alt-testing/src/core/ematch.rkt:59:11 for-loop [99] 40.2% do-curry [102] 9.5% procedure-reduce-keyword-arity-mask [104] 6.6% list-cartesian-product [106] 5.2% loop [207] 1.5% filter [280] 0.5% ------------------------------------------------------------------------------------------- for-loop [100] 3.2% for-loop [76] 96.8% [87] 29952(9.7%) 334(0.1%) substitute-e ...t-testing/src/core/ematch.rkt:71:0 for-loop [100] 97.9% ??? [148] 0.9% variable? [107] 0.7% ------------------------------------------------------------------------------------------- for-loop [103] 9.3% for-loop [76] 90.7% [88] 18686(6.0%) 598(0.2%) merge-egraph-nodes! ...g/src/core/egraph.rkt:153:0 update-leader! [101] 62.2% for-loop [103] 30.1% enode-merge! [113] 2.1% make-sequence [121] 1.6% update-en-expr [222] 0.8% ------------------------------------------------------------------------------------------- rewriter [81] 100.0% [89] 5118(1.7%) 0(0.0%) for-loop ...lt-testing/src/core/matcher.rkt:134:10 matcher [105] 100.0% ------------------------------------------------------------------------------------------- for-loop [76] 100.0% [90] 4582(1.5%) 0(0.0%) list-member? ...llects/racket/private/set.rkt:24:0 loop [238] 71.4% member [112] 28.6% ------------------------------------------------------------------------------------------- prepare-points [80] 100.0% [91] 3038(1.0%) 0(0.0%) loop ...es/herbie/alt-testing/src/points.rkt:158:2 loop [108] 54.8% make-exacts* [109] 45.2% ------------------------------------------------------------------------------------------- for-loop [110] 19.8% loop [199] 22.4% for-loop [14] 28.8% rewriter [81] 29.0% [92] 2786(0.9%) 602(0.2%) expression->type ...esting/src/type-check.rkt:45:0 for-loop [110] 78.4% ------------------------------------------------------------------------------------------- rewriter [81] 100.0% [93] 1282(0.4%) 0(0.0%) *rules* .../alt-testing/src/syntax/rules.rkt:565:0 for-loop [111] 100.0% ------------------------------------------------------------------------------------------- expression-cost [83] 100.0% [94] 664(0.2%) 0(0.0%) compile ...rbie/alt-testing/src/programs.rkt:186:0 hash-ref! [117] 100.0% ------------------------------------------------------------------------------------------- for-loop [82] 100.0% [95] 656(0.2%) 0(0.0%) eval-const-expr ...-testing/src/programs.rkt:168:0 unpack245 [193] 54.3% keyword-procedure-extract/method [115] 45.7% ------------------------------------------------------------------------------------------- reduce-to-single! [85] 100.0% [96] 600(0.2%) 600(0.2%) for-loop .../alt-testing/src/core/egraph.rkt:326:8 ------------------------------------------------------------------------------------------- prepare-points [80] 100.0% [97] 324(0.1%) 0(0.0%) for-loop ...rbie/alt-testing/src/points.rkt:255:26 ??? [114] 100.0% ------------------------------------------------------------------------------------------- for-loop [82] 100.0% [98] 296(0.1%) 0(0.0%) setfindf ...erbie/alt-testing/src/common.rkt:186:0 make-sequence [121] 100.0% ------------------------------------------------------------------------------------------- for-loop [86] 100.0% [99] 35620(11.5%) 1954(0.6%) for-loop .../alt-testing/src/core/ematch.rkt:65:37 match-e [77] 91.8% ??? [122] 3.2% ------------------------------------------------------------------------------------------- substitute-e [87] 100.0% [100] 29952(9.7%) 300(0.1%) for-loop .../alt-testing/src/core/ematch.rkt:80:24 mk-enode! [116] 93.7% substitute-e [87] 5.3% ------------------------------------------------------------------------------------------- for-loop [68] 2.8% merge-egraph-nodes! [88] 97.2% [101] 12716(4.1%) 300(0.1%) update-leader! ...esting/src/core/egraph.rkt:218:0 for-loop [118] 56.4% for-loop [120] 28.3% custom-set-union! [123] 7.5% hash-ref! [117] 2.8% make-sequence [121] 2.6% ------------------------------------------------------------------------------------------- for-loop [82] 4.0% for-loop [86] 96.0% [102] 8248(2.7%) 8248(2.7%) do-curry ...-7.5/collects/racket/function.rkt:71:2 ------------------------------------------------------------------------------------------- merge-egraph-nodes! [88] 100.0% [103] 6400(2.1%) 0(0.0%) for-loop ...alt-testing/src/core/egraph.rkt:201:10 loop! [216] 60.8% merge-egraph-nodes! [88] 39.2% ------------------------------------------------------------------------------------------- for-loop [86] 100.0% [104] 5600(1.8%) 5600(1.8%) procedure-reduce-keyword-arity-mask ....rkt:1597:4 ------------------------------------------------------------------------------------------- for-loop [119] 46.8% for-loop [89] 53.2% [105] 5118(1.7%) 326(0.1%) matcher .../alt-testing/src/core/matcher.rkt:167:2 for-loop [119] 46.8% rewriter [81] 43.6% for-loop [127] 3.2% ------------------------------------------------------------------------------------------- list-cartesian-product [106] 24.1% for-loop [86] 75.9% [106] 4514(1.5%) 3572(1.2%) list-cartesian-product ...src/core/ematch.rkt:20:0 list-cartesian-product [106] 24.1% for-loop [124] 13.8% ------------------------------------------------------------------------------------------- free-variables [17] 6.8% substitute-e [87] 14.3% match-e [77] 78.9% [107] 4436(1.4%) 0(0.0%) variable? ...t-testing/src/syntax/syntax.rkt:665:0 ??? [148] 100.0% ------------------------------------------------------------------------------------------- loop [91] 40.8% prepare-points [80] 59.2% [108] 4082(1.3%) 0(0.0%) loop ...es/herbie/alt-testing/src/points.rkt:141:4 loop [207] 100.0% ------------------------------------------------------------------------------------------- loop [91] 43.3% prepare-points [80] 56.7% [109] 3172(1.0%) 0(0.0%) make-exacts* ...e/alt-testing/src/points.rkt:138:0 loop [207] 89.2% eval-prog [181] 10.8% ------------------------------------------------------------------------------------------- expression->type [92] 100.0% [110] 2184(0.7%) 0(0.0%) for-loop ...ie/alt-testing/src/type-check.rkt:52:5 f190 [188] 74.8% expression->type [92] 25.2% ------------------------------------------------------------------------------------------- *simplify-rules* [35] 32.9% *rules* [93] 67.1% [111] 1910(0.6%) 958(0.3%) for-loop ...herbie/alt-testing/src/common.rkt:99:9 ormap [125] 34.2% flag-set? [136] 15.6% ------------------------------------------------------------------------------------------- list-member? [90] 100.0% [112] 1312(0.4%) 1312(0.4%) member (unknown source) ------------------------------------------------------------------------------------------- merge-egraph-nodes! [88] 100.0% [113] 596(0.2%) 0(0.0%) enode-merge! ...t-testing/src/core/enode.rkt:129:0 adopt-enode! [126] 100.0% ------------------------------------------------------------------------------------------- for-loop [97] 100.0% [114] 324(0.1%) 0(0.0%) ??? ...ies/herbie/alt-testing/src/points.rkt:230:7 for-loop [128] 100.0% ------------------------------------------------------------------------------------------- eval-const-expr [95] 100.0% [115] 300(0.1%) 300(0.1%) keyword-procedure-extract/method .../kw.rkt:1493:2 ------------------------------------------------------------------------------------------- mk-egraph [56] 1.5% mk-enode-rec! [66] 3.5% for-loop [100] 41.8% for-loop [76] 53.2% [116] 67106(21.7%) 1004(0.3%) mk-enode! ...alt-testing/src/core/egraph.rkt:102:0 new-enode [129] 94.6% for-loop [134] 2.8% hash-has-key? [156] 1.1% ------------------------------------------------------------------------------------------- for-loop [25] 1.5% first-nonzero-exp [33] 1.7% compile [94] 1.9% update-leader! [101] 2.1% loop [207] 2.4% for-loop [210] 3.3% localize-error [57] 3.4% for-loop [26] 4.4% ??? [42] 4.5% ??? [133] 4.8% for-loop [24] 6.3% ??? [131] 29.7% ??? [257] 31.6% [117] 17466(5.6%) 1334(0.4%) hash-ref! .../racket/private/more-scheme.rkt:376:2 simplify [130] 33.3% ??? [131] 29.7% ??? [6] 6.3% ??? [7] 6.0% parse-loop14 [204] 5.8% ??? [133] 4.8% ??? [8] 4.4% ??? [11] 3.3% ------------------------------------------------------------------------------------------- update-leader! [101] 100.0% [118] 7172(2.3%) 304(0.1%) for-loop .../alt-testing/src/core/egraph.rkt:223:6 for-loop [132] 95.8% ------------------------------------------------------------------------------------------- matcher [105] 100.0% [119] 4792(1.5%) 0(0.0%) for-loop ...lt-testing/src/core/matcher.rkt:183:21 matcher [105] 100.0% ------------------------------------------------------------------------------------------- update-leader! [101] 100.0% [120] 3594(1.2%) 2592(0.8%) for-loop .../alt-testing/src/core/egraph.rkt:233:6 update-en-expr [222] 27.9% ------------------------------------------------------------------------------------------- setfindf [98] 13.4% merge-egraph-nodes! [88] 13.4% update-leader! [101] 15.0% reduce-to-single! [85] 15.2% match-e [77] 43.1% [121] 2216(0.7%) 2216(0.7%) make-sequence ...ects/racket/private/for.rkt:533:2 ------------------------------------------------------------------------------------------- for-loop [69] 18.7% for-loop [99] 81.3% [122] 1604(0.5%) 910(0.3%) ??? ...herbie/alt-testing/src/core/ematch.rkt:50:5 for-loop [137] 22.4% custom-in-set [135] 20.8% ------------------------------------------------------------------------------------------- update-leader! [101] 100.0% [123] 956(0.3%) 624(0.2%) custom-set-union! ...t/private/set-types.rkt:245:0 for-loop [138] 34.7% ------------------------------------------------------------------------------------------- list-cartesian-product [106] 100.0% [124] 942(0.3%) 942(0.3%) for-loop ...e/alt-testing/src/core/ematch.rkt:24:8 ------------------------------------------------------------------------------------------- for-loop [111] 100.0% [125] 654(0.2%) 324(0.1%) ormap ....5/collects/racket/private/map.rkt:141:13 flag-set? [136] 50.5% ------------------------------------------------------------------------------------------- enode-merge! [113] 100.0% [126] 596(0.2%) 298(0.1%) adopt-enode! ...t-testing/src/core/enode.rkt:105:0 custom-set-union [219] 50.0% ------------------------------------------------------------------------------------------- matcher [105] 100.0% [127] 332(0.1%) 0(0.0%) for-loop ...alt-testing/src/core/matcher.rkt:159:6 pattern-substitute [139] 100.0% ------------------------------------------------------------------------------------------- ??? [114] 100.0% [128] 324(0.1%) 0(0.0%) for-loop ...erbie/alt-testing/src/points.rkt:231:9 ??? [257] 100.0% ------------------------------------------------------------------------------------------- mk-enode! [116] 100.0% [129] 63478(20.5%) 0(0.0%) new-enode ...e/alt-testing/src/core/enode.rkt:97:0 type-of-enode-expr [140] 99.0% set [223] 0.5% ------------------------------------------------------------------------------------------- taylor-quotient [58] 1.7% ??? [257] 1.7% first-nonzero-exp [33] 1.9% loop [207] 3.6% taylor-invert [15] 3.7% hash-ref! [117] 87.4% [130] 17660(5.7%) 332(0.1%) simplify ...e/alt-testing/src/core/reduce.rkt:16:0 f190 [188] 77.9% parse-loop14 [204] 13.1% debug-print [142] 1.9% make-multiplication-node [5] 1.8% debug7 [144] 1.7% ------------------------------------------------------------------------------------------- hash-ref! [117] 100.0% [131] 14798(4.8%) 0(0.0%) ??? ...erbie/alt-testing/src/core/taylor.rkt:44:15 hash-ref! [117] 100.0% ------------------------------------------------------------------------------------------- for-loop [118] 100.0% [132] 6868(2.2%) 0(0.0%) for-loop .../alt-testing/src/core/egraph.rkt:224:8 hash-update! [141] 100.0% ------------------------------------------------------------------------------------------- hash-ref! [117] 100.0% [133] 3942(1.3%) 0(0.0%) ??? ...rbie/alt-testing/src/core/taylor.rkt:338:33 hash-ref! [117] 100.0% ------------------------------------------------------------------------------------------- mk-enode! [116] 100.0% [134] 1908(0.6%) 1908(0.6%) for-loop ...alt-testing/src/core/egraph.rkt:114:10 ------------------------------------------------------------------------------------------- ??? [122] 24.6% match-e [77] 75.4% [135] 1358(0.4%) 1358(0.4%) custom-in-set ...acket/private/set-types.rkt:578:0 ------------------------------------------------------------------------------------------- for-loop [111] 47.5% ormap [125] 52.5% [136] 628(0.2%) 330(0.1%) flag-set? ...erbie/alt-testing/src/config.rkt:34:0 return/no-unsupplied [272] 47.5% ------------------------------------------------------------------------------------------- ??? [122] 100.0% [137] 360(0.1%) 360(0.1%) for-loop ...e/alt-testing/src/core/ematch.rkt:51:7 ------------------------------------------------------------------------------------------- custom-set-union! [123] 100.0% [138] 332(0.1%) 332(0.1%) for-loop ...cts/racket/private/set-types.rkt:253:4 ------------------------------------------------------------------------------------------- for-loop [143] 50.0% for-loop [127] 50.0% [139] 332(0.1%) 332(0.1%) pattern-substitute ...ng/src/core/matcher.rkt:73:0 for-loop [143] 50.0% ------------------------------------------------------------------------------------------- new-enode [129] 100.0% [140] 62820(20.3%) 644(0.2%) type-of-enode-expr ...ting/src/core/enode.rkt:68:0 get-sigs [145] 99.0% ------------------------------------------------------------------------------------------- for-loop [132] 100.0% [141] 6868(2.2%) 0(0.0%) hash-update! ...cket/private/more-scheme.rkt:365:4 ??? [146] 100.0% ------------------------------------------------------------------------------------------- taylor [44] 33.3% iterate-egraph!13 [49] 33.3% simplify [130] 33.3% [142] 996(0.3%) 332(0.1%) debug-print ...bie/alt-testing/src/debug.rkt:107:0 for-loop [147] 66.7% ------------------------------------------------------------------------------------------- pattern-substitute [139] 100.0% [143] 332(0.1%) 0(0.0%) for-loop ...alt-testing/src/core/matcher.rkt:81:10 pattern-substitute [139] 100.0% ------------------------------------------------------------------------------------------- simplify [130] 100.0% [144] 300(0.1%) 0(0.0%) debug7 ...s/herbie/alt-testing/src/debug.rkt:102:0 return/no-unsupplied [272] 100.0% ------------------------------------------------------------------------------------------- type-of-enode-expr [140] 100.0% [145] 62176(20.1%) 622(0.2%) get-sigs ...bie/alt-testing/src/type-check.rkt:5:0 ??? [149] 58.6% table-ref [150] 15.0% ...sting/src/common.rkt:47:2 [151] 9.1% ??? [148] 6.8% for-loop [152] 6.8% get/build-late-neg-projection [176] 2.1% ??? [177] 0.5% ------------------------------------------------------------------------------------------- hash-update! [141] 100.0% [146] 6868(2.2%) 0(0.0%) ??? ...rbie/alt-testing/src/core/egraph.rkt:226:24 for-loop [153] 100.0% ------------------------------------------------------------------------------------------- debug-print [142] 100.0% [147] 664(0.2%) 664(0.2%) for-loop ...herbie/alt-testing/src/debug.rkt:113:2 ------------------------------------------------------------------------------------------- free-variables [17] 0.7% ??? [265] 1.1% substitute-e [87] 1.5% f190 [188] 1.6% get-sigs [145] 10.1% variable? [107] 10.5% choose-best-alt! [54] 12.3% match-e [77] 13.7% finalize-iter! [50] 47.9% [148] 42308(13.7%) 8336(2.7%) ??? ...contract/private/arrow-val-first.rkt:486:18 for-loop [155] 47.9% hash-has-key? [156] 20.2% atab-pick-alt8 [158] 12.3% ------------------------------------------------------------------------------------------- f190 [188] 10.1% get-sigs [145] 89.9% [149] 40544(13.1%) 672(0.2%) ??? ...ects/racket/contract/private/hash.rkt:278:4 contract-pos/neg-doubling/proc [154] 98.3% ------------------------------------------------------------------------------------------- ??? [257] 8.4% f190 [188] 12.8% for-loop [79] 38.2% get-sigs [145] 40.6% [150] 22974(7.4%) 5818(1.9%) table-ref ...erbie/alt-testing/src/common.rkt:46:0 ??? [160] 70.4% ??? [162] 1.5% return/no-unsupplied [272] 1.4% ------------------------------------------------------------------------------------------- f190 [188] 5.6% ??? [257] 17.9% for-loop [79] 26.1% get-sigs [145] 50.4% [151] 11278(3.6%) 2978(1.0%) ...sting/src/common.rkt:47:2 ...e/arr-i.rkt:976:19 ??? [157] 49.3% ??? [159] 24.3% ------------------------------------------------------------------------------------------- for-loop [169] 16.8% f190 [188] 25.9% get-sigs [145] 57.3% [152] 7340(2.4%) 632(0.2%) for-loop ...racket/contract/private/hash.rkt:328:6 ??? [162] 87.3% ??? [179] 4.1% ------------------------------------------------------------------------------------------- ??? [146] 100.0% [153] 6868(2.2%) 4572(1.5%) for-loop ...alt-testing/src/core/egraph.rkt:227:26 update-en-expr [222] 33.4% ------------------------------------------------------------------------------------------- ??? [149] 100.0% [154] 39872(12.9%) 34298(11.1%) contract-pos/neg-doubling/proc .../guts.rkt:1005:0 ??? [163] 12.4% ------------------------------------------------------------------------------------------- ??? [148] 100.0% [155] 20712(6.7%) 0(0.0%) for-loop ...lt-testing/src/core/alt-table.rkt:53:2 atab-add-altn [161] 100.0% ------------------------------------------------------------------------------------------- mk-enode! [116] 7.4% ??? [148] 92.6% [156] 9718(3.1%) 2884(0.9%) hash-has-key? ...ket/private/more-scheme.rkt:371:2 ??? [160] 66.6% ??? [165] 3.7% ------------------------------------------------------------------------------------------- for-loop [172] 5.8% ??? [162] 15.0% ...sting/src/common.rkt:47:2 [151] 79.2% [157] 5558(1.8%) 678(0.2%) ??? ...ects/racket/contract/private/list.rkt:370:4 ??? [162] 61.8% ??? [265] 17.9% ??? [177] 10.9% ------------------------------------------------------------------------------------------- ??? [148] 100.0% [158] 5184(1.7%) 0(0.0%) atab-pick-alt8 ...ting/src/core/alt-table.rkt:64:0 point-best-alt [164] 61.7% ??? [257] 38.3% ------------------------------------------------------------------------------------------- ...sting/src/common.rkt:47:2 [151] 100.0% [159] 2742(0.9%) 1328(0.4%) ??? ...s/racket/contract/private/arr-i.rkt:1321:39 ??? [265] 13.3% ??? [166] 13.1% assoc-ref [167] 13.1% return/no-unsupplied [272] 12.1% ------------------------------------------------------------------------------------------- hash-has-key? [156] 28.6% table-ref [150] 71.4% [160] 22654(7.3%) 6222(2.0%) ??? ...ects/racket/contract/private/list.rkt:808:4 for-loop [169] 59.0% ??? [175] 12.1% successfully-got-the-right-kind-of-function [178] 1.5% ------------------------------------------------------------------------------------------- for-loop [155] 100.0% [161] 20712(6.7%) 0(0.0%) atab-add-altn ...ting/src/core/alt-table.rkt:239:0 best-and-tied-at-points [168] 95.5% override-at-pnts [173] 4.5% ------------------------------------------------------------------------------------------- table-ref [150] 2.9% ...higher-order.rkt:379:33 [263] 3.0% ??? [157] 39.3% for-loop [152] 54.8% [162] 11688(3.8%) 2616(0.8%) ??? ...cts/racket/contract/private/list.rkt:209:10 ??? [170] 49.1% for-loop [172] 14.3% ??? [157] 14.2% ------------------------------------------------------------------------------------------- contract-pos/neg-doubling/proc [154] 100.0% [163] 4948(1.6%) 0(0.0%) ??? ...ects/racket/contract/private/list.rkt:191:2 ??? [171] 100.0% ------------------------------------------------------------------------------------------- atab-pick-alt8 [158] 100.0% [164] 3200(1.0%) 0(0.0%) point-best-alt ...ting/src/core/alt-table.rkt:56:0 loop [207] 100.0% ------------------------------------------------------------------------------------------- hash-has-key? [156] 100.0% [165] 362(0.1%) 362(0.1%) ??? ...ects/racket/contract/private/hash.rkt:334:7 ------------------------------------------------------------------------------------------- ??? [159] 100.0% [166] 360(0.1%) 360(0.1%) ??? ...ects/racket/contract/private/prop.rkt:301:4 ------------------------------------------------------------------------------------------- ??? [159] 100.0% [167] 358(0.1%) 358(0.1%) assoc-ref ...collects/racket/private/dict.rkt:56:0 ------------------------------------------------------------------------------------------- atab-add-altn [161] 100.0% [168] 19778(6.4%) 0(0.0%) best-and-tied-at-points ...ore/alt-table.rkt:153:0 errors [174] 100.0% ------------------------------------------------------------------------------------------- ??? [160] 100.0% [169] 13356(4.3%) 7490(2.4%) for-loop ...acket/contract/private/list.rkt:814:12 ??? [175] 21.9% ??? [177] 10.5% for-loop [152] 9.3% successfully-got-the-right-kind-of-function [178] 2.2% ------------------------------------------------------------------------------------------- ??? [162] 100.0% [170] 5742(1.9%) 326(0.1%) ??? ...ects/racket/contract/private/list.rkt:757:7 ??? [265] 89.1% ??? [179] 5.3% ------------------------------------------------------------------------------------------- ??? [163] 100.0% [171] 4948(1.6%) 1264(0.4%) ??? ...ects/racket/contract/private/list.rkt:749:5 get/build-late-neg-projection [176] 74.5% ------------------------------------------------------------------------------------------- ??? [162] 100.0% [172] 1666(0.5%) 1020(0.3%) for-loop ...acket/contract/private/list.rkt:212:15 ??? [157] 38.8% ------------------------------------------------------------------------------------------- atab-add-altn [161] 100.0% [173] 934(0.3%) 0(0.0%) override-at-pnts ...g/src/core/alt-table.rkt:176:0 errors [174] 100.0% ------------------------------------------------------------------------------------------- override-at-pnts [173] 2.4% option-on-expr [215] 5.1% composed [279] 6.0% loop [207] 34.8% best-and-tied-at-points [168] 51.6% [174] 38356(12.4%) 332(0.1%) errors .../herbie/alt-testing/src/points.rkt:271:0 for-loop [180] 66.2% eval-prog [181] 32.1% ------------------------------------------------------------------------------------------- ??? [160] 48.4% for-loop [169] 51.6% [175] 5666(1.8%) 4602(1.5%) ??? ...private/unconstrained-domain-arrow.rkt:74:4 loop [185] 18.8% ------------------------------------------------------------------------------------------- f190 [188] 6.0% ??? [184] 6.2% get-sigs [145] 18.6% ??? [171] 69.1% [176] 5330(1.7%) 626(0.2%) get/build-late-neg-projection ...te/guts.rkt:827:0 ??? [182] 69.8% ??? [184] 18.4% ------------------------------------------------------------------------------------------- get-sigs [145] 13.0% ??? [157] 26.3% for-loop [169] 60.8% [177] 2314(0.7%) 358(0.1%) ??? ...ects/racket/contract/private/hash.rkt:287:9 check-hash/c [183] 84.5% ------------------------------------------------------------------------------------------- for-loop [169] 47.3% ??? [160] 52.7% [178] 634(0.2%) 334(0.1%) successfully-got-the-right-kind-of-function ...5:4 arity-checking-wrapper [187] 47.3% ------------------------------------------------------------------------------------------- ??? [170] 50.0% for-loop [152] 50.0% [179] 604(0.2%) 302(0.1%) ??? ...ects/racket/contract/private/prop.rkt:567:4 ??? [186] 50.0% ------------------------------------------------------------------------------------------- errors [174] 100.0% [180] 25398(8.2%) 2248(0.7%) for-loop ...erbie/alt-testing/src/points.rkt:274:4 ??? [255] 82.1% ??? [257] 5.3% ulp-difference [192] 3.8% ------------------------------------------------------------------------------------------- sindices->spoints [228] 2.2% make-exacts* [109] 2.5% point->alt [234] 7.1% errors [174] 88.3% [181] 13936(4.5%) 0(0.0%) eval-prog ...ie/alt-testing/src/programs.rkt:150:0 temp85_0 [189] 56.2% f190 [188] 35.0% unpack245 [193] 2.4% eval-one-top12 [212] 2.2% eval [196] 2.2% loop [238] 2.2% ------------------------------------------------------------------------------------------- get/build-late-neg-projection [176] 100.0% [182] 4056(1.3%) 334(0.1%) ??? ...cts/racket/contract/private/prop.rkt:376:12 build-compound-type-name [190] 91.8% ------------------------------------------------------------------------------------------- ??? [177] 100.0% [183] 1956(0.6%) 608(0.2%) check-hash/c ...ket/contract/private/hash.rkt:86:0 flat-contract? [191] 68.9% ------------------------------------------------------------------------------------------- get/build-late-neg-projection [176] 100.0% [184] 1314(0.4%) 648(0.2%) ??? ...ects/racket/contract/private/hash.rkt:272:2 get/build-late-neg-projection [176] 50.7% ------------------------------------------------------------------------------------------- loop [185] 42.1% ??? [175] 57.9% [185] 1064(0.3%) 1064(0.3%) loop ...ts/racket/contract/private/blame.rkt:320:2 loop [185] 42.1% ------------------------------------------------------------------------------------------- ??? [179] 100.0% [186] 302(0.1%) 0(0.0%) ??? ...lects/racket/contract/private/orc.rkt:83:14 ??? [194] 100.0% ------------------------------------------------------------------------------------------- successfully-got-the-right-kind-of-function [178]100.0% [187] 300(0.1%) 0(0.0%) arity-checking-wrapper ...w-higher-order.rkt:443:0 matches-arity-exactly? [195] 100.0% ------------------------------------------------------------------------------------------- for-loop [14] 0.1% composed [279] 0.5% append-map [43] 0.7% parse-loop14 [204] 1.3% loop [199] 1.3% loop [207] 1.3% for-loop [110] 2.9% mterm->expr [53] 3.4% rewriter [81] 3.7% eval-prog [181] 4.2% map [197] 10.0% simplify [130] 10.1% f190 [188] 10.5% split-table [40] 49.4% [188] 42060(13.6%) 964(0.3%) f190 .../collects/racket/match/compiler.rkt:507:40 loop [207] 43.4% map [197] 18.3% f190 [188] 10.5% option-on-expr [215] 5.9% ??? [149] 4.3% ??? [257] 4.2% table-ref [150] 3.5% for-loop [152] 2.1% loop [199] 1.7% append-map [43] 0.9% loop [238] 0.8% eval4 [203] 0.7% for-loop [14] 0.7% composed [279] 0.5% ...sting/src/common.rkt:47:2 [151] 0.4% ??? [148] 0.2% get/build-late-neg-projection [176] 0.2% ------------------------------------------------------------------------------------------- for-loop [82] 11.7% parse-loop14 [204] 19.9% eval-prog [181] 68.5% [189] 11430(3.7%) 0(0.0%) temp85_0 (unknown source) compile15 [198] 100.0% ------------------------------------------------------------------------------------------- contract-struct-name [200] 32.6% ??? [182] 67.4% [190] 3722(1.2%) 3398(1.1%) build-compound-type-name ...private/guts.rkt:537:0 contract-struct-name [200] 41.3% ------------------------------------------------------------------------------------------- check-hash/c [183] 100.0% [191] 1348(0.4%) 1348(0.4%) flat-contract? .../contract/private/guts.rkt:129:0 ------------------------------------------------------------------------------------------- for-loop [180] 100.0% [192] 974(0.3%) 636(0.2%) ulp-difference ...e/alt-testing/src/float.rkt:19:0 return/no-unsupplied [272] 34.7% ------------------------------------------------------------------------------------------- eval-prog [181] 48.3% eval-const-expr [95] 51.7% [193] 688(0.2%) 0(0.0%) unpack245 ...private/arrow-higher-order.rkt:387:44 maybe-cons-kwd [201] 100.0% ------------------------------------------------------------------------------------------- ??? [186] 100.0% [194] 302(0.1%) 302(0.1%) ??? ...ects/racket/contract/private/list.rkt:163:5 ------------------------------------------------------------------------------------------- arity-checking-wrapper [187] 100.0% [195] 300(0.1%) 300(0.1%) matches-arity-exactly? ...te/arrow-common.rkt:70:0 ------------------------------------------------------------------------------------------- eval-prog [181] 100.0% [196] 300(0.1%) 0(0.0%) eval (unknown source) datum->syntax6 [202] 100.0% ------------------------------------------------------------------------------------------- loop [207] 2.9% parse-loop14 [204] 4.4% taylor [44] 16.5% f190 [188] 76.2% [197] 11916(3.9%) 0(0.0%) map ...t-7.5/collects/racket/private/map.rkt:35:13 f190 [188] 42.7% parse-loop14 [204] 19.6% taylor [44] 16.5% simplify-node [9] 8.1% make-multiplication-node [5] 7.8% ??? [257] 2.9% loop [207] 1.9% ------------------------------------------------------------------------------------------- temp85_0 [189] 100.0% [198] 11430(3.7%) 0(0.0%) compile15 (unknown source) temp91_0 [205] 100.0% ------------------------------------------------------------------------------------------- f190 [188] 100.0% [199] 3482(1.1%) 0(0.0%) loop ...erbie/alt-testing/src/core/reduce.rkt:18:2 f190 [188] 82.1% expression->type [92] 17.9% ------------------------------------------------------------------------------------------- build-compound-type-name [190] 100.0% [200] 2754(0.9%) 324(0.1%) contract-struct-name ...ract/private/prop.rkt:98:0 build-compound-type-name [190] 88.2% ------------------------------------------------------------------------------------------- unpack245 [193] 100.0% [201] 688(0.2%) 332(0.1%) maybe-cons-kwd ...ate/arrow-higher-order.rkt:552:0 arrow-higher-order:lnp [206] 51.7% ------------------------------------------------------------------------------------------- eval [196] 45.2% substitute-variable6 [30] 54.8% [202] 664(0.2%) 364(0.1%) datum->syntax6 (unknown source) loop [238] 45.2% ------------------------------------------------------------------------------------------- f190 [188] 100.0% [203] 300(0.1%) 0(0.0%) eval4 (unknown source) syntax-e [12] 100.0% ------------------------------------------------------------------------------------------- loop [207] 1.9% hash-ref! [117] 8.5% parse-loop14 [204] 10.1% append-map [43] 11.3% simplify [130] 12.0% for-loop [28] 12.7% map [197] 43.6% [204] 11918(3.9%) 334(0.1%) parse-loop14 ...s/racket/match/compiler.rkt:418:15 loop [207] 17.6% map [197] 16.0% temp85_0 [189] 12.7% for-loop [210] 12.7% parse-loop14 [204] 10.1% f190 [188] 9.2% for-loop [211] 8.4% eval-one-top12 [212] 4.5% loop [213] 3.0% make-multiplication-node [5] 2.9% ------------------------------------------------------------------------------------------- compile15 [198] 100.0% [205] 11430(3.7%) 630(0.2%) temp91_0 (unknown source) temp118_0 [208] 70.8% compile-top9 [209] 20.8% loop [238] 2.9% ------------------------------------------------------------------------------------------- maybe-cons-kwd [201] 100.0% [206] 356(0.1%) 0(0.0%) arrow-higher-order:lnp ...w-higher-order.rkt:673:7 ??? [214] 100.0% ------------------------------------------------------------------------------------------- loop [108] 0.1% make-exacts* [109] 0.1% for-loop [86] 0.9% map [197] 1.2% taylor [44] 1.2% map-enodes [65] 1.7% parse-loop14 [204] 2.7% point-best-alt [164] 2.8% loop! [216] 6.2% option-on-expr [215] 6.5% f190 [188] 19.3% loop [207] 57.3% [207] 50786(16.4%) 968(0.3%) loop ...-7.5/collects/racket/private/map.rkt:40:19 loop [207] 57.3% option-on-expr [215] 19.3% errors [174] 9.1% loop! [216] 6.0% f190 [188] 3.4% set-precompute! [74] 1.7% simplify [130] 1.2% parse-loop14 [204] 0.4% ??? [255] 0.3% hash-ref! [117] 0.1% map [197] 0.0% ??? [257] 0.0% ------------------------------------------------------------------------------------------- temp91_0 [205] 100.0% [208] 8088(2.6%) 0(0.0%) temp118_0 (unknown source) expand-capturing-lifts [217] 100.0% ------------------------------------------------------------------------------------------- temp91_0 [205] 100.0% [209] 2378(0.8%) 322(0.1%) compile-top9 (unknown source) compile-forms33 [218] 86.5% ------------------------------------------------------------------------------------------- parse-loop14 [204] 100.0% [210] 2254(0.7%) 0(0.0%) for-loop ...alt-testing/src/core/taylor.rkt:490:59 hash-ref! [117] 100.0% ------------------------------------------------------------------------------------------- parse-loop14 [204] 100.0% [211] 1344(0.4%) 0(0.0%) for-loop .../alt-testing/src/core/reduce.rkt:99:13 make-multiplication-node [5] 100.0% ------------------------------------------------------------------------------------------- eval-prog [181] 23.8% parse-loop14 [204] 76.2% [212] 1258(0.4%) 1258(0.4%) eval-one-top12 (unknown source) ------------------------------------------------------------------------------------------- parse-loop14 [204] 1.2% loop [213] 98.8% [213] 360(0.1%) 0(0.0%) loop ...-7.5/collects/racket/private/map.rkt:54:19 loop [213] 98.8% ??? [257] 1.2% ------------------------------------------------------------------------------------------- arrow-higher-order:lnp [206] 100.0% [214] 356(0.1%) 356(0.1%) ??? ...et/contract/private/arity-checking.rkt:19:2 ------------------------------------------------------------------------------------------- f190 [188] 12.3% loop [207] 87.7% [215] 21620(7.0%) 0(0.0%) option-on-expr ...esting/src/core/regimes.rkt:83:0 loop [207] 48.4% sort-context-on-expr [220] 30.7% errors [174] 9.1% pick-errors [225] 4.7% err-lsts->split-indices [226] 4.3% sindices->spoints [228] 1.4% point->alt [234] 1.4% ------------------------------------------------------------------------------------------- for-loop [103] 16.4% loop [207] 28.6% for-loop [76] 55.0% [216] 20514(6.6%) 4682(1.5%) loop! ...rbie/alt-testing/src/core/enode.rkt:192:2 custom-set-union [219] 36.2% loop [207] 31.8% set [223] 11.5% update-en-expr [222] 5.3% ------------------------------------------------------------------------------------------- loop [238] 7.3% temp118_0 [208] 92.7% [217] 8722(2.8%) 702(0.2%) expand-capturing-lifts (unknown source) lambda-clause-expander [221] 70.7% for-loop [258] 11.0% dispatch-transformer41 [224] 6.9% expand-id-application-form17 [247] 3.4% ------------------------------------------------------------------------------------------- compile-top9 [209] 100.0% [218] 2056(0.7%) 0(0.0%) compile-forms33 (unknown source) for-loop [258] 67.5% loop! [227] 32.5% ------------------------------------------------------------------------------------------- adopt-enode! [126] 3.6% loop! [216] 96.4% [219] 8376(2.7%) 1948(0.6%) custom-set-union ...et/private/set-types.rkt:168:0 for-loop [231] 73.2% for-loop [237] 3.6% ------------------------------------------------------------------------------------------- option-on-expr [215] 100.0% [220] 6642(2.1%) 0(0.0%) sort-context-on-expr ...sting/src/points.rkt:115:0 ??? [229] 100.0% ------------------------------------------------------------------------------------------- expand-capturing-lifts [217] 100.0% [221] 6164(2.0%) 0(0.0%) lambda-clause-expander (unknown source) finish-bodys [230] 100.0% ------------------------------------------------------------------------------------------- merge-egraph-nodes! [88] 5.1% for-loop [120] 17.1% loop! [216] 38.7% for-loop [153] 39.1% [222] 5870(1.9%) 2942(1.0%) update-en-expr ...esting/src/core/egraph.rkt:212:0 for-loop [232] 49.9% ------------------------------------------------------------------------------------------- new-enode [129] 6.4% loop! [216] 93.6% [223] 5148(1.7%) 5148(1.7%) set ...collects/racket/private/set-types.rkt:992:0 ------------------------------------------------------------------------------------------- expand-capturing-lifts [217] 27.6% for-loop [258] 72.4% [224] 2164(0.7%) 0(0.0%) dispatch-transformer41 (unknown source) apply-transformer52 [233] 100.0% ------------------------------------------------------------------------------------------- option-on-expr [215] 100.0% [225] 1024(0.3%) 0(0.0%) pick-errors ...-testing/src/core/regimes.rkt:201:0 point->alt [234] 67.6% for-loop [236] 32.4% ------------------------------------------------------------------------------------------- option-on-expr [215] 100.0% [226] 932(0.3%) 0(0.0%) err-lsts->split-indices .../core/regimes.rkt:239:0 loop [235] 100.0% ------------------------------------------------------------------------------------------- compile-forms33 [218] 100.0% [227] 668(0.2%) 0(0.0%) loop! (unknown source) for-loop [258] 100.0% ------------------------------------------------------------------------------------------- option-on-expr [215] 100.0% [228] 300(0.1%) 0(0.0%) sindices->spoints ...ng/src/core/regimes.rkt:136:0 eval-prog [181] 100.0% ------------------------------------------------------------------------------------------- sort-context-on-expr [220] 100.0% [229] 6642(2.1%) 0(0.0%) ??? ...-7.5/collects/racket/private/sort.rkt:369:3 generic-sort/key [239] 85.1% loop [251] 14.9% ------------------------------------------------------------------------------------------- lambda-clause-expander [221] 22.7% for-loop [258] 77.3% [230] 6164(2.0%) 0(0.0%) finish-bodys (unknown source) for-loop [258] 100.0% ------------------------------------------------------------------------------------------- custom-set-union [219] 100.0% [231] 6130(2.0%) 1602(0.5%) for-loop ...cts/racket/private/set-types.rkt:174:3 for-loop [240] 73.9% ------------------------------------------------------------------------------------------- update-en-expr [222] 100.0% [232] 2928(0.9%) 2928(0.9%) for-loop .../alt-testing/src/core/egraph.rkt:214:6 ------------------------------------------------------------------------------------------- dispatch-transformer41 [224] 100.0% [233] 2164(0.7%) 0(0.0%) apply-transformer52 (unknown source) loop [238] 44.6% apply-transformer-in-context [242] 41.5% apply-post-expansion [244] 13.9% ------------------------------------------------------------------------------------------- option-on-expr [215] 30.1% pick-errors [225] 69.9% [234] 990(0.3%) 0(0.0%) point->alt ...t-testing/src/core/regimes.rkt:188:0 eval-prog [181] 100.0% ------------------------------------------------------------------------------------------- err-lsts->split-indices [226] 100.0% [235] 932(0.3%) 0(0.0%) loop ...bie/alt-testing/src/core/regimes.rkt:290:4 for-loop [241] 100.0% ------------------------------------------------------------------------------------------- pick-errors [225] 100.0% [236] 332(0.1%) 0(0.0%) for-loop ...alt-testing/src/core/regimes.rkt:203:2 ??? [243] 100.0% ------------------------------------------------------------------------------------------- custom-set-union [219] 100.0% [237] 298(0.1%) 298(0.1%) for-loop ...cts/racket/private/set-types.rkt:152:2 ------------------------------------------------------------------------------------------- datum->syntax6 [202] 0.3% eval-prog [181] 1.7% loop [238] 3.1% f190 [188] 3.6% temp91_0 [205] 3.7% apply-transformer52 [233] 8.8% for-loop [258] 12.8% syntax-e/no-taint [27] 30.1% list-member? [90] 36.0% [238] 9076(2.9%) 4200(1.4%) loop (unknown source) gf [246] 25.0% expand-id-application-form17 [247] 12.8% core-form-sym [248] 10.6% expand-capturing-lifts [217] 5.3% loop [238] 3.1% syntax-e [12] 1.8% ------------------------------------------------------------------------------------------- ??? [229] 100.0% [239] 5654(1.8%) 0(0.0%) generic-sort/key .../racket/private/sort.rkt:156:2 copying-mergesort [245] 77.1% loop [251] 22.9% ------------------------------------------------------------------------------------------- for-loop [231] 100.0% [240] 4528(1.5%) 4528(1.5%) for-loop ...cts/racket/private/set-types.rkt:178:5 ------------------------------------------------------------------------------------------- loop [235] 100.0% [241] 932(0.3%) 300(0.1%) for-loop ...alt-testing/src/core/regimes.rkt:255:4 for-loop [249] 67.8% ------------------------------------------------------------------------------------------- apply-transformer52 [233] 100.0% [242] 898(0.3%) 600(0.2%) apply-transformer-in-context (unknown source) parse-app [250] 33.2% ------------------------------------------------------------------------------------------- for-loop [236] 100.0% [243] 332(0.1%) 0(0.0%) ??? ...rbie/alt-testing/src/core/regimes.rkt:194:2 ??? [255] 100.0% ------------------------------------------------------------------------------------------- apply-transformer52 [233] 100.0% [244] 300(0.1%) 0(0.0%) apply-post-expansion (unknown source) gf [246] 100.0% ------------------------------------------------------------------------------------------- generic-sort/key [239] 34.7% copying-mergesort [245] 65.3% [245] 4360(1.4%) 0(0.0%) copying-mergesort ...racket/private/sort.rkt:129:8 copying-mergesort [245] 65.3% loop [251] 19.5% jloop [10] 15.2% ------------------------------------------------------------------------------------------- apply-post-expansion [244] 5.2% loop [238] 94.8% [246] 2902(0.9%) 600(0.2%) gf (unknown source) propagation-apply [253] 67.9% cache-or-reuse-set [254] 11.4% syntax-e/no-taint [27] 5.2% ------------------------------------------------------------------------------------------- expand-capturing-lifts [217] 15.5% loop [238] 84.5% [247] 1940(0.6%) 0(0.0%) expand-id-application-form17 (unknown source) syntax-e/no-taint [27] 65.2% resolve+shift28 [252] 34.8% ------------------------------------------------------------------------------------------- loop [238] 100.0% [248] 964(0.3%) 0(0.0%) core-form-sym (unknown source) resolve+shift28 [252] 100.0% ------------------------------------------------------------------------------------------- for-loop [241] 100.0% [249] 632(0.2%) 632(0.2%) for-loop ...alt-testing/src/core/regimes.rkt:259:8 ------------------------------------------------------------------------------------------- apply-transformer-in-context [242] 100.0% [250] 298(0.1%) 298(0.1%) parse-app ...collects/racket/private/kw.rkt:1142:2 ------------------------------------------------------------------------------------------- ??? [229] 24.8% generic-sort/key [239] 32.5% copying-mergesort [245] 42.7% [251] 3984(1.3%) 0(0.0%) loop ...7.5/collects/racket/private/sort.rkt:96:12 ??? [255] 91.6% ??? [257] 8.4% ------------------------------------------------------------------------------------------- expand-id-application-form17 [247] 26.0% expand-implicit [13] 36.9% core-form-sym [248] 37.1% [252] 2600(0.8%) 656(0.2%) resolve+shift28 (unknown source) fallback-loop [256] 74.8% ------------------------------------------------------------------------------------------- gf [246] 100.0% [253] 1970(0.6%) 1970(0.6%) propagation-apply (unknown source) ------------------------------------------------------------------------------------------- gf [246] 100.0% [254] 332(0.1%) 332(0.1%) cache-or-reuse-set (unknown source) ------------------------------------------------------------------------------------------- ??? [243] 1.0% jloop [10] 6.9% loop [251] 10.9% loop [207] 19.3% for-loop [180] 62.0% [255] 33634(10.9%) 18192(5.9%) ??? ...s/herbie/alt-testing/src/programs.rkt:156:4 ??? [259] 19.9% ??? [267] 11.1% ??? [260] 5.8% ??? [257] 3.9% bf* [261] 2.2% bf [262] 2.0% ...higher-order.rkt:379:33 [263] 1.1% ------------------------------------------------------------------------------------------- resolve+shift28 [252] 100.0% [256] 1944(0.6%) 968(0.3%) fallback-loop (unknown source) for-loop [258] 50.2% ------------------------------------------------------------------------------------------- for-loop [128] 1.1% loop [251] 1.1% jloop [10] 1.1% map [197] 1.1% loop [213] 1.2% loop [207] 2.4% for-loop [180] 3.8% ??? [255] 4.4% atab-pick-alt8 [158] 6.0% f190 [188] 16.1% loop [22] 16.7% location-do [264] 22.5% for-loop [78] 22.5% [257] 30216(9.8%) 0(0.0%) ??? ...tract/private/arrow-higher-order.rkt:375:33 location-do [264] 22.5% approximate9 [4] 22.0% hash-ref! [117] 16.7% ->flonum [266] 15.1% ...sting/src/common.rkt:47:2 [151] 6.7% table-ref [150] 6.4% best-alt [268] 6.0% ??? [265] 3.1% sample-multi-bounded [271] 1.1% simplify [130] 0.5% ------------------------------------------------------------------------------------------- fallback-loop [256] 3.7% expand-capturing-lifts [217] 5.4% loop! [227] 7.3% for-loop [258] 11.2% compile-forms33 [218] 15.1% finish-bodys [230] 57.4% [258] 9178(3.0%) 1942(0.6%) for-loop (unknown source) finish-bodys [230] 46.0% compile-module-linklet57 [269] 11.5% for-loop [258] 11.2% add-lambda-properties [270] 7.3% dispatch-transformer41 [224] 6.2% loop [238] 5.6% expand-implicit [13] 2.1% syntax-e [12] 1.2% dispatch-variable [16] 0.6% ------------------------------------------------------------------------------------------- ??? [255] 100.0% [259] 6684(2.2%) 5020(1.6%) ??? ...ie/alt-testing/src/syntax/syntax.rkt:156:17 return/no-unsupplied [272] 24.9% ------------------------------------------------------------------------------------------- ??? [255] 100.0% [260] 1966(0.6%) 1966(0.6%) ??? ...rivate/unconstrained-domain-arrow.rkt:40:13 ------------------------------------------------------------------------------------------- ??? [255] 100.0% [261] 724(0.2%) 0(0.0%) bf* ...ath/private/bigfloat/bigfloat-mpfr.rkt:95:0 ??? [267] 100.0% ------------------------------------------------------------------------------------------- ??? [255] 100.0% [262] 658(0.2%) 0(0.0%) bf ...ath-lib/math/private/bigfloat/mpfr.rkt:615:2 new-mpfr [281] 100.0% ------------------------------------------------------------------------------------------- ??? [255] 100.0% [263] 356(0.1%) 0(0.0%) ...higher-order.rkt:379:33 (unknown source) ??? [162] 100.0% ------------------------------------------------------------------------------------------- location-do [264] 33.3% ??? [257] 66.7% [264] 18628(6.0%) 0(0.0%) location-do .../alt-testing/src/programs.rkt:116:0 ??? [257] 66.7% location-do [264] 33.3% ------------------------------------------------------------------------------------------- ??? [159] 4.3% ??? [257] 11.0% ??? [157] 23.7% ??? [170] 60.9% [265] 8394(2.7%) 5478(1.8%) ??? ...ects/racket/contract/private/guts.rkt:770:8 contract? [273] 23.7% ??? [148] 11.0% ------------------------------------------------------------------------------------------- ??? [257] 100.0% [266] 4750(1.5%) 3382(1.1%) ->flonum ...rbie/alt-testing/src/programs.rkt:37:0 return/no-unsupplied [272] 28.8% ------------------------------------------------------------------------------------------- bf* [261] 16.2% ??? [255] 83.8% [267] 4458(1.4%) 3018(1.0%) ??? ...-racket/utils/simple-result-arrow.rkt:39:12 bfmul [275] 16.2% bftan [276] 16.1% ------------------------------------------------------------------------------------------- ??? [257] 100.0% [268] 1984(0.6%) 0(0.0%) best-alt ...s/herbie/alt-testing/src/glue.rkt:71:0 loop [274] 66.3% argmins [277] 33.7% ------------------------------------------------------------------------------------------- for-loop [258] 100.0% [269] 1054(0.3%) 1054(0.3%) compile-module-linklet57 (unknown source) ------------------------------------------------------------------------------------------- for-loop [258] 100.0% [270] 668(0.2%) 668(0.2%) add-lambda-properties (unknown source) ------------------------------------------------------------------------------------------- ??? [257] 100.0% [271] 324(0.1%) 0(0.0%) sample-multi-bounded ...esting/src/points.rkt:44:0 for-loop [278] 100.0% ------------------------------------------------------------------------------------------- flag-set? [136] 6.5% debug7 [144] 6.5% table-ref [150] 6.9% ??? [159] 7.2% ulp-difference [192] 7.3% ->flonum [266] 29.6% ??? [259] 36.0% [272] 4620(1.5%) 2978(1.0%) return/no-unsupplied ...ct/private/arr-i.rkt:566:0 filter [280] 35.5% ------------------------------------------------------------------------------------------- ??? [265] 100.0% [273] 1990(0.6%) 1660(0.5%) contract? ...acket/contract/private/guts.rkt:125:0 coerce-contract/f [283] 16.6% ------------------------------------------------------------------------------------------- extract-alt [46] 20.2% best-alt [268] 79.8% [274] 1650(0.5%) 0(0.0%) loop ...es/herbie/alt-testing/src/common.rkt:153:2 composed [279] 100.0% ------------------------------------------------------------------------------------------- ??? [267] 100.0% [275] 724(0.2%) 0(0.0%) bfmul ...-lib/math/private/bigfloat/mpfr.rkt:835:4 ??? [282] 50.3% new-mpfr [281] 49.7% ------------------------------------------------------------------------------------------- ??? [267] 100.0% [276] 716(0.2%) 0(0.0%) bftan ...-lib/math/private/bigfloat/mpfr.rkt:632:4 ??? [282] 50.0% new-mpfr [281] 50.0% ------------------------------------------------------------------------------------------- best-alt [268] 100.0% [277] 668(0.2%) 0(0.0%) argmins ...herbie/alt-testing/src/common.rkt:152:0 composed [279] 100.0% ------------------------------------------------------------------------------------------- sample-multi-bounded [271] 100.0% [278] 324(0.1%) 324(0.1%) for-loop ...herbie/alt-testing/src/points.rkt:47:4 ------------------------------------------------------------------------------------------- argmins [277] 20.6% f190 [188] 28.5% loop [274] 50.9% [279] 3244(1.0%) 0(0.0%) composed ...ollects/racket/private/list.rkt:321:16 errors [174] 71.5% f190 [188] 28.5% ------------------------------------------------------------------------------------------- for-loop [86] 28.4% return/no-unsupplied [272] 71.6% [280] 2292(0.7%) 2292(0.7%) filter ...5/collects/racket/private/list.rkt:256:2 ------------------------------------------------------------------------------------------- bftan [276] 26.0% bfmul [275] 26.2% bf [262] 47.8% [281] 1376(0.4%) 1376(0.4%) new-mpfr ...b/math/private/bigfloat/mpfr.rkt:348:0 ------------------------------------------------------------------------------------------- bftan [276] 49.6% bfmul [275] 50.4% [282] 722(0.2%) 722(0.2%) ??? /opt/racket-7.5/collects/ffi/unsafe.rkt:938:4 ------------------------------------------------------------------------------------------- contract? [273] 100.0% [283] 330(0.1%) 330(0.1%) coerce-contract/f ...ntract/private/guts.rkt:372:0 -------------------------------------------------------------------------------------------