Profiling results ----------------- Total cpu time observed: 67574ms (out of 68264ms) Number of samples taken: 201 (once every 336ms) (Hiding functions with self<1.0% and local<2.0%: 2 of 209 hidden) =========================================================================== Caller Idx Total Self Name+src Local% ms(pct) ms(pct) Callee =========================================================================== run [32] 50.0% [1] 67574(100.0%) 0(0.0%) ??? ...lects/racket/private/more-scheme.rkt:261:28 profile-thunk16 [16] 50.0% run-improve39 [17] 36.6% prepare-points [19] 8.0% get-final-combination [20] 2.8% loop [49] 2.5% --------------------------------------------------------------------------- ??? [151] 100.0% [2] 38598(57.1%) 0(0.0%) ??? ...e/clean-out-code/src/core/simplify.rkt:31:0 iterate-egraph!7 [18] 93.6% loop [26] 5.6% mk-egraph [29] 0.8% --------------------------------------------------------------------------- ??? [151] 100.0% [3] 4220(6.2%) 0(0.0%) approximate9 ...-out-code/src/core/taylor.rkt:12:0 loop [21] 86.4% taylor [38] 7.1% for-loop [31] 6.6% --------------------------------------------------------------------------- hash-ref! [161] 100.0% [4] 3362(5.0%) 0(0.0%) ??? ...ie/clean-out-code/src/core/taylor.rkt:67:15 ??? [151] 52.6% hash-ref! [161] 47.4% --------------------------------------------------------------------------- hash-ref! [161] 100.0% [5] 3312(4.9%) 0(0.0%) ??? ...e/clean-out-code/src/core/taylor.rkt:295:23 for-loop [23] 100.0% --------------------------------------------------------------------------- hash-ref! [161] 100.0% [6] 3046(4.5%) 0(0.0%) ??? ...e/clean-out-code/src/core/taylor.rkt:392:23 for-loop [24] 100.0% --------------------------------------------------------------------------- hash-ref! [161] 100.0% [7] 2188(3.2%) 300(0.4%) ??? ...e/clean-out-code/src/core/taylor.rkt:483:23 for-loop [25] 93.1% --------------------------------------------------------------------------- hash-ref! [161] 100.0% [8] 2054(3.0%) 0(0.0%) ??? ...e/clean-out-code/src/core/taylor.rkt:285:26 for-loop [27] 100.0% --------------------------------------------------------------------------- loop [80] 100.0% [9] 1242(1.8%) 0(0.0%) set-precompute! ...ode/src/core/simplify.rkt:144:0 for-loop [28] 100.0% --------------------------------------------------------------------------- copying-mergesort [130] 100.0% [10] 916(1.4%) 0(0.0%) jloop ...t/collects/racket/private/sort.rkt:120:23 ??? [142] 100.0% --------------------------------------------------------------------------- for-loop [108] 31.4% for-loop [48] 34.2% match-e [57] 34.4% [11] 872(1.3%) 0(0.0%) variable? ...-out-code/src/syntax/syntax.rkt:713:0 ??? [69] 100.0% --------------------------------------------------------------------------- hash-ref! [161] 100.0% [12] 566(0.8%) 0(0.0%) ??? ...e/clean-out-code/src/core/taylor.rkt:322:33 hash-ref! [161] 53.0% simplify [22] 47.0% --------------------------------------------------------------------------- append-map [140] 100.0% [13] 334(0.5%) 0(0.0%) free-variables ...n-out-code/src/programs.rkt:80:0 ??? [69] 100.0% --------------------------------------------------------------------------- for-loop [198] 100.0% [14] 300(0.4%) 0(0.0%) expand-implicit (unknown source) resolve+shift28 [30] 100.0% --------------------------------------------------------------------------- taylor [38] 100.0% [15] 278(0.4%) 0(0.0%) taylor-invert ...ut-code/src/core/taylor.rkt:312:0 simplify [22] 100.0% --------------------------------------------------------------------------- ??? [1] 100.0% [16] 67574(100.0%) 0(0.0%) profile-thunk16 ...e/pkgs/profile-lib/main.rkt:9:0 run [32] 100.0% --------------------------------------------------------------------------- ??? [1] 100.0% [17] 49502(73.3%) 0(0.0%) run-improve39 ...n-out-code/src/mainloop.rkt:286:0 for-loop [33] 99.4% setup-prog!32 [43] 0.6% --------------------------------------------------------------------------- ??? [2] 100.0% [18] 36118(53.4%) 0(0.0%) iterate-egraph!7 ...ode/src/core/simplify.rkt:55:0 one-iter [34] 96.6% map-enodes [39] 3.4% --------------------------------------------------------------------------- ??? [1] 100.0% [19] 10846(16.1%) 0(0.0%) prepare-points ...an-out-code/src/points.rkt:156:0 loop [68] 35.1% loop [60] 32.9% make-exacts* [73] 26.4% for-loop [61] 5.6% --------------------------------------------------------------------------- ??? [1] 100.0% [20] 3806(5.6%) 0(0.0%) get-final-combination ...de/src/mainloop.rkt:309:0 infer-splitpoints4 [35] 100.0% --------------------------------------------------------------------------- approximate9 [3] 100.0% [21] 3644(5.4%) 0(0.0%) loop ...ie/clean-out-code/src/core/taylor.rkt:86:4 hash-ref! [161] 92.3% ??? [151] 7.7% --------------------------------------------------------------------------- ??? [12] 7.3% taylor-invert [15] 7.7% hash-ref! [161] 85.0% [22] 3622(5.4%) 0(0.0%) simplify ...lean-out-code/src/core/reduce.rkt:16:0 f67 [127] 67.8% simplify* [145] 16.3% parse-loop14 [36] 15.9% --------------------------------------------------------------------------- ??? [5] 100.0% [23] 3312(4.9%) 0(0.0%) for-loop ...an-out-code/src/core/taylor.rkt:298:27 hash-ref! [161] 100.0% --------------------------------------------------------------------------- ??? [6] 100.0% [24] 3046(4.5%) 0(0.0%) for-loop ...an-out-code/src/core/taylor.rkt:396:33 hash-ref! [161] 100.0% --------------------------------------------------------------------------- ??? [7] 100.0% [25] 2188(3.2%) 0(0.0%) for-loop ...an-out-code/src/core/taylor.rkt:487:35 parse-loop14 [36] 100.0% --------------------------------------------------------------------------- ??? [2] 100.0% [26] 2156(3.2%) 322(0.5%) loop ...clean-out-code/src/core/simplify.rkt:188:2 for-loop [37] 85.1% --------------------------------------------------------------------------- ??? [8] 100.0% [27] 2054(3.0%) 0(0.0%) for-loop ...an-out-code/src/core/taylor.rkt:285:52 hash-ref! [161] 84.2% ??? [42] 15.8% --------------------------------------------------------------------------- set-precompute! [9] 100.0% [28] 1242(1.8%) 300(0.4%) for-loop ...n-out-code/src/core/simplify.rkt:146:2 eval-const-expr [40] 52.0% setfindf [45] 23.8% --------------------------------------------------------------------------- ??? [2] 100.0% [29] 324(0.5%) 0(0.0%) mk-egraph ...an-out-code/src/core/egraph.rkt:131:0 mk-enode-rec! [41] 100.0% --------------------------------------------------------------------------- expand-implicit [14] 100.0% [30] 300(0.4%) 0(0.0%) resolve+shift28 (unknown source) fallback-loop [44] 100.0% --------------------------------------------------------------------------- approximate9 [3] 100.0% [31] 278(0.4%) 0(0.0%) for-loop ...ean-out-code/src/core/taylor.rkt:29:18 taylor [38] 100.0% --------------------------------------------------------------------------- profile-thunk16 [16] 100.0% [32] 67574(100.0%) 0(0.0%) run ...racket/share/pkgs/profile-lib/main.rkt:39:2 ??? [1] 100.0% --------------------------------------------------------------------------- run-improve39 [17] 100.0% [33] 49186(72.8%) 0(0.0%) for-loop .../clean-out-code/src/mainloop.rkt:303:8 run-iter! [46] 100.0% --------------------------------------------------------------------------- iterate-egraph!7 [18] 100.0% [34] 34876(51.6%) 608(0.9%) one-iter ...an-out-code/src/core/simplify.rkt:66:0 for-loop [47] 72.5% for-loop [48] 25.8% --------------------------------------------------------------------------- get-final-combination [20] 100.0% [35] 3806(5.6%) 0(0.0%) infer-splitpoints4 ...de/src/core/regimes.rkt:26:0 loop [80] 75.6% option-on-expr [95] 24.4% --------------------------------------------------------------------------- parse-loop14 [36] 3.3% simplify [22] 7.8% hash-ref! [161] 9.3% map [134] 12.7% for-loop [25] 66.9% [36] 3048(4.5%) 276(0.4%) parse-loop14 ...s/racket/match/compiler.rkt:418:15 for-loop [50] 66.9% f67 [127] 12.7% map [134] 4.7% loop [80] 4.7% parse-loop14 [36] 3.3% temp68_2 [128] 3.3% --------------------------------------------------------------------------- loop [26] 100.0% [37] 1834(2.7%) 0(0.0%) for-loop ...-out-code/src/core/simplify.rkt:181:29 argmin [51] 83.1% for-loop [53] 16.9% --------------------------------------------------------------------------- map [134] 3.8% for-loop [31] 3.8% approximate9 [3] 10.3% taylor [38] 21.7% hash-ref! [161] 60.3% [38] 1452(2.1%) 298(0.4%) taylor ...clean-out-code/src/core/taylor.rkt:163:0 taylor-quotient [52] 60.3% taylor [38] 21.7% map [134] 3.8% taylor-invert [15] 3.8% --------------------------------------------------------------------------- iterate-egraph!7 [18] 100.0% [39] 1242(1.8%) 0(0.0%) map-enodes ...n-out-code/src/core/egraph.rkt:140:0 loop [80] 100.0% --------------------------------------------------------------------------- for-loop [28] 100.0% [40] 646(1.0%) 0(0.0%) eval-const-expr ...out-code/src/programs.rkt:132:0 eval-prog [121] 100.0% --------------------------------------------------------------------------- mk-egraph [29] 25.0% mk-enode-rec! [41] 75.0% [41] 324(0.5%) 0(0.0%) mk-enode-rec! ...ut-code/src/core/egraph.rkt:122:0 mk-enode-rec! [41] 75.0% mk-enode! [92] 25.0% --------------------------------------------------------------------------- for-loop [27] 100.0% [42] 324(0.5%) 0(0.0%) ??? ...e/clean-out-code/src/core/taylor.rkt:288:19 hash-ref! [161] 100.0% --------------------------------------------------------------------------- run-improve39 [17] 100.0% [43] 316(0.5%) 0(0.0%) setup-prog!32 ...an-out-code/src/mainloop.rkt:63:0 loop [49] 100.0% --------------------------------------------------------------------------- resolve+shift28 [30] 100.0% [44] 300(0.4%) 0(0.0%) fallback-loop (unknown source) for-loop [198] 100.0% --------------------------------------------------------------------------- for-loop [28] 100.0% [45] 296(0.4%) 0(0.0%) setfindf ...ie/clean-out-code/src/common.rkt:176:0 for-loop [54] 100.0% --------------------------------------------------------------------------- for-loop [33] 100.0% [46] 49186(72.8%) 0(0.0%) run-iter! ...clean-out-code/src/mainloop.rkt:267:0 simplify! [55] 78.5% finalize-iter! [58] 11.3% gen-series! [59] 8.6% gen-rewrites! [64] 1.1% localize-error [66] 0.6% --------------------------------------------------------------------------- one-iter [34] 100.0% [47] 25286(37.4%) 612(0.9%) for-loop ...n-out-code/src/core/simplify.rkt:117:2 for-loop [56] 90.5% match-e [57] 7.1% --------------------------------------------------------------------------- for-loop [48] 44.7% one-iter [34] 55.3% [48] 8982(13.3%) 3160(4.7%) for-loop ...n-out-code/src/core/simplify.rkt:76:12 for-loop [48] 44.7% match-e [57] 30.8% variable? [11] 1.7% --------------------------------------------------------------------------- setup-prog!32 [43] 8.5% ??? [1] 91.5% [49] 3736(5.5%) 0(0.0%) loop ...herbie/clean-out-code/src/points.rkt:180:2 loop [68] 43.1% for-loop [61] 36.3% loop [60] 10.6% make-exacts* [73] 10.0% --------------------------------------------------------------------------- parse-loop14 [36] 100.0% [50] 2188(3.2%) 0(0.0%) for-loop ...an-out-code/src/core/taylor.rkt:490:59 hash-ref! [161] 100.0% --------------------------------------------------------------------------- for-loop [37] 100.0% [51] 1524(2.3%) 0(0.0%) argmin ...92/racket/collects/racket/list.rkt:765:0 for-loop [62] 80.2% expression-cost [65] 19.8% --------------------------------------------------------------------------- taylor [38] 100.0% [52] 876(1.3%) 0(0.0%) taylor-quotient ...-code/src/core/taylor.rkt:328:0 first-nonzero-exp [63] 100.0% --------------------------------------------------------------------------- for-loop [37] 100.0% [53] 310(0.5%) 310(0.5%) for-loop ...-out-code/src/core/simplify.rkt:168:13 --------------------------------------------------------------------------- setfindf [45] 100.0% [54] 296(0.4%) 296(0.4%) for-loop ...ie/clean-out-code/src/common.rkt:177:2 --------------------------------------------------------------------------- run-iter! [46] 100.0% [55] 38598(57.1%) 0(0.0%) simplify! ...clean-out-code/src/mainloop.rkt:181:0 for-loop [67] 100.0% --------------------------------------------------------------------------- for-loop [47] 100.0% [56] 22874(33.9%) 0(0.0%) for-loop ...n-out-code/src/core/simplify.rkt:99:10 mk-enode! [92] 41.2% substitute-e [71] 23.0% merge-egraph-nodes! [72] 19.4% loop! [96] 11.0% list-member? [76] 5.5% --------------------------------------------------------------------------- for-loop [47] 14.4% for-loop [85] 20.0% for-loop [48] 65.6% [57] 7324(10.8%) 1532(2.3%) match-e ...clean-out-code/src/core/ematch.rkt:46:0 for-loop [70] 70.1% ??? [69] 7.6% variable? [11] 1.4% --------------------------------------------------------------------------- run-iter! [46] 100.0% [58] 5534(8.2%) 0(0.0%) finalize-iter! ...-out-code/src/mainloop.rkt:221:0 ??? [69] 100.0% --------------------------------------------------------------------------- run-iter! [46] 100.0% [59] 4220(6.2%) 0(0.0%) gen-series! ...ean-out-code/src/mainloop.rkt:151:0 for-loop [74] 100.0% --------------------------------------------------------------------------- loop [49] 10.0% prepare-points [19] 90.0% [60] 3966(5.9%) 0(0.0%) loop ...herbie/clean-out-code/src/points.rkt:124:2 loop [68] 72.5% make-exacts* [73] 27.5% --------------------------------------------------------------------------- prepare-points [19] 30.9% loop [49] 69.1% [61] 1962(2.9%) 0(0.0%) for-loop ...e/clean-out-code/src/points.rkt:195:19 ??? [75] 100.0% --------------------------------------------------------------------------- argmin [51] 100.0% [62] 1222(1.8%) 0(0.0%) for-loop .../clean-out-code/src/programs.rkt:169:2 table-ref [133] 100.0% --------------------------------------------------------------------------- taylor-quotient [52] 100.0% [63] 876(1.3%) 0(0.0%) first-nonzero-exp ...ode/src/core/taylor.rkt:260:0 hash-ref! [161] 100.0% --------------------------------------------------------------------------- run-iter! [46] 100.0% [64] 550(0.8%) 0(0.0%) gen-rewrites! ...n-out-code/src/mainloop.rkt:164:0 for-loop [77] 100.0% --------------------------------------------------------------------------- argmin [51] 100.0% [65] 302(0.4%) 0(0.0%) expression-cost ...out-code/src/programs.rkt:168:0 compile [78] 100.0% --------------------------------------------------------------------------- run-iter! [46] 100.0% [66] 284(0.4%) 0(0.0%) localize-error ...-code/src/core/localize.rkt:47:0 hash-ref! [161] 100.0% --------------------------------------------------------------------------- simplify! [55] 100.0% [67] 38598(57.1%) 0(0.0%) for-loop .../clean-out-code/src/mainloop.rkt:185:6 for-loop [79] 100.0% --------------------------------------------------------------------------- loop [49] 19.4% loop [60] 34.7% prepare-points [19] 45.9% [68] 8298(12.3%) 0(0.0%) loop ...herbie/clean-out-code/src/points.rkt:107:4 loop [80] 100.0% --------------------------------------------------------------------------- free-variables [13] 4.0% variable? [11] 10.6% match-e [57] 18.4% finalize-iter! [58] 67.0% [69] 8260(12.2%) 1834(2.7%) ??? ...contract/private/arrow-val-first.rkt:388:18 for-loop [81] 67.0% hash-has-key? [88] 10.8% --------------------------------------------------------------------------- match-e [57] 100.0% [70] 5792(8.6%) 2720(4.0%) for-loop ...ean-out-code/src/core/ematch.rkt:59:11 for-loop [85] 42.1% list-cartesian-product [89] 10.5% foldl [91] 5.8% --------------------------------------------------------------------------- for-loop [56] 100.0% [71] 5260(7.8%) 0(0.0%) substitute-e ...-out-code/src/core/ematch.rkt:71:0 for-loop [82] 100.0% --------------------------------------------------------------------------- for-loop [87] 14.2% for-loop [56] 85.8% [72] 4436(6.6%) 0(0.0%) merge-egraph-nodes! ...e/src/core/egraph.rkt:153:0 update-leader! [84] 67.2% for-loop [87] 32.8% --------------------------------------------------------------------------- loop [49] 8.7% loop [60] 25.2% prepare-points [19] 66.1% [73] 4322(6.4%) 0(0.0%) make-exacts* ...lean-out-code/src/points.rkt:104:0 loop [80] 100.0% --------------------------------------------------------------------------- gen-series! [59] 100.0% [74] 4220(6.2%) 0(0.0%) for-loop .../clean-out-code/src/mainloop.rkt:157:7 taylor-alt [83] 100.0% --------------------------------------------------------------------------- for-loop [61] 100.0% [75] 1962(2.9%) 0(0.0%) ??? .../herbie/clean-out-code/src/points.rkt:172:7 for-loop [86] 100.0% --------------------------------------------------------------------------- for-loop [56] 100.0% [76] 1248(1.8%) 0(0.0%) list-member? ...llects/racket/private/set.rkt:24:0 loop [205] 100.0% --------------------------------------------------------------------------- gen-rewrites! [64] 100.0% [77] 550(0.8%) 0(0.0%) for-loop ...clean-out-code/src/mainloop.rkt:169:11 ??? [90] 100.0% --------------------------------------------------------------------------- expression-cost [65] 100.0% [78] 302(0.4%) 0(0.0%) compile ...e/clean-out-code/src/programs.rkt:145:0 hash-ref! [161] 100.0% --------------------------------------------------------------------------- for-loop [67] 100.0% [79] 38598(57.1%) 0(0.0%) for-loop .../clean-out-code/src/mainloop.rkt:209:8 ??? [151] 100.0% --------------------------------------------------------------------------- ??? [187] 0.0% parse-loop14 [36] 0.0% option-on-expr [95] 0.2% loop [68] 0.9% map-enodes [39] 2.4% ??? [142] 2.5% make-exacts* [73] 3.8% loop! [96] 3.9% infer-splitpoints4 [35] 8.7% loop [80] 77.6% [80] 20230(29.9%) 1398(2.1%) loop ...cket/collects/racket/private/map.rkt:40:19 loop [80] 77.6% option-on-expr [95] 8.7% ??? [142] 4.8% loop! [96] 3.9% set-precompute! [9] 2.4% ??? [151] 1.7% bf [152] 0.2% hash-ref! [161] 0.0% --------------------------------------------------------------------------- ??? [69] 100.0% [81] 5534(8.2%) 0(0.0%) for-loop ...n-out-code/src/core/alt-table.rkt:51:2 atab-add-altn [93] 100.0% --------------------------------------------------------------------------- substitute-e [71] 100.0% [82] 5260(7.8%) 0(0.0%) for-loop ...ean-out-code/src/core/ematch.rkt:80:24 mk-enode! [92] 100.0% --------------------------------------------------------------------------- for-loop [74] 100.0% [83] 4220(6.2%) 0(0.0%) taylor-alt ...lean-out-code/src/mainloop.rkt:136:0 for-loop [94] 100.0% --------------------------------------------------------------------------- merge-egraph-nodes! [72] 100.0% [84] 3442(5.1%) 636(0.9%) update-leader! ...t-code/src/core/egraph.rkt:218:0 for-loop [97] 54.3% for-loop [98] 27.2% --------------------------------------------------------------------------- for-loop [70] 100.0% [85] 2742(4.1%) 312(0.5%) for-loop ...ean-out-code/src/core/ematch.rkt:65:37 match-e [57] 88.6% --------------------------------------------------------------------------- ??? [75] 100.0% [86] 1962(2.9%) 306(0.5%) for-loop ...ie/clean-out-code/src/points.rkt:173:9 ??? [151] 84.4% --------------------------------------------------------------------------- merge-egraph-nodes! [72] 100.0% [87] 1918(2.8%) 0(0.0%) for-loop ...an-out-code/src/core/egraph.rkt:201:10 merge-egraph-nodes! [72] 56.8% loop! [96] 43.2% --------------------------------------------------------------------------- ??? [69] 100.0% [88] 892(1.3%) 274(0.4%) hash-has-key? ...ket/private/more-scheme.rkt:371:2 ??? [143] 69.3% --------------------------------------------------------------------------- list-cartesian-product [89] 50.0% for-loop [70] 50.0% [89] 606(0.9%) 298(0.4%) list-cartesian-product ...src/core/ematch.rkt:20:0 list-cartesian-product [89] 50.0% for-loop [101] 25.4% --------------------------------------------------------------------------- for-loop [77] 100.0% [90] 550(0.8%) 0(0.0%) ??? ...bie/clean-out-code/src/alternative.rkt:60:0 rewriter [99] 100.0% --------------------------------------------------------------------------- for-loop [70] 100.0% [91] 334(0.5%) 0(0.0%) foldl ...et/collects/racket/private/list.rkt:229:4 merge2 [100] 100.0% --------------------------------------------------------------------------- mk-enode-rec! [41] 2.2% for-loop [82] 35.1% for-loop [56] 62.8% [92] 15004(22.2%) 962(1.4%) mk-enode! ...an-out-code/src/core/egraph.rkt:102:0 new-enode [102] 91.6% --------------------------------------------------------------------------- for-loop [81] 100.0% [93] 5534(8.2%) 0(0.0%) atab-add-altn ...code/src/core/alt-table.rkt:208:0 best-and-tied-at-points [103] 100.0% --------------------------------------------------------------------------- taylor-alt [83] 100.0% [94] 4220(6.2%) 0(0.0%) for-loop .../clean-out-code/src/mainloop.rkt:142:6 ??? [151] 100.0% --------------------------------------------------------------------------- infer-splitpoints4 [35] 24.4% loop [80] 75.6% [95] 3806(5.6%) 0(0.0%) option-on-expr ...t-code/src/core/regimes.rkt:97:0 sort-context-on-expr [104] 65.2% loop [80] 26.7% for-loop [109] 8.1% --------------------------------------------------------------------------- for-loop [87] 14.2% loop [80] 41.3% for-loop [56] 44.5% [96] 3504(5.2%) 344(0.5%) loop! ...e/clean-out-code/src/core/enode.rkt:190:2 loop [80] 41.3% custom-set-union [106] 27.1% set [107] 13.6% update-en-expr [136] 13.0% --------------------------------------------------------------------------- update-leader! [84] 100.0% [97] 1870(2.8%) 0(0.0%) for-loop ...ean-out-code/src/core/egraph.rkt:223:6 for-loop [105] 100.0% --------------------------------------------------------------------------- update-leader! [84] 100.0% [98] 936(1.4%) 614(0.9%) for-loop ...ean-out-code/src/core/egraph.rkt:233:6 update-en-expr [136] 34.4% --------------------------------------------------------------------------- matcher [117] 33.2% ??? [90] 66.8% [99] 550(0.8%) 0(0.0%) rewriter ...an-out-code/src/core/matcher.rkt:131:2 for-loop [108] 100.0% --------------------------------------------------------------------------- foldl [91] 100.0% [100] 334(0.5%) 334(0.5%) merge2 .../clean-out-code/src/core/ematch.rkt:31:0 --------------------------------------------------------------------------- list-cartesian-product [89] 100.0% [101] 308(0.5%) 308(0.5%) for-loop ...lean-out-code/src/core/ematch.rkt:24:8 --------------------------------------------------------------------------- mk-enode! [92] 100.0% [102] 13742(20.3%) 0(0.0%) new-enode ...lean-out-code/src/core/enode.rkt:95:0 type-of-enode-expr [110] 97.8% mutable-set [115] 2.2% --------------------------------------------------------------------------- atab-add-altn [93] 100.0% [103] 5534(8.2%) 0(0.0%) best-and-tied-at-points ...ore/alt-table.rkt:122:0 errors [111] 100.0% --------------------------------------------------------------------------- option-on-expr [95] 100.0% [104] 2480(3.7%) 0(0.0%) sort-context-on-expr ...t-code/src/points.rkt:90:0 ??? [112] 100.0% --------------------------------------------------------------------------- for-loop [97] 100.0% [105] 1870(2.8%) 0(0.0%) for-loop ...ean-out-code/src/core/egraph.rkt:224:8 hash-update! [113] 100.0% --------------------------------------------------------------------------- loop! [96] 100.0% [106] 1290(1.9%) 348(0.5%) custom-set-union ...et/private/set-types.rkt:168:0 for-loop [114] 73.0% --------------------------------------------------------------------------- loop! [96] 100.0% [107] 956(1.4%) 956(1.4%) set ...collects/racket/private/set-types.rkt:981:0 --------------------------------------------------------------------------- rewriter [99] 100.0% [108] 550(0.8%) 0(0.0%) for-loop ...n-out-code/src/core/matcher.rkt:134:10 type-of [116] 50.2% matcher [117] 33.2% variable? [11] 16.6% --------------------------------------------------------------------------- option-on-expr [95] 100.0% [109] 310(0.5%) 0(0.0%) for-loop ...an-out-code/src/core/regimes.rkt:104:4 errors [111] 100.0% --------------------------------------------------------------------------- new-enode [102] 100.0% [110] 13440(19.9%) 346(0.5%) type-of-enode-expr ...code/src/core/enode.rkt:68:0 ??? [118] 50.5% for-loop [119] 28.4% table-ref [133] 11.5% ...-code/src/common.rkt:48:2 [138] 4.8% get/build-late-neg-projection [156] 2.2% --------------------------------------------------------------------------- for-loop [109] 5.3% best-and-tied-at-points [103] 94.7% [111] 5844(8.6%) 334(0.5%) errors ...rbie/clean-out-code/src/points.rkt:203:0 for-loop [120] 63.1% eval-prog [121] 31.1% --------------------------------------------------------------------------- sort-context-on-expr [104] 100.0% [112] 2480(3.7%) 0(0.0%) ??? ...cket/collects/racket/private/sort.rkt:369:3 loop [137] 50.6% generic-sort/key [123] 49.4% --------------------------------------------------------------------------- for-loop [105] 100.0% [113] 1870(2.8%) 0(0.0%) hash-update! ...cket/private/more-scheme.rkt:365:4 ??? [122] 100.0% --------------------------------------------------------------------------- custom-set-union [106] 100.0% [114] 942(1.4%) 0(0.0%) for-loop ...cts/racket/private/set-types.rkt:174:3 for-loop [124] 100.0% --------------------------------------------------------------------------- new-enode [102] 100.0% [115] 302(0.4%) 302(0.4%) mutable-set .../racket/private/set-types.rkt:999:0 --------------------------------------------------------------------------- for-loop [108] 100.0% [116] 276(0.4%) 0(0.0%) type-of .../clean-out-code/src/type-check.rkt:34:0 table-ref [133] 100.0% --------------------------------------------------------------------------- for-loop [125] 50.0% for-loop [108] 50.0% [117] 274(0.4%) 0(0.0%) matcher ...ean-out-code/src/core/matcher.rkt:168:2 for-loop [125] 50.0% rewriter [99] 50.0% --------------------------------------------------------------------------- type-of-enode-expr [110] 100.0% [118] 6786(10.0%) 0(0.0%) ??? ...ects/racket/contract/private/hash.rkt:227:4 contract-pos/neg-doubling/proc [126]100.0% --------------------------------------------------------------------------- type-of-enode-expr [110] 100.0% [119] 3820(5.7%) 0(0.0%) for-loop ...racket/contract/private/hash.rkt:277:6 ??? [173] 100.0% --------------------------------------------------------------------------- errors [111] 100.0% [120] 3690(5.5%) 310(0.5%) for-loop ...ie/clean-out-code/src/points.rkt:206:4 ??? [142] 59.2% ??? [151] 24.0% ulp-difference [131] 8.5% --------------------------------------------------------------------------- eval-const-expr [40] 26.2% errors [111] 73.8% [121] 2466(3.6%) 0(0.0%) eval-prog ...clean-out-code/src/programs.rkt:109:0 temp68_2 [128] 61.6% f67 [127] 25.7% eval [132] 12.7% --------------------------------------------------------------------------- hash-update! [113] 100.0% [122] 1870(2.8%) 0(0.0%) ??? ...e/clean-out-code/src/core/egraph.rkt:226:24 for-loop [129] 100.0% --------------------------------------------------------------------------- ??? [112] 100.0% [123] 1226(1.8%) 0(0.0%) generic-sort/key .../racket/private/sort.rkt:156:2 copying-mergesort [130] 100.0% --------------------------------------------------------------------------- for-loop [114] 100.0% [124] 942(1.4%) 942(1.4%) for-loop ...cts/racket/private/set-types.rkt:178:5 --------------------------------------------------------------------------- matcher [117] 100.0% [125] 274(0.4%) 0(0.0%) for-loop ...n-out-code/src/core/matcher.rkt:184:21 matcher [117] 100.0% --------------------------------------------------------------------------- ??? [118] 100.0% [126] 6786(10.0%) 6188(9.2%) contract-pos/neg-doubling/proc ...e/guts.rkt:956:0 ??? [139] 8.8% --------------------------------------------------------------------------- append-map [140] 3.9% f67 [127] 6.3% eval-prog [121] 11.0% map [134] 19.2% parse-loop14 [36] 19.8% simplify [22] 38.5% [127] 3666(5.4%) 332(0.5%) f67 ...t/collects/racket/match/compiler.rkt:507:40 map [134] 57.9% temp68_2 [128] 13.8% ...-code/src/common.rkt:48:2 [138] 8.8% f67 [127] 6.3% append-map [140] 5.2% table-ref [133] 2.1% --------------------------------------------------------------------------- parse-loop14 [36] 11.1% f67 [127] 32.6% eval-prog [121] 56.3% [128] 2702(4.0%) 0(0.0%) temp68_2 (unknown source) compile16 [135] 100.0% --------------------------------------------------------------------------- ??? [122] 100.0% [129] 1870(2.8%) 1222(1.8%) for-loop ...an-out-code/src/core/egraph.rkt:227:26 update-en-expr [136] 34.7% --------------------------------------------------------------------------- generic-sort/key [123] 44.0% copying-mergesort [130] 56.0% [130] 1226(1.8%) 0(0.0%) copying-mergesort ...racket/private/sort.rkt:129:8 copying-mergesort [130] 56.0% loop [137] 25.3% jloop [10] 18.7% --------------------------------------------------------------------------- for-loop [120] 100.0% [131] 312(0.5%) 312(0.5%) ulp-difference ...lean-out-code/src/float.rkt:19:0 --------------------------------------------------------------------------- eval-prog [121] 100.0% [132] 312(0.5%) 0(0.0%) eval (unknown source) add-ns-scopes [141] 100.0% --------------------------------------------------------------------------- type-of [116] 8.2% f67 [127] 9.2% for-loop [62] 36.4% type-of-enode-expr [110] 46.1% [133] 3354(5.0%) 0(0.0%) table-ref ...ie/clean-out-code/src/common.rkt:47:0 ??? [143] 91.1% ??? [150] 8.9% --------------------------------------------------------------------------- taylor [38] 4.6% parse-loop14 [36] 9.4% f67 [127] 86.0% [134] 3016(4.5%) 0(0.0%) map ...acket/collects/racket/private/map.rkt:35:13 f67 [127] 38.6% parse-loop14 [36] 29.0% simplify* [145] 14.8% hash-ref! [161] 9.4% taylor [38] 4.6% simplify-node [149] 3.6% --------------------------------------------------------------------------- temp68_2 [128] 100.0% [135] 2702(4.0%) 0(0.0%) compile16 (unknown source) temp74_0 [144] 100.0% --------------------------------------------------------------------------- for-loop [98] 17.1% for-loop [129] 34.4% loop! [96] 48.5% [136] 1884(2.8%) 962(1.4%) update-en-expr ...t-code/src/core/egraph.rkt:212:0 for-loop [146] 48.9% --------------------------------------------------------------------------- copying-mergesort [130] 19.8% ??? [112] 80.2% [137] 1564(2.3%) 0(0.0%) loop ...ket/collects/racket/private/sort.rkt:96:12 ??? [142] 80.2% ??? [151] 19.8% --------------------------------------------------------------------------- f67 [127] 33.5% type-of-enode-expr [110] 66.5% [138] 966(1.4%) 308(0.5%) ...-code/src/common.rkt:48:2 ...e/arr-i.rkt:918:19 ??? [147] 68.1% --------------------------------------------------------------------------- contract-pos/neg-doubling/proc [126]100.0% [139] 598(0.9%) 0(0.0%) ??? ...ects/racket/contract/private/list.rkt:191:2 ??? [148] 100.0% --------------------------------------------------------------------------- f67 [127] 100.0% [140] 334(0.5%) 0(0.0%) append-map ...acket/collects/racket/list.rkt:586:2 f67 [127] 75.0% free-variables [13] 25.0% --------------------------------------------------------------------------- eval [132] 100.0% [141] 312(0.5%) 312(0.5%) add-ns-scopes (unknown source) --------------------------------------------------------------------------- jloop [10] 5.5% loop [137] 7.6% for-loop [120] 13.2% loop [80] 73.7% [142] 16546(24.5%) 1334(2.0%) ??? ...erbie/clean-out-code/src/programs.rkt:129:2 ??? [153] 30.9% bf [152] 23.0% loop [80] 22.6% ??? [151] 15.4% --------------------------------------------------------------------------- hash-has-key? [88] 16.8% table-ref [133] 83.2% [143] 3672(5.4%) 930(1.4%) ??? ...ects/racket/contract/private/list.rkt:798:4 for-loop [155] 49.8% ??? [163] 24.8% --------------------------------------------------------------------------- compile16 [135] 100.0% [144] 2702(4.0%) 0(0.0%) temp74_0 (unknown source) expand-single [154] 78.0% compile-top9 [157] 22.0% --------------------------------------------------------------------------- map [134] 49.7% simplify [22] 50.3% [145] 1174(1.7%) 908(1.3%) simplify* ...ean-out-code/src/core/reduce.rkt:31:0 hash-ref! [161] 22.7% --------------------------------------------------------------------------- update-en-expr [136] 100.0% [146] 922(1.4%) 922(1.4%) for-loop ...ean-out-code/src/core/egraph.rkt:214:6 --------------------------------------------------------------------------- ...-code/src/common.rkt:48:2 [138] 100.0% [147] 658(1.0%) 0(0.0%) ??? ...ects/racket/contract/private/list.rkt:367:4 ??? [173] 100.0% --------------------------------------------------------------------------- ??? [139] 100.0% [148] 598(0.9%) 0(0.0%) ??? ...ects/racket/contract/private/list.rkt:739:5 get/build-late-neg-projection [156] 100.0% --------------------------------------------------------------------------- map [134] 100.0% [149] 324(0.5%) 0(0.0%) simplify-node ...out-code/src/core/reduce.rkt:50:0 combine-mterms [158] 100.0% --------------------------------------------------------------------------- table-ref [133] 100.0% [150] 300(0.4%) 300(0.4%) ??? ...ects/racket/contract/private/hash.rkt:283:7 --------------------------------------------------------------------------- loop [21] 0.2% loop [137] 0.6% for-loop [120] 1.8% ??? [4] 2.2% for-loop [94] 3.0% for-loop [86] 3.3% loop [80] 3.5% ??? [142] 5.1% for-loop [79] 38.6% location-do [159] 41.6% [151] 49968(73.9%) 2296(3.4%) ??? ...tract/private/arrow-higher-order.rkt:357:33 location-do [159] 41.6% ??? [2] 38.6% ->flonum [160] 9.7% approximate9 [3] 3.0% hash-ref! [161] 2.4% --------------------------------------------------------------------------- loop [80] 37.8% ??? [142] 62.2% [152] 6124(9.1%) 0(0.0%) bf ...ath-lib/math/private/bigfloat/mpfr.rkt:601:2 new-mpfr [195] 77.1% ??? [197] 22.9% --------------------------------------------------------------------------- ??? [142] 100.0% [153] 5118(7.6%) 1292(1.9%) ??? ...acket/collects/racket/private/kw.rkt:592:14 bf* [164] 23.7% ??? [175] 20.9% ??? [165] 18.0% ...higher-order.rkt:361:33 [168] 6.2% ??? [170] 5.9% --------------------------------------------------------------------------- temp74_0 [144] 100.0% [154] 2108(3.1%) 0(0.0%) expand-single (unknown source) expand-capturing-lifts [162] 100.0% --------------------------------------------------------------------------- ??? [143] 100.0% [155] 1830(2.7%) 302(0.4%) for-loop ...acket/contract/private/list.rkt:804:12 ??? [163] 50.3% ??? [169] 16.9% arrow-higher-order:lnp [172] 16.3% --------------------------------------------------------------------------- ??? [171] 16.7% type-of-enode-expr [110] 16.7% ??? [148] 66.6% [156] 898(1.3%) 300(0.4%) get/build-late-neg-projection ...te/guts.rkt:793:0 ??? [166] 66.6% ??? [171] 16.7% --------------------------------------------------------------------------- temp74_0 [144] 100.0% [157] 594(0.9%) 0(0.0%) compile-top9 (unknown source) compile-forms31 [167] 100.0% --------------------------------------------------------------------------- simplify-node [149] 100.0% [158] 324(0.5%) 324(0.5%) combine-mterms ...t-code/src/core/reduce.rkt:191:0 --------------------------------------------------------------------------- ??? [151] 40.8% location-do [159] 59.2% [159] 42818(63.4%) 0(0.0%) location-do ...lean-out-code/src/programs.rkt:90:0 location-do [159] 59.2% ??? [151] 40.8% --------------------------------------------------------------------------- ??? [151] 100.0% [160] 4854(7.2%) 2874(4.3%) ->flonum ...e/clean-out-code/src/programs.rkt:36:0 return/no-unsupplied [176] 19.8% ??? [179] 12.6% ??? [197] 8.3% --------------------------------------------------------------------------- ??? [12] 0.5% ??? [42] 0.8% simplify* [145] 0.8% first-nonzero-exp [63] 2.2% loop [80] 2.2% map [134] 2.2% localize-error [66] 2.2% ??? [184] 3.6% compile [78] 3.6% for-loop [27] 5.1% for-loop [50] 5.7% ??? [174] 9.7% loop [21] 10.6% ??? [4] 10.9% for-loop [24] 11.7% ??? [151] 11.9% for-loop [23] 16.2% [161] 4230(6.3%) 266(0.4%) hash-ref! .../racket/private/more-scheme.rkt:376:2 ??? [4] 21.5% ??? [5] 16.2% ??? [6] 11.7% simplify [22] 10.6% ??? [174] 9.7% ??? [184] 7.1% ??? [7] 6.2% ??? [8] 5.9% parse-loop14 [36] 4.5% ??? [187] 2.2% taylor [38] 2.2% ??? [12] 1.3% --------------------------------------------------------------------------- expand-single [154] 100.0% [162] 2108(3.1%) 0(0.0%) expand-capturing-lifts (unknown source) lambda-clause-expander [177] 43.1% for-loop [198] 42.7% expand-id-application-form17 [185] 14.2% --------------------------------------------------------------------------- ??? [143] 49.8% for-loop [155] 50.2% [163] 1832(2.7%) 622(0.9%) ??? ...private/unconstrained-domain-arrow.rkt:74:4 make-keyword-procedure [178] 47.7% blame-add-missing-party [181] 18.3% --------------------------------------------------------------------------- ??? [153] 100.0% [164] 1214(1.8%) 0(0.0%) bf* ...ath/private/bigfloat/bigfloat-mpfr.rkt:95:0 ??? [175] 100.0% --------------------------------------------------------------------------- ??? [153] 100.0% [165] 922(1.4%) 922(1.4%) ??? ...clean-out-code/src/syntax/syntax.rkt:195:17 --------------------------------------------------------------------------- get/build-late-neg-projection [156] 100.0% [166] 598(0.9%) 0(0.0%) ??? ...cts/racket/contract/private/prop.rkt:344:12 build-compound-type-name [180] 100.0% --------------------------------------------------------------------------- compile-top9 [157] 100.0% [167] 594(0.9%) 282(0.4%) compile-forms31 (unknown source) loop! [182] 52.5% --------------------------------------------------------------------------- ??? [153] 100.0% [168] 318(0.5%) 0(0.0%) ...higher-order.rkt:361:33 (unknown source) ??? [173] 100.0% --------------------------------------------------------------------------- for-loop [155] 100.0% [169] 310(0.5%) 0(0.0%) ??? ...ects/racket/contract/private/hash.rkt:236:9 check-hash/c [183] 100.0% --------------------------------------------------------------------------- ??? [153] 100.0% [170] 302(0.4%) 302(0.4%) ??? ...rivate/unconstrained-domain-arrow.rkt:40:13 --------------------------------------------------------------------------- get/build-late-neg-projection [156] 100.0% [171] 300(0.4%) 0(0.0%) ??? ...ects/racket/contract/private/hash.rkt:221:2 get/build-late-neg-projection [156] 100.0% --------------------------------------------------------------------------- for-loop [155] 100.0% [172] 298(0.4%) 0(0.0%) arrow-higher-order:lnp ...w-higher-order.rkt:633:7 ??? [186] 100.0% --------------------------------------------------------------------------- ...higher-order.rkt:361:33 [168] 6.6% ??? [147] 13.7% for-loop [119] 79.6% [173] 4796(7.1%) 652(1.0%) ??? ...cts/racket/contract/private/list.rkt:209:10 ??? [188] 79.6% for-loop [193] 6.8% --------------------------------------------------------------------------- hash-ref! [161] 100.0% [174] 2768(4.1%) 0(0.0%) ??? ...ie/clean-out-code/src/core/taylor.rkt:44:15 hash-ref! [161] 100.0% --------------------------------------------------------------------------- ??? [153] 46.8% bf* [164] 53.2% [175] 2284(3.4%) 0(0.0%) ??? ...-racket/utils/simple-result-arrow.rkt:39:12 bfadd [189] 100.0% --------------------------------------------------------------------------- ->flonum [160] 100.0% [176] 962(1.4%) 630(0.9%) return/no-unsupplied ...ct/private/arr-i.rkt:534:0 filter [192] 34.5% --------------------------------------------------------------------------- expand-capturing-lifts [162] 100.0% [177] 908(1.3%) 0(0.0%) lambda-clause-expander (unknown source) finish-bodys [190] 100.0% --------------------------------------------------------------------------- ??? [163] 100.0% [178] 874(1.3%) 874(1.3%) make-keyword-procedure ...ket/private/kw.rkt:407:4 --------------------------------------------------------------------------- ->flonum [160] 100.0% [179] 614(0.9%) 614(0.9%) ??? ...s/racket/contract/private/arr-i.rkt:1252:29 --------------------------------------------------------------------------- contract-struct-name [191] 25.1% ??? [166] 74.9% [180] 598(0.9%) 0(0.0%) build-compound-type-name ...private/guts.rkt:515:0 contract-struct-name [191] 100.0% --------------------------------------------------------------------------- ??? [163] 100.0% [181] 336(0.5%) 336(0.5%) blame-add-missing-party ...private/blame.rkt:383:0 --------------------------------------------------------------------------- compile-forms31 [167] 100.0% [182] 312(0.5%) 0(0.0%) loop! (unknown source) for-loop [198] 100.0% --------------------------------------------------------------------------- ??? [169] 100.0% [183] 310(0.5%) 310(0.5%) check-hash/c ...ket/contract/private/hash.rkt:83:0 --------------------------------------------------------------------------- hash-ref! [161] 100.0% [184] 302(0.4%) 302(0.4%) ??? ...erbie/clean-out-code/src/programs.rkt:153:5 hash-ref! [161] 50.0% --------------------------------------------------------------------------- expand-capturing-lifts [162] 100.0% [185] 300(0.4%) 0(0.0%) expand-id-application-form17 (unknown source) binding-lookup50 [194] 100.0% --------------------------------------------------------------------------- arrow-higher-order:lnp [172] 100.0% [186] 298(0.4%) 298(0.4%) ??? ...et/contract/private/arity-checking.rkt:19:2 --------------------------------------------------------------------------- hash-ref! [161] 100.0% [187] 284(0.4%) 0(0.0%) ??? .../clean-out-code/src/core/localize.rkt:22:13 loop [80] 100.0% --------------------------------------------------------------------------- ??? [173] 100.0% [188] 3820(5.7%) 0(0.0%) ??? ...ects/racket/contract/private/list.rkt:747:7 ??? [196] 100.0% --------------------------------------------------------------------------- ??? [175] 100.0% [189] 2284(3.4%) 0(0.0%) bfadd ...-lib/math/private/bigfloat/mpfr.rkt:821:4 new-mpfr [195] 66.5% ??? [197] 33.5% --------------------------------------------------------------------------- lambda-clause-expander [177] 31.3% for-loop [198] 68.7% [190] 908(1.3%) 0(0.0%) finish-bodys (unknown source) for-loop [198] 100.0% --------------------------------------------------------------------------- build-compound-type-name [180] 100.0% [191] 598(0.9%) 598(0.9%) contract-struct-name ...ract/private/prop.rkt:87:0 build-compound-type-name [180] 25.1% --------------------------------------------------------------------------- return/no-unsupplied [176] 100.0% [192] 332(0.5%) 332(0.5%) filter ...t/collects/racket/private/list.rkt:256:2 --------------------------------------------------------------------------- ??? [173] 100.0% [193] 324(0.5%) 324(0.5%) for-loop ...acket/contract/private/list.rkt:212:15 --------------------------------------------------------------------------- expand-id-application-form17 [185] 100.0% [194] 300(0.4%) 300(0.4%) binding-lookup50 (unknown source) --------------------------------------------------------------------------- bfadd [189] 24.4% bf [152] 75.6% [195] 6242(9.2%) 6242(9.2%) new-mpfr ...b/math/private/bigfloat/mpfr.rkt:335:0 --------------------------------------------------------------------------- ??? [188] 100.0% [196] 3820(5.7%) 3820(5.7%) ??? ...ects/racket/contract/private/guts.rkt:746:8 --------------------------------------------------------------------------- ->flonum [160] 15.7% bfadd [189] 29.7% bf [152] 54.6% [197] 2570(3.8%) 2570(3.8%) ??? /home/p92/racket/collects/ffi/unsafe.rkt:898:4 --------------------------------------------------------------------------- fallback-loop [44] 4.7% loop! [182] 14.7% expand-capturing-lifts [162] 16.5% for-loop [198] 30.7% finish-bodys [190] 33.4% [198] 2120(3.1%) 912(1.3%) for-loop (unknown source) for-loop [198] 30.7% finish-bodys [190] 24.1% expand-implicit [14] 4.7% expand-identifier [201] 4.7% add-local-binding!37 [199] 3.8% syntax-e [200] 3.7% dispatch-transformer41 [202] 1.9% --------------------------------------------------------------------------- for-loop [198] 100.0% [199] 322(0.5%) 322(0.5%) add-local-binding!37 (unknown source) --------------------------------------------------------------------------- for-loop [198] 100.0% [200] 310(0.5%) 0(0.0%) syntax-e (unknown source) syntax-e/no-taint [203] 100.0% --------------------------------------------------------------------------- for-loop [198] 100.0% [201] 300(0.4%) 300(0.4%) expand-identifier (unknown source) --------------------------------------------------------------------------- for-loop [198] 100.0% [202] 276(0.4%) 0(0.0%) dispatch-transformer41 (unknown source) apply-transformer52 [204] 100.0% --------------------------------------------------------------------------- syntax-e [200] 100.0% [203] 310(0.5%) 0(0.0%) syntax-e/no-taint (unknown source) loop [205] 100.0% --------------------------------------------------------------------------- dispatch-transformer41 [202] 100.0% [204] 276(0.4%) 276(0.4%) apply-transformer52 (unknown source) --------------------------------------------------------------------------- syntax-e/no-taint [203] 19.9% list-member? [76] 80.1% [205] 1558(2.3%) 1248(1.8%) loop (unknown source) gf [206] 19.9% --------------------------------------------------------------------------- loop [205] 100.0% [206] 310(0.5%) 0(0.0%) gf (unknown source) cache-or-reuse-hash [207] 100.0% --------------------------------------------------------------------------- gf [206] 100.0% [207] 310(0.5%) 310(0.5%) cache-or-reuse-hash (unknown source) ---------------------------------------------------------------------------