Profiling results ----------------- Total cpu time observed: 44732ms (out of 44844ms) Number of samples taken: 218 (once every 205ms) (Hiding functions with self<1.0% and local<2.0%: 2 of 210 hidden) ========================================================================== Caller Idx Total Self Name+src Local% ms(pct) ms(pct) Callee ========================================================================== [1] 44732(100.0%) 0(0.0%) ??? ...lects/racket/private/more-scheme.rkt:261:28 profile-thunk16 [14] 100.0% -------------------------------------------------------------------------- ??? [156] 100.0% [2] 6334(14.2%) 0(0.0%) approximate9 ...both-ends/src/core/taylor.rkt:11:0 loop [15] 81.0% for-loop [24] 15.9% taylor [27] 3.1% -------------------------------------------------------------------------- hash-ref! [143] 100.0% [3] 3874(8.7%) 0(0.0%) ??? ...ection-both-ends/src/core/taylor.rkt:300:23 for-loop [16] 100.0% -------------------------------------------------------------------------- loop [141] 45.6% for-loop [144] 54.4% [4] 2212(4.9%) 0(0.0%) syntax-e (unknown source) syntax-e/no-taint [17] 100.0% -------------------------------------------------------------------------- hash-ref! [143] 100.0% [5] 2056(4.6%) 0(0.0%) ??? ...ection-both-ends/src/core/taylor.rkt:290:26 for-loop [18] 100.0% -------------------------------------------------------------------------- matcher [114] 100.0% [6] 1802(4.0%) 0(0.0%) ??? ...ction-both-ends/src/core/matcher.rkt:127:11 for-loop [20] 72.1% for-loop [25] 27.9% -------------------------------------------------------------------------- hash-ref! [143] 100.0% [7] 1658(3.7%) 0(0.0%) ??? ...ection-both-ends/src/core/taylor.rkt:406:23 for-loop [21] 87.9% for-loop [30] 12.1% -------------------------------------------------------------------------- loop [141] 25.9% for-loop [144] 74.1% [8] 1632(3.6%) 0(0.0%) dispatch-transformer41 (unknown source) apply-transformer52 [19] 100.0% -------------------------------------------------------------------------- hash-ref! [143] 100.0% [9] 1262(2.8%) 0(0.0%) ??? ...ection-both-ends/src/core/taylor.rkt:509:23 for-loop [22] 100.0% -------------------------------------------------------------------------- for-loop [144] 100.0% [10] 644(1.4%) 200(0.4%) expand-identifier (unknown source) resolve+shift28 [23] 68.9% -------------------------------------------------------------------------- for-loop [144] 100.0% [11] 602(1.3%) 202(0.5%) expand-implicit (unknown source) resolve+shift28 [23] 66.4% -------------------------------------------------------------------------- taylor [27] 100.0% [12] 396(0.9%) 0(0.0%) taylor-invert ...th-ends/src/core/taylor.rkt:317:0 f40 [28] 50.0% first-nonzero-exp [41] 50.0% -------------------------------------------------------------------------- hash-ref! [143] 100.0% [13] 200(0.4%) 0(0.0%) ??? ...-detection-both-ends/src/programs.rkt:178:5 loop [141] 100.0% -------------------------------------------------------------------------- ??? [1] 100.0% [14] 44732(100.0%) 0(0.0%) profile-thunk16 ...e/pkgs/profile-lib/main.rkt:9:0 run [26] 100.0% -------------------------------------------------------------------------- approximate9 [2] 100.0% [15] 5132(11.5%) 0(0.0%) loop ...tection-both-ends/src/core/taylor.rkt:86:4 hash-ref! [143] 76.5% ??? [156] 23.5% -------------------------------------------------------------------------- ??? [3] 100.0% [16] 3874(8.7%) 0(0.0%) for-loop ...n-both-ends/src/core/taylor.rkt:303:27 hash-ref! [143] 89.6% f40 [28] 10.4% -------------------------------------------------------------------------- expand-id-application-form17 [147] 8.3% syntax-e [4] 91.7% [17] 2412(5.4%) 0(0.0%) syntax-e/no-taint (unknown source) loop [141] 100.0% -------------------------------------------------------------------------- ??? [5] 100.0% [18] 2056(4.6%) 0(0.0%) for-loop ...n-both-ends/src/core/taylor.rkt:290:52 hash-ref! [143] 85.3% ??? [158] 14.7% -------------------------------------------------------------------------- dispatch-transformer41 [8] 100.0% [19] 1632(3.6%) 0(0.0%) apply-transformer52 (unknown source) loop [141] 50.4% apply-transformer-in-context [32] 49.6% -------------------------------------------------------------------------- ??? [6] 100.0% [20] 1602(3.6%) 0(0.0%) for-loop ...-both-ends/src/core/matcher.rkt:129:15 matcher [114] 100.0% -------------------------------------------------------------------------- ??? [7] 100.0% [21] 1458(3.3%) 0(0.0%) for-loop ...n-both-ends/src/core/taylor.rkt:410:33 for-loop [30] 55.8% hash-ref! [143] 44.2% -------------------------------------------------------------------------- ??? [9] 100.0% [22] 1262(2.8%) 0(0.0%) for-loop ...n-both-ends/src/core/taylor.rkt:513:35 parse-loop402 [29] 100.0% -------------------------------------------------------------------------- core-form-sym [146] 20.8% expand-implicit [11] 37.5% expand-identifier [10] 41.7% [23] 1066(2.4%) 222(0.5%) resolve+shift28 (unknown source) fallback-loop [31] 79.2% -------------------------------------------------------------------------- approximate9 [2] 100.0% [24] 1004(2.2%) 0(0.0%) for-loop ...on-both-ends/src/core/taylor.rkt:29:18 taylor [27] 79.9% taylor-quotient [34] 20.1% -------------------------------------------------------------------------- ??? [6] 100.0% [25] 804(1.8%) 0(0.0%) for-loop ...n-both-ends/src/core/matcher.rkt:103:4 foldl [33] 100.0% -------------------------------------------------------------------------- profile-thunk16 [14] 100.0% [26] 44732(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] 3.2% map [157] 6.3% for-loop [24] 10.9% hash-ref! [143] 25.8% taylor [27] 53.8% [27] 3058(6.8%) 406(0.9%) taylor ...tion-both-ends/src/core/taylor.rkt:169:0 taylor [27] 53.8% loop [37] 26.8% map [157] 6.3% taylor-invert [12] 4.9% do-curry [42] 3.3% taylor-quotient [34] 2.4% -------------------------------------------------------------------------- taylor-invert [12] 9.0% for-loop [16] 9.1% ??? [156] 11.6% map [157] 30.0% hash-ref! [143] 40.3% [28] 2212(4.9%) 0(0.0%) f40 (unknown source) map [157] 100.0% -------------------------------------------------------------------------- for-loop [22] 100.0% [29] 1262(2.8%) 0(0.0%) parse-loop402 (unknown source) for-loop [38] 100.0% -------------------------------------------------------------------------- ??? [7] 19.7% for-loop [21] 80.3% [30] 1014(2.3%) 0(0.0%) for-loop ...n-both-ends/src/core/taylor.rkt:412:39 hash-ref! [143] 100.0% -------------------------------------------------------------------------- resolve+shift28 [23] 100.0% [31] 844(1.9%) 0(0.0%) fallback-loop (unknown source) for-loop [144] 100.0% -------------------------------------------------------------------------- apply-transformer52 [19] 100.0% [32] 810(1.8%) 200(0.4%) apply-transformer-in-context (unknown source) ??? [40] 75.3% -------------------------------------------------------------------------- for-loop [25] 100.0% [33] 804(1.8%) 0(0.0%) foldl ....5/collects/racket/private/list.rkt:229:4 ??? [39] 100.0% -------------------------------------------------------------------------- for-loop [24] 47.4% taylor [27] 52.6% [34] 426(1.0%) 0(0.0%) taylor-quotient ...-ends/src/core/taylor.rkt:333:0 parse-loop74 [36] 52.6% first-nonzero-exp [41] 47.4% -------------------------------------------------------------------------- for-loop [121] 5.7% run [26] 94.3% [35] 44732(100.0%) 1004(2.2%) .../more-scheme.rkt:261:28 (unknown source) prepare-points-intervals [50] 48.4% run-improve47 [43] 34.8% oracle-error [45] 6.8% ??? [181] 3.2% get-final-combination [46] 2.1% errors [113] 1.4% *bit-width* [47] 0.9% loop [141] 0.5% eval-errors [49] 0.4% ??? [156] 0.2% ??? [165] 0.2% -------------------------------------------------------------------------- taylor-quotient [34] 5.4% parse-loop74 [36] 8.6% map [157] 17.1% hash-ref! [143] 68.9% [36] 4120(9.2%) 0(0.0%) parse-loop74 (unknown source) eval-const-expr [44] 88.9% parse-loop74 [36] 8.6% f61 [163] 2.4% -------------------------------------------------------------------------- taylor [27] 100.0% [37] 1832(4.1%) 0(0.0%) loop ...ection-both-ends/src/core/taylor.rkt:267:2 hash-ref! [143] 100.0% -------------------------------------------------------------------------- parse-loop402 [29] 100.0% [38] 1262(2.8%) 0(0.0%) for-loop ...n-both-ends/src/core/taylor.rkt:516:59 hash-ref! [143] 100.0% -------------------------------------------------------------------------- foldl [33] 100.0% [39] 804(1.8%) 0(0.0%) ??? ...tection-both-ends/src/core/matcher.rkt:25:7 core457 [197] 100.0% -------------------------------------------------------------------------- apply-transformer-in-context [32] 100.0% [40] 610(1.4%) 202(0.5%) ??? ...collects/racket/private/qq-and-or.rkt:155:9 ??? [48] 66.9% -------------------------------------------------------------------------- taylor-invert [12] 49.5% taylor-quotient [34] 50.5% [41] 400(0.9%) 0(0.0%) first-nonzero-exp ...nds/src/core/taylor.rkt:265:0 hash-ref! [143] 100.0% -------------------------------------------------------------------------- taylor [27] 100.0% [42] 200(0.4%) 200(0.4%) do-curry ...-7.5/collects/racket/function.rkt:71:2 -------------------------------------------------------------------------- .../more-scheme.rkt:261:28 [35] 100.0% [43] 17180(38.4%) 0(0.0%) run-improve47 ...-both-ends/src/mainloop.rkt:346:0 for-loop [51] 96.4% prepare-points-intervals [50] 3.6% -------------------------------------------------------------------------- f61 [163] 16.4% parse-loop74 [36] 83.6% [44] 4930(11.0%) 0(0.0%) eval-const-expr ...oth-ends/src/programs.rkt:120:0 temp85_0 [122] 83.4% eval-prog [54] 12.5% eval [124] 4.1% -------------------------------------------------------------------------- .../more-scheme.rkt:261:28 [35] 100.0% [45] 3022(6.8%) 0(0.0%) oracle-error ...ion-both-ends/src/points.rkt:190:0 for-loop [52] 100.0% -------------------------------------------------------------------------- .../more-scheme.rkt:261:28 [35] 100.0% [46] 1464(3.3%) 0(0.0%) get-final-combination ...ds/src/mainloop.rkt:371:0 infer-splitpoints [53] 100.0% -------------------------------------------------------------------------- .../more-scheme.rkt:261:28 [35] 100.0% [47] 802(1.8%) 602(1.3%) *bit-width* ...ection-both-ends/src/float.rkt:34:0 ??? [165] 24.9% -------------------------------------------------------------------------- ??? [40] 100.0% [48] 408(0.9%) 0(0.0%) ??? ...ollects/racket/private/qq-and-or.rkt:164:21 syntax->list [55] 100.0% -------------------------------------------------------------------------- .../more-scheme.rkt:261:28 [35] 100.0% [49] 200(0.4%) 0(0.0%) eval-errors ...tion-both-ends/src/points.rkt:181:0 for-loop [56] 100.0% -------------------------------------------------------------------------- run-improve47 [43] 2.8% .../more-scheme.rkt:261:28 [35] 97.2% [50] 22270(49.8%) 0(0.0%) prepare-points-intervals ...s/src/points.rkt:133:0 loop [57] 100.0% -------------------------------------------------------------------------- run-improve47 [43] 100.0% [51] 16562(37.0%) 0(0.0%) for-loop ...ction-both-ends/src/mainloop.rkt:365:4 run-iter! [58] 100.0% -------------------------------------------------------------------------- oracle-error [45] 100.0% [52] 3022(6.8%) 0(0.0%) for-loop ...tection-both-ends/src/points.rkt:191:2 loop [141] 73.2% map [157] 20.1% argmin [102] 6.7% -------------------------------------------------------------------------- get-final-combination [46] 100.0% [53] 1464(3.3%) 0(0.0%) infer-splitpoints ...nds/src/core/regimes.rkt:33:0 for-loop [59] 100.0% -------------------------------------------------------------------------- eval-const-expr [44] 100.0% [54] 614(1.4%) 0(0.0%) eval-prog ...ction-both-ends/src/programs.rkt:82:0 inductor [60] 67.4% hash-ref! [143] 32.6% -------------------------------------------------------------------------- ??? [48] 100.0% [55] 408(0.9%) 0(0.0%) syntax->list (unknown source) loop [141] 100.0% -------------------------------------------------------------------------- eval-errors [49] 100.0% [56] 200(0.4%) 200(0.4%) for-loop ...tection-both-ends/src/points.rkt:183:2 -------------------------------------------------------------------------- prepare-points-intervals [50] 100.0% [57] 22270(49.8%) 218(0.5%) loop ...w-detection-both-ends/src/points.rkt:145:4 loop [61] 96.2% ??? [67] 2.8% -------------------------------------------------------------------------- for-loop [51] 100.0% [58] 16562(37.0%) 0(0.0%) run-iter! ...tion-both-ends/src/mainloop.rkt:327:0 gen-series! [62] 40.7% finalize-iter! [63] 37.9% gen-rewrites! [64] 10.9% simplify! [66] 5.6% localize! [68] 3.7% choose-best-alt! [70] 1.2% -------------------------------------------------------------------------- infer-splitpoints [53] 100.0% [59] 1464(3.3%) 0(0.0%) for-loop ...on-both-ends/src/core/regimes.rkt:45:6 option-on-expr [65] 100.0% -------------------------------------------------------------------------- eval-prog [54] 100.0% [60] 414(0.9%) 0(0.0%) inductor ...ction-both-ends/src/programs.rkt:103:4 table-ref [69] 100.0% -------------------------------------------------------------------------- loop [57] 100.0% [61] 21422(47.9%) 600(1.3%) loop ...ow-detection-both-ends/src/points.rkt:81:2 ??? [156] 62.7% ??? [73] 25.0% real->precision [75] 7.6% ??? [192] 1.0% ??? [117] 0.9% -------------------------------------------------------------------------- run-iter! [58] 100.0% [62] 6742(15.1%) 0(0.0%) gen-series! ...on-both-ends/src/mainloop.rkt:160:0 for-loop [71] 100.0% -------------------------------------------------------------------------- run-iter! [58] 100.0% [63] 6282(14.0%) 0(0.0%) finalize-iter! ...both-ends/src/mainloop.rkt:278:0 ??? [72] 100.0% -------------------------------------------------------------------------- run-iter! [58] 100.0% [64] 1802(4.0%) 0(0.0%) gen-rewrites! ...-both-ends/src/mainloop.rkt:183:0 for-loop [74] 100.0% -------------------------------------------------------------------------- for-loop [59] 100.0% [65] 1464(3.3%) 0(0.0%) option-on-expr ...-ends/src/core/regimes.rkt:124:0 for-loop [76] 72.3% err-lsts->split-indices [80] 27.7% -------------------------------------------------------------------------- run-iter! [58] 100.0% [66] 920(2.1%) 0(0.0%) simplify! ...tion-both-ends/src/mainloop.rkt:224:0 ??? [77] 75.0% for-loop [81] 25.0% -------------------------------------------------------------------------- loop [57] 100.0% [67] 630(1.4%) 0(0.0%) ??? ...ow-detection-both-ends/src/points.rkt:126:6 sample-multi-bounded [78] 100.0% -------------------------------------------------------------------------- run-iter! [58] 100.0% [68] 616(1.4%) 0(0.0%) localize! ...tion-both-ends/src/mainloop.rkt:127:0 localize-error [79] 100.0% -------------------------------------------------------------------------- inductor [60] 100.0% [69] 414(0.9%) 206(0.5%) table-ref ...tection-both-ends/src/common.rkt:33:0 dict? [82] 50.2% -------------------------------------------------------------------------- run-iter! [58] 100.0% [70] 200(0.4%) 0(0.0%) choose-best-alt! ...th-ends/src/mainloop.rkt:117:0 ...ow-val-first.rkt:486:18 [83] 100.0% -------------------------------------------------------------------------- gen-series! [62] 100.0% [71] 6742(15.1%) 0(0.0%) for-loop ...ction-both-ends/src/mainloop.rkt:167:7 taylor-alt [84] 100.0% -------------------------------------------------------------------------- finalize-iter! [63] 100.0% [72] 6282(14.0%) 0(0.0%) ??? ...contract/private/arrow-val-first.rkt:486:18 for-loop [85] 96.7% atab-add-altns [94] 3.3% -------------------------------------------------------------------------- loop [61] 100.0% [73] 5358(12.0%) 0(0.0%) ??? ...tract/private/arrow-higher-order.rkt:379:33 ival-add [86] 46.4% ival-div [87] 42.1% ival-sub [90] 11.5% -------------------------------------------------------------------------- gen-rewrites! [64] 100.0% [74] 1802(4.0%) 0(0.0%) for-loop ...tion-both-ends/src/mainloop.rkt:191:11 rewrite-expression-head24 [88] 100.0% -------------------------------------------------------------------------- loop [61] 100.0% [75] 1622(3.6%) 200(0.4%) real->precision ...oth-ends/src/programs.rkt:94:11 ??? [156] 87.7% -------------------------------------------------------------------------- option-on-expr [65] 100.0% [76] 1058(2.4%) 0(0.0%) for-loop ...n-both-ends/src/core/regimes.rkt:135:4 errors [113] 100.0% -------------------------------------------------------------------------- simplify! [66] 100.0% [77] 690(1.5%) 0(0.0%) ??? ...ection-both-ends/src/core/simplify.rkt:42:0 egraph-run [89] 100.0% -------------------------------------------------------------------------- ??? [67] 100.0% [78] 630(1.4%) 0(0.0%) sample-multi-bounded ...h-ends/src/points.rkt:14:0 random-ranges [91] 67.3% for-loop [93] 32.7% -------------------------------------------------------------------------- localize! [68] 100.0% [79] 616(1.4%) 0(0.0%) localize-error ...-ends/src/core/localize.rkt:58:0 hash-ref! [143] 100.0% -------------------------------------------------------------------------- option-on-expr [65] 100.0% [80] 406(0.9%) 0(0.0%) err-lsts->split-indices .../core/regimes.rkt:263:0 loop [92] 100.0% -------------------------------------------------------------------------- simplify! [66] 100.0% [81] 230(0.5%) 0(0.0%) for-loop ...ction-both-ends/src/mainloop.rkt:229:6 ??? [156] 100.0% -------------------------------------------------------------------------- table-ref [69] 100.0% [82] 208(0.5%) 208(0.5%) dict? ...ollects/racket/private/generic.rkt:146:11 -------------------------------------------------------------------------- choose-best-alt! [70] 100.0% [83] 200(0.4%) 0(0.0%) ...ow-val-first.rkt:486:18 (unknown source) ??? [95] 100.0% -------------------------------------------------------------------------- for-loop [71] 100.0% [84] 6742(15.1%) 0(0.0%) taylor-alt ...ion-both-ends/src/mainloop.rkt:146:0 for-loop [96] 100.0% -------------------------------------------------------------------------- ??? [72] 100.0% [85] 6076(13.6%) 0(0.0%) for-loop ...-both-ends/src/core/alt-table.rkt:46:2 atab-add-altn [97] 60.4% errors [113] 26.4% loop [99] 13.2% -------------------------------------------------------------------------- ??? [73] 100.0% [86] 2486(5.6%) 618(1.4%) ival-add ...on-both-ends/src/biginterval.rkt:237:0 e-compute [170] 41.1% ormap [172] 17.1% strong-immovable-endpoint? [184] 17.0% -------------------------------------------------------------------------- ??? [73] 100.0% [87] 2254(5.0%) 422(0.9%) ival-div ...on-both-ends/src/biginterval.rkt:318:0 e-compute [170] 36.7% ormap [172] 35.7% strong-immovable-endpoint-0? [183] 8.9% -------------------------------------------------------------------------- for-loop [74] 100.0% [88] 1802(4.0%) 0(0.0%) rewrite-expression-head24 ...core/matcher.rkt:85:0 rewriter [98] 100.0% -------------------------------------------------------------------------- ??? [77] 100.0% [89] 690(1.5%) 0(0.0%) egraph-run .../pkgs/egg-herbie-linux/main.rkt:49:0 egraph-add-exprs [100] 100.0% -------------------------------------------------------------------------- ??? [73] 100.0% [90] 618(1.4%) 218(0.5%) ival-sub ...on-both-ends/src/biginterval.rkt:244:0 e-compute [170] 32.7% e-compute-no-check [173] 32.0% -------------------------------------------------------------------------- sample-multi-bounded [78] 100.0% [91] 424(0.9%) 224(0.5%) random-ranges ...on-both-ends/src/common.rkt:164:0 cons/c [103] 47.2% -------------------------------------------------------------------------- err-lsts->split-indices [80] 100.0% [92] 406(0.9%) 0(0.0%) loop ...ction-both-ends/src/core/regimes.rkt:314:4 for-loop [101] 100.0% -------------------------------------------------------------------------- sample-multi-bounded [78] 100.0% [93] 206(0.5%) 206(0.5%) for-loop ...etection-both-ends/src/points.rkt:20:4 -------------------------------------------------------------------------- ??? [72] 100.0% [94] 206(0.5%) 0(0.0%) atab-add-altns ...ends/src/core/alt-table.rkt:40:0 atab-add-altn [97] 100.0% -------------------------------------------------------------------------- ...ow-val-first.rkt:486:18 [83] 100.0% [95] 200(0.4%) 0(0.0%) ??? ...ction-both-ends/src/core/alt-table.rkt:49:0 argmin [102] 100.0% -------------------------------------------------------------------------- taylor-alt [84] 100.0% [96] 6742(15.1%) 0(0.0%) for-loop ...ction-both-ends/src/mainloop.rkt:152:6 ??? [156] 100.0% -------------------------------------------------------------------------- atab-add-altns [94] 5.3% for-loop [85] 94.7% [97] 3876(8.7%) 0(0.0%) atab-add-altn ...ends/src/core/alt-table.rkt:194:0 errors [113] 73.5% for-loop [106] 16.0% loop [108] 5.3% override-at-pnts [110] 5.2% -------------------------------------------------------------------------- rewrite-expression-head24 [88] 48.5% matcher [114] 51.5% [98] 1802(4.0%) 0(0.0%) rewriter ...on-both-ends/src/core/matcher.rkt:87:2 for-loop [104] 100.0% -------------------------------------------------------------------------- for-loop [85] 100.0% [99] 800(1.8%) 200(0.4%) loop ...ion-both-ends/src/core/alt-table.rkt:168:2 map [157] 50.0% loop [109] 25.0% -------------------------------------------------------------------------- egraph-run [89] 100.0% [100] 690(1.5%) 0(0.0%) egraph-add-exprs ...gg-herbie-linux/main.rkt:111:0 ??? [105] 100.0% -------------------------------------------------------------------------- loop [92] 100.0% [101] 406(0.9%) 0(0.0%) for-loop ...n-both-ends/src/core/regimes.rkt:279:4 for-loop [107] 100.0% -------------------------------------------------------------------------- ??? [95] 49.8% for-loop [52] 50.2% [102] 402(0.9%) 202(0.5%) argmin ...acket-7.5/collects/racket/list.rkt:765:0 ??? [112] 49.8% -------------------------------------------------------------------------- random-ranges [91] 100.0% [103] 200(0.4%) 0(0.0%) cons/c .../racket/contract/private/guts.rkt:500:15 coerce-contract [111] 100.0% -------------------------------------------------------------------------- rewriter [98] 100.0% [104] 1802(4.0%) 0(0.0%) for-loop ...on-both-ends/src/core/matcher.rkt:89:4 matcher [114] 79.3% for-loop [115] 20.7% -------------------------------------------------------------------------- egraph-add-exprs [100] 100.0% [105] 690(1.5%) 0(0.0%) ??? ...ction-both-ends/src/core/simplify.rkt:102:6 for-loop [116] 68.4% egg-run-rules [118] 31.6% -------------------------------------------------------------------------- atab-add-altn [97] 100.0% [106] 622(1.4%) 622(1.4%) for-loop ...both-ends/src/core/alt-table.rkt:110:2 -------------------------------------------------------------------------- for-loop [101] 100.0% [107] 406(0.9%) 206(0.5%) for-loop ...n-both-ends/src/core/regimes.rkt:283:8 ??? [117] 49.3% -------------------------------------------------------------------------- atab-add-altn [97] 100.0% [108] 206(0.5%) 206(0.5%) loop ...-7.5/collects/racket/private/hash.rkt:20:4 -------------------------------------------------------------------------- loop [99] 12.5% loop [109] 87.5% [109] 200(0.4%) 200(0.4%) loop ...racket-7.5/collects/racket/list.rkt:434:28 loop [109] 87.5% -------------------------------------------------------------------------- atab-add-altn [97] 100.0% [110] 200(0.4%) 0(0.0%) override-at-pnts ...s/src/core/alt-table.rkt:129:0 for-loop [119] 100.0% -------------------------------------------------------------------------- cons/c [103] 100.0% [111] 200(0.4%) 0(0.0%) coerce-contract ...contract/private/guts.rkt:307:0 coerce-contract/f [120] 100.0% -------------------------------------------------------------------------- argmin [102] 100.0% [112] 200(0.4%) 0(0.0%) ??? ...detection-both-ends/src/mainloop.rkt:114:10 errors [113] 100.0% -------------------------------------------------------------------------- ??? [112] 3.0% .../more-scheme.rkt:261:28 [35] 15.1% for-loop [76] 15.7% for-loop [85] 23.9% atab-add-altn [97] 42.4% [113] 6724(15.0%) 0(0.0%) errors ...detection-both-ends/src/points.rkt:203:0 for-loop [121] 82.0% temp85_0 [122] 14.9% eval [124] 3.1% -------------------------------------------------------------------------- for-loop [20] 38.9% for-loop [104] 61.1% [114] 1802(4.0%) 0(0.0%) matcher ...on-both-ends/src/core/matcher.rkt:115:2 ??? [6] 61.1% rewriter [98] 38.9% -------------------------------------------------------------------------- for-loop [104] 100.0% [115] 998(2.2%) 0(0.0%) for-loop ...on-both-ends/src/core/matcher.rkt:96:8 fix-up-variables [123] 100.0% -------------------------------------------------------------------------- ??? [105] 100.0% [116] 472(1.1%) 472(1.1%) for-loop ...-both-ends/src/core/simplify.rkt:121:2 -------------------------------------------------------------------------- for-loop [107] 49.8% loop [61] 50.2% [117] 402(0.9%) 402(0.9%) ??? ...cket-7.5/collects/racket/function.rkt:93:12 -------------------------------------------------------------------------- ??? [105] 100.0% [118] 218(0.5%) 0(0.0%) egg-run-rules ...-ends/src/core/simplify.rkt:108:0 make-ffi-rules [125] 100.0% -------------------------------------------------------------------------- override-at-pnts [110] 100.0% [119] 200(0.4%) 200(0.4%) for-loop ...oth-ends/src/core/alt-table.rkt:130:22 -------------------------------------------------------------------------- coerce-contract [111] 100.0% [120] 200(0.4%) 0(0.0%) coerce-contract/f ...ntract/private/guts.rkt:372:0 coerce-simple-value [126] 100.0% -------------------------------------------------------------------------- errors [113] 100.0% [121] 5516(12.3%) 408(0.9%) for-loop ...tection-both-ends/src/points.rkt:205:2 .../more-scheme.rkt:261:28 [35] 92.6% -------------------------------------------------------------------------- loop [141] 3.8% errors [113] 18.8% eval-const-expr [44] 77.4% [122] 5318(11.9%) 0(0.0%) temp85_0 (unknown source) compile15 [127] 100.0% -------------------------------------------------------------------------- for-loop [115] 100.0% [123] 998(2.2%) 0(0.0%) fix-up-variables ...nds/src/core/matcher.rkt:108:2 pattern-match [185] 59.9% for-loop [131] 20.0% pattern-substitute [130] 20.0% -------------------------------------------------------------------------- eval-const-expr [44] 49.5% errors [113] 50.5% [124] 408(0.9%) 202(0.5%) eval (unknown source) namespace-syntax-introduce3 [129] 50.5% -------------------------------------------------------------------------- egg-run-rules [118] 100.0% [125] 218(0.5%) 0(0.0%) make-ffi-rules ...s/egg-herbie-linux/main.rkt:28:0 for-loop [128] 100.0% -------------------------------------------------------------------------- coerce-contract/f [120] 100.0% [126] 200(0.4%) 200(0.4%) coerce-simple-value ...ract/private/guts.rkt:385:0 -------------------------------------------------------------------------- temp85_0 [122] 100.0% [127] 5318(11.9%) 0(0.0%) compile15 (unknown source) temp91_0 [132] 100.0% -------------------------------------------------------------------------- make-ffi-rules [125] 100.0% [128] 218(0.5%) 0(0.0%) for-loop ....5/pkgs/egg-herbie-linux/main.rkt:29:2 to-egg-pattern [133] 100.0% -------------------------------------------------------------------------- eval [124] 100.0% [129] 206(0.5%) 0(0.0%) namespace-syntax-introduce3 (unknown source) add-ns-scopes [134] 100.0% -------------------------------------------------------------------------- fix-up-variables [123] 33.3% pattern-substitute [130] 66.7% [130] 200(0.4%) 0(0.0%) pattern-substitute ...ds/src/core/matcher.rkt:45:0 pattern-substitute [130] 66.7% constant? [194] 33.3% -------------------------------------------------------------------------- fix-up-variables [123] 100.0% [131] 200(0.4%) 0(0.0%) for-loop ...on-both-ends/src/core/matcher.rkt:41:9 for-loop [195] 100.0% -------------------------------------------------------------------------- compile15 [127] 100.0% [132] 5318(11.9%) 0(0.0%) temp91_0 (unknown source) temp118_0 [135] 96.1% compile-top9 [137] 3.9% -------------------------------------------------------------------------- for-loop [128] 100.0% [133] 218(0.5%) 0(0.0%) to-egg-pattern ...ie-linux/to-egg-pattern.rkt:17:0 string-join9 [136] 100.0% -------------------------------------------------------------------------- namespace-syntax-introduce3 [129] 100.0% [134] 206(0.5%) 206(0.5%) add-ns-scopes (unknown source) -------------------------------------------------------------------------- temp91_0 [132] 100.0% [135] 5112(11.4%) 0(0.0%) temp118_0 (unknown source) expand-capturing-lifts [138] 100.0% -------------------------------------------------------------------------- to-egg-pattern [133] 100.0% [136] 218(0.5%) 218(0.5%) string-join9 ....5/collects/racket/string.rkt:29:0 -------------------------------------------------------------------------- temp91_0 [132] 100.0% [137] 206(0.5%) 0(0.0%) compile-top9 (unknown source) compile-forms33 [139] 100.0% -------------------------------------------------------------------------- temp118_0 [135] 100.0% [138] 5112(11.4%) 0(0.0%) expand-capturing-lifts (unknown source) lambda-clause-expander [140] 100.0% -------------------------------------------------------------------------- compile-top9 [137] 100.0% [139] 206(0.5%) 0(0.0%) compile-forms33 (unknown source) for-loop [144] 100.0% -------------------------------------------------------------------------- expand-capturing-lifts [138] 100.0% [140] 5112(11.4%) 0(0.0%) lambda-clause-expander (unknown source) finish-bodys [142] 91.7% loop [141] 8.3% -------------------------------------------------------------------------- .../more-scheme.rkt:261:28 [35] 1.3% for-loop [144] 2.0% lambda-clause-expander [140] 3.2% ??? [13] 4.0% syntax->list [55] 4.0% apply-transformer52 [19] 7.2% for-loop [52] 19.4% loop [141] 26.8% syntax-e/no-taint [17] 32.2% [141] 5046(11.3%) 400(0.9%) loop (unknown source) gf [145] 32.2% loop [141] 26.8% ??? [171] 14.6% syntax-e [4] 9.0% ??? [181] 4.0% dispatch-transformer41 [8] 3.2% hash-ref! [143] 2.6% core-form-sym [146] 2.2% expand-id-application-form17 [147] 2.0% temp85_0 [122] 1.3% -------------------------------------------------------------------------- lambda-clause-expander [140] 24.3% for-loop [144] 75.7% [142] 4690(10.5%) 0(0.0%) finish-bodys (unknown source) for-loop [144] 100.0% -------------------------------------------------------------------------- eval-prog [54] 0.4% loop [141] 0.8% ??? [158] 1.6% for-loop [21] 1.7% for-loop [30] 2.5% map [157] 2.5% for-loop [38] 2.9% first-nonzero-exp [41] 4.1% for-loop [18] 5.9% localize-error [79] 6.9% ??? [149] 8.5% loop [37] 11.1% for-loop [16] 14.8% loop [15] 15.3% ??? [156] 20.0% [143] 6552(14.6%) 0(0.0%) hash-ref! .../racket/private/more-scheme.rkt:376:2 ??? [3] 18.5% ??? [148] 15.3% parse-loop74 [36] 12.7% taylor [27] 10.8% parse-loop15 [151] 9.4% ??? [149] 9.2% ??? [5] 6.9% f40 [28] 6.0% ??? [7] 4.1% ??? [9] 2.9% simplify-node [155] 1.5% ??? [13] 1.1% f61 [163] 0.5% -------------------------------------------------------------------------- fallback-loop [31] 1.3% compile-forms33 [139] 4.2% for-loop [144] 23.1% finish-bodys [142] 71.4% [144] 4896(10.9%) 1474(3.3%) for-loop (unknown source) finish-bodys [142] 55.5% for-loop [144] 23.1% dispatch-transformer41 [8] 6.3% compile-module-linklet57 [153] 4.2% syntax-e [4] 3.3% expand-identifier [10] 1.8% expand-implicit [11] 0.9% dispatch-variable [154] 0.3% loop [141] 0.2% -------------------------------------------------------------------------- loop [141] 100.0% [145] 2412(5.4%) 800(1.8%) gf (unknown source) propagation-apply [150] 50.2% propagation-apply-shifted [152] 16.7% -------------------------------------------------------------------------- loop [141] 100.0% [146] 222(0.5%) 0(0.0%) core-form-sym (unknown source) resolve+shift28 [23] 100.0% -------------------------------------------------------------------------- loop [141] 100.0% [147] 200(0.4%) 0(0.0%) expand-id-application-form17 (unknown source) syntax-e/no-taint [17] 100.0% -------------------------------------------------------------------------- hash-ref! [143] 100.0% [148] 3924(8.8%) 0(0.0%) ??? ...tection-both-ends/src/core/taylor.rkt:67:15 ??? [156] 100.0% -------------------------------------------------------------------------- hash-ref! [143] 100.0% [149] 3074(6.9%) 0(0.0%) ??? ...tection-both-ends/src/core/taylor.rkt:44:15 hash-ref! [143] 93.3% ??? [158] 6.7% -------------------------------------------------------------------------- gf [145] 100.0% [150] 1210(2.7%) 1210(2.7%) propagation-apply (unknown source) -------------------------------------------------------------------------- hash-ref! [143] 100.0% [151] 616(1.4%) 0(0.0%) parse-loop15 (unknown source) map [157] 100.0% -------------------------------------------------------------------------- gf [145] 100.0% [152] 402(0.9%) 402(0.9%) propagation-apply-shifted (unknown source) -------------------------------------------------------------------------- for-loop [144] 100.0% [153] 206(0.5%) 206(0.5%) compile-module-linklet57 (unknown source) -------------------------------------------------------------------------- for-loop [144] 100.0% [154] 200(0.4%) 0(0.0%) dispatch-variable (unknown source) substitute-variable6 [159] 100.0% -------------------------------------------------------------------------- hash-ref! [143] 100.0% [155] 200(0.4%) 0(0.0%) simplify-node ...oth-ends/src/core/reduce.rkt:46:0 constant? [194] 100.0% -------------------------------------------------------------------------- .../more-scheme.rkt:261:28 [35] 1.0% for-loop [81] 1.0% loop [15] 1.8% ??? [148] 5.9% real->precision [75] 6.5% location-do [161] 11.4% for-loop [96] 11.4% loop [61] 60.9% [156] 22032(49.3%) 852(1.9%) ??? ...tract/private/arrow-higher-order.rkt:375:33 ival-pow [160] 60.0% location-do [161] 11.4% approximate9 [2] 10.5% hash-ref! [143] 7.8% bf [164] 4.6% f40 [28] 0.9% ??? [165] 0.9% -------------------------------------------------------------------------- f61 [163] 4.1% loop [99] 8.2% for-loop [52] 12.5% parse-loop15 [151] 12.7% taylor [27] 17.0% f40 [28] 45.5% [157] 4864(10.9%) 0(0.0%) map ...t-7.5/collects/racket/private/map.rkt:35:13 loop [162] 25.0% taylor [27] 17.0% f40 [28] 13.6% parse-loop74 [36] 13.4% f61 [163] 11.5% make-multiplication-node [166] 4.9% loop [168] 4.1% ??? [169] 4.1% hash-ref! [143] 3.4% simplify* [167] 2.1% -------------------------------------------------------------------------- ??? [149] 33.9% for-loop [18] 66.1% [158] 608(1.4%) 0(0.0%) ??? ...ection-both-ends/src/core/taylor.rkt:293:19 hash-ref! [143] 100.0% -------------------------------------------------------------------------- dispatch-variable [154] 100.0% [159] 200(0.4%) 200(0.4%) substitute-variable6 (unknown source) -------------------------------------------------------------------------- ??? [156] 100.0% [160] 13222(29.6%) 7592(17.0%) ival-pow ...on-both-ends/src/biginterval.rkt:419:0 e-compute [170] 30.1% bfeven? [174] 3.2% bfodd? [175] 3.2% ormap [172] 3.1% e-compute-no-check [173] 3.1% -------------------------------------------------------------------------- location-do [161] 44.9% ??? [156] 55.1% [161] 6742(15.1%) 0(0.0%) location-do ...ion-both-ends/src/programs.rkt:63:0 ??? [156] 55.1% location-do [161] 44.9% -------------------------------------------------------------------------- map [157] 44.1% loop [162] 55.9% [162] 1218(2.7%) 210(0.5%) loop ...-7.5/collects/racket/private/map.rkt:40:19 loop [162] 55.9% ??? [171] 33.2% ??? [177] 9.2% -------------------------------------------------------------------------- parse-loop74 [36] 16.4% hash-ref! [143] 17.1% map [157] 66.4% [163] 1216(2.7%) 0(0.0%) f61 (unknown source) eval-const-expr [44] 66.6% composed [178] 16.9% map [157] 16.4% -------------------------------------------------------------------------- ??? [156] 100.0% [164] 1014(2.3%) 0(0.0%) bf ...ath-lib/math/private/bigfloat/mpfr.rkt:615:2 ??? [192] 60.4% new-mpfr [193] 39.6% -------------------------------------------------------------------------- *bit-width* [47] 32.9% ??? [156] 33.2% .../more-scheme.rkt:261:28 [35] 33.9% [165] 608(1.4%) 608(1.4%) ??? ...ects/racket/contract/private/guts.rkt:770:8 -------------------------------------------------------------------------- map [157] 100.0% [166] 400(0.9%) 0(0.0%) make-multiplication-node .../core/reduce.rkt:232:0 make-multiplication-subnode [176] 100.0% -------------------------------------------------------------------------- map [157] 100.0% [167] 202(0.5%) 202(0.5%) simplify* ...on-both-ends/src/core/reduce.rkt:29:0 -------------------------------------------------------------------------- map [157] 2.3% loop [168] 97.7% [168] 200(0.4%) 0(0.0%) loop ...-7.5/collects/racket/private/map.rkt:54:19 loop [168] 97.7% ??? [179] 2.3% -------------------------------------------------------------------------- map [157] 100.0% [169] 198(0.4%) 0(0.0%) ??? ...etection-both-ends/src/core/reduce.rkt:57:5 for-loop [180] 100.0% -------------------------------------------------------------------------- ival-sub [90] 3.4% ival-div [87] 13.7% ival-add [86] 17.0% ival-pow [160] 66.0% [170] 6028(13.5%) 4602(10.3%) e-compute ...n-both-ends/src/biginterval.rkt:172:0 bfexpt [182] 23.7% -------------------------------------------------------------------------- loop [162] 25.1% loop [141] 74.9% [171] 2418(5.4%) 1002(2.2%) ??? ...w-detection-both-ends/src/points.rkt:192:26 ??? [181] 58.6% -------------------------------------------------------------------------- ival-pow [160] 25.0% ival-add [86] 25.9% ival-div [87] 49.1% [172] 1638(3.7%) 200(0.4%) ormap ....5/collects/racket/private/map.rkt:141:13 strong-immovable-endpoint-0? [183] 61.9% strong-immovable-endpoint? [184] 25.9% -------------------------------------------------------------------------- ival-sub [90] 32.8% ival-pow [160] 67.2% [173] 604(1.4%) 0(0.0%) e-compute-no-check ...ds/src/biginterval.rkt:165:0 bfexpt [182] 100.0% -------------------------------------------------------------------------- ival-pow [160] 100.0% [174] 420(0.9%) 204(0.5%) bfeven? ...ib/math/private/bigfloat/mpfr.rkt:814:0 ??? [192] 51.4% -------------------------------------------------------------------------- ival-pow [160] 100.0% [175] 418(0.9%) 0(0.0%) bfodd? ...lib/math/private/bigfloat/mpfr.rkt:817:0 size+limbs->integer [186] 100.0% -------------------------------------------------------------------------- make-multiplication-node [166] 100.0% [176] 400(0.9%) 0(0.0%) make-multiplication-subnode ...re/reduce.rkt:242:0 group-by61 [187] 100.0% -------------------------------------------------------------------------- loop [162] 100.0% [177] 400(0.9%) 0(0.0%) ??? ...ion-both-ends/src/core/alt-table.rkt:185:12 loop [188] 100.0% -------------------------------------------------------------------------- f61 [163] 100.0% [178] 206(0.5%) 0(0.0%) composed ...ollects/racket/private/list.rkt:321:16 free-variables [189] 100.0% -------------------------------------------------------------------------- loop [168] 100.0% [179] 200(0.4%) 0(0.0%) ??? ...ction-both-ends/src/core/localize.rkt:50:36 ulp-difference [190] 100.0% -------------------------------------------------------------------------- ??? [169] 100.0% [180] 198(0.4%) 0(0.0%) for-loop ...ion-both-ends/src/core/reduce.rkt:58:7 pattern-match [185] 100.0% -------------------------------------------------------------------------- loop [141] 4.5% ??? [171] 31.5% .../more-scheme.rkt:261:28 [35] 64.0% [181] 4498(10.1%) 2214(4.9%) ??? ...tion-both-ends/src/syntax/syntax.rkt:214:17 return/no-unsupplied [191] 50.8% -------------------------------------------------------------------------- e-compute-no-check [173] 29.8% e-compute [170] 70.2% [182] 2030(4.5%) 198(0.4%) bfexpt ...lib/math/private/bigfloat/mpfr.rkt:835:4 ??? [192] 60.4% new-mpfr [193] 29.9% -------------------------------------------------------------------------- ival-div [87] 16.5% ormap [172] 83.5% [183] 1214(2.7%) 1214(2.7%) strong-immovable-endpoint-0? ...interval.rkt:133:0 -------------------------------------------------------------------------- ival-add [86] 49.9% ormap [172] 50.1% [184] 846(1.9%) 846(1.9%) strong-immovable-endpoint? ...iginterval.rkt:123:0 -------------------------------------------------------------------------- for-loop [180] 24.9% fix-up-variables [123] 75.1% [185] 796(1.8%) 0(0.0%) pattern-match ...th-ends/src/core/matcher.rkt:29:0 for-loop [195] 75.1% constant? [194] 24.9% -------------------------------------------------------------------------- bfodd? [175] 100.0% [186] 418(0.9%) 418(0.9%) size+limbs->integer ...vate/bigfloat/gmp.rkt:103:0 -------------------------------------------------------------------------- make-multiplication-subnode [176] 100.0% [187] 400(0.9%) 400(0.9%) group-by61 ...t-7.5/collects/racket/list.rkt:771:0 -------------------------------------------------------------------------- loop [188] 50.0% ??? [177] 50.0% [188] 400(0.9%) 400(0.9%) loop ...7.5/collects/racket/private/list.rkt:82:16 loop [188] 50.0% -------------------------------------------------------------------------- append-map [196] 50.0% composed [178] 50.0% [189] 206(0.5%) 0(0.0%) free-variables ...-both-ends/src/programs.rkt:56:0 append-map [196] 50.0% constant? [194] 50.0% -------------------------------------------------------------------------- ??? [179] 100.0% [190] 200(0.4%) 200(0.4%) ulp-difference ...ion-both-ends/src/float.rkt:19:0 -------------------------------------------------------------------------- ??? [181] 100.0% [191] 2284(5.1%) 1004(2.2%) return/no-unsupplied ...ct/private/arr-i.rkt:566:0 filter [198] 56.0% -------------------------------------------------------------------------- bfeven? [174] 9.5% loop [61] 9.6% bf [164] 26.9% bfexpt [182] 54.0% [192] 2272(5.1%) 2272(5.1%) ??? /opt/racket-7.5/collects/ffi/unsafe.rkt:938:4 -------------------------------------------------------------------------- bf [164] 39.9% bfexpt [182] 60.1% [193] 1008(2.3%) 1008(2.3%) new-mpfr ...b/math/private/bigfloat/mpfr.rkt:348:0 -------------------------------------------------------------------------- pattern-match [185] 24.6% pattern-substitute [130] 24.9% simplify-node [155] 24.9% free-variables [189] 25.6% [194] 804(1.8%) 0(0.0%) constant? ...both-ends/src/syntax/syntax.rkt:726:0 value? [199] 100.0% -------------------------------------------------------------------------- for-loop [131] 25.1% pattern-match [185] 74.9% [195] 798(1.8%) 200(0.4%) for-loop ...on-both-ends/src/core/matcher.rkt:26:9 core457 [197] 74.9% -------------------------------------------------------------------------- free-variables [189] 100.0% [196] 206(0.5%) 0(0.0%) append-map ...t-7.5/collects/racket/list.rkt:586:2 free-variables [189] 100.0% -------------------------------------------------------------------------- for-loop [195] 42.7% ??? [39] 57.3% [197] 1402(3.1%) 202(0.5%) core457 ...acket/contract/private/arr-i.rkt:976:19 or/c [200] 28.5% build-unary-very-simple--> [201] 14.4% ??? [202] 14.3% un-dep/maybe-chaperone [203] 14.3% arrow-higher-order:lnp [204] 14.1% -------------------------------------------------------------------------- return/no-unsupplied [191] 100.0% [198] 1280(2.9%) 1280(2.9%) filter ...5/collects/racket/private/list.rkt:256:2 -------------------------------------------------------------------------- constant? [194] 100.0% [199] 804(1.8%) 804(1.8%) value? ...tion-both-ends/src/syntax/types.rkt:18:0 -------------------------------------------------------------------------- core457 [197] 100.0% [200] 400(0.9%) 200(0.4%) or/c ...lects/racket/contract/private/orc.rkt:16:2 flat-contract? [205] 50.0% -------------------------------------------------------------------------- core457 [197] 100.0% [201] 202(0.5%) 202(0.5%) build-unary-very-simple--> ...val-first.rkt:1150:0 -------------------------------------------------------------------------- core457 [197] 100.0% [202] 200(0.4%) 0(0.0%) ??? ...s/racket/contract/private/arr-i.rkt:1288:27 build-nullary-very-simple--> [206]100.0% -------------------------------------------------------------------------- core457 [197] 100.0% [203] 200(0.4%) 0(0.0%) un-dep/maybe-chaperone ...private/arr-i.rkt:1137:2 ??? [207] 100.0% -------------------------------------------------------------------------- core457 [197] 100.0% [204] 198(0.4%) 0(0.0%) arrow-higher-order:lnp ...w-higher-order.rkt:673:7 ??? [208] 100.0% -------------------------------------------------------------------------- or/c [200] 100.0% [205] 200(0.4%) 200(0.4%) flat-contract? .../contract/private/guts.rkt:129:0 -------------------------------------------------------------------------- ??? [202] 100.0% [206] 200(0.4%) 200(0.4%) build-nullary-very-simple--> ...l-first.rkt:1131:0 -------------------------------------------------------------------------- un-dep/maybe-chaperone [203] 100.0% [207] 200(0.4%) 200(0.4%) ??? ...llects/racket/contract/private/orc.rkt:88:2 -------------------------------------------------------------------------- arrow-higher-order:lnp [204] 100.0% [208] 198(0.4%) 198(0.4%) ??? ...et/contract/private/arity-checking.rkt:19:2 --------------------------------------------------------------------------