Profiling results ----------------- Total cpu time observed: 41680ms (out of 41724ms) Number of samples taken: 204 (once every 204ms) (Hiding functions with self<1.0% and local<2.0%: 5 of 204 hidden) ========================================================================================= Caller Idx Total Self Name+src Local% ms(pct) ms(pct) Callee ========================================================================================= [1] 41680(100.0%) 0(0.0%) ??? ...lects/racket/private/more-scheme.rkt:261:28 profile-thunk16 [12] 100.0% ----------------------------------------------------------------------------------------- ??? [91] 100.0% [2] 12016(28.8%) 0(0.0%) approximate9 ...g-cleanup/src/core/taylor.rkt:12:0 loop [13] 86.5% for-loop [19] 8.4% taylor [23] 5.1% ----------------------------------------------------------------------------------------- hash-ref! [99] 100.0% [3] 8130(19.5%) 0(0.0%) ??? ...rbie/egg-cleanup/src/core/taylor.rkt:301:23 for-loop [14] 100.0% ----------------------------------------------------------------------------------------- hash-ref! [99] 100.0% [4] 7140(17.1%) 0(0.0%) ??? ...erbie/egg-cleanup/src/core/taylor.rkt:68:15 ??? [91] 100.0% ----------------------------------------------------------------------------------------- hash-ref! [99] 100.0% [5] 5098(12.2%) 0(0.0%) ??? ...rbie/egg-cleanup/src/core/taylor.rkt:407:23 for-loop [16] 83.8% for-loop [25] 16.2% ----------------------------------------------------------------------------------------- hash-ref! [99] 100.0% [6] 4286(10.3%) 0(0.0%) ??? ...rbie/egg-cleanup/src/core/taylor.rkt:291:26 for-loop [15] 100.0% ----------------------------------------------------------------------------------------- hash-ref! [99] 100.0% [7] 2648(6.4%) 0(0.0%) ??? ...rbie/egg-cleanup/src/core/taylor.rkt:510:23 for-loop [17] 100.0% ----------------------------------------------------------------------------------------- matcher [84] 100.0% [8] 2230(5.4%) 0(0.0%) ??? ...bie/egg-cleanup/src/core/matcher.rkt:130:11 for-loop [18] 98.2% foldl [21] 1.8% ----------------------------------------------------------------------------------------- for-loop [170] 100.0% [9] 400(1.0%) 0(0.0%) expand-identifier (unknown source) resolve+shift28 [20] 100.0% ----------------------------------------------------------------------------------------- taylor [23] 100.0% [10] 202(0.5%) 0(0.0%) taylor-log ...gg-cleanup/src/core/taylor.rkt:503:0 f62 [24] 100.0% ----------------------------------------------------------------------------------------- taylor [23] 100.0% [11] 200(0.5%) 0(0.0%) taylor-invert ...cleanup/src/core/taylor.rkt:318:0 parse-loop75 [36] 100.0% ----------------------------------------------------------------------------------------- ??? [1] 100.0% [12] 41680(100.0%) 0(0.0%) profile-thunk16 ...e/pkgs/profile-lib/main.rkt:9:0 run [22] 100.0% ----------------------------------------------------------------------------------------- approximate9 [2] 100.0% [13] 10396(24.9%) 0(0.0%) loop ...erbie/egg-cleanup/src/core/taylor.rkt:87:4 hash-ref! [99] 68.7% ??? [91] 31.3% ----------------------------------------------------------------------------------------- ??? [3] 100.0% [14] 8130(19.5%) 0(0.0%) for-loop ...egg-cleanup/src/core/taylor.rkt:304:27 hash-ref! [99] 97.5% f41 [111] 2.5% ----------------------------------------------------------------------------------------- ??? [6] 100.0% [15] 4286(10.3%) 0(0.0%) for-loop ...egg-cleanup/src/core/taylor.rkt:291:52 hash-ref! [99] 61.5% ??? [27] 33.6% f62 [24] 4.8% ----------------------------------------------------------------------------------------- ??? [5] 100.0% [16] 4274(10.3%) 0(0.0%) for-loop ...egg-cleanup/src/core/taylor.rkt:411:33 hash-ref! [99] 52.7% for-loop [25] 47.3% ----------------------------------------------------------------------------------------- ??? [7] 100.0% [17] 2648(6.4%) 0(0.0%) for-loop ...egg-cleanup/src/core/taylor.rkt:514:35 parse-loop402 [26] 100.0% ----------------------------------------------------------------------------------------- ??? [8] 100.0% [18] 2230(5.4%) 0(0.0%) for-loop ...gg-cleanup/src/core/matcher.rkt:132:15 matcher [84] 100.0% ----------------------------------------------------------------------------------------- approximate9 [2] 100.0% [19] 1004(2.4%) 0(0.0%) for-loop .../egg-cleanup/src/core/taylor.rkt:30:18 taylor [23] 100.0% ----------------------------------------------------------------------------------------- expand-id-application-form17 [193] 33.6% expand-identifier [9] 66.4% [20] 602(1.4%) 0(0.0%) resolve+shift28 (unknown source) fallback-loop [28] 100.0% ----------------------------------------------------------------------------------------- ??? [8] 100.0% [21] 200(0.5%) 0(0.0%) foldl ....5/collects/racket/private/list.rkt:229:4 ??? [29] 100.0% ----------------------------------------------------------------------------------------- profile-thunk16 [12] 100.0% [22] 41680(100.0%) 0(0.0%) run ...et-7.5/share/pkgs/profile-lib/main.rkt:39:2 .../more-scheme.rkt:261:28 [30] 100.0% ----------------------------------------------------------------------------------------- map [119] 2.9% approximate9 [2] 9.0% for-loop [19] 11.9% hash-ref! [99] 23.6% taylor [23] 52.6% [23] 3466(8.3%) 202(0.5%) taylor ...ie/egg-cleanup/src/core/taylor.rkt:170:0 taylor [23] 52.6% loop [32] 34.1% taylor-quotient [34] 6.8% map [119] 2.9% taylor-invert [11] 1.4% taylor-log [10] 0.6% ----------------------------------------------------------------------------------------- taylor-log [10] 6.2% for-loop [15] 6.3% hash-ref! [99] 6.8% parse-loop75 [36] 30.9% map [119] 49.7% [24] 3248(7.8%) 0(0.0%) f62 (unknown source) eval-const-expr [42] 68.7% composed [33] 18.8% map [119] 12.4% ----------------------------------------------------------------------------------------- ??? [5] 29.0% for-loop [16] 71.0% [25] 2844(6.8%) 0(0.0%) for-loop ...egg-cleanup/src/core/taylor.rkt:413:39 hash-ref! [99] 100.0% ----------------------------------------------------------------------------------------- for-loop [17] 100.0% [26] 2648(6.4%) 0(0.0%) parse-loop402 (unknown source) for-loop [31] 100.0% ----------------------------------------------------------------------------------------- for-loop [15] 100.0% [27] 1442(3.5%) 0(0.0%) ??? ...rbie/egg-cleanup/src/core/taylor.rkt:294:19 hash-ref! [99] 100.0% ----------------------------------------------------------------------------------------- resolve+shift28 [20] 100.0% [28] 602(1.4%) 400(1.0%) fallback-loop (unknown source) for-loop [170] 33.6% ----------------------------------------------------------------------------------------- foldl [21] 100.0% [29] 200(0.5%) 0(0.0%) ??? ...erbie/egg-cleanup/src/core/matcher.rkt:26:7 core457 [155] 100.0% ----------------------------------------------------------------------------------------- for-loop [120] 5.6% run [22] 94.4% [30] 41680(100.0%) 0(0.0%) .../more-scheme.rkt:261:28 (unknown source) run-improve47 [35] 49.3% prepare-points-intervals [73] 39.1% ??? [88] 5.6% oracle-error [38] 2.4% get-final-combination [37] 2.0% errors [110] 0.5% eval-errors [39] 0.5% for-loop [40] 0.5% ----------------------------------------------------------------------------------------- parse-loop402 [26] 100.0% [31] 2648(6.4%) 0(0.0%) for-loop ...egg-cleanup/src/core/taylor.rkt:517:59 hash-ref! [99] 100.0% ----------------------------------------------------------------------------------------- taylor [23] 100.0% [32] 2438(5.8%) 0(0.0%) loop ...rbie/egg-cleanup/src/core/taylor.rkt:268:2 hash-ref! [99] 100.0% ----------------------------------------------------------------------------------------- f62 [24] 100.0% [33] 612(1.5%) 0(0.0%) composed ...ollects/racket/private/list.rkt:321:16 free-variables [144] 100.0% ----------------------------------------------------------------------------------------- taylor [23] 100.0% [34] 424(1.0%) 0(0.0%) taylor-quotient ...eanup/src/core/taylor.rkt:334:0 parse-loop75 [36] 52.8% f41 [111] 47.2% ----------------------------------------------------------------------------------------- .../more-scheme.rkt:261:28 [30] 100.0% [35] 22282(53.5%) 0(0.0%) run-improve47 ...gg-cleanup/src/mainloop.rkt:346:0 for-loop [41] 96.9% prepare-points-intervals [73] 2.1% simplify! [56] 1.0% ----------------------------------------------------------------------------------------- loop [190] 1.8% taylor-invert [11] 2.7% taylor-quotient [34] 3.1% parse-loop75 [36] 8.5% map [119] 22.7% hash-ref! [99] 61.2% [36] 7320(17.6%) 206(0.5%) parse-loop75 (unknown source) eval-const-expr [42] 78.2% f62 [24] 8.7% parse-loop75 [36] 8.5% loop [190] 1.8% ----------------------------------------------------------------------------------------- .../more-scheme.rkt:261:28 [30] 100.0% [37] 1246(3.0%) 0(0.0%) get-final-combination ...up/src/mainloop.rkt:371:0 infer-splitpoints [44] 64.5% f34 [45] 35.5% ----------------------------------------------------------------------------------------- .../more-scheme.rkt:261:28 [30] 100.0% [38] 1008(2.4%) 0(0.0%) oracle-error ...e/egg-cleanup/src/points.rkt:188:0 for-loop [43] 100.0% ----------------------------------------------------------------------------------------- .../more-scheme.rkt:261:28 [30] 100.0% [39] 206(0.5%) 0(0.0%) eval-errors ...ie/egg-cleanup/src/points.rkt:179:0 for-loop [46] 100.0% ----------------------------------------------------------------------------------------- .../more-scheme.rkt:261:28 [30] 100.0% [40] 192(0.5%) 0(0.0%) for-loop ...erbie/egg-cleanup/src/sandbox.rkt:68:8 errors-score [47] 100.0% ----------------------------------------------------------------------------------------- run-improve47 [35] 100.0% [41] 21594(51.8%) 0(0.0%) for-loop ...bie/egg-cleanup/src/mainloop.rkt:365:4 run-iter! [48] 100.0% ----------------------------------------------------------------------------------------- f62 [24] 25.5% parse-loop75 [36] 74.5% [42] 8746(21.0%) 400(1.0%) eval-const-expr ...-cleanup/src/programs.rkt:118:0 temp85_0 [126] 86.3% eval [51] 4.6% compile [52] 2.3% loop [190] 2.3% ----------------------------------------------------------------------------------------- oracle-error [38] 100.0% [43] 1008(2.4%) 0(0.0%) for-loop ...erbie/egg-cleanup/src/points.rkt:189:2 map [119] 60.3% loop [190] 39.7% ----------------------------------------------------------------------------------------- get-final-combination [37] 100.0% [44] 804(1.9%) 0(0.0%) infer-splitpoints ...nup/src/core/regimes.rkt:34:0 for-loop [49] 100.0% ----------------------------------------------------------------------------------------- get-final-combination [37] 100.0% [45] 442(1.1%) 0(0.0%) f34 (unknown source) sindices->spoints [50] 100.0% ----------------------------------------------------------------------------------------- eval-errors [39] 100.0% [46] 206(0.5%) 206(0.5%) for-loop ...erbie/egg-cleanup/src/points.rkt:181:2 ----------------------------------------------------------------------------------------- for-loop [40] 100.0% [47] 192(0.5%) 0(0.0%) errors-score ...e/egg-cleanup/src/points.rkt:196:0 loop [190] 100.0% ----------------------------------------------------------------------------------------- for-loop [41] 100.0% [48] 21594(51.8%) 0(0.0%) run-iter! ...ie/egg-cleanup/src/mainloop.rkt:327:0 gen-series! [53] 55.6% finalize-iter! [54] 29.2% gen-rewrites! [55] 10.3% simplify! [56] 2.9% choose-best-alt! [59] 0.9% ----------------------------------------------------------------------------------------- infer-splitpoints [44] 100.0% [49] 804(1.9%) 0(0.0%) for-loop .../egg-cleanup/src/core/regimes.rkt:47:6 option-on-expr [57] 100.0% ----------------------------------------------------------------------------------------- f34 [45] 100.0% [50] 442(1.1%) 0(0.0%) sindices->spoints ...up/src/core/regimes.rkt:194:0 for-loop [58] 100.0% ----------------------------------------------------------------------------------------- eval-const-expr [42] 100.0% [51] 398(1.0%) 198(0.5%) eval (unknown source) datum->syntax6 [184] 50.3% ----------------------------------------------------------------------------------------- eval-const-expr [42] 100.0% [52] 200(0.5%) 0(0.0%) compile ...rbie/egg-cleanup/src/programs.rkt:169:0 hash-ref! [99] 100.0% ----------------------------------------------------------------------------------------- run-iter! [48] 100.0% [53] 12016(28.8%) 0(0.0%) gen-series! .../egg-cleanup/src/mainloop.rkt:160:0 for-loop [60] 100.0% ----------------------------------------------------------------------------------------- run-iter! [48] 100.0% [54] 6314(15.1%) 0(0.0%) finalize-iter! ...g-cleanup/src/mainloop.rkt:278:0 ??? [89] 100.0% ----------------------------------------------------------------------------------------- run-iter! [48] 100.0% [55] 2230(5.4%) 0(0.0%) gen-rewrites! ...gg-cleanup/src/mainloop.rkt:183:0 for-loop [61] 100.0% ----------------------------------------------------------------------------------------- run-improve47 [35] 26.1% run-iter! [48] 73.9% [56] 858(2.1%) 0(0.0%) simplify! ...ie/egg-cleanup/src/mainloop.rkt:224:0 ??? [63] 76.5% for-loop [65] 23.5% ----------------------------------------------------------------------------------------- for-loop [49] 100.0% [57] 804(1.9%) 0(0.0%) option-on-expr ...eanup/src/core/regimes.rkt:126:0 for-loop [62] 100.0% ----------------------------------------------------------------------------------------- sindices->spoints [50] 100.0% [58] 442(1.1%) 0(0.0%) for-loop ...egg-cleanup/src/core/regimes.rkt:233:9 binary-search-floats [64] 100.0% ----------------------------------------------------------------------------------------- run-iter! [48] 100.0% [59] 200(0.5%) 0(0.0%) choose-best-alt! ...cleanup/src/mainloop.rkt:117:0 ...ow-val-first.rkt:486:18 [66] 100.0% ----------------------------------------------------------------------------------------- gen-series! [53] 100.0% [60] 12016(28.8%) 0(0.0%) for-loop ...bie/egg-cleanup/src/mainloop.rkt:167:7 taylor-alt [67] 100.0% ----------------------------------------------------------------------------------------- gen-rewrites! [55] 100.0% [61] 2230(5.4%) 0(0.0%) for-loop ...ie/egg-cleanup/src/mainloop.rkt:191:11 rewrite-expression-head20 [68] 100.0% ----------------------------------------------------------------------------------------- option-on-expr [57] 100.0% [62] 804(1.9%) 0(0.0%) for-loop ...egg-cleanup/src/core/regimes.rkt:136:4 errors [110] 100.0% ----------------------------------------------------------------------------------------- simplify! [56] 100.0% [63] 656(1.6%) 0(0.0%) ??? ...rbie/egg-cleanup/src/core/simplify.rkt:35:0 egraph-run [70] 65.9% unpack367 [71] 34.1% ----------------------------------------------------------------------------------------- for-loop [58] 100.0% [64] 442(1.1%) 0(0.0%) binary-search-floats ...src/core/regimes.rkt:175:0 pred [69] 100.0% ----------------------------------------------------------------------------------------- for-loop [65] 50.0% simplify! [56] 50.0% [65] 202(0.5%) 202(0.5%) for-loop ...bie/egg-cleanup/src/mainloop.rkt:251:6 for-loop [65] 50.0% ----------------------------------------------------------------------------------------- choose-best-alt! [59] 100.0% [66] 200(0.5%) 0(0.0%) ...ow-val-first.rkt:486:18 (unknown source) ??? [72] 100.0% ----------------------------------------------------------------------------------------- for-loop [60] 100.0% [67] 12016(28.8%) 0(0.0%) taylor-alt ...e/egg-cleanup/src/mainloop.rkt:146:0 for-loop [74] 100.0% ----------------------------------------------------------------------------------------- for-loop [61] 100.0% [68] 2230(5.4%) 0(0.0%) rewrite-expression-head20 ...core/matcher.rkt:87:0 rewriter [75] 100.0% ----------------------------------------------------------------------------------------- binary-search-floats [64] 100.0% [69] 442(1.1%) 0(0.0%) pred ...bie/egg-cleanup/src/core/regimes.rkt:204:4 prepare-points-intervals [73] 100.0% ----------------------------------------------------------------------------------------- ??? [63] 100.0% [70] 432(1.0%) 0(0.0%) egraph-run ...gg-cleanup/src/core/eggmath.rkt:51:0 egraph-add-exprs [76] 100.0% ----------------------------------------------------------------------------------------- ??? [63] 100.0% [71] 224(0.5%) 224(0.5%) unpack367 ...7.5/collects/racket/format.rkt:147:16 ----------------------------------------------------------------------------------------- ...ow-val-first.rkt:486:18 [66] 100.0% [72] 200(0.5%) 0(0.0%) ??? ...bie/egg-cleanup/src/core/alt-table.rkt:58:0 argmin [77] 100.0% ----------------------------------------------------------------------------------------- pred [69] 2.6% run-improve47 [35] 2.7% .../more-scheme.rkt:261:28 [30] 94.7% [73] 17216(41.3%) 0(0.0%) prepare-points-intervals ...p/src/points.rkt:110:0 loop [78] 100.0% ----------------------------------------------------------------------------------------- taylor-alt [67] 100.0% [74] 12016(28.8%) 0(0.0%) for-loop ...bie/egg-cleanup/src/mainloop.rkt:152:6 ??? [91] 100.0% ----------------------------------------------------------------------------------------- rewrite-expression-head20 [68] 29.0% matcher [84] 71.0% [75] 2230(5.4%) 622(1.5%) rewriter .../egg-cleanup/src/core/matcher.rkt:90:2 for-loop [79] 80.9% *rules* [81] 9.1% ----------------------------------------------------------------------------------------- egraph-run [70] 100.0% [76] 432(1.0%) 0(0.0%) egraph-add-exprs ...nup/src/core/eggmath.rkt:113:0 ??? [80] 100.0% ----------------------------------------------------------------------------------------- ??? [72] 100.0% [77] 200(0.5%) 0(0.0%) argmin ...acket-7.5/collects/racket/list.rkt:765:0 ??? [82] 100.0% ----------------------------------------------------------------------------------------- prepare-points-intervals [73] 100.0% [78] 17216(41.3%) 400(1.0%) loop ...es/herbie/egg-cleanup/src/points.rkt:123:4 loop [83] 87.1% ??? [85] 10.6% ----------------------------------------------------------------------------------------- rewriter [75] 100.0% [79] 2230(5.4%) 0(0.0%) for-loop .../egg-cleanup/src/core/matcher.rkt:92:4 matcher [84] 93.7% for-loop [86] 6.3% ----------------------------------------------------------------------------------------- egraph-add-exprs [76] 100.0% [80] 432(1.0%) 0(0.0%) ??? ...rbie/egg-cleanup/src/core/simplify.rkt:93:6 for-loop [87] 100.0% ----------------------------------------------------------------------------------------- rewriter [75] 100.0% [81] 406(1.0%) 0(0.0%) *rules* .../egg-cleanup/src/syntax/rules.rkt:666:0 for-loop [170] 100.0% ----------------------------------------------------------------------------------------- argmin [77] 100.0% [82] 200(0.5%) 0(0.0%) ??? .../herbie/egg-cleanup/src/mainloop.rkt:114:10 errors [110] 100.0% ----------------------------------------------------------------------------------------- loop [78] 100.0% [83] 14988(36.0%) 828(2.0%) loop ...ies/herbie/egg-cleanup/src/points.rkt:81:2 ??? [88] 90.5% ??? [89] 2.7% ??? [121] 1.3% ----------------------------------------------------------------------------------------- for-loop [18] 49.5% for-loop [79] 50.5% [84] 2230(5.4%) 0(0.0%) matcher .../egg-cleanup/src/core/matcher.rkt:118:2 ??? [8] 50.5% rewriter [75] 48.6% return/no-unsupplied [188] 0.9% ----------------------------------------------------------------------------------------- loop [78] 100.0% [85] 1828(4.4%) 406(1.0%) ??? ...ies/herbie/egg-cleanup/src/points.rkt:106:2 ??? [91] 66.8% ??? [94] 10.9% ----------------------------------------------------------------------------------------- for-loop [79] 100.0% [86] 802(1.9%) 0(0.0%) for-loop .../egg-cleanup/src/core/matcher.rkt:99:8 fix-up-variables [90] 100.0% ----------------------------------------------------------------------------------------- ??? [80] 100.0% [87] 432(1.0%) 432(1.0%) for-loop ...gg-cleanup/src/core/simplify.rkt:112:2 ----------------------------------------------------------------------------------------- loop [190] 1.1% ??? [137] 3.2% .../more-scheme.rkt:261:28 [30] 24.6% loop [83] 71.2% [88] 19042(45.7%) 6762(16.2%) ??? ...s/herbie/egg-cleanup/src/programs.rkt:115:2 ??? [91] 35.5% ??? [93] 21.3% ??? [94] 7.7% ----------------------------------------------------------------------------------------- loop [83] 5.6% variable? [152] 5.8% finalize-iter! [54] 88.6% [89] 7128(17.1%) 612(1.5%) ??? ...contract/private/arrow-val-first.rkt:486:18 for-loop [92] 85.7% atab-add-altns [95] 2.9% ??? [96] 2.8% ----------------------------------------------------------------------------------------- for-loop [86] 100.0% [90] 802(1.9%) 0(0.0%) fix-up-variables ...nup/src/core/matcher.rkt:111:2 pattern-match [143] 75.1% pattern-substitute [97] 24.9% ----------------------------------------------------------------------------------------- loop [13] 5.4% ??? [85] 6.1% ??? [4] 11.9% location-do [98] 21.4% for-loop [74] 21.4% ??? [88] 33.8% [91] 19990(48.0%) 200(0.5%) ??? ...tract/private/arrow-higher-order.rkt:375:33 ival-pow [100] 29.7% location-do [98] 21.4% approximate9 [2] 21.4% hash-ref! [99] 17.3% sample-multi-bounded [102] 6.1% mk-ival [106] 3.0% ----------------------------------------------------------------------------------------- ??? [89] 100.0% [92] 6106(14.6%) 216(0.5%) for-loop ...gg-cleanup/src/core/alt-table.rkt:55:2 atab-add-altn [101] 60.3% errors [110] 23.1% loop [103] 13.1% ----------------------------------------------------------------------------------------- ??? [88] 100.0% [93] 4060(9.7%) 3434(8.2%) ??? ...ie/egg-cleanup/src/syntax/syntax.rkt:214:17 return/no-unsupplied [188] 15.4% ----------------------------------------------------------------------------------------- ??? [85] 12.0% ??? [88] 88.0% [94] 1668(4.0%) 402(1.0%) ??? ...tract/private/arrow-higher-order.rkt:379:33 ival-sub [104] 38.4% ival-add [105] 37.5% ----------------------------------------------------------------------------------------- ??? [89] 100.0% [95] 208(0.5%) 0(0.0%) atab-add-altns ...anup/src/core/alt-table.rkt:49:0 atab-add-altn [101] 100.0% ----------------------------------------------------------------------------------------- ??? [89] 100.0% [96] 202(0.5%) 0(0.0%) ??? ...ects/racket/contract/private/guts.rkt:770:8 bigvalue? [107] 100.0% ----------------------------------------------------------------------------------------- fix-up-variables [90] 100.0% [97] 200(0.5%) 0(0.0%) pattern-substitute ...up/src/core/matcher.rkt:46:0 ??? [108] 100.0% ----------------------------------------------------------------------------------------- ??? [91] 46.0% location-do [98] 54.0% [98] 12016(28.8%) 0(0.0%) location-do ...e/egg-cleanup/src/programs.rkt:64:0 location-do [98] 54.0% ??? [91] 46.0% ----------------------------------------------------------------------------------------- compile [52] 0.6% ??? [27] 1.6% for-loop [16] 3.8% for-loop [31] 4.2% for-loop [25] 4.7% for-loop [15] 5.1% loop [32] 11.2% loop [13] 13.5% ??? [109] 15.8% for-loop [14] 17.1% ??? [91] 21.2% [99] 11612(27.9%) 0(0.0%) hash-ref! .../racket/private/more-scheme.rkt:376:2 ??? [3] 18.9% ??? [109] 15.8% f41 [111] 13.7% ??? [4] 13.5% parse-loop75 [36] 10.7% ??? [5] 8.5% ??? [6] 7.0% taylor [23] 5.4% ??? [7] 4.2% simplify-node [127] 0.3% f62 [24] 0.3% ----------------------------------------------------------------------------------------- ??? [91] 100.0% [100] 5944(14.3%) 4942(11.9%) ival-pow .../egg-cleanup/src/biginterval.rkt:229:0 bfexpt [112] 10.1% bfceiling [116] 6.7% ----------------------------------------------------------------------------------------- atab-add-altns [95] 5.3% for-loop [92] 94.7% [101] 3888(9.3%) 208(0.5%) atab-add-altn ...anup/src/core/alt-table.rkt:203:0 errors [110] 89.5% override-at-pnts [118] 5.1% ----------------------------------------------------------------------------------------- ??? [91] 100.0% [102] 1222(2.9%) 406(1.0%) sample-multi-bounded ...leanup/src/points.rkt:15:0 random-ranges [113] 66.8% ----------------------------------------------------------------------------------------- for-loop [92] 100.0% [103] 800(1.9%) 200(0.5%) loop ...e/egg-cleanup/src/core/alt-table.rkt:177:2 loop [115] 50.0% loop [117] 25.0% ----------------------------------------------------------------------------------------- ??? [94] 100.0% [104] 640(1.5%) 200(0.5%) ival-sub .../egg-cleanup/src/biginterval.rkt:107:0 bfexpt [112] 68.8% ----------------------------------------------------------------------------------------- ??? [94] 100.0% [105] 626(1.5%) 426(1.0%) ival-add .../egg-cleanup/src/biginterval.rkt:101:0 bfexpt [112] 31.9% ----------------------------------------------------------------------------------------- ??? [91] 100.0% [106] 608(1.5%) 0(0.0%) mk-ival ...ie/egg-cleanup/src/biginterval.rkt:65:0 bf [114] 100.0% ----------------------------------------------------------------------------------------- ??? [96] 100.0% [107] 202(0.5%) 202(0.5%) bigvalue? ...egg-cleanup/src/syntax/types.rkt:19:0 ----------------------------------------------------------------------------------------- pattern-substitute [97] 100.0% [108] 200(0.5%) 200(0.5%) ??? ...cket-7.5/collects/racket/function.rkt:93:12 ----------------------------------------------------------------------------------------- hash-ref! [99] 100.0% [109] 8550(20.5%) 0(0.0%) ??? ...erbie/egg-cleanup/src/core/taylor.rkt:45:15 hash-ref! [99] 100.0% ----------------------------------------------------------------------------------------- ??? [82] 3.2% .../more-scheme.rkt:261:28 [30] 6.9% for-loop [62] 12.7% for-loop [92] 22.3% atab-add-altn [101] 55.0% [110] 6330(15.2%) 0(0.0%) errors .../herbie/egg-cleanup/src/points.rkt:201:0 for-loop [120] 80.3% eval-prog [122] 19.7% ----------------------------------------------------------------------------------------- taylor-quotient [34] 1.3% for-loop [14] 1.9% parse-loop50 [129] 2.1% hash-ref! [99] 30.6% map [119] 64.1% [111] 5294(12.7%) 0(0.0%) f41 (unknown source) map [119] 100.0% ----------------------------------------------------------------------------------------- ival-add [105] 16.1% ival-sub [104] 35.4% ival-pow [100] 48.5% [112] 1242(3.0%) 0(0.0%) bfexpt ...lib/math/private/bigfloat/mpfr.rkt:835:4 ??? [121] 51.5% new-mpfr [123] 48.5% ----------------------------------------------------------------------------------------- sample-multi-bounded [102] 100.0% [113] 816(2.0%) 208(0.5%) random-ranges .../egg-cleanup/src/common.rkt:171:0 cons/c [124] 74.5% ----------------------------------------------------------------------------------------- mk-ival [106] 100.0% [114] 608(1.5%) 202(0.5%) bf ...ath-lib/math/private/bigfloat/mpfr.rkt:615:2 ??? [121] 33.9% new-mpfr [123] 32.9% ----------------------------------------------------------------------------------------- loop [103] 16.2% loop [115] 83.8% [115] 400(1.0%) 400(1.0%) loop ...racket-7.5/collects/racket/list.rkt:434:28 loop [115] 83.8% ----------------------------------------------------------------------------------------- ival-pow [100] 100.0% [116] 400(1.0%) 0(0.0%) bfceiling .../math/private/bigfloat/mpfr.rkt:730:4 ??? [121] 50.5% new-mpfr [123] 49.5% ----------------------------------------------------------------------------------------- loop [103] 100.0% [117] 200(0.5%) 200(0.5%) loop ...e/egg-cleanup/src/core/alt-table.rkt:101:2 ----------------------------------------------------------------------------------------- atab-add-altn [101] 100.0% [118] 200(0.5%) 0(0.0%) override-at-pnts ...p/src/core/alt-table.rkt:138:0 for-loop [125] 100.0% ----------------------------------------------------------------------------------------- taylor [23] 3.7% f62 [24] 6.2% for-loop [43] 9.3% f41 [111] 80.8% [119] 6506(15.6%) 0(0.0%) map ...t-7.5/collects/racket/private/map.rkt:35:13 f41 [111] 51.7% parse-loop75 [36] 17.5% ??? [137] 6.1% f62 [24] 4.5% ??? [128] 4.3% simplify-node [127] 3.8% taylor [23] 3.7% make-multiplication-node [130] 3.6% loop [133] 3.2% parse-loop50 [129] 1.7% ----------------------------------------------------------------------------------------- errors [110] 100.0% [120] 5084(12.2%) 408(1.0%) for-loop ...erbie/egg-cleanup/src/points.rkt:203:2 .../more-scheme.rkt:261:28 [30] 92.0% ----------------------------------------------------------------------------------------- loop [83] 16.0% bfceiling [116] 16.2% bf [114] 16.5% bfexpt [112] 51.3% [121] 1248(3.0%) 1248(3.0%) ??? /opt/racket-7.5/collects/ffi/unsafe.rkt:938:4 ----------------------------------------------------------------------------------------- errors [110] 100.0% [122] 1246(3.0%) 0(0.0%) eval-prog ...bie/egg-cleanup/src/programs.rkt:83:0 temp85_0 [126] 82.5% inductor [132] 17.5% ----------------------------------------------------------------------------------------- bfceiling [116] 19.8% bf [114] 20.0% bfexpt [112] 60.2% [123] 1000(2.4%) 1000(2.4%) new-mpfr ...b/math/private/bigfloat/mpfr.rkt:348:0 ----------------------------------------------------------------------------------------- random-ranges [113] 100.0% [124] 608(1.5%) 0(0.0%) cons/c .../racket/contract/private/guts.rkt:500:15 coerce-contract [131] 67.4% flat-contract? [173] 32.6% ----------------------------------------------------------------------------------------- override-at-pnts [118] 100.0% [125] 200(0.5%) 200(0.5%) for-loop ...-cleanup/src/core/alt-table.rkt:139:22 ----------------------------------------------------------------------------------------- eval-prog [122] 12.0% eval-const-expr [42] 88.0% [126] 8576(20.6%) 0(0.0%) temp85_0 (unknown source) compile15 [134] 100.0% ----------------------------------------------------------------------------------------- hash-ref! [99] 24.2% map [119] 75.8% [127] 826(2.0%) 0(0.0%) simplify-node ...-cleanup/src/core/reduce.rkt:46:0 gather-additive-terms6 [146] 26.9% constant? [150] 24.7% append-map [136] 24.2% gather-multiplicative-terms [141] 24.2% ----------------------------------------------------------------------------------------- map [119] 100.0% [128] 818(2.0%) 0(0.0%) ??? ...herbie/egg-cleanup/src/core/reduce.rkt:57:5 for-loop [135] 100.0% ----------------------------------------------------------------------------------------- map [119] 100.0% [129] 810(1.9%) 0(0.0%) parse-loop50 (unknown source) f41 [111] 100.0% ----------------------------------------------------------------------------------------- map [119] 100.0% [130] 606(1.5%) 0(0.0%) make-multiplication-node .../core/reduce.rkt:232:0 make-multiplication-subnode [138] 100.0% ----------------------------------------------------------------------------------------- cons/c [124] 100.0% [131] 410(1.0%) 0(0.0%) coerce-contract ...contract/private/guts.rkt:307:0 coerce-contract/f [139] 100.0% ----------------------------------------------------------------------------------------- eval-prog [122] 20.0% inductor [132] 80.0% [132] 218(0.5%) 0(0.0%) inductor ...bie/egg-cleanup/src/programs.rkt:104:4 inductor [132] 80.0% table-ref [140] 20.0% ----------------------------------------------------------------------------------------- map [119] 100.0% [133] 208(0.5%) 0(0.0%) loop ...-7.5/collects/racket/private/map.rkt:40:19 ??? [137] 100.0% ----------------------------------------------------------------------------------------- temp85_0 [126] 100.0% [134] 8576(20.6%) 0(0.0%) compile15 (unknown source) temp91_0 [142] 97.6% loop [190] 2.4% ----------------------------------------------------------------------------------------- ??? [128] 100.0% [135] 818(2.0%) 0(0.0%) for-loop ...e/egg-cleanup/src/core/reduce.rkt:58:7 pattern-match [143] 100.0% ----------------------------------------------------------------------------------------- simplify-node [127] 32.7% free-variables [144] 67.3% [136] 612(1.5%) 0(0.0%) append-map ...t-7.5/collects/racket/list.rkt:586:2 free-variables [144] 67.3% gather-additive-terms6 [146] 32.7% ----------------------------------------------------------------------------------------- loop [133] 34.2% map [119] 65.8% [137] 608(1.5%) 0(0.0%) ??? ...es/herbie/egg-cleanup/src/points.rkt:190:26 ??? [88] 100.0% ----------------------------------------------------------------------------------------- make-multiplication-node [130] 100.0% [138] 606(1.5%) 0(0.0%) make-multiplication-subnode ...re/reduce.rkt:242:0 for-loop [145] 100.0% ----------------------------------------------------------------------------------------- coerce-contract [131] 100.0% [139] 410(1.0%) 0(0.0%) coerce-contract/f ...ntract/private/guts.rkt:372:0 coerce-simple-value [147] 100.0% ----------------------------------------------------------------------------------------- inductor [132] 100.0% [140] 218(0.5%) 218(0.5%) table-ref ...erbie/egg-cleanup/src/common.rkt:33:0 ----------------------------------------------------------------------------------------- simplify-node [127] 100.0% [141] 200(0.5%) 200(0.5%) gather-multiplicative-terms ...re/reduce.rkt:110:0 ----------------------------------------------------------------------------------------- compile15 [134] 100.0% [142] 8370(20.1%) 0(0.0%) temp91_0 (unknown source) temp118_0 [148] 95.1% loop [190] 2.5% compile-top9 [153] 2.4% ----------------------------------------------------------------------------------------- fix-up-variables [90] 42.4% for-loop [135] 57.6% [143] 1420(3.4%) 0(0.0%) pattern-match ...cleanup/src/core/matcher.rkt:30:0 for-loop [149] 71.0% constant? [150] 29.0% ----------------------------------------------------------------------------------------- composed [33] 42.5% append-map [136] 57.5% [144] 612(1.5%) 0(0.0%) free-variables ...gg-cleanup/src/programs.rkt:57:0 append-map [136] 57.5% constant? [150] 32.7% variable? [152] 9.9% ----------------------------------------------------------------------------------------- make-multiplication-subnode [138] 100.0% [145] 606(1.5%) 0(0.0%) for-loop .../egg-cleanup/src/core/reduce.rkt:244:3 make-multiplication-subsubsubnode [151] 100.0% ----------------------------------------------------------------------------------------- append-map [136] 47.4% simplify-node [127] 52.6% [146] 422(1.0%) 422(1.0%) gather-additive-terms6 ...src/core/reduce.rkt:68:0 ----------------------------------------------------------------------------------------- coerce-contract/f [139] 100.0% [147] 410(1.0%) 410(1.0%) coerce-simple-value ...ract/private/guts.rkt:385:0 ----------------------------------------------------------------------------------------- temp91_0 [142] 100.0% [148] 7962(19.1%) 0(0.0%) temp118_0 (unknown source) expand-capturing-lifts [154] 100.0% ----------------------------------------------------------------------------------------- pattern-match [143] 100.0% [149] 1008(2.4%) 0(0.0%) for-loop .../egg-cleanup/src/core/matcher.rkt:27:9 core457 [155] 100.0% ----------------------------------------------------------------------------------------- free-variables [144] 24.5% simplify-node [127] 25.0% pattern-match [143] 50.5% [150] 816(2.0%) 0(0.0%) constant? ...g-cleanup/src/syntax/syntax.rkt:726:0 value? [156] 100.0% ----------------------------------------------------------------------------------------- for-loop [145] 100.0% [151] 606(1.5%) 200(0.5%) make-multiplication-subsubsubnode ...uce.rkt:264:0 mterm->expr [157] 67.0% ----------------------------------------------------------------------------------------- free-variables [144] 100.0% [152] 412(1.0%) 0(0.0%) variable? ...g-cleanup/src/syntax/syntax.rkt:729:0 ??? [89] 100.0% ----------------------------------------------------------------------------------------- temp91_0 [142] 100.0% [153] 200(0.5%) 0(0.0%) compile-top9 (unknown source) compile-forms33 [158] 100.0% ----------------------------------------------------------------------------------------- loop [190] 2.5% temp118_0 [148] 97.5% [154] 8162(19.6%) 200(0.5%) expand-capturing-lifts (unknown source) lambda-clause-expander [159] 92.6% dispatch-transformer41 [160] 4.9% ----------------------------------------------------------------------------------------- ??? [29] 16.6% for-loop [149] 83.4% [155] 1208(2.9%) 0(0.0%) core457 ...acket/contract/private/arr-i.rkt:976:19 ??? [161] 33.6% or/c [162] 33.3% un-dep/maybe-chaperone [165] 16.6% successfully-got-the-right-kind-of-function [164] 16.6% ----------------------------------------------------------------------------------------- constant? [150] 100.0% [156] 816(2.0%) 816(2.0%) value? ...ie/egg-cleanup/src/syntax/types.rkt:18:0 ----------------------------------------------------------------------------------------- make-multiplication-subsubsubnode [151] 100.0% [157] 406(1.0%) 0(0.0%) mterm->expr ...g-cleanup/src/core/reduce.rkt:272:0 type-of [163] 50.7% return/no-unsupplied [188] 49.3% ----------------------------------------------------------------------------------------- compile-top9 [153] 100.0% [158] 200(0.5%) 0(0.0%) compile-forms33 (unknown source) for-loop [170] 100.0% ----------------------------------------------------------------------------------------- expand-capturing-lifts [154] 100.0% [159] 7562(18.1%) 0(0.0%) lambda-clause-expander (unknown source) finish-bodys [166] 86.4% loop [190] 13.6% ----------------------------------------------------------------------------------------- for-loop [170] 14.5% expand-capturing-lifts [154] 28.1% loop [190] 57.4% [160] 1424(3.4%) 0(0.0%) dispatch-transformer41 (unknown source) apply-transformer52 [167] 100.0% ----------------------------------------------------------------------------------------- core457 [155] 100.0% [161] 406(1.0%) 0(0.0%) ??? ...s/racket/contract/private/arr-i.rkt:1288:27 build-nullary-very-simple--> [168] 100.0% ----------------------------------------------------------------------------------------- core457 [155] 100.0% [162] 402(1.0%) 202(0.5%) or/c ...lects/racket/contract/private/orc.rkt:16:2 flat-contract? [173] 49.8% ----------------------------------------------------------------------------------------- mterm->expr [157] 100.0% [163] 206(0.5%) 206(0.5%) type-of ...bie/egg-cleanup/src/type-check.rkt:34:0 ----------------------------------------------------------------------------------------- core457 [155] 100.0% [164] 200(0.5%) 200(0.5%) successfully-got-the-right-kind-of-function ...5:4 ----------------------------------------------------------------------------------------- core457 [155] 100.0% [165] 200(0.5%) 0(0.0%) un-dep/maybe-chaperone ...private/arr-i.rkt:1137:2 ??? [169] 100.0% ----------------------------------------------------------------------------------------- lambda-clause-expander [159] 39.3% for-loop [170] 60.7% [166] 6530(15.7%) 0(0.0%) finish-bodys (unknown source) for-loop [170] 100.0% ----------------------------------------------------------------------------------------- dispatch-transformer41 [160] 100.0% [167] 1424(3.4%) 0(0.0%) apply-transformer52 (unknown source) apply-transformer-in-context [172] 71.9% syntax-e [171] 14.0% apply-post-expansion [175] 14.0% ----------------------------------------------------------------------------------------- ??? [161] 100.0% [168] 406(1.0%) 200(0.5%) build-nullary-very-simple--> ...l-first.rkt:1131:0 flat-contract? [173] 50.7% ----------------------------------------------------------------------------------------- un-dep/maybe-chaperone [165] 100.0% [169] 200(0.5%) 0(0.0%) ??? ...llects/racket/contract/private/orc.rkt:88:2 ??? [174] 100.0% ----------------------------------------------------------------------------------------- fallback-loop [28] 0.6% compile-forms33 [158] 2.8% *rules* [81] 5.7% for-loop [170] 15.1% finish-bodys [166] 75.9% [170] 7136(17.1%) 2872(6.9%) for-loop (unknown source) finish-bodys [166] 47.1% for-loop [170] 15.1% loop [190] 7.7% syntax-e [171] 4.9% increment-binding-layer [179] 2.9% ormap [181] 2.9% compile-module-linklet57 [182] 2.8% expand-implicit [177] 1.6% expand-identifier [9] 0.7% dispatch-transformer41 [160] 0.4% dispatch-variable [180] 0.2% ----------------------------------------------------------------------------------------- apply-transformer52 [167] 10.9% loop [190] 11.8% for-loop [170] 77.4% [171] 1838(4.4%) 200(0.5%) syntax-e (unknown source) syntax-e/no-taint [176] 89.1% ----------------------------------------------------------------------------------------- apply-transformer52 [167] 100.0% [172] 1024(2.5%) 406(1.0%) apply-transformer-in-context (unknown source) datum->syntax6 [184] 39.3% ??? [178] 21.1% ----------------------------------------------------------------------------------------- cons/c [124] 32.8% or/c [162] 33.1% build-nullary-very-simple--> [168] 34.1% [173] 604(1.4%) 604(1.4%) flat-contract? .../contract/private/guts.rkt:129:0 ----------------------------------------------------------------------------------------- ??? [169] 100.0% [174] 200(0.5%) 0(0.0%) ??? ...cts/racket/contract/private/guts.rkt:835:10 ??? [183] 100.0% ----------------------------------------------------------------------------------------- apply-transformer52 [167] 100.0% [175] 200(0.5%) 0(0.0%) apply-post-expansion (unknown source) gf [192] 100.0% ----------------------------------------------------------------------------------------- gf [192] 8.2% expand-id-application-form17 [193] 24.9% syntax-e [171] 66.9% [176] 2448(5.9%) 0(0.0%) syntax-e/no-taint (unknown source) loop [190] 100.0% ----------------------------------------------------------------------------------------- for-loop [170] 100.0% [177] 400(1.0%) 200(0.5%) expand-implicit (unknown source) datum->syntax6 [184] 50.0% ----------------------------------------------------------------------------------------- apply-transformer-in-context [172] 100.0% [178] 216(0.5%) 0(0.0%) ??? ...collects/racket/private/qq-and-or.rkt:155:9 ??? [185] 100.0% ----------------------------------------------------------------------------------------- for-loop [170] 100.0% [179] 208(0.5%) 0(0.0%) increment-binding-layer (unknown source) loop [190] 100.0% ----------------------------------------------------------------------------------------- for-loop [170] 100.0% [180] 206(0.5%) 0(0.0%) dispatch-variable (unknown source) substitute-variable6 [186] 100.0% ----------------------------------------------------------------------------------------- for-loop [170] 100.0% [181] 206(0.5%) 0(0.0%) ormap ....5/collects/racket/private/map.rkt:141:13 flag-set? [187] 100.0% ----------------------------------------------------------------------------------------- for-loop [170] 100.0% [182] 200(0.5%) 200(0.5%) compile-module-linklet57 (unknown source) ----------------------------------------------------------------------------------------- ??? [174] 100.0% [183] 200(0.5%) 200(0.5%) ??? ...ntract/private/arrow-higher-order.rkt:575:2 ----------------------------------------------------------------------------------------- expand-implicit [177] 24.9% eval [51] 24.9% apply-transformer-in-context [172] 50.1% [184] 802(1.9%) 200(0.5%) datum->syntax6 (unknown source) loop [190] 75.1% ----------------------------------------------------------------------------------------- ??? [178] 100.0% [185] 216(0.5%) 0(0.0%) ??? ...ollects/racket/private/qq-and-or.rkt:164:21 syntax->list [189] 100.0% ----------------------------------------------------------------------------------------- dispatch-variable [180] 100.0% [186] 206(0.5%) 206(0.5%) substitute-variable6 (unknown source) ----------------------------------------------------------------------------------------- ormap [181] 100.0% [187] 206(0.5%) 0(0.0%) flag-set? ...erbie/egg-cleanup/src/config.rkt:28:0 return/no-unsupplied [188] 100.0% ----------------------------------------------------------------------------------------- matcher [84] 16.2% mterm->expr [157] 16.2% flag-set? [187] 16.7% ??? [93] 50.8% [188] 1232(3.0%) 1032(2.5%) return/no-unsupplied ...ct/private/arr-i.rkt:566:0 filter [191] 16.2% ----------------------------------------------------------------------------------------- ??? [185] 100.0% [189] 216(0.5%) 0(0.0%) syntax->list (unknown source) loop [190] 100.0% ----------------------------------------------------------------------------------------- errors-score [47] 0.0% syntax->list [189] 1.4% parse-loop75 [36] 1.7% eval-const-expr [42] 2.0% datum->syntax6 [184] 2.8% compile15 [134] 4.1% increment-binding-layer [179] 4.1% temp91_0 [142] 4.1% for-loop [43] 5.9% for-loop [170] 10.6% lambda-clause-expander [159] 12.0% loop [190] 14.6% syntax-e/no-taint [176] 36.7% [190] 5078(12.2%) 1830(4.4%) loop (unknown source) gf [192] 36.7% loop [190] 14.6% expand-id-application-form17 [193] 10.6% dispatch-transformer41 [160] 7.8% ??? [88] 2.0% expand-capturing-lifts [154] 2.0% parse-loop75 [36] 1.7% syntax-e [171] 1.4% ----------------------------------------------------------------------------------------- return/no-unsupplied [188] 100.0% [191] 200(0.5%) 200(0.5%) filter ...5/collects/racket/private/list.rkt:256:2 ----------------------------------------------------------------------------------------- apply-post-expansion [175] 4.1% loop [190] 95.9% [192] 2448(5.9%) 202(0.5%) gf (unknown source) propagation-apply [194] 42.6% propagation-apply-shifted [195] 16.4% cache-or-reuse-set [196] 16.4% propagation-merge [197] 8.2% syntax-e/no-taint [176] 4.1% cache-or-reuse-hash [198] 4.1% ----------------------------------------------------------------------------------------- loop [190] 100.0% [193] 1010(2.4%) 0(0.0%) expand-id-application-form17 (unknown source) syntax-e/no-taint [176] 60.4% resolve+shift28 [20] 20.0% binding-lookup52 [199] 19.6% ----------------------------------------------------------------------------------------- gf [192] 100.0% [194] 1042(2.5%) 1042(2.5%) propagation-apply (unknown source) ----------------------------------------------------------------------------------------- gf [192] 100.0% [195] 402(1.0%) 402(1.0%) propagation-apply-shifted (unknown source) ----------------------------------------------------------------------------------------- gf [192] 100.0% [196] 402(1.0%) 402(1.0%) cache-or-reuse-set (unknown source) ----------------------------------------------------------------------------------------- gf [192] 100.0% [197] 200(0.5%) 200(0.5%) propagation-merge (unknown source) ----------------------------------------------------------------------------------------- gf [192] 100.0% [198] 200(0.5%) 200(0.5%) cache-or-reuse-hash (unknown source) ----------------------------------------------------------------------------------------- expand-id-application-form17 [193] 100.0% [199] 198(0.5%) 198(0.5%) binding-lookup52 (unknown source) -----------------------------------------------------------------------------------------