Profiling results ----------------- Total cpu time observed: 162202ms (out of 162900ms) Number of samples taken: 463 (once every 350ms) (Hiding functions with self<1.0% and local<2.0%: 7 of 196 hidden) ========================================================================================== Caller Idx Total Self Name+src Local% ms(pct) ms(pct) Callee ========================================================================================== ??? [23] 100.0% [1] 137906(85.0%) 0(0.0%) profile-thunk16 ...t/pkgs/profile-lib/main.rkt:9:0 run [13] 100.0% ------------------------------------------------------------------------------------------ table-ref [53] 100.0% [2] 7180(4.4%) 0(0.0%) loop ...ix-regimes-bug/src/core/simplify.rkt:210:2 pass [14] 100.0% ------------------------------------------------------------------------------------------ hash-ref! [146] 100.0% [3] 6486(4.0%) 0(0.0%) ??? .../fix-regimes-bug/src/core/taylor.rkt:292:23 for-loop [15] 100.0% ------------------------------------------------------------------------------------------ hash-ref! [146] 100.0% [4] 6116(3.8%) 0(0.0%) ??? .../fix-regimes-bug/src/core/taylor.rkt:389:23 for-loop [16] 95.1% partition-list [22] 4.9% ------------------------------------------------------------------------------------------ copying-mergesort [147] 100.0% [5] 2740(1.7%) 0(0.0%) jloop ...t/collects/racket/private/sort.rkt:121:23 ??? [162] 87.6% ->flonum [169] 12.4% ------------------------------------------------------------------------------------------ loop [97] 100.0% [6] 1392(0.9%) 328(0.2%) for-loop ...egimes-bug/src/core/simplify.rkt:168:2 eval-const-expr [18] 76.4% ------------------------------------------------------------------------------------------ match-e [98] 100.0% [7] 1370(0.8%) 0(0.0%) variable? ...gimes-bug/src/syntax/syntax.rkt:529:0 ??? [61] 100.0% ------------------------------------------------------------------------------------------ hash-ref! [146] 100.0% [8] 1330(0.8%) 0(0.0%) ??? .../fix-regimes-bug/src/core/taylor.rkt:282:26 for-loop [17] 100.0% ------------------------------------------------------------------------------------------ loop [97] 100.0% [9] 1030(0.6%) 0(0.0%) ??? ...ket/collects/racket/private/list.rkt:323:18 hash-ref! [146] 83.8% map [91] 16.2% ------------------------------------------------------------------------------------------ hash-ref! [146] 100.0% [10] 1020(0.6%) 0(0.0%) ??? .../fix-regimes-bug/src/core/taylor.rkt:480:23 for-loop [19] 100.0% ------------------------------------------------------------------------------------------ hash-ref! [146] 100.0% [11] 660(0.4%) 0(0.0%) ??? .../fix-regimes-bug/src/core/taylor.rkt:319:33 for-loop [20] 100.0% ------------------------------------------------------------------------------------------ f37 [82] 100.0% [12] 302(0.2%) 0(0.0%) append-map ...acket/collects/racket/list.rkt:565:2 f37 [82] 50.0% free-variables [21] 50.0% ------------------------------------------------------------------------------------------ profile-thunk16 [1] 100.0% [13] 137906(85.0%) 0(0.0%) run ...share/racket/pkgs/profile-lib/main.rkt:39:2 ??? [23] 100.0% ------------------------------------------------------------------------------------------ loop [2] 100.0% [14] 7180(4.4%) 0(0.0%) pass ...ix-regimes-bug/src/core/simplify.rkt:200:2 for-loop [24] 100.0% ------------------------------------------------------------------------------------------ ??? [3] 100.0% [15] 6486(4.0%) 0(0.0%) for-loop ...regimes-bug/src/core/taylor.rkt:295:27 hash-ref! [146] 100.0% ------------------------------------------------------------------------------------------ ??? [4] 100.0% [16] 5816(3.6%) 0(0.0%) for-loop ...regimes-bug/src/core/taylor.rkt:393:33 for-loop [25] 100.0% ------------------------------------------------------------------------------------------ ??? [8] 100.0% [17] 1330(0.8%) 0(0.0%) for-loop ...regimes-bug/src/core/taylor.rkt:282:52 hash-ref! [146] 77.4% simplify [55] 22.6% ------------------------------------------------------------------------------------------ for-loop [6] 100.0% [18] 1064(0.7%) 364(0.2%) eval-const-expr ...imes-bug/src/programs.rkt:167:0 f37 [82] 65.8% ------------------------------------------------------------------------------------------ ??? [10] 100.0% [19] 1020(0.6%) 0(0.0%) for-loop ...regimes-bug/src/core/taylor.rkt:484:35 parse-loop50 [154] 100.0% ------------------------------------------------------------------------------------------ ??? [11] 100.0% [20] 660(0.4%) 360(0.2%) for-loop ...regimes-bug/src/core/taylor.rkt:321:46 simplify [55] 45.5% ------------------------------------------------------------------------------------------ append-map [12] 100.0% [21] 302(0.2%) 0(0.0%) free-variables ...gimes-bug/src/programs.rkt:101:0 ??? [61] 100.0% ------------------------------------------------------------------------------------------ ??? [4] 100.0% [22] 300(0.2%) 0(0.0%) partition-list ...es-bug/src/core/taylor.rkt:373:0 rle [26] 100.0% ------------------------------------------------------------------------------------------ for-loop [48] 8.8% run [13] 43.3% [23] 144440(89.0%) 0(0.0%) ??? ...lects/racket/private/more-scheme.rkt:261:28 profile-thunk16 [1] 43.3% run-improve50 [27] 41.5% table-ref [53] 11.8% loop [28] 3.4% ------------------------------------------------------------------------------------------ pass [14] 100.0% [24] 7180(4.4%) 684(0.4%) for-loop ...gimes-bug/src/core/simplify.rkt:203:29 argmin [29] 71.8% loop [30] 18.7% ------------------------------------------------------------------------------------------ for-loop [16] 100.0% [25] 5816(3.6%) 0(0.0%) for-loop ...regimes-bug/src/core/taylor.rkt:395:39 hash-ref! [146] 100.0% ------------------------------------------------------------------------------------------ partition-list [22] 100.0% [26] 300(0.2%) 300(0.2%) rle ...e/fix-regimes-bug/src/core/taylor.rkt:369:0 ------------------------------------------------------------------------------------------ ??? [23] 100.0% [27] 130344(80.4%) 0(0.0%) run-improve50 ...egimes-bug/src/mainloop.rkt:234:0 for-loop [31] 52.0% get-final-combination [32] 47.7% setup-alt-simplified [36] 0.3% ------------------------------------------------------------------------------------------ ??? [23] 100.0% [28] 9758(6.0%) 0(0.0%) loop ...erbie/fix-regimes-bug/src/points.rkt:193:2 make-exacts* [39] 70.3% loop [34] 29.7% ------------------------------------------------------------------------------------------ for-loop [24] 100.0% [29] 5154(3.2%) 0(0.0%) argmin ...re/racket/collects/racket/list.rkt:743:0 for-loop [33] 93.1% expression-cost [35] 6.9% ------------------------------------------------------------------------------------------ for-loop [24] 100.0% [30] 1342(0.8%) 0(0.0%) loop ...hare/racket/collects/racket/list.rkt:729:4 for-loop [33] 74.1% expression-cost [35] 25.9% ------------------------------------------------------------------------------------------ run-improve50 [27] 100.0% [31] 67776(41.8%) 0(0.0%) for-loop ...ix-regimes-bug/src/mainloop.rkt:249:10 run-iter! [37] 100.0% ------------------------------------------------------------------------------------------ run-improve50 [27] 100.0% [32] 62192(38.3%) 0(0.0%) get-final-combination ...ug/src/mainloop.rkt:264:0 split-table [38] 98.8% extract-alt [41] 1.2% ------------------------------------------------------------------------------------------ loop [30] 17.2% argmin [29] 82.8% [33] 5794(3.6%) 334(0.2%) for-loop ...fix-regimes-bug/src/programs.rkt:200:2 table-ref [53] 70.4% ...s-bug/src/common.rkt:47:2 [57] 23.8% ------------------------------------------------------------------------------------------ loop [28] 100.0% [34] 2902(1.8%) 0(0.0%) loop ...erbie/fix-regimes-bug/src/points.rkt:151:2 loop [40] 62.3% make-exacts* [39] 37.7% ------------------------------------------------------------------------------------------ loop [30] 49.6% argmin [29] 50.4% [35] 702(0.4%) 0(0.0%) expression-cost ...imes-bug/src/programs.rkt:199:0 compile [42] 100.0% ------------------------------------------------------------------------------------------ run-improve50 [27] 100.0% [36] 376(0.2%) 0(0.0%) setup-alt-simplified ...imes-bug/src/glue.rkt:48:0 simplify-alt [43] 100.0% ------------------------------------------------------------------------------------------ for-loop [31] 100.0% [37] 67776(41.8%) 0(0.0%) run-iter! ...ix-regimes-bug/src/mainloop.rkt:215:0 simplify! [44] 56.3% finalize-iter! [45] 26.9% gen-series! [46] 14.8% localize-error [47] 1.5% ------------------------------------------------------------------------------------------ get-final-combination [32] 100.0% [38] 61472(37.9%) 0(0.0%) split-table .../fix-regimes-bug/src/glue.rkt:159:0 f37 [82] 100.0% ------------------------------------------------------------------------------------------ loop [34] 13.8% loop [28] 86.2% [39] 7950(4.9%) 0(0.0%) make-exacts* ...x-regimes-bug/src/points.rkt:138:0 map [91] 63.2% loop [97] 36.8% ------------------------------------------------------------------------------------------ loop [34] 100.0% [40] 1808(1.1%) 0(0.0%) loop ...erbie/fix-regimes-bug/src/points.rkt:141:4 map [91] 100.0% ------------------------------------------------------------------------------------------ get-final-combination [32] 100.0% [41] 720(0.4%) 0(0.0%) extract-alt ...e/fix-regimes-bug/src/glue.rkt:54:0 loop [68] 50.0% argmins [67] 50.0% ------------------------------------------------------------------------------------------ expression-cost [35] 100.0% [42] 702(0.4%) 0(0.0%) compile .../fix-regimes-bug/src/programs.rkt:176:0 hash-ref! [146] 100.0% ------------------------------------------------------------------------------------------ setup-alt-simplified [36] 100.0% [43] 376(0.2%) 0(0.0%) simplify-alt .../fix-regimes-bug/src/glue.rkt:78:0 table-ref [53] 100.0% ------------------------------------------------------------------------------------------ run-iter! [37] 100.0% [44] 38172(23.5%) 0(0.0%) simplify! ...ix-regimes-bug/src/mainloop.rkt:155:0 for-loop [48] 100.0% ------------------------------------------------------------------------------------------ run-iter! [37] 100.0% [45] 18212(11.2%) 0(0.0%) finalize-iter! ...gimes-bug/src/mainloop.rkt:169:0 ??? [61] 100.0% ------------------------------------------------------------------------------------------ run-iter! [37] 100.0% [46] 10002(6.2%) 0(0.0%) gen-series! ...-regimes-bug/src/mainloop.rkt:129:0 for-loop [49] 100.0% ------------------------------------------------------------------------------------------ run-iter! [37] 100.0% [47] 1030(0.6%) 0(0.0%) localize-error ...s-bug/src/core/localize.rkt:47:0 hash-ref! [146] 100.0% ------------------------------------------------------------------------------------------ simplify! [44] 100.0% [48] 38172(23.5%) 0(0.0%) for-loop ...fix-regimes-bug/src/mainloop.rkt:159:6 ??? [23] 100.0% ------------------------------------------------------------------------------------------ gen-series! [46] 100.0% [49] 10002(6.2%) 0(0.0%) for-loop ...fix-regimes-bug/src/mainloop.rkt:135:7 taylor-alt [50] 100.0% ------------------------------------------------------------------------------------------ for-loop [49] 100.0% [50] 10002(6.2%) 0(0.0%) taylor-alt ...e/fix-regimes-bug/src/glue.rkt:136:0 for-loop [51] 100.0% ------------------------------------------------------------------------------------------ taylor-alt [50] 100.0% [51] 10002(6.2%) 0(0.0%) for-loop ...bie/fix-regimes-bug/src/glue.rkt:138:2 ??? [52] 100.0% ------------------------------------------------------------------------------------------ table-ref [53] 15.1% for-loop [51] 15.1% f37 [82] 67.6% [52] 33058(20.4%) 998(0.6%) ??? ...tract/private/arrow-higher-order.rkt:342:33 table-ref [53] 39.3% ??? [56] 22.3% approximate9 [54] 14.6% ...s-bug/src/common.rkt:47:2 [57] 10.8% ??? [58] 7.4% best-alt [59] 2.1% simplify [55] 0.5% ------------------------------------------------------------------------------------------ simplify-alt [43] 0.2% ??? [144] 0.6% for-loop [33] 2.2% for-loop [62] 13.8% ??? [52] 18.0% table-ref [53] 31.1% ??? [23] 33.7% [53] 61602(38.0%) 4502(2.8%) table-ref .../racket/private/norm-define.rkt:53:83 table-ref [53] 31.1% iterate-egraph!13 [60] 28.5% for-loop [62] 13.8% ??? [85] 9.1% ??? [52] 5.0% loop [2] 4.7% f37 [82] 0.6% return/no-unsupplied [183] 0.6% *simplify-rules* [70] 0.5% debug7 [69] 0.3% ??? [182] 0.2% ------------------------------------------------------------------------------------------ ??? [52] 100.0% [54] 9678(6.0%) 0(0.0%) approximate9 ...gimes-bug/src/core/taylor.rkt:12:0 loop [63] 96.5% f37 [82] 3.5% ------------------------------------------------------------------------------------------ for-loop [17] 3.2% for-loop [20] 3.2% ??? [52] 3.5% hash-ref! [146] 90.1% [55] 9342(5.8%) 0(0.0%) simplify ...x-regimes-bug/src/core/reduce.rkt:15:0 parse-loop50 [154] 58.8% f37 [82] 38.0% simplify* [165] 3.2% ------------------------------------------------------------------------------------------ ??? [96] 4.1% ??? [175] 4.7% ??? [52] 91.2% [56] 8094(5.0%) 382(0.2%) ??? ...ects/racket/contract/private/guts.rkt:644:8 ??? [61] 95.3% ------------------------------------------------------------------------------------------ f37 [82] 6.9% for-loop [33] 26.0% ??? [52] 67.1% [57] 5308(3.3%) 3194(2.0%) ...s-bug/src/common.rkt:47:2 ...e/arr-i.rkt:906:19 ??? [64] 20.0% ??? [112] 19.8% ------------------------------------------------------------------------------------------ ??? [52] 100.0% [58] 2436(1.5%) 720(0.4%) ??? ...ts/racket/contract/private/arr-i.rkt:804:10 ??? [65] 40.9% get/build-late-neg-projection [66] 29.6% ------------------------------------------------------------------------------------------ ??? [52] 100.0% [59] 694(0.4%) 0(0.0%) best-alt ...rbie/fix-regimes-bug/src/glue.rkt:73:0 argmins [67] 51.9% loop [68] 48.1% ------------------------------------------------------------------------------------------ table-ref [53] 100.0% [60] 35090(21.6%) 0(0.0%) iterate-egraph!13 ...g/src/core/simplify.rkt:102:0 one-iter [71] 95.1% map-enodes [75] 4.9% ------------------------------------------------------------------------------------------ free-variables [21] 1.0% variable? [7] 4.4% match-e [98] 11.1% ??? [56] 24.3% finalize-iter! [45] 58.1% [61] 31080(19.2%) 3100(1.9%) ??? ...contract/private/arrow-val-first.rkt:357:18 for-loop [72] 55.9% hash-has-key? [73] 30.8% atab-add-altns [76] 2.1% ------------------------------------------------------------------------------------------ table-ref [53] 100.0% [62] 17588(10.8%) 0(0.0%) for-loop ...egimes-bug/src/core/simplify.rkt:63:12 table-ref [53] 100.0% ------------------------------------------------------------------------------------------ approximate9 [54] 100.0% [63] 9342(5.8%) 0(0.0%) loop ...e/fix-regimes-bug/src/core/taylor.rkt:83:4 hash-ref! [146] 100.0% ------------------------------------------------------------------------------------------ ...s-bug/src/common.rkt:47:2 [57] 100.0% [64] 1062(0.7%) 362(0.2%) ??? ...s/racket/contract/private/arr-i.rkt:1268:39 ??? [182] 34.3% assoc-ref [79] 31.6% ------------------------------------------------------------------------------------------ ??? [58] 100.0% [65] 996(0.6%) 668(0.4%) ??? ...private/unconstrained-domain-arrow.rkt:69:2 get-blame-party-info [80] 32.9% ------------------------------------------------------------------------------------------ unconstrained-domain->-projection [78] 24.9% ??? [58] 75.1% [66] 720(0.4%) 362(0.2%) get/build-late-neg-projection ...te/guts.rkt:691:0 unconstrained-domain->-projection [78] 24.9% ??? [77] 24.9% ------------------------------------------------------------------------------------------ best-alt [59] 50.0% extract-alt [41] 50.0% [67] 720(0.4%) 0(0.0%) argmins ...ie/fix-regimes-bug/src/common.rkt:141:0 composed [74] 100.0% ------------------------------------------------------------------------------------------ best-alt [59] 48.1% extract-alt [41] 51.9% [68] 694(0.4%) 0(0.0%) loop ...erbie/fix-regimes-bug/src/common.rkt:142:2 composed [74] 100.0% ------------------------------------------------------------------------------------------ table-ref [53] 100.0% [69] 360(0.2%) 0(0.0%) debug7 ...rbie/fix-regimes-bug/src/debug.rkt:102:0 ??? [182] 100.0% ------------------------------------------------------------------------------------------ table-ref [53] 100.0% [70] 300(0.2%) 0(0.0%) *simplify-rules* ...bug/src/syntax/rules.rkt:449:0 for-loop [81] 100.0% ------------------------------------------------------------------------------------------ iterate-egraph!13 [60] 100.0% [71] 33370(20.6%) 720(0.4%) one-iter ...egimes-bug/src/core/simplify.rkt:113:0 for-loop [83] 66.0% loop [86] 27.9% apply-match [92] 3.0% ------------------------------------------------------------------------------------------ ??? [61] 100.0% [72] 17548(10.8%) 0(0.0%) for-loop ...egimes-bug/src/core/alt-table.rkt:51:2 atab-add-altn [84] 100.0% ------------------------------------------------------------------------------------------ ??? [61] 100.0% [73] 9742(6.0%) 1038(0.6%) hash-has-key? ...et/private/more-scheme.rkt:368:13 ??? [85] 85.7% ??? [88] 3.7% ------------------------------------------------------------------------------------------ f37 [82] 32.0% loop [68] 33.4% argmins [67] 34.6% [74] 2078(1.3%) 0(0.0%) composed ...ollects/racket/private/list.rkt:321:16 errors [118] 68.0% f37 [82] 32.0% ------------------------------------------------------------------------------------------ iterate-egraph!13 [60] 100.0% [75] 1720(1.1%) 0(0.0%) map-enodes ...egimes-bug/src/core/egraph.rkt:139:0 loop [97] 100.0% ------------------------------------------------------------------------------------------ ??? [61] 100.0% [76] 664(0.4%) 0(0.0%) atab-add-altns ...-bug/src/core/alt-table.rkt:50:0 atab-add-altn [84] 100.0% ------------------------------------------------------------------------------------------ get/build-late-neg-projection [66] 100.0% [77] 358(0.2%) 0(0.0%) ??? ...cts/racket/contract/private/prop.rkt:314:12 build-compound-type-name [87] 100.0% ------------------------------------------------------------------------------------------ get/build-late-neg-projection [66] 100.0% [78] 358(0.2%) 0(0.0%) unconstrained-domain->-projection ...rrow.rkt:60:0 get/build-late-neg-projection [66] 100.0% ------------------------------------------------------------------------------------------ ??? [64] 100.0% [79] 336(0.2%) 336(0.2%) assoc-ref ...collects/racket/private/dict.rkt:56:0 ------------------------------------------------------------------------------------------ ??? [65] 100.0% [80] 328(0.2%) 328(0.2%) get-blame-party-info ...ate/arrow-common.rkt:136:0 ------------------------------------------------------------------------------------------ *simplify-rules* [70] 100.0% [81] 300(0.2%) 0(0.0%) for-loop ...ie/fix-regimes-bug/src/common.rkt:94:9 ormap [89] 100.0% ------------------------------------------------------------------------------------------ append-map [12] 0.1% table-ref [53] 0.1% approximate9 [54] 0.1% composed [74] 0.3% hash-ref! [146] 0.5% loop [97] 0.6% map [91] 0.8% eval-const-expr [18] 1.0% parse-loop50 [154] 2.9% simplify [55] 3.2% eval-prog [140] 6.7% f37 [82] 20.9% split-table [38] 62.6% [82] 69526(42.9%) 4346(2.7%) f37 ...t/collects/racket/match/compiler.rkt:507:40 loop [97] 56.4% f37 [82] 20.9% ??? [52] 6.5% option-on-expr [106] 6.3% map [91] 5.0% ...s-bug/src/common.rkt:47:2 [57] 0.5% ??? [96] 0.5% composed [74] 0.3% append-map [12] 0.2% ------------------------------------------------------------------------------------------ for-loop [83] 50.0% one-iter [71] 50.0% [83] 22016(13.6%) 5446(3.4%) for-loop ...gimes-bug/src/core/simplify.rkt:123:12 for-loop [83] 50.0% match-e [98] 37.6% ------------------------------------------------------------------------------------------ atab-add-altns [76] 3.6% for-loop [72] 96.4% [84] 18212(11.2%) 0(0.0%) atab-add-altn ...-bug/src/core/alt-table.rkt:208:0 best-and-tied-at-points [90] 88.9% override-at-pnts [94] 11.1% ------------------------------------------------------------------------------------------ table-ref [53] 46.3% hash-has-key? [73] 53.7% [85] 15552(9.6%) 5790(3.6%) ??? ...ects/racket/contract/private/list.rkt:737:4 for-loop [93] 48.7% ??? [100] 7.0% ??? [95] 4.7% successfully-got-the-right-kind-of-function [172] 2.3% ------------------------------------------------------------------------------------------ one-iter [71] 100.0% [86] 9312(5.7%) 334(0.2%) loop ...cket/collects/racket/private/map.rkt:52:19 apply-match [92] 96.4% ------------------------------------------------------------------------------------------ ??? [77] 100.0% [87] 358(0.2%) 358(0.2%) build-compound-type-name ...private/guts.rkt:448:0 ------------------------------------------------------------------------------------------ hash-has-key? [73] 100.0% [88] 356(0.2%) 356(0.2%) ??? ...ects/racket/contract/private/hash.rkt:245:7 ------------------------------------------------------------------------------------------ for-loop [81] 100.0% [89] 300(0.2%) 300(0.2%) ormap ...et/collects/racket/private/map.rkt:105:13 ------------------------------------------------------------------------------------------ atab-add-altn [84] 100.0% [90] 16188(10.0%) 0(0.0%) best-and-tied-at-points ...ore/alt-table.rkt:122:0 errors [118] 97.9% for-loop [104] 2.1% ------------------------------------------------------------------------------------------ ??? [9] 2.7% parse-loop50 [154] 6.8% loop [40] 14.5% f37 [82] 35.8% make-exacts* [39] 40.2% [91] 12498(7.7%) 0(0.0%) map ...acket/collects/racket/private/map.rkt:20:13 loop [97] 63.1% parse-loop50 [154] 26.6% f37 [82] 6.8% ->flonum [169] 2.7% ------------------------------------------------------------------------------------------ one-iter [71] 9.9% loop [86] 90.1% [92] 9966(6.1%) 0(0.0%) apply-match ...mes-bug/src/core/simplify.rkt:129:2 merge-egraph-nodes! [99] 41.1% match-e [98] 30.9% loop! [109] 7.2% for-loop [102] 7.1% substitute-e [103] 7.0% mk-enode! [111] 3.4% update-leader! [108] 3.3% ------------------------------------------------------------------------------------------ ??? [85] 100.0% [93] 7574(4.7%) 4478(2.8%) for-loop ...acket/contract/private/list.rkt:743:12 ??? [100] 17.9% for-loop [101] 13.9% ??? [124] 9.2% ------------------------------------------------------------------------------------------ atab-add-altn [84] 100.0% [94] 2024(1.2%) 0(0.0%) override-at-pnts ...g/src/core/alt-table.rkt:145:0 errors [118] 100.0% ------------------------------------------------------------------------------------------ ??? [112] 48.4% ??? [85] 51.6% [95] 1430(0.9%) 370(0.2%) ??? ...cts/racket/contract/private/list.rkt:187:10 ??? [180] 25.7% ??? [112] 25.0% for-loop [105] 23.4% ------------------------------------------------------------------------------------------ f37 [82] 100.0% [96] 334(0.2%) 0(0.0%) ??? ...tract/private/arrow-higher-order.rkt:336:46 ??? [56] 100.0% ------------------------------------------------------------------------------------------ make-exacts* [39] 0.0% map-enodes [75] 0.2% for-loop [107] 0.2% match-e [98] 0.4% ??? [158] 0.5% loop! [109] 0.5% map [91] 1.1% parse-loop50 [154] 3.3% option-on-expr [106] 4.5% loop [97] 35.4% f37 [82] 53.8% [97] 75014(46.2%) 656(0.4%) loop ...cket/collects/racket/private/map.rkt:25:19 option-on-expr [106] 53.6% loop [97] 35.4% errors [118] 4.5% parse-loop50 [154] 3.1% f37 [82] 0.7% ??? [9] 0.6% loop! [109] 0.5% curried [128] 0.4% hash-ref! [146] 0.4% foldl [114] 0.2% ??? [162] 0.2% for-loop [6] 0.2% ??? [177] 0.0% ->flonum [169] 0.0% ------------------------------------------------------------------------------------------ apply-match [92] 9.7% for-loop [120] 26.1% for-loop [83] 64.3% [98] 19652(12.1%) 7910(4.9%) match-e ...ix-regimes-bug/src/core/ematch.rkt:46:0 for-loop [107] 43.1% ??? [61] 11.1% for-loop [120] 7.6% variable? [7] 2.3% list-cartesian-product [123] 1.8% curry* [116] 1.7% loop [97] 0.8% ------------------------------------------------------------------------------------------ merge-egraph-nodes! [99] 3.9% for-loop [113] 4.4% apply-match [92] 91.7% [99] 4096(2.5%) 0(0.0%) merge-egraph-nodes! ...g/src/core/egraph.rkt:152:0 update-leader! [108] 66.6% loop! [109] 16.9% for-loop [115] 8.2% for-loop [113] 4.4% merge-egraph-nodes! [99] 3.9% ------------------------------------------------------------------------------------------ ??? [85] 44.6% for-loop [93] 55.4% [100] 2442(1.5%) 1040(0.6%) ??? ...private/unconstrained-domain-arrow.rkt:74:4 make-keyword-procedure [110] 57.4% ------------------------------------------------------------------------------------------ for-loop [93] 100.0% [101] 1050(0.6%) 1050(0.6%) for-loop ...racket/contract/private/hash.rkt:239:6 ------------------------------------------------------------------------------------------ apply-match [92] 100.0% [102] 704(0.4%) 0(0.0%) for-loop ...gimes-bug/src/core/simplify.rkt:143:10 mk-enode! [111] 52.3% loop! [109] 47.7% ------------------------------------------------------------------------------------------ substitute-e [103] 23.8% apply-match [92] 76.2% [103] 698(0.4%) 332(0.2%) substitute-e ...gimes-bug/src/core/ematch.rkt:71:0 mk-enode! [111] 52.4% substitute-e [103] 23.8% ------------------------------------------------------------------------------------------ best-and-tied-at-points [90] 100.0% [104] 334(0.2%) 334(0.2%) for-loop ...imes-bug/src/core/alt-table.rkt:124:16 ------------------------------------------------------------------------------------------ ??? [95] 100.0% [105] 334(0.2%) 0(0.0%) for-loop ...acket/contract/private/list.rkt:190:15 ??? [112] 100.0% ------------------------------------------------------------------------------------------ f37 [82] 8.9% loop [97] 91.1% [106] 61472(37.9%) 0(0.0%) option-on-expr ...es-bug/src/core/regimes.rkt:92:0 pick-errors [117] 60.0% sort-context-on-expr [119] 18.5% loop [97] 13.5% err-lsts->split-indices [122] 3.9% errors [118] 2.8% sindices->spoints [125] 1.2% ------------------------------------------------------------------------------------------ match-e [98] 100.0% [107] 11746(7.2%) 2782(1.7%) for-loop ...-regimes-bug/src/core/ematch.rkt:59:11 for-loop [120] 65.7% list-cartesian-product [123] 7.4% curried [128] 3.1% loop [97] 3.1% ------------------------------------------------------------------------------------------ apply-match [92] 9.7% merge-egraph-nodes! [99] 90.3% [108] 3398(2.1%) 0(0.0%) update-leader! ...es-bug/src/core/egraph.rkt:217:0 for-loop [121] 90.1% update-en-expr [126] 9.9% ------------------------------------------------------------------------------------------ for-loop [102] 9.6% loop [97] 29.5% merge-egraph-nodes! [99] 30.1% apply-match [92] 30.7% [109] 1748(1.1%) 690(0.4%) loop! .../fix-regimes-bug/src/core/enode.rkt:163:2 custom-set-union [127] 30.2% loop [97] 29.5% update-en-expr [126] 10.4% ------------------------------------------------------------------------------------------ ??? [100] 100.0% [110] 1402(0.9%) 1402(0.9%) make-keyword-procedure ...ket/private/kw.rkt:260:4 ------------------------------------------------------------------------------------------ apply-match [92] 31.5% substitute-e [103] 34.1% for-loop [102] 34.3% [111] 1072(0.7%) 1072(0.7%) mk-enode! ...regimes-bug/src/core/egraph.rkt:101:0 ------------------------------------------------------------------------------------------ for-loop [105] 15.9% ??? [95] 17.0% ...s-bug/src/common.rkt:47:2 [57] 67.1% [112] 1052(0.6%) 692(0.4%) ??? ...ects/racket/contract/private/list.rkt:342:4 ??? [124] 34.2% ??? [95] 32.9% ------------------------------------------------------------------------------------------ merge-egraph-nodes! [99] 100.0% [113] 362(0.2%) 0(0.0%) for-loop ...regimes-bug/src/core/egraph.rkt:200:10 merge-egraph-nodes! [99] 100.0% ------------------------------------------------------------------------------------------ loop [97] 100.0% [114] 360(0.2%) 0(0.0%) foldl ...et/collects/racket/private/list.rkt:229:4 merge2 [129] 100.0% ------------------------------------------------------------------------------------------ merge-egraph-nodes! [99] 100.0% [115] 334(0.2%) 334(0.2%) for-loop ...-regimes-bug/src/core/egraph.rkt:232:6 ------------------------------------------------------------------------------------------ match-e [98] 100.0% [116] 326(0.2%) 0(0.0%) curry* ...racket/collects/racket/function.rkt:44:2 procedure-arity [130] 100.0% ------------------------------------------------------------------------------------------ option-on-expr [106] 100.0% [117] 36892(22.7%) 0(0.0%) pick-errors ...imes-bug/src/core/regimes.rkt:160:0 for-loop [131] 99.0% eval-prog [140] 1.0% ------------------------------------------------------------------------------------------ composed [74] 4.8% option-on-expr [106] 5.9% override-at-pnts [94] 6.9% loop [97] 28.3% best-and-tied-at-points [90] 54.1% [118] 29332(18.1%) 0(0.0%) errors ...bie/fix-regimes-bug/src/points.rkt:218:0 for-loop [132] 81.0% eval-prog [140] 19.0% ------------------------------------------------------------------------------------------ option-on-expr [106] 100.0% [119] 11390(7.0%) 0(0.0%) sort-context-on-expr ...s-bug/src/points.rkt:115:0 ??? [133] 100.0% ------------------------------------------------------------------------------------------ match-e [98] 26.8% for-loop [107] 73.2% [120] 10354(6.4%) 688(0.4%) for-loop ...-regimes-bug/src/core/ematch.rkt:65:37 match-e [98] 88.6% ??? [136] 6.4% ------------------------------------------------------------------------------------------ update-leader! [108] 100.0% [121] 3062(1.9%) 360(0.2%) for-loop ...-regimes-bug/src/core/egraph.rkt:222:6 for-loop [134] 88.2% ------------------------------------------------------------------------------------------ option-on-expr [106] 100.0% [122] 2426(1.5%) 0(0.0%) err-lsts->split-indices .../core/regimes.rkt:214:0 add-splitpoint [135] 100.0% ------------------------------------------------------------------------------------------ match-e [98] 12.8% for-loop [107] 37.2% list-cartesian-product [123] 50.0% [123] 1406(0.9%) 1048(0.6%) list-cartesian-product ...src/core/ematch.rkt:20:0 list-cartesian-product [123] 50.0% for-loop [139] 12.7% ------------------------------------------------------------------------------------------ ??? [112] 34.2% for-loop [93] 65.8% [124] 1054(0.6%) 694(0.4%) ??? ...ects/racket/contract/private/hash.rkt:222:6 check-hash/c [137] 34.2% ------------------------------------------------------------------------------------------ option-on-expr [106] 100.0% [125] 724(0.4%) 0(0.0%) sindices->spoints ...ug/src/core/regimes.rkt:105:0 eval-prog [140] 50.3% for-loop [138] 49.7% ------------------------------------------------------------------------------------------ update-leader! [108] 48.1% loop! [109] 51.9% [126] 698(0.4%) 698(0.4%) update-en-expr ...es-bug/src/core/egraph.rkt:211:0 ------------------------------------------------------------------------------------------ loop! [109] 100.0% [127] 696(0.4%) 696(0.4%) custom-set-union ...et/private/set-types.rkt:168:0 ------------------------------------------------------------------------------------------ loop [97] 48.1% for-loop [107] 51.9% [128] 694(0.4%) 694(0.4%) curried ...cket/collects/racket/function.rkt:71:18 ------------------------------------------------------------------------------------------ foldl [114] 100.0% [129] 360(0.2%) 360(0.2%) merge2 ...fix-regimes-bug/src/core/ematch.rkt:31:0 ------------------------------------------------------------------------------------------ curry* [116] 100.0% [130] 326(0.2%) 326(0.2%) procedure-arity ...ket/private/norm-arity.rkt:7:27 ------------------------------------------------------------------------------------------ pick-errors [117] 100.0% [131] 36532(22.5%) 360(0.2%) for-loop ...regimes-bug/src/core/regimes.rkt:163:6 eval-prog [140] 96.1% ??? [162] 2.9% ------------------------------------------------------------------------------------------ errors [118] 100.0% [132] 23752(14.6%) 1330(0.8%) for-loop ...e/fix-regimes-bug/src/points.rkt:221:4 ??? [162] 79.1% ->flonum [169] 9.8% ulp-difference [170] 5.6% ------------------------------------------------------------------------------------------ sort-context-on-expr [119] 100.0% [133] 11390(7.0%) 0(0.0%) ??? ...cket/collects/racket/private/sort.rkt:403:3 generic-sort/key [141] 79.5% loop [156] 20.5% ------------------------------------------------------------------------------------------ for-loop [121] 100.0% [134] 2702(1.7%) 0(0.0%) for-loop ...-regimes-bug/src/core/egraph.rkt:223:8 hash-update! [142] 100.0% ------------------------------------------------------------------------------------------ err-lsts->split-indices [122] 100.0% [135] 2426(1.5%) 0(0.0%) add-splitpoint ...s-bug/src/core/regimes.rkt:227:2 for-loop [143] 100.0% ------------------------------------------------------------------------------------------ for-loop [120] 100.0% [136] 658(0.4%) 330(0.2%) ??? ...ie/fix-regimes-bug/src/core/ematch.rkt:50:5 for-loop [145] 49.8% ------------------------------------------------------------------------------------------ ??? [124] 100.0% [137] 360(0.2%) 360(0.2%) check-hash/c ...ket/contract/private/hash.rkt:83:0 ------------------------------------------------------------------------------------------ sindices->spoints [125] 100.0% [138] 360(0.2%) 0(0.0%) for-loop ...regimes-bug/src/core/regimes.rkt:106:2 ??? [144] 100.0% ------------------------------------------------------------------------------------------ list-cartesian-product [123] 100.0% [139] 358(0.2%) 358(0.2%) for-loop ...x-regimes-bug/src/core/ematch.rkt:24:8 ------------------------------------------------------------------------------------------ pick-errors [117] 0.9% sindices->spoints [125] 0.9% errors [118] 13.5% for-loop [131] 84.8% [140] 41420(25.5%) 14542(9.0%) eval-prog ...ix-regimes-bug/src/programs.rkt:149:0 f37 [82] 55.7% hash-ref! [146] 2.5% go [150] 1.8% ??? [151] 1.7% ??? [152] 1.6% ------------------------------------------------------------------------------------------ ??? [133] 100.0% [141] 9054(5.6%) 0(0.0%) generic-sort/key .../racket/private/sort.rkt:185:2 copying-mergesort [147] 73.8% loop [156] 26.2% ------------------------------------------------------------------------------------------ for-loop [134] 100.0% [142] 2702(1.7%) 0(0.0%) hash-update! ...ket/private/more-scheme.rkt:362:13 ??? [148] 100.0% ------------------------------------------------------------------------------------------ add-splitpoint [135] 100.0% [143] 2426(1.5%) 652(0.4%) for-loop ...regimes-bug/src/core/regimes.rkt:229:4 for-loop [149] 58.5% loop [153] 14.7% ------------------------------------------------------------------------------------------ for-loop [138] 100.0% [144] 360(0.2%) 0(0.0%) ??? ...tract/private/arrow-higher-order.rkt:346:33 table-ref [53] 100.0% ------------------------------------------------------------------------------------------ ??? [136] 100.0% [145] 328(0.2%) 328(0.2%) for-loop ...x-regimes-bug/src/core/ematch.rkt:51:7 ------------------------------------------------------------------------------------------ for-loop [17] 1.4% for-loop [164] 1.5% compile [42] 1.6% localize-error [47] 2.7% loop [97] 3.4% ??? [158] 4.0% eval-prog [140] 4.7% ??? [9] 5.6% for-loop [25] 10.7% for-loop [15] 15.1% ??? [155] 23.9% loop [63] 23.9% [146] 12428(7.7%) 1392(0.9%) hash-ref! ...racket/private/more-scheme.rkt:373:13 ??? [155] 23.9% simplify [55] 22.1% ??? [3] 15.1% ??? [4] 11.9% ??? [158] 8.0% parse-loop50 [154] 7.8% ??? [8] 2.6% ??? [10] 1.5% ??? [11] 0.8% f37 [82] 0.5% ------------------------------------------------------------------------------------------ copying-mergesort [147] 42.5% generic-sort/key [141] 57.5% [147] 6684(4.1%) 0(0.0%) copying-mergesort ...racket/private/sort.rkt:130:8 loop [156] 47.3% copying-mergesort [147] 42.5% jloop [5] 10.2% ------------------------------------------------------------------------------------------ hash-update! [142] 100.0% [148] 2702(1.7%) 0(0.0%) ??? .../fix-regimes-bug/src/core/egraph.rkt:225:24 for-loop [157] 100.0% ------------------------------------------------------------------------------------------ for-loop [143] 100.0% [149] 1418(0.9%) 1418(0.9%) for-loop ...regimes-bug/src/core/regimes.rkt:233:8 ------------------------------------------------------------------------------------------ eval-prog [140] 100.0% [150] 728(0.4%) 366(0.2%) go .../collects/racket/private/qq-and-or.rkt:50:20 loop [161] 49.7% ------------------------------------------------------------------------------------------ eval-prog [140] 100.0% [151] 690(0.4%) 0(0.0%) ??? ...cket/collects/racket/private/kw.rkt:1633:36 unpack242 [159] 100.0% ------------------------------------------------------------------------------------------ eval-prog [140] 100.0% [152] 668(0.4%) 0(0.0%) ??? ...collects/racket/private/qq-and-or.rkt:155:9 ??? [160] 100.0% ------------------------------------------------------------------------------------------ for-loop [143] 5.6% loop [153] 94.4% [153] 356(0.2%) 356(0.2%) loop ...hare/racket/collects/racket/list.rkt:154:2 loop [153] 94.4% ------------------------------------------------------------------------------------------ for-loop [19] 8.9% loop [97] 9.9% hash-ref! [146] 10.9% parse-loop50 [154] 15.9% map [91] 22.9% simplify [55] 31.6% [154] 9472(5.8%) 4096(2.5%) parse-loop50 ...s/racket/match/compiler.rkt:418:15 loop [97] 24.1% f37 [82] 17.6% parse-loop50 [154] 15.9% for-loop [164] 8.9% parse-app [163] 4.5% map [91] 2.8% simplify* [165] 1.7% loop [167] 1.2% ------------------------------------------------------------------------------------------ hash-ref! [146] 100.0% [155] 9342(5.8%) 0(0.0%) ??? ...e/fix-regimes-bug/src/core/taylor.rkt:43:15 hash-ref! [146] 100.0% ------------------------------------------------------------------------------------------ ??? [133] 27.0% generic-sort/key [141] 27.4% copying-mergesort [147] 45.6% [156] 8650(5.3%) 0(0.0%) loop ...ket/collects/racket/private/sort.rkt:97:12 ??? [162] 100.0% ------------------------------------------------------------------------------------------ ??? [148] 100.0% [157] 2702(1.7%) 2702(1.7%) for-loop ...regimes-bug/src/core/egraph.rkt:226:26 ------------------------------------------------------------------------------------------ hash-ref! [146] 100.0% [158] 1362(0.8%) 0(0.0%) ??? ...rbie/fix-regimes-bug/src/programs.rkt:184:5 hash-ref! [146] 51.5% loop [97] 48.5% ------------------------------------------------------------------------------------------ ??? [151] 100.0% [159] 690(0.4%) 332(0.2%) unpack242 ...private/arrow-higher-order.rkt:354:44 maybe-cons-kwd [166] 51.9% ------------------------------------------------------------------------------------------ ??? [152] 100.0% [160] 668(0.4%) 668(0.4%) ??? ...ollects/racket/private/qq-and-or.rkt:164:21 ------------------------------------------------------------------------------------------ go [150] 14.3% loop [161] 85.7% [161] 362(0.2%) 362(0.2%) loop ...llects/racket/private/qq-and-or.rkt:101:61 loop [161] 85.7% ------------------------------------------------------------------------------------------ for-loop [131] 2.7% jloop [5] 6.1% loop [156] 21.9% loop [97] 21.9% for-loop [132] 47.5% [162] 39568(24.4%) 0(0.0%) ??? ...rbie/fix-regimes-bug/src/programs.rkt:155:4 ??? [168] 90.3% ->flonum [169] 6.1% ??? [171] 2.7% ??? [175] 1.0% ------------------------------------------------------------------------------------------ parse-loop50 [154] 66.0% [163] 1058(0.7%) 360(0.2%) parse-app .../collects/racket/private/kw.rkt:951:2 loop [173] 66.0% ------------------------------------------------------------------------------------------ parse-loop50 [154] 100.0% [164] 1020(0.6%) 0(0.0%) for-loop ...regimes-bug/src/core/taylor.rkt:487:59 hash-ref! [146] 100.0% ------------------------------------------------------------------------------------------ simplify [55] 47.9% parse-loop50 [154] 52.1% [165] 626(0.4%) 0(0.0%) simplify* ...-regimes-bug/src/core/reduce.rkt:20:0 ??? [174] 100.0% ------------------------------------------------------------------------------------------ unpack242 [159] 100.0% [166] 358(0.2%) 0(0.0%) maybe-cons-kwd ...ate/arrow-higher-order.rkt:498:0 successfully-got-the-right-kind-of-function [172]100.0% ------------------------------------------------------------------------------------------ parse-loop50 [154] 11.1% loop [167] 88.9% [167] 334(0.2%) 0(0.0%) loop ...cket/collects/racket/private/map.rkt:36:19 loop [167] 88.9% ulp-difference [170] 11.1% ------------------------------------------------------------------------------------------ ??? [162] 100.0% [168] 35720(22.0%) 17210(10.6%) ??? ...acket/collects/racket/private/kw.rkt:444:14 ??? [176] 26.2% ??? [177] 18.2% ??? [178] 6.6% ??? [180] 0.8% ------------------------------------------------------------------------------------------ map [91] 5.2% jloop [5] 5.3% loop [97] 16.6% for-loop [132] 35.8% ??? [162] 37.2% [169] 6476(4.0%) 2754(1.7%) ->flonum .../fix-regimes-bug/src/programs.rkt:37:0 ??? [182] 26.4% return/no-unsupplied [183] 25.5% ??? [181] 5.6% ------------------------------------------------------------------------------------------ loop [167] 20.1% for-loop [132] 79.9% [170] 1658(1.0%) 330(0.2%) ulp-difference ...x-regimes-bug/src/float.rkt:19:0 ??? [182] 60.0% return/no-unsupplied [183] 20.1% ------------------------------------------------------------------------------------------ ??? [162] 100.0% [171] 1058(0.7%) 0(0.0%) ??? ...contract/private/../../private/kw.rkt:761:9 real->bigfloat [179] 100.0% ------------------------------------------------------------------------------------------ maybe-cons-kwd [166] 49.9% ??? [85] 50.1% [172] 718(0.4%) 718(0.4%) successfully-got-the-right-kind-of-function ...9:4 ------------------------------------------------------------------------------------------ loop [173] 34.6% parse-app [163] 65.4% [173] 698(0.4%) 698(0.4%) loop .../collects/racket/private/stxcase.rkt:112:7 loop [173] 34.6% ------------------------------------------------------------------------------------------ simplify* [165] 100.0% [174] 626(0.4%) 326(0.2%) ??? ...racket/collects/racket/private/kw.rkt:762:9 ??? [187] 47.9% ------------------------------------------------------------------------------------------ ??? [162] 100.0% [175] 382(0.2%) 0(0.0%) ??? ...tract/private/arrow-higher-order.rkt:145:21 ??? [56] 100.0% ------------------------------------------------------------------------------------------ ??? [168] 100.0% [176] 9362(5.8%) 5530(3.4%) ??? ...ix-regimes-bug/src/syntax/syntax.rkt:118:17 ??? [182] 22.6% return/no-unsupplied [183] 14.5% list-member? [186] 3.8% ------------------------------------------------------------------------------------------ loop [97] 5.3% ??? [168] 94.7% [177] 6848(4.2%) 3204(2.0%) ??? ...-racket/utils/simple-result-arrow.rkt:39:12 bfsub [184] 37.3% bfcbrt [185] 15.9% ------------------------------------------------------------------------------------------ ??? [168] 100.0% [178] 2362(1.5%) 2362(1.5%) ??? ...rivate/unconstrained-domain-arrow.rkt:40:13 ------------------------------------------------------------------------------------------ ??? [171] 100.0% [179] 1058(0.7%) 300(0.2%) real->bigfloat .../private/bigfloat/mpfr.rkt:451:0 ??? [188] 71.6% ------------------------------------------------------------------------------------------ ??? [168] 44.9% ??? [95] 55.1% [180] 668(0.4%) 668(0.4%) ??? ...ects/racket/contract/private/prop.rkt:493:4 ------------------------------------------------------------------------------------------ ->flonum [169] 100.0% [181] 362(0.2%) 0(0.0%) ??? ...-racket/utils/simple-result-arrow.rkt:60:15 ??? [188] 100.0% ------------------------------------------------------------------------------------------ table-ref [53] 5.6% debug7 [69] 6.1% ??? [64] 6.2% ulp-difference [170] 16.9% ->flonum [169] 29.1% ??? [176] 36.1% [182] 5868(3.6%) 1410(0.9%) ??? ...racket/collects/racket/private/kw.rkt:761:9 ??? [187] 76.0% ------------------------------------------------------------------------------------------ ulp-difference [170] 9.0% table-ref [53] 9.7% ??? [176] 36.6% ->flonum [169] 44.6% [183] 3700(2.3%) 2738(1.7%) return/no-unsupplied ...ct/private/arr-i.rkt:533:0 filter [189] 26.0% ------------------------------------------------------------------------------------------ ??? [177] 100.0% [184] 2554(1.6%) 2174(1.3%) bfsub ...-lib/math/private/bigfloat/mpfr.rkt:819:4 ??? [188] 14.9% ------------------------------------------------------------------------------------------ ??? [177] 100.0% [185] 1090(0.7%) 362(0.2%) bfcbrt ...lib/math/private/bigfloat/mpfr.rkt:616:4 ??? [188] 66.8% ------------------------------------------------------------------------------------------ ??? [176] 100.0% [186] 360(0.2%) 360(0.2%) list-member? ...llects/racket/private/set.rkt:24:0 ------------------------------------------------------------------------------------------ ??? [174] 6.3% ??? [182] 93.7% [187] 4758(2.9%) 4758(2.9%) ??? ...s/racket/contract/private/arr-i.rkt:1233:27 ------------------------------------------------------------------------------------------ ??? [181] 16.2% bfsub [184] 17.1% bfcbrt [185] 32.7% real->bigfloat [179] 34.0% [188] 2228(1.4%) 2228(1.4%) ??? .../share/racket/collects/ffi/unsafe.rkt:861:4 ------------------------------------------------------------------------------------------ return/no-unsupplied [183] 100.0% [189] 962(0.6%) 962(0.6%) filter ...t/collects/racket/private/list.rkt:256:2 ------------------------------------------------------------------------------------------