Profiling results ----------------- Total cpu time observed: 39294ms (out of 39372ms) Number of samples taken: 195 (once every 202ms) (Hiding functions with self<1.0% and local<2.0%: 4 of 208 hidden) ========================================================================= Caller Idx Total Self Name+src Local% ms(pct) ms(pct) Callee ========================================================================= [1] 39294(100.0%) 0(0.0%) ??? ...lects/racket/private/more-scheme.rkt:261:28 profile-thunk16 [18] 100.0% ------------------------------------------------------------------------- ??? [154] 100.0% [2] 8198(20.9%) 0(0.0%) approximate9 ...ie/master/src/core/taylor.rkt:11:0 loop [19] 80.6% for-loop [25] 14.8% taylor [34] 4.6% ------------------------------------------------------------------------- hash-ref! [159] 100.0% [3] 6198(15.8%) 0(0.0%) ??? ...ies/herbie/master/src/core/taylor.rkt:44:15 hash-ref! [159] 83.4% ??? [33] 13.3% f61 [31] 3.2% ------------------------------------------------------------------------- hash-ref! [159] 100.0% [4] 3558(9.1%) 0(0.0%) ??? ...es/herbie/master/src/core/taylor.rkt:300:23 for-loop [20] 100.0% ------------------------------------------------------------------------- loop [152] 6.3% expand-capturing-lifts [148] 6.3% for-loop [178] 87.4% [5] 3220(8.2%) 0(0.0%) dispatch-transformer41 (unknown source) apply-transformer52 [21] 100.0% ------------------------------------------------------------------------- hash-ref! [159] 100.0% [6] 3184(8.1%) 0(0.0%) ??? ...es/herbie/master/src/core/taylor.rkt:290:26 for-loop [22] 100.0% ------------------------------------------------------------------------- hash-ref! [159] 100.0% [7] 2914(7.4%) 0(0.0%) ??? ...ies/herbie/master/src/core/taylor.rkt:67:15 ??? [154] 78.3% hash-ref! [159] 21.7% ------------------------------------------------------------------------- loop [152] 41.0% for-loop [178] 59.0% [8] 2006(5.1%) 0(0.0%) syntax-e (unknown source) syntax-e/no-taint [23] 100.0% ------------------------------------------------------------------------- hash-ref! [159] 100.0% [9] 1450(3.7%) 0(0.0%) ??? ...es/herbie/master/src/core/taylor.rkt:406:23 for-loop [24] 84.7% for-loop [35] 15.3% ------------------------------------------------------------------------- hash-ref! [159] 100.0% [10] 1092(2.8%) 0(0.0%) ??? ...es/herbie/master/src/core/taylor.rkt:509:23 for-loop [26] 100.0% ------------------------------------------------------------------------- hash-ref! [159] 100.0% [11] 438(1.1%) 0(0.0%) parse-loop15 (unknown source) map [179] 100.0% ------------------------------------------------------------------------- hash-ref! [159] 100.0% [12] 438(1.1%) 0(0.0%) ??? ...s/herbie/master/src/core/localize.rkt:17:13 ??? [154] 58.0% loop [152] 42.0% ------------------------------------------------------------------------- for-loop [178] 100.0% [13] 406(1.0%) 0(0.0%) expand-implicit (unknown source) resolve+shift28 [163] 50.7% binding-lookup52 [28] 49.3% ------------------------------------------------------------------------- for-loop [178] 100.0% [14] 396(1.0%) 0(0.0%) expand-identifier (unknown source) resolve+shift28 [163] 100.0% ------------------------------------------------------------------------- matcher [175] 100.0% [15] 382(1.0%) 0(0.0%) ??? ...s/herbie/master/src/core/matcher.rkt:131:11 for-loop [27] 100.0% ------------------------------------------------------------------------- taylor [34] 100.0% [16] 200(0.5%) 0(0.0%) taylor-log ...bie/master/src/core/taylor.rkt:502:0 f61 [31] 100.0% ------------------------------------------------------------------------- for-loop [178] 100.0% [17] 200(0.5%) 0(0.0%) dispatch-variable (unknown source) substitute-variable6 [29] 100.0% ------------------------------------------------------------------------- ??? [1] 100.0% [18] 39294(100.0%) 0(0.0%) profile-thunk16 ...e/pkgs/profile-lib/main.rkt:9:0 run [30] 100.0% ------------------------------------------------------------------------- approximate9 [2] 100.0% [19] 6606(16.8%) 0(0.0%) loop ...ies/herbie/master/src/core/taylor.rkt:86:4 ??? [154] 55.9% hash-ref! [159] 44.1% ------------------------------------------------------------------------- ??? [4] 100.0% [20] 3558(9.1%) 0(0.0%) for-loop ...rbie/master/src/core/taylor.rkt:303:27 hash-ref! [159] 96.9% f40 [169] 3.1% ------------------------------------------------------------------------- dispatch-transformer41 [5] 100.0% [21] 3220(8.2%) 188(0.5%) apply-transformer52 (unknown source) apply-transformer-in-context [32] 63.0% loop [152] 24.8% apply-post-expansion [37] 6.3% ------------------------------------------------------------------------- ??? [6] 100.0% [22] 3184(8.1%) 0(0.0%) for-loop ...rbie/master/src/core/taylor.rkt:290:52 hash-ref! [159] 63.4% ??? [33] 30.3% f61 [31] 6.3% ------------------------------------------------------------------------- expand-id-application-form17 [157] 16.6% syntax-e [8] 83.4% [23] 2406(6.1%) 0(0.0%) syntax-e/no-taint (unknown source) loop [152] 100.0% ------------------------------------------------------------------------- ??? [9] 100.0% [24] 1228(3.1%) 0(0.0%) for-loop ...rbie/master/src/core/taylor.rkt:410:33 for-loop [35] 81.9% hash-ref! [159] 18.1% ------------------------------------------------------------------------- approximate9 [2] 100.0% [25] 1212(3.1%) 0(0.0%) for-loop ...erbie/master/src/core/taylor.rkt:29:18 taylor [34] 100.0% ------------------------------------------------------------------------- ??? [10] 100.0% [26] 1092(2.8%) 0(0.0%) for-loop ...rbie/master/src/core/taylor.rkt:513:35 parse-loop402 [36] 100.0% ------------------------------------------------------------------------- ??? [15] 100.0% [27] 382(1.0%) 0(0.0%) for-loop ...bie/master/src/core/matcher.rkt:133:15 hash-ref! [159] 100.0% ------------------------------------------------------------------------- expand-implicit [13] 100.0% [28] 200(0.5%) 200(0.5%) binding-lookup52 (unknown source) ------------------------------------------------------------------------- dispatch-variable [17] 100.0% [29] 200(0.5%) 0(0.0%) substitute-variable6 (unknown source) datum->syntax6 [140] 100.0% ------------------------------------------------------------------------- profile-thunk16 [18] 100.0% [30] 39294(100.0%) 0(0.0%) run ...et-7.5/share/pkgs/profile-lib/main.rkt:39:2 .../more-scheme.rkt:261:28 [38] 100.0% ------------------------------------------------------------------------- parse-loop74 [49] 3.4% ??? [3] 6.7% taylor-log [16] 6.7% for-loop [22] 6.7% hash-ref! [159] 31.5% map [179] 44.9% [31] 2970(7.6%) 0(0.0%) f61 (unknown source) eval-const-expr [62] 79.6% composed [43] 13.5% map [179] 6.9% ------------------------------------------------------------------------- apply-transformer52 [21] 100.0% [32] 2028(5.2%) 0(0.0%) apply-transformer-in-context (unknown source) ??? [39] 70.4% parse-app [42] 19.9% go [47] 9.7% ------------------------------------------------------------------------- ??? [3] 43.7% for-loop [22] 56.3% [33] 1890(4.8%) 0(0.0%) ??? ...es/herbie/master/src/core/taylor.rkt:293:19 hash-ref! [159] 100.0% ------------------------------------------------------------------------- hash-ref! [159] 5.6% approximate9 [2] 6.2% map [179] 17.7% for-loop [25] 28.6% taylor [34] 42.0% [34] 1792(4.6%) 0(0.0%) taylor .../herbie/master/src/core/taylor.rkt:169:0 taylor [34] 42.0% map [179] 26.7% taylor-invert [41] 11.3% taylor-cbrt [45] 11.2% debug5 [44] 3.9% taylor-log [16] 2.8% debug-print [46] 2.2% ------------------------------------------------------------------------- ??? [9] 18.1% for-loop [24] 81.9% [35] 1228(3.1%) 0(0.0%) for-loop ...rbie/master/src/core/taylor.rkt:412:39 hash-ref! [159] 100.0% ------------------------------------------------------------------------- for-loop [26] 100.0% [36] 1092(2.8%) 0(0.0%) parse-loop402 (unknown source) for-loop [40] 100.0% ------------------------------------------------------------------------- apply-transformer52 [21] 100.0% [37] 204(0.5%) 0(0.0%) apply-post-expansion (unknown source) gf [155] 100.0% ------------------------------------------------------------------------- for-loop [135] 8.0% run [30] 92.0% [38] 39294(100.0%) 1014(2.6%) .../more-scheme.rkt:261:28 (unknown source) run-improve47 [48] 52.3% prepare-points-intervals [61] 29.4% ??? [196] 5.2% oracle-error [50] 4.6% get-final-combination [51] 3.3% errors [129] 1.3% eval-errors [55] 1.0% ??? [154] 0.8% ulp-difference [53] 0.5% *bit-width* [57] 0.3% ------------------------------------------------------------------------- apply-transformer-in-context [32] 100.0% [39] 1428(3.6%) 406(1.0%) ??? ...collects/racket/private/qq-and-or.rkt:155:9 ??? [52] 57.6% syntax->list [65] 14.0% ------------------------------------------------------------------------- parse-loop402 [36] 100.0% [40] 1092(2.8%) 0(0.0%) for-loop ...rbie/master/src/core/taylor.rkt:516:59 hash-ref! [159] 100.0% ------------------------------------------------------------------------- taylor [34] 100.0% [41] 602(1.5%) 0(0.0%) taylor-invert .../master/src/core/taylor.rkt:317:0 simplify-node [186] 34.2% first-nonzero-exp [58] 33.2% make-multiplication-node [56] 32.6% ------------------------------------------------------------------------- apply-transformer-in-context [32] 100.0% [42] 404(1.0%) 404(1.0%) parse-app ...collects/racket/private/kw.rkt:1142:2 ------------------------------------------------------------------------- f61 [31] 100.0% [43] 402(1.0%) 0(0.0%) composed ...ollects/racket/private/list.rkt:321:16 free-variables [54] 100.0% ------------------------------------------------------------------------- taylor [34] 100.0% [44] 210(0.5%) 0(0.0%) debug5 ...htlies/herbie/master/src/debug.rkt:102:0 ??? [82] 100.0% ------------------------------------------------------------------------- taylor [34] 100.0% [45] 200(0.5%) 0(0.0%) taylor-cbrt ...ie/master/src/core/taylor.rkt:377:0 parse-loop74 [49] 100.0% ------------------------------------------------------------------------- taylor [34] 100.0% [46] 196(0.5%) 0(0.0%) debug-print ...s/herbie/master/src/debug.rkt:110:0 for-loop [59] 100.0% ------------------------------------------------------------------------- apply-transformer-in-context [32] 100.0% [47] 196(0.5%) 0(0.0%) go .../collects/racket/private/qq-and-or.rkt:50:20 syntax->list [65] 100.0% ------------------------------------------------------------------------- .../more-scheme.rkt:261:28 [38] 100.0% [48] 22690(57.7%) 0(0.0%) run-improve47 ...bie/master/src/mainloop.rkt:346:0 for-loop [60] 98.1% simplify! [78] 1.0% prepare-points-intervals [61] 1.0% ------------------------------------------------------------------------- parse-loop74 [49] 5.2% taylor-sqrt [187] 5.2% taylor-cbrt [45] 5.2% map [179] 32.5% hash-ref! [159] 51.8% [49] 3810(9.7%) 200(0.5%) parse-loop74 (unknown source) eval-const-expr [62] 84.3% f61 [31] 5.2% parse-loop74 [49] 5.2% ------------------------------------------------------------------------- .../more-scheme.rkt:261:28 [38] 100.0% [50] 1820(4.6%) 0(0.0%) oracle-error ...herbie/master/src/points.rkt:177:0 for-loop [63] 100.0% ------------------------------------------------------------------------- .../more-scheme.rkt:261:28 [38] 100.0% [51] 1812(4.6%) 0(0.0%) get-final-combination ...er/src/mainloop.rkt:371:0 infer-splitpoints [64] 100.0% ------------------------------------------------------------------------- ??? [39] 100.0% [52] 822(2.1%) 200(0.5%) ??? ...ollects/racket/private/qq-and-or.rkt:164:21 syntax->list [65] 75.7% ------------------------------------------------------------------------- .../more-scheme.rkt:261:28 [38] 100.0% [53] 426(1.1%) 426(1.1%) ulp-difference ...herbie/master/src/float.rkt:19:0 ------------------------------------------------------------------------- composed [43] 33.3% append-map [66] 66.7% [54] 402(1.0%) 0(0.0%) free-variables ...bie/master/src/programs.rkt:56:0 append-map [66] 83.4% constant? [192] 16.6% ------------------------------------------------------------------------- .../more-scheme.rkt:261:28 [38] 100.0% [55] 400(1.0%) 0(0.0%) eval-errors .../herbie/master/src/points.rkt:168:0 for-loop [67] 100.0% ------------------------------------------------------------------------- taylor-invert [41] 49.2% hash-ref! [159] 50.8% [56] 398(1.0%) 0(0.0%) make-multiplication-node .../core/reduce.rkt:232:0 make-multiplication-subnode [68] 100.0% ------------------------------------------------------------------------- .../more-scheme.rkt:261:28 [38] 100.0% [57] 206(0.5%) 0(0.0%) *bit-width* ...es/herbie/master/src/float.rkt:34:0 return/no-unsupplied [201] 100.0% ------------------------------------------------------------------------- taylor-invert [41] 100.0% [58] 200(0.5%) 0(0.0%) first-nonzero-exp ...ter/src/core/taylor.rkt:265:0 hash-ref! [159] 100.0% ------------------------------------------------------------------------- debug-print [46] 100.0% [59] 196(0.5%) 196(0.5%) for-loop ...lies/herbie/master/src/debug.rkt:116:2 ------------------------------------------------------------------------- run-improve47 [48] 100.0% [60] 22256(56.6%) 0(0.0%) for-loop ...s/herbie/master/src/mainloop.rkt:365:4 run-iter! [69] 100.0% ------------------------------------------------------------------------- run-improve47 [48] 1.8% .../more-scheme.rkt:261:28 [38] 98.2% [61] 11754(29.9%) 0(0.0%) prepare-points-intervals ...r/src/points.rkt:120:0 loop [70] 100.0% ------------------------------------------------------------------------- f61 [31] 43.0% parse-loop74 [49] 57.0% [62] 5978(15.2%) 290(0.7%) eval-const-expr ...e/master/src/programs.rkt:120:0 temp85_0 [134] 81.3% eval [136] 7.1% loop [152] 3.4% eval-prog [137] 3.3% ------------------------------------------------------------------------- oracle-error [50] 100.0% [63] 1820(4.6%) 0(0.0%) for-loop ...ies/herbie/master/src/points.rkt:178:2 loop [152] 66.4% map [179] 22.5% loop [115] 11.1% ------------------------------------------------------------------------- get-final-combination [51] 100.0% [64] 1812(4.6%) 0(0.0%) infer-splitpoints ...ter/src/core/regimes.rkt:33:0 for-loop [71] 100.0% ------------------------------------------------------------------------- go [47] 19.3% ??? [39] 19.6% ??? [52] 61.1% [65] 1018(2.6%) 196(0.5%) syntax->list (unknown source) loop [152] 80.7% ------------------------------------------------------------------------- free-variables [54] 100.0% [66] 402(1.0%) 202(0.5%) append-map ...t-7.5/collects/racket/list.rkt:586:2 free-variables [54] 83.3% ------------------------------------------------------------------------- eval-errors [55] 100.0% [67] 400(1.0%) 400(1.0%) for-loop ...ies/herbie/master/src/points.rkt:170:2 ------------------------------------------------------------------------- make-multiplication-node [56] 100.0% [68] 398(1.0%) 0(0.0%) make-multiplication-subnode ...re/reduce.rkt:242:0 for-loop [72] 100.0% ------------------------------------------------------------------------- for-loop [60] 100.0% [69] 22256(56.6%) 0(0.0%) run-iter! .../herbie/master/src/mainloop.rkt:327:0 finalize-iter! [73] 50.0% gen-series! [74] 36.8% simplify! [78] 5.0% gen-rewrites! [79] 3.5% choose-best-alt! [80] 2.7% localize! [81] 2.0% ------------------------------------------------------------------------- prepare-points-intervals [61] 100.0% [70] 11754(29.9%) 558(1.4%) loop ...ghtlies/herbie/master/src/points.rkt:132:4 loop [75] 63.3% ??? [76] 27.0% loop [152] 3.3% ------------------------------------------------------------------------- infer-splitpoints [64] 100.0% [71] 1812(4.6%) 0(0.0%) for-loop ...erbie/master/src/core/regimes.rkt:45:6 option-on-expr [77] 100.0% ------------------------------------------------------------------------- make-multiplication-subnode [68] 100.0% [72] 398(1.0%) 196(0.5%) for-loop ...erbie/master/src/core/reduce.rkt:244:3 loop [152] 50.8% ------------------------------------------------------------------------- run-iter! [69] 100.0% [73] 11124(28.3%) 0(0.0%) finalize-iter! ...ie/master/src/mainloop.rkt:278:0 ??? [82] 100.0% ------------------------------------------------------------------------- run-iter! [69] 100.0% [74] 8198(20.9%) 0(0.0%) gen-series! ...erbie/master/src/mainloop.rkt:160:0 for-loop [83] 100.0% ------------------------------------------------------------------------- loop [70] 100.0% [75] 7436(18.9%) 568(1.4%) loop ...ightlies/herbie/master/src/points.rkt:79:2 ??? [84] 65.3% real->precision [85] 16.5% ??? [154] 8.1% hash-update! [95] 2.5% ------------------------------------------------------------------------- loop [70] 100.0% [76] 3174(8.1%) 384(1.0%) ??? ...ightlies/herbie/master/src/points.rkt:113:6 sample-multi-bounded [156] 44.0% loop [152] 31.6% ??? [84] 12.2% ------------------------------------------------------------------------- for-loop [71] 100.0% [77] 1812(4.6%) 0(0.0%) option-on-expr ...aster/src/core/regimes.rkt:124:0 for-loop [86] 66.4% err-lsts->split-indices [92] 11.4% ??? [154] 11.1% sort-context-on-expr [94] 11.0% ------------------------------------------------------------------------- run-improve47 [48] 16.3% run-iter! [69] 83.7% [78] 1338(3.4%) 0(0.0%) simplify! .../herbie/master/src/mainloop.rkt:224:0 ??? [87] 84.5% for-loop [91] 15.5% ------------------------------------------------------------------------- run-iter! [69] 100.0% [79] 782(2.0%) 0(0.0%) gen-rewrites! ...bie/master/src/mainloop.rkt:183:0 for-loop [89] 74.4% for-loop [93] 25.6% ------------------------------------------------------------------------- run-iter! [69] 100.0% [80] 594(1.5%) 0(0.0%) choose-best-alt! .../master/src/mainloop.rkt:117:0 ...ow-val-first.rkt:486:18 [88] 100.0% ------------------------------------------------------------------------- run-iter! [69] 100.0% [81] 438(1.1%) 0(0.0%) localize! .../herbie/master/src/mainloop.rkt:127:0 localize-error [90] 100.0% ------------------------------------------------------------------------- debug5 [44] 1.9% finalize-iter! [73] 98.1% [82] 11334(28.8%) 210(0.5%) ??? ...contract/private/arrow-val-first.rkt:486:18 for-loop [96] 96.3% atab-add-altns [104] 1.9% ------------------------------------------------------------------------- gen-series! [74] 100.0% [83] 8198(20.9%) 0(0.0%) for-loop ...s/herbie/master/src/mainloop.rkt:167:7 taylor-alt [97] 100.0% ------------------------------------------------------------------------- ??? [76] 7.4% loop [75] 92.6% [84] 5246(13.4%) 1564(4.0%) ??? ...tract/private/arrow-higher-order.rkt:379:33 ival-log [98] 40.3% ival-sub [99] 21.9% ival-add [103] 4.1% ??? [107] 3.9% ------------------------------------------------------------------------- loop [75] 100.0% [85] 1224(3.1%) 0(0.0%) real->precision ...e/master/src/programs.rkt:94:11 ??? [154] 100.0% ------------------------------------------------------------------------- option-on-expr [77] 100.0% [86] 1204(3.1%) 0(0.0%) for-loop ...rbie/master/src/core/regimes.rkt:135:4 errors [129] 100.0% ------------------------------------------------------------------------- simplify! [78] 100.0% [87] 1130(2.9%) 0(0.0%) ??? ...es/herbie/master/src/core/simplify.rkt:42:0 egraph-run [100] 100.0% ------------------------------------------------------------------------- choose-best-alt! [80] 100.0% [88] 594(1.5%) 0(0.0%) ...ow-val-first.rkt:486:18 (unknown source) ??? [101] 100.0% ------------------------------------------------------------------------- gen-rewrites! [79] 100.0% [89] 582(1.5%) 0(0.0%) for-loop .../herbie/master/src/mainloop.rkt:191:11 rewrite-expression-head24 [102] 100.0% ------------------------------------------------------------------------- localize! [81] 100.0% [90] 438(1.1%) 0(0.0%) localize-error ...aster/src/core/localize.rkt:58:0 hash-ref! [159] 100.0% ------------------------------------------------------------------------- simplify! [78] 100.0% [91] 208(0.5%) 0(0.0%) for-loop ...s/herbie/master/src/mainloop.rkt:262:6 for-loop [105] 100.0% ------------------------------------------------------------------------- option-on-expr [77] 100.0% [92] 206(0.5%) 0(0.0%) err-lsts->split-indices .../core/regimes.rkt:263:0 loop [106] 100.0% ------------------------------------------------------------------------- gen-rewrites! [79] 100.0% [93] 200(0.5%) 0(0.0%) for-loop ...s/herbie/master/src/mainloop.rkt:208:4 for-loop [108] 100.0% ------------------------------------------------------------------------- option-on-expr [77] 100.0% [94] 200(0.5%) 0(0.0%) sort-context-on-expr ...src/core/regimes.rkt:117:0 temp85_0 [134] 100.0% ------------------------------------------------------------------------- loop [75] 100.0% [95] 186(0.5%) 186(0.5%) hash-update! ...cket/private/more-scheme.rkt:365:4 ------------------------------------------------------------------------- ??? [82] 100.0% [96] 10910(27.8%) 212(0.5%) for-loop ...bie/master/src/core/alt-table.rkt:46:2 atab-add-altn [110] 70.6% errors [129] 18.4% loop [112] 9.1% ------------------------------------------------------------------------- for-loop [83] 100.0% [97] 8198(20.9%) 0(0.0%) taylor-alt ...herbie/master/src/mainloop.rkt:146:0 for-loop [109] 100.0% ------------------------------------------------------------------------- ??? [84] 100.0% [98] 2116(5.4%) 1334(3.4%) ival-log ...erbie/master/src/biginterval.rkt:191:0 bflog [113] 37.0% ------------------------------------------------------------------------- ??? [84] 100.0% [99] 1148(2.9%) 0(0.0%) ival-sub ...erbie/master/src/biginterval.rkt:113:0 bfadd [170] 100.0% ------------------------------------------------------------------------- ??? [87] 100.0% [100] 1130(2.9%) 0(0.0%) egraph-run .../pkgs/egg-herbie-linux/main.rkt:49:0 egraph-add-exprs [111] 100.0% ------------------------------------------------------------------------- ...ow-val-first.rkt:486:18 [88] 100.0% [101] 594(1.5%) 0(0.0%) ??? ...s/herbie/master/src/core/alt-table.rkt:49:0 argmin [116] 66.3% loop [115] 33.7% ------------------------------------------------------------------------- for-loop [89] 100.0% [102] 582(1.5%) 0(0.0%) rewrite-expression-head24 ...core/matcher.rkt:85:0 rewriter [114] 100.0% ------------------------------------------------------------------------- ??? [84] 100.0% [103] 216(0.5%) 0(0.0%) ival-add ...erbie/master/src/biginterval.rkt:107:0 bfadd [170] 100.0% ------------------------------------------------------------------------- ??? [82] 100.0% [104] 214(0.5%) 0(0.0%) atab-add-altns ...ster/src/core/alt-table.rkt:40:0 atab-add-altn [110] 100.0% ------------------------------------------------------------------------- for-loop [91] 100.0% [105] 208(0.5%) 208(0.5%) for-loop ...s/herbie/master/src/mainloop.rkt:263:8 ------------------------------------------------------------------------- err-lsts->split-indices [92] 100.0% [106] 206(0.5%) 0(0.0%) loop ...s/herbie/master/src/core/regimes.rkt:314:4 for-loop [117] 100.0% ------------------------------------------------------------------------- ??? [84] 100.0% [107] 202(0.5%) 0(0.0%) ??? ...ects/racket/contract/private/prop.rkt:567:4 ??? [118] 100.0% ------------------------------------------------------------------------- for-loop [93] 100.0% [108] 200(0.5%) 0(0.0%) for-loop ...s/herbie/master/src/mainloop.rkt:209:6 change-apply [119] 100.0% ------------------------------------------------------------------------- taylor-alt [97] 100.0% [109] 8198(20.9%) 0(0.0%) for-loop ...s/herbie/master/src/mainloop.rkt:152:6 ??? [154] 100.0% ------------------------------------------------------------------------- atab-add-altns [104] 2.7% for-loop [96] 97.3% [110] 7912(20.1%) 0(0.0%) atab-add-altn ...ster/src/core/alt-table.rkt:194:0 errors [129] 87.0% override-at-pnts [121] 7.8% append-at-pnts [125] 2.7% map [179] 2.6% ------------------------------------------------------------------------- egraph-run [100] 100.0% [111] 1130(2.9%) 0(0.0%) egraph-add-exprs ...gg-herbie-linux/main.rkt:111:0 ??? [120] 81.1% loop [152] 18.9% ------------------------------------------------------------------------- for-loop [96] 100.0% [112] 990(2.5%) 0(0.0%) loop ...herbie/master/src/core/alt-table.rkt:168:2 loop [122] 60.8% map [179] 39.2% ------------------------------------------------------------------------- ival-log [98] 100.0% [113] 782(2.0%) 0(0.0%) bflog ...-lib/math/private/bigfloat/mpfr.rkt:632:4 new-mpfr [180] 75.7% ??? [182] 24.3% ------------------------------------------------------------------------- matcher [175] 43.8% rewrite-expression-head24 [102] 56.2% [114] 582(1.5%) 0(0.0%) rewriter ...erbie/master/src/core/matcher.rkt:87:2 for-loop [124] 100.0% ------------------------------------------------------------------------- ??? [101] 49.8% for-loop [63] 50.2% [115] 402(1.0%) 202(0.5%) loop .../racket-7.5/collects/racket/list.rkt:751:4 ??? [123] 49.8% ------------------------------------------------------------------------- ??? [101] 100.0% [116] 394(1.0%) 0(0.0%) argmin ...acket-7.5/collects/racket/list.rkt:765:0 ??? [123] 100.0% ------------------------------------------------------------------------- loop [106] 100.0% [117] 206(0.5%) 0(0.0%) for-loop ...rbie/master/src/core/regimes.rkt:279:4 for-loop [126] 100.0% ------------------------------------------------------------------------- ??? [107] 100.0% [118] 202(0.5%) 0(0.0%) ??? ...lects/racket/contract/private/orc.rkt:83:14 ??? [127] 100.0% ------------------------------------------------------------------------- for-loop [108] 100.0% [119] 200(0.5%) 0(0.0%) change-apply ...e/master/src/core/matcher.rkt:69:0 pattern-substitute [128] 100.0% ------------------------------------------------------------------------- egraph-add-exprs [111] 100.0% [120] 916(2.3%) 0(0.0%) ??? ...s/herbie/master/src/core/simplify.rkt:102:6 for-loop [130] 77.1% egg-run-rules [132] 22.9% ------------------------------------------------------------------------- atab-add-altn [110] 100.0% [121] 620(1.6%) 0(0.0%) override-at-pnts ...r/src/core/alt-table.rkt:129:0 for-loop [131] 100.0% ------------------------------------------------------------------------- loop [112] 2.9% loop [122] 97.1% [122] 602(1.5%) 602(1.5%) loop ...racket-7.5/collects/racket/list.rkt:434:28 loop [122] 97.1% ------------------------------------------------------------------------- loop [115] 33.7% argmin [116] 66.3% [123] 594(1.5%) 0(0.0%) ??? ...tlies/herbie/master/src/mainloop.rkt:114:10 errors [129] 100.0% ------------------------------------------------------------------------- rewriter [114] 100.0% [124] 582(1.5%) 0(0.0%) for-loop ...erbie/master/src/core/matcher.rkt:89:4 hash-ref! [159] 88.7% for-loop [133] 11.3% ------------------------------------------------------------------------- atab-add-altn [110] 100.0% [125] 210(0.5%) 0(0.0%) append-at-pnts ...ter/src/core/alt-table.rkt:137:0 loop [152] 100.0% ------------------------------------------------------------------------- for-loop [117] 100.0% [126] 206(0.5%) 206(0.5%) for-loop ...rbie/master/src/core/regimes.rkt:283:8 ------------------------------------------------------------------------- ??? [118] 100.0% [127] 202(0.5%) 202(0.5%) ??? ...ects/racket/contract/private/list.rkt:163:5 ------------------------------------------------------------------------- change-apply [119] 100.0% [128] 200(0.5%) 0(0.0%) pattern-substitute ...er/src/core/matcher.rkt:45:0 assoc-ref [145] 100.0% ------------------------------------------------------------------------- ??? [123] 5.1% .../more-scheme.rkt:261:28 [38] 8.8% for-loop [86] 10.3% for-loop [96] 17.1% atab-add-altn [110] 58.7% [129] 11722(29.8%) 0(0.0%) errors ...tlies/herbie/master/src/points.rkt:190:0 for-loop [135] 55.5% temp85_0 [134] 37.6% eval [136] 3.5% eval-prog [137] 3.4% ------------------------------------------------------------------------- ??? [120] 100.0% [130] 706(1.8%) 706(1.8%) for-loop ...bie/master/src/core/simplify.rkt:121:2 ------------------------------------------------------------------------- override-at-pnts [121] 100.0% [131] 620(1.6%) 620(1.6%) for-loop ...e/master/src/core/alt-table.rkt:130:22 ------------------------------------------------------------------------- ??? [120] 100.0% [132] 210(0.5%) 210(0.5%) egg-run-rules ...aster/src/core/simplify.rkt:108:0 ------------------------------------------------------------------------- for-loop [124] 100.0% [133] 198(0.5%) 0(0.0%) for-loop ...erbie/master/src/core/matcher.rkt:96:8 fix-up-variables [138] 100.0% ------------------------------------------------------------------------- sort-context-on-expr [94] 2.1% errors [129] 46.5% eval-const-expr [62] 51.3% [134] 9470(24.1%) 0(0.0%) temp85_0 (unknown source) compile15 [139] 100.0% ------------------------------------------------------------------------- errors [129] 100.0% [135] 6502(16.5%) 200(0.5%) for-loop ...ies/herbie/master/src/points.rkt:192:2 .../more-scheme.rkt:261:28 [38] 96.9% ------------------------------------------------------------------------- errors [129] 49.3% eval-const-expr [62] 50.7% [136] 832(2.1%) 0(0.0%) eval (unknown source) datum->syntax6 [140] 73.3% add-ns-scopes [141] 26.7% ------------------------------------------------------------------------- eval-const-expr [62] 33.2% errors [129] 66.8% [137] 602(1.5%) 200(0.5%) eval-prog ...s/herbie/master/src/programs.rkt:82:0 hash-ref! [159] 34.2% for-loop [143] 32.6% ------------------------------------------------------------------------- for-loop [133] 100.0% [138] 198(0.5%) 0(0.0%) fix-up-variables ...ter/src/core/matcher.rkt:108:2 for-loop [142] 100.0% ------------------------------------------------------------------------- temp85_0 [134] 100.0% [139] 9470(24.1%) 0(0.0%) compile15 (unknown source) temp91_0 [144] 95.7% loop [152] 4.3% ------------------------------------------------------------------------- substitute-variable6 [29] 24.7% eval [136] 75.3% [140] 810(2.1%) 200(0.5%) datum->syntax6 (unknown source) loop [152] 75.3% ------------------------------------------------------------------------- eval [136] 100.0% [141] 222(0.6%) 0(0.0%) add-ns-scopes (unknown source) gf [155] 100.0% ------------------------------------------------------------------------- fix-up-variables [138] 100.0% [142] 198(0.5%) 0(0.0%) for-loop ...erbie/master/src/core/matcher.rkt:41:9 for-loop [199] 100.0% ------------------------------------------------------------------------- eval-prog [137] 100.0% [143] 196(0.5%) 0(0.0%) for-loop .../herbie/master/src/programs.rkt:114:15 assoc-ref [145] 100.0% ------------------------------------------------------------------------- compile15 [139] 100.0% [144] 9062(23.1%) 0(0.0%) temp91_0 (unknown source) temp118_0 [146] 88.9% compile-top9 [147] 8.9% loop [152] 2.2% ------------------------------------------------------------------------- for-loop [143] 49.5% pattern-substitute [128] 50.5% [145] 396(1.0%) 396(1.0%) assoc-ref ...collects/racket/private/dict.rkt:56:0 ------------------------------------------------------------------------- temp91_0 [144] 100.0% [146] 8056(20.5%) 0(0.0%) temp118_0 (unknown source) expand-capturing-lifts [148] 100.0% ------------------------------------------------------------------------- temp91_0 [144] 100.0% [147] 806(2.1%) 208(0.5%) compile-top9 (unknown source) compile-forms33 [149] 49.4% hash->linklet-bundle [150] 24.8% ------------------------------------------------------------------------- loop [152] 9.2% temp118_0 [146] 90.8% [148] 8868(22.6%) 200(0.5%) expand-capturing-lifts (unknown source) lambda-clause-expander [151] 88.3% loop [152] 7.1% dispatch-transformer41 [5] 2.3% ------------------------------------------------------------------------- compile-top9 [147] 100.0% [149] 398(1.0%) 198(0.5%) compile-forms33 (unknown source) for-loop [178] 50.3% ------------------------------------------------------------------------- compile-top9 [147] 100.0% [150] 200(0.5%) 200(0.5%) hash->linklet-bundle (unknown source) ------------------------------------------------------------------------- expand-capturing-lifts [148] 100.0% [151] 7834(19.9%) 246(0.6%) lambda-clause-expander (unknown source) finish-bodys [153] 94.3% loop [152] 2.6% ------------------------------------------------------------------------- egraph-add-exprs [111] 0.1% ??? [12] 0.1% append-at-pnts [125] 0.2% eval-const-expr [62] 0.2% temp91_0 [144] 1.1% lambda-clause-expander [151] 1.1% for-loop [72] 2.2% ??? [176] 2.3% datum->syntax6 [140] 2.5% gf [155] 3.0% compile15 [139] 3.3% syntax->list [65] 4.2% loop [70] 4.3% expand-capturing-lifts [148] 4.7% for-loop [63] 5.7% for-loop [178] 6.6% apply-transformer52 [21] 7.7% ??? [76] 11.1% syntax-e/no-taint [23] 19.4% loop [152] 20.3% [152] 9082(23.1%) 3506(8.9%) loop (unknown source) gf [155] 20.7% loop [152] 20.3% sample-multi-bounded [156] 8.8% expand-id-application-form17 [157] 6.6% core-form-sym [158] 5.5% expand-capturing-lifts [148] 4.7% syntax-e [8] 4.2% ??? [191] 3.9% hash-ref! [159] 2.3% dispatch-transformer41 [5] 1.1% ??? [154] 0.1% ------------------------------------------------------------------------- lambda-clause-expander [151] 21.8% for-loop [178] 78.2% [153] 7386(18.8%) 0(0.0%) finish-bodys (unknown source) for-loop [178] 100.0% ------------------------------------------------------------------------- loop [152] 1.6% option-on-expr [77] 1.8% ??? [12] 2.3% loop [75] 5.3% .../more-scheme.rkt:261:28 [38] 5.4% ??? [7] 8.6% real->precision [85] 10.9% loop [19] 10.9% location-do [160] 26.6% for-loop [109] 26.6% [154] 11268(28.7%) 1206(3.1%) ??? ...tract/private/arrow-higher-order.rkt:375:33 location-do [160] 26.6% approximate9 [2] 26.6% hash-ref! [159] 19.5% bf [164] 9.4% ival-mult [165] 5.3% ??? [167] 1.8% ------------------------------------------------------------------------- apply-post-expansion [37] 1.1% add-ns-scopes [141] 2.8% loop [152] 96.1% [155] 2614(6.7%) 612(1.6%) gf (unknown source) propagation-apply [162] 61.1% loop [152] 15.2% propagation-merge [168] 7.0% ------------------------------------------------------------------------- loop [152] 36.3% ??? [76] 63.7% [156] 2196(5.6%) 0(0.0%) sample-multi-bounded ...master/src/points.rkt:14:0 random-ranges [161] 90.1% for-loop [166] 9.9% ------------------------------------------------------------------------- loop [152] 100.0% [157] 796(2.0%) 0(0.0%) expand-id-application-form17 (unknown source) syntax-e/no-taint [23] 50.3% resolve+shift28 [163] 49.7% ------------------------------------------------------------------------- loop [152] 100.0% [158] 600(1.5%) 196(0.5%) core-form-sym (unknown source) resolve+shift28 [163] 67.3% ------------------------------------------------------------------------- for-loop [24] 0.3% eval-prog [137] 0.6% localize-error [90] 1.7% loop [152] 1.9% ??? [173] 2.0% for-loop [27] 2.1% taylor-sqrt [187] 2.2% for-loop [40] 2.4% first-nonzero-exp [58] 2.4% ??? [7] 3.1% for-loop [35] 3.4% map [179] 3.6% ??? [33] 4.4% for-loop [124] 5.0% for-loop [22] 5.1% loop [19] 7.8% for-loop [20] 11.2% ??? [3] 15.8% ??? [154] 23.9% [159] 8216(20.9%) 590(1.5%) hash-ref! .../racket/private/more-scheme.rkt:376:2 ??? [3] 20.2% ??? [4] 11.8% parse-loop74 [49] 11.2% ??? [7] 10.9% f40 [169] 10.1% ??? [6] 8.2% matcher [175] 4.2% ??? [9] 3.7% parse-loop15 [11] 3.6% ??? [10] 2.4% f61 [31] 2.2% ??? [173] 2.0% ??? [176] 1.9% ??? [12] 1.7% taylor [34] 1.2% make-multiplication-node [56] 0.3% ------------------------------------------------------------------------- ??? [154] 40.8% location-do [160] 59.2% [160] 8198(20.9%) 0(0.0%) location-do ...herbie/master/src/programs.rkt:63:0 location-do [160] 59.2% ??? [154] 40.8% ------------------------------------------------------------------------- sample-multi-bounded [156] 100.0% [161] 1978(5.0%) 204(0.5%) random-ranges ...erbie/master/src/common.rkt:164:0 cons/c [172] 70.1% build--> [174] 19.6% ------------------------------------------------------------------------- gf [155] 100.0% [162] 1596(4.1%) 1596(4.1%) propagation-apply (unknown source) ------------------------------------------------------------------------- expand-implicit [13] 14.7% expand-id-application-form17 [157] 28.2% expand-identifier [14] 28.2% core-form-sym [158] 28.8% [163] 1402(3.6%) 0(0.0%) resolve+shift28 (unknown source) fallback-loop [171] 100.0% ------------------------------------------------------------------------- ??? [154] 100.0% [164] 1062(2.7%) 0(0.0%) bf ...ath-lib/math/private/bigfloat/mpfr.rkt:615:2 new-mpfr [180] 82.7% ??? [182] 17.3% ------------------------------------------------------------------------- ??? [154] 100.0% [165] 600(1.5%) 0(0.0%) ival-mult ...rbie/master/src/biginterval.rkt:125:0 bfadd [170] 100.0% ------------------------------------------------------------------------- sample-multi-bounded [156] 100.0% [166] 218(0.6%) 218(0.6%) for-loop ...lies/herbie/master/src/points.rkt:20:4 ------------------------------------------------------------------------- ??? [167] 50.0% ??? [154] 50.0% [167] 202(0.5%) 0(0.0%) ??? ...cts/racket/contract/private/list.rkt:209:10 ??? [167] 50.0% for-loop [177] 50.0% ------------------------------------------------------------------------- gf [155] 100.0% [168] 184(0.5%) 184(0.5%) propagation-merge (unknown source) ------------------------------------------------------------------------- for-loop [20] 3.6% parse-loop49 [185] 4.3% hash-ref! [159] 45.4% map [179] 46.7% [169] 3082(7.8%) 0(0.0%) f40 (unknown source) map [179] 100.0% ------------------------------------------------------------------------- ival-add [103] 11.0% ival-mult [165] 30.5% ival-sub [99] 58.5% [170] 1964(5.0%) 200(0.5%) bfadd ...-lib/math/private/bigfloat/mpfr.rkt:835:4 ??? [182] 50.6% new-mpfr [180] 39.2% ------------------------------------------------------------------------- resolve+shift28 [163] 100.0% [171] 1402(3.6%) 606(1.5%) fallback-loop (unknown source) for-loop [178] 56.8% ------------------------------------------------------------------------- random-ranges [161] 100.0% [172] 1386(3.5%) 0(0.0%) cons/c .../racket/contract/private/guts.rkt:500:15 coerce-contract [181] 100.0% ------------------------------------------------------------------------- hash-ref! [159] 100.0% [173] 1010(2.6%) 0(0.0%) ??? ...es/herbie/master/src/core/taylor.rkt:343:33 hash-ref! [159] 100.0% ------------------------------------------------------------------------- random-ranges [161] 100.0% [174] 388(1.0%) 388(1.0%) build--> ...act/private/arrow-val-first.rkt:1214:0 ------------------------------------------------------------------------- hash-ref! [159] 100.0% [175] 382(1.0%) 0(0.0%) matcher ...erbie/master/src/core/matcher.rkt:119:2 ??? [15] 50.0% rewriter [114] 50.0% ------------------------------------------------------------------------- hash-ref! [159] 100.0% [176] 206(0.5%) 0(0.0%) ??? ...htlies/herbie/master/src/programs.rkt:178:5 loop [152] 100.0% ------------------------------------------------------------------------- ??? [167] 100.0% [177] 202(0.5%) 202(0.5%) for-loop ...acket/contract/private/list.rkt:212:15 ------------------------------------------------------------------------- fallback-loop [171] 1.1% compile-forms33 [149] 2.6% for-loop [178] 18.1% finish-bodys [153] 78.2% [178] 7586(19.3%) 2186(5.6%) for-loop (unknown source) finish-bodys [153] 63.6% for-loop [178] 18.1% dispatch-transformer41 [5] 10.2% compile-module-linklet57 [188] 2.6% syntax-e [8] 1.7% loop [152] 0.6% expand-implicit [13] 0.5% dispatch-variable [17] 0.1% expand-identifier [14] 0.1% ------------------------------------------------------------------------- parse-loop49 [185] 0.9% atab-add-altn [110] 3.5% f61 [31] 4.7% loop [112] 6.8% for-loop [63] 7.2% parse-loop15 [11] 7.7% taylor [34] 19.5% f40 [169] 49.6% [179] 5696(14.5%) 402(1.0%) map ...t-7.5/collects/racket/private/map.rkt:35:13 f40 [169] 24.0% f61 [31] 15.2% loop [184] 14.0% taylor [34] 12.7% parse-loop74 [49] 10.1% hash-ref! [159] 7.7% taylor-sqrt [187] 6.7% parse-loop49 [185] 3.3% simplify-node [186] 0.9% ??? [189] 0.5% ------------------------------------------------------------------------- bflog [113] 26.4% bfadd [170] 34.4% bf [164] 39.2% [180] 2240(5.7%) 2240(5.7%) new-mpfr ...b/math/private/bigfloat/mpfr.rkt:348:0 ------------------------------------------------------------------------- cons/c [172] 100.0% [181] 1386(3.5%) 0(0.0%) coerce-contract ...contract/private/guts.rkt:307:0 coerce-contract/f [183] 100.0% ------------------------------------------------------------------------- bf [164] 13.5% bflog [113] 13.9% bfadd [170] 72.7% [182] 1368(3.5%) 1368(3.5%) ??? /opt/racket-7.5/collects/ffi/unsafe.rkt:938:4 ------------------------------------------------------------------------- coerce-contract [181] 100.0% [183] 1386(3.5%) 0(0.0%) coerce-contract/f ...ntract/private/guts.rkt:372:0 coerce-simple-value [190] 100.0% ------------------------------------------------------------------------- loop [184] 35.6% map [179] 64.4% [184] 798(2.0%) 210(0.5%) loop ...-7.5/collects/racket/private/map.rkt:40:19 loop [184] 35.6% ??? [191] 25.1% ??? [193] 13.0% ------------------------------------------------------------------------- map [179] 100.0% [185] 614(1.6%) 0(0.0%) parse-loop49 (unknown source) f40 [169] 64.8% map [179] 35.2% ------------------------------------------------------------------------- taylor-invert [41] 49.8% map [179] 50.2% [186] 414(1.1%) 0(0.0%) simplify-node ...e/master/src/core/reduce.rkt:46:0 gather-multiplicative-terms [194] 50.2% constant? [192] 49.8% ------------------------------------------------------------------------- map [179] 100.0% [187] 384(1.0%) 0(0.0%) taylor-sqrt ...ie/master/src/core/taylor.rkt:351:0 parse-loop74 [49] 52.1% hash-ref! [159] 47.9% ------------------------------------------------------------------------- for-loop [178] 100.0% [188] 200(0.5%) 200(0.5%) compile-module-linklet57 (unknown source) ------------------------------------------------------------------------- map [179] 100.0% [189] 200(0.5%) 0(0.0%) ??? ...lies/herbie/master/src/core/reduce.rkt:57:5 for-loop [195] 100.0% ------------------------------------------------------------------------- coerce-contract/f [183] 100.0% [190] 1386(3.5%) 1386(3.5%) coerce-simple-value ...ract/private/guts.rkt:385:0 ------------------------------------------------------------------------- loop [184] 20.0% loop [152] 80.0% [191] 1000(2.5%) 200(0.5%) ??? ...ghtlies/herbie/master/src/points.rkt:179:26 ??? [196] 80.0% ------------------------------------------------------------------------- free-variables [54] 49.3% simplify-node [186] 50.7% [192] 406(1.0%) 0(0.0%) constant? ...ie/master/src/syntax/syntax.rkt:726:0 value? [197] 100.0% ------------------------------------------------------------------------- loop [184] 100.0% [193] 388(1.0%) 388(1.0%) ??? ...herbie/master/src/core/alt-table.rkt:185:12 ------------------------------------------------------------------------- simplify-node [186] 100.0% [194] 208(0.5%) 208(0.5%) gather-multiplicative-terms ...re/reduce.rkt:110:0 ------------------------------------------------------------------------- ??? [189] 100.0% [195] 200(0.5%) 0(0.0%) for-loop ...herbie/master/src/core/reduce.rkt:58:7 pattern-match [198] 100.0% ------------------------------------------------------------------------- ??? [191] 16.5% .../more-scheme.rkt:261:28 [38] 83.5% [196] 4850(12.3%) 3438(8.7%) ??? .../herbie/master/src/syntax/syntax.rkt:214:17 return/no-unsupplied [201] 25.0% ??? [200] 4.1% ------------------------------------------------------------------------- constant? [192] 100.0% [197] 406(1.0%) 406(1.0%) value? .../herbie/master/src/syntax/types.rkt:18:0 ------------------------------------------------------------------------- for-loop [195] 100.0% [198] 200(0.5%) 0(0.0%) pattern-match .../master/src/core/matcher.rkt:29:0 for-loop [199] 100.0% ------------------------------------------------------------------------- for-loop [142] 49.7% pattern-match [198] 50.3% [199] 398(1.0%) 0(0.0%) for-loop ...erbie/master/src/core/matcher.rkt:26:9 core457 [202] 50.3% return/no-unsupplied [201] 49.7% ------------------------------------------------------------------------- ??? [196] 100.0% [200] 200(0.5%) 200(0.5%) ??? ...ects/racket/contract/private/prop.rkt:301:4 ------------------------------------------------------------------------- for-loop [199] 12.3% *bit-width* [57] 12.7% ??? [196] 75.0% [201] 1616(4.1%) 804(2.0%) return/no-unsupplied ...ct/private/arr-i.rkt:566:0 filter [203] 50.2% ------------------------------------------------------------------------- for-loop [199] 100.0% [202] 200(0.5%) 0(0.0%) core457 ...acket/contract/private/arr-i.rkt:976:19 or/c [204] 100.0% ------------------------------------------------------------------------- return/no-unsupplied [201] 100.0% [203] 812(2.1%) 812(2.1%) filter ...5/collects/racket/private/list.rkt:256:2 ------------------------------------------------------------------------- core457 [202] 100.0% [204] 200(0.5%) 200(0.5%) or/c ...lects/racket/contract/private/orc.rkt:16:2 -------------------------------------------------------------------------