"warning- nodes of same pack" "warning- nodes of same pack" "warning- nodes of same pack" "warning- nodes of same pack" "warning- nodes of same pack" "warning- nodes of same pack" "warning- nodes of same pack" "warning- nodes of same pack" "warning- nodes of same pack" "warning- nodes of same pack" "warning- nodes of same pack" "warning- nodes of same pack" "warning- nodes of same pack" "warning- nodes of same pack" "warning- nodes of same pack" "warning- nodes of same pack" "warning- nodes of same pack" "warning- nodes of same pack" "warning- nodes of same pack" "warning- nodes of same pack" "warning- nodes of same pack" "warning- nodes of same pack" "warning- nodes of same pack" "warning- nodes of same pack" "warning- nodes of same pack" "warning- nodes of same pack" "warning- nodes of same pack" "warning- nodes of same pack" "warning- nodes of same pack" "warning- nodes of same pack" "warning- nodes of same pack" "warning- nodes of same pack" "warning- nodes of same pack" "warning- nodes of same pack" "warning- nodes of same pack" "warning- nodes of same pack" "warning- nodes of same pack" "warning- nodes of same pack" "warning- nodes of same pack" "warning- nodes of same pack" "warning- nodes of same pack" "warning- nodes of same pack" "warning- nodes of same pack" "warning- nodes of same pack" "warning- nodes of same pack" "warning- nodes of same pack" "warning- nodes of same pack" "warning- nodes of same pack" "warning- nodes of same pack" "warning- nodes of same pack" "warning- nodes of same pack" "warning- nodes of same pack" "warning- nodes of same pack" "warning- nodes of same pack" "warning- nodes of same pack" "warning- nodes of same pack" "warning- nodes of same pack" "warning- nodes of same pack" "warning- nodes of same pack" "warning- nodes of same pack" "warning- nodes of same pack" "warning- nodes of same pack" "warning- nodes of same pack" "warning- nodes of same pack" "warning- nodes of same pack" "warning- nodes of same pack" "warning- nodes of same pack" "warning- nodes of same pack" "warning- nodes of same pack" "warning- nodes of same pack" "warning- nodes of same pack" "warning- nodes of same pack" "warning- nodes of same pack" "warning- nodes of same pack" "warning- nodes of same pack" "warning- nodes of same pack" "warning- nodes of same pack" "warning- nodes of same pack" "warning- nodes of same pack" "warning- nodes of same pack" "warning- nodes of same pack" "warning- nodes of same pack" "warning- nodes of same pack" "warning- nodes of same pack" "warning- nodes of same pack" "warning- nodes of same pack" "warning- nodes of same pack" "warning- nodes of same pack" "warning- nodes of same pack" "warning- nodes of same pack" "warning- nodes of same pack" "warning- nodes of same pack" "warning- nodes of same pack" "warning- nodes of same pack" "warning- nodes of same pack" "warning- nodes of same pack" "warning- nodes of same pack" "warning- nodes of same pack" "warning- nodes of same pack" "warning- nodes of same pack" "warning- nodes of same pack" "warning- nodes of same pack" "warning- nodes of same pack" "warning- nodes of same pack" "warning- nodes of same pack" "warning- nodes of same pack" "warning- nodes of same pack" "warning- nodes of same pack" "warning- nodes of same pack" "warning- nodes of same pack" "warning- nodes of same pack" "warning- nodes of same pack" "warning- nodes of same pack" "warning- nodes of same pack" "warning- nodes of same pack" "warning- nodes of same pack" "warning- nodes of same pack" "warning- nodes of same pack" "warning- nodes of same pack" "warning- nodes of same pack" "warning- nodes of same pack" "warning- nodes of same pack" "warning- nodes of same pack" "warning- nodes of same pack" "warning- nodes of same pack" "warning- nodes of same pack" "warning- nodes of same pack" "warning- nodes of same pack" "warning- nodes of same pack" "warning- nodes of same pack" "warning- nodes of same pack" "warning- nodes of same pack" "warning- nodes of same pack" "warning- nodes of same pack" "warning- nodes of same pack" "warning- nodes of same pack" "warning- nodes of same pack" "warning- nodes of same pack" "warning- nodes of same pack" "warning- nodes of same pack" "warning- nodes of same pack" "warning- nodes of same pack" "warning- nodes of same pack" "warning- nodes of same pack" "warning- nodes of same pack" "warning- nodes of same pack" "warning- nodes of same pack" "warning- nodes of same pack" "warning- nodes of same pack" Profiling results ----------------- Total cpu time observed: 27460ms (out of 27700ms) Number of samples taken: 132 (once every 208ms) (Hiding functions with self<1.0% and local<2.0%: 6 of 193 hidden) ======================================================================================= Caller Idx Total Self Name+src Local% ms(pct) ms(pct) Callee ======================================================================================= [1] 27460(100.0%) 0(0.0%) ??? ...lects/racket/private/more-scheme.rkt:261:28 profile-thunk16 [13] 100.0% --------------------------------------------------------------------------------------- ??? [79] 100.0% [2] 5262(19.2%) 0(0.0%) approximate9 ...uplicates/src/core/taylor.rkt:11:0 loop [14] 88.5% for-loop [21] 7.7% taylor [26] 3.8% --------------------------------------------------------------------------------------- hash-ref! [89] 100.0% [3] 4050(14.7%) 0(0.0%) ??? ...rds-no-duplicates/src/core/taylor.rkt:44:15 hash-ref! [89] 85.0% ??? [24] 15.0% --------------------------------------------------------------------------------------- hash-ref! [89] 100.0% [4] 2840(10.3%) 0(0.0%) ??? ...rds-no-duplicates/src/core/taylor.rkt:67:15 ??? [79] 54.2% hash-ref! [89] 45.8% --------------------------------------------------------------------------------------- loop [5] 35.8% location-do [90] 64.2% [5] 2814(10.2%) 0(0.0%) loop ...pwards-no-duplicates/src/programs.rkt:72:4 loop [5] 35.8% ??? [79] 35.6% location-do [90] 28.6% --------------------------------------------------------------------------------------- hash-ref! [89] 100.0% [6] 2414(8.8%) 0(0.0%) ??? ...ds-no-duplicates/src/core/taylor.rkt:300:23 for-loop [15] 100.0% --------------------------------------------------------------------------------------- hash-ref! [89] 100.0% [7] 1232(4.5%) 0(0.0%) ??? ...ds-no-duplicates/src/core/taylor.rkt:290:26 for-loop [17] 100.0% --------------------------------------------------------------------------------------- matcher [92] 100.0% [8] 1208(4.4%) 0(0.0%) ??? ...s-no-duplicates/src/core/matcher.rkt:127:11 for-loop [18] 72.4% for-loop [20] 27.6% --------------------------------------------------------------------------------------- hash-ref! [89] 100.0% [9] 1008(3.7%) 0(0.0%) ??? ...ds-no-duplicates/src/core/taylor.rkt:406:23 for-loop [19] 100.0% --------------------------------------------------------------------------------------- for-loop [149] 100.0% [10] 608(2.2%) 0(0.0%) expand-identifier (unknown source) resolve+shift28 [16] 100.0% --------------------------------------------------------------------------------------- for-loop [149] 100.0% [11] 406(1.5%) 0(0.0%) expand-implicit (unknown source) resolve+shift28 [16] 100.0% --------------------------------------------------------------------------------------- hash-ref! [89] 100.0% [12] 400(1.5%) 0(0.0%) ??? ...ds-no-duplicates/src/core/taylor.rkt:362:30 ??? [24] 50.0% hash-ref! [89] 50.0% --------------------------------------------------------------------------------------- ??? [1] 100.0% [13] 27460(100.0%) 0(0.0%) profile-thunk16 ...e/pkgs/profile-lib/main.rkt:9:0 run [22] 100.0% --------------------------------------------------------------------------------------- approximate9 [2] 100.0% [14] 4658(17.0%) 0(0.0%) loop ...rds-no-duplicates/src/core/taylor.rkt:86:4 hash-ref! [89] 61.0% ??? [79] 39.0% --------------------------------------------------------------------------------------- ??? [6] 100.0% [15] 2414(8.8%) 0(0.0%) for-loop ...-duplicates/src/core/taylor.rkt:303:27 hash-ref! [89] 91.7% f40 [23] 8.3% --------------------------------------------------------------------------------------- expand-id-application-form17 [163] 14.1% core-form-sym [166] 14.1% expand-implicit [11] 28.7% expand-identifier [10] 43.0% [16] 1414(5.1%) 0(0.0%) resolve+shift28 (unknown source) fallback-loop [25] 100.0% --------------------------------------------------------------------------------------- ??? [7] 100.0% [17] 1232(4.5%) 0(0.0%) for-loop ...-duplicates/src/core/taylor.rkt:290:52 ??? [24] 58.8% hash-ref! [89] 41.2% --------------------------------------------------------------------------------------- ??? [8] 100.0% [18] 1008(3.7%) 0(0.0%) for-loop ...duplicates/src/core/matcher.rkt:129:15 matcher [92] 100.0% --------------------------------------------------------------------------------------- ??? [9] 100.0% [19] 1008(3.7%) 0(0.0%) for-loop ...-duplicates/src/core/taylor.rkt:410:33 for-loop [27] 80.2% hash-ref! [89] 19.8% --------------------------------------------------------------------------------------- ??? [8] 100.0% [20] 602(2.2%) 0(0.0%) for-loop ...-duplicates/src/core/matcher.rkt:103:4 foldl [139] 100.0% --------------------------------------------------------------------------------------- approximate9 [2] 100.0% [21] 404(1.5%) 0(0.0%) for-loop ...o-duplicates/src/core/taylor.rkt:29:18 taylor [26] 100.0% --------------------------------------------------------------------------------------- profile-thunk16 [13] 100.0% [22] 27460(100.0%) 0(0.0%) run ...et-7.5/share/pkgs/profile-lib/main.rkt:39:2 .../more-scheme.rkt:261:28 [28] 100.0% --------------------------------------------------------------------------------------- for-loop [15] 5.5% ??? [79] 5.9% hash-ref! [89] 39.7% map [29] 48.9% [23] 1826(6.6%) 0(0.0%) f40 (unknown source) map [29] 100.0% --------------------------------------------------------------------------------------- ??? [12] 12.2% ??? [3] 37.2% for-loop [17] 50.6% [24] 1636(6.0%) 0(0.0%) ??? ...ds-no-duplicates/src/core/taylor.rkt:293:19 hash-ref! [89] 100.0% --------------------------------------------------------------------------------------- resolve+shift28 [16] 100.0% [25] 1414(5.1%) 0(0.0%) fallback-loop (unknown source) for-loop [149] 100.0% --------------------------------------------------------------------------------------- map [29] 8.3% approximate9 [2] 8.3% taylor [26] 19.3% for-loop [21] 25.1% hash-ref! [89] 39.2% [26] 1212(4.4%) 0(0.0%) taylor ...-no-duplicates/src/core/taylor.rkt:169:0 taylor-sqrt [30] 22.3% taylor [26] 19.3% debug-print [31] 17.2% taylor-invert [34] 16.5% loop [32] 8.3% map [29] 8.3% taylor-quotient [33] 8.3% --------------------------------------------------------------------------------------- for-loop [19] 100.0% [27] 808(2.9%) 0(0.0%) for-loop ...-duplicates/src/core/taylor.rkt:412:39 hash-ref! [89] 100.0% --------------------------------------------------------------------------------------- for-loop [91] 2.6% run [22] 97.4% [28] 27460(100.0%) 618(2.3%) .../more-scheme.rkt:261:28 (unknown source) run-improve47 [35] 97.4% ??? [37] 1.1% ??? [79] 0.4% --------------------------------------------------------------------------------------- taylor [26] 7.6% parse-loop15 [107] 23.1% f40 [23] 69.3% [29] 2634(9.6%) 0(0.0%) map ...t-7.5/collects/racket/private/map.rkt:35:13 f40 [23] 33.9% parse-loop74 [36] 19.3% hash-ref! [89] 19.2% f61 [104] 11.7% taylor [26] 7.6% simplify* [38] 4.4% loop [39] 2.6% loop [41] 1.3% --------------------------------------------------------------------------------------- taylor [26] 100.0% [30] 404(1.5%) 0(0.0%) taylor-sqrt ...uplicates/src/core/taylor.rkt:351:0 hash-ref! [89] 50.5% simplify* [38] 49.5% --------------------------------------------------------------------------------------- taylor [26] 100.0% [31] 208(0.8%) 0(0.0%) debug-print ...s-no-duplicates/src/debug.rkt:110:0 for-loop [40] 100.0% --------------------------------------------------------------------------------------- taylor [26] 100.0% [32] 200(0.7%) 0(0.0%) loop ...ds-no-duplicates/src/core/taylor.rkt:267:2 hash-ref! [89] 100.0% --------------------------------------------------------------------------------------- taylor [26] 100.0% [33] 200(0.7%) 0(0.0%) taylor-quotient ...cates/src/core/taylor.rkt:333:0 first-nonzero-exp [42] 100.0% --------------------------------------------------------------------------------------- taylor [26] 100.0% [34] 200(0.7%) 0(0.0%) taylor-invert ...licates/src/core/taylor.rkt:317:0 parse-loop74 [36] 100.0% --------------------------------------------------------------------------------------- .../more-scheme.rkt:261:28 [28] 100.0% [35] 27460(100.0%) 0(0.0%) run-improve47 ...duplicates/src/mainloop.rkt:346:0 for-loop [43] 92.4% simplify! [50] 6.8% ??? [58] 0.8% --------------------------------------------------------------------------------------- parse-loop74 [36] 3.1% taylor-invert [34] 6.2% map [29] 18.9% hash-ref! [89] 71.9% [36] 3244(11.8%) 0(0.0%) parse-loop74 (unknown source) eval-const-expr [44] 87.7% f61 [104] 6.2% parse-loop74 [36] 3.1% loop [160] 3.1% --------------------------------------------------------------------------------------- .../more-scheme.rkt:261:28 [28] 100.0% [37] 606(2.2%) 400(1.5%) ??? ...-no-duplicates/src/syntax/syntax.rkt:214:17 ??? [46] 34.0% --------------------------------------------------------------------------------------- taylor-sqrt [30] 33.3% map [29] 66.7% [38] 600(2.2%) 400(1.5%) simplify* ...o-duplicates/src/core/reduce.rkt:29:0 hash-ref! [89] 33.3% --------------------------------------------------------------------------------------- map [29] 2.8% loop [39] 97.2% [39] 400(1.5%) 0(0.0%) loop ...-7.5/collects/racket/private/map.rkt:40:19 loop [39] 97.2% bf* [47] 1.7% ??? [164] 1.1% --------------------------------------------------------------------------------------- debug-print [31] 100.0% [40] 208(0.8%) 208(0.8%) for-loop ...ards-no-duplicates/src/debug.rkt:116:2 --------------------------------------------------------------------------------------- map [29] 4.8% loop [41] 95.2% [41] 208(0.8%) 0(0.0%) loop ...-7.5/collects/racket/private/map.rkt:54:19 loop [41] 95.2% ??? [45] 4.8% --------------------------------------------------------------------------------------- taylor-quotient [33] 100.0% [42] 200(0.7%) 0(0.0%) first-nonzero-exp ...tes/src/core/taylor.rkt:265:0 hash-ref! [89] 100.0% --------------------------------------------------------------------------------------- run-improve47 [35] 100.0% [43] 25378(92.4%) 0(0.0%) for-loop ...s-no-duplicates/src/mainloop.rkt:365:4 run-iter! [48] 100.0% --------------------------------------------------------------------------------------- f61 [104] 33.4% parse-loop74 [36] 66.6% [44] 4268(15.5%) 0(0.0%) eval-const-expr ...plicates/src/programs.rkt:120:0 temp85_0 [88] 90.6% loop [160] 9.4% --------------------------------------------------------------------------------------- loop [41] 100.0% [45] 208(0.8%) 208(0.8%) ??? ...s-no-duplicates/src/core/localize.rkt:50:36 --------------------------------------------------------------------------------------- ??? [37] 100.0% [46] 206(0.8%) 206(0.8%) ??? ...ects/racket/contract/private/guts.rkt:770:8 --------------------------------------------------------------------------------------- loop [39] 100.0% [47] 200(0.7%) 0(0.0%) bf* ...ath/private/bigfloat/bigfloat-mpfr.rkt:95:0 ??? [49] 100.0% --------------------------------------------------------------------------------------- for-loop [43] 100.0% [48] 25378(92.4%) 0(0.0%) run-iter! ...-no-duplicates/src/mainloop.rkt:327:0 simplify! [50] 48.6% gen-series! [51] 21.6% finalize-iter! [52] 20.1% gen-rewrites! [53] 7.3% localize! [54] 2.4% --------------------------------------------------------------------------------------- bf* [47] 100.0% [49] 200(0.7%) 0(0.0%) ??? ...-racket/utils/simple-result-arrow.rkt:39:12 bfmul [55] 100.0% --------------------------------------------------------------------------------------- run-improve47 [35] 13.2% run-iter! [48] 86.8% [50] 14212(51.8%) 0(0.0%) simplify! ...-no-duplicates/src/mainloop.rkt:224:0 ??? [56] 100.0% --------------------------------------------------------------------------------------- run-iter! [48] 100.0% [51] 5476(19.9%) 0(0.0%) gen-series! ...o-duplicates/src/mainloop.rkt:160:0 for-loop [57] 100.0% --------------------------------------------------------------------------------------- run-iter! [48] 100.0% [52] 5102(18.6%) 0(0.0%) finalize-iter! ...uplicates/src/mainloop.rkt:278:0 ??? [58] 100.0% --------------------------------------------------------------------------------------- run-iter! [48] 100.0% [53] 1850(6.7%) 0(0.0%) gen-rewrites! ...duplicates/src/mainloop.rkt:183:0 for-loop [59] 65.3% for-loop [61] 23.9% group-by61 [63] 10.8% --------------------------------------------------------------------------------------- run-iter! [48] 100.0% [54] 608(2.2%) 0(0.0%) localize! ...-no-duplicates/src/mainloop.rkt:127:0 localize-error [60] 100.0% --------------------------------------------------------------------------------------- ??? [49] 100.0% [55] 200(0.7%) 0(0.0%) bfmul ...-lib/math/private/bigfloat/mpfr.rkt:835:4 ??? [62] 100.0% --------------------------------------------------------------------------------------- simplify! [50] 100.0% [56] 14212(51.8%) 0(0.0%) ??? ...ds-no-duplicates/src/core/simplify.rkt:38:0 ??? [64] 98.5% loop [160] 1.5% --------------------------------------------------------------------------------------- gen-series! [51] 100.0% [57] 5476(19.9%) 0(0.0%) for-loop ...s-no-duplicates/src/mainloop.rkt:167:7 taylor-alt [65] 100.0% --------------------------------------------------------------------------------------- inductor [111] 1.9% run-improve47 [35] 4.0% finalize-iter! [52] 94.1% [58] 5314(19.4%) 200(0.7%) ??? ...contract/private/arrow-val-first.rkt:486:18 for-loop [66] 94.1% make-alt-table [69] 4.0% --------------------------------------------------------------------------------------- gen-rewrites! [53] 100.0% [59] 1208(4.4%) 0(0.0%) for-loop ...-no-duplicates/src/mainloop.rkt:191:11 rewrite-expression-head24 [67] 100.0% --------------------------------------------------------------------------------------- localize! [54] 100.0% [60] 608(2.2%) 0(0.0%) localize-error ...cates/src/core/localize.rkt:58:0 hash-ref! [89] 100.0% --------------------------------------------------------------------------------------- gen-rewrites! [53] 100.0% [61] 442(1.6%) 0(0.0%) for-loop ...s-no-duplicates/src/mainloop.rkt:208:4 for-loop [68] 100.0% --------------------------------------------------------------------------------------- bfmul [55] 100.0% [62] 200(0.7%) 200(0.7%) ??? /opt/racket-7.5/collects/ffi/unsafe.rkt:938:4 --------------------------------------------------------------------------------------- gen-rewrites! [53] 100.0% [63] 200(0.7%) 0(0.0%) group-by61 ...t-7.5/collects/racket/list.rkt:771:0 for-loop [70] 100.0% --------------------------------------------------------------------------------------- ??? [56] 100.0% [64] 13996(51.0%) 0(0.0%) ??? ...ds-no-duplicates/src/core/simplify.rkt:56:0 for-loop [71] 93.1% make-regraph5 [75] 6.9% --------------------------------------------------------------------------------------- for-loop [57] 100.0% [65] 5476(19.9%) 0(0.0%) taylor-alt ...no-duplicates/src/mainloop.rkt:146:0 for-loop [72] 100.0% --------------------------------------------------------------------------------------- ??? [58] 100.0% [66] 5102(18.6%) 0(0.0%) for-loop ...duplicates/src/core/alt-table.rkt:46:2 atab-add-altn [73] 64.4% errors [80] 27.8% loop [76] 7.8% --------------------------------------------------------------------------------------- for-loop [59] 100.0% [67] 1208(4.4%) 0(0.0%) rewrite-expression-head24 ...core/matcher.rkt:85:0 rewriter [74] 100.0% --------------------------------------------------------------------------------------- for-loop [61] 100.0% [68] 442(1.6%) 0(0.0%) for-loop ...s-no-duplicates/src/mainloop.rkt:209:6 ??? [79] 50.2% change-apply [77] 49.8% --------------------------------------------------------------------------------------- ??? [58] 100.0% [69] 212(0.8%) 0(0.0%) make-alt-table ...ates/src/core/alt-table.rkt:31:0 errors [80] 100.0% --------------------------------------------------------------------------------------- group-by61 [63] 100.0% [70] 200(0.7%) 200(0.7%) for-loop ...ket-7.5/collects/racket/list.rkt:805:4 --------------------------------------------------------------------------------------- ??? [64] 100.0% [71] 13036(47.5%) 0(0.0%) for-loop ...-duplicates/src/core/simplify.rkt:76:2 for-loop [78] 100.0% --------------------------------------------------------------------------------------- taylor-alt [65] 100.0% [72] 5476(19.9%) 0(0.0%) for-loop ...s-no-duplicates/src/mainloop.rkt:152:6 ??? [79] 100.0% --------------------------------------------------------------------------------------- for-loop [66] 100.0% [73] 3286(12.0%) 0(0.0%) atab-add-altn ...ates/src/core/alt-table.rkt:194:0 errors [80] 74.7% for-loop [83] 12.7% loop [85] 6.6% override-at-pnts [86] 6.1% --------------------------------------------------------------------------------------- rewrite-expression-head24 [67] 45.7% matcher [92] 54.3% [74] 1208(4.4%) 0(0.0%) rewriter ...o-duplicates/src/core/matcher.rkt:87:2 for-loop [81] 100.0% --------------------------------------------------------------------------------------- ??? [64] 100.0% [75] 960(3.5%) 0(0.0%) make-regraph5 ...-rebuilding/regraph/main.rkt:13:0 for-loop [82] 100.0% --------------------------------------------------------------------------------------- for-loop [66] 100.0% [76] 400(1.5%) 0(0.0%) loop ...no-duplicates/src/core/alt-table.rkt:168:2 loop [84] 100.0% --------------------------------------------------------------------------------------- for-loop [68] 100.0% [77] 220(0.8%) 0(0.0%) change-apply ...plicates/src/core/matcher.rkt:69:0 pattern-substitute [118] 100.0% --------------------------------------------------------------------------------------- for-loop [71] 100.0% [78] 13036(47.5%) 0(0.0%) for-loop ...-duplicates/src/core/simplify.rkt:80:4 ??? [87] 85.8% loop [93] 8.0% egraph-rebuild [94] 6.2% --------------------------------------------------------------------------------------- .../more-scheme.rkt:261:28 [28] 3.4% for-loop [68] 3.8% loop [5] 7.4% loop [14] 10.3% ??? [4] 16.1% location-do [90] 25.9% for-loop [72] 33.3% [79] 5898(21.5%) 200(0.7%) ??? ...tract/private/arrow-higher-order.rkt:375:33 location-do [90] 33.3% approximate9 [2] 31.4% hash-ref! [89] 26.3% successfully-got-the-right-kind-of-function [96] 3.8% f40 [23] 1.8% --------------------------------------------------------------------------------------- make-alt-table [69] 5.2% for-loop [66] 34.7% atab-add-altn [73] 60.1% [80] 4082(14.9%) 0(0.0%) errors ...wards-no-duplicates/src/points.rkt:190:0 temp85_0 [88] 55.3% for-loop [91] 34.9% eval4 [97] 4.9% eval-prog [99] 4.9% --------------------------------------------------------------------------------------- rewriter [74] 100.0% [81] 1208(4.4%) 0(0.0%) for-loop ...o-duplicates/src/core/matcher.rkt:89:4 matcher [92] 90.2% for-loop [95] 9.8% --------------------------------------------------------------------------------------- make-regraph5 [75] 100.0% [82] 960(3.5%) 0(0.0%) for-loop ...raph-rebuilding/regraph/main.rkt:15:14 mk-enode-rec! [162] 100.0% --------------------------------------------------------------------------------------- atab-add-altn [73] 100.0% [83] 416(1.5%) 416(1.5%) for-loop ...uplicates/src/core/alt-table.rkt:110:2 --------------------------------------------------------------------------------------- loop [76] 5.2% loop [84] 94.8% [84] 400(1.5%) 400(1.5%) loop ...racket-7.5/collects/racket/list.rkt:434:28 loop [84] 94.8% --------------------------------------------------------------------------------------- atab-add-altn [73] 100.0% [85] 216(0.8%) 216(0.8%) loop ...-7.5/collects/racket/private/hash.rkt:20:4 --------------------------------------------------------------------------------------- atab-add-altn [73] 100.0% [86] 200(0.7%) 0(0.0%) override-at-pnts ...s/src/core/alt-table.rkt:129:0 for-loop [98] 100.0% --------------------------------------------------------------------------------------- for-loop [78] 100.0% [87] 11186(40.7%) 0(0.0%) ??? ...fy-regraph-rebuilding/regraph/main.rkt:45:0 find-matches [100] 81.9% for-loop [102] 18.1% --------------------------------------------------------------------------------------- errors [80] 36.8% eval-const-expr [44] 63.2% [88] 6124(22.3%) 0(0.0%) temp85_0 (unknown source) compile15 [101] 100.0% --------------------------------------------------------------------------------------- simplify* [38] 0.4% ??? [12] 0.6% for-loop [19] 1.1% for-loop [17] 1.4% first-nonzero-exp [42] 1.7% localize-error [60] 1.8% for-loop [27] 3.3% loop [32] 3.4% taylor-sqrt [30] 3.5% ??? [24] 5.6% map [29] 8.6% ??? [4] 10.8% for-loop [15] 11.0% loop [14] 11.2% ??? [3] 14.1% ??? [79] 20.2% [89] 5870(21.4%) 200(0.7%) hash-ref! .../racket/private/more-scheme.rkt:376:2 ??? [4] 22.0% ??? [3] 16.9% ??? [6] 14.4% parse-loop74 [36] 12.8% parse-loop15 [107] 10.4% f40 [23] 5.7% ??? [9] 4.4% ??? [7] 3.8% f61 [104] 3.6% taylor [26] 3.3% ??? [12] 0.9% --------------------------------------------------------------------------------------- loop [5] 4.5% ??? [79] 20.7% location-do [90] 74.7% [90] 5476(19.9%) 0(0.0%) location-do ...no-duplicates/src/programs.rkt:63:0 location-do [90] 74.7% ??? [79] 16.3% loop [5] 8.9% --------------------------------------------------------------------------------------- errors [80] 100.0% [91] 1424(5.2%) 0(0.0%) for-loop ...rds-no-duplicates/src/points.rkt:192:2 .../more-scheme.rkt:261:28 [28] 100.0% --------------------------------------------------------------------------------------- for-loop [18] 35.6% for-loop [81] 64.4% [92] 1208(4.4%) 0(0.0%) matcher ...o-duplicates/src/core/matcher.rkt:115:2 ??? [8] 58.8% rewriter [74] 35.6% constant? [110] 5.5% --------------------------------------------------------------------------------------- for-loop [78] 100.0% [93] 1038(3.8%) 0(0.0%) loop ...aph-rebuilding/regraph/extraction.rkt:25:2 for-loop [105] 100.0% --------------------------------------------------------------------------------------- for-loop [78] 100.0% [94] 812(3.0%) 0(0.0%) egraph-rebuild ...building/regraph/egraph.rkt:61:0 egraph-rebuild-once [106] 100.0% --------------------------------------------------------------------------------------- for-loop [81] 100.0% [95] 406(1.5%) 0(0.0%) for-loop ...o-duplicates/src/core/matcher.rkt:96:8 fix-up-variables [108] 100.0% --------------------------------------------------------------------------------------- ??? [79] 100.0% [96] 222(0.8%) 0(0.0%) successfully-got-the-right-kind-of-function ...5:4 val-has-arrow-collapsible-support? [109] 100.0% --------------------------------------------------------------------------------------- errors [80] 100.0% [97] 202(0.7%) 0(0.0%) eval4 (unknown source) syntax-e [103] 100.0% --------------------------------------------------------------------------------------- override-at-pnts [86] 100.0% [98] 200(0.7%) 200(0.7%) for-loop ...plicates/src/core/alt-table.rkt:130:22 --------------------------------------------------------------------------------------- errors [80] 100.0% [99] 200(0.7%) 0(0.0%) eval-prog ...s-no-duplicates/src/programs.rkt:82:0 inductor [111] 100.0% --------------------------------------------------------------------------------------- ??? [87] 100.0% [100] 9158(33.4%) 0(0.0%) find-matches ...h-rebuilding/regraph/main.rkt:37:0 for-loop [112] 100.0% --------------------------------------------------------------------------------------- temp85_0 [88] 100.0% [101] 6124(22.3%) 0(0.0%) compile15 (unknown source) temp91_0 [113] 100.0% --------------------------------------------------------------------------------------- ??? [87] 100.0% [102] 2028(7.4%) 0(0.0%) for-loop ...graph-rebuilding/regraph/main.rkt:48:2 for-loop [115] 100.0% --------------------------------------------------------------------------------------- eval4 [97] 10.9% for-loop [149] 33.7% loop [160] 55.4% [103] 1846(6.7%) 0(0.0%) syntax-e (unknown source) syntax-e/no-taint [114] 100.0% --------------------------------------------------------------------------------------- parse-loop74 [36] 12.3% hash-ref! [89] 37.6% map [29] 50.1% [104] 1624(5.9%) 0(0.0%) f61 (unknown source) eval-const-expr [44] 87.7% compose [120] 12.3% --------------------------------------------------------------------------------------- loop [93] 100.0% [105] 1038(3.8%) 204(0.7%) for-loop ...rebuilding/regraph/extraction.rkt:28:4 for-loop [116] 80.3% --------------------------------------------------------------------------------------- egraph-rebuild [94] 100.0% [106] 812(3.0%) 0(0.0%) egraph-rebuild-once ...ing/regraph/egraph.rkt:68:0 for-loop [117] 100.0% --------------------------------------------------------------------------------------- hash-ref! [89] 100.0% [107] 608(2.2%) 0(0.0%) parse-loop15 (unknown source) map [29] 100.0% --------------------------------------------------------------------------------------- for-loop [95] 100.0% [108] 406(1.5%) 0(0.0%) fix-up-variables ...tes/src/core/matcher.rkt:108:2 for-loop [119] 50.7% pattern-substitute [118] 49.3% --------------------------------------------------------------------------------------- successfully-got-the-right-kind-of-function [96]100.0% [109] 222(0.8%) 222(0.8%) val-has-arrow-collapsible-support? ...le.rkt:116:0 --------------------------------------------------------------------------------------- matcher [92] 100.0% [110] 200(0.7%) 0(0.0%) constant? ...uplicates/src/syntax/syntax.rkt:726:0 value? [121] 100.0% --------------------------------------------------------------------------------------- eval-prog [99] 14.3% inductor [111] 85.7% [111] 200(0.7%) 0(0.0%) inductor ...s-no-duplicates/src/programs.rkt:103:4 inductor [111] 85.7% ??? [58] 14.3% --------------------------------------------------------------------------------------- for-loop [112] 50.0% find-matches [100] 50.0% [112] 9158(33.4%) 400(1.5%) for-loop ...graph-rebuilding/regraph/main.rkt:39:2 for-loop [112] 50.0% match-e [122] 47.8% --------------------------------------------------------------------------------------- compile15 [101] 100.0% [113] 6124(22.3%) 0(0.0%) temp91_0 (unknown source) temp118_0 [123] 93.4% compile-top9 [126] 6.6% --------------------------------------------------------------------------------------- gf [161] 8.2% expand-id-application-form17 [163] 16.4% syntax-e [103] 75.5% [114] 2446(8.9%) 0(0.0%) syntax-e/no-taint (unknown source) loop [160] 100.0% --------------------------------------------------------------------------------------- for-loop [102] 100.0% [115] 2028(7.4%) 0(0.0%) for-loop ...graph-rebuilding/regraph/main.rkt:51:4 add-enode-rec! [124] 50.2% substitute-e [125] 49.8% --------------------------------------------------------------------------------------- for-loop [105] 100.0% [116] 834(3.0%) 632(2.3%) for-loop ...ebuilding/regraph/extraction.rkt:36:16 for-loop [128] 24.2% --------------------------------------------------------------------------------------- egraph-rebuild-once [106] 100.0% [117] 812(3.0%) 412(1.5%) for-loop ...aph-rebuilding/regraph/egraph.rkt:72:2 for-loop [127] 49.3% --------------------------------------------------------------------------------------- pattern-substitute [118] 23.8% fix-up-variables [108] 23.8% change-apply [77] 52.4% [118] 420(1.5%) 420(1.5%) pattern-substitute ...es/src/core/matcher.rkt:45:0 pattern-substitute [118] 23.8% --------------------------------------------------------------------------------------- fix-up-variables [108] 100.0% [119] 206(0.8%) 0(0.0%) for-loop ...o-duplicates/src/core/matcher.rkt:41:9 for-loop [177] 100.0% --------------------------------------------------------------------------------------- f61 [104] 100.0% [120] 200(0.7%) 200(0.7%) compose ...collects/racket/private/list.rkt:385:12 --------------------------------------------------------------------------------------- constant? [110] 100.0% [121] 200(0.7%) 200(0.7%) value? ...-no-duplicates/src/syntax/types.rkt:18:0 --------------------------------------------------------------------------------------- for-loop [136] 26.3% for-loop [112] 73.7% [122] 8758(31.9%) 2248(8.2%) match-e ...raph-rebuilding/regraph/ematch.rkt:35:0 for-loop [129] 79.4% custom-in-set [133] 2.3% --------------------------------------------------------------------------------------- temp91_0 [113] 100.0% [123] 5720(20.8%) 0(0.0%) temp118_0 (unknown source) expand-capturing-lifts [130] 100.0% --------------------------------------------------------------------------------------- for-loop [115] 100.0% [124] 1018(3.7%) 0(0.0%) add-enode-rec! ...uilding/regraph/egraph.rkt:165:0 mk-enode-rec! [162] 41.1% mk-enode! [132] 19.8% enode-merge! [134] 19.6% hash-has-key? [168] 19.4% --------------------------------------------------------------------------------------- substitute-e [125] 20.3% for-loop [115] 79.7% [125] 1010(3.7%) 810(2.9%) substitute-e ...rebuilding/regraph/ematch.rkt:55:0 substitute-e [125] 20.3% do-curry [138] 9.9% --------------------------------------------------------------------------------------- temp91_0 [113] 100.0% [126] 404(1.5%) 0(0.0%) compile-top9 (unknown source) compile-forms33 [131] 100.0% --------------------------------------------------------------------------------------- for-loop [117] 100.0% [127] 400(1.5%) 400(1.5%) for-loop ...aph-rebuilding/regraph/egraph.rkt:73:4 --------------------------------------------------------------------------------------- for-loop [116] 100.0% [128] 202(0.7%) 202(0.7%) for-loop ...ebuilding/regraph/extraction.rkt:40:23 --------------------------------------------------------------------------------------- match-e [122] 100.0% [129] 7536(27.4%) 2634(9.6%) for-loop ...ph-rebuilding/regraph/ematch.rkt:41:11 for-loop [136] 42.3% do-curry [138] 9.9% loop [160] 8.1% foldr [141] 5.3% procedure-reduce-keyword-arity-mask [140] 5.3% foldl [139] 2.7% cp-2 [146] 1.4% --------------------------------------------------------------------------------------- loop [160] 6.5% temp118_0 [123] 93.5% [130] 6120(22.3%) 0(0.0%) expand-capturing-lifts (unknown source) lambda-clause-expander [135] 86.8% dispatch-transformer41 [137] 9.9% expand-id-application-form17 [163] 3.3% --------------------------------------------------------------------------------------- compile-top9 [126] 100.0% [131] 404(1.5%) 0(0.0%) compile-forms33 (unknown source) for-loop [149] 100.0% --------------------------------------------------------------------------------------- add-enode-rec! [124] 100.0% [132] 202(0.7%) 0(0.0%) mk-enode! ...h-rebuilding/regraph/egraph.rkt:132:0 hash-has-key? [168] 100.0% --------------------------------------------------------------------------------------- match-e [122] 100.0% [133] 200(0.7%) 200(0.7%) custom-in-set ...acket/private/set-types.rkt:578:0 --------------------------------------------------------------------------------------- add-enode-rec! [124] 100.0% [134] 200(0.7%) 0(0.0%) enode-merge! ...-rebuilding/regraph/enode.rkt:95:0 custom-set-union [142] 100.0% --------------------------------------------------------------------------------------- expand-capturing-lifts [130] 100.0% [135] 5314(19.4%) 0(0.0%) lambda-clause-expander (unknown source) finish-bodys [143] 100.0% --------------------------------------------------------------------------------------- for-loop [129] 100.0% [136] 4678(17.0%) 404(1.5%) for-loop ...ph-rebuilding/regraph/ematch.rkt:47:37 match-e [122] 93.5% --------------------------------------------------------------------------------------- expand-capturing-lifts [130] 27.0% for-loop [149] 73.0% [137] 2242(8.2%) 0(0.0%) dispatch-transformer41 (unknown source) apply-transformer52 [144] 100.0% --------------------------------------------------------------------------------------- substitute-e [125] 16.0% for-loop [129] 84.0% [138] 1252(4.6%) 1252(4.6%) do-curry ...-7.5/collects/racket/function.rkt:71:2 --------------------------------------------------------------------------------------- for-loop [129] 24.9% for-loop [20] 75.1% [139] 802(2.9%) 0(0.0%) foldl ....5/collects/racket/private/list.rkt:229:4 ??? [145] 75.1% merge2 [147] 24.9% --------------------------------------------------------------------------------------- for-loop [129] 100.0% [140] 598(2.2%) 598(2.2%) procedure-reduce-keyword-arity-mask ....rkt:1597:4 --------------------------------------------------------------------------------------- for-loop [129] 100.0% [141] 400(1.5%) 200(0.7%) foldr ....5/collects/racket/private/list.rkt:242:4 cp-2 [146] 50.0% --------------------------------------------------------------------------------------- enode-merge! [134] 100.0% [142] 200(0.7%) 0(0.0%) custom-set-union ...et/private/set-types.rkt:168:0 for-loop [148] 100.0% --------------------------------------------------------------------------------------- lambda-clause-expander [135] 26.1% for-loop [149] 73.9% [143] 5314(19.4%) 0(0.0%) finish-bodys (unknown source) for-loop [149] 100.0% --------------------------------------------------------------------------------------- dispatch-transformer41 [137] 100.0% [144] 2242(8.2%) 606(2.2%) apply-transformer52 (unknown source) apply-transformer-in-context [150] 37.3% loop [160] 26.8% apply-post-expansion [152] 8.9% --------------------------------------------------------------------------------------- foldl [139] 100.0% [145] 602(2.2%) 202(0.7%) ??? ...rds-no-duplicates/src/core/matcher.rkt:25:7 core457 [178] 66.4% --------------------------------------------------------------------------------------- foldr [141] 48.8% for-loop [129] 51.2% [146] 410(1.5%) 410(1.5%) cp-2 .../racket-7.5/collects/racket/list.rkt:826:2 --------------------------------------------------------------------------------------- foldl [139] 100.0% [147] 200(0.7%) 200(0.7%) merge2 ...graph-rebuilding/regraph/ematch.rkt:20:0 --------------------------------------------------------------------------------------- custom-set-union [142] 100.0% [148] 200(0.7%) 0(0.0%) for-loop ...cts/racket/private/set-types.rkt:174:3 for-loop [151] 100.0% --------------------------------------------------------------------------------------- fallback-loop [25] 2.4% compile-forms33 [131] 7.1% for-loop [149] 17.1% finish-bodys [143] 73.4% [149] 5718(20.8%) 2020(7.4%) for-loop (unknown source) finish-bodys [143] 58.2% for-loop [149] 17.1% dispatch-transformer41 [137] 10.2% compile-module-linklet57 [155] 3.6% dispatch-variable [154] 1.6% expand-implicit [11] 1.3% loop [160] 0.4% expand-identifier [10] 0.4% syntax-e [103] 0.4% --------------------------------------------------------------------------------------- apply-transformer52 [144] 100.0% [150] 836(3.0%) 214(0.8%) apply-transformer-in-context (unknown source) ??? [153] 74.4% --------------------------------------------------------------------------------------- for-loop [148] 100.0% [151] 200(0.7%) 200(0.7%) for-loop ...cts/racket/private/set-types.rkt:178:5 --------------------------------------------------------------------------------------- apply-transformer52 [144] 100.0% [152] 200(0.7%) 0(0.0%) apply-post-expansion (unknown source) gf [161] 100.0% --------------------------------------------------------------------------------------- apply-transformer-in-context [150] 100.0% [153] 622(2.3%) 0(0.0%) ??? ...collects/racket/private/qq-and-or.rkt:155:9 ??? [157] 67.5% syntax->list [158] 32.5% --------------------------------------------------------------------------------------- for-loop [149] 100.0% [154] 612(2.2%) 0(0.0%) dispatch-variable (unknown source) substitute-variable6 [156] 100.0% --------------------------------------------------------------------------------------- for-loop [149] 100.0% [155] 204(0.7%) 204(0.7%) compile-module-linklet57 (unknown source) --------------------------------------------------------------------------------------- dispatch-variable [154] 100.0% [156] 612(2.2%) 404(1.5%) substitute-variable6 (unknown source) datum->syntax6 [159] 34.0% --------------------------------------------------------------------------------------- ??? [153] 100.0% [157] 420(1.5%) 0(0.0%) ??? ...ollects/racket/private/qq-and-or.rkt:164:21 syntax->list [158] 100.0% --------------------------------------------------------------------------------------- ??? [153] 32.5% ??? [157] 67.5% [158] 622(2.3%) 0(0.0%) syntax->list (unknown source) loop [160] 100.0% --------------------------------------------------------------------------------------- substitute-variable6 [156] 100.0% [159] 208(0.8%) 208(0.8%) datum->syntax6 (unknown source) --------------------------------------------------------------------------------------- ??? [56] 0.0% for-loop [129] 2.5% parse-loop74 [36] 3.8% syntax->list [158] 5.3% eval-const-expr [44] 5.7% apply-transformer52 [144] 7.0% for-loop [149] 11.8% loop [160] 15.7% mk-enode-rec! [162] 18.3% syntax-e/no-taint [114] 29.9% [160] 5250(19.1%) 628(2.3%) loop (unknown source) gf [161] 26.0% mk-enode-rec! [162] 18.3% loop [160] 15.7% syntax-e [103] 8.5% expand-id-application-form17 [163] 7.6% expand-capturing-lifts [130] 5.7% core-form-sym [166] 3.8% ??? [165] 3.8% ??? [164] 0.1% --------------------------------------------------------------------------------------- apply-post-expansion [152] 4.5% loop [160] 95.5% [161] 2244(8.2%) 202(0.7%) gf (unknown source) propagation-apply [167] 37.4% propagation-apply-shifted [169] 17.9% propagation-merge [170] 13.4% cache-or-reuse-set [173] 8.9% cache-or-reuse-hash [174] 8.9% syntax-e/no-taint [114] 4.5% --------------------------------------------------------------------------------------- for-loop [82] 24.3% add-enode-rec! [124] 30.3% loop [160] 45.3% [162] 1378(5.0%) 960(3.5%) mk-enode-rec! ...building/regraph/egraph.rkt:152:0 loop [160] 45.3% new-enode [171] 15.5% hash-has-key? [168] 14.8% --------------------------------------------------------------------------------------- expand-capturing-lifts [130] 25.0% loop [160] 75.0% [163] 800(2.9%) 0(0.0%) expand-id-application-form17 (unknown source) syntax-e/no-taint [114] 50.0% resolve+shift28 [16] 25.0% binding-lookup52 [172] 25.0% --------------------------------------------------------------------------------------- loop [39] 50.0% loop [160] 50.0% [164] 400(1.5%) 400(1.5%) ??? ...ket-7.5/collects/racket/function.rkt:138:13 --------------------------------------------------------------------------------------- loop [160] 100.0% [165] 200(0.7%) 0(0.0%) ??? ...ards-no-duplicates/src/core/reduce.rkt:57:5 for-loop [175] 100.0% --------------------------------------------------------------------------------------- loop [160] 100.0% [166] 200(0.7%) 0(0.0%) core-form-sym (unknown source) resolve+shift28 [16] 100.0% --------------------------------------------------------------------------------------- gf [161] 100.0% [167] 840(3.1%) 840(3.1%) propagation-apply (unknown source) --------------------------------------------------------------------------------------- add-enode-rec! [124] 32.8% mk-enode! [132] 33.4% mk-enode-rec! [162] 33.8% [168] 604(2.2%) 604(2.2%) hash-has-key? ...ket/private/more-scheme.rkt:371:2 --------------------------------------------------------------------------------------- gf [161] 100.0% [169] 402(1.5%) 402(1.5%) propagation-apply-shifted (unknown source) --------------------------------------------------------------------------------------- gf [161] 100.0% [170] 400(1.5%) 400(1.5%) propagation-merge (unknown source) --------------------------------------------------------------------------------------- mk-enode-rec! [162] 100.0% [171] 214(0.8%) 214(0.8%) new-enode ...aph-rebuilding/regraph/enode.rkt:64:0 --------------------------------------------------------------------------------------- expand-id-application-form17 [163] 100.0% [172] 200(0.7%) 200(0.7%) binding-lookup52 (unknown source) --------------------------------------------------------------------------------------- gf [161] 100.0% [173] 200(0.7%) 200(0.7%) cache-or-reuse-set (unknown source) --------------------------------------------------------------------------------------- gf [161] 100.0% [174] 200(0.7%) 200(0.7%) cache-or-reuse-hash (unknown source) --------------------------------------------------------------------------------------- ??? [165] 100.0% [175] 200(0.7%) 0(0.0%) for-loop ...no-duplicates/src/core/reduce.rkt:58:7 pattern-match [176] 100.0% --------------------------------------------------------------------------------------- for-loop [175] 100.0% [176] 200(0.7%) 0(0.0%) pattern-match ...licates/src/core/matcher.rkt:29:0 for-loop [177] 100.0% --------------------------------------------------------------------------------------- pattern-match [176] 49.3% for-loop [119] 50.7% [177] 406(1.5%) 0(0.0%) for-loop ...o-duplicates/src/core/matcher.rkt:26:9 core457 [178] 100.0% --------------------------------------------------------------------------------------- ??? [145] 49.6% for-loop [177] 50.4% [178] 806(2.9%) 0(0.0%) core457 ...acket/contract/private/arr-i.rkt:976:19 un-dep/maybe-chaperone [179] 50.4% or/c [180] 24.8% ??? [181] 24.8% --------------------------------------------------------------------------------------- core457 [178] 100.0% [179] 406(1.5%) 200(0.7%) un-dep/maybe-chaperone ...private/arr-i.rkt:1137:2 ??? [182] 50.7% --------------------------------------------------------------------------------------- core457 [178] 100.0% [180] 200(0.7%) 0(0.0%) or/c ...lects/racket/contract/private/orc.rkt:16:2 coerce-contracts [183] 100.0% --------------------------------------------------------------------------------------- core457 [178] 100.0% [181] 200(0.7%) 0(0.0%) ??? ...s/racket/contract/private/arr-i.rkt:1288:27 build-nullary-very-simple--> [184] 100.0% --------------------------------------------------------------------------------------- un-dep/maybe-chaperone [179] 100.0% [182] 206(0.8%) 0(0.0%) ??? ...cts/racket/contract/private/guts.rkt:835:10 ??? [185] 100.0% --------------------------------------------------------------------------------------- or/c [180] 100.0% [183] 200(0.7%) 200(0.7%) coerce-contracts ...ontract/private/guts.rkt:317:0 --------------------------------------------------------------------------------------- ??? [181] 100.0% [184] 200(0.7%) 200(0.7%) build-nullary-very-simple--> ...l-first.rkt:1131:0 --------------------------------------------------------------------------------------- ??? [182] 100.0% [185] 206(0.8%) 0(0.0%) ??? ...ntract/private/arrow-higher-order.rkt:575:2 build-subcontract-late-negs [186] 100.0% --------------------------------------------------------------------------------------- ??? [185] 100.0% [186] 206(0.8%) 0(0.0%) build-subcontract-late-negs ...her-order.rkt:711:0 get/build-collapsible-late-neg-projection [187] 100.0% --------------------------------------------------------------------------------------- build-subcontract-late-negs [186] 100.0% [187] 206(0.8%) 206(0.8%) get/build-collapsible-late-neg-projection ...817:0 ---------------------------------------------------------------------------------------