Profiling results ----------------- Total cpu time observed: 495350ms (out of 495504ms) Number of samples taken: 7672 (once every 65ms) (Hiding functions with self<1.0% and local<2.0%: 6 of 213 hidden) ============================================================================= Caller Idx Total Self Name+src Local% ms(pct) ms(pct) Callee ============================================================================= [1] 495350(100.0%) 0(0.0%) ??? ...lects/racket/private/more-scheme.rkt:261:28 profile-thunk16 [15] 100.0% ----------------------------------------------------------------------------- ??? [104] 100.0% [2] 2204(0.4%) 0(0.0%) approximate9 ...and-minor/src/core/taylor.rkt:11:0 loop [16] 88.6% for-loop [24] 9.2% taylor [27] 2.3% ----------------------------------------------------------------------------- hash-ref! [116] 100.0% [3] 1654(0.3%) 0(0.0%) ??? ...efactor-and-minor/src/core/taylor.rkt:67:15 ??? [104] 71.0% hash-ref! [116] 29.0% ----------------------------------------------------------------------------- hash-ref! [116] 100.0% [4] 1286(0.3%) 0(0.0%) ??? ...factor-and-minor/src/core/taylor.rkt:300:23 for-loop [18] 100.0% ----------------------------------------------------------------------------- map [141] 46.5% hash-ref! [116] 53.5% [5] 1086(0.2%) 0(0.0%) parse-loop74 (unknown source) eval-const-expr [17] 95.4% f61 [148] 2.3% simplify* [149] 2.3% ----------------------------------------------------------------------------- hash-ref! [116] 100.0% [6] 782(0.2%) 0(0.0%) ??? ...factor-and-minor/src/core/taylor.rkt:406:23 for-loop [19] 60.9% for-loop [28] 39.1% ----------------------------------------------------------------------------- hash-ref! [116] 100.0% [7] 426(0.1%) 0(0.0%) ??? ...factor-and-minor/src/core/taylor.rkt:290:26 for-loop [21] 100.0% ----------------------------------------------------------------------------- hash-ref! [116] 100.0% [8] 308(0.1%) 0(0.0%) ??? ...factor-and-minor/src/core/taylor.rkt:509:23 for-loop [22] 100.0% ----------------------------------------------------------------------------- loop [186] 16.9% for-loop [203] 83.1% [9] 308(0.1%) 0(0.0%) syntax-e (unknown source) syntax-e/no-taint [20] 100.0% ----------------------------------------------------------------------------- matcher [94] 100.0% [10] 306(0.1%) 0(0.0%) ??? ...actor-and-minor/src/core/matcher.rkt:127:11 for-loop [23] 96.7% for-loop [14] 3.3% ----------------------------------------------------------------------------- for-loop [203] 100.0% [11] 150(0.0%) 50(0.0%) expand-implicit (unknown source) resolve+shift28 [194] 66.7% ----------------------------------------------------------------------------- taylor [27] 49.0% map [141] 51.0% [12] 102(0.0%) 0(0.0%) taylor-exp ...-and-minor/src/core/taylor.rkt:400:0 f40 [130] 100.0% ----------------------------------------------------------------------------- hash-ref! [116] 100.0% [13] 54(0.0%) 0(0.0%) parse-loop15 (unknown source) map [141] 100.0% ----------------------------------------------------------------------------- ??? [10] 100.0% [14] 50(0.0%) 0(0.0%) for-loop ...r-and-minor/src/core/matcher.rkt:103:4 foldl [25] 100.0% ----------------------------------------------------------------------------- ??? [1] 100.0% [15] 495350(100.0%) 0(0.0%) profile-thunk16 ...e/pkgs/profile-lib/main.rkt:9:0 run [26] 100.0% ----------------------------------------------------------------------------- approximate9 [2] 100.0% [16] 1952(0.4%) 0(0.0%) loop ...efactor-and-minor/src/core/taylor.rkt:86:4 hash-ref! [116] 84.7% ??? [104] 15.3% ----------------------------------------------------------------------------- f61 [148] 25.5% parse-loop74 [5] 74.5% [17] 1390(0.3%) 0(0.0%) eval-const-expr ...nd-minor/src/programs.rkt:144:0 temp85_0 [140] 81.6% loop [186] 10.8% eval [143] 7.6% ----------------------------------------------------------------------------- ??? [4] 100.0% [18] 1286(0.3%) 0(0.0%) for-loop ...r-and-minor/src/core/taylor.rkt:303:27 hash-ref! [116] 100.0% ----------------------------------------------------------------------------- ??? [6] 100.0% [19] 476(0.1%) 0(0.0%) for-loop ...r-and-minor/src/core/taylor.rkt:410:33 hash-ref! [116] 63.4% for-loop [28] 36.6% ----------------------------------------------------------------------------- expand-id-application-form17 [189] 29.4% syntax-e [9] 70.6% [20] 436(0.1%) 0(0.0%) syntax-e/no-taint (unknown source) loop [186] 100.0% ----------------------------------------------------------------------------- ??? [7] 100.0% [21] 426(0.1%) 0(0.0%) for-loop ...r-and-minor/src/core/taylor.rkt:290:52 ??? [29] 88.3% hash-ref! [116] 11.7% ----------------------------------------------------------------------------- ??? [8] 100.0% [22] 308(0.1%) 0(0.0%) for-loop ...r-and-minor/src/core/taylor.rkt:513:35 parse-loop402 [30] 100.0% ----------------------------------------------------------------------------- ??? [10] 100.0% [23] 306(0.1%) 0(0.0%) for-loop ...-and-minor/src/core/matcher.rkt:129:15 matcher [94] 100.0% ----------------------------------------------------------------------------- approximate9 [2] 100.0% [24] 202(0.0%) 0(0.0%) for-loop ...or-and-minor/src/core/taylor.rkt:29:18 taylor [27] 100.0% ----------------------------------------------------------------------------- for-loop [14] 100.0% [25] 50(0.0%) 0(0.0%) foldl ....5/collects/racket/private/list.rkt:229:4 ??? [31] 100.0% ----------------------------------------------------------------------------- profile-thunk16 [15] 100.0% [26] 495350(100.0%) 0(0.0%) run ...et-7.5/share/pkgs/profile-lib/main.rkt:39:2 .../more-scheme.rkt:261:28 [32] 100.0% ----------------------------------------------------------------------------- approximate9 [2] 1.6% for-loop [24] 6.5% map [141] 11.7% hash-ref! [116] 26.3% taylor [27] 53.9% [27] 766(0.2%) 102(0.0%) taylor ...ctor-and-minor/src/core/taylor.rkt:169:0 taylor [27] 53.9% map [141] 12.3% taylor-quotient [35] 12.1% loop [33] 10.5% debug-print [36] 1.7% taylor-exp [12] 1.1% ----------------------------------------------------------------------------- for-loop [19] 36.2% ??? [6] 63.8% [28] 480(0.1%) 0(0.0%) for-loop ...r-and-minor/src/core/taylor.rkt:412:39 hash-ref! [116] 100.0% ----------------------------------------------------------------------------- for-loop [21] 100.0% [29] 376(0.1%) 0(0.0%) ??? ...factor-and-minor/src/core/taylor.rkt:293:19 hash-ref! [116] 100.0% ----------------------------------------------------------------------------- for-loop [22] 100.0% [30] 308(0.1%) 0(0.0%) parse-loop402 (unknown source) for-loop [34] 100.0% ----------------------------------------------------------------------------- foldl [25] 100.0% [31] 50(0.0%) 0(0.0%) ??? ...efactor-and-minor/src/core/matcher.rkt:25:7 fallback-update [37] 100.0% ----------------------------------------------------------------------------- for-loop [142] 0.0% run [26] 100.0% [32] 495350(100.0%) 206(0.0%) .../more-scheme.rkt:261:28 (unknown source) prepare-points-intervals [78] 77.2% run-improve47 [38] 22.0% get-final-combination [39] 0.9% ??? [40] 0.0% ----------------------------------------------------------------------------- taylor [27] 100.0% [33] 356(0.1%) 0(0.0%) loop ...factor-and-minor/src/core/taylor.rkt:267:2 hash-ref! [116] 100.0% ----------------------------------------------------------------------------- parse-loop402 [30] 100.0% [34] 308(0.1%) 0(0.0%) for-loop ...r-and-minor/src/core/taylor.rkt:516:59 hash-ref! [116] 100.0% ----------------------------------------------------------------------------- hash-ref! [116] 26.0% taylor [27] 74.0% [35] 208(0.0%) 0(0.0%) taylor-quotient ...minor/src/core/taylor.rkt:333:0 f40 [130] 50.0% first-nonzero-exp [41] 50.0% ----------------------------------------------------------------------------- taylor [27] 100.0% [36] 52(0.0%) 0(0.0%) debug-print ...actor-and-minor/src/debug.rkt:110:0 ??? [42] 100.0% ----------------------------------------------------------------------------- ??? [31] 100.0% [37] 50(0.0%) 0(0.0%) fallback-update ...s/racket/private/dict.rkt:115:2 ??? [104] 100.0% ----------------------------------------------------------------------------- .../more-scheme.rkt:261:28 [32] 100.0% [38] 108834(22.0%) 0(0.0%) run-improve47 ...-and-minor/src/mainloop.rkt:345:0 prepare-points-intervals [78] 96.2% for-loop [43] 3.8% ----------------------------------------------------------------------------- .../more-scheme.rkt:261:28 [32] 100.0% [39] 4308(0.9%) 0(0.0%) get-final-combination ...or/src/mainloop.rkt:370:0 f33 [44] 91.6% infer-splitpoints [45] 8.4% ----------------------------------------------------------------------------- .../more-scheme.rkt:261:28 [32] 100.0% [40] 106(0.0%) 50(0.0%) ??? ...ctor-and-minor/src/syntax/syntax.rkt:214:17 return/no-unsupplied [159] 52.8% ----------------------------------------------------------------------------- taylor-quotient [35] 100.0% [41] 104(0.0%) 0(0.0%) first-nonzero-exp ...nor/src/core/taylor.rkt:265:0 hash-ref! [116] 100.0% ----------------------------------------------------------------------------- debug-print [36] 100.0% [42] 52(0.0%) 0(0.0%) ??? .../contract/private/arrow-val-first.rkt:555:3 mk-call [46] 100.0% ----------------------------------------------------------------------------- run-improve47 [38] 100.0% [43] 4146(0.8%) 0(0.0%) for-loop ...actor-and-minor/src/mainloop.rkt:364:4 run-iter! [47] 100.0% ----------------------------------------------------------------------------- get-final-combination [39] 100.0% [44] 3944(0.8%) 0(0.0%) f33 (unknown source) sindices->spoints [48] 100.0% ----------------------------------------------------------------------------- get-final-combination [39] 100.0% [45] 364(0.1%) 0(0.0%) infer-splitpoints ...nor/src/core/regimes.rkt:33:0 for-loop [49] 100.0% ----------------------------------------------------------------------------- ??? [42] 100.0% [46] 52(0.0%) 0(0.0%) mk-call ...tract/private/arrow-val-first.rkt:558:5 loop [50] 100.0% ----------------------------------------------------------------------------- for-loop [43] 100.0% [47] 4146(0.8%) 0(0.0%) run-iter! ...ctor-and-minor/src/mainloop.rkt:326:0 gen-series! [52] 53.2% finalize-iter! [53] 24.7% simplify! [54] 9.8% gen-rewrites! [56] 8.6% choose-best-alt! [57] 2.4% localize! [58] 1.3% ----------------------------------------------------------------------------- f33 [44] 100.0% [48] 3944(0.8%) 0(0.0%) sindices->spoints ...or/src/core/regimes.rkt:194:0 for-loop [51] 100.0% ----------------------------------------------------------------------------- infer-splitpoints [45] 100.0% [49] 364(0.1%) 0(0.0%) for-loop ...or-and-minor/src/core/regimes.rkt:45:6 option-on-expr [55] 100.0% ----------------------------------------------------------------------------- mk-call [46] 100.0% [50] 52(0.0%) 0(0.0%) loop ...contract/private/arrow-val-first.rkt:562:8 ??? [126] 100.0% ----------------------------------------------------------------------------- sindices->spoints [48] 100.0% [51] 3944(0.8%) 0(0.0%) for-loop ...r-and-minor/src/core/regimes.rkt:234:9 pred [70] 50.9% binary-search-floats [60] 49.1% ----------------------------------------------------------------------------- run-iter! [47] 100.0% [52] 2204(0.4%) 0(0.0%) gen-series! ...or-and-minor/src/mainloop.rkt:159:0 for-loop [59] 100.0% ----------------------------------------------------------------------------- run-iter! [47] 100.0% [53] 1024(0.2%) 0(0.0%) finalize-iter! ...and-minor/src/mainloop.rkt:277:0 ??? [100] 100.0% ----------------------------------------------------------------------------- run-iter! [47] 100.0% [54] 406(0.1%) 0(0.0%) simplify! ...ctor-and-minor/src/mainloop.rkt:223:0 ??? [62] 67.5% for-loop [64] 32.5% ----------------------------------------------------------------------------- for-loop [49] 100.0% [55] 364(0.1%) 0(0.0%) option-on-expr ...minor/src/core/regimes.rkt:124:0 for-loop [63] 72.0% sort-context-on-expr [68] 14.3% err-lsts->split-indices [69] 13.7% ----------------------------------------------------------------------------- run-iter! [47] 100.0% [56] 358(0.1%) 0(0.0%) gen-rewrites! ...-and-minor/src/mainloop.rkt:182:0 for-loop [61] 85.5% for-loop [67] 14.5% ----------------------------------------------------------------------------- run-iter! [47] 100.0% [57] 100(0.0%) 0(0.0%) choose-best-alt! ...d-minor/src/mainloop.rkt:116:0 ...ow-val-first.rkt:486:18 [65] 100.0% ----------------------------------------------------------------------------- run-iter! [47] 100.0% [58] 54(0.0%) 0(0.0%) localize! ...ctor-and-minor/src/mainloop.rkt:126:0 localize-error [66] 100.0% ----------------------------------------------------------------------------- gen-series! [52] 100.0% [59] 2204(0.4%) 0(0.0%) for-loop ...actor-and-minor/src/mainloop.rkt:166:7 taylor-alt [71] 100.0% ----------------------------------------------------------------------------- for-loop [51] 100.0% [60] 1938(0.4%) 0(0.0%) binary-search-floats ...src/core/regimes.rkt:176:0 pred [70] 100.0% ----------------------------------------------------------------------------- gen-rewrites! [56] 100.0% [61] 306(0.1%) 0(0.0%) for-loop ...ctor-and-minor/src/mainloop.rkt:190:11 rewrite-expression-head24 [72] 100.0% ----------------------------------------------------------------------------- simplify! [54] 100.0% [62] 274(0.1%) 0(0.0%) ??? ...factor-and-minor/src/core/simplify.rkt:42:0 egraph-run [73] 100.0% ----------------------------------------------------------------------------- option-on-expr [55] 100.0% [63] 262(0.1%) 0(0.0%) for-loop ...r-and-minor/src/core/regimes.rkt:135:4 errors [132] 100.0% ----------------------------------------------------------------------------- for-loop [64] 50.0% simplify! [54] 50.0% [64] 132(0.0%) 0(0.0%) for-loop ...actor-and-minor/src/mainloop.rkt:250:6 for-loop [64] 50.0% ??? [104] 50.0% ----------------------------------------------------------------------------- choose-best-alt! [57] 100.0% [65] 100(0.0%) 0(0.0%) ...ow-val-first.rkt:486:18 (unknown source) ??? [74] 100.0% ----------------------------------------------------------------------------- localize! [58] 100.0% [66] 54(0.0%) 0(0.0%) localize-error ...minor/src/core/localize.rkt:57:0 hash-ref! [116] 100.0% ----------------------------------------------------------------------------- gen-rewrites! [56] 100.0% [67] 52(0.0%) 0(0.0%) for-loop ...actor-and-minor/src/mainloop.rkt:207:4 for-loop [75] 100.0% ----------------------------------------------------------------------------- option-on-expr [55] 100.0% [68] 52(0.0%) 0(0.0%) sort-context-on-expr ...src/core/regimes.rkt:117:0 ??? [76] 100.0% ----------------------------------------------------------------------------- option-on-expr [55] 100.0% [69] 50(0.0%) 0(0.0%) err-lsts->split-indices .../core/regimes.rkt:263:0 loop [77] 100.0% ----------------------------------------------------------------------------- binary-search-floats [60] 49.1% for-loop [51] 50.9% [70] 3944(0.8%) 0(0.0%) pred ...actor-and-minor/src/core/regimes.rkt:204:4 prepare-points-intervals [78] 98.6% errors [132] 1.4% ----------------------------------------------------------------------------- for-loop [59] 100.0% [71] 2204(0.4%) 0(0.0%) taylor-alt ...tor-and-minor/src/mainloop.rkt:145:0 for-loop [79] 100.0% ----------------------------------------------------------------------------- for-loop [61] 100.0% [72] 306(0.1%) 0(0.0%) rewrite-expression-head24 ...core/matcher.rkt:85:0 rewriter [80] 100.0% ----------------------------------------------------------------------------- ??? [62] 100.0% [73] 274(0.1%) 0(0.0%) egraph-run .../pkgs/egg-herbie-linux/main.rkt:49:0 egraph-add-exprs [81] 100.0% ----------------------------------------------------------------------------- ...ow-val-first.rkt:486:18 [65] 100.0% [74] 100(0.0%) 0(0.0%) ??? ...actor-and-minor/src/core/alt-table.rkt:40:0 argmin [85] 50.0% loop [86] 50.0% ----------------------------------------------------------------------------- for-loop [67] 100.0% [75] 52(0.0%) 0(0.0%) for-loop ...actor-and-minor/src/mainloop.rkt:208:6 change-apply [82] 100.0% ----------------------------------------------------------------------------- sort-context-on-expr [68] 100.0% [76] 52(0.0%) 0(0.0%) ??? ...-7.5/collects/racket/private/sort.rkt:369:3 generic-sort/key [83] 100.0% ----------------------------------------------------------------------------- err-lsts->split-indices [69] 100.0% [77] 50(0.0%) 0(0.0%) loop ...actor-and-minor/src/core/regimes.rkt:314:4 for-loop [84] 100.0% ----------------------------------------------------------------------------- pred [70] 0.8% run-improve47 [38] 21.3% .../more-scheme.rkt:261:28 [32] 77.9% [78] 490784(99.1%) 0(0.0%) prepare-points-intervals ...r/src/points.rkt:122:0 loop [87] 100.0% loop [92] 0.0% ----------------------------------------------------------------------------- taylor-alt [71] 100.0% [79] 2204(0.4%) 0(0.0%) for-loop ...actor-and-minor/src/mainloop.rkt:151:6 ??? [104] 100.0% ----------------------------------------------------------------------------- rewrite-expression-head24 [72] 24.1% matcher [94] 75.9% [80] 306(0.1%) 0(0.0%) rewriter ...or-and-minor/src/core/matcher.rkt:87:2 for-loop [88] 100.0% ----------------------------------------------------------------------------- egraph-run [73] 100.0% [81] 274(0.1%) 0(0.0%) egraph-add-exprs ...gg-herbie-linux/main.rkt:111:0 ??? [89] 100.0% ----------------------------------------------------------------------------- for-loop [75] 100.0% [82] 52(0.0%) 0(0.0%) change-apply ...nd-minor/src/core/matcher.rkt:69:0 pattern-substitute [108] 100.0% ----------------------------------------------------------------------------- ??? [76] 100.0% [83] 52(0.0%) 0(0.0%) generic-sort/key .../racket/private/sort.rkt:156:2 copying-mergesort [91] 100.0% ----------------------------------------------------------------------------- loop [77] 100.0% [84] 50(0.0%) 50(0.0%) for-loop ...r-and-minor/src/core/regimes.rkt:279:4 ----------------------------------------------------------------------------- ??? [74] 100.0% [85] 50(0.0%) 0(0.0%) argmin ...acket-7.5/collects/racket/list.rkt:765:0 ??? [90] 100.0% ----------------------------------------------------------------------------- ??? [74] 100.0% [86] 50(0.0%) 0(0.0%) loop .../racket-7.5/collects/racket/list.rkt:751:4 ??? [90] 100.0% ----------------------------------------------------------------------------- prepare-points-intervals [78] 100.0% [87] 490726(99.1%) 236(0.0%) loop ...ie/refactor-and-minor/src/points.rkt:134:4 loop [92] 99.7% ??? [93] 0.2% do-curry [123] 0.0% andmap [98] 0.0% ----------------------------------------------------------------------------- rewriter [80] 100.0% [88] 306(0.1%) 0(0.0%) for-loop ...or-and-minor/src/core/matcher.rkt:89:4 matcher [94] 79.2% for-loop [96] 20.8% ----------------------------------------------------------------------------- egraph-add-exprs [81] 100.0% [89] 274(0.1%) 0(0.0%) ??? ...actor-and-minor/src/core/simplify.rkt:102:6 for-loop [95] 100.0% ----------------------------------------------------------------------------- loop [86] 50.0% argmin [85] 50.0% [90] 100(0.0%) 0(0.0%) ??? .../refactor-and-minor/src/mainloop.rkt:113:10 errors [132] 100.0% ----------------------------------------------------------------------------- generic-sort/key [83] 33.3% copying-mergesort [91] 66.7% [91] 52(0.0%) 0(0.0%) copying-mergesort ...racket/private/sort.rkt:129:8 copying-mergesort [91] 66.7% loop [97] 33.3% ----------------------------------------------------------------------------- prepare-points-intervals [78] 0.0% loop [87] 100.0% [92] 489480(98.8%) 21060(4.3%) loop ...bie/refactor-and-minor/src/points.rkt:79:2 ??? [104] 90.1% ??? [105] 5.0% real->precision [99] 0.3% ??? [100] 0.1% log! [101] 0.1% ??? [139] 0.0% ??? [190] 0.0% ...higher-order.rkt:375:33 [103] 0.0% ----------------------------------------------------------------------------- loop [87] 100.0% [93] 964(0.2%) 56(0.0%) ??? ...bie/refactor-and-minor/src/points.rkt:115:6 sample-multi-bounded [187] 71.0% loop [186] 23.2% ----------------------------------------------------------------------------- for-loop [23] 49.1% for-loop [88] 50.9% [94] 306(0.1%) 0(0.0%) matcher ...or-and-minor/src/core/matcher.rkt:115:2 ??? [10] 50.9% rewriter [80] 49.1% ----------------------------------------------------------------------------- ??? [89] 100.0% [95] 274(0.1%) 274(0.1%) for-loop ...-and-minor/src/core/simplify.rkt:121:2 ----------------------------------------------------------------------------- for-loop [88] 100.0% [96] 256(0.1%) 0(0.0%) for-loop ...or-and-minor/src/core/matcher.rkt:96:8 fix-up-variables [102] 100.0% ----------------------------------------------------------------------------- copying-mergesort [91] 100.0% [97] 52(0.0%) 0(0.0%) loop ...7.5/collects/racket/private/sort.rkt:96:12 ??? [104] 100.0% ----------------------------------------------------------------------------- loop [87] 100.0% [98] 50(0.0%) 0(0.0%) andmap ...5/collects/racket/private/map.rkt:102:13 ??? [190] 100.0% ----------------------------------------------------------------------------- loop [92] 100.0% [99] 1654(0.3%) 290(0.1%) real->precision ...d-minor/src/programs.rkt:118:11 ??? [104] 75.7% ??? [109] 6.8% ----------------------------------------------------------------------------- loop [92] 37.2% finalize-iter! [53] 62.8% [100] 1630(0.3%) 548(0.1%) ??? ...contract/private/arrow-val-first.rkt:486:18 for-loop [106] 62.8% mk-ival [110] 3.6% ----------------------------------------------------------------------------- loop [92] 100.0% [101] 594(0.1%) 60(0.0%) log! ...bie/refactor-and-minor/src/points.rkt:59:2 for-loop [107] 80.8% ??? [105] 9.1% ----------------------------------------------------------------------------- for-loop [96] 100.0% [102] 256(0.1%) 0(0.0%) fix-up-variables ...nor/src/core/matcher.rkt:108:2 pattern-substitute [108] 80.5% pattern-match [168] 19.5% ----------------------------------------------------------------------------- loop [92] 100.0% [103] 50(0.0%) 0(0.0%) ...higher-order.rkt:375:33 (unknown source) loop [111] 100.0% ----------------------------------------------------------------------------- fallback-update [37] 0.0% loop [97] 0.0% loop [16] 0.0% for-loop [64] 0.0% ??? [3] 0.1% location-do [115] 0.2% for-loop [79] 0.2% real->precision [99] 0.3% loop [92] 99.2% [104] 444650(89.8%) 698(0.1%) ??? ...tract/private/arrow-higher-order.rkt:375:33 ival-pow [112] 98.8% ival-mult [117] 0.3% location-do [115] 0.2% approximate9 [2] 0.2% bf [121] 0.2% hash-ref! [116] 0.1% ----------------------------------------------------------------------------- log! [101] 0.2% loop [92] 99.8% [105] 24340(4.9%) 8536(1.7%) ??? ...tract/private/arrow-higher-order.rkt:379:33 ival-exp [113] 35.9% ival-div [114] 14.8% ival-sub [118] 5.6% ival-add [119] 5.0% ival-neg [120] 3.4% ??? [126] 0.2% ----------------------------------------------------------------------------- ??? [100] 100.0% [106] 1024(0.2%) 52(0.0%) for-loop ...and-minor/src/core/alt-table.rkt:192:2 atab-add-altn [122] 40.0% errors [132] 30.1% loop [124] 14.8% override-at-pnts [127] 10.0% ----------------------------------------------------------------------------- log! [101] 100.0% [107] 480(0.1%) 480(0.1%) for-loop ...efactor-and-minor/src/points.rkt:66:23 ----------------------------------------------------------------------------- change-apply [82] 10.1% pattern-substitute [108] 30.2% fix-up-variables [102] 59.7% [108] 258(0.1%) 152(0.0%) pattern-substitute ...or/src/core/matcher.rkt:45:0 do-curry [123] 30.6% pattern-substitute [108] 30.2% ----------------------------------------------------------------------------- real->precision [99] 100.0% [109] 112(0.0%) 0(0.0%) ??? ...ects/racket/contract/private/guts.rkt:770:8 bigvalue? [125] 100.0% ----------------------------------------------------------------------------- ??? [100] 100.0% [110] 58(0.0%) 58(0.0%) mk-ival ...ctor-and-minor/src/biginterval.rkt:65:0 ----------------------------------------------------------------------------- ...higher-order.rkt:375:33 [103] 100.0% [111] 50(0.0%) 50(0.0%) loop ...factor-and-minor/src/biginterval.rkt:467:9 ----------------------------------------------------------------------------- ??? [104] 100.0% [112] 439438(88.7%) 437484(88.3%) ival-pow ...or-and-minor/src/biginterval.rkt:230:0 bfexpt [128] 0.4% ----------------------------------------------------------------------------- ??? [105] 100.0% [113] 8742(1.8%) 7988(1.6%) ival-exp ...or-and-minor/src/biginterval.rkt:192:0 bfexp [129] 8.6% ----------------------------------------------------------------------------- ??? [105] 100.0% [114] 3592(0.7%) 2284(0.5%) ival-div ...or-and-minor/src/biginterval.rkt:156:0 bfexpt [128] 36.4% ----------------------------------------------------------------------------- location-do [115] 29.3% ??? [104] 70.7% [115] 2204(0.4%) 0(0.0%) location-do ...tor-and-minor/src/programs.rkt:87:0 ??? [104] 70.7% location-do [115] 29.3% ----------------------------------------------------------------------------- for-loop [21] 0.2% localize-error [66] 0.6% first-nonzero-exp [41] 1.0% simplify* [149] 1.5% for-loop [34] 1.6% map [141] 1.9% for-loop [19] 2.0% ??? [29] 2.9% for-loop [28] 3.3% ??? [133] 3.7% loop [33] 7.6% ??? [3] 10.2% ??? [131] 12.4% for-loop [18] 13.7% loop [16] 16.2% ??? [104] 19.6% [116] 2156(0.4%) 100(0.0%) hash-ref! .../racket/private/more-scheme.rkt:376:2 ??? [3] 26.4% f40 [130] 16.1% ??? [4] 13.7% ??? [131] 12.4% taylor [27] 6.5% ??? [6] 5.4% parse-loop74 [5] 4.9% ??? [133] 3.7% ??? [7] 3.1% parse-loop15 [13] 1.9% ??? [8] 1.6% taylor-quotient [35] 0.6% ----------------------------------------------------------------------------- ??? [104] 100.0% [117] 1410(0.3%) 740(0.1%) ival-mult ...r-and-minor/src/biginterval.rkt:120:0 bfexpt [128] 47.5% ----------------------------------------------------------------------------- ??? [105] 100.0% [118] 1368(0.3%) 226(0.0%) ival-sub ...or-and-minor/src/biginterval.rkt:108:0 bfexpt [128] 83.5% ----------------------------------------------------------------------------- ??? [105] 100.0% [119] 1224(0.2%) 162(0.0%) ival-add ...or-and-minor/src/biginterval.rkt:102:0 bfexpt [128] 86.8% ----------------------------------------------------------------------------- ??? [105] 100.0% [120] 824(0.2%) 56(0.0%) ival-neg ...tor-and-minor/src/biginterval.rkt:98:0 bfexp [129] 93.2% ----------------------------------------------------------------------------- ??? [104] 100.0% [121] 768(0.2%) 0(0.0%) bf ...ath-lib/math/private/bigfloat/mpfr.rkt:615:2 new-mpfr [138] 65.4% ??? [139] 34.6% ----------------------------------------------------------------------------- for-loop [106] 100.0% [122] 410(0.1%) 0(0.0%) atab-add-altn ...inor/src/core/alt-table.rkt:195:0 errors [132] 100.0% ----------------------------------------------------------------------------- loop [87] 33.8% pattern-substitute [108] 66.2% [123] 160(0.0%) 160(0.0%) do-curry ...-7.5/collects/racket/function.rkt:71:2 ----------------------------------------------------------------------------- for-loop [106] 100.0% [124] 152(0.0%) 0(0.0%) loop ...tor-and-minor/src/core/alt-table.rkt:159:2 loop [135] 65.8% map [141] 34.2% ----------------------------------------------------------------------------- ??? [109] 100.0% [125] 112(0.0%) 112(0.0%) bigvalue? ...r-and-minor/src/syntax/types.rkt:19:0 ----------------------------------------------------------------------------- loop [50] 49.1% ??? [105] 50.9% [126] 106(0.0%) 0(0.0%) ??? ...ects/racket/contract/private/prop.rkt:567:4 ??? [136] 50.9% ??? [137] 49.1% ----------------------------------------------------------------------------- for-loop [106] 100.0% [127] 102(0.0%) 0(0.0%) override-at-pnts ...r/src/core/alt-table.rkt:120:0 for-loop [134] 100.0% ----------------------------------------------------------------------------- ival-mult [117] 10.9% ival-add [119] 17.3% ival-sub [118] 18.6% ival-div [114] 21.3% ival-pow [112] 31.8% [128] 6136(1.2%) 172(0.0%) bfexpt ...lib/math/private/bigfloat/mpfr.rkt:835:4 new-mpfr [138] 62.1% ??? [139] 35.1% ----------------------------------------------------------------------------- ival-exp [113] 49.5% ival-neg [120] 50.5% [129] 1522(0.3%) 0(0.0%) bfexp ...-lib/math/private/bigfloat/mpfr.rkt:632:4 new-mpfr [138] 67.4% ??? [139] 32.6% ----------------------------------------------------------------------------- taylor-quotient [35] 3.0% parse-loop49 [150] 4.0% taylor-exp [12] 5.3% map [141] 37.3% hash-ref! [116] 50.4% [130] 1444(0.3%) 50(0.0%) f40 (unknown source) map [141] 98.3% ----------------------------------------------------------------------------- hash-ref! [116] 100.0% [131] 1384(0.3%) 0(0.0%) ??? ...efactor-and-minor/src/core/taylor.rkt:44:15 hash-ref! [116] 100.0% ----------------------------------------------------------------------------- pred [70] 4.9% ??? [90] 8.8% for-loop [63] 23.1% for-loop [106] 27.1% atab-add-altn [122] 36.1% [132] 1136(0.2%) 0(0.0%) errors .../refactor-and-minor/src/points.rkt:192:0 temp85_0 [140] 54.4% for-loop [142] 36.3% eval-prog [144] 4.9% eval [143] 4.4% ----------------------------------------------------------------------------- hash-ref! [116] 100.0% [133] 458(0.1%) 0(0.0%) ??? ...factor-and-minor/src/core/taylor.rkt:343:33 hash-ref! [116] 100.0% ----------------------------------------------------------------------------- override-at-pnts [127] 100.0% [134] 102(0.0%) 102(0.0%) for-loop ...nd-minor/src/core/alt-table.rkt:121:22 ----------------------------------------------------------------------------- loop [135] 49.3% loop [124] 50.7% [135] 100(0.0%) 100(0.0%) loop ...racket-7.5/collects/racket/list.rkt:434:28 loop [135] 49.3% ----------------------------------------------------------------------------- ??? [126] 100.0% [136] 54(0.0%) 0(0.0%) ??? ...lects/racket/contract/private/orc.rkt:83:14 ??? [145] 100.0% ----------------------------------------------------------------------------- ??? [126] 100.0% [137] 52(0.0%) 0(0.0%) ??? ...ects/racket/contract/private/list.rkt:690:0 contract-first-order [146] 100.0% ----------------------------------------------------------------------------- bf [121] 9.4% bfexp [129] 19.2% bfexpt [128] 71.4% [138] 5336(1.1%) 5336(1.1%) new-mpfr ...b/math/private/bigfloat/mpfr.rkt:348:0 ----------------------------------------------------------------------------- loop [92] 3.6% bf [121] 8.8% bfexp [129] 16.4% bfexpt [128] 71.2% [139] 3028(0.6%) 3028(0.6%) ??? /opt/racket-7.5/collects/ffi/unsafe.rkt:938:4 ----------------------------------------------------------------------------- errors [132] 35.3% eval-const-expr [17] 64.7% [140] 1752(0.4%) 0(0.0%) temp85_0 (unknown source) compile15 [147] 100.0% ----------------------------------------------------------------------------- f61 [148] 2.9% loop [124] 3.1% parse-loop15 [13] 3.2% taylor [27] 13.2% f40 [130] 77.7% [141] 1704(0.3%) 106(0.0%) map ...t-7.5/collects/racket/private/map.rkt:35:13 f40 [130] 32.3% parse-loop74 [5] 19.6% f61 [148] 13.5% taylor [27] 12.2% simplify* [149] 5.5% parse-loop49 [150] 3.4% simplify-node [151] 3.2% hash-ref! [116] 3.2% loop [156] 3.1% ??? [155] 1.6% taylor-exp [12] 1.0% ----------------------------------------------------------------------------- errors [132] 100.0% [142] 412(0.1%) 0(0.0%) for-loop ...efactor-and-minor/src/points.rkt:194:2 .../more-scheme.rkt:261:28 [32] 75.7% ??? [152] 24.3% ----------------------------------------------------------------------------- errors [132] 32.1% eval-const-expr [17] 67.9% [143] 156(0.0%) 0(0.0%) eval (unknown source) namespace-syntax-introduce3 [153] 35.9% for-loop [203] 32.1% datum->syntax6 [157] 32.1% ----------------------------------------------------------------------------- errors [132] 100.0% [144] 56(0.0%) 0(0.0%) eval-prog ...ctor-and-minor/src/programs.rkt:106:0 inductor [154] 100.0% ----------------------------------------------------------------------------- ??? [136] 100.0% [145] 54(0.0%) 54(0.0%) ??? ...ects/racket/contract/private/list.rkt:163:5 ----------------------------------------------------------------------------- ??? [137] 100.0% [146] 52(0.0%) 0(0.0%) contract-first-order ...act/private/guts.rkt:238:0 coerce-contract/f [205] 100.0% ----------------------------------------------------------------------------- temp85_0 [140] 100.0% [147] 1752(0.4%) 0(0.0%) compile15 (unknown source) temp91_0 [158] 100.0% ----------------------------------------------------------------------------- parse-loop74 [5] 11.0% map [141] 89.0% [148] 454(0.1%) 0(0.0%) f61 (unknown source) eval-const-expr [17] 78.0% map [141] 11.0% composed [165] 11.0% ----------------------------------------------------------------------------- parse-loop74 [5] 20.0% map [141] 80.0% [149] 250(0.1%) 100(0.0%) simplify* ...or-and-minor/src/core/reduce.rkt:28:0 hash-ref! [116] 40.0% return/no-unsupplied [159] 20.0% ----------------------------------------------------------------------------- map [141] 100.0% [150] 174(0.0%) 0(0.0%) parse-loop49 (unknown source) f40 [130] 100.0% ----------------------------------------------------------------------------- map [141] 100.0% [151] 150(0.0%) 0(0.0%) simplify-node ...nd-minor/src/core/reduce.rkt:45:0 gather-multiplicative-terms [160] 66.7% append-map [161] 33.3% ----------------------------------------------------------------------------- for-loop [142] 100.0% [152] 100(0.0%) 100(0.0%) ??? ...7.5/collects/racket/private/for.rkt:1236:14 ----------------------------------------------------------------------------- eval [143] 100.0% [153] 56(0.0%) 56(0.0%) namespace-syntax-introduce3 (unknown source) ----------------------------------------------------------------------------- eval-prog [144] 100.0% [154] 56(0.0%) 0(0.0%) inductor ...actor-and-minor/src/programs.rkt:127:4 table-ref [162] 100.0% ----------------------------------------------------------------------------- map [141] 100.0% [155] 54(0.0%) 0(0.0%) ??? ...refactor-and-minor/src/core/reduce.rkt:56:5 for-loop [163] 100.0% ----------------------------------------------------------------------------- map [141] 7.7% loop [156] 92.3% [156] 52(0.0%) 0(0.0%) loop ...-7.5/collects/racket/private/map.rkt:40:19 loop [156] 92.3% ??? [164] 7.7% ----------------------------------------------------------------------------- eval [143] 100.0% [157] 50(0.0%) 50(0.0%) datum->syntax6 (unknown source) ----------------------------------------------------------------------------- compile15 [147] 100.0% [158] 1752(0.4%) 0(0.0%) temp91_0 (unknown source) temp118_0 [166] 91.1% compile-top9 [167] 8.9% ----------------------------------------------------------------------------- simplify* [149] 47.2% ??? [40] 52.8% [159] 106(0.0%) 56(0.0%) return/no-unsupplied ...ct/private/arr-i.rkt:566:0 filter [170] 47.2% ----------------------------------------------------------------------------- simplify-node [151] 100.0% [160] 100(0.0%) 100(0.0%) gather-multiplicative-terms ...re/reduce.rkt:109:0 ----------------------------------------------------------------------------- free-variables [172] 50.0% simplify-node [151] 50.0% [161] 100(0.0%) 0(0.0%) append-map ...t-7.5/collects/racket/list.rkt:586:2 gather-additive-terms6 [171] 50.0% free-variables [172] 50.0% ----------------------------------------------------------------------------- inductor [154] 100.0% [162] 56(0.0%) 56(0.0%) table-ref ...efactor-and-minor/src/common.rkt:33:0 ----------------------------------------------------------------------------- ??? [155] 100.0% [163] 54(0.0%) 0(0.0%) for-loop ...tor-and-minor/src/core/reduce.rkt:57:7 pattern-match [168] 100.0% ----------------------------------------------------------------------------- loop [156] 100.0% [164] 52(0.0%) 0(0.0%) ??? ...tor-and-minor/src/core/alt-table.rkt:176:12 loop [169] 100.0% ----------------------------------------------------------------------------- f61 [148] 100.0% [165] 50(0.0%) 0(0.0%) composed ...ollects/racket/private/list.rkt:321:16 free-variables [172] 100.0% ----------------------------------------------------------------------------- temp91_0 [158] 100.0% [166] 1596(0.3%) 0(0.0%) temp118_0 (unknown source) expand-capturing-lifts [173] 100.0% ----------------------------------------------------------------------------- temp91_0 [158] 100.0% [167] 156(0.0%) 0(0.0%) compile-top9 (unknown source) compile-forms33 [174] 100.0% ----------------------------------------------------------------------------- fix-up-variables [102] 48.1% for-loop [163] 51.9% [168] 104(0.0%) 50(0.0%) pattern-match ...d-minor/src/core/matcher.rkt:29:0 constant? [175] 51.9% ----------------------------------------------------------------------------- ??? [164] 33.3% loop [169] 66.7% [169] 52(0.0%) 52(0.0%) loop ...7.5/collects/racket/private/list.rkt:82:16 loop [169] 66.7% ----------------------------------------------------------------------------- return/no-unsupplied [159] 100.0% [170] 50(0.0%) 50(0.0%) filter ...5/collects/racket/private/list.rkt:256:2 ----------------------------------------------------------------------------- append-map [161] 100.0% [171] 50(0.0%) 0(0.0%) gather-additive-terms6 ...src/core/reduce.rkt:67:0 constant? [175] 100.0% ----------------------------------------------------------------------------- composed [165] 10.0% append-map [161] 90.0% [172] 50(0.0%) 0(0.0%) free-variables ...-and-minor/src/programs.rkt:80:0 append-map [161] 90.0% constant? [175] 10.0% ----------------------------------------------------------------------------- loop [186] 8.6% temp118_0 [166] 91.4% [173] 1746(0.4%) 120(0.0%) expand-capturing-lifts (unknown source) lambda-clause-expander [176] 81.7% expand-id-application-form17 [189] 5.7% dispatch-transformer41 [177] 5.7% ----------------------------------------------------------------------------- compile-top9 [167] 100.0% [174] 156(0.0%) 0(0.0%) compile-forms33 (unknown source) for-loop [203] 65.4% loop! [179] 34.6% ----------------------------------------------------------------------------- free-variables [172] 32.5% gather-additive-terms6 [171] 32.5% pattern-match [168] 35.1% [175] 154(0.0%) 0(0.0%) constant? ...and-minor/src/syntax/syntax.rkt:726:0 value? [178] 100.0% ----------------------------------------------------------------------------- expand-capturing-lifts [173] 100.0% [176] 1426(0.3%) 0(0.0%) lambda-clause-expander (unknown source) finish-bodys [180] 100.0% ----------------------------------------------------------------------------- expand-capturing-lifts [173] 24.8% for-loop [203] 75.2% [177] 404(0.1%) 0(0.0%) dispatch-transformer41 (unknown source) apply-transformer52 [181] 100.0% ----------------------------------------------------------------------------- constant? [175] 100.0% [178] 154(0.0%) 154(0.0%) value? ...ctor-and-minor/src/syntax/types.rkt:18:0 ----------------------------------------------------------------------------- compile-forms33 [174] 100.0% [179] 54(0.0%) 0(0.0%) loop! (unknown source) for-loop [203] 100.0% ----------------------------------------------------------------------------- lambda-clause-expander [176] 20.9% for-loop [203] 79.1% [180] 1426(0.3%) 50(0.0%) finish-bodys (unknown source) for-loop [203] 99.1% ----------------------------------------------------------------------------- dispatch-transformer41 [177] 100.0% [181] 404(0.1%) 100(0.0%) apply-transformer52 (unknown source) apply-transformer-in-context [182] 38.1% loop [186] 24.8% syntax-track-origin4 [183] 12.4% ----------------------------------------------------------------------------- apply-transformer52 [181] 100.0% [182] 154(0.0%) 102(0.0%) apply-transformer-in-context (unknown source) go [184] 33.8% ----------------------------------------------------------------------------- apply-transformer52 [181] 100.0% [183] 50(0.0%) 50(0.0%) syntax-track-origin4 (unknown source) ----------------------------------------------------------------------------- apply-transformer-in-context [182]100.0% [184] 52(0.0%) 0(0.0%) go .../collects/racket/private/qq-and-or.rkt:50:20 syntax->list [185] 100.0% ----------------------------------------------------------------------------- go [184] 100.0% [185] 52(0.0%) 0(0.0%) syntax->list (unknown source) loop [186] 100.0% ----------------------------------------------------------------------------- syntax->list [185] 0.8% loop [186] 8.2% apply-transformer52 [181] 9.4% eval-const-expr [17] 14.1% for-loop [203] 15.4% ??? [93] 21.1% syntax-e/no-taint [20] 30.9% [186] 1064(0.2%) 162(0.0%) loop (unknown source) gf [188] 30.1% expand-capturing-lifts [173] 14.1% sample-multi-bounded [187] 10.7% expand-id-application-form17 [189] 10.7% core-form-sym [191] 9.4% loop [186] 8.2% expand-identifier [192] 4.7% syntax-e [9] 0.8% ??? [190] 0.1% ----------------------------------------------------------------------------- loop [186] 14.3% ??? [93] 85.7% [187] 798(0.2%) 0(0.0%) sample-multi-bounded ...-minor/src/points.rkt:14:0 random-ranges [193] 86.2% for-loop [196] 13.8% ----------------------------------------------------------------------------- loop [186] 100.0% [188] 384(0.1%) 102(0.0%) gf (unknown source) propagation-apply [195] 53.1% cache-or-reuse-hash [198] 20.3% ----------------------------------------------------------------------------- for-loop [203] 26.5% expand-capturing-lifts [173] 26.5% loop [186] 47.1% [189] 378(0.1%) 50(0.0%) expand-id-application-form17 (unknown source) syntax-e/no-taint [20] 33.9% binding-lookup52 [197] 26.5% resolve+shift28 [194] 26.5% ----------------------------------------------------------------------------- andmap [98] 32.1% loop [92] 33.3% loop [186] 34.6% [190] 156(0.0%) 156(0.0%) ??? ...cket-7.5/collects/racket/function.rkt:93:12 ----------------------------------------------------------------------------- loop [186] 100.0% [191] 100(0.0%) 0(0.0%) core-form-sym (unknown source) resolve+shift28 [194] 100.0% ----------------------------------------------------------------------------- loop [186] 100.0% [192] 50(0.0%) 0(0.0%) expand-identifier (unknown source) resolve+shift28 [194] 100.0% ----------------------------------------------------------------------------- sample-multi-bounded [187] 100.0% [193] 688(0.1%) 114(0.0%) random-ranges ...or-and-minor/src/common.rkt:164:0 cons/c [199] 45.6% build--> [201] 37.8% ----------------------------------------------------------------------------- expand-identifier [192] 14.3% core-form-sym [191] 28.6% expand-id-application-form17 [189] 28.6% expand-implicit [11] 28.6% [194] 350(0.1%) 50(0.0%) resolve+shift28 (unknown source) fallback-loop [200] 85.7% ----------------------------------------------------------------------------- gf [188] 100.0% [195] 204(0.0%) 204(0.0%) propagation-apply (unknown source) ----------------------------------------------------------------------------- sample-multi-bounded [187] 100.0% [196] 110(0.0%) 110(0.0%) for-loop ...refactor-and-minor/src/points.rkt:20:4 ----------------------------------------------------------------------------- expand-id-application-form17 [189]100.0% [197] 100(0.0%) 50(0.0%) binding-lookup52 (unknown source) binding->module-instance [202] 50.0% ----------------------------------------------------------------------------- gf [188] 100.0% [198] 78(0.0%) 0(0.0%) cache-or-reuse-hash (unknown source) for-loop [203] 100.0% ----------------------------------------------------------------------------- random-ranges [193] 100.0% [199] 314(0.1%) 54(0.0%) cons/c .../racket/contract/private/guts.rkt:500:15 coerce-contract [204] 82.8% ----------------------------------------------------------------------------- resolve+shift28 [194] 100.0% [200] 300(0.1%) 50(0.0%) fallback-loop (unknown source) for-loop [203] 83.3% ----------------------------------------------------------------------------- random-ranges [193] 100.0% [201] 260(0.1%) 52(0.0%) build--> ...act/private/arrow-val-first.rkt:1214:0 coerce-contract [204] 80.0% ----------------------------------------------------------------------------- binding-lookup52 [197] 100.0% [202] 50(0.0%) 50(0.0%) binding->module-instance (unknown source) ----------------------------------------------------------------------------- cache-or-reuse-hash [198] 0.5% fallback-loop [200] 2.7% eval [143] 3.1% loop! [179] 3.3% compile-forms33 [174] 6.2% for-loop [203] 17.9% finish-bodys [180] 66.4% [203] 1632(0.3%) 664(0.1%) for-loop (unknown source) finish-bodys [180] 54.9% for-loop [203] 17.9% compile-module-linklet57 [206] 6.2% dispatch-transformer41 [177] 4.4% loop [186] 1.5% expand-id-application-form17 [189] 1.4% expand-implicit [11] 0.9% syntax-e [9] 0.8% ----------------------------------------------------------------------------- build--> [201] 44.4% cons/c [199] 55.6% [204] 468(0.1%) 0(0.0%) coerce-contract ...contract/private/guts.rkt:307:0 coerce-contract/f [205] 100.0% ----------------------------------------------------------------------------- contract-first-order [146] 10.0% coerce-contract [204] 90.0% [205] 520(0.1%) 52(0.0%) coerce-contract/f ...ntract/private/guts.rkt:372:0 coerce-simple-value [207] 90.0% ----------------------------------------------------------------------------- for-loop [203] 100.0% [206] 102(0.0%) 102(0.0%) compile-module-linklet57 (unknown source) ----------------------------------------------------------------------------- coerce-contract/f [205] 100.0% [207] 468(0.1%) 468(0.1%) coerce-simple-value ...ract/private/guts.rkt:385:0 -----------------------------------------------------------------------------