"skip no precompute" Profiling results ----------------- Total cpu time observed: 5044ms (out of 5156ms) Number of samples taken: 28 (once every 180ms) ======================================================================== Caller Idx Total Self Name+src Local% ms(pct) ms(pct) Callee ======================================================================== [1] 5044(100.0%) 0(0.0%) ??? ...lects/racket/private/more-scheme.rkt:261:28 profile-thunk16 [9] 100.0% ------------------------------------------------------------------------ ??? [60] 100.0% [2] 602(11.9%) 0(0.0%) approximate9 ...act-exprs/src/core/taylor.rkt:11:0 loop [11] 75.1% f40 [15] 24.9% ------------------------------------------------------------------------ matcher [68] 100.0% [3] 474(9.4%) 148(2.9%) ??? ...e/extract-exprs/src/core/matcher.rkt:127:11 for-loop [10] 72.9% foldl [14] 11.5% ------------------------------------------------------------------------ hash-ref! [76] 100.0% [4] 302(6.0%) 0(0.0%) ??? ...ie/extract-exprs/src/core/taylor.rkt:290:26 for-loop [13] 100.0% ------------------------------------------------------------------------ for-loop [103] 100.0% [5] 186(3.7%) 0(0.0%) syntax-e (unknown source) syntax-e/no-taint [12] 100.0% ------------------------------------------------------------------------ hash-ref! [76] 100.0% [6] 154(3.1%) 0(0.0%) ??? ...herbie/extract-exprs/src/programs.rkt:178:5 loop [59] 100.0% ------------------------------------------------------------------------ hash-ref! [76] 100.0% [7] 150(3.0%) 0(0.0%) f61 (unknown source) eval-const-expr [89] 100.0% ------------------------------------------------------------------------ hash-ref! [76] 100.0% [8] 150(3.0%) 0(0.0%) ??? ...ie/extract-exprs/src/core/taylor.rkt:300:23 for-loop [16] 100.0% ------------------------------------------------------------------------ ??? [1] 100.0% [9] 5044(100.0%) 0(0.0%) profile-thunk16 ...e/pkgs/profile-lib/main.rkt:9:0 run [17] 100.0% ------------------------------------------------------------------------ ??? [3] 100.0% [10] 474(9.4%) 0(0.0%) for-loop ...ract-exprs/src/core/matcher.rkt:129:15 matcher [68] 100.0% ------------------------------------------------------------------------ approximate9 [2] 100.0% [11] 452(9.0%) 0(0.0%) loop ...bie/extract-exprs/src/core/taylor.rkt:86:4 ??? [60] 100.0% ------------------------------------------------------------------------ expand-id-application-form17 [69] 45.3% syntax-e [5] 54.7% [12] 340(6.7%) 0(0.0%) syntax-e/no-taint (unknown source) loop [59] 100.0% ------------------------------------------------------------------------ ??? [4] 100.0% [13] 302(6.0%) 0(0.0%) for-loop ...tract-exprs/src/core/taylor.rkt:290:52 hash-ref! [76] 50.3% ??? [20] 49.7% ------------------------------------------------------------------------ ??? [3] 100.0% [14] 164(3.3%) 0(0.0%) foldl ....5/collects/racket/private/list.rkt:229:4 ??? [18] 100.0% ------------------------------------------------------------------------ map [19] 50.0% approximate9 [2] 50.0% [15] 150(3.0%) 0(0.0%) f40 (unknown source) map [19] 100.0% ------------------------------------------------------------------------ ??? [8] 100.0% [16] 150(3.0%) 0(0.0%) for-loop ...tract-exprs/src/core/taylor.rkt:303:27 hash-ref! [76] 100.0% ------------------------------------------------------------------------ profile-thunk16 [9] 100.0% [17] 5044(100.0%) 0(0.0%) run ...et-7.5/share/pkgs/profile-lib/main.rkt:39:2 .../more-scheme.rkt:261:28 [21] 100.0% ------------------------------------------------------------------------ foldl [14] 100.0% [18] 164(3.3%) 0(0.0%) ??? ...bie/extract-exprs/src/core/matcher.rkt:25:7 core457 [93] 100.0% ------------------------------------------------------------------------ f40 [15] 100.0% [19] 150(3.0%) 0(0.0%) map ...t-7.5/collects/racket/private/map.rkt:35:13 f40 [15] 50.0% parse-loop74 [81] 50.0% ------------------------------------------------------------------------ for-loop [13] 100.0% [20] 150(3.0%) 0(0.0%) ??? ...ie/extract-exprs/src/core/taylor.rkt:293:19 hash-ref! [76] 100.0% ------------------------------------------------------------------------ for-loop [65] 10.1% run [17] 89.9% [21] 5044(100.0%) 154(3.1%) .../more-scheme.rkt:261:28 (unknown source) run-improve47 [22] 69.0% prepare-points-intervals [23] 15.0% ??? [75] 4.6% oracle-error [25] 4.0% ??? [24] 2.1% errors [58] 1.9% ulp-difference [26] 1.9% ------------------------------------------------------------------------ .../more-scheme.rkt:261:28 [21] 100.0% [22] 3890(77.1%) 0(0.0%) run-improve47 ...ract-exprs/src/mainloop.rkt:346:0 for-loop [27] 100.0% ------------------------------------------------------------------------ .../more-scheme.rkt:261:28 [21] 100.0% [23] 756(15.0%) 0(0.0%) prepare-points-intervals ...s/src/points.rkt:120:0 loop [28] 100.0% ------------------------------------------------------------------------ .../more-scheme.rkt:261:28 [21] 100.0% [24] 208(4.1%) 208(4.1%) ??? ...cket-7.5/collects/racket/function.rkt:93:12 ------------------------------------------------------------------------ .../more-scheme.rkt:261:28 [21] 100.0% [25] 202(4.0%) 0(0.0%) oracle-error ...extract-exprs/src/points.rkt:177:0 for-loop [29] 100.0% ------------------------------------------------------------------------ .../more-scheme.rkt:261:28 [21] 100.0% [26] 196(3.9%) 0(0.0%) ulp-difference ...extract-exprs/src/float.rkt:19:0 ??? [60] 100.0% ------------------------------------------------------------------------ run-improve47 [22] 100.0% [27] 3890(77.1%) 0(0.0%) for-loop ...e/extract-exprs/src/mainloop.rkt:365:4 run-iter! [30] 100.0% ------------------------------------------------------------------------ prepare-points-intervals [23] 100.0% [28] 756(15.0%) 0(0.0%) loop .../herbie/extract-exprs/src/points.rkt:132:4 loop [31] 73.8% ??? [32] 26.2% ------------------------------------------------------------------------ oracle-error [25] 100.0% [29] 202(4.0%) 0(0.0%) for-loop ...bie/extract-exprs/src/points.rkt:178:2 loop [59] 100.0% ------------------------------------------------------------------------ for-loop [27] 100.0% [30] 3890(77.1%) 0(0.0%) run-iter! .../extract-exprs/src/mainloop.rkt:327:0 finalize-iter! [33] 46.1% simplify! [34] 26.3% gen-series! [35] 15.5% gen-rewrites! [36] 12.2% ------------------------------------------------------------------------ loop [28] 100.0% [31] 558(11.1%) 0(0.0%) loop ...s/herbie/extract-exprs/src/points.rkt:79:2 ??? [37] 67.4% real->precision [39] 32.6% ------------------------------------------------------------------------ loop [28] 100.0% [32] 198(3.9%) 0(0.0%) ??? ...s/herbie/extract-exprs/src/points.rkt:113:6 sample-multi-bounded [38] 100.0% ------------------------------------------------------------------------ run-iter! [30] 100.0% [33] 1792(35.5%) 0(0.0%) finalize-iter! ...act-exprs/src/mainloop.rkt:278:0 ??? [40] 100.0% ------------------------------------------------------------------------ run-iter! [30] 100.0% [34] 1022(20.3%) 0(0.0%) simplify! .../extract-exprs/src/mainloop.rkt:224:0 ??? [41] 100.0% ------------------------------------------------------------------------ run-iter! [30] 100.0% [35] 602(11.9%) 0(0.0%) gen-series! ...xtract-exprs/src/mainloop.rkt:160:0 for-loop [42] 100.0% ------------------------------------------------------------------------ run-iter! [30] 100.0% [36] 474(9.4%) 0(0.0%) gen-rewrites! ...ract-exprs/src/mainloop.rkt:183:0 for-loop [43] 100.0% ------------------------------------------------------------------------ loop [31] 100.0% [37] 376(7.5%) 0(0.0%) ??? ...tract/private/arrow-higher-order.rkt:379:33 ival-div [44] 100.0% ------------------------------------------------------------------------ ??? [32] 100.0% [38] 198(3.9%) 0(0.0%) sample-multi-bounded ...-exprs/src/points.rkt:14:0 random-ranges [45] 100.0% ------------------------------------------------------------------------ loop [31] 100.0% [39] 182(3.6%) 0(0.0%) real->precision ...ct-exprs/src/programs.rkt:94:11 ??? [60] 100.0% ------------------------------------------------------------------------ finalize-iter! [33] 100.0% [40] 1792(35.5%) 0(0.0%) ??? ...contract/private/arrow-val-first.rkt:486:18 for-loop [46] 100.0% ------------------------------------------------------------------------ simplify! [34] 100.0% [41] 1022(20.3%) 0(0.0%) ??? ...ie/extract-exprs/src/core/simplify.rkt:44:0 egraph-run [47] 100.0% ------------------------------------------------------------------------ gen-series! [35] 100.0% [42] 602(11.9%) 0(0.0%) for-loop ...e/extract-exprs/src/mainloop.rkt:167:7 taylor-alt [48] 100.0% ------------------------------------------------------------------------ gen-rewrites! [36] 100.0% [43] 474(9.4%) 0(0.0%) for-loop .../extract-exprs/src/mainloop.rkt:191:11 rewrite-expression-head24 [49] 100.0% ------------------------------------------------------------------------ ??? [37] 100.0% [44] 376(7.5%) 174(3.4%) ival-div ...xtract-exprs/src/biginterval.rkt:156:0 bfdiv [50] 53.7% ------------------------------------------------------------------------ sample-multi-bounded [38] 100.0% [45] 198(3.9%) 0(0.0%) random-ranges ...xtract-exprs/src/common.rkt:164:0 cons/c [51] 100.0% ------------------------------------------------------------------------ ??? [40] 100.0% [46] 1792(35.5%) 0(0.0%) for-loop ...ract-exprs/src/core/alt-table.rkt:46:2 errors [58] 54.6% atab-add-altn [53] 36.7% loop [57] 8.7% ------------------------------------------------------------------------ ??? [41] 100.0% [47] 1022(20.3%) 0(0.0%) egraph-run .../pkgs/egg-herbie-linux/main.rkt:49:0 egraph-add-exprs [52] 100.0% ------------------------------------------------------------------------ for-loop [42] 100.0% [48] 602(11.9%) 0(0.0%) taylor-alt ...extract-exprs/src/mainloop.rkt:146:0 for-loop [54] 100.0% ------------------------------------------------------------------------ for-loop [43] 100.0% [49] 474(9.4%) 0(0.0%) rewrite-expression-head24 ...core/matcher.rkt:85:0 rewriter [55] 100.0% ------------------------------------------------------------------------ ival-div [44] 100.0% [50] 202(4.0%) 0(0.0%) bfdiv ...-lib/math/private/bigfloat/mpfr.rkt:835:4 new-mpfr [56] 100.0% ------------------------------------------------------------------------ random-ranges [45] 100.0% [51] 198(3.9%) 198(3.9%) cons/c .../racket/contract/private/guts.rkt:500:15 ------------------------------------------------------------------------ egraph-run [47] 100.0% [52] 1022(20.3%) 0(0.0%) egraph-add-exprs ...gg-herbie-linux/main.rkt:111:0 ??? [61] 77.1% loop [59] 22.9% ------------------------------------------------------------------------ for-loop [46] 100.0% [53] 658(13.0%) 0(0.0%) atab-add-altn ...xprs/src/core/alt-table.rkt:194:0 errors [58] 100.0% ------------------------------------------------------------------------ taylor-alt [48] 100.0% [54] 602(11.9%) 0(0.0%) for-loop ...e/extract-exprs/src/mainloop.rkt:152:6 ??? [60] 100.0% ------------------------------------------------------------------------ rewrite-expression-head24 [49] 44.2% matcher [68] 55.8% [55] 474(9.4%) 0(0.0%) rewriter ...xtract-exprs/src/core/matcher.rkt:87:2 for-loop [62] 100.0% ------------------------------------------------------------------------ bfdiv [50] 100.0% [56] 202(4.0%) 202(4.0%) new-mpfr ...b/math/private/bigfloat/mpfr.rkt:348:0 ------------------------------------------------------------------------ for-loop [46] 100.0% [57] 156(3.1%) 0(0.0%) loop ...extract-exprs/src/core/alt-table.rkt:168:2 loop [63] 100.0% ------------------------------------------------------------------------ .../more-scheme.rkt:261:28 [21] 10.7% atab-add-altn [53] 35.9% for-loop [46] 53.4% [58] 1832(36.3%) 0(0.0%) errors ...erbie/extract-exprs/src/points.rkt:190:0 for-loop [65] 55.7% temp85_0 [64] 35.9% eval-prog [73] 8.4% ------------------------------------------------------------------------ egraph-add-exprs [52] 0.7% ??? [6] 14.1% for-loop [29] 18.5% loop [59] 20.7% for-loop [103] 22.0% syntax-e/no-taint [12] 24.0% [59] 1094(21.7%) 388(7.7%) loop (unknown source) expand-id-application-form17 [69] 22.0% loop [59] 20.7% ??? [70] 18.5% gf [71] 17.0% hash-ref! [76] 14.1% ------------------------------------------------------------------------ loop [11] 15.4% real->precision [39] 18.6% ulp-difference [26] 20.0% location-do [67] 23.0% for-loop [54] 23.0% [60] 980(19.4%) 378(7.5%) ??? ...tract/private/arrow-higher-order.rkt:375:33 location-do [67] 23.0% approximate9 [2] 23.0% hash-ref! [76] 15.4% ------------------------------------------------------------------------ egraph-add-exprs [52] 100.0% [61] 788(15.6%) 0(0.0%) ??? ...e/extract-exprs/src/core/simplify.rkt:112:6 for-loop [66] 100.0% ------------------------------------------------------------------------ rewriter [55] 100.0% [62] 474(9.4%) 0(0.0%) for-loop ...xtract-exprs/src/core/matcher.rkt:89:4 matcher [68] 82.9% for-loop [72] 17.1% ------------------------------------------------------------------------ loop [57] 100.0% [63] 156(3.1%) 156(3.1%) loop .../extract-exprs/src/core/alt-table.rkt:92:2 ------------------------------------------------------------------------ eval-const-expr [89] 40.7% errors [58] 59.3% [64] 1110(22.0%) 0(0.0%) temp85_0 (unknown source) compile15 [74] 100.0% ------------------------------------------------------------------------ errors [58] 100.0% [65] 1020(20.2%) 0(0.0%) for-loop ...bie/extract-exprs/src/points.rkt:192:2 .../more-scheme.rkt:261:28 [21] 100.0% ------------------------------------------------------------------------ ??? [61] 100.0% [66] 788(15.6%) 788(15.6%) for-loop ...ract-exprs/src/core/simplify.rkt:131:2 ------------------------------------------------------------------------ location-do [67] 41.7% ??? [60] 58.3% [67] 602(11.9%) 0(0.0%) location-do ...extract-exprs/src/programs.rkt:63:0 ??? [60] 58.3% location-do [67] 41.7% ------------------------------------------------------------------------ for-loop [10] 41.3% for-loop [62] 58.7% [68] 474(9.4%) 0(0.0%) matcher ...xtract-exprs/src/core/matcher.rkt:115:2 ??? [3] 58.7% rewriter [55] 41.3% ------------------------------------------------------------------------ loop [59] 100.0% [69] 318(6.3%) 0(0.0%) expand-id-application-form17 (unknown source) resolve+shift28 [78] 51.6% syntax-e/no-taint [12] 48.4% ------------------------------------------------------------------------ loop [59] 100.0% [70] 202(4.0%) 0(0.0%) ??? .../herbie/extract-exprs/src/points.rkt:179:26 ??? [75] 100.0% ------------------------------------------------------------------------ loop [59] 100.0% [71] 186(3.7%) 0(0.0%) gf (unknown source) propagation-merge [77] 100.0% ------------------------------------------------------------------------ for-loop [62] 100.0% [72] 162(3.2%) 0(0.0%) for-loop ...xtract-exprs/src/core/matcher.rkt:96:8 fix-up-variables [79] 100.0% ------------------------------------------------------------------------ errors [58] 100.0% [73] 154(3.1%) 0(0.0%) eval-prog ...e/extract-exprs/src/programs.rkt:82:0 hash-ref! [76] 100.0% ------------------------------------------------------------------------ temp85_0 [64] 100.0% [74] 1110(22.0%) 0(0.0%) compile15 (unknown source) temp91_0 [80] 100.0% ------------------------------------------------------------------------ ??? [70] 30.4% .../more-scheme.rkt:261:28 [21] 69.6% [75] 664(13.2%) 510(10.1%) ??? .../extract-exprs/src/syntax/syntax.rkt:214:17 return/no-unsupplied [85] 23.2% ------------------------------------------------------------------------ eval-prog [73] 4.2% ??? [20] 5.0% for-loop [16] 5.0% ??? [87] 5.0% ??? [86] 6.3% for-loop [13] 6.3% loop [59] 21.2% ??? [82] 23.6% ??? [60] 23.6% [76] 606(12.0%) 154(3.1%) hash-ref! .../racket/private/more-scheme.rkt:376:2 ??? [82] 23.6% ??? [6] 21.2% parse-loop74 [81] 18.6% ??? [4] 11.2% ??? [86] 6.3% ??? [87] 5.0% ??? [8] 5.0% f61 [7] 5.0% ------------------------------------------------------------------------ gf [71] 100.0% [77] 186(3.7%) 186(3.7%) propagation-merge (unknown source) ------------------------------------------------------------------------ expand-id-application-form17 [69] 100.0% [78] 164(3.3%) 0(0.0%) resolve+shift28 (unknown source) fallback-loop [83] 100.0% ------------------------------------------------------------------------ for-loop [72] 100.0% [79] 162(3.2%) 0(0.0%) fix-up-variables ...prs/src/core/matcher.rkt:108:2 pattern-match [84] 100.0% ------------------------------------------------------------------------ compile15 [74] 100.0% [80] 1110(22.0%) 0(0.0%) temp91_0 (unknown source) temp118_0 [88] 86.5% compile-top9 [91] 13.5% ------------------------------------------------------------------------ map [19] 33.2% hash-ref! [76] 66.8% [81] 452(9.0%) 0(0.0%) parse-loop74 (unknown source) eval-const-expr [89] 100.0% ------------------------------------------------------------------------ hash-ref! [76] 100.0% [82] 452(9.0%) 0(0.0%) ??? ...bie/extract-exprs/src/core/taylor.rkt:44:15 hash-ref! [76] 100.0% ------------------------------------------------------------------------ resolve+shift28 [78] 100.0% [83] 164(3.3%) 164(3.3%) fallback-loop (unknown source) ------------------------------------------------------------------------ fix-up-variables [79] 100.0% [84] 162(3.2%) 0(0.0%) pattern-match ...t-exprs/src/core/matcher.rkt:29:0 for-loop [90] 100.0% ------------------------------------------------------------------------ ??? [75] 100.0% [85] 154(3.1%) 154(3.1%) return/no-unsupplied ...ct/private/arr-i.rkt:566:0 ------------------------------------------------------------------------ hash-ref! [76] 100.0% [86] 152(3.0%) 0(0.0%) ??? ...ie/extract-exprs/src/core/taylor.rkt:327:33 hash-ref! [76] 100.0% ------------------------------------------------------------------------ hash-ref! [76] 100.0% [87] 150(3.0%) 0(0.0%) ??? ...ie/extract-exprs/src/core/taylor.rkt:343:33 hash-ref! [76] 100.0% ------------------------------------------------------------------------ temp91_0 [80] 100.0% [88] 960(19.0%) 0(0.0%) temp118_0 (unknown source) expand-capturing-lifts [92] 100.0% ------------------------------------------------------------------------ f61 [7] 24.9% parse-loop74 [81] 75.1% [89] 602(11.9%) 0(0.0%) eval-const-expr ...ct-exprs/src/programs.rkt:120:0 temp85_0 [64] 75.1% eval-one-top12 [94] 24.9% ------------------------------------------------------------------------ pattern-match [84] 100.0% [90] 162(3.2%) 0(0.0%) for-loop ...xtract-exprs/src/core/matcher.rkt:26:9 core457 [93] 100.0% ------------------------------------------------------------------------ temp91_0 [80] 100.0% [91] 150(3.0%) 0(0.0%) compile-top9 (unknown source) compile-forms33 [95] 100.0% ------------------------------------------------------------------------ temp118_0 [88] 100.0% [92] 960(19.0%) 0(0.0%) expand-capturing-lifts (unknown source) lambda-clause-expander [96] 100.0% ------------------------------------------------------------------------ for-loop [90] 49.7% ??? [18] 50.3% [93] 326(6.5%) 0(0.0%) core457 ...acket/contract/private/arr-i.rkt:976:19 un-dep/maybe-chaperone [97] 50.3% ??? [98] 49.7% ------------------------------------------------------------------------ eval-const-expr [89] 100.0% [94] 150(3.0%) 150(3.0%) eval-one-top12 (unknown source) ------------------------------------------------------------------------ compile-top9 [91] 100.0% [95] 150(3.0%) 0(0.0%) compile-forms33 (unknown source) loop! [99] 100.0% ------------------------------------------------------------------------ expand-capturing-lifts [92] 100.0% [96] 960(19.0%) 0(0.0%) lambda-clause-expander (unknown source) finish-bodys [100] 100.0% ------------------------------------------------------------------------ core457 [93] 100.0% [97] 164(3.3%) 0(0.0%) un-dep/maybe-chaperone ...private/arr-i.rkt:1137:2 ??? [101] 100.0% ------------------------------------------------------------------------ core457 [93] 100.0% [98] 162(3.2%) 0(0.0%) ??? ...s/racket/contract/private/arr-i.rkt:1288:27 build-nullary-very-simple--> [102]100.0% ------------------------------------------------------------------------ compile-forms33 [95] 100.0% [99] 150(3.0%) 0(0.0%) loop! (unknown source) for-loop [103] 100.0% ------------------------------------------------------------------------ lambda-clause-expander [96] 15.5% for-loop [103] 84.5% [100] 960(19.0%) 0(0.0%) finish-bodys (unknown source) for-loop [103] 100.0% ------------------------------------------------------------------------ un-dep/maybe-chaperone [97] 100.0% [101] 164(3.3%) 0(0.0%) ??? ...cts/racket/contract/private/guts.rkt:835:10 ??? [104] 100.0% ------------------------------------------------------------------------ ??? [98] 100.0% [102] 162(3.2%) 0(0.0%) build-nullary-very-simple--> ...l-first.rkt:1131:0 flat-contract? [105] 100.0% ------------------------------------------------------------------------ for-loop [103] 13.4% loop! [99] 13.5% finish-bodys [100] 73.1% [103] 1110(22.0%) 302(6.0%) for-loop (unknown source) finish-bodys [100] 62.5% compile5 [108] 13.5% for-loop [103] 13.4% loop [59] 4.3% dispatch-transformer41 [107] 0.9% syntax-e [5] 0.8% ------------------------------------------------------------------------ ??? [101] 100.0% [104] 164(3.3%) 0(0.0%) ??? ...ntract/private/arrow-higher-order.rkt:575:2 build-subcontract-late-negs [106] 100.0% ------------------------------------------------------------------------ build-nullary-very-simple--> [102]100.0% [105] 162(3.2%) 162(3.2%) flat-contract? .../contract/private/guts.rkt:129:0 ------------------------------------------------------------------------ ??? [104] 100.0% [106] 164(3.3%) 164(3.3%) build-subcontract-late-negs ...her-order.rkt:711:0 ------------------------------------------------------------------------ for-loop [103] 100.0% [107] 154(3.1%) 0(0.0%) dispatch-transformer41 (unknown source) apply-transformer52 [109] 100.0% ------------------------------------------------------------------------ compile-let13 [110] 50.0% for-loop [103] 50.0% [108] 150(3.0%) 0(0.0%) compile5 (unknown source) compile-let13 [110] 100.0% ------------------------------------------------------------------------ dispatch-transformer41 [107] 100.0% [109] 154(3.1%) 154(3.1%) apply-transformer52 (unknown source) ------------------------------------------------------------------------ compile5 [108] 25.0% compile-let13 [110] 75.0% [110] 150(3.0%) 150(3.0%) compile-let13 (unknown source) compile-let13 [110] 75.0% compile5 [108] 12.5% ------------------------------------------------------------------------