Profiling results ----------------- Total cpu time observed: 24104ms (out of 24280ms) Number of samples taken: 132 (once every 183ms) (Hiding functions with self<1.0% and local<2.0%: 4 of 212 hidden) ========================================================================= Caller Idx Total Self Name+src Local% ms(pct) ms(pct) Callee ========================================================================= [1] 24104(100.0%) 0(0.0%) ??? ...lects/racket/private/more-scheme.rkt:261:28 profile-thunk16 [15] 100.0% ------------------------------------------------------------------------- ??? [146] 100.0% [2] 14760(61.2%) 0(0.0%) approximate9 ...ie/master/src/core/taylor.rkt:11:0 loop [16] 89.6% for-loop [22] 9.3% taylor [29] 1.1% ------------------------------------------------------------------------- hash-ref! [191] 100.0% [3] 10438(43.3%) 0(0.0%) ??? ...ies/herbie/master/src/core/taylor.rkt:67:15 ??? [146] 55.3% hash-ref! [191] 44.7% ------------------------------------------------------------------------- hash-ref! [191] 100.0% [4] 9234(38.3%) 0(0.0%) ??? ...es/herbie/master/src/core/taylor.rkt:300:23 for-loop [17] 100.0% ------------------------------------------------------------------------- hash-ref! [191] 100.0% [5] 8862(36.8%) 0(0.0%) ??? ...ies/herbie/master/src/core/taylor.rkt:44:15 hash-ref! [191] 91.6% ??? [31] 8.4% ------------------------------------------------------------------------- hash-ref! [191] 100.0% [6] 6172(25.6%) 0(0.0%) ??? ...es/herbie/master/src/core/taylor.rkt:290:26 for-loop [18] 100.0% ------------------------------------------------------------------------- hash-ref! [191] 100.0% [7] 3942(16.4%) 0(0.0%) ??? ...es/herbie/master/src/core/taylor.rkt:406:23 for-loop [20] 50.6% for-loop [21] 49.4% ------------------------------------------------------------------------- map [102] 32.5% taylor [29] 67.5% [8] 1186(4.9%) 0(0.0%) taylor-invert .../master/src/core/taylor.rkt:317:0 first-nonzero-exp [45] 82.1% parse-loop74 [19] 17.9% ------------------------------------------------------------------------- for-loop [205] 100.0% [9] 844(3.5%) 150(0.6%) expand-implicit (unknown source) resolve+shift28 [198] 82.2% ------------------------------------------------------------------------- parse-loop368 [34] 10.8% hash-ref! [191] 10.8% for-loop [75] 12.8% map [102] 65.6% [10] 750(3.1%) 0(0.0%) simplify-node ...e/master/src/core/reduce.rkt:46:0 gather-multiplicative-terms [120] 63.6% gather-additive-terms6 [25] 23.6% combine-mterms [27] 12.8% ------------------------------------------------------------------------- hash-ref! [191] 100.0% [11] 736(3.1%) 0(0.0%) ??? ...es/herbie/master/src/core/taylor.rkt:509:23 for-loop [23] 100.0% ------------------------------------------------------------------------- taylor [29] 100.0% [12] 400(1.7%) 0(0.0%) taylor-cbrt ...ie/master/src/core/taylor.rkt:377:0 parse-loop74 [19] 100.0% ------------------------------------------------------------------------- matcher [124] 100.0% [13] 390(1.6%) 0(0.0%) ??? ...s/herbie/master/src/core/matcher.rkt:127:11 for-loop [24] 82.4% for-loop [26] 17.6% ------------------------------------------------------------------------- taylor [29] 100.0% [14] 172(0.7%) 0(0.0%) taylor-log ...bie/master/src/core/taylor.rkt:502:0 f61 [30] 100.0% ------------------------------------------------------------------------- ??? [1] 100.0% [15] 24104(100.0%) 0(0.0%) profile-thunk16 ...e/pkgs/profile-lib/main.rkt:9:0 run [28] 100.0% ------------------------------------------------------------------------- approximate9 [2] 100.0% [16] 13226(54.9%) 0(0.0%) loop ...ies/herbie/master/src/core/taylor.rkt:86:4 hash-ref! [191] 78.9% ??? [146] 21.1% ------------------------------------------------------------------------- ??? [4] 100.0% [17] 9234(38.3%) 0(0.0%) for-loop ...rbie/master/src/core/taylor.rkt:303:27 hash-ref! [191] 95.2% f40 [44] 4.8% ------------------------------------------------------------------------- ??? [6] 100.0% [18] 6172(25.6%) 0(0.0%) for-loop ...rbie/master/src/core/taylor.rkt:290:52 hash-ref! [191] 61.6% ??? [31] 23.4% f61 [30] 9.4% f40 [44] 5.7% ------------------------------------------------------------------------- taylor-quotient [39] 3.5% taylor-invert [8] 3.9% taylor-cbrt [12] 7.4% map [102] 30.8% hash-ref! [191] 54.4% [19] 5418(22.5%) 202(0.8%) parse-loop74 (unknown source) eval-const-expr [36] 96.3% ------------------------------------------------------------------------- ??? [7] 100.0% [20] 1994(8.3%) 0(0.0%) for-loop ...rbie/master/src/core/taylor.rkt:410:33 hash-ref! [191] 100.0% ------------------------------------------------------------------------- ??? [7] 100.0% [21] 1948(8.1%) 0(0.0%) for-loop ...rbie/master/src/core/taylor.rkt:412:39 hash-ref! [191] 100.0% ------------------------------------------------------------------------- approximate9 [2] 100.0% [22] 1366(5.7%) 0(0.0%) for-loop ...erbie/master/src/core/taylor.rkt:29:18 taylor [29] 100.0% ------------------------------------------------------------------------- ??? [11] 100.0% [23] 736(3.1%) 0(0.0%) for-loop ...rbie/master/src/core/taylor.rkt:513:35 parse-loop402 [32] 100.0% ------------------------------------------------------------------------- ??? [13] 100.0% [24] 390(1.6%) 0(0.0%) for-loop ...bie/master/src/core/matcher.rkt:129:15 matcher [124] 100.0% ------------------------------------------------------------------------- append-map [56] 22.9% simplify-node [10] 77.1% [25] 354(1.5%) 0(0.0%) gather-additive-terms6 ...src/core/reduce.rkt:68:0 append-map [56] 77.1% parse-loop368 [34] 22.9% ------------------------------------------------------------------------- ??? [13] 100.0% [26] 206(0.9%) 0(0.0%) for-loop ...rbie/master/src/core/matcher.rkt:103:4 foldl [33] 100.0% ------------------------------------------------------------------------- simplify-node [10] 100.0% [27] 192(0.8%) 192(0.8%) combine-mterms ...master/src/core/reduce.rkt:193:0 ------------------------------------------------------------------------- profile-thunk16 [15] 100.0% [28] 24104(100.0%) 0(0.0%) run ...et-7.5/share/pkgs/profile-lib/main.rkt:39:2 .../more-scheme.rkt:261:28 [35] 100.0% ------------------------------------------------------------------------- approximate9 [2] 1.5% map [102] 12.9% for-loop [22] 18.8% hash-ref! [191] 24.3% taylor [29] 42.6% [29] 5718(23.7%) 0(0.0%) taylor .../herbie/master/src/core/taylor.rkt:169:0 taylor [29] 42.6% map [102] 15.3% loop [38] 12.5% debug-print [87] 9.3% taylor-quotient [39] 8.3% taylor-exp [41] 7.7% taylor-invert [8] 2.5% taylor-cbrt [12] 1.2% taylor-log [14] 0.3% ------------------------------------------------------------------------- taylor-log [14] 3.1% for-loop [18] 10.5% hash-ref! [191] 20.9% map [102] 65.5% [30] 5522(22.9%) 386(1.6%) f61 (unknown source) eval-const-expr [36] 68.1% composed [37] 24.9% ------------------------------------------------------------------------- ??? [5] 30.9% for-loop [18] 69.1% [31] 2396(9.9%) 0(0.0%) ??? ...es/herbie/master/src/core/taylor.rkt:293:19 hash-ref! [191] 100.0% ------------------------------------------------------------------------- for-loop [23] 100.0% [32] 736(3.1%) 0(0.0%) parse-loop402 (unknown source) for-loop [40] 100.0% ------------------------------------------------------------------------- for-loop [26] 100.0% [33] 206(0.9%) 0(0.0%) foldl ....5/collects/racket/private/list.rkt:229:4 ??? [42] 100.0% ------------------------------------------------------------------------- parse-loop389 [66] 50.0% gather-additive-terms6 [25] 50.0% [34] 162(0.7%) 0(0.0%) parse-loop368 (unknown source) parse-loop389 [66] 50.0% simplify-node [10] 50.0% ------------------------------------------------------------------------- for-loop [116] 4.0% run [28] 96.0% [35] 24104(100.0%) 670(2.8%) .../more-scheme.rkt:261:28 (unknown source) run-improve47 [43] 82.7% prepare-points-intervals [86] 6.2% get-final-combination [48] 3.5% ??? [47] 2.0% oracle-error [50] 1.9% errors [103] 1.0% eval-errors [53] 0.6% ??? [146] 0.3% ------------------------------------------------------------------------- f61 [30] 41.9% parse-loop74 [19] 58.1% [36] 8976(37.2%) 0(0.0%) eval-const-expr ...e/master/src/programs.rkt:120:0 temp85_0 [115] 77.1% loop [190] 8.7% eval [49] 6.4% eval-prog [122] 4.3% eval4 [51] 1.8% eval-one-top12 [52] 1.7% ------------------------------------------------------------------------- f61 [30] 100.0% [37] 1376(5.7%) 0(0.0%) composed ...ollects/racket/private/list.rkt:321:16 free-variables [46] 100.0% ------------------------------------------------------------------------- taylor [29] 100.0% [38] 1306(5.4%) 0(0.0%) loop ...es/herbie/master/src/core/taylor.rkt:267:2 hash-ref! [191] 100.0% ------------------------------------------------------------------------- taylor [29] 100.0% [39] 886(3.7%) 0(0.0%) taylor-quotient ...aster/src/core/taylor.rkt:333:0 first-nonzero-exp [45] 57.8% parse-loop74 [19] 21.7% f40 [44] 20.5% ------------------------------------------------------------------------- parse-loop402 [32] 100.0% [40] 736(3.1%) 0(0.0%) for-loop ...rbie/master/src/core/taylor.rkt:516:59 hash-ref! [191] 100.0% ------------------------------------------------------------------------- taylor [29] 100.0% [41] 592(2.5%) 0(0.0%) taylor-exp ...bie/master/src/core/taylor.rkt:400:0 f40 [44] 100.0% ------------------------------------------------------------------------- foldl [33] 100.0% [42] 206(0.9%) 0(0.0%) ??? ...ies/herbie/master/src/core/matcher.rkt:25:7 core457 [165] 100.0% ------------------------------------------------------------------------- .../more-scheme.rkt:261:28 [35] 100.0% [43] 20670(85.8%) 0(0.0%) run-improve47 ...bie/master/src/mainloop.rkt:346:0 for-loop [54] 99.0% simplify! [71] 1.0% ------------------------------------------------------------------------- for-loop [18] 0.8% taylor-quotient [39] 1.2% for-loop [17] 2.4% taylor-exp [41] 4.4% hash-ref! [191] 33.2% map [102] 58.1% [44] 7766(32.2%) 0(0.0%) f40 (unknown source) map [102] 100.0% ------------------------------------------------------------------------- taylor-quotient [39] 34.5% taylor-invert [8] 65.5% [45] 1486(6.2%) 0(0.0%) first-nonzero-exp ...ter/src/core/taylor.rkt:265:0 hash-ref! [191] 100.0% ------------------------------------------------------------------------- composed [37] 36.6% append-map [56] 63.4% [46] 1376(5.7%) 218(0.9%) free-variables ...bie/master/src/programs.rkt:56:0 append-map [56] 81.9% constant? [133] 9.6% ??? [77] 4.5% ------------------------------------------------------------------------- .../more-scheme.rkt:261:28 [35] 100.0% [47] 962(4.0%) 814(3.4%) ??? .../herbie/master/src/syntax/syntax.rkt:214:17 return/no-unsupplied [136] 15.4% ------------------------------------------------------------------------- .../more-scheme.rkt:261:28 [35] 100.0% [48] 850(3.5%) 0(0.0%) get-final-combination ...er/src/mainloop.rkt:371:0 infer-splitpoints [57] 76.7% f33 [61] 23.3% ------------------------------------------------------------------------- eval-const-expr [36] 100.0% [49] 570(2.4%) 0(0.0%) eval (unknown source) namespace-syntax-introduce3 [59] 62.1% add-ns-scopes [60] 37.9% ------------------------------------------------------------------------- .../more-scheme.rkt:261:28 [35] 100.0% [50] 468(1.9%) 0(0.0%) oracle-error ...herbie/master/src/points.rkt:177:0 for-loop [58] 100.0% ------------------------------------------------------------------------- eval-const-expr [36] 100.0% [51] 166(0.7%) 0(0.0%) eval4 (unknown source) syntax-e [55] 100.0% ------------------------------------------------------------------------- eval-const-expr [36] 100.0% [52] 156(0.6%) 0(0.0%) eval-one-top12 (unknown source) for-loop [205] 100.0% ------------------------------------------------------------------------- .../more-scheme.rkt:261:28 [35] 100.0% [53] 150(0.6%) 0(0.0%) eval-errors .../herbie/master/src/points.rkt:168:0 for-loop [62] 100.0% ------------------------------------------------------------------------- run-improve47 [43] 100.0% [54] 20462(84.9%) 0(0.0%) for-loop ...s/herbie/master/src/mainloop.rkt:365:4 run-iter! [63] 100.0% ------------------------------------------------------------------------- eval4 [51] 7.8% stx-pair? [189] 8.6% stx-list? [184] 9.5% loop [190] 18.1% for-loop [205] 56.1% [55] 2136(8.9%) 0(0.0%) syntax-e (unknown source) syntax-e/no-taint [64] 100.0% ------------------------------------------------------------------------- gather-additive-terms6 [25] 20.5% free-variables [46] 79.5% [56] 1730(7.2%) 576(2.4%) append-map ...t-7.5/collects/racket/list.rkt:586:2 free-variables [46] 64.8% parse-loop389 [66] 11.1% gather-additive-terms6 [25] 9.4% ------------------------------------------------------------------------- get-final-combination [48] 100.0% [57] 652(2.7%) 0(0.0%) infer-splitpoints ...ter/src/core/regimes.rkt:33:0 for-loop [65] 100.0% ------------------------------------------------------------------------- oracle-error [50] 100.0% [58] 468(1.9%) 0(0.0%) for-loop ...ies/herbie/master/src/points.rkt:178:2 map [102] 67.5% loop [190] 32.5% ------------------------------------------------------------------------- eval [49] 100.0% [59] 354(1.5%) 152(0.6%) namespace-syntax-introduce3 (unknown source) free-identifier=? [67] 57.1% ------------------------------------------------------------------------- eval [49] 100.0% [60] 216(0.9%) 0(0.0%) add-ns-scopes (unknown source) gf [192] 100.0% ------------------------------------------------------------------------- get-final-combination [48] 100.0% [61] 198(0.8%) 0(0.0%) f33 (unknown source) sindices->spoints [68] 100.0% ------------------------------------------------------------------------- eval-errors [53] 100.0% [62] 150(0.6%) 0(0.0%) for-loop ...ies/herbie/master/src/points.rkt:170:2 ??? [146] 100.0% ------------------------------------------------------------------------- for-loop [54] 100.0% [63] 20462(84.9%) 0(0.0%) run-iter! .../herbie/master/src/mainloop.rkt:327:0 gen-series! [69] 72.1% finalize-iter! [70] 21.1% simplify! [71] 4.1% gen-rewrites! [73] 2.7% ------------------------------------------------------------------------- gf [192] 6.2% expand-id-application-form17 [193] 24.9% syntax-e [55] 68.9% [64] 3100(12.9%) 0(0.0%) syntax-e/no-taint (unknown source) loop [190] 100.0% ------------------------------------------------------------------------- infer-splitpoints [57] 100.0% [65] 652(2.7%) 0(0.0%) for-loop ...erbie/master/src/core/regimes.rkt:45:6 option-on-expr [72] 100.0% ------------------------------------------------------------------------- parse-loop368 [34] 45.8% append-map [56] 54.2% [66] 354(1.5%) 0(0.0%) parse-loop389 (unknown source) for-loop [75] 54.2% parse-loop368 [34] 45.8% ------------------------------------------------------------------------- namespace-syntax-introduce3 [59] 100.0% [67] 202(0.8%) 0(0.0%) free-identifier=? (unknown source) resolve+shift28 [198] 100.0% ------------------------------------------------------------------------- f33 [61] 100.0% [68] 198(0.8%) 0(0.0%) sindices->spoints ...er/src/core/regimes.rkt:194:0 for-loop [74] 100.0% ------------------------------------------------------------------------- run-iter! [63] 100.0% [69] 14760(61.2%) 0(0.0%) gen-series! ...erbie/master/src/mainloop.rkt:160:0 for-loop [76] 100.0% ------------------------------------------------------------------------- run-iter! [63] 100.0% [70] 4314(17.9%) 0(0.0%) finalize-iter! ...ie/master/src/mainloop.rkt:278:0 ??? [77] 100.0% ------------------------------------------------------------------------- run-improve47 [43] 20.0% run-iter! [63] 80.0% [71] 1042(4.3%) 0(0.0%) simplify! .../herbie/master/src/mainloop.rkt:224:0 ??? [78] 100.0% ------------------------------------------------------------------------- for-loop [65] 100.0% [72] 652(2.7%) 0(0.0%) option-on-expr ...aster/src/core/regimes.rkt:124:0 err-lsts->split-indices [80] 49.1% for-loop [82] 26.7% sort-context-on-expr [83] 24.2% ------------------------------------------------------------------------- run-iter! [63] 100.0% [73] 554(2.3%) 0(0.0%) gen-rewrites! ...bie/master/src/mainloop.rkt:183:0 for-loop [79] 100.0% ------------------------------------------------------------------------- sindices->spoints [68] 100.0% [74] 198(0.8%) 0(0.0%) for-loop ...rbie/master/src/core/regimes.rkt:234:9 pred [81] 100.0% ------------------------------------------------------------------------- parse-loop389 [66] 100.0% [75] 192(0.8%) 0(0.0%) for-loop ...erbie/master/src/core/reduce.rkt:95:13 simplify-node [10] 100.0% ------------------------------------------------------------------------- gen-series! [69] 100.0% [76] 14760(61.2%) 0(0.0%) for-loop ...s/herbie/master/src/mainloop.rkt:167:7 taylor-alt [84] 100.0% ------------------------------------------------------------------------- free-variables [46] 4.1% finalize-iter! [70] 95.9% [77] 4498(18.7%) 184(0.8%) ??? ...contract/private/arrow-val-first.rkt:486:18 for-loop [85] 95.9% ------------------------------------------------------------------------- simplify! [71] 100.0% [78] 1042(4.3%) 0(0.0%) ??? ...es/herbie/master/src/core/simplify.rkt:42:0 egraph-run [88] 100.0% ------------------------------------------------------------------------- gen-rewrites! [73] 100.0% [79] 554(2.3%) 0(0.0%) for-loop .../herbie/master/src/mainloop.rkt:191:11 rewrite-expression-head24 [89] 70.4% debug-print [87] 29.6% ------------------------------------------------------------------------- option-on-expr [72] 100.0% [80] 320(1.3%) 0(0.0%) err-lsts->split-indices .../core/regimes.rkt:263:0 loop [90] 100.0% ------------------------------------------------------------------------- for-loop [74] 100.0% [81] 198(0.8%) 0(0.0%) pred ...s/herbie/master/src/core/regimes.rkt:204:4 prepare-points-intervals [86] 100.0% ------------------------------------------------------------------------- option-on-expr [72] 100.0% [82] 174(0.7%) 174(0.7%) for-loop ...bie/master/src/core/regimes.rkt:128:14 ------------------------------------------------------------------------- option-on-expr [72] 100.0% [83] 158(0.7%) 0(0.0%) sort-context-on-expr ...src/core/regimes.rkt:117:0 ??? [91] 100.0% ------------------------------------------------------------------------- for-loop [76] 100.0% [84] 14760(61.2%) 0(0.0%) taylor-alt ...herbie/master/src/mainloop.rkt:146:0 for-loop [92] 100.0% ------------------------------------------------------------------------- ??? [77] 100.0% [85] 4314(17.9%) 0(0.0%) for-loop ...bie/master/src/core/alt-table.rkt:46:2 atab-add-altn [93] 73.0% errors [103] 17.8% loop [98] 9.2% ------------------------------------------------------------------------- pred [81] 11.7% .../more-scheme.rkt:261:28 [35] 88.3% [86] 1694(7.0%) 0(0.0%) prepare-points-intervals ...r/src/points.rkt:120:0 loop [94] 100.0% ------------------------------------------------------------------------- for-loop [79] 14.4% taylor [29] 85.6% [87] 1136(4.7%) 184(0.8%) debug-print ...s/herbie/master/src/debug.rkt:110:0 for-loop [96] 48.6% ??? [97] 35.2% ------------------------------------------------------------------------- ??? [78] 100.0% [88] 1042(4.3%) 0(0.0%) egraph-run .../pkgs/egg-herbie-linux/main.rkt:49:0 egraph-add-exprs [95] 100.0% ------------------------------------------------------------------------- for-loop [79] 100.0% [89] 390(1.6%) 0(0.0%) rewrite-expression-head24 ...core/matcher.rkt:85:0 rewriter [99] 100.0% ------------------------------------------------------------------------- err-lsts->split-indices [80] 100.0% [90] 320(1.3%) 0(0.0%) loop ...s/herbie/master/src/core/regimes.rkt:314:4 for-loop [100] 100.0% ------------------------------------------------------------------------- sort-context-on-expr [83] 100.0% [91] 158(0.7%) 0(0.0%) ??? ...-7.5/collects/racket/private/sort.rkt:369:3 generic-sort/key [101] 100.0% ------------------------------------------------------------------------- taylor-alt [84] 100.0% [92] 14760(61.2%) 0(0.0%) for-loop ...s/herbie/master/src/mainloop.rkt:152:6 ??? [146] 100.0% ------------------------------------------------------------------------- for-loop [85] 100.0% [93] 3148(13.1%) 0(0.0%) atab-add-altn ...ster/src/core/alt-table.rkt:194:0 errors [103] 83.4% for-loop [111] 6.0% append-at-pnts [112] 5.8% override-at-pnts [114] 4.8% ------------------------------------------------------------------------- prepare-points-intervals [86] 100.0% [94] 1694(7.0%) 0(0.0%) loop ...ghtlies/herbie/master/src/points.rkt:132:4 loop [104] 68.0% ??? [106] 32.0% ------------------------------------------------------------------------- egraph-run [88] 100.0% [95] 1042(4.3%) 0(0.0%) egraph-add-exprs ...gg-herbie-linux/main.rkt:111:0 ??? [105] 100.0% ------------------------------------------------------------------------- debug-print [87] 100.0% [96] 552(2.3%) 552(2.3%) for-loop ...lies/herbie/master/src/debug.rkt:116:2 ------------------------------------------------------------------------- debug-print [87] 100.0% [97] 400(1.7%) 200(0.8%) ??? .../contract/private/arrow-val-first.rkt:555:3 mk-call [110] 50.0% ------------------------------------------------------------------------- for-loop [85] 100.0% [98] 396(1.6%) 0(0.0%) loop ...herbie/master/src/core/alt-table.rkt:168:2 loop [109] 50.5% map [102] 49.5% ------------------------------------------------------------------------- rewrite-expression-head24 [89] 29.4% matcher [124] 70.6% [99] 390(1.6%) 0(0.0%) rewriter ...erbie/master/src/core/matcher.rkt:87:2 for-loop [107] 100.0% ------------------------------------------------------------------------- loop [90] 100.0% [100] 320(1.3%) 0(0.0%) for-loop ...rbie/master/src/core/regimes.rkt:279:4 for-loop [108] 100.0% ------------------------------------------------------------------------- ??? [91] 100.0% [101] 158(0.7%) 0(0.0%) generic-sort/key .../racket/private/sort.rkt:156:2 copying-mergesort [113] 100.0% ------------------------------------------------------------------------- gather-multiplicative-terms [120] 1.5% loop [98] 1.8% for-loop [58] 2.9% taylor [29] 22.9% f40 [44] 71.0% [102] 10940(45.4%) 168(0.7%) map ...t-7.5/collects/racket/private/map.rkt:35:13 f40 [44] 41.2% taylor [29] 20.5% f61 [30] 13.7% parse-loop74 [19] 11.0% loop [123] 4.7% taylor-invert [8] 2.4% simplify* [117] 1.9% ??? [119] 1.6% gather-multiplicative-terms [120] 1.5% simplify-node [10] 1.0% ------------------------------------------------------------------------- .../more-scheme.rkt:261:28 [35] 12.2% for-loop [85] 19.9% atab-add-altn [93] 67.9% [103] 3864(16.0%) 0(0.0%) errors ...tlies/herbie/master/src/points.rkt:190:0 for-loop [116] 63.0% temp85_0 [115] 33.1% eval-prog [122] 3.9% ------------------------------------------------------------------------- loop [94] 100.0% [104] 1152(4.8%) 400(1.7%) loop ...ightlies/herbie/master/src/points.rkt:79:2 real->precision [125] 33.5% ??? [126] 31.8% ------------------------------------------------------------------------- egraph-add-exprs [95] 100.0% [105] 1042(4.3%) 0(0.0%) ??? ...s/herbie/master/src/core/simplify.rkt:102:6 for-loop [118] 81.2% egg-run-rules [128] 18.8% ------------------------------------------------------------------------- loop [94] 100.0% [106] 542(2.2%) 0(0.0%) ??? ...ightlies/herbie/master/src/points.rkt:113:6 sample-multi-bounded [121] 100.0% ------------------------------------------------------------------------- rewriter [99] 100.0% [107] 390(1.6%) 0(0.0%) for-loop ...erbie/master/src/core/matcher.rkt:89:4 matcher [124] 88.2% for-loop [129] 11.8% ------------------------------------------------------------------------- for-loop [100] 100.0% [108] 320(1.3%) 156(0.6%) for-loop ...rbie/master/src/core/regimes.rkt:283:8 ??? [194] 51.2% ------------------------------------------------------------------------- loop [98] 14.3% loop [109] 85.7% [109] 200(0.8%) 200(0.8%) loop ...racket-7.5/collects/racket/list.rkt:417:34 loop [109] 85.7% ------------------------------------------------------------------------- ??? [97] 100.0% [110] 200(0.8%) 0(0.0%) mk-call ...tract/private/arrow-val-first.rkt:558:5 loop [127] 100.0% ------------------------------------------------------------------------- atab-add-altn [93] 100.0% [111] 190(0.8%) 190(0.8%) for-loop ...ie/master/src/core/alt-table.rkt:110:2 ------------------------------------------------------------------------- atab-add-altn [93] 100.0% [112] 184(0.8%) 0(0.0%) append-at-pnts ...ter/src/core/alt-table.rkt:137:0 loop [190] 100.0% ------------------------------------------------------------------------- generic-sort/key [101] 25.0% copying-mergesort [113] 75.0% [113] 158(0.7%) 0(0.0%) copying-mergesort ...racket/private/sort.rkt:129:8 copying-mergesort [113] 75.0% jloop [130] 25.0% ------------------------------------------------------------------------- atab-add-altn [93] 100.0% [114] 150(0.6%) 0(0.0%) override-at-pnts ...r/src/core/alt-table.rkt:129:0 for-loop [131] 100.0% ------------------------------------------------------------------------- errors [103] 15.6% eval-const-expr [36] 84.4% [115] 8196(34.0%) 0(0.0%) temp85_0 (unknown source) compile15 [132] 100.0% ------------------------------------------------------------------------- errors [103] 100.0% [116] 2434(10.1%) 498(2.1%) for-loop ...ies/herbie/master/src/points.rkt:192:2 .../more-scheme.rkt:261:28 [35] 79.5% ------------------------------------------------------------------------- map [102] 100.0% [117] 942(3.9%) 156(0.6%) simplify* ...erbie/master/src/core/reduce.rkt:29:0 hash-ref! [191] 42.5% return/no-unsupplied [136] 21.9% constant? [133] 19.1% ------------------------------------------------------------------------- ??? [105] 100.0% [118] 846(3.5%) 846(3.5%) for-loop ...bie/master/src/core/simplify.rkt:121:2 ------------------------------------------------------------------------- map [102] 100.0% [119] 784(3.3%) 400(1.7%) ??? ...lies/herbie/master/src/core/reduce.rkt:57:5 for-loop [135] 49.0% ------------------------------------------------------------------------- map [102] 14.5% simplify-node [10] 85.5% [120] 558(2.3%) 162(0.7%) gather-multiplicative-terms ...re/reduce.rkt:110:0 compose [138] 38.0% do-curry [142] 33.0% map [102] 14.5% ------------------------------------------------------------------------- ??? [106] 100.0% [121] 542(2.2%) 0(0.0%) sample-multi-bounded ...master/src/points.rkt:14:0 random-ranges [134] 100.0% ------------------------------------------------------------------------- errors [103] 28.4% eval-const-expr [36] 71.6% [122] 536(2.2%) 0(0.0%) eval-prog ...s/herbie/master/src/programs.rkt:82:0 hash-ref! [191] 100.0% ------------------------------------------------------------------------- loop [123] 35.4% map [102] 64.6% [123] 512(2.1%) 0(0.0%) loop ...-7.5/collects/racket/private/map.rkt:40:19 ??? [137] 45.5% loop [123] 35.4% ??? [141] 19.1% ------------------------------------------------------------------------- for-loop [24] 44.7% for-loop [107] 55.3% [124] 390(1.6%) 0(0.0%) matcher ...erbie/master/src/core/matcher.rkt:115:2 ??? [13] 55.3% rewriter [99] 44.7% ------------------------------------------------------------------------- loop [104] 100.0% [125] 386(1.6%) 0(0.0%) real->precision ...e/master/src/programs.rkt:94:11 ??? [146] 100.0% ------------------------------------------------------------------------- loop [104] 100.0% [126] 366(1.5%) 0(0.0%) ??? ...tract/private/arrow-higher-order.rkt:379:33 ival-div [140] 54.6% ival-sub [144] 45.4% ------------------------------------------------------------------------- mk-call [110] 100.0% [127] 200(0.8%) 0(0.0%) loop ...contract/private/arrow-val-first.rkt:562:8 ??? [139] 100.0% ------------------------------------------------------------------------- ??? [105] 100.0% [128] 196(0.8%) 196(0.8%) egg-run-rules ...aster/src/core/simplify.rkt:108:0 ------------------------------------------------------------------------- for-loop [107] 100.0% [129] 184(0.8%) 0(0.0%) for-loop ...erbie/master/src/core/matcher.rkt:96:8 fix-up-variables [143] 100.0% ------------------------------------------------------------------------- copying-mergesort [113] 100.0% [130] 158(0.7%) 158(0.7%) jloop ...5/collects/racket/private/sort.rkt:120:23 ------------------------------------------------------------------------- override-at-pnts [114] 100.0% [131] 150(0.6%) 0(0.0%) for-loop ...e/master/src/core/alt-table.rkt:130:22 ??? [145] 100.0% ------------------------------------------------------------------------- temp85_0 [115] 100.0% [132] 8196(34.0%) 0(0.0%) compile15 (unknown source) temp91_0 [147] 97.8% loop [190] 2.2% ------------------------------------------------------------------------- simplify* [117] 31.1% free-variables [46] 68.9% [133] 578(2.4%) 180(0.7%) constant? ...ie/master/src/syntax/syntax.rkt:726:0 value? [148] 68.9% ------------------------------------------------------------------------- sample-multi-bounded [121] 100.0% [134] 542(2.2%) 0(0.0%) random-ranges ...erbie/master/src/common.rkt:164:0 build--> [150] 59.8% cons/c [151] 40.2% ------------------------------------------------------------------------- ??? [119] 100.0% [135] 384(1.6%) 184(0.8%) for-loop ...herbie/master/src/core/reduce.rkt:58:7 pattern-match [153] 52.1% ------------------------------------------------------------------------- ??? [47] 41.8% simplify* [117] 58.2% [136] 354(1.5%) 354(1.5%) return/no-unsupplied ...ct/private/arr-i.rkt:566:0 ------------------------------------------------------------------------- loop [123] 100.0% [137] 316(1.3%) 0(0.0%) ??? ...ghtlies/herbie/master/src/points.rkt:179:26 ??? [194] 52.5% ??? [146] 47.5% ------------------------------------------------------------------------- gather-multiplicative-terms [120] 100.0% [138] 212(0.9%) 212(0.9%) compose ...collects/racket/private/list.rkt:385:12 ------------------------------------------------------------------------- loop [127] 100.0% [139] 200(0.8%) 0(0.0%) ??? ...ects/racket/contract/private/prop.rkt:567:4 ??? [152] 100.0% ------------------------------------------------------------------------- ??? [126] 100.0% [140] 200(0.8%) 0(0.0%) ival-div ...erbie/master/src/biginterval.rkt:156:0 bfdiv [149] 100.0% ------------------------------------------------------------------------- loop [123] 100.0% [141] 196(0.8%) 196(0.8%) ??? ...herbie/master/src/core/alt-table.rkt:185:12 ------------------------------------------------------------------------- gather-multiplicative-terms [120] 100.0% [142] 184(0.8%) 184(0.8%) do-curry ...-7.5/collects/racket/function.rkt:71:2 ------------------------------------------------------------------------- for-loop [129] 100.0% [143] 184(0.8%) 0(0.0%) fix-up-variables ...ter/src/core/matcher.rkt:108:2 for-loop [154] 100.0% ------------------------------------------------------------------------- ??? [126] 100.0% [144] 166(0.7%) 0(0.0%) ival-sub ...erbie/master/src/biginterval.rkt:108:0 bfdiv [149] 100.0% ------------------------------------------------------------------------- for-loop [131] 100.0% [145] 150(0.6%) 150(0.6%) ??? ...7.5/collects/racket/private/for.rkt:1236:14 ------------------------------------------------------------------------- for-loop [62] 1.0% ??? [137] 1.0% .../more-scheme.rkt:261:28 [35] 1.0% real->precision [125] 2.5% loop [16] 6.0% ??? [3] 22.3% location-do [155] 33.2% for-loop [92] 33.2% [146] 15600(64.7%) 454(1.9%) ??? ...tract/private/arrow-higher-order.rkt:375:33 location-do [155] 33.2% approximate9 [2] 33.2% hash-ref! [191] 28.3% bf [159] 2.5% ------------------------------------------------------------------------- compile15 [132] 100.0% [147] 8014(33.2%) 0(0.0%) temp91_0 (unknown source) temp118_0 [156] 92.3% compile-top9 [157] 7.7% ------------------------------------------------------------------------- constant? [133] 100.0% [148] 398(1.7%) 398(1.7%) value? .../herbie/master/src/syntax/types.rkt:18:0 ------------------------------------------------------------------------- ival-sub [144] 45.4% ival-div [140] 54.6% [149] 366(1.5%) 0(0.0%) bfdiv ...-lib/math/private/bigfloat/mpfr.rkt:835:4 new-mpfr [163] 100.0% ------------------------------------------------------------------------- random-ranges [134] 100.0% [150] 324(1.3%) 0(0.0%) build--> ...act/private/arrow-val-first.rkt:1214:0 coerce-contract [158] 100.0% ------------------------------------------------------------------------- random-ranges [134] 100.0% [151] 218(0.9%) 0(0.0%) cons/c .../racket/contract/private/guts.rkt:500:15 coerce-contract [158] 100.0% ------------------------------------------------------------------------- ??? [139] 100.0% [152] 200(0.8%) 200(0.8%) ??? ...ects/racket/contract/private/list.rkt:690:0 ------------------------------------------------------------------------- for-loop [135] 100.0% [153] 200(0.8%) 0(0.0%) pattern-match .../master/src/core/matcher.rkt:29:0 for-loop [160] 100.0% ------------------------------------------------------------------------- fix-up-variables [143] 100.0% [154] 184(0.8%) 184(0.8%) for-loop ...erbie/master/src/core/matcher.rkt:41:9 ------------------------------------------------------------------------- ??? [146] 44.9% location-do [155] 55.1% [155] 14760(61.2%) 0(0.0%) location-do ...herbie/master/src/programs.rkt:63:0 location-do [155] 55.1% ??? [146] 44.9% ------------------------------------------------------------------------- temp91_0 [147] 100.0% [156] 7396(30.7%) 0(0.0%) temp118_0 (unknown source) expand-capturing-lifts [161] 100.0% ------------------------------------------------------------------------- temp91_0 [147] 100.0% [157] 618(2.6%) 0(0.0%) compile-top9 (unknown source) compile-forms33 [162] 100.0% ------------------------------------------------------------------------- cons/c [151] 40.2% build--> [150] 59.8% [158] 542(2.2%) 0(0.0%) coerce-contract ...contract/private/guts.rkt:307:0 coerce-contract/f [164] 100.0% ------------------------------------------------------------------------- ??? [146] 100.0% [159] 386(1.6%) 0(0.0%) bf ...ath-lib/math/private/bigfloat/mpfr.rkt:615:2 ??? [166] 51.3% new-mpfr [163] 48.7% ------------------------------------------------------------------------- pattern-match [153] 100.0% [160] 200(0.8%) 0(0.0%) for-loop ...erbie/master/src/core/matcher.rkt:26:9 core457 [165] 100.0% ------------------------------------------------------------------------- loop [190] 11.5% temp118_0 [156] 88.5% [161] 8360(34.7%) 182(0.8%) expand-capturing-lifts (unknown source) lambda-clause-expander [167] 83.7% dispatch-transformer41 [168] 7.3% loop [190] 6.9% ------------------------------------------------------------------------- compile-top9 [157] 100.0% [162] 618(2.6%) 198(0.8%) compile-forms33 (unknown source) for-loop [205] 68.0% ------------------------------------------------------------------------- bf [159] 33.9% bfdiv [149] 66.1% [163] 554(2.3%) 554(2.3%) new-mpfr ...b/math/private/bigfloat/mpfr.rkt:348:0 ------------------------------------------------------------------------- coerce-contract [158] 100.0% [164] 542(2.2%) 0(0.0%) coerce-contract/f ...ntract/private/guts.rkt:372:0 coerce-simple-value [169] 100.0% ------------------------------------------------------------------------- for-loop [160] 49.3% ??? [42] 50.7% [165] 406(1.7%) 0(0.0%) core457 ...acket/contract/private/arr-i.rkt:976:19 un-dep/maybe-chaperone [170] 50.7% build-unary-very-simple--> [171] 49.3% ------------------------------------------------------------------------- bf [159] 100.0% [166] 198(0.8%) 198(0.8%) ??? /opt/racket-7.5/collects/ffi/unsafe.rkt:938:4 ------------------------------------------------------------------------- expand-capturing-lifts [161] 100.0% [167] 6994(29.0%) 0(0.0%) lambda-clause-expander (unknown source) finish-bodys [172] 87.4% loop [190] 12.6% ------------------------------------------------------------------------- expand-capturing-lifts [161] 23.4% loop [190] 28.1% for-loop [205] 48.6% [168] 2602(10.8%) 0(0.0%) dispatch-transformer41 (unknown source) apply-transformer52 [173] 100.0% ------------------------------------------------------------------------- coerce-contract/f [164] 100.0% [169] 542(2.2%) 542(2.2%) coerce-simple-value ...ract/private/guts.rkt:385:0 ------------------------------------------------------------------------- core457 [165] 100.0% [170] 206(0.9%) 0(0.0%) un-dep/maybe-chaperone ...private/arr-i.rkt:1137:2 ??? [174] 100.0% ------------------------------------------------------------------------- core457 [165] 100.0% [171] 200(0.8%) 200(0.8%) build-unary-very-simple--> ...val-first.rkt:1150:0 ------------------------------------------------------------------------- lambda-clause-expander [167] 37.6% for-loop [205] 62.4% [172] 6112(25.4%) 0(0.0%) finish-bodys (unknown source) for-loop [205] 100.0% ------------------------------------------------------------------------- dispatch-transformer41 [168] 100.0% [173] 2602(10.8%) 360(1.5%) apply-transformer52 (unknown source) apply-transformer-in-context [175] 65.2% loop [190] 13.6% apply-post-expansion [177] 7.4% ------------------------------------------------------------------------- un-dep/maybe-chaperone [170] 100.0% [174] 206(0.9%) 0(0.0%) ??? ...cts/racket/contract/private/guts.rkt:835:10 ??? [176] 100.0% ------------------------------------------------------------------------- apply-transformer52 [173] 100.0% [175] 1696(7.0%) 0(0.0%) apply-transformer-in-context (unknown source) go [178] 43.8% ??? [179] 22.8% parse-app [180] 21.0% new-lambda [181] 12.5% ------------------------------------------------------------------------- ??? [174] 100.0% [176] 206(0.9%) 0(0.0%) ??? ...ntract/private/arrow-higher-order.rkt:575:2 build-subcontract-late-negs [182] 100.0% ------------------------------------------------------------------------- apply-transformer52 [173] 100.0% [177] 192(0.8%) 0(0.0%) apply-post-expansion (unknown source) gf [192] 100.0% ------------------------------------------------------------------------- apply-transformer-in-context [175]100.0% [178] 742(3.1%) 0(0.0%) go .../collects/racket/private/qq-and-or.rkt:50:20 loop [183] 51.8% stx-list? [184] 27.2% stx-cdr [187] 21.0% ------------------------------------------------------------------------- apply-transformer-in-context [175]100.0% [179] 386(1.6%) 0(0.0%) ??? ...collects/racket/private/qq-and-or.rkt:155:9 ??? [185] 52.3% syntax->list [188] 47.7% ------------------------------------------------------------------------- apply-transformer-in-context [175]100.0% [180] 356(1.5%) 174(0.7%) parse-app ...collects/racket/private/kw.rkt:1142:2 identifier? [186] 51.1% ------------------------------------------------------------------------- apply-transformer-in-context [175]100.0% [181] 212(0.9%) 212(0.9%) new-lambda ...ollects/racket/private/kw.rkt:856:11 ------------------------------------------------------------------------- ??? [176] 100.0% [182] 206(0.9%) 206(0.9%) build-subcontract-late-negs ...her-order.rkt:711:0 ------------------------------------------------------------------------- loop [183] 24.0% go [178] 76.0% [183] 384(1.6%) 0(0.0%) loop ...llects/racket/private/qq-and-or.rkt:101:61 datum->syntax6 [207] 52.1% loop [183] 24.0% stx-pair? [189] 24.0% ------------------------------------------------------------------------- go [178] 100.0% [184] 202(0.8%) 0(0.0%) stx-list? .../collects/racket/private/stx.rkt:49:4 syntax-e [55] 100.0% ------------------------------------------------------------------------- ??? [179] 100.0% [185] 202(0.8%) 0(0.0%) ??? ...ollects/racket/private/qq-and-or.rkt:164:21 syntax->list [188] 100.0% ------------------------------------------------------------------------- parse-app [180] 100.0% [186] 182(0.8%) 182(0.8%) identifier? ...ollects/racket/private/stx.rkt:13:4 ------------------------------------------------------------------------- go [178] 100.0% [187] 156(0.6%) 156(0.6%) stx-cdr ....5/collects/racket/private/stx.rkt:74:4 ------------------------------------------------------------------------- ??? [179] 47.7% ??? [185] 52.3% [188] 386(1.6%) 0(0.0%) syntax->list (unknown source) loop [190] 100.0% ------------------------------------------------------------------------- loop [183] 100.0% [189] 184(0.8%) 0(0.0%) stx-pair? .../collects/racket/private/stx.rkt:40:4 syntax-e [55] 100.0% ------------------------------------------------------------------------- append-at-pnts [112] 0.1% for-loop [58] 1.2% gf [192] 2.3% compile15 [132] 2.8% syntax->list [188] 3.0% apply-transformer52 [173] 5.5% expand-capturing-lifts [161] 6.1% loop [190] 7.2% eval-const-expr [36] 7.8% ??? [200] 8.4% lambda-clause-expander [167] 10.3% for-loop [205] 11.6% syntax-e/no-taint [64] 33.9% [190] 6392(26.5%) 1880(7.8%) loop (unknown source) gf [192] 32.7% expand-id-application-form17 [193] 10.8% expand-capturing-lifts [161] 10.6% dispatch-transformer41 [168] 7.9% loop [190] 7.2% core-form-sym [196] 5.5% expand-identifier [195] 3.1% syntax-e [55] 3.0% hash-ref! [191] 2.1% ??? [194] 1.2% ------------------------------------------------------------------------- loop [190] 0.3% simplify* [117] 0.3% for-loop [40] 0.6% eval-prog [122] 1.4% for-loop [21] 1.7% for-loop [20] 1.8% first-nonzero-exp [45] 2.1% ??? [197] 3.4% ??? [31] 3.5% loop [38] 4.1% for-loop [18] 6.7% ??? [5] 8.8% loop [16] 14.4% ??? [3] 14.5% for-loop [17] 15.1% ??? [146] 19.5% [191] 13948(57.9%) 400(1.7%) hash-ref! .../racket/private/more-scheme.rkt:376:2 ??? [3] 28.9% ??? [4] 16.8% ??? [5] 10.6% ??? [6] 10.3% f40 [44] 8.4% taylor [29] 7.6% ??? [7] 3.5% ??? [197] 3.4% parse-loop74 [19] 3.1% f61 [30] 2.9% ??? [200] 1.6% ??? [11] 0.6% simplify-node [10] 0.2% ------------------------------------------------------------------------- add-ns-scopes [60] 1.8% apply-post-expansion [177] 3.3% loop [190] 94.9% [192] 2948(12.2%) 674(2.8%) gf (unknown source) propagation-apply [199] 56.7% loop [190] 7.3% propagation-merge [201] 6.9% propagation-apply-shifted [203] 6.2% syntax-e/no-taint [64] 3.3% ------------------------------------------------------------------------- for-loop [205] 15.3% loop [190] 84.7% [193] 1310(5.4%) 0(0.0%) expand-id-application-form17 (unknown source) syntax-e/no-taint [64] 58.9% resolve+shift28 [198] 25.8% binding-lookup52 [202] 15.3% ------------------------------------------------------------------------- loop [190] 31.5% for-loop [108] 34.0% ??? [137] 34.4% [194] 482(2.0%) 482(2.0%) ??? ...cket-7.5/collects/racket/function.rkt:93:12 ------------------------------------------------------------------------- for-loop [205] 48.4% loop [190] 51.6% [195] 384(1.6%) 0(0.0%) expand-identifier (unknown source) resolve+shift28 [198] 100.0% ------------------------------------------------------------------------- loop [190] 100.0% [196] 354(1.5%) 204(0.8%) core-form-sym (unknown source) resolve+shift28 [198] 42.4% ------------------------------------------------------------------------- hash-ref! [191] 100.0% [197] 3334(13.8%) 0(0.0%) ??? ...es/herbie/master/src/core/taylor.rkt:343:33 hash-ref! [191] 100.0% ------------------------------------------------------------------------- core-form-sym [196] 8.5% free-identifier=? [67] 11.4% expand-id-application-form17 [193] 19.1% expand-identifier [195] 21.7% expand-implicit [9] 39.3% [198] 1768(7.3%) 354(1.5%) resolve+shift28 (unknown source) fallback-loop [204] 80.0% ------------------------------------------------------------------------- gf [192] 100.0% [199] 1672(6.9%) 1672(6.9%) propagation-apply (unknown source) ------------------------------------------------------------------------- hash-ref! [191] 100.0% [200] 536(2.2%) 0(0.0%) ??? ...htlies/herbie/master/src/programs.rkt:178:5 loop [190] 100.0% ------------------------------------------------------------------------- gf [192] 100.0% [201] 202(0.8%) 202(0.8%) propagation-merge (unknown source) ------------------------------------------------------------------------- expand-id-application-form17 [193]100.0% [202] 200(0.8%) 200(0.8%) binding-lookup52 (unknown source) ------------------------------------------------------------------------- gf [192] 100.0% [203] 184(0.8%) 184(0.8%) propagation-apply-shifted (unknown source) ------------------------------------------------------------------------- resolve+shift28 [198] 100.0% [204] 1414(5.9%) 372(1.5%) fallback-loop (unknown source) for-loop [205] 73.7% ------------------------------------------------------------------------- fallback-loop [204] 1.9% eval-one-top12 [52] 2.3% compile-forms33 [162] 6.3% for-loop [205] 20.8% finish-bodys [172] 68.7% [205] 6688(27.7%) 1918(8.0%) for-loop (unknown source) finish-bodys [172] 42.9% for-loop [205] 20.8% dispatch-transformer41 [168] 6.7% compile-module-linklet57 [206] 6.3% loop [190] 3.3% expand-body7 [208] 3.0% datum->syntax6 [207] 2.6% expand-implicit [9] 2.1% syntax-e [55] 1.7% expand-id-application-form17 [193] 1.0% expand-identifier [195] 0.2% ------------------------------------------------------------------------- for-loop [205] 100.0% [206] 420(1.7%) 420(1.7%) compile-module-linklet57 (unknown source) ------------------------------------------------------------------------- for-loop [205] 46.2% loop [183] 53.8% [207] 372(1.5%) 372(1.5%) datum->syntax6 (unknown source) ------------------------------------------------------------------------- for-loop [205] 100.0% [208] 200(0.8%) 200(0.8%) expand-body7 (unknown source) -------------------------------------------------------------------------