Profiling results ----------------- Total cpu time observed: 7330ms (out of 7368ms) Number of samples taken: 35 (once every 209ms) ===================================================================== Caller Idx Total Self Name+src Local% ms(pct) ms(pct) Callee ===================================================================== [1] 7330(100.0%) 0(0.0%) ??? ...lects/racket/private/more-scheme.rkt:261:28 profile-thunk16 [7] 100.0% --------------------------------------------------------------------- ??? [90] 100.0% [2] 1074(14.7%) 0(0.0%) approximate9 ...better-rr/src/core/taylor.rkt:11:0 loop [9] 60.0% for-loop [10] 40.0% --------------------------------------------------------------------- for-loop [105] 36.2% loop [80] 63.8% [3] 652(8.9%) 0(0.0%) expand-id-application-form17 (unknown source) resolve+shift28 [8] 69.0% syntax-e/no-taint [11] 31.0% --------------------------------------------------------------------- hash-ref! [67] 100.0% [4] 388(5.3%) 0(0.0%) ??? ...herbie/better-rr/src/core/taylor.rkt:300:23 for-loop [12] 100.0% --------------------------------------------------------------------- for-loop [105] 100.0% [5] 222(3.0%) 0(0.0%) syntax-e (unknown source) syntax-e/no-taint [11] 100.0% --------------------------------------------------------------------- for-loop [105] 100.0% [6] 204(2.8%) 0(0.0%) expand-identifier (unknown source) resolve+shift28 [8] 100.0% --------------------------------------------------------------------- ??? [1] 100.0% [7] 7330(100.0%) 0(0.0%) profile-thunk16 ...e/pkgs/profile-lib/main.rkt:9:0 run [13] 100.0% --------------------------------------------------------------------- expand-identifier [6] 31.2% expand-id-application-form17 [3] 68.8% [8] 654(8.9%) 236(3.2%) resolve+shift28 (unknown source) fallback-loop [14] 63.9% --------------------------------------------------------------------- approximate9 [2] 100.0% [9] 644(8.8%) 0(0.0%) loop .../herbie/better-rr/src/core/taylor.rkt:86:4 hash-ref! [67] 100.0% --------------------------------------------------------------------- approximate9 [2] 100.0% [10] 430(5.9%) 0(0.0%) for-loop ...ie/better-rr/src/core/taylor.rkt:29:18 taylor [86] 100.0% --------------------------------------------------------------------- expand-id-application-form17 [3] 47.6% syntax-e [5] 52.4% [11] 424(5.8%) 0(0.0%) syntax-e/no-taint (unknown source) loop [80] 100.0% --------------------------------------------------------------------- ??? [4] 100.0% [12] 388(5.3%) 0(0.0%) for-loop ...e/better-rr/src/core/taylor.rkt:303:27 hash-ref! [67] 100.0% --------------------------------------------------------------------- profile-thunk16 [7] 100.0% [13] 7330(100.0%) 0(0.0%) run ...et-7.5/share/pkgs/profile-lib/main.rkt:39:2 .../more-scheme.rkt:261:28 [15] 100.0% --------------------------------------------------------------------- resolve+shift28 [8] 100.0% [14] 418(5.7%) 214(2.9%) fallback-loop (unknown source) for-loop [105] 48.8% --------------------------------------------------------------------- for-loop [61] 1.4% for-loop [64] 2.9% run [13] 95.8% [15] 7330(100.0%) 204(2.8%) .../more-scheme.rkt:261:28 (unknown source) run-improve47 [16] 60.4% prepare-points-intervals [17] 20.0% oracle-error [18] 8.2% get-final-combination [19] 3.0% baseline-error [21] 2.7% ??? [20] 1.5% errors [52] 1.4% ??? [94] 1.4% --------------------------------------------------------------------- .../more-scheme.rkt:261:28 [15] 100.0% [16] 4634(63.2%) 0(0.0%) run-improve47 .../better-rr/src/mainloop.rkt:364:0 for-loop [22] 100.0% --------------------------------------------------------------------- .../more-scheme.rkt:261:28 [15] 100.0% [17] 1466(20.0%) 0(0.0%) prepare-points-intervals ...r/src/points.rkt:122:0 loop [23] 100.0% --------------------------------------------------------------------- .../more-scheme.rkt:261:28 [15] 100.0% [18] 604(8.2%) 0(0.0%) oracle-error ...bie/better-rr/src/points.rkt:179:0 for-loop [24] 100.0% --------------------------------------------------------------------- .../more-scheme.rkt:261:28 [15] 100.0% [19] 222(3.0%) 0(0.0%) get-final-combination ...rr/src/mainloop.rkt:389:0 infer-splitpoints [25] 100.0% --------------------------------------------------------------------- .../more-scheme.rkt:261:28 [15] 100.0% [20] 218(3.0%) 218(3.0%) ??? ...cket-7.5/collects/racket/function.rkt:93:12 --------------------------------------------------------------------- .../more-scheme.rkt:261:28 [15] 100.0% [21] 200(2.7%) 0(0.0%) baseline-error ...e/better-rr/src/points.rkt:183:0 argmin [26] 100.0% --------------------------------------------------------------------- run-improve47 [16] 100.0% [22] 4634(63.2%) 0(0.0%) for-loop ...erbie/better-rr/src/mainloop.rkt:383:4 run-iter! [27] 100.0% --------------------------------------------------------------------- prepare-points-intervals [17] 100.0% [23] 1466(20.0%) 0(0.0%) loop ...lies/herbie/better-rr/src/points.rkt:134:4 ??? [28] 58.8% loop [29] 41.2% --------------------------------------------------------------------- oracle-error [18] 100.0% [24] 604(8.2%) 0(0.0%) for-loop .../herbie/better-rr/src/points.rkt:180:2 map [78] 66.2% loop [80] 33.8% --------------------------------------------------------------------- get-final-combination [19] 100.0% [25] 222(3.0%) 0(0.0%) infer-splitpoints ...-rr/src/core/regimes.rkt:33:0 for-loop [30] 100.0% --------------------------------------------------------------------- baseline-error [21] 100.0% [26] 200(2.7%) 0(0.0%) argmin ...acket-7.5/collects/racket/list.rkt:765:0 ??? [31] 100.0% --------------------------------------------------------------------- for-loop [22] 100.0% [27] 4634(63.2%) 0(0.0%) run-iter! ...rbie/better-rr/src/mainloop.rkt:345:0 finalize-iter! [32] 40.7% gen-series! [33] 23.2% simplify! [34] 18.5% gen-rewrites! [36] 8.8% localize! [37] 8.8% --------------------------------------------------------------------- loop [23] 100.0% [28] 862(11.8%) 200(2.7%) ??? ...tlies/herbie/better-rr/src/points.rkt:115:6 sample-multi-bounded [35] 76.8% --------------------------------------------------------------------- loop [23] 100.0% [29] 604(8.2%) 0(0.0%) loop ...tlies/herbie/better-rr/src/points.rkt:79:2 ??? [90] 66.9% ??? [40] 33.1% --------------------------------------------------------------------- infer-splitpoints [25] 100.0% [30] 222(3.0%) 0(0.0%) for-loop ...ie/better-rr/src/core/regimes.rkt:45:6 option-on-expr [38] 100.0% --------------------------------------------------------------------- argmin [26] 100.0% [31] 200(2.7%) 0(0.0%) ??? ...lies/herbie/better-rr/src/points.rkt:184:27 eval-errors [39] 100.0% --------------------------------------------------------------------- run-iter! [27] 100.0% [32] 1888(25.8%) 0(0.0%) finalize-iter! ...better-rr/src/mainloop.rkt:277:0 ??? [40] 100.0% --------------------------------------------------------------------- run-iter! [27] 100.0% [33] 1074(14.7%) 0(0.0%) gen-series! ...ie/better-rr/src/mainloop.rkt:159:0 for-loop [41] 100.0% --------------------------------------------------------------------- run-iter! [27] 100.0% [34] 858(11.7%) 0(0.0%) simplify! ...rbie/better-rr/src/mainloop.rkt:223:0 ??? [42] 100.0% --------------------------------------------------------------------- ??? [28] 100.0% [35] 662(9.0%) 0(0.0%) sample-multi-bounded ...ter-rr/src/points.rkt:14:0 random-ranges [43] 64.0% for-loop [46] 36.0% --------------------------------------------------------------------- run-iter! [27] 100.0% [36] 408(5.6%) 0(0.0%) gen-rewrites! .../better-rr/src/mainloop.rkt:182:0 for-loop [44] 100.0% --------------------------------------------------------------------- run-iter! [27] 100.0% [37] 406(5.5%) 0(0.0%) localize! ...rbie/better-rr/src/mainloop.rkt:126:0 localize-error [45] 100.0% --------------------------------------------------------------------- for-loop [30] 100.0% [38] 222(3.0%) 0(0.0%) option-on-expr ...er-rr/src/core/regimes.rkt:124:0 for-loop [47] 100.0% --------------------------------------------------------------------- ??? [31] 100.0% [39] 200(2.7%) 0(0.0%) eval-errors ...rbie/better-rr/src/points.rkt:170:0 for-loop [48] 100.0% --------------------------------------------------------------------- loop [29] 9.6% finalize-iter! [32] 90.4% [40] 2088(28.5%) 200(2.7%) ??? ...contract/private/arrow-val-first.rkt:486:18 atab-add-altns [49] 70.8% for-loop [54] 19.6% --------------------------------------------------------------------- gen-series! [33] 100.0% [41] 1074(14.7%) 0(0.0%) for-loop ...erbie/better-rr/src/mainloop.rkt:166:7 taylor-alt [50] 100.0% --------------------------------------------------------------------- simplify! [34] 100.0% [42] 858(11.7%) 0(0.0%) ??? ...herbie/better-rr/src/core/simplify.rkt:42:0 egraph-run [51] 100.0% --------------------------------------------------------------------- sample-multi-bounded [35] 100.0% [43] 424(5.8%) 0(0.0%) random-ranges ...ie/better-rr/src/common.rkt:164:0 build--> [53] 100.0% --------------------------------------------------------------------- gen-rewrites! [36] 100.0% [44] 408(5.6%) 0(0.0%) for-loop ...rbie/better-rr/src/mainloop.rkt:190:11 rewrite-expression-head23 [55] 100.0% --------------------------------------------------------------------- localize! [37] 100.0% [45] 406(5.5%) 0(0.0%) localize-error ...er-rr/src/core/localize.rkt:57:0 hash-ref! [67] 100.0% --------------------------------------------------------------------- sample-multi-bounded [35] 100.0% [46] 238(3.2%) 238(3.2%) for-loop ...s/herbie/better-rr/src/points.rkt:20:4 --------------------------------------------------------------------- option-on-expr [38] 100.0% [47] 222(3.0%) 0(0.0%) for-loop ...e/better-rr/src/core/regimes.rkt:135:4 errors [52] 100.0% --------------------------------------------------------------------- eval-errors [39] 100.0% [48] 200(2.7%) 200(2.7%) for-loop .../herbie/better-rr/src/points.rkt:172:2 --------------------------------------------------------------------- ??? [40] 100.0% [49] 1478(20.2%) 0(0.0%) atab-add-altns ...-rr/src/core/alt-table.rkt:185:0 batch-errors [56] 86.2% loop [59] 13.8% --------------------------------------------------------------------- for-loop [41] 100.0% [50] 1074(14.7%) 0(0.0%) taylor-alt ...bie/better-rr/src/mainloop.rkt:145:0 for-loop [57] 100.0% --------------------------------------------------------------------- ??? [42] 100.0% [51] 858(11.7%) 0(0.0%) egraph-run .../pkgs/egg-herbie-linux/main.rkt:49:0 egraph-add-exprs [58] 100.0% --------------------------------------------------------------------- .../more-scheme.rkt:261:28 [15] 47.9% for-loop [47] 52.1% [52] 426(5.8%) 0(0.0%) errors ...es/herbie/better-rr/src/points.rkt:192:0 temp85_0 [62] 52.1% for-loop [61] 47.9% --------------------------------------------------------------------- random-ranges [43] 100.0% [53] 424(5.8%) 424(5.8%) build--> ...act/private/arrow-val-first.rkt:1214:0 --------------------------------------------------------------------- ??? [40] 100.0% [54] 410(5.6%) 0(0.0%) for-loop ...better-rr/src/core/alt-table.rkt:198:4 loop [59] 100.0% --------------------------------------------------------------------- for-loop [44] 100.0% [55] 408(5.6%) 0(0.0%) rewrite-expression-head23 ...core/matcher.rkt:83:0 rewriter [60] 100.0% --------------------------------------------------------------------- atab-add-altns [49] 100.0% [56] 1274(17.4%) 0(0.0%) batch-errors ...bie/better-rr/src/points.rkt:198:0 temp85_0 [62] 67.2% for-loop [64] 32.8% --------------------------------------------------------------------- taylor-alt [50] 100.0% [57] 1074(14.7%) 0(0.0%) for-loop ...erbie/better-rr/src/mainloop.rkt:151:6 ??? [90] 100.0% --------------------------------------------------------------------- egraph-run [51] 100.0% [58] 858(11.7%) 0(0.0%) egraph-add-exprs ...gg-herbie-linux/main.rkt:111:0 ??? [63] 100.0% --------------------------------------------------------------------- atab-add-altns [49] 33.2% for-loop [54] 66.8% [59] 614(8.4%) 0(0.0%) loop ...bie/better-rr/src/core/alt-table.rkt:159:2 map [78] 65.8% loop [66] 34.2% --------------------------------------------------------------------- rewrite-expression-head23 [55] 100.0% [60] 408(5.6%) 0(0.0%) rewriter ...ie/better-rr/src/core/matcher.rkt:85:2 for-loop [65] 100.0% --------------------------------------------------------------------- errors [52] 100.0% [61] 204(2.8%) 0(0.0%) for-loop .../herbie/better-rr/src/points.rkt:194:2 .../more-scheme.rkt:261:28 [15] 100.0% --------------------------------------------------------------------- errors [52] 20.6% batch-errors [56] 79.4% [62] 1078(14.7%) 0(0.0%) temp85_0 (unknown source) compile15 [68] 100.0% --------------------------------------------------------------------- egraph-add-exprs [58] 100.0% [63] 858(11.7%) 0(0.0%) ??? ...erbie/better-rr/src/core/simplify.rkt:103:6 for-loop [69] 76.9% egg-run-rules [70] 23.1% --------------------------------------------------------------------- batch-errors [56] 100.0% [64] 418(5.7%) 0(0.0%) for-loop .../herbie/better-rr/src/points.rkt:200:2 .../more-scheme.rkt:261:28 [15] 100.0% --------------------------------------------------------------------- rewriter [60] 100.0% [65] 408(5.6%) 0(0.0%) for-loop ...ie/better-rr/src/core/matcher.rkt:87:4 hash-ref! [67] 100.0% --------------------------------------------------------------------- loop [59] 100.0% [66] 210(2.9%) 210(2.9%) loop ...rbie/better-rr/src/core/alt-table.rkt:83:2 --------------------------------------------------------------------- for-loop [12] 6.7% map [78] 10.4% ??? [72] 12.5% ??? [90] 12.5% loop [9] 12.5% localize-error [45] 17.5% for-loop [65] 28.0% [67] 1458(19.9%) 0(0.0%) hash-ref! .../racket/private/more-scheme.rkt:376:2 matcher [75] 28.0% parse-loop15 [76] 24.4% ??? [73] 12.5% ??? [72] 12.5% ??? [74] 9.1% ??? [4] 6.7% ??? [77] 3.5% parse-loop74 [100] 3.4% --------------------------------------------------------------------- temp85_0 [62] 100.0% [68] 1078(14.7%) 0(0.0%) compile15 (unknown source) temp91_0 [71] 100.0% --------------------------------------------------------------------- ??? [63] 100.0% [69] 660(9.0%) 660(9.0%) for-loop .../better-rr/src/core/simplify.rkt:121:2 --------------------------------------------------------------------- ??? [63] 100.0% [70] 198(2.7%) 198(2.7%) egg-run-rules ...er-rr/src/core/simplify.rkt:109:0 --------------------------------------------------------------------- compile15 [68] 100.0% [71] 1078(14.7%) 0(0.0%) temp91_0 (unknown source) temp118_0 [79] 100.0% --------------------------------------------------------------------- hash-ref! [67] 100.0% [72] 644(8.8%) 0(0.0%) ??? .../herbie/better-rr/src/core/taylor.rkt:44:15 hash-ref! [67] 100.0% --------------------------------------------------------------------- hash-ref! [67] 100.0% [73] 644(8.8%) 0(0.0%) ??? .../herbie/better-rr/src/core/taylor.rkt:67:15 ??? [90] 100.0% --------------------------------------------------------------------- hash-ref! [67] 100.0% [74] 448(6.1%) 0(0.0%) ??? ...herbie/better-rr/src/core/taylor.rkt:290:26 for-loop [81] 100.0% --------------------------------------------------------------------- hash-ref! [67] 100.0% [75] 408(5.6%) 0(0.0%) matcher ...ie/better-rr/src/core/matcher.rkt:117:2 ??? [82] 100.0% --------------------------------------------------------------------- hash-ref! [67] 100.0% [76] 406(5.5%) 0(0.0%) parse-loop15 (unknown source) map [78] 100.0% --------------------------------------------------------------------- hash-ref! [67] 100.0% [77] 202(2.8%) 0(0.0%) ??? ...erbie/better-rr/src/core/localize.rkt:16:13 loop [80] 100.0% --------------------------------------------------------------------- taylor [86] 15.5% for-loop [24] 27.9% loop [59] 28.2% parse-loop15 [76] 28.4% [78] 1432(19.5%) 0(0.0%) map ...t-7.5/collects/racket/private/map.rkt:35:13 loop [84] 42.5% ??? [85] 27.9% taylor [86] 15.5% hash-ref! [67] 14.1% --------------------------------------------------------------------- temp91_0 [71] 100.0% [79] 1078(14.7%) 0(0.0%) temp118_0 (unknown source) expand-capturing-lifts [83] 100.0% --------------------------------------------------------------------- ??? [77] 0.4% for-loop [24] 6.5% for-loop [105] 30.2% syntax-e/no-taint [11] 30.9% loop [80] 31.9% [80] 1044(14.2%) 0(0.0%) loop (unknown source) loop [80] 31.9% gf [87] 30.9% expand-id-application-form17 [3] 30.2% ??? [85] 6.5% ??? [90] 0.4% --------------------------------------------------------------------- ??? [74] 100.0% [81] 448(6.1%) 192(2.6%) for-loop ...e/better-rr/src/core/taylor.rkt:290:52 f61 [89] 57.1% --------------------------------------------------------------------- matcher [75] 100.0% [82] 408(5.6%) 0(0.0%) ??? ...erbie/better-rr/src/core/matcher.rkt:129:11 for-loop [88] 100.0% --------------------------------------------------------------------- temp118_0 [79] 100.0% [83] 1078(14.7%) 0(0.0%) expand-capturing-lifts (unknown source) lambda-clause-expander [91] 100.0% --------------------------------------------------------------------- map [78] 2.6% loop [84] 97.4% [84] 608(8.3%) 204(2.8%) loop ...-7.5/collects/racket/private/map.rkt:40:19 loop [84] 97.4% ??? [93] 1.7% --------------------------------------------------------------------- loop [80] 33.8% map [78] 66.2% [85] 604(8.2%) 204(2.8%) ??? ...lies/herbie/better-rr/src/points.rkt:181:26 ??? [94] 33.1% ??? [90] 33.1% --------------------------------------------------------------------- map [78] 25.8% for-loop [10] 74.2% [86] 430(5.9%) 208(2.8%) taylor ...rbie/better-rr/src/core/taylor.rkt:169:0 map [78] 25.8% taylor-invert [96] 25.8% --------------------------------------------------------------------- loop [80] 100.0% [87] 424(5.8%) 0(0.0%) gf (unknown source) propagation-merge [95] 52.4% cache-or-reuse-set [97] 47.6% --------------------------------------------------------------------- ??? [82] 100.0% [88] 408(5.6%) 0(0.0%) for-loop ...e/better-rr/src/core/matcher.rkt:101:4 foldl [92] 100.0% --------------------------------------------------------------------- for-loop [81] 100.0% [89] 256(3.5%) 256(3.5%) f61 (unknown source) --------------------------------------------------------------------- ??? [85] 10.6% loop [80] 10.7% ??? [73] 11.4% loop [29] 21.5% location-do [99] 22.9% for-loop [57] 22.9% [90] 1880(25.6%) 200(2.7%) ??? ...tract/private/arrow-higher-order.rkt:375:33 location-do [99] 22.9% approximate9 [2] 22.9% ival-mult [102] 21.5% hash-ref! [67] 11.4% bf [103] 10.7% --------------------------------------------------------------------- expand-capturing-lifts [83] 100.0% [91] 1078(14.7%) 0(0.0%) lambda-clause-expander (unknown source) finish-bodys [98] 100.0% --------------------------------------------------------------------- for-loop [88] 100.0% [92] 408(5.6%) 0(0.0%) foldl ....5/collects/racket/private/list.rkt:229:4 ??? [101] 100.0% --------------------------------------------------------------------- loop [84] 100.0% [93] 404(5.5%) 204(2.8%) ??? ...bie/better-rr/src/core/alt-table.rkt:176:12 loop [104] 49.5% --------------------------------------------------------------------- .../more-scheme.rkt:261:28 [15] 50.0% ??? [85] 50.0% [94] 400(5.5%) 400(5.5%) ??? ...rbie/better-rr/src/syntax/syntax.rkt:214:17 --------------------------------------------------------------------- gf [87] 100.0% [95] 222(3.0%) 222(3.0%) propagation-merge (unknown source) --------------------------------------------------------------------- taylor [86] 100.0% [96] 222(3.0%) 0(0.0%) taylor-invert ...tter-rr/src/core/taylor.rkt:317:0 parse-loop74 [100] 100.0% --------------------------------------------------------------------- gf [87] 100.0% [97] 202(2.8%) 202(2.8%) cache-or-reuse-set (unknown source) --------------------------------------------------------------------- lambda-clause-expander [91] 12.7% for-loop [105] 87.3% [98] 1078(14.7%) 0(0.0%) finish-bodys (unknown source) for-loop [105] 100.0% --------------------------------------------------------------------- location-do [99] 44.5% ??? [90] 55.5% [99] 1074(14.7%) 0(0.0%) location-do ...bie/better-rr/src/programs.rkt:86:0 ??? [90] 55.5% location-do [99] 44.5% --------------------------------------------------------------------- hash-ref! [67] 46.9% taylor-invert [96] 53.1% [100] 418(5.7%) 418(5.7%) parse-loop74 (unknown source) --------------------------------------------------------------------- foldl [92] 100.0% [101] 408(5.6%) 0(0.0%) ??? .../herbie/better-rr/src/core/matcher.rkt:25:7 core457 [106] 100.0% --------------------------------------------------------------------- ??? [90] 100.0% [102] 404(5.5%) 202(2.8%) ival-mult ...e/better-rr/src/biginterval.rkt:129:0 bfmul [108] 50.0% --------------------------------------------------------------------- ??? [90] 100.0% [103] 202(2.8%) 0(0.0%) bf ...ath-lib/math/private/bigfloat/mpfr.rkt:615:2 ??? [107] 100.0% --------------------------------------------------------------------- loop [104] 50.0% ??? [93] 50.0% [104] 200(2.7%) 200(2.7%) loop ...7.5/collects/racket/private/list.rkt:82:16 loop [104] 50.0% --------------------------------------------------------------------- fallback-loop [14] 1.2% for-loop [105] 21.5% finish-bodys [98] 77.3% [105] 1078(14.7%) 204(2.8%) for-loop (unknown source) finish-bodys [98] 68.4% for-loop [105] 21.5% loop [80] 5.0% expand-id-application-form17 [3] 1.5% syntax-e [5] 1.3% expand-identifier [6] 1.2% --------------------------------------------------------------------- ??? [101] 100.0% [106] 408(5.6%) 202(2.8%) core457 ...acket/contract/private/arr-i.rkt:976:19 un-dep/maybe-chaperone [109] 50.5% --------------------------------------------------------------------- bf [103] 100.0% [107] 202(2.8%) 202(2.8%) ??? /opt/racket-7.5/collects/ffi/unsafe.rkt:938:4 --------------------------------------------------------------------- ival-mult [102] 100.0% [108] 202(2.8%) 0(0.0%) bfmul ...-lib/math/private/bigfloat/mpfr.rkt:835:4 new-mpfr [110] 100.0% --------------------------------------------------------------------- core457 [106] 100.0% [109] 206(2.8%) 206(2.8%) un-dep/maybe-chaperone ...private/arr-i.rkt:1137:2 --------------------------------------------------------------------- bfmul [108] 100.0% [110] 202(2.8%) 202(2.8%) new-mpfr ...b/math/private/bigfloat/mpfr.rkt:348:0 ---------------------------------------------------------------------