Profiling results ----------------- Total cpu time observed: 32108ms (out of 32308ms) Number of samples taken: 163 (once every 197ms) (Hiding functions with self<1.0% and local<2.0%: 4 of 213 hidden) ========================================================================= Caller Idx Total Self Name+src Local% ms(pct) ms(pct) Callee ========================================================================= [1] 32108(100.0%) 0(0.0%) ??? ...lects/racket/private/more-scheme.rkt:261:28 profile-thunk16 [12] 100.0% ------------------------------------------------------------------------- ??? [175] 100.0% [2] 7472(23.3%) 0(0.0%) approximate9 ...and-minor/src/core/taylor.rkt:11:0 loop [13] 72.1% for-loop [17] 22.3% taylor [24] 5.6% ------------------------------------------------------------------------- hash-ref! [106] 100.0% [3] 3948(12.3%) 0(0.0%) ??? ...efactor-and-minor/src/core/taylor.rkt:44:15 hash-ref! [106] 84.6% ??? [49] 15.4% ------------------------------------------------------------------------- hash-ref! [106] 100.0% [4] 2882(9.0%) 0(0.0%) ??? ...factor-and-minor/src/core/taylor.rkt:300:23 for-loop [14] 100.0% ------------------------------------------------------------------------- hash-ref! [106] 100.0% [5] 2498(7.8%) 0(0.0%) ??? ...factor-and-minor/src/core/taylor.rkt:290:26 for-loop [16] 100.0% ------------------------------------------------------------------------- loop [173] 16.8% for-loop [196] 83.2% [6] 2376(7.4%) 202(0.6%) syntax-e (unknown source) syntax-e/no-taint [15] 91.5% ------------------------------------------------------------------------- hash-ref! [106] 100.0% [7] 1656(5.2%) 0(0.0%) ??? ...factor-and-minor/src/core/taylor.rkt:406:23 for-loop [18] 63.3% for-loop [20] 36.7% ------------------------------------------------------------------------- hash-ref! [106] 100.0% [8] 1032(3.2%) 0(0.0%) ??? ...factor-and-minor/src/core/taylor.rkt:509:23 for-loop [19] 100.0% ------------------------------------------------------------------------- for-loop [196] 100.0% [9] 626(1.9%) 0(0.0%) expand-identifier (unknown source) resolve+shift28 [184] 100.0% ------------------------------------------------------------------------- simplify-node [31] 100.0% [10] 208(0.6%) 0(0.0%) gather-additive-terms6 ...src/core/reduce.rkt:67:0 parse-loop389 [22] 100.0% ------------------------------------------------------------------------- matcher [127] 100.0% [11] 208(0.6%) 0(0.0%) ??? ...actor-and-minor/src/core/matcher.rkt:129:11 for-loop [21] 100.0% ------------------------------------------------------------------------- ??? [1] 100.0% [12] 32108(100.0%) 0(0.0%) profile-thunk16 ...e/pkgs/profile-lib/main.rkt:9:0 run [23] 100.0% ------------------------------------------------------------------------- approximate9 [2] 100.0% [13] 5388(16.8%) 0(0.0%) loop ...efactor-and-minor/src/core/taylor.rkt:86:4 hash-ref! [106] 62.0% ??? [175] 38.0% ------------------------------------------------------------------------- ??? [4] 100.0% [14] 2882(9.0%) 0(0.0%) for-loop ...r-and-minor/src/core/taylor.rkt:303:27 hash-ref! [106] 96.3% f40 [117] 3.7% ------------------------------------------------------------------------- expand-id-application-form17 [200] 23.1% syntax-e [6] 76.9% [15] 2828(8.8%) 0(0.0%) syntax-e/no-taint (unknown source) loop [173] 100.0% ------------------------------------------------------------------------- ??? [5] 100.0% [16] 2498(7.8%) 0(0.0%) for-loop ...r-and-minor/src/core/taylor.rkt:290:52 hash-ref! [106] 62.5% ??? [49] 37.5% ------------------------------------------------------------------------- approximate9 [2] 100.0% [17] 1668(5.2%) 0(0.0%) for-loop ...or-and-minor/src/core/taylor.rkt:29:18 taylor [24] 73.4% taylor-sqrt [28] 26.6% ------------------------------------------------------------------------- ??? [7] 100.0% [18] 1048(3.3%) 0(0.0%) for-loop ...r-and-minor/src/core/taylor.rkt:410:33 hash-ref! [106] 100.0% ------------------------------------------------------------------------- ??? [8] 100.0% [19] 1032(3.2%) 0(0.0%) for-loop ...r-and-minor/src/core/taylor.rkt:513:35 parse-loop402 [25] 100.0% ------------------------------------------------------------------------- ??? [7] 100.0% [20] 608(1.9%) 0(0.0%) for-loop ...r-and-minor/src/core/taylor.rkt:412:39 hash-ref! [106] 100.0% ------------------------------------------------------------------------- ??? [11] 100.0% [21] 208(0.6%) 0(0.0%) for-loop ...-and-minor/src/core/matcher.rkt:131:15 hash-ref! [106] 100.0% ------------------------------------------------------------------------- gather-additive-terms6 [10] 100.0% [22] 208(0.6%) 0(0.0%) parse-loop389 (unknown source) for-loop [26] 100.0% ------------------------------------------------------------------------- profile-thunk16 [12] 100.0% [23] 32108(100.0%) 0(0.0%) run ...et-7.5/share/pkgs/profile-lib/main.rkt:39:2 .../more-scheme.rkt:261:28 [27] 100.0% ------------------------------------------------------------------------- map [130] 1.4% approximate9 [2] 1.9% for-loop [17] 20.5% hash-ref! [106] 31.0% taylor [24] 45.2% [24] 2840(8.8%) 0(0.0%) taylor ...ctor-and-minor/src/core/taylor.rkt:169:0 taylor [24] 45.2% taylor-sqrt [28] 16.7% debug-print [30] 10.7% taylor-quotient [32] 8.9% do-curry [33] 7.0% taylor-cbrt [35] 7.0% map [130] 1.4% taylor-log [34] 1.4% ------------------------------------------------------------------------- for-loop [19] 100.0% [25] 1032(3.2%) 0(0.0%) parse-loop402 (unknown source) for-loop [29] 100.0% ------------------------------------------------------------------------- parse-loop389 [22] 100.0% [26] 208(0.6%) 0(0.0%) for-loop ...or-and-minor/src/core/reduce.rkt:94:13 simplify-node [31] 100.0% ------------------------------------------------------------------------- for-loop [115] 5.8% run [23] 94.2% [27] 32108(100.0%) 944(2.9%) .../more-scheme.rkt:261:28 (unknown source) run-improve47 [36] 50.8% prepare-points-intervals [87] 22.1% oracle-error [38] 11.4% get-final-combination [39] 8.1% ??? [181] 3.4% errors [105] 0.8% baseline-error [44] 0.5% loop [173] 0.5% ??? [175] 0.3% ------------------------------------------------------------------------- hash-ref! [106] 16.2% for-loop [17] 29.9% taylor [24] 53.9% [28] 1484(4.6%) 0(0.0%) taylor-sqrt ...and-minor/src/core/taylor.rkt:351:0 hash-ref! [106] 41.8% f61 [40] 29.6% parse-loop74 [37] 15.1% first-nonzero-exp [41] 13.5% ------------------------------------------------------------------------- parse-loop402 [25] 100.0% [29] 1032(3.2%) 0(0.0%) for-loop ...r-and-minor/src/core/taylor.rkt:516:59 hash-ref! [106] 80.6% ??? [49] 19.4% ------------------------------------------------------------------------- taylor [24] 100.0% [30] 834(2.6%) 400(1.2%) debug-print ...actor-and-minor/src/debug.rkt:110:0 ??? [42] 52.0% ------------------------------------------------------------------------- for-loop [26] 25.5% map [130] 74.5% [31] 408(1.3%) 0(0.0%) simplify-node ...nd-minor/src/core/reduce.rkt:45:0 gather-multiplicative-terms [43] 74.5% gather-additive-terms6 [10] 25.5% ------------------------------------------------------------------------- taylor [24] 100.0% [32] 406(1.3%) 0(0.0%) taylor-quotient ...minor/src/core/taylor.rkt:333:0 first-nonzero-exp [41] 100.0% ------------------------------------------------------------------------- taylor [24] 100.0% [33] 200(0.6%) 200(0.6%) do-curry ...-7.5/collects/racket/function.rkt:71:2 ------------------------------------------------------------------------- taylor [24] 100.0% [34] 200(0.6%) 0(0.0%) taylor-log ...-and-minor/src/core/taylor.rkt:502:0 f40 [117] 100.0% ------------------------------------------------------------------------- taylor [24] 100.0% [35] 200(0.6%) 0(0.0%) taylor-cbrt ...and-minor/src/core/taylor.rkt:377:0 parse-loop74 [37] 100.0% ------------------------------------------------------------------------- .../more-scheme.rkt:261:28 [27] 100.0% [36] 17236(53.7%) 0(0.0%) run-improve47 ...-and-minor/src/mainloop.rkt:345:0 for-loop [45] 95.8% simplify! [60] 2.8% ??? [68] 1.4% ------------------------------------------------------------------------- taylor-cbrt [35] 5.3% taylor-sqrt [28] 6.0% map [130] 28.2% hash-ref! [106] 60.5% [37] 3754(11.7%) 0(0.0%) parse-loop74 (unknown source) eval-const-expr [46] 100.0% ------------------------------------------------------------------------- .../more-scheme.rkt:261:28 [27] 100.0% [38] 3674(11.4%) 0(0.0%) oracle-error ...tor-and-minor/src/points.rkt:179:0 for-loop [47] 100.0% ------------------------------------------------------------------------- .../more-scheme.rkt:261:28 [27] 100.0% [39] 3266(10.2%) 0(0.0%) get-final-combination ...or/src/mainloop.rkt:370:0 infer-splitpoints [48] 82.9% f33 [50] 17.1% ------------------------------------------------------------------------- taylor-sqrt [28] 23.7% map [130] 32.3% hash-ref! [106] 44.1% [40] 1860(5.8%) 0(0.0%) f61 (unknown source) eval-const-expr [46] 100.0% ------------------------------------------------------------------------- taylor-sqrt [28] 33.0% taylor-quotient [32] 67.0% [41] 606(1.9%) 0(0.0%) first-nonzero-exp ...nor/src/core/taylor.rkt:265:0 hash-ref! [106] 67.0% ??? [49] 33.0% ------------------------------------------------------------------------- debug-print [30] 100.0% [42] 434(1.4%) 216(0.7%) ??? .../contract/private/arrow-val-first.rkt:555:3 ~r92 [51] 50.2% ------------------------------------------------------------------------- map [130] 24.5% simplify-node [31] 75.5% [43] 408(1.3%) 200(0.6%) gather-multiplicative-terms ...re/reduce.rkt:109:0 map [130] 75.5% ------------------------------------------------------------------------- .../more-scheme.rkt:261:28 [27] 100.0% [44] 152(0.5%) 0(0.0%) baseline-error ...r-and-minor/src/points.rkt:183:0 loop [90] 100.0% ------------------------------------------------------------------------- run-improve47 [36] 100.0% [45] 16516(51.4%) 0(0.0%) for-loop ...actor-and-minor/src/mainloop.rkt:364:4 run-iter! [52] 100.0% ------------------------------------------------------------------------- f61 [40] 33.1% parse-loop74 [37] 66.9% [46] 5614(17.5%) 0(0.0%) eval-const-expr ...nd-minor/src/programs.rkt:144:0 temp85_0 [114] 92.8% eval-prog [55] 3.6% eval [56] 3.6% ------------------------------------------------------------------------- oracle-error [38] 100.0% [47] 3674(11.4%) 0(0.0%) for-loop ...efactor-and-minor/src/points.rkt:180:2 loop [173] 72.5% map [130] 27.5% ------------------------------------------------------------------------- get-final-combination [39] 100.0% [48] 2708(8.4%) 0(0.0%) infer-splitpoints ...nor/src/core/regimes.rkt:33:0 for-loop [53] 100.0% ------------------------------------------------------------------------- first-nonzero-exp [41] 8.8% for-loop [29] 8.8% ??? [3] 26.9% for-loop [16] 55.4% [49] 2260(7.0%) 0(0.0%) ??? ...factor-and-minor/src/core/taylor.rkt:293:19 hash-ref! [106] 100.0% ------------------------------------------------------------------------- get-final-combination [39] 100.0% [50] 558(1.7%) 0(0.0%) f33 (unknown source) sindices->spoints [54] 100.0% ------------------------------------------------------------------------- ??? [42] 100.0% [51] 218(0.7%) 218(0.7%) ~r92 ...acket-7.5/collects/racket/format.rkt:189:0 ------------------------------------------------------------------------- for-loop [45] 100.0% [52] 16516(51.4%) 0(0.0%) run-iter! ...ctor-and-minor/src/mainloop.rkt:326:0 gen-series! [57] 46.5% finalize-iter! [58] 33.1% simplify! [60] 10.3% choose-best-alt! [61] 6.3% localize! [63] 2.5% gen-rewrites! [64] 1.3% ------------------------------------------------------------------------- infer-splitpoints [48] 100.0% [53] 2708(8.4%) 0(0.0%) for-loop ...or-and-minor/src/core/regimes.rkt:45:6 option-on-expr [59] 100.0% ------------------------------------------------------------------------- f33 [50] 100.0% [54] 558(1.7%) 0(0.0%) sindices->spoints ...or/src/core/regimes.rkt:194:0 for-loop [62] 100.0% ------------------------------------------------------------------------- eval-const-expr [46] 100.0% [55] 202(0.6%) 0(0.0%) eval-prog ...ctor-and-minor/src/programs.rkt:106:0 inductor [65] 100.0% ------------------------------------------------------------------------- eval-const-expr [46] 100.0% [56] 200(0.6%) 0(0.0%) eval (unknown source) namespace-syntax-introduce3 [66] 100.0% ------------------------------------------------------------------------- run-iter! [52] 100.0% [57] 7672(23.9%) 0(0.0%) gen-series! ...or-and-minor/src/mainloop.rkt:159:0 for-loop [67] 100.0% ------------------------------------------------------------------------- run-iter! [52] 100.0% [58] 5468(17.0%) 0(0.0%) finalize-iter! ...and-minor/src/mainloop.rkt:277:0 ??? [68] 100.0% ------------------------------------------------------------------------- for-loop [53] 100.0% [59] 2708(8.4%) 0(0.0%) option-on-expr ...minor/src/core/regimes.rkt:124:0 for-loop [69] 86.0% err-lsts->split-indices [73] 14.0% ------------------------------------------------------------------------- run-improve47 [36] 22.1% run-iter! [52] 77.9% [60] 2190(6.8%) 0(0.0%) simplify! ...ctor-and-minor/src/mainloop.rkt:223:0 ??? [70] 100.0% ------------------------------------------------------------------------- run-iter! [52] 100.0% [61] 1048(3.3%) 0(0.0%) choose-best-alt! ...d-minor/src/mainloop.rkt:116:0 ...ow-val-first.rkt:486:18 [71] 100.0% ------------------------------------------------------------------------- sindices->spoints [54] 100.0% [62] 558(1.7%) 0(0.0%) for-loop ...r-and-minor/src/core/regimes.rkt:234:9 binary-search-floats [74] 67.0% pred [81] 33.0% ------------------------------------------------------------------------- run-iter! [52] 100.0% [63] 414(1.3%) 0(0.0%) localize! ...ctor-and-minor/src/mainloop.rkt:126:0 localize-error [72] 100.0% ------------------------------------------------------------------------- run-iter! [52] 100.0% [64] 208(0.6%) 0(0.0%) gen-rewrites! ...-and-minor/src/mainloop.rkt:182:0 for-loop [75] 100.0% ------------------------------------------------------------------------- eval-prog [55] 16.7% inductor [65] 83.3% [65] 202(0.6%) 0(0.0%) inductor ...actor-and-minor/src/programs.rkt:127:4 inductor [65] 83.3% table-ref [76] 16.7% ------------------------------------------------------------------------- eval [56] 100.0% [66] 200(0.6%) 200(0.6%) namespace-syntax-introduce3 (unknown source) ------------------------------------------------------------------------- gen-series! [57] 100.0% [67] 7672(23.9%) 0(0.0%) for-loop ...actor-and-minor/src/mainloop.rkt:166:7 taylor-alt [77] 100.0% ------------------------------------------------------------------------- run-improve47 [36] 4.1% finalize-iter! [58] 95.9% [68] 5704(17.8%) 0(0.0%) ??? ...contract/private/arrow-val-first.rkt:486:18 for-loop [78] 95.9% make-alt-table [83] 4.1% ------------------------------------------------------------------------- option-on-expr [59] 100.0% [69] 2328(7.3%) 0(0.0%) for-loop ...r-and-minor/src/core/regimes.rkt:135:4 errors [105] 100.0% ------------------------------------------------------------------------- simplify! [60] 100.0% [70] 2190(6.8%) 0(0.0%) ??? ...factor-and-minor/src/core/simplify.rkt:42:0 egraph-run [79] 100.0% ------------------------------------------------------------------------- choose-best-alt! [61] 100.0% [71] 1048(3.3%) 0(0.0%) ...ow-val-first.rkt:486:18 (unknown source) ??? [80] 100.0% ------------------------------------------------------------------------- localize! [63] 100.0% [72] 414(1.3%) 0(0.0%) localize-error ...minor/src/core/localize.rkt:57:0 hash-ref! [106] 100.0% ------------------------------------------------------------------------- option-on-expr [59] 100.0% [73] 380(1.2%) 0(0.0%) err-lsts->split-indices .../core/regimes.rkt:263:0 loop [82] 100.0% ------------------------------------------------------------------------- for-loop [62] 100.0% [74] 374(1.2%) 0(0.0%) binary-search-floats ...src/core/regimes.rkt:176:0 pred [81] 100.0% ------------------------------------------------------------------------- gen-rewrites! [64] 100.0% [75] 208(0.6%) 0(0.0%) for-loop ...ctor-and-minor/src/mainloop.rkt:190:11 rewrite-expression-head23 [84] 100.0% ------------------------------------------------------------------------- inductor [65] 100.0% [76] 202(0.6%) 0(0.0%) table-ref ...efactor-and-minor/src/common.rkt:33:0 for-loop [85] 100.0% ------------------------------------------------------------------------- for-loop [67] 100.0% [77] 7672(23.9%) 0(0.0%) taylor-alt ...tor-and-minor/src/mainloop.rkt:145:0 for-loop [86] 100.0% ------------------------------------------------------------------------- ??? [68] 100.0% [78] 5468(17.0%) 0(0.0%) for-loop ...and-minor/src/core/alt-table.rkt:192:2 atab-add-altn [88] 71.2% errors [105] 14.4% loop [91] 14.3% ------------------------------------------------------------------------- ??? [70] 100.0% [79] 2190(6.8%) 0(0.0%) egraph-run .../pkgs/egg-herbie-linux/main.rkt:49:0 egraph-add-exprs [89] 100.0% ------------------------------------------------------------------------- ...ow-val-first.rkt:486:18 [71] 100.0% [80] 1048(3.3%) 0(0.0%) ??? ...actor-and-minor/src/core/alt-table.rkt:40:0 loop [90] 80.9% argmin [94] 19.1% ------------------------------------------------------------------------- for-loop [62] 33.0% binary-search-floats [74] 67.0% [81] 558(1.7%) 0(0.0%) pred ...actor-and-minor/src/core/regimes.rkt:204:4 prepare-points-intervals [87] 67.0% errors [105] 33.0% ------------------------------------------------------------------------- err-lsts->split-indices [73] 100.0% [82] 380(1.2%) 0(0.0%) loop ...actor-and-minor/src/core/regimes.rkt:314:4 for-loop [92] 100.0% ------------------------------------------------------------------------- ??? [68] 100.0% [83] 236(0.7%) 0(0.0%) make-alt-table ...inor/src/core/alt-table.rkt:31:0 errors [105] 100.0% ------------------------------------------------------------------------- for-loop [75] 100.0% [84] 208(0.6%) 0(0.0%) rewrite-expression-head23 ...core/matcher.rkt:83:0 rewriter [93] 100.0% ------------------------------------------------------------------------- table-ref [76] 100.0% [85] 202(0.6%) 202(0.6%) for-loop ...refactor-and-minor/src/common.rkt:35:4 ------------------------------------------------------------------------- taylor-alt [77] 100.0% [86] 7672(23.9%) 0(0.0%) for-loop ...actor-and-minor/src/mainloop.rkt:151:6 ??? [175] 100.0% ------------------------------------------------------------------------- pred [81] 5.0% .../more-scheme.rkt:261:28 [27] 95.0% [87] 7476(23.3%) 0(0.0%) prepare-points-intervals ...r/src/points.rkt:122:0 loop [95] 100.0% ------------------------------------------------------------------------- for-loop [78] 100.0% [88] 3894(12.1%) 0(0.0%) atab-add-altn ...inor/src/core/alt-table.rkt:195:0 errors [105] 78.2% override-at-pnts [98] 10.7% append-at-pnts [99] 5.8% for-loop [100] 5.3% ------------------------------------------------------------------------- egraph-run [79] 100.0% [89] 2190(6.8%) 0(0.0%) egraph-add-exprs ...gg-herbie-linux/main.rkt:111:0 ??? [96] 100.0% ------------------------------------------------------------------------- baseline-error [44] 15.2% ??? [80] 84.8% [90] 1000(3.1%) 0(0.0%) loop .../racket-7.5/collects/racket/list.rkt:751:4 ??? [97] 84.8% ??? [104] 15.2% ------------------------------------------------------------------------- for-loop [78] 100.0% [91] 784(2.4%) 0(0.0%) loop ...tor-and-minor/src/core/alt-table.rkt:159:2 map [130] 74.5% loop [102] 25.5% ------------------------------------------------------------------------- loop [82] 100.0% [92] 380(1.2%) 194(0.6%) for-loop ...r-and-minor/src/core/regimes.rkt:279:4 for-loop [103] 48.9% ------------------------------------------------------------------------- matcher [127] 50.0% rewrite-expression-head23 [84] 50.0% [93] 208(0.6%) 0(0.0%) rewriter ...or-and-minor/src/core/matcher.rkt:85:2 for-loop [101] 100.0% ------------------------------------------------------------------------- ??? [80] 100.0% [94] 200(0.6%) 0(0.0%) argmin ...acket-7.5/collects/racket/list.rkt:765:0 ??? [97] 100.0% ------------------------------------------------------------------------- prepare-points-intervals [87] 100.0% [95] 7476(23.3%) 0(0.0%) loop ...ie/refactor-and-minor/src/points.rkt:134:4 loop [107] 89.5% ??? [109] 10.5% ------------------------------------------------------------------------- egraph-add-exprs [89] 100.0% [96] 2190(6.8%) 0(0.0%) ??? ...actor-and-minor/src/core/simplify.rkt:102:6 for-loop [108] 84.7% egg-run-rules [111] 15.3% ------------------------------------------------------------------------- argmin [94] 19.1% loop [90] 80.9% [97] 1048(3.3%) 0(0.0%) ??? .../refactor-and-minor/src/mainloop.rkt:113:10 errors [105] 100.0% ------------------------------------------------------------------------- atab-add-altn [88] 100.0% [98] 418(1.3%) 0(0.0%) override-at-pnts ...r/src/core/alt-table.rkt:120:0 for-loop [110] 100.0% ------------------------------------------------------------------------- atab-add-altn [88] 100.0% [99] 224(0.7%) 0(0.0%) append-at-pnts ...nor/src/core/alt-table.rkt:128:0 loop [173] 100.0% ------------------------------------------------------------------------- atab-add-altn [88] 100.0% [100] 208(0.6%) 208(0.6%) for-loop ...and-minor/src/core/alt-table.rkt:101:2 ------------------------------------------------------------------------- rewriter [93] 100.0% [101] 208(0.6%) 0(0.0%) for-loop ...or-and-minor/src/core/matcher.rkt:87:4 hash-ref! [106] 50.0% for-loop [112] 50.0% ------------------------------------------------------------------------- loop [91] 25.0% loop [102] 75.0% [102] 200(0.6%) 200(0.6%) loop ...racket-7.5/collects/racket/list.rkt:434:28 loop [102] 75.0% ------------------------------------------------------------------------- for-loop [92] 100.0% [103] 186(0.6%) 186(0.6%) for-loop ...r-and-minor/src/core/regimes.rkt:283:8 ------------------------------------------------------------------------- loop [90] 100.0% [104] 152(0.5%) 0(0.0%) ??? ...ie/refactor-and-minor/src/points.rkt:184:27 eval-errors [113] 100.0% ------------------------------------------------------------------------- pred [81] 2.3% make-alt-table [83] 2.9% .../more-scheme.rkt:261:28 [27] 6.5% for-loop [78] 9.7% ??? [97] 12.8% for-loop [69] 28.5% atab-add-altn [88] 37.3% [105] 8158(25.4%) 0(0.0%) errors .../refactor-and-minor/src/points.rkt:192:0 for-loop [115] 51.0% temp85_0 [114] 44.4% loop [173] 4.6% ------------------------------------------------------------------------- for-loop [29] 1.0% for-loop [20] 1.1% for-loop [21] 1.5% for-loop [101] 1.5% for-loop [18] 1.5% localize-error [72] 1.6% first-nonzero-exp [41] 2.4% ??? [119] 2.6% ??? [120] 3.7% map [130] 4.3% ??? [116] 4.3% for-loop [16] 5.1% taylor-sqrt [28] 5.4% ??? [49] 7.4% ??? [3] 10.6% for-loop [14] 10.9% loop [13] 12.1% ??? [175] 20.6% [106] 7036(21.9%) 0(0.0%) hash-ref! .../racket/private/more-scheme.rkt:376:2 ??? [116] 16.4% ??? [3] 12.7% ??? [4] 11.4% parse-loop74 [37] 10.6% ??? [5] 9.1% f40 [117] 7.6% taylor [24] 6.2% parse-loop15 [123] 5.3% ??? [120] 3.7% f61 [40] 3.3% matcher [127] 3.0% ??? [7] 2.7% ??? [119] 2.6% taylor-sqrt [28] 1.7% ??? [8] 1.2% ??? [125] 0.6% ------------------------------------------------------------------------- loop [95] 100.0% [107] 6690(20.8%) 1348(4.2%) loop ...bie/refactor-and-minor/src/points.rkt:79:2 ??? [118] 37.2% ??? [175] 31.3% real->precision [121] 11.4% ------------------------------------------------------------------------- ??? [96] 100.0% [108] 1854(5.8%) 1854(5.8%) for-loop ...-and-minor/src/core/simplify.rkt:121:2 ------------------------------------------------------------------------- loop [95] 100.0% [109] 786(2.4%) 0(0.0%) ??? ...bie/refactor-and-minor/src/points.rkt:115:6 sample-multi-bounded [122] 72.3% loop [173] 27.7% ------------------------------------------------------------------------- override-at-pnts [98] 100.0% [110] 418(1.3%) 418(1.3%) for-loop ...nd-minor/src/core/alt-table.rkt:121:22 ------------------------------------------------------------------------- ??? [96] 100.0% [111] 336(1.0%) 0(0.0%) egg-run-rules ...minor/src/core/simplify.rkt:108:0 make-ffi-rules [124] 100.0% ------------------------------------------------------------------------- for-loop [101] 100.0% [112] 208(0.6%) 0(0.0%) for-loop ...or-and-minor/src/core/matcher.rkt:94:8 fix-up-variables [126] 100.0% ------------------------------------------------------------------------- ??? [104] 100.0% [113] 152(0.5%) 0(0.0%) eval-errors ...ctor-and-minor/src/points.rkt:170:0 for-loop [128] 100.0% ------------------------------------------------------------------------- loop [173] 1.7% errors [105] 40.3% eval-const-expr [46] 58.0% [114] 8988(28.0%) 0(0.0%) temp85_0 (unknown source) compile15 [129] 100.0% ------------------------------------------------------------------------- errors [105] 100.0% [115] 4160(13.0%) 410(1.3%) for-loop ...efactor-and-minor/src/points.rkt:194:2 .../more-scheme.rkt:261:28 [27] 90.1% ------------------------------------------------------------------------- hash-ref! [106] 100.0% [116] 3338(10.4%) 0(0.0%) ??? ...efactor-and-minor/src/core/taylor.rkt:67:15 ??? [175] 75.3% hash-ref! [106] 24.7% ------------------------------------------------------------------------- ??? [175] 1.5% parse-loop49 [146] 2.5% taylor-log [34] 3.7% for-loop [14] 4.0% hash-ref! [106] 35.1% map [130] 53.2% [117] 2684(8.4%) 0(0.0%) f40 (unknown source) map [130] 100.0% ------------------------------------------------------------------------- loop [107] 100.0% [118] 2486(7.7%) 186(0.6%) ??? ...tract/private/arrow-higher-order.rkt:379:33 ival-cbrt [131] 39.6% ival-sqrt [132] 23.5% ival-neg [134] 15.0% ival-add [135] 14.4% ------------------------------------------------------------------------- hash-ref! [106] 100.0% [119] 1472(4.6%) 0(0.0%) ??? ...factor-and-minor/src/core/taylor.rkt:362:30 hash-ref! [106] 100.0% ------------------------------------------------------------------------- hash-ref! [106] 100.0% [120] 1460(4.5%) 0(0.0%) ??? ...factor-and-minor/src/core/taylor.rkt:343:33 hash-ref! [106] 100.0% ------------------------------------------------------------------------- loop [107] 100.0% [121] 762(2.4%) 0(0.0%) real->precision ...d-minor/src/programs.rkt:118:11 ??? [175] 100.0% ------------------------------------------------------------------------- ??? [109] 100.0% [122] 568(1.8%) 0(0.0%) sample-multi-bounded ...-minor/src/points.rkt:14:0 random-ranges [133] 100.0% ------------------------------------------------------------------------- hash-ref! [106] 100.0% [123] 414(1.3%) 0(0.0%) parse-loop15 (unknown source) map [130] 83.9% for-loop [138] 16.1% ------------------------------------------------------------------------- egg-run-rules [111] 100.0% [124] 336(1.0%) 0(0.0%) make-ffi-rules ...s/egg-herbie-linux/main.rkt:28:0 for-loop [136] 100.0% ------------------------------------------------------------------------- hash-ref! [106] 100.0% [125] 214(0.7%) 0(0.0%) ??? ...actor-and-minor/src/core/localize.rkt:16:13 repeat [137] 100.0% ------------------------------------------------------------------------- for-loop [112] 100.0% [126] 208(0.6%) 208(0.6%) fix-up-variables ...nor/src/core/matcher.rkt:106:2 ------------------------------------------------------------------------- hash-ref! [106] 100.0% [127] 208(0.6%) 0(0.0%) matcher ...or-and-minor/src/core/matcher.rkt:117:2 ??? [11] 50.0% rewriter [93] 50.0% ------------------------------------------------------------------------- eval-errors [113] 100.0% [128] 152(0.5%) 0(0.0%) for-loop ...efactor-and-minor/src/points.rkt:172:2 ??? [181] 100.0% ------------------------------------------------------------------------- temp85_0 [114] 100.0% [129] 8988(28.0%) 0(0.0%) compile15 (unknown source) temp91_0 [139] 100.0% ------------------------------------------------------------------------- taylor [24] 1.1% gather-multiplicative-terms [43] 1.6% parse-loop15 [123] 8.8% loop [91] 12.4% for-loop [47] 21.5% f40 [117] 54.5% [130] 4692(14.6%) 208(0.6%) map ...t-7.5/collects/racket/private/map.rkt:35:13 loop [140] 34.0% f40 [117] 28.9% parse-loop74 [37] 12.0% hash-ref! [106] 8.8% f61 [40] 5.8% ??? [142] 4.8% simplify-node [31] 1.6% parse-loop49 [146] 1.4% taylor [24] 1.1% gather-multiplicative-terms [43] 1.1% ------------------------------------------------------------------------- ??? [118] 100.0% [131] 984(3.1%) 782(2.4%) ival-cbrt ...r-and-minor/src/biginterval.rkt:212:0 bfneg [141] 20.5% ------------------------------------------------------------------------- ??? [118] 100.0% [132] 584(1.8%) 384(1.2%) ival-sqrt ...r-and-minor/src/biginterval.rkt:205:0 bfneg [141] 34.2% ------------------------------------------------------------------------- sample-multi-bounded [122] 100.0% [133] 568(1.8%) 0(0.0%) random-ranges ...or-and-minor/src/common.rkt:164:0 cons/c [143] 65.1% build--> [147] 34.9% ------------------------------------------------------------------------- ??? [118] 100.0% [134] 374(1.2%) 0(0.0%) ival-neg ...or-and-minor/src/biginterval.rkt:107:0 bfneg [141] 100.0% ------------------------------------------------------------------------- ??? [118] 100.0% [135] 358(1.1%) 0(0.0%) ival-add ...or-and-minor/src/biginterval.rkt:111:0 bfmul [191] 100.0% ------------------------------------------------------------------------- make-ffi-rules [124] 100.0% [136] 336(1.0%) 0(0.0%) for-loop ....5/pkgs/egg-herbie-linux/main.rkt:29:2 to-egg-pattern [144] 100.0% ------------------------------------------------------------------------- ??? [125] 100.0% [137] 214(0.7%) 0(0.0%) repeat ...ctor-and-minor/src/core/localize.rkt:7:0 for-loop [145] 100.0% ------------------------------------------------------------------------- parse-loop15 [123] 100.0% [138] 200(0.6%) 200(0.6%) for-loop ...-and-minor/src/core/localize.rkt:44:21 ------------------------------------------------------------------------- compile15 [129] 100.0% [139] 8988(28.0%) 0(0.0%) temp91_0 (unknown source) temp118_0 [148] 85.7% compile-top9 [149] 11.6% loop [173] 2.7% ------------------------------------------------------------------------- map [130] 29.9% loop [140] 70.1% [140] 1594(5.0%) 200(0.6%) loop ...-7.5/collects/racket/private/map.rkt:40:19 loop [140] 70.1% ??? [176] 27.0% ??? [151] 1.4% ------------------------------------------------------------------------- ival-sqrt [132] 25.8% ival-cbrt [131] 26.0% ival-neg [134] 48.2% [141] 776(2.4%) 200(0.6%) bfneg ...-lib/math/private/bigfloat/mpfr.rkt:632:4 new-mpfr [197] 74.2% ------------------------------------------------------------------------- map [130] 100.0% [142] 616(1.9%) 216(0.7%) ??? ...refactor-and-minor/src/core/reduce.rkt:56:5 for-loop [150] 64.9% ------------------------------------------------------------------------- random-ranges [133] 100.0% [143] 370(1.2%) 198(0.6%) cons/c .../racket/contract/private/guts.rkt:500:15 coerce-contract [152] 46.5% ------------------------------------------------------------------------- for-loop [136] 100.0% [144] 336(1.0%) 336(1.0%) to-egg-pattern ...ie-linux/to-egg-pattern.rkt:17:0 ------------------------------------------------------------------------- repeat [137] 100.0% [145] 214(0.7%) 214(0.7%) for-loop ...or-and-minor/src/core/localize.rkt:8:2 ------------------------------------------------------------------------- map [130] 100.0% [146] 200(0.6%) 0(0.0%) parse-loop49 (unknown source) f40 [117] 100.0% ------------------------------------------------------------------------- random-ranges [133] 100.0% [147] 198(0.6%) 0(0.0%) build--> ...act/private/arrow-val-first.rkt:1214:0 coerce-contract [152] 100.0% ------------------------------------------------------------------------- temp91_0 [139] 100.0% [148] 7702(24.0%) 0(0.0%) temp118_0 (unknown source) expand-capturing-lifts [153] 100.0% ------------------------------------------------------------------------- temp91_0 [139] 100.0% [149] 1046(3.3%) 0(0.0%) compile-top9 (unknown source) compile-forms33 [154] 100.0% ------------------------------------------------------------------------- ??? [142] 100.0% [150] 400(1.2%) 0(0.0%) for-loop ...tor-and-minor/src/core/reduce.rkt:57:7 pattern-match [155] 100.0% ------------------------------------------------------------------------- loop [140] 100.0% [151] 384(1.2%) 0(0.0%) ??? ...tor-and-minor/src/core/alt-table.rkt:176:12 loop [156] 100.0% ------------------------------------------------------------------------- cons/c [143] 46.5% build--> [147] 53.5% [152] 370(1.2%) 0(0.0%) coerce-contract ...contract/private/guts.rkt:307:0 coerce-contract/f [157] 100.0% ------------------------------------------------------------------------- loop [173] 4.6% temp118_0 [148] 95.4% [153] 8074(25.1%) 188(0.6%) expand-capturing-lifts (unknown source) lambda-clause-expander [158] 92.4% dispatch-transformer41 [159] 5.3% ------------------------------------------------------------------------- compile-top9 [149] 100.0% [154] 1046(3.3%) 0(0.0%) compile-forms33 (unknown source) for-loop [196] 57.4% loop! [160] 42.6% ------------------------------------------------------------------------- for-loop [150] 100.0% [155] 400(1.2%) 0(0.0%) pattern-match ...d-minor/src/core/matcher.rkt:29:0 for-loop [161] 100.0% ------------------------------------------------------------------------- ??? [151] 7.4% loop [156] 92.6% [156] 384(1.2%) 384(1.2%) loop ...7.5/collects/racket/private/list.rkt:82:16 loop [156] 92.6% ------------------------------------------------------------------------- coerce-contract [152] 100.0% [157] 370(1.2%) 0(0.0%) coerce-contract/f ...ntract/private/guts.rkt:372:0 coerce-simple-value [162] 100.0% ------------------------------------------------------------------------- expand-capturing-lifts [153] 100.0% [158] 7462(23.2%) 0(0.0%) lambda-clause-expander (unknown source) finish-bodys [163] 97.3% loop [173] 2.7% ------------------------------------------------------------------------- expand-capturing-lifts [153] 17.4% for-loop [196] 82.6% [159] 2434(7.6%) 0(0.0%) dispatch-transformer41 (unknown source) apply-transformer52 [164] 100.0% ------------------------------------------------------------------------- compile-forms33 [154] 100.0% [160] 446(1.4%) 0(0.0%) loop! (unknown source) for-loop [196] 100.0% ------------------------------------------------------------------------- pattern-match [155] 100.0% [161] 400(1.2%) 0(0.0%) for-loop ...or-and-minor/src/core/matcher.rkt:26:9 core457 [165] 100.0% ------------------------------------------------------------------------- coerce-contract/f [157] 100.0% [162] 370(1.2%) 370(1.2%) coerce-simple-value ...ract/private/guts.rkt:385:0 ------------------------------------------------------------------------- lambda-clause-expander [158] 24.9% for-loop [196] 75.1% [163] 7260(22.6%) 0(0.0%) finish-bodys (unknown source) for-loop [196] 100.0% ------------------------------------------------------------------------- dispatch-transformer41 [159] 100.0% [164] 2434(7.6%) 200(0.6%) apply-transformer52 (unknown source) apply-transformer-in-context [166] 51.0% loop [173] 33.2% apply-post-expansion [168] 7.6% ------------------------------------------------------------------------- for-loop [161] 100.0% [165] 400(1.2%) 200(0.6%) core457 ...acket/contract/private/arr-i.rkt:976:19 un-dep/maybe-chaperone [167] 50.0% ------------------------------------------------------------------------- apply-transformer52 [164] 100.0% [166] 1242(3.9%) 400(1.2%) apply-transformer-in-context (unknown source) datum->syntax6 [169] 32.4% parse-lambda [170] 19.3% parse-app [171] 16.1% ------------------------------------------------------------------------- core457 [165] 100.0% [167] 200(0.6%) 0(0.0%) un-dep/maybe-chaperone ...private/arr-i.rkt:1137:2 ??? [172] 100.0% ------------------------------------------------------------------------- apply-transformer52 [164] 100.0% [168] 184(0.6%) 0(0.0%) apply-post-expansion (unknown source) gf [177] 100.0% ------------------------------------------------------------------------- apply-transformer-in-context [166]100.0% [169] 402(1.3%) 0(0.0%) datum->syntax6 (unknown source) loop [173] 100.0% ------------------------------------------------------------------------- apply-transformer-in-context [166]100.0% [170] 240(0.7%) 240(0.7%) parse-lambda ...llects/racket/private/kw.rkt:619:2 ------------------------------------------------------------------------- apply-transformer-in-context [166]100.0% [171] 200(0.6%) 200(0.6%) parse-app ...collects/racket/private/kw.rkt:1142:2 ------------------------------------------------------------------------- un-dep/maybe-chaperone [167] 100.0% [172] 200(0.6%) 0(0.0%) ??? ...llects/racket/contract/private/orc.rkt:88:2 ??? [174] 100.0% ------------------------------------------------------------------------- append-at-pnts [99] 0.1% .../more-scheme.rkt:261:28 [27] 0.5% datum->syntax6 [169] 1.0% gf [177] 1.2% lambda-clause-expander [158] 2.6% ??? [109] 2.8% temp91_0 [139] 3.1% errors [105] 3.6% for-loop [196] 3.8% apply-transformer52 [164] 7.5% for-loop [47] 9.3% syntax-e/no-taint [15] 29.0% loop [173] 35.5% [173] 7708(24.0%) 1974(6.1%) loop (unknown source) loop [173] 35.5% gf [177] 27.7% ??? [176] 7.7% core-form-sym [178] 5.3% expand-id-application-form17 [200] 3.8% expand-capturing-lifts [153] 3.6% syntax-e [6] 2.2% temp85_0 [114] 0.5% ??? [175] 0.3% ------------------------------------------------------------------------- ??? [172] 100.0% [174] 200(0.6%) 0(0.0%) ??? ...cts/racket/contract/private/guts.rkt:835:10 ??? [179] 100.0% ------------------------------------------------------------------------- loop [173] 1.5% .../more-scheme.rkt:261:28 [27] 1.8% loop [13] 6.3% real->precision [121] 7.0% ??? [116] 10.2% loop [107] 19.2% location-do [180] 27.0% for-loop [86] 27.0% [175] 10896(33.9%) 568(1.8%) ??? ...tract/private/arrow-higher-order.rkt:375:33 location-do [180] 27.0% approximate9 [2] 26.0% hash-ref! [106] 16.5% ival-mult [182] 15.8% bf [185] 5.2% ival-div [188] 3.5% f40 [117] 0.9% ------------------------------------------------------------------------- loop [140] 31.5% loop [173] 68.5% [176] 3202(10.0%) 1350(4.2%) ??? ...ie/refactor-and-minor/src/points.rkt:181:26 ??? [181] 48.3% ??? [189] 9.5% ------------------------------------------------------------------------- apply-post-expansion [168] 6.5% loop [173] 93.5% [177] 2812(8.8%) 200(0.6%) gf (unknown source) propagation-apply [183] 50.1% propagation-apply-shifted [186] 15.6% propagation-merge [187] 13.6% cache-or-reuse-set [190] 7.1% loop [173] 6.5% ------------------------------------------------------------------------- loop [173] 100.0% [178] 408(1.3%) 0(0.0%) core-form-sym (unknown source) resolve+shift28 [184] 100.0% ------------------------------------------------------------------------- ??? [174] 100.0% [179] 200(0.6%) 200(0.6%) ??? ...ntract/private/arrow-higher-order.rkt:575:2 ------------------------------------------------------------------------- ??? [175] 40.3% location-do [180] 59.7% [180] 7672(23.9%) 0(0.0%) location-do ...tor-and-minor/src/programs.rkt:87:0 location-do [180] 59.7% ??? [175] 40.3% ------------------------------------------------------------------------- for-loop [128] 3.9% ??? [176] 39.7% .../more-scheme.rkt:261:28 [27] 56.4% [181] 3900(12.1%) 2498(7.8%) ??? ...ctor-and-minor/src/syntax/syntax.rkt:214:17 return/no-unsupplied [192] 27.4% list-member? [194] 4.7% ??? [195] 3.8% ------------------------------------------------------------------------- ??? [175] 100.0% [182] 1718(5.4%) 186(0.6%) ival-mult ...r-and-minor/src/biginterval.rkt:129:0 bfmul [191] 89.2% ------------------------------------------------------------------------- gf [177] 100.0% [183] 1408(4.4%) 1408(4.4%) propagation-apply (unknown source) ------------------------------------------------------------------------- core-form-sym [178] 39.5% expand-identifier [9] 60.5% [184] 1034(3.2%) 208(0.6%) resolve+shift28 (unknown source) fallback-loop [193] 79.9% ------------------------------------------------------------------------- ??? [175] 100.0% [185] 562(1.8%) 0(0.0%) bf ...ath-lib/math/private/bigfloat/mpfr.rkt:615:2 new-mpfr [197] 100.0% ------------------------------------------------------------------------- gf [177] 100.0% [186] 438(1.4%) 438(1.4%) propagation-apply-shifted (unknown source) ------------------------------------------------------------------------- gf [177] 100.0% [187] 382(1.2%) 382(1.2%) propagation-merge (unknown source) ------------------------------------------------------------------------- ??? [175] 100.0% [188] 376(1.2%) 376(1.2%) ival-div ...or-and-minor/src/biginterval.rkt:149:0 ------------------------------------------------------------------------- ??? [176] 100.0% [189] 304(0.9%) 304(0.9%) ??? ...cket-7.5/collects/racket/function.rkt:93:12 ------------------------------------------------------------------------- gf [177] 100.0% [190] 200(0.6%) 200(0.6%) cache-or-reuse-set (unknown source) ------------------------------------------------------------------------- ival-add [135] 18.9% ival-mult [182] 81.1% [191] 1890(5.9%) 194(0.6%) bfmul ...-lib/math/private/bigfloat/mpfr.rkt:835:4 ??? [198] 50.1% new-mpfr [197] 39.7% ------------------------------------------------------------------------- ??? [181] 100.0% [192] 1068(3.3%) 224(0.7%) return/no-unsupplied ...ct/private/arr-i.rkt:566:0 filter [199] 79.0% ------------------------------------------------------------------------- resolve+shift28 [184] 100.0% [193] 826(2.6%) 200(0.6%) fallback-loop (unknown source) for-loop [196] 75.8% ------------------------------------------------------------------------- ??? [181] 100.0% [194] 184(0.6%) 184(0.6%) list-member? ...llects/racket/private/set.rkt:24:0 ------------------------------------------------------------------------- ??? [181] 100.0% [195] 150(0.5%) 150(0.5%) ??? ...ects/racket/contract/private/guts.rkt:770:8 ------------------------------------------------------------------------- fallback-loop [193] 0.6% loop! [160] 5.4% compile-forms33 [154] 7.2% for-loop [196] 17.0% finish-bodys [163] 69.8% [196] 8306(25.9%) 1032(3.2%) for-loop (unknown source) finish-bodys [163] 53.5% for-loop [196] 17.0% dispatch-transformer41 [159] 8.6% compile-module-linklet57 [202] 7.2% add-lambda-properties [205] 2.7% compile5 [206] 2.7% syntax-e [6] 1.9% expand-implicit [204] 1.4% expand-body7 [203] 0.9% add-local-binding!39 [201] 0.9% expand-identifier [9] 0.8% expand-id-application-form17 [200] 0.8% loop [173] 0.3% ------------------------------------------------------------------------- bf [185] 29.8% bfneg [141] 30.5% bfmul [191] 39.7% [197] 1888(5.9%) 1888(5.9%) new-mpfr ...b/math/private/bigfloat/mpfr.rkt:348:0 ------------------------------------------------------------------------- bfmul [191] 100.0% [198] 946(2.9%) 946(2.9%) ??? /opt/racket-7.5/collects/ffi/unsafe.rkt:938:4 ------------------------------------------------------------------------- return/no-unsupplied [192] 100.0% [199] 844(2.6%) 844(2.6%) filter ...5/collects/racket/private/list.rkt:256:2 ------------------------------------------------------------------------- for-loop [196] 23.4% loop [173] 76.6% [200] 854(2.7%) 200(0.6%) expand-id-application-form17 (unknown source) syntax-e/no-taint [15] 76.6% ------------------------------------------------------------------------- for-loop [196] 100.0% [201] 630(2.0%) 630(2.0%) add-local-binding!39 (unknown source) ------------------------------------------------------------------------- for-loop [196] 100.0% [202] 600(1.9%) 600(1.9%) compile-module-linklet57 (unknown source) ------------------------------------------------------------------------- for-loop [196] 100.0% [203] 408(1.3%) 408(1.3%) expand-body7 (unknown source) ------------------------------------------------------------------------- for-loop [196] 100.0% [204] 350(1.1%) 150(0.5%) expand-implicit (unknown source) binding-lookup52 [208] 57.1% ------------------------------------------------------------------------- for-loop [196] 100.0% [205] 224(0.7%) 224(0.7%) add-lambda-properties (unknown source) ------------------------------------------------------------------------- compile-let13 [207] 50.0% for-loop [196] 50.0% [206] 222(0.7%) 0(0.0%) compile5 (unknown source) compile-let13 [207] 100.0% ------------------------------------------------------------------------- compile-let13 [207] 33.3% compile5 [206] 66.7% [207] 222(0.7%) 222(0.7%) compile-let13 (unknown source) compile5 [206] 33.3% compile-let13 [207] 33.3% ------------------------------------------------------------------------- expand-implicit [204] 100.0% [208] 200(0.6%) 0(0.0%) binding-lookup52 (unknown source) binding->module-instance [209] 100.0% ------------------------------------------------------------------------- binding-lookup52 [208] 100.0% [209] 200(0.6%) 200(0.6%) binding->module-instance (unknown source) -------------------------------------------------------------------------