Profiling results ----------------- Total cpu time observed: 38678ms (out of 38788ms) Number of samples taken: 188 (once every 206ms) (Hiding functions with self<1.0% and local<2.0%: 2 of 213 hidden) ======================================================================================= Caller Idx Total Self Name+src Local% ms(pct) ms(pct) Callee ======================================================================================= [1] 38678(100.0%) 0(0.0%) ??? ...lects/racket/private/more-scheme.rkt:261:28 profile-thunk16 [12] 100.0% --------------------------------------------------------------------------------------- ??? [122] 100.0% [2] 2638(6.8%) 0(0.0%) approximate9 ...y-regraph/src/core/taylor.rkt:11:0 loop [13] 92.4% taylor-quotient [19] 7.6% --------------------------------------------------------------------------------------- hash-ref! [69] 100.0% [3] 2238(5.8%) 0(0.0%) ??? .../simplify-regraph/src/core/taylor.rkt:44:15 hash-ref! [69] 81.1% ??? [23] 18.9% --------------------------------------------------------------------------------------- hash-ref! [69] 100.0% [4] 1224(3.2%) 0(0.0%) ??? ...simplify-regraph/src/core/taylor.rkt:300:23 for-loop [14] 100.0% --------------------------------------------------------------------------------------- hash-ref! [69] 100.0% [5] 1028(2.7%) 0(0.0%) ??? ...simplify-regraph/src/core/taylor.rkt:290:26 for-loop [15] 100.0% --------------------------------------------------------------------------------------- map [95] 19.9% hash-ref! [69] 80.1% [6] 996(2.6%) 0(0.0%) parse-loop74 (unknown source) eval-const-expr [27] 100.0% --------------------------------------------------------------------------------------- loop [186] 32.4% for-loop [183] 67.6% [7] 624(1.6%) 0(0.0%) syntax-e (unknown source) syntax-e/no-taint [16] 100.0% --------------------------------------------------------------------------------------- for-loop [183] 100.0% [8] 602(1.6%) 0(0.0%) dispatch-transformer41 (unknown source) apply-transformer52 [17] 100.0% --------------------------------------------------------------------------------------- simplify-node [113] 100.0% [9] 216(0.6%) 0(0.0%) gather-additive-terms6 ...src/core/reduce.rkt:68:0 append-map [40] 100.0% --------------------------------------------------------------------------------------- matcher [116] 100.0% [10] 202(0.5%) 0(0.0%) ??? ...implify-regraph/src/core/matcher.rkt:127:11 for-loop [18] 100.0% --------------------------------------------------------------------------------------- hash-ref! [69] 100.0% [11] 200(0.5%) 0(0.0%) taylor ...mplify-regraph/src/core/taylor.rkt:169:0 taylor-invert [20] 100.0% --------------------------------------------------------------------------------------- ??? [1] 100.0% [12] 38678(100.0%) 0(0.0%) profile-thunk16 ...e/pkgs/profile-lib/main.rkt:9:0 run [21] 100.0% --------------------------------------------------------------------------------------- approximate9 [2] 100.0% [13] 2438(6.3%) 0(0.0%) loop .../simplify-regraph/src/core/taylor.rkt:86:4 hash-ref! [69] 91.7% ??? [122] 8.3% --------------------------------------------------------------------------------------- ??? [4] 100.0% [14] 1224(3.2%) 0(0.0%) for-loop ...ify-regraph/src/core/taylor.rkt:303:27 hash-ref! [69] 100.0% --------------------------------------------------------------------------------------- ??? [5] 100.0% [15] 1028(2.7%) 0(0.0%) for-loop ...ify-regraph/src/core/taylor.rkt:290:52 f61 [22] 58.6% ??? [23] 41.4% --------------------------------------------------------------------------------------- expand-id-application-form17 [194] 24.3% syntax-e [7] 75.7% [16] 824(2.1%) 0(0.0%) syntax-e/no-taint (unknown source) loop [186] 100.0% --------------------------------------------------------------------------------------- dispatch-transformer41 [8] 100.0% [17] 602(1.6%) 0(0.0%) apply-transformer52 (unknown source) apply-transformer-in-context [25] 66.4% loop [186] 33.6% --------------------------------------------------------------------------------------- ??? [10] 100.0% [18] 202(0.5%) 0(0.0%) for-loop ...fy-regraph/src/core/matcher.rkt:129:15 matcher [116] 100.0% --------------------------------------------------------------------------------------- approximate9 [2] 100.0% [19] 200(0.5%) 0(0.0%) taylor-quotient ...graph/src/core/taylor.rkt:333:0 first-nonzero-exp [24] 100.0% --------------------------------------------------------------------------------------- taylor [11] 100.0% [20] 200(0.5%) 0(0.0%) taylor-invert ...regraph/src/core/taylor.rkt:317:0 first-nonzero-exp [24] 100.0% --------------------------------------------------------------------------------------- profile-thunk16 [12] 100.0% [21] 38678(100.0%) 0(0.0%) run ...et-7.5/share/pkgs/profile-lib/main.rkt:39:2 .../more-scheme.rkt:261:28 [26] 100.0% --------------------------------------------------------------------------------------- map [95] 19.4% hash-ref! [69] 21.7% for-loop [15] 58.9% [22] 1022(2.6%) 0(0.0%) f61 (unknown source) eval-const-expr [27] 60.9% composed [28] 39.1% --------------------------------------------------------------------------------------- ??? [3] 49.8% for-loop [15] 50.2% [23] 628(1.6%) 0(0.0%) ??? ...simplify-regraph/src/core/taylor.rkt:293:19 hash-ref! [69] 100.0% --------------------------------------------------------------------------------------- taylor-invert [20] 50.0% taylor-quotient [19] 50.0% [24] 400(1.0%) 0(0.0%) first-nonzero-exp ...aph/src/core/taylor.rkt:265:0 hash-ref! [69] 100.0% --------------------------------------------------------------------------------------- apply-transformer52 [17] 100.0% [25] 400(1.0%) 198(0.5%) apply-transformer-in-context (unknown source) ??? [29] 50.5% --------------------------------------------------------------------------------------- for-loop [125] 2.1% run [21] 97.9% [26] 38678(100.0%) 592(1.5%) .../more-scheme.rkt:261:28 (unknown source) run-improve47 [30] 88.9% prepare-points-intervals [80] 4.8% get-final-combination [31] 1.8% oracle-error [33] 1.6% errors [106] 1.0% ??? [32] 0.8% ??? [122] 0.5% --------------------------------------------------------------------------------------- f61 [22] 38.4% parse-loop74 [6] 61.6% [27] 1618(4.2%) 0(0.0%) eval-const-expr ...-regraph/src/programs.rkt:120:0 temp85_0 [121] 87.6% eval [36] 12.4% --------------------------------------------------------------------------------------- f61 [22] 100.0% [28] 400(1.0%) 0(0.0%) composed ...ollects/racket/private/list.rkt:321:16 free-variables [34] 100.0% --------------------------------------------------------------------------------------- apply-transformer-in-context [25] 100.0% [29] 202(0.5%) 0(0.0%) ??? ...collects/racket/private/qq-and-or.rkt:155:9 ??? [35] 100.0% --------------------------------------------------------------------------------------- .../more-scheme.rkt:261:28 [26] 100.0% [30] 34970(90.4%) 0(0.0%) run-improve47 ...fy-regraph/src/mainloop.rkt:346:0 for-loop [37] 99.4% simplify! [49] 0.6% --------------------------------------------------------------------------------------- .../more-scheme.rkt:261:28 [26] 100.0% [31] 678(1.8%) 0(0.0%) get-final-combination ...ph/src/mainloop.rkt:371:0 infer-splitpoints [39] 67.8% f33 [41] 32.2% --------------------------------------------------------------------------------------- .../more-scheme.rkt:261:28 [26] 100.0% [32] 606(1.6%) 606(1.6%) ??? ...mplify-regraph/src/syntax/syntax.rkt:214:17 --------------------------------------------------------------------------------------- .../more-scheme.rkt:261:28 [26] 100.0% [33] 600(1.6%) 0(0.0%) oracle-error ...plify-regraph/src/points.rkt:177:0 for-loop [38] 100.0% --------------------------------------------------------------------------------------- append-map [40] 24.8% composed [28] 75.2% [34] 400(1.0%) 202(0.5%) free-variables ...fy-regraph/src/programs.rkt:56:0 append-map [40] 49.5% --------------------------------------------------------------------------------------- ??? [29] 100.0% [35] 202(0.5%) 0(0.0%) ??? ...ollects/racket/private/qq-and-or.rkt:164:21 syntax->list [42] 100.0% --------------------------------------------------------------------------------------- eval-const-expr [27] 100.0% [36] 200(0.5%) 0(0.0%) eval (unknown source) namespace-syntax-introduce3 [43] 100.0% --------------------------------------------------------------------------------------- run-improve47 [30] 100.0% [37] 34774(89.9%) 0(0.0%) for-loop ...implify-regraph/src/mainloop.rkt:365:4 run-iter! [44] 100.0% --------------------------------------------------------------------------------------- oracle-error [33] 100.0% [38] 600(1.6%) 0(0.0%) for-loop .../simplify-regraph/src/points.rkt:178:2 loop [186] 100.0% --------------------------------------------------------------------------------------- get-final-combination [31] 100.0% [39] 460(1.2%) 0(0.0%) infer-splitpoints ...aph/src/core/regimes.rkt:33:0 for-loop [45] 100.0% --------------------------------------------------------------------------------------- free-variables [34] 47.8% gather-additive-terms6 [9] 52.2% [40] 414(1.1%) 198(0.5%) append-map ...t-7.5/collects/racket/list.rkt:586:2 parse-loop389 [47] 52.2% free-variables [34] 23.9% --------------------------------------------------------------------------------------- get-final-combination [31] 100.0% [41] 218(0.6%) 0(0.0%) f33 (unknown source) sindices->spoints [46] 100.0% --------------------------------------------------------------------------------------- ??? [35] 100.0% [42] 202(0.5%) 0(0.0%) syntax->list (unknown source) loop [186] 100.0% --------------------------------------------------------------------------------------- eval [36] 100.0% [43] 200(0.5%) 0(0.0%) namespace-syntax-introduce3 (unknown source) add-ns-scopes [48] 100.0% --------------------------------------------------------------------------------------- for-loop [37] 100.0% [44] 34774(89.9%) 0(0.0%) run-iter! ...mplify-regraph/src/mainloop.rkt:327:0 simplify! [49] 78.5% finalize-iter! [50] 11.6% gen-series! [51] 7.6% localize! [53] 1.2% gen-rewrites! [56] 0.6% choose-best-alt! [57] 0.6% --------------------------------------------------------------------------------------- infer-splitpoints [39] 100.0% [45] 460(1.2%) 0(0.0%) for-loop ...lify-regraph/src/core/regimes.rkt:45:6 option-on-expr [52] 100.0% --------------------------------------------------------------------------------------- f33 [41] 100.0% [46] 218(0.6%) 0(0.0%) sindices->spoints ...ph/src/core/regimes.rkt:194:0 for-loop [54] 100.0% --------------------------------------------------------------------------------------- append-map [40] 100.0% [47] 216(0.6%) 0(0.0%) parse-loop389 (unknown source) for-loop [55] 100.0% --------------------------------------------------------------------------------------- namespace-syntax-introduce3 [43] 100.0% [48] 200(0.5%) 200(0.5%) add-ns-scopes (unknown source) --------------------------------------------------------------------------------------- run-improve47 [30] 0.7% run-iter! [44] 99.3% [49] 27494(71.1%) 0(0.0%) simplify! ...mplify-regraph/src/mainloop.rkt:224:0 ??? [58] 100.0% --------------------------------------------------------------------------------------- run-iter! [44] 100.0% [50] 4038(10.4%) 0(0.0%) finalize-iter! ...y-regraph/src/mainloop.rkt:278:0 ??? [59] 100.0% --------------------------------------------------------------------------------------- run-iter! [44] 100.0% [51] 2638(6.8%) 0(0.0%) gen-series! ...lify-regraph/src/mainloop.rkt:160:0 for-loop [60] 100.0% --------------------------------------------------------------------------------------- for-loop [45] 100.0% [52] 460(1.2%) 0(0.0%) option-on-expr ...graph/src/core/regimes.rkt:124:0 err-lsts->split-indices [62] 51.7% for-loop [63] 48.3% --------------------------------------------------------------------------------------- run-iter! [44] 100.0% [53] 400(1.0%) 0(0.0%) localize! ...mplify-regraph/src/mainloop.rkt:127:0 localize-error [61] 100.0% --------------------------------------------------------------------------------------- sindices->spoints [46] 100.0% [54] 218(0.6%) 0(0.0%) for-loop ...ify-regraph/src/core/regimes.rkt:234:9 binary-search-floats [64] 100.0% --------------------------------------------------------------------------------------- parse-loop389 [47] 100.0% [55] 216(0.6%) 0(0.0%) for-loop ...lify-regraph/src/core/reduce.rkt:95:13 simplify-node [113] 100.0% --------------------------------------------------------------------------------------- run-iter! [44] 100.0% [56] 202(0.5%) 0(0.0%) gen-rewrites! ...fy-regraph/src/mainloop.rkt:183:0 for-loop [65] 100.0% --------------------------------------------------------------------------------------- run-iter! [44] 100.0% [57] 198(0.5%) 0(0.0%) choose-best-alt! ...regraph/src/mainloop.rkt:117:0 ...ow-val-first.rkt:486:18 [66] 100.0% --------------------------------------------------------------------------------------- simplify! [49] 100.0% [58] 27494(71.1%) 0(0.0%) ??? ...simplify-regraph/src/core/simplify.rkt:38:0 ??? [67] 100.0% --------------------------------------------------------------------------------------- finalize-iter! [50] 100.0% [59] 4038(10.4%) 0(0.0%) ??? ...contract/private/arrow-val-first.rkt:486:18 for-loop [68] 90.1% atab-add-altns [71] 9.9% --------------------------------------------------------------------------------------- gen-series! [51] 100.0% [60] 2638(6.8%) 0(0.0%) for-loop ...implify-regraph/src/mainloop.rkt:167:7 taylor-alt [70] 100.0% --------------------------------------------------------------------------------------- localize! [53] 100.0% [61] 400(1.0%) 0(0.0%) localize-error ...graph/src/core/localize.rkt:58:0 hash-ref! [69] 100.0% --------------------------------------------------------------------------------------- option-on-expr [52] 100.0% [62] 238(0.6%) 0(0.0%) err-lsts->split-indices .../core/regimes.rkt:263:0 loop [72] 100.0% --------------------------------------------------------------------------------------- option-on-expr [52] 100.0% [63] 222(0.6%) 0(0.0%) for-loop ...ify-regraph/src/core/regimes.rkt:135:4 errors [106] 100.0% --------------------------------------------------------------------------------------- for-loop [54] 100.0% [64] 218(0.6%) 0(0.0%) binary-search-floats ...src/core/regimes.rkt:176:0 pred [73] 100.0% --------------------------------------------------------------------------------------- gen-rewrites! [56] 100.0% [65] 202(0.5%) 0(0.0%) for-loop ...mplify-regraph/src/mainloop.rkt:191:11 rewrite-expression-head24 [74] 100.0% --------------------------------------------------------------------------------------- choose-best-alt! [57] 100.0% [66] 198(0.5%) 0(0.0%) ...ow-val-first.rkt:486:18 (unknown source) ??? [75] 100.0% --------------------------------------------------------------------------------------- ??? [58] 100.0% [67] 27494(71.1%) 0(0.0%) ??? ...simplify-regraph/src/core/simplify.rkt:56:0 for-loop [76] 99.3% make-regraph5 [91] 0.7% --------------------------------------------------------------------------------------- ??? [59] 100.0% [68] 3638(9.4%) 0(0.0%) for-loop ...fy-regraph/src/core/alt-table.rkt:46:2 atab-add-altn [78] 55.4% loop [83] 16.7% errors [106] 16.6% override-at-pnts [87] 5.9% best-and-tied-at-points [89] 5.5% --------------------------------------------------------------------------------------- simplify* [114] 0.8% map [95] 3.3% ??? [82] 4.4% ??? [84] 4.5% ??? [23] 4.9% for-loop [14] 7.3% first-nonzero-exp [24] 7.9% ??? [79] 9.8% localize-error [61] 9.9% ??? [3] 13.5% loop [13] 16.0% ??? [122] 17.7% [69] 3038(7.9%) 204(0.5%) hash-ref! .../racket/private/more-scheme.rkt:376:2 ??? [79] 25.8% ??? [3] 16.4% parse-loop15 [85] 13.2% parse-loop74 [6] 7.3% ??? [4] 7.3% simplify [90] 6.6% ??? [5] 5.6% f40 [81] 5.5% ??? [84] 4.5% ??? [82] 4.4% taylor [11] 1.3% f61 [22] 1.2% --------------------------------------------------------------------------------------- for-loop [60] 100.0% [70] 2638(6.8%) 0(0.0%) taylor-alt ...plify-regraph/src/mainloop.rkt:146:0 for-loop [77] 100.0% --------------------------------------------------------------------------------------- ??? [59] 100.0% [71] 400(1.0%) 0(0.0%) atab-add-altns ...raph/src/core/alt-table.rkt:40:0 atab-add-altn [78] 100.0% --------------------------------------------------------------------------------------- err-lsts->split-indices [62] 100.0% [72] 238(0.6%) 0(0.0%) loop ...implify-regraph/src/core/regimes.rkt:314:4 for-loop [86] 100.0% --------------------------------------------------------------------------------------- binary-search-floats [64] 100.0% [73] 218(0.6%) 0(0.0%) pred ...implify-regraph/src/core/regimes.rkt:204:4 prepare-points-intervals [80] 100.0% --------------------------------------------------------------------------------------- for-loop [65] 100.0% [74] 202(0.5%) 0(0.0%) rewrite-expression-head24 ...core/matcher.rkt:85:0 rewriter [88] 100.0% --------------------------------------------------------------------------------------- ...ow-val-first.rkt:486:18 [66] 100.0% [75] 198(0.5%) 0(0.0%) ??? ...implify-regraph/src/core/alt-table.rkt:49:0 loop [92] 100.0% --------------------------------------------------------------------------------------- ??? [67] 100.0% [76] 27294(70.6%) 0(0.0%) for-loop ...ify-regraph/src/core/simplify.rkt:76:2 for-loop [93] 100.0% --------------------------------------------------------------------------------------- taylor-alt [70] 100.0% [77] 2638(6.8%) 0(0.0%) for-loop ...implify-regraph/src/mainloop.rkt:152:6 ??? [122] 100.0% --------------------------------------------------------------------------------------- atab-add-altns [71] 16.6% for-loop [68] 83.4% [78] 2414(6.2%) 0(0.0%) atab-add-altn ...raph/src/core/alt-table.rkt:194:0 errors [106] 91.8% loop [103] 8.2% --------------------------------------------------------------------------------------- hash-ref! [69] 100.0% [79] 2236(5.8%) 0(0.0%) ??? .../simplify-regraph/src/core/taylor.rkt:67:15 ??? [122] 66.7% hash-ref! [69] 33.3% --------------------------------------------------------------------------------------- pred [73] 10.6% .../more-scheme.rkt:261:28 [26] 89.4% [80] 2060(5.3%) 0(0.0%) prepare-points-intervals ...h/src/points.rkt:120:0 loop [94] 100.0% --------------------------------------------------------------------------------------- hash-ref! [69] 31.1% map [95] 68.9% [81] 816(2.1%) 0(0.0%) f40 (unknown source) map [95] 100.0% --------------------------------------------------------------------------------------- hash-ref! [69] 100.0% [82] 806(2.1%) 0(0.0%) ??? ...simplify-regraph/src/core/taylor.rkt:343:33 hash-ref! [69] 100.0% --------------------------------------------------------------------------------------- for-loop [68] 100.0% [83] 606(1.6%) 206(0.5%) loop ...plify-regraph/src/core/alt-table.rkt:168:2 loop [101] 33.0% loop [102] 33.0% --------------------------------------------------------------------------------------- hash-ref! [69] 100.0% [84] 424(1.1%) 0(0.0%) ??? ...simplify-regraph/src/core/taylor.rkt:327:33 hash-ref! [69] 100.0% --------------------------------------------------------------------------------------- hash-ref! [69] 100.0% [85] 400(1.0%) 0(0.0%) parse-loop15 (unknown source) map [95] 100.0% --------------------------------------------------------------------------------------- loop [72] 100.0% [86] 238(0.6%) 0(0.0%) for-loop ...ify-regraph/src/core/regimes.rkt:279:4 for-loop [96] 100.0% --------------------------------------------------------------------------------------- for-loop [68] 100.0% [87] 214(0.6%) 0(0.0%) override-at-pnts ...h/src/core/alt-table.rkt:129:0 for-loop [97] 100.0% --------------------------------------------------------------------------------------- rewrite-expression-head24 [74] 25.0% matcher [116] 75.0% [88] 202(0.5%) 0(0.0%) rewriter ...lify-regraph/src/core/matcher.rkt:87:2 for-loop [98] 100.0% --------------------------------------------------------------------------------------- for-loop [68] 100.0% [89] 200(0.5%) 200(0.5%) best-and-tied-at-points ...ore/alt-table.rkt:108:0 --------------------------------------------------------------------------------------- hash-ref! [69] 100.0% [90] 200(0.5%) 0(0.0%) simplify ...plify-regraph/src/core/reduce.rkt:16:0 f16 [99] 100.0% --------------------------------------------------------------------------------------- ??? [67] 100.0% [91] 200(0.5%) 0(0.0%) make-regraph5 ...et/7.5/pkgs/regraph/main.rkt:10:0 mk-extractor [100] 100.0% --------------------------------------------------------------------------------------- ??? [75] 100.0% [92] 198(0.5%) 0(0.0%) loop .../racket-7.5/collects/racket/list.rkt:751:4 ??? [104] 100.0% --------------------------------------------------------------------------------------- for-loop [76] 100.0% [93] 27294(70.6%) 0(0.0%) for-loop ...ify-regraph/src/core/simplify.rkt:80:4 ??? [105] 81.7% prune-phase [107] 8.0% ??? [108] 7.4% loop [111] 2.9% --------------------------------------------------------------------------------------- prepare-points-intervals [80] 100.0% [94] 2060(5.3%) 0(0.0%) loop ...rbie/simplify-regraph/src/points.rkt:132:4 ??? [109] 60.2% loop [110] 39.8% --------------------------------------------------------------------------------------- parse-loop15 [85] 32.9% f40 [81] 67.1% [95] 1216(3.1%) 0(0.0%) map ...t-7.5/collects/racket/private/map.rkt:35:13 f40 [81] 46.2% loop [117] 16.4% hash-ref! [69] 8.2% loop [118] 8.2% simplify* [114] 5.6% f61 [22] 5.4% parse-loop74 [6] 5.4% simplify-node [113] 4.4% --------------------------------------------------------------------------------------- for-loop [86] 100.0% [96] 238(0.6%) 0(0.0%) for-loop ...ify-regraph/src/core/regimes.rkt:283:8 ??? [112] 100.0% --------------------------------------------------------------------------------------- override-at-pnts [87] 100.0% [97] 214(0.6%) 214(0.6%) for-loop ...-regraph/src/core/alt-table.rkt:130:22 --------------------------------------------------------------------------------------- rewriter [88] 100.0% [98] 202(0.5%) 0(0.0%) for-loop ...lify-regraph/src/core/matcher.rkt:89:4 matcher [116] 75.0% for-loop [115] 25.0% --------------------------------------------------------------------------------------- simplify [90] 100.0% [99] 200(0.5%) 200(0.5%) f16 (unknown source) --------------------------------------------------------------------------------------- make-regraph5 [91] 100.0% [100] 200(0.5%) 200(0.5%) mk-extractor ...5/pkgs/regraph/extraction.rkt:10:0 --------------------------------------------------------------------------------------- loop [83] 100.0% [101] 200(0.5%) 200(0.5%) loop ...7.5/collects/racket/private/list.rkt:264:4 --------------------------------------------------------------------------------------- loop [83] 20.0% loop [102] 80.0% [102] 200(0.5%) 200(0.5%) loop ...racket-7.5/collects/racket/list.rkt:434:28 loop [102] 80.0% --------------------------------------------------------------------------------------- atab-add-altn [78] 100.0% [103] 198(0.5%) 198(0.5%) loop ...-7.5/collects/racket/private/hash.rkt:20:4 --------------------------------------------------------------------------------------- loop [92] 100.0% [104] 198(0.5%) 0(0.0%) ??? ...ie/simplify-regraph/src/mainloop.rkt:114:10 errors [106] 100.0% --------------------------------------------------------------------------------------- for-loop [93] 100.0% [105] 22294(57.6%) 0(0.0%) ??? .../p92/.racket/7.5/pkgs/regraph/main.rkt:42:0 for-loop [119] 53.4% find-matches [120] 46.6% --------------------------------------------------------------------------------------- ??? [104] 5.2% for-loop [63] 5.8% .../more-scheme.rkt:261:28 [26] 15.4% for-loop [68] 15.8% atab-add-altn [78] 57.9% [106] 3828(9.9%) 0(0.0%) errors ...ie/simplify-regraph/src/points.rkt:190:0 for-loop [125] 52.1% temp85_0 [121] 47.9% --------------------------------------------------------------------------------------- for-loop [93] 100.0% [107] 2186(5.7%) 0(0.0%) prune-phase ...cket/7.5/pkgs/regraph/main.rkt:70:0 for-loop [123] 100.0% --------------------------------------------------------------------------------------- for-loop [93] 100.0% [108] 2022(5.2%) 0(0.0%) ??? .../p92/.racket/7.5/pkgs/regraph/main.rkt:53:0 for-loop [124] 100.0% --------------------------------------------------------------------------------------- loop [94] 100.0% [109] 1240(3.2%) 200(0.5%) ??? ...erbie/simplify-regraph/src/points.rkt:113:6 loop [186] 49.7% sample-multi-bounded [191] 34.2% --------------------------------------------------------------------------------------- loop [94] 100.0% [110] 820(2.1%) 200(0.5%) loop ...erbie/simplify-regraph/src/points.rkt:79:2 ??? [127] 51.2% ??? [122] 24.4% --------------------------------------------------------------------------------------- for-loop [93] 100.0% [111] 792(2.0%) 0(0.0%) loop ...acket/7.5/pkgs/regraph/extraction.rkt:25:2 for-loop [126] 100.0% --------------------------------------------------------------------------------------- for-loop [96] 100.0% [112] 238(0.6%) 238(0.6%) ??? ...cket-7.5/collects/racket/function.rkt:93:12 --------------------------------------------------------------------------------------- for-loop [55] 50.0% map [95] 50.0% [113] 216(0.6%) 0(0.0%) simplify-node ...-regraph/src/core/reduce.rkt:46:0 gather-additive-terms6 [9] 50.0% combine-mterms [128] 50.0% --------------------------------------------------------------------------------------- map [95] 100.0% [114] 204(0.5%) 0(0.0%) simplify* ...lify-regraph/src/core/reduce.rkt:29:0 hash-ref! [69] 100.0% --------------------------------------------------------------------------------------- for-loop [98] 100.0% [115] 202(0.5%) 0(0.0%) for-loop ...lify-regraph/src/core/matcher.rkt:96:8 fix-up-variables [129] 100.0% --------------------------------------------------------------------------------------- for-loop [18] 50.0% for-loop [98] 50.0% [116] 202(0.5%) 0(0.0%) matcher ...lify-regraph/src/core/matcher.rkt:115:2 ??? [10] 50.0% rewriter [88] 50.0% --------------------------------------------------------------------------------------- map [95] 9.1% loop [117] 90.9% [117] 200(0.5%) 0(0.0%) loop ...-7.5/collects/racket/private/map.rkt:54:19 loop [117] 90.9% ??? [130] 9.1% --------------------------------------------------------------------------------------- map [95] 12.5% loop [118] 87.5% [118] 200(0.5%) 0(0.0%) loop ...-7.5/collects/racket/private/map.rkt:40:19 loop [118] 87.5% ??? [131] 12.5% --------------------------------------------------------------------------------------- ??? [105] 100.0% [119] 11900(30.8%) 0(0.0%) for-loop ....racket/7.5/pkgs/regraph/main.rkt:45:2 for-loop [132] 100.0% --------------------------------------------------------------------------------------- ??? [105] 100.0% [120] 10394(26.9%) 0(0.0%) find-matches ...ket/7.5/pkgs/regraph/main.rkt:34:0 for-loop [133] 100.0% --------------------------------------------------------------------------------------- eval-const-expr [27] 43.6% errors [106] 56.4% [121] 3250(8.4%) 0(0.0%) temp85_0 (unknown source) compile15 [134] 100.0% --------------------------------------------------------------------------------------- loop [13] 2.1% loop [110] 6.2% .../more-scheme.rkt:261:28 [26] 12.4% ??? [79] 23.0% location-do [135] 28.2% for-loop [77] 28.2% [122] 3238(8.4%) 400(1.0%) ??? ...tract/private/arrow-higher-order.rkt:375:33 location-do [135] 28.2% approximate9 [2] 28.2% hash-ref! [69] 25.1% ival-mult [140] 6.2% --------------------------------------------------------------------------------------- prune-phase [107] 100.0% [123] 2186(5.7%) 0(0.0%) for-loop ....racket/7.5/pkgs/regraph/main.rkt:73:2 update-leader! [149] 100.0% --------------------------------------------------------------------------------------- ??? [108] 100.0% [124] 2022(5.2%) 0(0.0%) for-loop ....racket/7.5/pkgs/regraph/main.rkt:56:2 set-precompute! [136] 100.0% --------------------------------------------------------------------------------------- errors [106] 100.0% [125] 1996(5.2%) 398(1.0%) for-loop .../simplify-regraph/src/points.rkt:192:2 .../more-scheme.rkt:261:28 [26] 80.1% --------------------------------------------------------------------------------------- loop [111] 100.0% [126] 792(2.0%) 0(0.0%) for-loop ...t/7.5/pkgs/regraph/extraction.rkt:28:4 for-loop [137] 74.7% make-sequence [141] 25.3% --------------------------------------------------------------------------------------- loop [110] 100.0% [127] 420(1.1%) 0(0.0%) ??? ...tract/private/arrow-higher-order.rkt:379:33 ival-sub [138] 100.0% --------------------------------------------------------------------------------------- simplify-node [113] 100.0% [128] 216(0.6%) 216(0.6%) combine-mterms ...egraph/src/core/reduce.rkt:193:0 --------------------------------------------------------------------------------------- for-loop [115] 100.0% [129] 202(0.5%) 0(0.0%) fix-up-variables ...aph/src/core/matcher.rkt:108:2 for-loop [139] 100.0% --------------------------------------------------------------------------------------- loop [117] 100.0% [130] 200(0.5%) 200(0.5%) ??? ...implify-regraph/src/core/localize.rkt:50:36 --------------------------------------------------------------------------------------- loop [118] 100.0% [131] 200(0.5%) 200(0.5%) ??? ...ket-7.5/collects/racket/function.rkt:138:13 --------------------------------------------------------------------------------------- for-loop [119] 100.0% [132] 11900(30.8%) 418(1.1%) for-loop ....racket/7.5/pkgs/regraph/main.rkt:48:4 merge-egraph-nodes! [142] 67.1% dedup-children! [153] 12.4% mk-enode-rec! [190] 11.9% substitute-e [145] 5.1% --------------------------------------------------------------------------------------- for-loop [133] 49.0% find-matches [120] 51.0% [133] 10394(26.9%) 400(1.0%) for-loop ....racket/7.5/pkgs/regraph/main.rkt:36:2 for-loop [133] 49.0% match-e [143] 48.1% --------------------------------------------------------------------------------------- temp85_0 [121] 100.0% [134] 3250(8.4%) 0(0.0%) compile15 (unknown source) temp91_0 [144] 100.0% --------------------------------------------------------------------------------------- location-do [135] 20.5% ??? [122] 79.5% [135] 2638(6.8%) 0(0.0%) location-do ...plify-regraph/src/programs.rkt:63:0 ??? [122] 79.5% location-do [135] 20.5% --------------------------------------------------------------------------------------- for-loop [124] 100.0% [136] 2022(5.2%) 0(0.0%) set-precompute! .../7.5/pkgs/regraph/main.rkt:60:0 merge-egraph-nodes! [142] 100.0% --------------------------------------------------------------------------------------- for-loop [126] 100.0% [137] 592(1.5%) 394(1.0%) for-loop .../7.5/pkgs/regraph/extraction.rkt:36:16 for-loop [148] 33.4% --------------------------------------------------------------------------------------- ??? [127] 100.0% [138] 420(1.1%) 0(0.0%) ival-sub ...lify-regraph/src/biginterval.rkt:108:0 bfsub [146] 100.0% --------------------------------------------------------------------------------------- fix-up-variables [129] 100.0% [139] 202(0.5%) 0(0.0%) for-loop ...lify-regraph/src/core/matcher.rkt:41:9 for-loop [147] 100.0% --------------------------------------------------------------------------------------- ??? [122] 100.0% [140] 200(0.5%) 200(0.5%) ival-mult ...ify-regraph/src/biginterval.rkt:120:0 --------------------------------------------------------------------------------------- for-loop [126] 100.0% [141] 200(0.5%) 200(0.5%) make-sequence ...ects/racket/private/for.rkt:533:2 --------------------------------------------------------------------------------------- merge-egraph-nodes! [142] 2.9% for-loop [154] 6.1% set-precompute! [136] 20.2% for-loop [132] 70.7% [142] 10006(25.9%) 0(0.0%) merge-egraph-nodes! ...gs/regraph/egraph.rkt:144:0 update-leader! [149] 60.1% loop! [151] 27.9% for-loop [154] 6.1% dedup-children! [153] 3.0% merge-egraph-nodes! [142] 2.9% --------------------------------------------------------------------------------------- for-loop [160] 26.2% for-loop [133] 73.8% [143] 9994(25.8%) 3006(7.8%) match-e ...racket/7.5/pkgs/regraph/ematch.rkt:35:0 for-loop [150] 76.2% --------------------------------------------------------------------------------------- compile15 [134] 100.0% [144] 3250(8.4%) 0(0.0%) temp91_0 (unknown source) temp118_0 [152] 93.8% compile-top9 [158] 6.2% --------------------------------------------------------------------------------------- substitute-e [145] 33.3% for-loop [132] 66.7% [145] 606(1.6%) 202(0.5%) substitute-e ...t/7.5/pkgs/regraph/ematch.rkt:55:0 substitute-e [145] 33.3% return/no-unsupplied [156] 33.3% --------------------------------------------------------------------------------------- ival-sub [138] 100.0% [146] 420(1.1%) 0(0.0%) bfsub ...-lib/math/private/bigfloat/mpfr.rkt:835:4 new-mpfr [155] 100.0% --------------------------------------------------------------------------------------- for-loop [139] 100.0% [147] 202(0.5%) 0(0.0%) for-loop ...lify-regraph/src/core/matcher.rkt:26:9 core457 [157] 100.0% --------------------------------------------------------------------------------------- for-loop [137] 100.0% [148] 198(0.5%) 198(0.5%) for-loop .../7.5/pkgs/regraph/extraction.rkt:40:23 --------------------------------------------------------------------------------------- for-loop [123] 25.4% merge-egraph-nodes! [142] 74.6% [149] 8604(22.2%) 202(0.5%) update-leader! ....5/pkgs/regraph/egraph.rkt:211:0 for-loop [159] 93.0% custom-set-union! [167] 4.6% --------------------------------------------------------------------------------------- match-e [143] 100.0% [150] 8182(21.2%) 4594(11.9%) for-loop ...cket/7.5/pkgs/regraph/ematch.rkt:41:11 for-loop [160] 41.4% do-curry [164] 8.5% procedure-reduce-keyword-arity-mask [165] 4.9% foldr [172] 2.4% --------------------------------------------------------------------------------------- loop [186] 18.9% merge-egraph-nodes! [142] 81.1% [151] 3182(8.2%) 600(1.6%) loop! .../.racket/7.5/pkgs/regraph/enode.rkt:158:2 custom-set-union [162] 49.7% loop [186] 22.0% update-en-expr [193] 9.5% set [168] 6.2% --------------------------------------------------------------------------------------- temp91_0 [144] 100.0% [152] 3048(7.9%) 0(0.0%) temp118_0 (unknown source) expand-capturing-lifts [161] 100.0% --------------------------------------------------------------------------------------- merge-egraph-nodes! [142] 21.5% for-loop [132] 78.5% [153] 1884(4.9%) 0(0.0%) dedup-children! ....5/pkgs/regraph/enode.rkt:166:0 loop [163] 66.7% loop [166] 33.3% --------------------------------------------------------------------------------------- merge-egraph-nodes! [142] 100.0% [154] 1224(3.2%) 0(0.0%) for-loop ...cket/7.5/pkgs/regraph/egraph.rkt:197:4 merge-egraph-nodes! [142] 100.0% --------------------------------------------------------------------------------------- bfsub [146] 100.0% [155] 420(1.1%) 420(1.1%) new-mpfr ...b/math/private/bigfloat/mpfr.rkt:348:0 --------------------------------------------------------------------------------------- substitute-e [145] 100.0% [156] 404(1.0%) 202(0.5%) return/no-unsupplied ...ct/private/arr-i.rkt:566:0 filter [169] 50.0% --------------------------------------------------------------------------------------- for-loop [147] 100.0% [157] 202(0.5%) 0(0.0%) core457 ...acket/contract/private/arr-i.rkt:976:19 un-dep/maybe-chaperone [170] 100.0% --------------------------------------------------------------------------------------- temp91_0 [144] 100.0% [158] 202(0.5%) 0(0.0%) compile-top9 (unknown source) compile-forms33 [171] 100.0% --------------------------------------------------------------------------------------- update-leader! [149] 100.0% [159] 8004(20.7%) 200(0.5%) for-loop ...cket/7.5/pkgs/regraph/egraph.rkt:216:6 hash-update! [178] 54.6% for-loop [173] 42.9% --------------------------------------------------------------------------------------- for-loop [150] 100.0% [160] 5376(13.9%) 210(0.5%) for-loop ...cket/7.5/pkgs/regraph/ematch.rkt:47:37 match-e [143] 96.1% --------------------------------------------------------------------------------------- temp118_0 [152] 100.0% [161] 3048(7.9%) 0(0.0%) expand-capturing-lifts (unknown source) lambda-clause-expander [174] 100.0% --------------------------------------------------------------------------------------- loop! [151] 100.0% [162] 1582(4.1%) 980(2.5%) custom-set-union ...et/private/set-types.rkt:168:0 for-loop [175] 38.1% --------------------------------------------------------------------------------------- dedup-children! [153] 9.8% loop [163] 90.2% [163] 1256(3.2%) 1256(3.2%) loop ...racket-7.5/collects/racket/list.rkt:434:17 loop [163] 90.2% --------------------------------------------------------------------------------------- for-loop [150] 100.0% [164] 798(2.1%) 798(2.1%) do-curry ...-7.5/collects/racket/function.rkt:71:2 --------------------------------------------------------------------------------------- for-loop [150] 100.0% [165] 798(2.1%) 798(2.1%) procedure-reduce-keyword-arity-mask ....rkt:1597:4 --------------------------------------------------------------------------------------- dedup-children! [153] 17.0% loop [166] 83.0% [166] 628(1.6%) 0(0.0%) loop ...racket-7.5/collects/racket/list.rkt:417:34 loop [166] 83.0% loop [186] 17.0% --------------------------------------------------------------------------------------- update-leader! [149] 100.0% [167] 398(1.0%) 0(0.0%) custom-set-union! ...t/private/set-types.rkt:245:0 for-loop [176] 100.0% --------------------------------------------------------------------------------------- loop! [151] 100.0% [168] 396(1.0%) 396(1.0%) set ...collects/racket/private/set-types.rkt:992:0 --------------------------------------------------------------------------------------- return/no-unsupplied [156] 100.0% [169] 202(0.5%) 202(0.5%) filter ...5/collects/racket/private/list.rkt:256:2 --------------------------------------------------------------------------------------- core457 [157] 100.0% [170] 202(0.5%) 0(0.0%) un-dep/maybe-chaperone ...private/arr-i.rkt:1137:2 ??? [177] 100.0% --------------------------------------------------------------------------------------- compile-top9 [158] 100.0% [171] 202(0.5%) 0(0.0%) compile-forms33 (unknown source) for-loop [183] 100.0% --------------------------------------------------------------------------------------- for-loop [150] 100.0% [172] 200(0.5%) 200(0.5%) foldr ....5/collects/racket/private/list.rkt:242:4 --------------------------------------------------------------------------------------- for-loop [159] 100.0% [173] 3436(8.9%) 0(0.0%) for-loop ...cket/7.5/pkgs/regraph/egraph.rkt:217:8 hash-update! [178] 100.0% --------------------------------------------------------------------------------------- expand-capturing-lifts [161] 100.0% [174] 3048(7.9%) 198(0.5%) lambda-clause-expander (unknown source) finish-bodys [179] 93.5% --------------------------------------------------------------------------------------- custom-set-union [162] 100.0% [175] 602(1.6%) 202(0.5%) for-loop ...cts/racket/private/set-types.rkt:174:3 for-loop [180] 66.4% --------------------------------------------------------------------------------------- custom-set-union! [167] 100.0% [176] 398(1.0%) 398(1.0%) for-loop ...cts/racket/private/set-types.rkt:253:4 --------------------------------------------------------------------------------------- un-dep/maybe-chaperone [170] 100.0% [177] 202(0.5%) 0(0.0%) ??? ...cts/racket/contract/private/guts.rkt:835:10 ??? [181] 100.0% --------------------------------------------------------------------------------------- for-loop [173] 44.0% for-loop [159] 56.0% [178] 7804(20.2%) 0(0.0%) hash-update! ...cket/private/more-scheme.rkt:365:4 ??? [182] 100.0% --------------------------------------------------------------------------------------- lambda-clause-expander [174] 37.7% for-loop [183] 62.3% [179] 2850(7.4%) 0(0.0%) finish-bodys (unknown source) for-loop [183] 100.0% --------------------------------------------------------------------------------------- for-loop [175] 100.0% [180] 400(1.0%) 400(1.0%) for-loop ...cts/racket/private/set-types.rkt:178:5 --------------------------------------------------------------------------------------- ??? [177] 100.0% [181] 202(0.5%) 0(0.0%) ??? ...ntract/private/arrow-higher-order.rkt:575:2 build-subcontract-late-negs [184] 100.0% --------------------------------------------------------------------------------------- hash-update! [178] 100.0% [182] 7804(20.2%) 200(0.5%) ??? .../.racket/7.5/pkgs/regraph/egraph.rkt:219:24 for-loop [185] 97.4% --------------------------------------------------------------------------------------- fallback-loop [206] 2.3% compile-forms33 [171] 6.6% for-loop [183] 23.5% finish-bodys [179] 67.6% [183] 3052(7.9%) 998(2.6%) for-loop (unknown source) finish-bodys [179] 43.1% for-loop [183] 23.5% compile-module-linklet57 [187] 6.6% expand-id-application-form17 [194] 5.8% dispatch-transformer41 [8] 4.2% loop [186] 3.5% syntax-e [7] 1.4% datum->syntax6 [195] 1.1% expand-implicit [189] 0.3% --------------------------------------------------------------------------------------- ??? [181] 100.0% [184] 202(0.5%) 0(0.0%) build-subcontract-late-negs ...her-order.rkt:711:0 get/build-collapsible-late-neg-projection [188]100.0% --------------------------------------------------------------------------------------- ??? [182] 100.0% [185] 7604(19.7%) 7214(18.7%) for-loop ...ket/7.5/pkgs/regraph/egraph.rkt:220:26 update-en-expr [193] 5.1% --------------------------------------------------------------------------------------- syntax->list [42] 2.1% loop! [151] 2.8% apply-transformer52 [17] 4.1% for-loop [183] 6.1% for-loop [38] 10.2% ??? [109] 12.6% mk-enode-rec! [190] 12.6% syntax-e/no-taint [16] 12.7% loop [166] 12.8% loop [186] 23.8% [186] 4888(12.6%) 1026(2.7%) loop (unknown source) loop [186] 23.8% gf [192] 12.7% mk-enode-rec! [190] 12.6% sample-multi-bounded [191] 12.6% ??? [196] 8.2% core-form-sym [197] 4.1% expand-identifier [198] 4.1% loop! [151] 2.5% syntax-e [7] 2.1% expand-id-application-form17 [194] 2.0% --------------------------------------------------------------------------------------- for-loop [183] 100.0% [187] 202(0.5%) 202(0.5%) compile-module-linklet57 (unknown source) --------------------------------------------------------------------------------------- build-subcontract-late-negs [184] 100.0% [188] 202(0.5%) 202(0.5%) get/build-collapsible-late-neg-projection ...817:0 --------------------------------------------------------------------------------------- for-loop [183] 100.0% [189] 200(0.5%) 0(0.0%) expand-implicit (unknown source) datum->syntax6 [195] 100.0% --------------------------------------------------------------------------------------- loop [186] 21.9% for-loop [132] 78.1% [190] 1414(3.7%) 398(1.0%) mk-enode-rec! ...7.5/pkgs/regraph/egraph.rkt:116:0 hash-has-key? [200] 28.9% for-loop [202] 28.1% loop [186] 21.9% --------------------------------------------------------------------------------------- ??? [109] 40.8% loop [186] 59.2% [191] 1040(2.7%) 0(0.0%) sample-multi-bounded ...egraph/src/points.rkt:14:0 random-ranges [199] 100.0% --------------------------------------------------------------------------------------- loop [186] 100.0% [192] 824(2.1%) 602(1.6%) gf (unknown source) propagation-apply [204] 26.9% --------------------------------------------------------------------------------------- for-loop [185] 49.0% loop! [151] 51.0% [193] 796(2.1%) 796(2.1%) update-en-expr ....5/pkgs/regraph/egraph.rkt:205:0 --------------------------------------------------------------------------------------- loop [186] 32.1% for-loop [183] 67.9% [194] 624(1.6%) 0(0.0%) expand-id-application-form17 (unknown source) binding-lookup52 [203] 35.6% resolve+shift28 [201] 32.4% syntax-e/no-taint [16] 32.1% --------------------------------------------------------------------------------------- expand-implicit [189] 49.3% for-loop [183] 50.7% [195] 406(1.0%) 206(0.5%) datum->syntax6 (unknown source) f [205] 49.3% --------------------------------------------------------------------------------------- loop [186] 100.0% [196] 400(1.0%) 400(1.0%) ??? ...rbie/simplify-regraph/src/points.rkt:179:26 --------------------------------------------------------------------------------------- loop [186] 100.0% [197] 202(0.5%) 0(0.0%) core-form-sym (unknown source) resolve+shift28 [201] 100.0% --------------------------------------------------------------------------------------- loop [186] 100.0% [198] 200(0.5%) 0(0.0%) expand-identifier (unknown source) resolve+shift28 [201] 100.0% --------------------------------------------------------------------------------------- sample-multi-bounded [191] 100.0% [199] 1040(2.7%) 0(0.0%) random-ranges ...lify-regraph/src/common.rkt:164:0 cons/c [207] 57.7% build--> [208] 42.3% --------------------------------------------------------------------------------------- mk-enode-rec! [190] 100.0% [200] 618(1.6%) 618(1.6%) hash-has-key? ...ket/private/more-scheme.rkt:371:2 --------------------------------------------------------------------------------------- expand-identifier [198] 33.1% expand-id-application-form17 [194] 33.4% core-form-sym [197] 33.4% [201] 604(1.6%) 0(0.0%) resolve+shift28 (unknown source) fallback-loop [206] 100.0% --------------------------------------------------------------------------------------- mk-enode-rec! [190] 100.0% [202] 398(1.0%) 398(1.0%) for-loop ...ket/7.5/pkgs/regraph/egraph.rkt:108:10 --------------------------------------------------------------------------------------- expand-id-application-form17 [194] 100.0% [203] 222(0.6%) 222(0.6%) binding-lookup52 (unknown source) --------------------------------------------------------------------------------------- gf [192] 100.0% [204] 222(0.6%) 222(0.6%) propagation-apply (unknown source) --------------------------------------------------------------------------------------- datum->syntax6 [195] 100.0% [205] 200(0.5%) 200(0.5%) f (unknown source) --------------------------------------------------------------------------------------- resolve+shift28 [201] 100.0% [206] 604(1.6%) 202(0.5%) fallback-loop (unknown source) for-loop [183] 66.6% --------------------------------------------------------------------------------------- random-ranges [199] 100.0% [207] 600(1.6%) 0(0.0%) cons/c .../racket/contract/private/guts.rkt:500:15 coerce-contract [209] 100.0% --------------------------------------------------------------------------------------- random-ranges [199] 100.0% [208] 440(1.1%) 218(0.6%) build--> ...act/private/arrow-val-first.rkt:1214:0 coerce-contract [209] 50.5% --------------------------------------------------------------------------------------- build--> [208] 27.0% cons/c [207] 73.0% [209] 822(2.1%) 0(0.0%) coerce-contract ...contract/private/guts.rkt:307:0 coerce-contract/f [210] 100.0% --------------------------------------------------------------------------------------- coerce-contract [209] 100.0% [210] 822(2.1%) 0(0.0%) coerce-contract/f ...ntract/private/guts.rkt:372:0 coerce-simple-value [211] 100.0% --------------------------------------------------------------------------------------- coerce-contract/f [210] 100.0% [211] 822(2.1%) 822(2.1%) coerce-simple-value ...ract/private/guts.rkt:385:0 ---------------------------------------------------------------------------------------