Profiling results ----------------- Total cpu time observed: 52830ms (out of 53256ms) Number of samples taken: 203 (once every 260ms) (Hiding functions with self<1.0% and local<2.0%: 1 of 202 hidden) ========================================================================================= Caller Idx Total Self Name+src Local% ms(pct) ms(pct) Callee ========================================================================================= ??? [21] 100.0% [1] 52830(100.0%) 0(0.0%) profile-thunk16 ...e/pkgs/profile-lib/main.rkt:9:0 run [11] 100.0% ----------------------------------------------------------------------------------------- ??? [139] 100.0% [2] 2296(4.3%) 0(0.0%) approximate9 ...s-cleanup/src/core/taylor.rkt:12:0 loop [12] 66.6% for-loop [16] 22.0% taylor [23] 11.5% ----------------------------------------------------------------------------------------- hash-ref! [156] 100.0% [3] 1320(2.5%) 0(0.0%) ??? ...e/various-cleanup/src/core/taylor.rkt:45:15 hash-ref! [156] 81.7% ??? [20] 18.3% ----------------------------------------------------------------------------------------- matcher [93] 100.0% [4] 1310(2.5%) 0(0.0%) ??? ...various-cleanup/src/core/matcher.rkt:130:11 for-loop [14] 84.3% for-loop [17] 15.7% ----------------------------------------------------------------------------------------- loop [198] 31.6% for-loop [197] 68.4% [5] 790(1.5%) 0(0.0%) syntax-e (unknown source) syntax-e/no-taint [13] 100.0% ----------------------------------------------------------------------------------------- substitute-e [105] 30.1% match-e [100] 69.9% [6] 770(1.5%) 0(0.0%) variable? ...s-cleanup/src/syntax/syntax.rkt:724:0 ??? [56] 68.8% value? [184] 31.2% ----------------------------------------------------------------------------------------- loop [198] 100.0% [7] 514(1.0%) 0(0.0%) expand-id-application-form17 (unknown source) syntax-e/no-taint [13] 100.0% ----------------------------------------------------------------------------------------- for-loop [197] 100.0% [8] 512(1.0%) 0(0.0%) expand-implicit (unknown source) resolve+shift28 [15] 100.0% ----------------------------------------------------------------------------------------- expand-capturing-lifts [183] 45.2% for-loop [197] 54.8% [9] 456(0.9%) 0(0.0%) dispatch-transformer41 (unknown source) apply-transformer52 [18] 100.0% ----------------------------------------------------------------------------------------- hash-ref! [156] 100.0% [10] 270(0.5%) 0(0.0%) ??? .../various-cleanup/src/core/taylor.rkt:291:26 for-loop [19] 100.0% ----------------------------------------------------------------------------------------- profile-thunk16 [1] 100.0% [11] 52830(100.0%) 0(0.0%) run ...et-7.0/share/pkgs/profile-lib/main.rkt:39:2 ??? [21] 100.0% ----------------------------------------------------------------------------------------- approximate9 [2] 100.0% [12] 1528(2.9%) 0(0.0%) loop ...e/various-cleanup/src/core/taylor.rkt:87:4 ??? [139] 68.7% hash-ref! [156] 31.3% ----------------------------------------------------------------------------------------- gf [199] 13.6% expand-id-application-form17 [7] 34.0% syntax-e [5] 52.3% [13] 1510(2.9%) 0(0.0%) syntax-e/no-taint (unknown source) loop [198] 100.0% ----------------------------------------------------------------------------------------- ??? [4] 100.0% [14] 1310(2.5%) 0(0.0%) for-loop ...us-cleanup/src/core/matcher.rkt:132:15 matcher [93] 100.0% ----------------------------------------------------------------------------------------- expand-implicit [8] 100.0% [15] 512(1.0%) 0(0.0%) resolve+shift28 (unknown source) fallback-loop [24] 100.0% ----------------------------------------------------------------------------------------- approximate9 [2] 100.0% [16] 504(1.0%) 0(0.0%) for-loop ...ious-cleanup/src/core/taylor.rkt:30:18 taylor [23] 59.1% taylor-quotient [32] 40.9% ----------------------------------------------------------------------------------------- ??? [4] 100.0% [17] 502(1.0%) 0(0.0%) for-loop ...ous-cleanup/src/core/matcher.rkt:106:4 foldl [131] 100.0% ----------------------------------------------------------------------------------------- dispatch-transformer41 [9] 100.0% [18] 456(0.9%) 0(0.0%) apply-transformer52 (unknown source) apply-transformer-in-context [25] 54.8% apply-post-expansion [26] 45.2% ----------------------------------------------------------------------------------------- ??? [10] 100.0% [19] 270(0.5%) 0(0.0%) for-loop ...ous-cleanup/src/core/taylor.rkt:291:52 simplify [22] 100.0% ----------------------------------------------------------------------------------------- ??? [3] 100.0% [20] 242(0.5%) 0(0.0%) ??? .../various-cleanup/src/core/taylor.rkt:294:19 hash-ref! [156] 100.0% ----------------------------------------------------------------------------------------- for-loop [89] 2.4% run [11] 48.8% [21] 52830(100.0%) 676(1.3%) ??? ...lects/racket/private/more-scheme.rkt:261:28 profile-thunk16 [1] 48.8% run-improve43 [27] 39.8% prepare-points [28] 5.4% oracle-error [29] 1.8% ??? [101] 0.8% get-final-combination [31] 0.7% errors [79] 0.5% ??? [139] 0.4% ulp-difference [106] 0.4% eval-errors [33] 0.4% ordinary-value? [117] 0.3% for-loop [37] 0.2% ----------------------------------------------------------------------------------------- loop [125] 9.1% for-loop [19] 11.8% hash-ref! [156] 79.2% [22] 2296(4.3%) 0(0.0%) simplify ...rious-cleanup/src/core/reduce.rkt:16:0 f46 [30] 67.4% parse-loop30 [91] 23.5% debug-print [36] 9.1% ----------------------------------------------------------------------------------------- hash-ref! [156] 13.5% approximate9 [2] 17.1% taylor [23] 30.6% for-loop [16] 38.7% [23] 770(1.5%) 0(0.0%) taylor ...arious-cleanup/src/core/taylor.rkt:170:0 taylor-quotient [32] 38.7% taylor [23] 30.6% taylor-invert [34] 17.1% loop [125] 13.5% ----------------------------------------------------------------------------------------- resolve+shift28 [15] 100.0% [24] 512(1.0%) 242(0.5%) fallback-loop (unknown source) for-loop [197] 52.7% ----------------------------------------------------------------------------------------- apply-transformer52 [18] 100.0% [25] 250(0.5%) 0(0.0%) apply-transformer-in-context (unknown source) parse-app [35] 100.0% ----------------------------------------------------------------------------------------- apply-transformer52 [18] 100.0% [26] 206(0.4%) 0(0.0%) apply-post-expansion (unknown source) gf [199] 100.0% ----------------------------------------------------------------------------------------- ??? [21] 100.0% [27] 43014(81.4%) 0(0.0%) run-improve43 ...us-cleanup/src/mainloop.rkt:339:0 for-loop [38] 67.4% simplify! [49] 32.6% ----------------------------------------------------------------------------------------- ??? [21] 100.0% [28] 5682(10.8%) 0(0.0%) prepare-points ...ous-cleanup/src/points.rkt:166:0 loop [39] 100.0% ----------------------------------------------------------------------------------------- ??? [21] 100.0% [29] 1892(3.6%) 0(0.0%) oracle-error ...rious-cleanup/src/points.rkt:207:0 for-loop [40] 100.0% ----------------------------------------------------------------------------------------- simplify [22] 100.0% [30] 1548(2.9%) 0(0.0%) f46 ...0/collects/racket/match/compiler.rkt:507:40 eval-const-expr [104] 50.4% map [81] 49.6% ----------------------------------------------------------------------------------------- ??? [21] 100.0% [31] 752(1.4%) 0(0.0%) get-final-combination ...up/src/mainloop.rkt:360:0 infer-splitpoints [42] 100.0% ----------------------------------------------------------------------------------------- for-loop [16] 40.9% taylor [23] 59.1% [32] 504(1.0%) 0(0.0%) taylor-quotient ...eanup/src/core/taylor.rkt:334:0 first-nonzero-exp [41] 100.0% ----------------------------------------------------------------------------------------- ??? [21] 100.0% [33] 432(0.8%) 0(0.0%) eval-errors ...arious-cleanup/src/points.rkt:198:0 for-loop [43] 100.0% ----------------------------------------------------------------------------------------- taylor [23] 100.0% [34] 264(0.5%) 0(0.0%) taylor-invert ...cleanup/src/core/taylor.rkt:318:0 first-nonzero-exp [41] 100.0% ----------------------------------------------------------------------------------------- apply-transformer-in-context [25] 100.0% [35] 250(0.5%) 0(0.0%) parse-app ...collects/racket/private/kw.rkt:1105:2 syntax->list [44] 100.0% ----------------------------------------------------------------------------------------- simplify [22] 100.0% [36] 208(0.4%) 208(0.4%) debug-print ...various-cleanup/src/debug.rkt:110:0 ----------------------------------------------------------------------------------------- ??? [21] 100.0% [37] 206(0.4%) 0(0.0%) for-loop ...e/various-cleanup/src/sandbox.rkt:70:8 errors-score [74] 100.0% ----------------------------------------------------------------------------------------- run-improve43 [27] 100.0% [38] 28990(54.9%) 0(0.0%) for-loop ...various-cleanup/src/mainloop.rkt:354:4 run-iter! [45] 100.0% ----------------------------------------------------------------------------------------- prepare-points [28] 100.0% [39] 5682(10.8%) 0(0.0%) loop ...erbie/various-cleanup/src/points.rkt:143:4 loop [46] 69.3% ??? [47] 13.6% ordinary-value? [117] 10.7% andmap [107] 6.5% ----------------------------------------------------------------------------------------- oracle-error [29] 100.0% [40] 1892(3.6%) 206(0.4%) for-loop ...e/various-cleanup/src/points.rkt:208:2 loop [125] 54.7% map [81] 34.5% ----------------------------------------------------------------------------------------- taylor-invert [34] 34.4% taylor-quotient [32] 65.6% [41] 768(1.5%) 0(0.0%) first-nonzero-exp ...nup/src/core/taylor.rkt:266:0 hash-ref! [156] 100.0% ----------------------------------------------------------------------------------------- get-final-combination [31] 100.0% [42] 752(1.4%) 0(0.0%) infer-splitpoints ...nup/src/core/regimes.rkt:34:0 for-loop [48] 100.0% ----------------------------------------------------------------------------------------- eval-errors [33] 100.0% [43] 432(0.8%) 0(0.0%) for-loop ...e/various-cleanup/src/points.rkt:200:2 ulp-difference [106] 53.2% ??? [101] 46.8% ----------------------------------------------------------------------------------------- parse-app [35] 100.0% [44] 250(0.5%) 0(0.0%) syntax->list (unknown source) loop [198] 100.0% ----------------------------------------------------------------------------------------- for-loop [38] 100.0% [45] 28990(54.9%) 0(0.0%) run-iter! ...arious-cleanup/src/mainloop.rkt:320:0 simplify! [49] 70.8% finalize-iter! [50] 14.0% gen-series! [51] 7.9% gen-rewrites! [52] 4.5% localize! [53] 2.8% ----------------------------------------------------------------------------------------- loop [39] 100.0% [46] 3936(7.5%) 0(0.0%) loop ...erbie/various-cleanup/src/points.rkt:102:2 ??? [101] 100.0% ----------------------------------------------------------------------------------------- loop [39] 100.0% [47] 772(1.5%) 0(0.0%) ??? ...herbie/various-cleanup/src/points.rkt:127:2 ??? [139] 66.8% ??? [127] 33.2% ----------------------------------------------------------------------------------------- infer-splitpoints [42] 100.0% [48] 752(1.4%) 0(0.0%) for-loop ...ious-cleanup/src/core/regimes.rkt:46:6 option-on-expr [54] 100.0% ----------------------------------------------------------------------------------------- run-improve43 [27] 40.6% run-iter! [45] 59.4% [49] 34542(65.4%) 0(0.0%) simplify! ...arious-cleanup/src/mainloop.rkt:217:0 ??? [55] 99.4% for-loop [61] 0.6% ----------------------------------------------------------------------------------------- run-iter! [45] 100.0% [50] 4068(7.7%) 0(0.0%) finalize-iter! ...s-cleanup/src/mainloop.rkt:271:0 ??? [56] 100.0% ----------------------------------------------------------------------------------------- run-iter! [45] 100.0% [51] 2296(4.3%) 0(0.0%) gen-series! ...ious-cleanup/src/mainloop.rkt:153:0 for-loop [57] 100.0% ----------------------------------------------------------------------------------------- run-iter! [45] 100.0% [52] 1310(2.5%) 0(0.0%) gen-rewrites! ...us-cleanup/src/mainloop.rkt:176:0 for-loop [58] 100.0% ----------------------------------------------------------------------------------------- run-iter! [45] 100.0% [53] 798(1.5%) 0(0.0%) localize! ...arious-cleanup/src/mainloop.rkt:120:0 localize-error [59] 100.0% ----------------------------------------------------------------------------------------- for-loop [48] 100.0% [54] 752(1.4%) 0(0.0%) option-on-expr ...eanup/src/core/regimes.rkt:123:0 sort-context-on-expr [60] 100.0% ----------------------------------------------------------------------------------------- simplify! [49] 100.0% [55] 34338(65.0%) 0(0.0%) ??? .../various-cleanup/src/core/simplify.rkt:26:0 for-loop [62] 74.6% loop [69] 24.6% one-iter [68] 0.8% ----------------------------------------------------------------------------------------- variable? [6] 9.4% match-e [100] 18.5% finalize-iter! [50] 72.1% [56] 5642(10.7%) 1574(3.0%) ??? ...contract/private/arrow-val-first.rkt:388:18 for-loop [63] 72.1% ----------------------------------------------------------------------------------------- gen-series! [51] 100.0% [57] 2296(4.3%) 0(0.0%) for-loop ...various-cleanup/src/mainloop.rkt:160:7 taylor-alt [64] 100.0% ----------------------------------------------------------------------------------------- gen-rewrites! [52] 100.0% [58] 1310(2.5%) 0(0.0%) for-loop ...arious-cleanup/src/mainloop.rkt:184:11 rewrite-expression-head20 [65] 100.0% ----------------------------------------------------------------------------------------- localize! [53] 100.0% [59] 798(1.5%) 0(0.0%) localize-error ...eanup/src/core/localize.rkt:57:0 hash-ref! [156] 67.7% ??? [66] 32.3% ----------------------------------------------------------------------------------------- option-on-expr [54] 100.0% [60] 752(1.4%) 0(0.0%) sort-context-on-expr ...src/core/regimes.rkt:118:0 ??? [66] 100.0% ----------------------------------------------------------------------------------------- simplify! [49] 100.0% [61] 204(0.4%) 0(0.0%) for-loop ...various-cleanup/src/mainloop.rkt:255:6 for-loop [67] 100.0% ----------------------------------------------------------------------------------------- ??? [55] 100.0% [62] 25610(48.5%) 0(0.0%) for-loop ...ous-cleanup/src/core/simplify.rkt:35:2 one-iter [68] 85.9% loop [69] 14.1% ----------------------------------------------------------------------------------------- ??? [56] 100.0% [63] 4068(7.7%) 0(0.0%) for-loop ...us-cleanup/src/core/alt-table.rkt:56:2 atab-add-altn [70] 66.6% errors [79] 28.4% loop [75] 5.1% ----------------------------------------------------------------------------------------- for-loop [57] 100.0% [64] 2296(4.3%) 0(0.0%) taylor-alt ...rious-cleanup/src/mainloop.rkt:139:0 for-loop [71] 100.0% ----------------------------------------------------------------------------------------- for-loop [58] 100.0% [65] 1310(2.5%) 0(0.0%) rewrite-expression-head20 ...core/matcher.rkt:87:0 rewriter [72] 100.0% ----------------------------------------------------------------------------------------- localize-error [59] 25.5% sort-context-on-expr [60] 74.5% [66] 1010(1.9%) 0(0.0%) ??? ...-7.0/collects/racket/private/sort.rkt:369:3 generic-sort/key [73] 46.7% loop [94] 27.7% errors-score [74] 25.5% ----------------------------------------------------------------------------------------- for-loop [61] 100.0% [67] 204(0.4%) 0(0.0%) for-loop ...various-cleanup/src/mainloop.rkt:256:8 expression-cost [102] 100.0% ----------------------------------------------------------------------------------------- ??? [55] 1.2% for-loop [62] 98.8% [68] 22284(42.2%) 0(0.0%) one-iter ...ous-cleanup/src/core/simplify.rkt:72:0 find-matches [77] 51.7% for-loop [78] 32.1% for-loop [80] 13.6% for-loop [83] 2.6% ----------------------------------------------------------------------------------------- for-loop [62] 29.9% ??? [55] 70.1% [69] 12054(22.8%) 0(0.0%) loop ...arious-cleanup/src/core/simplify.rkt:121:2 for-loop [76] 100.0% ----------------------------------------------------------------------------------------- for-loop [63] 100.0% [70] 2708(5.1%) 0(0.0%) atab-add-altn ...anup/src/core/alt-table.rkt:202:0 errors [79] 100.0% ----------------------------------------------------------------------------------------- taylor-alt [64] 100.0% [71] 2296(4.3%) 0(0.0%) for-loop ...various-cleanup/src/mainloop.rkt:145:6 ??? [139] 100.0% ----------------------------------------------------------------------------------------- rewrite-expression-head20 [65] 39.8% matcher [93] 60.2% [72] 1310(2.5%) 284(0.5%) rewriter ...ious-cleanup/src/core/matcher.rkt:90:2 for-loop [82] 89.2% ----------------------------------------------------------------------------------------- ??? [66] 100.0% [73] 472(0.9%) 0(0.0%) generic-sort/key .../racket/private/sort.rkt:156:2 loop [94] 52.1% copying-mergesort [85] 47.9% ----------------------------------------------------------------------------------------- for-loop [37] 44.4% ??? [66] 55.6% [74] 464(0.9%) 0(0.0%) errors-score ...rious-cleanup/src/points.rkt:215:0 loop [84] 100.0% ----------------------------------------------------------------------------------------- for-loop [63] 100.0% [75] 206(0.4%) 0(0.0%) loop ...rious-cleanup/src/core/alt-table.rkt:176:2 map [81] 100.0% ----------------------------------------------------------------------------------------- loop [69] 100.0% [76] 12054(22.8%) 736(1.4%) for-loop ...us-cleanup/src/core/simplify.rkt:125:4 argmin [88] 41.8% loop [90] 27.5% for-loop [92] 13.0% for-loop [103] 5.5% expression-cost [102] 4.0% make-sequence [99] 2.1% ----------------------------------------------------------------------------------------- one-iter [68] 100.0% [77] 11530(21.8%) 0(0.0%) find-matches ...cleanup/src/core/simplify.rkt:62:0 for-loop [86] 100.0% ----------------------------------------------------------------------------------------- one-iter [68] 100.0% [78] 7150(13.5%) 0(0.0%) for-loop ...ous-cleanup/src/core/simplify.rkt:74:2 for-loop [87] 100.0% ----------------------------------------------------------------------------------------- ??? [21] 18.1% for-loop [63] 24.5% atab-add-altn [70] 57.4% [79] 4714(8.9%) 0(0.0%) errors ...bie/various-cleanup/src/points.rkt:223:0 for-loop [89] 84.3% eval-prog [116] 15.7% ----------------------------------------------------------------------------------------- one-iter [68] 100.0% [80] 3030(5.7%) 0(0.0%) for-loop ...ous-cleanup/src/core/simplify.rkt:82:2 update-leader! [123] 100.0% ----------------------------------------------------------------------------------------- loop [75] 9.5% parse-loop30 [91] 24.9% for-loop [40] 30.1% f46 [30] 35.5% [81] 2166(4.1%) 0(0.0%) map ...t-7.0/collects/racket/private/map.rkt:35:13 ??? [95] 30.1% parse-loop30 [91] 23.3% loop [125] 19.9% hash-ref! [156] 14.6% make-multiplication-node [98] 12.2% ----------------------------------------------------------------------------------------- rewriter [72] 100.0% [82] 1310(2.5%) 0(0.0%) for-loop ...ious-cleanup/src/core/matcher.rkt:92:4 matcher [93] 92.5% for-loop [97] 7.5% ----------------------------------------------------------------------------------------- one-iter [68] 100.0% [83] 574(1.1%) 0(0.0%) for-loop ...ous-cleanup/src/core/simplify.rkt:79:2 set-precompute! [96] 100.0% ----------------------------------------------------------------------------------------- errors-score [74] 100.0% [84] 464(0.9%) 206(0.4%) loop .../racket-7.0/collects/racket/list.rkt:559:2 ordinary-value? [117] 55.6% ----------------------------------------------------------------------------------------- copying-mergesort [85] 50.0% generic-sort/key [73] 50.0% [85] 226(0.4%) 0(0.0%) copying-mergesort ...racket/private/sort.rkt:129:8 copying-mergesort [85] 50.0% loop [94] 50.0% ----------------------------------------------------------------------------------------- for-loop [86] 46.6% find-matches [77] 53.4% [86] 11530(21.8%) 1090(2.1%) for-loop ...ous-cleanup/src/core/simplify.rkt:64:8 for-loop [86] 46.6% match-e [100] 45.3% ----------------------------------------------------------------------------------------- for-loop [78] 100.0% [87] 7150(13.5%) 0(0.0%) for-loop ...ous-cleanup/src/core/simplify.rkt:77:4 merge-egraph-nodes! [114] 67.1% substitute-e [105] 20.4% dedup-children! [129] 12.5% ----------------------------------------------------------------------------------------- for-loop [76] 100.0% [88] 5034(9.5%) 0(0.0%) argmin ...acket-7.0/collects/racket/list.rkt:765:0 expression-cost [102] 52.1% for-loop [103] 47.9% ----------------------------------------------------------------------------------------- errors [79] 100.0% [89] 3972(7.5%) 204(0.4%) for-loop ...e/various-cleanup/src/points.rkt:225:2 ??? [21] 94.9% ----------------------------------------------------------------------------------------- for-loop [76] 100.0% [90] 3316(6.3%) 0(0.0%) loop .../racket-7.0/collects/racket/list.rkt:751:4 expression-cost [102] 86.7% for-loop [103] 13.3% ----------------------------------------------------------------------------------------- map [81] 31.8% hash-ref! [156] 34.1% simplify [22] 34.1% [91] 1584(3.0%) 0(0.0%) parse-loop30 ...s/racket/match/compiler.rkt:418:15 eval-const-expr [104] 65.9% map [81] 34.1% ----------------------------------------------------------------------------------------- for-loop [76] 100.0% [92] 1568(3.0%) 752(1.4%) for-loop ...s-cleanup/src/core/simplify.rkt:133:16 for-loop [109] 32.5% andmap [107] 19.5% ----------------------------------------------------------------------------------------- for-loop [14] 43.3% for-loop [82] 56.7% [93] 1310(2.5%) 0(0.0%) matcher ...ious-cleanup/src/core/matcher.rkt:118:2 ??? [4] 53.2% rewriter [72] 43.3% constant? [176] 3.5% ----------------------------------------------------------------------------------------- copying-mergesort [85] 30.1% generic-sort/key [73] 32.7% ??? [66] 37.2% [94] 752(1.4%) 280(0.5%) loop ...7.0/collects/racket/private/sort.rkt:96:12 ??? [101] 62.8% ----------------------------------------------------------------------------------------- map [81] 100.0% [95] 652(1.2%) 0(0.0%) ??? ...erbie/various-cleanup/src/points.rkt:209:26 ulp-difference [106] 68.1% ??? [101] 31.9% ----------------------------------------------------------------------------------------- for-loop [83] 100.0% [96] 574(1.1%) 0(0.0%) set-precompute! ...anup/src/core/simplify.rkt:86:0 for-loop [108] 100.0% ----------------------------------------------------------------------------------------- for-loop [82] 100.0% [97] 294(0.6%) 0(0.0%) for-loop ...ious-cleanup/src/core/matcher.rkt:99:8 fix-up-variables [110] 100.0% ----------------------------------------------------------------------------------------- map [81] 100.0% [98] 264(0.5%) 0(0.0%) make-multiplication-node .../core/reduce.rkt:234:0 make-multiplication-subnode [111] 100.0% ----------------------------------------------------------------------------------------- for-loop [76] 100.0% [99] 252(0.5%) 252(0.5%) make-sequence ...ects/racket/private/for.rkt:528:2 ----------------------------------------------------------------------------------------- for-loop [124] 21.9% for-loop [86] 78.1% [100] 10440(19.8%) 2642(5.0%) match-e ...arious-cleanup/src/core/ematch.rkt:39:0 for-loop [112] 62.1% constant? [176] 8.5% ??? [56] 3.3% variable? [6] 1.7% ----------------------------------------------------------------------------------------- for-loop [43] 3.0% ??? [95] 3.1% loop [94] 7.0% loop [125] 9.2% ??? [21] 19.3% loop [46] 58.4% [101] 6744(12.8%) 636(1.2%) ??? ...erbie/various-cleanup/src/programs.rkt:99:2 ??? [139] 51.5% ??? [115] 39.1% ----------------------------------------------------------------------------------------- for-loop [67] 3.3% for-loop [76] 7.9% argmin [88] 42.4% loop [90] 46.4% [102] 6192(11.7%) 278(0.5%) expression-cost ...-cleanup/src/programs.rkt:157:0 compile [113] 95.5% ----------------------------------------------------------------------------------------- loop [90] 12.5% for-loop [76] 18.8% argmin [88] 68.7% [103] 3510(6.6%) 702(1.3%) for-loop ...various-cleanup/src/programs.rkt:158:2 table-ref [172] 80.0% ----------------------------------------------------------------------------------------- f46 [30] 42.8% parse-loop30 [91] 57.2% [104] 1824(3.5%) 0(0.0%) eval-const-expr ...-cleanup/src/programs.rkt:102:0 eval-prog [116] 100.0% ----------------------------------------------------------------------------------------- for-loop [118] 19.0% for-loop [87] 81.0% [105] 1456(2.8%) 0(0.0%) substitute-e ...s-cleanup/src/core/ematch.rkt:64:0 for-loop [118] 94.7% variable? [6] 5.3% ----------------------------------------------------------------------------------------- for-loop [43] 17.3% ??? [95] 33.3% ??? [21] 49.4% [106] 1332(2.5%) 230(0.4%) ulp-difference ...rious-cleanup/src/float.rkt:46:0 infer-representation [119] 82.7% ----------------------------------------------------------------------------------------- for-loop [92] 45.4% loop [39] 54.6% [107] 674(1.3%) 306(0.6%) andmap ...0/collects/racket/private/map.rkt:102:13 ordinary-value? [117] 54.6% ----------------------------------------------------------------------------------------- set-precompute! [96] 100.0% [108] 574(1.1%) 0(0.0%) for-loop ...ous-cleanup/src/core/simplify.rkt:88:2 setfindf [120] 52.3% merge-egraph-nodes! [114] 47.7% ----------------------------------------------------------------------------------------- for-loop [92] 100.0% [109] 510(1.0%) 510(1.0%) for-loop ...s-cleanup/src/core/simplify.rkt:137:23 ----------------------------------------------------------------------------------------- for-loop [97] 100.0% [110] 294(0.6%) 0(0.0%) fix-up-variables ...nup/src/core/matcher.rkt:111:2 pattern-substitute [121] 100.0% ----------------------------------------------------------------------------------------- make-multiplication-node [98] 100.0% [111] 264(0.5%) 0(0.0%) make-multiplication-subnode ...re/reduce.rkt:244:0 group-by61 [122] 100.0% ----------------------------------------------------------------------------------------- match-e [100] 100.0% [112] 7206(13.6%) 2744(5.2%) for-loop ...ious-cleanup/src/core/ematch.rkt:52:11 for-loop [124] 54.7% foldl [131] 3.5% cp-2 [136] 3.4% loop [125] 3.4% curried [133] 2.1% cartesian-product [135] 2.1% ----------------------------------------------------------------------------------------- expression-cost [102] 100.0% [113] 5914(11.2%) 0(0.0%) compile .../various-cleanup/src/programs.rkt:134:0 hash-ref! [156] 100.0% ----------------------------------------------------------------------------------------- for-loop [108] 2.7% merge-egraph-nodes! [114] 11.9% for-loop [87] 85.4% [114] 5072(9.6%) 0(0.0%) merge-egraph-nodes! ...p/src/core/egraph.rkt:143:0 update-leader! [123] 41.6% loop! [142] 34.6% merge-egraph-nodes! [114] 11.9% enode-merge! [132] 9.2% dedup-children! [129] 2.7% ----------------------------------------------------------------------------------------- ??? [101] 100.0% [115] 2634(5.0%) 0(0.0%) ??? ...t-7.0/collects/racket/private/kw.rkt:592:14 ??? [127] 65.9% ??? [139] 26.3% ??? [138] 7.8% ----------------------------------------------------------------------------------------- errors [79] 28.9% eval-const-expr [104] 71.1% [116] 2566(4.9%) 298(0.6%) eval-prog ...various-cleanup/src/programs.rkt:83:0 temp68_2 [126] 80.4% loop [198] 8.0% ----------------------------------------------------------------------------------------- loop [84] 15.3% andmap [107] 21.9% ??? [21] 26.8% loop [39] 36.0% [117] 1684(3.2%) 0(0.0%) ordinary-value? ...ious-cleanup/src/float.rkt:80:0 special-value? [128] 100.0% ----------------------------------------------------------------------------------------- substitute-e [105] 100.0% [118] 1456(2.8%) 244(0.5%) for-loop ...ious-cleanup/src/core/ematch.rkt:73:24 mk-enode! [130] 67.3% substitute-e [105] 24.3% ----------------------------------------------------------------------------------------- ulp-difference [106] 100.0% [119] 1102(2.1%) 896(1.7%) infer-representation ...cleanup/src/float.rkt:15:0 list-member? [137] 18.7% ----------------------------------------------------------------------------------------- for-loop [108] 100.0% [120] 300(0.6%) 0(0.0%) setfindf ...e/various-cleanup/src/common.rkt:138:0 for-loop [134] 100.0% ----------------------------------------------------------------------------------------- fix-up-variables [110] 100.0% [121] 294(0.6%) 294(0.6%) pattern-substitute ...up/src/core/matcher.rkt:46:0 ----------------------------------------------------------------------------------------- make-multiplication-subnode [111] 100.0% [122] 264(0.5%) 264(0.5%) group-by61 ...t-7.0/collects/racket/list.rkt:771:0 ----------------------------------------------------------------------------------------- merge-egraph-nodes! [114] 42.8% for-loop [80] 57.2% [123] 5298(10.0%) 0(0.0%) update-leader! ...leanup/src/core/egraph.rkt:211:0 for-loop [140] 86.8% for-loop [147] 13.2% ----------------------------------------------------------------------------------------- for-loop [112] 100.0% [124] 4758(9.0%) 250(0.5%) for-loop ...ious-cleanup/src/core/ematch.rkt:58:37 match-e [100] 80.6% ??? [146] 16.8% ----------------------------------------------------------------------------------------- for-loop [112] 0.2% loop! [142] 2.6% taylor [23] 7.0% map [81] 9.6% for-loop [40] 24.4% loop [125] 56.2% [125] 2968(5.6%) 516(1.0%) loop ...-7.0/collects/racket/private/map.rkt:40:19 loop [125] 56.2% ??? [139] 13.9% ??? [101] 10.5% simplify [22] 7.0% loop! [142] 2.6% ??? [151] 0.2% ----------------------------------------------------------------------------------------- eval-prog [116] 100.0% [126] 2062(3.9%) 0(0.0%) temp68_2 (unknown source) compile16 [141] 100.0% ----------------------------------------------------------------------------------------- ??? [47] 12.9% ??? [115] 87.1% [127] 1992(3.8%) 0(0.0%) ??? ...tract/private/arrow-higher-order.rkt:361:33 ival-sub [144] 63.3% ??? [152] 12.9% ival-div [154] 12.1% ival-add [155] 11.7% ----------------------------------------------------------------------------------------- ordinary-value? [117] 100.0% [128] 1684(3.2%) 258(0.5%) special-value? ...rious-cleanup/src/float.rkt:76:0 for-loop [143] 84.7% ----------------------------------------------------------------------------------------- merge-egraph-nodes! [114] 23.4% for-loop [87] 76.6% [129] 1170(2.2%) 0(0.0%) dedup-children! ...leanup/src/core/enode.rkt:195:0 loop [145] 100.0% ----------------------------------------------------------------------------------------- for-loop [118] 100.0% [130] 980(1.9%) 512(1.0%) mk-enode! ...ious-cleanup/src/core/egraph.rkt:97:0 new-enode [150] 47.8% ----------------------------------------------------------------------------------------- for-loop [112] 33.2% for-loop [17] 66.8% [131] 752(1.4%) 0(0.0%) foldl ....0/collects/racket/private/list.rkt:229:4 ??? [149] 66.8% merge2 [153] 33.2% ----------------------------------------------------------------------------------------- merge-egraph-nodes! [114] 100.0% [132] 618(1.2%) 0(0.0%) enode-merge! ...s-cleanup/src/core/enode.rkt:124:0 adopt-enode! [148] 100.0% ----------------------------------------------------------------------------------------- for-loop [112] 100.0% [133] 302(0.6%) 302(0.6%) curried ...-7.0/collects/racket/function.rkt:71:18 ----------------------------------------------------------------------------------------- setfindf [120] 100.0% [134] 300(0.6%) 300(0.6%) for-loop ...e/various-cleanup/src/common.rkt:139:2 ----------------------------------------------------------------------------------------- for-loop [112] 100.0% [135] 300(0.6%) 300(0.6%) cartesian-product ...ollects/racket/list.rkt:822:0 ----------------------------------------------------------------------------------------- for-loop [112] 100.0% [136] 248(0.5%) 248(0.5%) cp-2 .../racket-7.0/collects/racket/list.rkt:826:2 ----------------------------------------------------------------------------------------- infer-representation [119] 100.0% [137] 206(0.4%) 206(0.4%) list-member? ...llects/racket/private/set.rkt:24:0 ----------------------------------------------------------------------------------------- ??? [115] 100.0% [138] 206(0.4%) 206(0.4%) ??? ...arious-cleanup/src/syntax/syntax.rkt:209:17 ----------------------------------------------------------------------------------------- ??? [179] 2.0% loop [12] 4.3% loop [125] 5.1% ??? [47] 6.4% ??? [21] 8.4% ??? [115] 8.6% location-do [159] 11.1% for-loop [71] 11.1% ??? [101] 43.1% [139] 8068(15.3%) 1024(1.9%) ??? ...tract/private/arrow-higher-order.rkt:357:33 ->flonum [158] 32.4% mk-ival [162] 14.6% location-do [159] 11.1% approximate9 [2] 11.1% ival-mult [164] 8.6% hash-ref! [156] 6.3% sample-multi-bounded [168] 3.3% ----------------------------------------------------------------------------------------- update-leader! [123] 100.0% [140] 4600(8.7%) 0(0.0%) for-loop ...ious-cleanup/src/core/egraph.rkt:216:6 for-loop [157] 59.5% hash-update! [170] 40.5% ----------------------------------------------------------------------------------------- temp68_2 [126] 100.0% [141] 2062(3.9%) 0(0.0%) compile16 (unknown source) temp74_0 [160] 100.0% ----------------------------------------------------------------------------------------- loop [125] 19.3% merge-egraph-nodes! [114] 80.7% [142] 1912(3.6%) 206(0.4%) loop! .../various-cleanup/src/core/enode.rkt:187:2 custom-set-union [161] 61.4% loop [125] 19.3% update-en-expr [163] 8.4% set [166] 5.5% ----------------------------------------------------------------------------------------- special-value? [128] 100.0% [143] 1426(2.7%) 724(1.4%) for-loop ...bie/various-cleanup/src/float.rkt:17:3 return/no-unsupplied [194] 25.8% ??? [193] 23.4% ----------------------------------------------------------------------------------------- ??? [127] 100.0% [144] 1260(2.4%) 0(0.0%) ival-sub ...ious-cleanup/src/biginterval.rkt:100:0 bfadd [174] 100.0% ----------------------------------------------------------------------------------------- dedup-children! [129] 28.0% loop [145] 72.0% [145] 1170(2.2%) 1170(2.2%) loop ...racket-7.0/collects/racket/list.rkt:434:17 loop [145] 72.0% ----------------------------------------------------------------------------------------- for-loop [124] 100.0% [146] 800(1.5%) 314(0.6%) ??? ...ie/various-cleanup/src/core/ematch.rkt:43:5 for-loop [165] 60.8% ----------------------------------------------------------------------------------------- update-leader! [123] 100.0% [147] 698(1.3%) 238(0.5%) for-loop ...ious-cleanup/src/core/egraph.rkt:226:6 update-en-expr [163] 65.9% ----------------------------------------------------------------------------------------- enode-merge! [132] 100.0% [148] 618(1.2%) 0(0.0%) adopt-enode! ...s-cleanup/src/core/enode.rkt:102:0 custom-set-union [161] 100.0% ----------------------------------------------------------------------------------------- foldl [131] 100.0% [149] 502(1.0%) 228(0.4%) ??? ...e/various-cleanup/src/core/matcher.rkt:26:7 core651 [167] 54.6% ----------------------------------------------------------------------------------------- mk-enode! [130] 100.0% [150] 468(0.9%) 0(0.0%) new-enode ...rious-cleanup/src/core/enode.rkt:94:0 type-of-enode-expr [169] 52.6% set [166] 47.4% ----------------------------------------------------------------------------------------- loop [125] 100.0% [151] 266(0.5%) 0(0.0%) ??? ...-racket/utils/simple-result-arrow.rkt:39:12 bfadd [174] 100.0% ----------------------------------------------------------------------------------------- ??? [127] 100.0% [152] 256(0.5%) 256(0.5%) ??? ...ects/racket/contract/private/prop.rkt:519:4 ----------------------------------------------------------------------------------------- foldl [131] 100.0% [153] 250(0.5%) 250(0.5%) merge2 ...various-cleanup/src/core/ematch.rkt:24:0 ----------------------------------------------------------------------------------------- ??? [127] 100.0% [154] 242(0.5%) 242(0.5%) ival-div ...ious-cleanup/src/biginterval.rkt:148:0 ----------------------------------------------------------------------------------------- ??? [127] 100.0% [155] 234(0.4%) 0(0.0%) ival-add ...rious-cleanup/src/biginterval.rkt:94:0 bfadd [174] 100.0% ----------------------------------------------------------------------------------------- ??? [20] 1.4% ??? [179] 1.6% loop [12] 1.6% localize-error [59] 2.6% map [81] 3.6% ??? [3] 5.4% ??? [139] 7.6% first-nonzero-exp [41] 8.8% ??? [171] 30.2% compile [113] 37.4% [156] 8750(16.6%) 5396(10.2%) hash-ref! .../racket/private/more-scheme.rkt:376:2 ??? [171] 33.3% simplify [22] 14.8% ??? [3] 6.8% parse-loop30 [91] 6.2% ??? [179] 3.1% taylor [23] 0.8% ??? [10] 0.8% ----------------------------------------------------------------------------------------- for-loop [140] 100.0% [157] 2736(5.2%) 0(0.0%) for-loop ...ious-cleanup/src/core/egraph.rkt:217:8 hash-update! [170] 100.0% ----------------------------------------------------------------------------------------- ??? [139] 100.0% [158] 2618(5.0%) 0(0.0%) ->flonum ...ie/various-cleanup/src/float.rkt:149:0 ??? [173] 100.0% ----------------------------------------------------------------------------------------- location-do [159] 48.1% ??? [139] 51.9% [159] 2296(4.3%) 0(0.0%) location-do ...rious-cleanup/src/programs.rkt:64:0 ??? [139] 51.9% location-do [159] 48.1% ----------------------------------------------------------------------------------------- compile16 [141] 100.0% [160] 2062(3.9%) 0(0.0%) temp74_0 (unknown source) expand-single [175] 100.0% ----------------------------------------------------------------------------------------- adopt-enode! [148] 34.5% loop! [142] 65.5% [161] 1792(3.4%) 1240(2.3%) custom-set-union ...et/private/set-types.rkt:168:0 for-loop [178] 30.8% ----------------------------------------------------------------------------------------- ??? [139] 100.0% [162] 1174(2.2%) 0(0.0%) mk-ival ...arious-cleanup/src/biginterval.rkt:57:0 bf [177] 100.0% ----------------------------------------------------------------------------------------- loop! [142] 41.0% for-loop [147] 59.0% [163] 780(1.5%) 780(1.5%) update-en-expr ...leanup/src/core/egraph.rkt:205:0 ----------------------------------------------------------------------------------------- ??? [139] 100.0% [164] 692(1.3%) 328(0.6%) ival-mult ...ous-cleanup/src/biginterval.rkt:112:0 bfadd [174] 52.6% ----------------------------------------------------------------------------------------- ??? [146] 100.0% [165] 486(0.9%) 224(0.4%) for-loop ...rious-cleanup/src/core/ematch.rkt:44:7 constant? [176] 53.9% ----------------------------------------------------------------------------------------- loop! [142] 48.8% new-enode [150] 51.2% [166] 434(0.8%) 434(0.8%) set ...collects/racket/private/set-types.rkt:981:0 ----------------------------------------------------------------------------------------- ??? [149] 100.0% [167] 274(0.5%) 0(0.0%) core651 ...acket/contract/private/arr-i.rkt:918:19 successfully-got-the-right-kind-of-function [180]100.0% ----------------------------------------------------------------------------------------- ??? [139] 100.0% [168] 264(0.5%) 0(0.0%) sample-multi-bounded ...leanup/src/points.rkt:15:0 return/no-unsupplied [194] 100.0% ----------------------------------------------------------------------------------------- new-enode [150] 100.0% [169] 246(0.5%) 0(0.0%) type-of-enode-expr ...anup/src/core/enode.rkt:66:0 table-ref [172] 100.0% ----------------------------------------------------------------------------------------- for-loop [140] 40.5% for-loop [157] 59.5% [170] 4600(8.7%) 0(0.0%) hash-update! ...cket/private/more-scheme.rkt:365:4 ??? [181] 100.0% ----------------------------------------------------------------------------------------- hash-ref! [156] 100.0% [171] 4458(8.4%) 518(1.0%) ??? ...rbie/various-cleanup/src/programs.rkt:142:5 hash-ref! [156] 93.9% ----------------------------------------------------------------------------------------- type-of-enode-expr [169] 8.1% for-loop [103] 91.9% [172] 3054(5.8%) 1868(3.5%) table-ref ...e/various-cleanup/src/common.rkt:41:0 for-loop [187] 16.5% dict? [188] 14.3% assoc-iterate-first [190] 8.1% ----------------------------------------------------------------------------------------- ->flonum [158] 100.0% [173] 2618(5.0%) 212(0.4%) ??? ...s/herbie/various-cleanup/src/float.rkt:23:2 for-loop [182] 91.9% ----------------------------------------------------------------------------------------- ival-add [155] 11.0% ??? [151] 12.5% ival-mult [164] 17.1% ival-sub [144] 59.3% [174] 2124(4.0%) 0(0.0%) bfadd ...-lib/math/private/bigfloat/mpfr.rkt:821:4 new-mpfr [186] 70.3% ??? [185] 29.7% ----------------------------------------------------------------------------------------- temp74_0 [160] 100.0% [175] 2062(3.9%) 0(0.0%) expand-single (unknown source) expand-capturing-lifts [183] 100.0% ----------------------------------------------------------------------------------------- matcher [93] 14.6% for-loop [165] 16.7% match-e [100] 68.7% [176] 1572(3.0%) 0(0.0%) constant? ...s-cleanup/src/syntax/syntax.rkt:721:0 value? [184] 100.0% ----------------------------------------------------------------------------------------- mk-ival [162] 100.0% [177] 1174(2.2%) 0(0.0%) bf ...ath-lib/math/private/bigfloat/mpfr.rkt:601:2 ??? [185] 100.0% ----------------------------------------------------------------------------------------- custom-set-union [161] 100.0% [178] 552(1.0%) 236(0.4%) for-loop ...cts/racket/private/set-types.rkt:174:3 for-loop [189] 57.2% ----------------------------------------------------------------------------------------- hash-ref! [156] 100.0% [179] 478(0.9%) 0(0.0%) ??? ...e/various-cleanup/src/core/taylor.rkt:68:15 hash-ref! [156] 50.0% ??? [139] 50.0% ----------------------------------------------------------------------------------------- core651 [167] 100.0% [180] 274(0.5%) 274(0.5%) successfully-got-the-right-kind-of-function ...5:4 ----------------------------------------------------------------------------------------- hash-update! [170] 100.0% [181] 4600(8.7%) 298(0.6%) ??? .../various-cleanup/src/core/egraph.rkt:219:24 for-loop [191] 93.5% ----------------------------------------------------------------------------------------- ??? [173] 100.0% [182] 2406(4.6%) 1538(2.9%) for-loop ...bie/various-cleanup/src/float.rkt:24:5 ??? [193] 27.1% return/no-unsupplied [194] 9.0% ----------------------------------------------------------------------------------------- loop [198] 9.1% expand-single [175] 90.9% [183] 2268(4.3%) 0(0.0%) expand-capturing-lifts (unknown source) lambda-clause-expander [192] 90.9% dispatch-transformer41 [9] 9.1% ----------------------------------------------------------------------------------------- variable? [6] 13.2% constant? [176] 86.8% [184] 1812(3.4%) 1812(3.4%) value? ...arious-cleanup/src/syntax/types.rkt:18:0 ----------------------------------------------------------------------------------------- bfadd [174] 34.9% bf [177] 65.1% [185] 1804(3.4%) 1804(3.4%) ??? /opt/racket-7.0/collects/ffi/unsafe.rkt:898:4 ----------------------------------------------------------------------------------------- bfadd [174] 100.0% [186] 1494(2.8%) 1494(2.8%) new-mpfr ...b/math/private/bigfloat/mpfr.rkt:335:0 ----------------------------------------------------------------------------------------- table-ref [172] 100.0% [187] 504(1.0%) 504(1.0%) for-loop ...ie/various-cleanup/src/common.rkt:43:4 ----------------------------------------------------------------------------------------- table-ref [172] 100.0% [188] 436(0.8%) 436(0.8%) dict? ...ollects/racket/private/generic.rkt:146:11 ----------------------------------------------------------------------------------------- for-loop [178] 100.0% [189] 316(0.6%) 316(0.6%) for-loop ...cts/racket/private/set-types.rkt:178:5 ----------------------------------------------------------------------------------------- table-ref [172] 100.0% [190] 246(0.5%) 246(0.5%) assoc-iterate-first ...cket/private/dict.rkt:166:0 ----------------------------------------------------------------------------------------- ??? [181] 100.0% [191] 4302(8.1%) 4302(8.1%) for-loop ...ous-cleanup/src/core/egraph.rkt:220:26 ----------------------------------------------------------------------------------------- expand-capturing-lifts [183] 100.0% [192] 2062(3.9%) 0(0.0%) lambda-clause-expander (unknown source) finish-bodys [195] 100.0% ----------------------------------------------------------------------------------------- for-loop [143] 33.9% for-loop [182] 66.1% [193] 986(1.9%) 986(1.9%) ??? ...s/racket/contract/private/arr-i.rkt:1252:29 ----------------------------------------------------------------------------------------- for-loop [182] 25.5% sample-multi-bounded [168] 31.1% for-loop [143] 43.4% [194] 848(1.6%) 480(0.9%) return/no-unsupplied ...ct/private/arr-i.rkt:534:0 filter [196] 43.4% ----------------------------------------------------------------------------------------- lambda-clause-expander [192] 22.9% for-loop [197] 77.1% [195] 2062(3.9%) 0(0.0%) finish-bodys (unknown source) for-loop [197] 100.0% ----------------------------------------------------------------------------------------- return/no-unsupplied [194] 100.0% [196] 368(0.7%) 368(0.7%) filter ...0/collects/racket/private/list.rkt:256:2 ----------------------------------------------------------------------------------------- fallback-loop [24] 3.3% for-loop [197] 12.4% finish-bodys [195] 84.3% [197] 2062(3.9%) 516(1.0%) for-loop (unknown source) finish-bodys [195] 67.0% for-loop [197] 12.4% expand-implicit [8] 6.2% syntax-e [5] 4.2% loop [198] 3.7% dispatch-transformer41 [9] 2.0% ----------------------------------------------------------------------------------------- loop [198] 5.9% eval-prog [116] 6.8% syntax->list [44] 8.3% for-loop [197] 14.1% syntax-e/no-taint [13] 64.9% [198] 1510(2.9%) 0(0.0%) loop (unknown source) gf [199] 64.9% expand-id-application-form17 [7] 14.1% syntax-e [5] 8.3% expand-capturing-lifts [183] 6.8% loop [198] 5.9% ----------------------------------------------------------------------------------------- apply-post-expansion [26] 6.8% loop [198] 93.2% [199] 1510(2.9%) 702(1.3%) gf (unknown source) propagation-apply [200] 34.0% propagation-apply-shifted [201] 19.5% syntax-e/no-taint [13] 6.8% ----------------------------------------------------------------------------------------- gf [199] 100.0% [200] 514(1.0%) 514(1.0%) propagation-apply (unknown source) ----------------------------------------------------------------------------------------- gf [199] 100.0% [201] 294(0.6%) 294(0.6%) propagation-apply-shifted (unknown source) -----------------------------------------------------------------------------------------