Profiling results ----------------- Total cpu time observed: 35300ms (out of 35420ms) Number of samples taken: 170 (once every 208ms) (Hiding functions with self<1.0% and local<2.0%: 6 of 215 hidden) ========================================================================= Caller Idx Total Self Name+src Local% ms(pct) ms(pct) Callee ========================================================================= [1] 35300(100.0%) 0(0.0%) ??? ...lects/racket/private/more-scheme.rkt:261:28 profile-thunk16 [20] 100.0% ------------------------------------------------------------------------- ??? [120] 100.0% [2] 8504(24.1%) 0(0.0%) approximate9 ...pler-alts/src/core/taylor.rkt:11:0 loop [21] 88.1% for-loop [29] 11.9% ------------------------------------------------------------------------- loop [163] 9.4% for-loop [162] 90.6% [3] 4342(12.3%) 0(0.0%) syntax-e (unknown source) syntax-e/no-taint [23] 100.0% ------------------------------------------------------------------------- hash-ref! [168] 100.0% [4] 4122(11.7%) 0(0.0%) ??? ...bie/simpler-alts/src/core/taylor.rkt:300:23 for-loop [24] 100.0% ------------------------------------------------------------------------- hash-ref! [168] 100.0% [5] 3482(9.9%) 0(0.0%) ??? ...rbie/simpler-alts/src/core/taylor.rkt:67:15 ??? [120] 56.3% hash-ref! [168] 43.7% ------------------------------------------------------------------------- ??? [120] 8.0% map [73] 30.7% hash-ref! [168] 61.3% [6] 2496(7.1%) 0(0.0%) f40 (unknown source) map [73] 100.0% ------------------------------------------------------------------------- for-loop [162] 100.0% [7] 2262(6.4%) 0(0.0%) dispatch-transformer41 (unknown source) apply-transformer52 [25] 100.0% ------------------------------------------------------------------------- hash-ref! [168] 100.0% [8] 2240(6.3%) 0(0.0%) ??? ...bie/simpler-alts/src/core/taylor.rkt:406:23 for-loop [26] 100.0% ------------------------------------------------------------------------- hash-ref! [168] 100.0% [9] 1630(4.6%) 0(0.0%) ??? ...bie/simpler-alts/src/core/taylor.rkt:290:26 for-loop [28] 100.0% ------------------------------------------------------------------------- for-loop [162] 100.0% [10] 1408(4.0%) 0(0.0%) expand-implicit (unknown source) resolve+shift28 [27] 43.2% datum->syntax6 [43] 42.6% binding-lookup52 [33] 14.2% ------------------------------------------------------------------------- hash-ref! [168] 100.0% [11] 1024(2.9%) 0(0.0%) ??? ...bie/simpler-alts/src/core/taylor.rkt:362:30 ??? [38] 80.5% f61 [188] 19.5% ------------------------------------------------------------------------- for-loop [162] 100.0% [12] 634(1.8%) 0(0.0%) expand-identifier (unknown source) resolve+shift28 [27] 100.0% ------------------------------------------------------------------------- map [73] 32.1% taylor [180] 67.9% [13] 624(1.8%) 0(0.0%) taylor-invert ...er-alts/src/core/taylor.rkt:317:0 parse-loop74 [22] 64.1% first-nonzero-exp [31] 35.9% ------------------------------------------------------------------------- taylor [180] 100.0% [14] 416(1.2%) 0(0.0%) taylor-sqrt ...pler-alts/src/core/taylor.rkt:351:0 parse-loop74 [22] 50.5% f61 [188] 49.5% ------------------------------------------------------------------------- hash-ref! [168] 100.0% [15] 402(1.1%) 0(0.0%) ??? .../herbie/simpler-alts/src/programs.rkt:202:5 loop [163] 100.0% ------------------------------------------------------------------------- matcher [184] 100.0% [16] 402(1.1%) 0(0.0%) ??? ...ie/simpler-alts/src/core/matcher.rkt:129:11 for-loop [30] 100.0% ------------------------------------------------------------------------- loop [163] 100.0% [17] 216(0.6%) 0(0.0%) read-one/not-eof (unknown source) read-undotted [45] 100.0% ------------------------------------------------------------------------- loop [163] 100.0% [18] 216(0.6%) 0(0.0%) egg-expr->expr ...s/egg-herbie-linux/main.rkt:55:0 read [32] 100.0% ------------------------------------------------------------------------- compile5 [166] 4.3% compile-let13 [19] 95.7% [19] 206(0.6%) 0(0.0%) compile-let13 (unknown source) compile-let13 [19] 95.7% compile5 [166] 2.1% for-loop [162] 2.1% ------------------------------------------------------------------------- ??? [1] 100.0% [20] 35300(100.0%) 0(0.0%) profile-thunk16 ...e/pkgs/profile-lib/main.rkt:9:0 run [34] 100.0% ------------------------------------------------------------------------- approximate9 [2] 100.0% [21] 7488(21.2%) 0(0.0%) loop ...rbie/simpler-alts/src/core/taylor.rkt:86:4 ??? [120] 53.5% hash-ref! [168] 46.5% ------------------------------------------------------------------------- parse-loop74 [22] 2.0% taylor-sqrt [14] 2.0% taylor-invert [13] 7.8% map [73] 24.2% hash-ref! [168] 63.9% [22] 5128(14.5%) 402(1.1%) parse-loop74 (unknown source) eval-const-expr [35] 90.1% parse-loop74 [22] 2.0% ------------------------------------------------------------------------- expand-id-application-form17 [171] 12.6% syntax-e [3] 87.4% [23] 4966(14.1%) 0(0.0%) syntax-e/no-taint (unknown source) loop [163] 100.0% ------------------------------------------------------------------------- ??? [4] 100.0% [24] 4122(11.7%) 0(0.0%) for-loop ...impler-alts/src/core/taylor.rkt:303:27 hash-ref! [168] 100.0% ------------------------------------------------------------------------- dispatch-transformer41 [7] 100.0% [25] 2262(6.4%) 410(1.2%) apply-transformer52 (unknown source) apply-transformer-in-context [39] 55.1% loop [163] 26.8% ------------------------------------------------------------------------- ??? [8] 100.0% [26] 2240(6.3%) 0(0.0%) for-loop ...impler-alts/src/core/taylor.rkt:410:33 for-loop [36] 100.0% ------------------------------------------------------------------------- expand-id-application-form17 [171] 10.8% core-form-sym [174] 22.0% expand-implicit [10] 32.9% expand-identifier [12] 34.3% [27] 1848(5.2%) 206(0.6%) resolve+shift28 (unknown source) fallback-loop [37] 88.9% ------------------------------------------------------------------------- ??? [9] 100.0% [28] 1630(4.6%) 0(0.0%) for-loop ...impler-alts/src/core/taylor.rkt:290:52 hash-ref! [168] 65.9% ??? [38] 21.8% f61 [188] 12.3% ------------------------------------------------------------------------- approximate9 [2] 100.0% [29] 1016(2.9%) 0(0.0%) for-loop ...simpler-alts/src/core/taylor.rkt:29:18 taylor [180] 100.0% ------------------------------------------------------------------------- ??? [16] 100.0% [30] 402(1.1%) 0(0.0%) for-loop ...mpler-alts/src/core/matcher.rkt:131:15 hash-ref! [168] 100.0% ------------------------------------------------------------------------- taylor-invert [13] 100.0% [31] 224(0.6%) 0(0.0%) first-nonzero-exp ...lts/src/core/taylor.rkt:265:0 hash-ref! [168] 100.0% ------------------------------------------------------------------------- egg-expr->expr [18] 100.0% [32] 216(0.6%) 0(0.0%) read (unknown source) read32 [40] 100.0% ------------------------------------------------------------------------- expand-implicit [10] 100.0% [33] 200(0.6%) 200(0.6%) binding-lookup52 (unknown source) ------------------------------------------------------------------------- profile-thunk16 [20] 100.0% [34] 35300(100.0%) 0(0.0%) run ...et-7.5/share/pkgs/profile-lib/main.rkt:39:2 .../more-scheme.rkt:261:28 [41] 100.0% ------------------------------------------------------------------------- f61 [188] 24.3% parse-loop74 [22] 75.7% [35] 6244(17.7%) 0(0.0%) eval-const-expr ...ler-alts/src/programs.rkt:144:0 temp85_0 [140] 93.6% eval [143] 6.4% ------------------------------------------------------------------------- for-loop [26] 100.0% [36] 2240(6.3%) 0(0.0%) for-loop ...impler-alts/src/core/taylor.rkt:412:39 hash-ref! [168] 100.0% ------------------------------------------------------------------------- resolve+shift28 [27] 100.0% [37] 1642(4.7%) 1034(2.9%) fallback-loop (unknown source) for-loop [162] 37.0% ------------------------------------------------------------------------- for-loop [28] 42.4% ??? [11] 57.6% [38] 1430(4.1%) 0(0.0%) ??? ...bie/simpler-alts/src/core/taylor.rkt:293:19 hash-ref! [168] 100.0% ------------------------------------------------------------------------- apply-transformer52 [25] 100.0% [39] 1246(3.5%) 0(0.0%) apply-transformer-in-context (unknown source) parse-app [42] 65.8% go [44] 18.0% datum->syntax6 [43] 16.2% ------------------------------------------------------------------------- read [32] 100.0% [40] 216(0.6%) 0(0.0%) read32 (unknown source) read-undotted [45] 100.0% ------------------------------------------------------------------------- for-loop [141] 5.2% run [34] 94.8% [41] 35300(100.0%) 802(2.3%) .../more-scheme.rkt:261:28 (unknown source) run-improve47 [46] 61.8% prepare-points-intervals [91] 20.2% get-final-combination [47] 8.0% ??? [177] 2.9% oracle-error [48] 1.7% errors [135] 1.4% ??? [106] 0.9% eval-errors [53] 0.6% for-loop [54] 0.6% loop [163] 0.6% ??? [120] 0.3% ------------------------------------------------------------------------- apply-transformer-in-context [39] 100.0% [42] 820(2.3%) 406(1.2%) parse-app ...collects/racket/private/kw.rkt:1142:2 syntax->list [51] 25.4% check-loc [52] 25.1% ------------------------------------------------------------------------- apply-transformer-in-context [39] 25.2% expand-implicit [10] 74.8% [43] 802(2.3%) 200(0.6%) datum->syntax6 (unknown source) loop [163] 75.1% ------------------------------------------------------------------------- apply-transformer-in-context [39] 100.0% [44] 224(0.6%) 0(0.0%) go .../collects/racket/private/qq-and-or.rkt:50:20 loop [49] 100.0% ------------------------------------------------------------------------- read32 [40] 16.7% read-one/not-eof [17] 83.3% [45] 216(0.6%) 0(0.0%) read-undotted (unknown source) read-unwrapped-sequence17 [50] 100.0% ------------------------------------------------------------------------- .../more-scheme.rkt:261:28 [41] 100.0% [46] 23234(65.8%) 0(0.0%) run-improve47 ...mpler-alts/src/mainloop.rkt:365:0 for-loop [55] 99.0% simplify! [68] 1.0% ------------------------------------------------------------------------- .../more-scheme.rkt:261:28 [41] 100.0% [47] 2938(8.3%) 0(0.0%) get-final-combination ...ts/src/mainloop.rkt:390:0 f33 [56] 58.2% infer-splitpoints [57] 41.8% ------------------------------------------------------------------------- .../more-scheme.rkt:261:28 [41] 100.0% [48] 594(1.7%) 0(0.0%) oracle-error .../simpler-alts/src/points.rkt:179:0 for-loop [58] 100.0% ------------------------------------------------------------------------- go [44] 100.0% [49] 224(0.6%) 0(0.0%) loop ...llects/racket/private/qq-and-or.rkt:101:61 stx-cdr [59] 100.0% ------------------------------------------------------------------------- read-undotted [45] 100.0% [50] 216(0.6%) 216(0.6%) read-unwrapped-sequence17 (unknown source) loop [163] 83.3% ------------------------------------------------------------------------- parse-app [42] 100.0% [51] 208(0.6%) 0(0.0%) syntax->list (unknown source) loop [163] 100.0% ------------------------------------------------------------------------- parse-app [42] 100.0% [52] 206(0.6%) 206(0.6%) check-loc ...cts/racket/private/template.rkt:582:0 ------------------------------------------------------------------------- .../more-scheme.rkt:261:28 [41] 100.0% [53] 202(0.6%) 0(0.0%) eval-errors ...e/simpler-alts/src/points.rkt:170:0 for-loop [60] 100.0% ------------------------------------------------------------------------- .../more-scheme.rkt:261:28 [41] 100.0% [54] 200(0.6%) 0(0.0%) for-loop ...rbie/simpler-alts/src/sandbox.rkt:69:8 errors-score [61] 100.0% ------------------------------------------------------------------------- run-improve47 [46] 100.0% [55] 23010(65.2%) 0(0.0%) for-loop ...ie/simpler-alts/src/mainloop.rkt:384:4 run-iter! [62] 100.0% ------------------------------------------------------------------------- get-final-combination [47] 100.0% [56] 1710(4.8%) 0(0.0%) f33 (unknown source) sindices->spoints [63] 100.0% ------------------------------------------------------------------------- get-final-combination [47] 100.0% [57] 1228(3.5%) 0(0.0%) infer-splitpoints ...lts/src/core/regimes.rkt:33:0 for-loop [64] 100.0% ------------------------------------------------------------------------- oracle-error [48] 100.0% [58] 594(1.7%) 0(0.0%) for-loop ...rbie/simpler-alts/src/points.rkt:180:2 map [73] 67.3% loop [163] 32.7% ------------------------------------------------------------------------- loop [49] 100.0% [59] 224(0.6%) 224(0.6%) stx-cdr ....5/collects/racket/private/stx.rkt:74:4 ------------------------------------------------------------------------- eval-errors [53] 100.0% [60] 202(0.6%) 0(0.0%) for-loop ...rbie/simpler-alts/src/points.rkt:172:2 ??? [106] 100.0% ------------------------------------------------------------------------- for-loop [54] 100.0% [61] 200(0.6%) 0(0.0%) errors-score .../simpler-alts/src/points.rkt:187:0 loop [163] 100.0% ------------------------------------------------------------------------- for-loop [55] 100.0% [62] 23010(65.2%) 0(0.0%) run-iter! ...e/simpler-alts/src/mainloop.rkt:346:0 finalize-iter! [65] 51.8% gen-series! [66] 37.8% simplify! [68] 5.0% localize! [70] 2.8% gen-rewrites! [71] 2.6% ------------------------------------------------------------------------- f33 [56] 100.0% [63] 1710(4.8%) 0(0.0%) sindices->spoints ...ts/src/core/regimes.rkt:194:0 for-loop [67] 100.0% ------------------------------------------------------------------------- infer-splitpoints [57] 100.0% [64] 1228(3.5%) 0(0.0%) for-loop ...simpler-alts/src/core/regimes.rkt:45:6 option-on-expr [69] 100.0% ------------------------------------------------------------------------- run-iter! [62] 100.0% [65] 11908(33.7%) 0(0.0%) finalize-iter! ...pler-alts/src/mainloop.rkt:278:0 ??? [113] 100.0% ------------------------------------------------------------------------- run-iter! [62] 100.0% [66] 8704(24.7%) 0(0.0%) gen-series! ...simpler-alts/src/mainloop.rkt:160:0 for-loop [72] 100.0% ------------------------------------------------------------------------- sindices->spoints [63] 100.0% [67] 1710(4.8%) 0(0.0%) for-loop ...impler-alts/src/core/regimes.rkt:234:9 binary-search-floats [75] 63.4% pred [82] 36.6% ------------------------------------------------------------------------- run-improve47 [46] 16.2% run-iter! [62] 83.8% [68] 1386(3.9%) 0(0.0%) simplify! ...e/simpler-alts/src/mainloop.rkt:224:0 ??? [74] 100.0% ------------------------------------------------------------------------- for-loop [64] 100.0% [69] 1228(3.5%) 0(0.0%) option-on-expr ...-alts/src/core/regimes.rkt:124:0 for-loop [77] 50.7% sort-context-on-expr [79] 16.8% err-lsts->split-indices [80] 16.3% map [73] 16.3% ------------------------------------------------------------------------- run-iter! [62] 100.0% [70] 634(1.8%) 0(0.0%) localize! ...e/simpler-alts/src/mainloop.rkt:127:0 localize-error [76] 100.0% ------------------------------------------------------------------------- run-iter! [62] 100.0% [71] 602(1.7%) 0(0.0%) gen-rewrites! ...mpler-alts/src/mainloop.rkt:183:0 for-loop [78] 100.0% ------------------------------------------------------------------------- gen-series! [66] 100.0% [72] 8704(24.7%) 0(0.0%) for-loop ...ie/simpler-alts/src/mainloop.rkt:167:7 taylor-alt [81] 100.0% ------------------------------------------------------------------------- gather-multiplicative-terms [93] 1.6% option-on-expr [69] 4.6% for-loop [58] 9.2% taylor [180] 14.0% parse-loop15 [182] 14.6% f40 [6] 55.9% [73] 4336(12.3%) 424(1.2%) map ...t-7.5/collects/racket/private/map.rkt:35:13 parse-loop74 [22] 24.0% f40 [6] 16.8% hash-ref! [168] 14.1% taylor [180] 12.8% ??? [173] 9.2% simplify-node [84] 7.0% loop [85] 5.1% gather-multiplicative-terms [93] 1.6% f61 [188] 1.5% taylor-invert [13] 1.2% ------------------------------------------------------------------------- simplify! [68] 100.0% [74] 1386(3.9%) 202(0.6%) ??? ...bie/simpler-alts/src/core/simplify.rkt:42:0 egraph-run [83] 68.8% loop [163] 16.6% ------------------------------------------------------------------------- for-loop [67] 100.0% [75] 1084(3.1%) 0(0.0%) binary-search-floats ...src/core/regimes.rkt:176:0 pred [82] 100.0% ------------------------------------------------------------------------- localize! [70] 100.0% [76] 634(1.8%) 0(0.0%) localize-error ...-alts/src/core/localize.rkt:57:0 hash-ref! [168] 100.0% ------------------------------------------------------------------------- option-on-expr [69] 100.0% [77] 622(1.8%) 0(0.0%) for-loop ...impler-alts/src/core/regimes.rkt:135:4 errors [135] 100.0% ------------------------------------------------------------------------- gen-rewrites! [71] 100.0% [78] 602(1.7%) 0(0.0%) for-loop ...e/simpler-alts/src/mainloop.rkt:191:11 rewrite-expression-head23 [86] 66.8% *rules* [89] 33.2% ------------------------------------------------------------------------- option-on-expr [69] 100.0% [79] 206(0.6%) 0(0.0%) sort-context-on-expr ...src/core/regimes.rkt:117:0 ??? [87] 100.0% ------------------------------------------------------------------------- option-on-expr [69] 100.0% [80] 200(0.6%) 0(0.0%) err-lsts->split-indices .../core/regimes.rkt:263:0 loop [88] 100.0% ------------------------------------------------------------------------- for-loop [72] 100.0% [81] 8704(24.7%) 0(0.0%) taylor-alt .../simpler-alts/src/mainloop.rkt:146:0 for-loop [90] 100.0% ------------------------------------------------------------------------- for-loop [67] 36.6% binary-search-floats [75] 63.4% [82] 1710(4.8%) 0(0.0%) pred ...ie/simpler-alts/src/core/regimes.rkt:204:4 prepare-points-intervals [91] 73.9% errors [135] 26.1% ------------------------------------------------------------------------- ??? [74] 100.0% [83] 954(2.7%) 0(0.0%) egraph-run .../pkgs/egg-herbie-linux/main.rkt:49:0 egraph-add-exprs [92] 100.0% ------------------------------------------------------------------------- for-loop [109] 17.2% map [73] 82.8% [84] 632(1.8%) 0(0.0%) simplify-node ...ler-alts/src/core/reduce.rkt:45:0 gather-multiplicative-terms [93] 51.1% append-map [94] 48.9% ------------------------------------------------------------------------- map [73] 5.2% loop [85] 94.8% [85] 432(1.2%) 200(0.6%) loop ...-7.5/collects/racket/private/map.rkt:40:19 loop [85] 94.8% ------------------------------------------------------------------------- for-loop [78] 100.0% [86] 402(1.1%) 0(0.0%) rewrite-expression-head23 ...core/matcher.rkt:83:0 rewriter [95] 100.0% ------------------------------------------------------------------------- sort-context-on-expr [79] 100.0% [87] 206(0.6%) 0(0.0%) ??? ...-7.5/collects/racket/private/sort.rkt:369:3 generic-sort/key [96] 100.0% ------------------------------------------------------------------------- err-lsts->split-indices [80] 100.0% [88] 200(0.6%) 0(0.0%) loop ...ie/simpler-alts/src/core/regimes.rkt:314:4 for-loop [97] 100.0% ------------------------------------------------------------------------- for-loop [78] 100.0% [89] 200(0.6%) 0(0.0%) *rules* ...simpler-alts/src/syntax/rules.rkt:667:0 for-loop [162] 100.0% ------------------------------------------------------------------------- taylor-alt [81] 100.0% [90] 8704(24.7%) 0(0.0%) for-loop ...ie/simpler-alts/src/mainloop.rkt:152:6 ??? [120] 100.0% ------------------------------------------------------------------------- pred [82] 15.0% .../more-scheme.rkt:261:28 [41] 85.0% [91] 8402(23.8%) 0(0.0%) prepare-points-intervals ...s/src/points.rkt:122:0 loop [98] 92.3% loop [104] 2.7% temp85_0 [140] 2.6% eval-prog [145] 2.4% ------------------------------------------------------------------------- egraph-run [83] 100.0% [92] 954(2.7%) 0(0.0%) egraph-add-exprs ...gg-herbie-linux/main.rkt:111:0 ??? [99] 77.4% loop [163] 22.6% ------------------------------------------------------------------------- map [73] 24.8% simplify-node [84] 75.2% [93] 432(1.2%) 432(1.2%) gather-multiplicative-terms ...re/reduce.rkt:109:0 map [73] 24.8% ------------------------------------------------------------------------- simplify-node [84] 100.0% [94] 418(1.2%) 0(0.0%) append-map ...t-7.5/collects/racket/list.rkt:586:2 parse-loop389 [101] 52.2% parse-loop368 [103] 47.8% ------------------------------------------------------------------------- rewrite-expression-head23 [86] 33.3% matcher [184] 66.7% [95] 402(1.1%) 0(0.0%) rewriter ...simpler-alts/src/core/matcher.rkt:85:2 for-loop [100] 100.0% ------------------------------------------------------------------------- ??? [87] 100.0% [96] 206(0.6%) 0(0.0%) generic-sort/key .../racket/private/sort.rkt:156:2 loop [102] 100.0% ------------------------------------------------------------------------- loop [88] 100.0% [97] 200(0.6%) 200(0.6%) for-loop ...impler-alts/src/core/regimes.rkt:279:4 ------------------------------------------------------------------------- prepare-points-intervals [91] 100.0% [98] 7758(22.0%) 0(0.0%) loop ...s/herbie/simpler-alts/src/points.rkt:134:4 loop [104] 56.0% ??? [105] 41.6% andmap [112] 2.4% ------------------------------------------------------------------------- egraph-add-exprs [92] 100.0% [99] 738(2.1%) 0(0.0%) ??? ...ie/simpler-alts/src/core/simplify.rkt:103:6 for-loop [107] 69.6% egg-run-rules [108] 30.4% ------------------------------------------------------------------------- rewriter [95] 100.0% [100] 402(1.1%) 0(0.0%) for-loop ...simpler-alts/src/core/matcher.rkt:87:4 hash-ref! [168] 83.3% for-loop [110] 16.7% ------------------------------------------------------------------------- append-map [94] 100.0% [101] 218(0.6%) 0(0.0%) parse-loop389 (unknown source) for-loop [109] 100.0% ------------------------------------------------------------------------- generic-sort/key [96] 100.0% [102] 206(0.6%) 0(0.0%) loop ...7.5/collects/racket/private/sort.rkt:96:12 ??? [106] 100.0% ------------------------------------------------------------------------- append-map [94] 100.0% [103] 200(0.6%) 0(0.0%) parse-loop368 (unknown source) make-multiplication-node [111] 100.0% ------------------------------------------------------------------------- prepare-points-intervals [91] 4.9% loop [98] 95.1% [104] 4572(13.0%) 1010(2.9%) loop ...es/herbie/simpler-alts/src/points.rkt:79:2 ??? [120] 56.1% ??? [114] 13.7% ??? [113] 4.0% real->precision [118] 4.0% ------------------------------------------------------------------------- loop [98] 100.0% [105] 3226(9.1%) 194(0.5%) ??? ...es/herbie/simpler-alts/src/points.rkt:115:6 loop [163] 56.5% sample-multi-bounded [170] 24.3% ??? [114] 13.2% ------------------------------------------------------------------------- for-loop [60] 19.6% loop [102] 20.0% .../more-scheme.rkt:261:28 [41] 60.5% [106] 1032(2.9%) 1032(2.9%) ??? ...cket-7.5/collects/racket/function.rkt:93:12 ------------------------------------------------------------------------- ??? [99] 100.0% [107] 514(1.5%) 514(1.5%) for-loop ...mpler-alts/src/core/simplify.rkt:121:2 ------------------------------------------------------------------------- ??? [99] 100.0% [108] 224(0.6%) 0(0.0%) egg-run-rules ...-alts/src/core/simplify.rkt:109:0 ??? [115] 100.0% ------------------------------------------------------------------------- parse-loop389 [101] 100.0% [109] 218(0.6%) 0(0.0%) for-loop ...simpler-alts/src/core/reduce.rkt:94:13 simplify-node [84] 100.0% ------------------------------------------------------------------------- for-loop [100] 100.0% [110] 202(0.6%) 0(0.0%) for-loop ...simpler-alts/src/core/matcher.rkt:94:8 fix-up-variables [116] 100.0% ------------------------------------------------------------------------- parse-loop368 [103] 100.0% [111] 200(0.6%) 0(0.0%) make-multiplication-node .../core/reduce.rkt:231:0 make-multiplication-subnode [117] 100.0% ------------------------------------------------------------------------- loop [98] 100.0% [112] 184(0.5%) 184(0.5%) andmap ...5/collects/racket/private/map.rkt:102:13 ------------------------------------------------------------------------- loop [104] 1.5% finalize-iter! [65] 98.5% [113] 12092(34.3%) 184(0.5%) ??? ...contract/private/arrow-val-first.rkt:486:18 for-loop [119] 98.5% ------------------------------------------------------------------------- ??? [105] 40.4% loop [104] 59.6% [114] 1054(3.0%) 202(0.6%) ??? ...tract/private/arrow-higher-order.rkt:379:33 ival-sub [121] 23.0% ??? [122] 21.3% ival-sqrt [124] 19.0% ival-add [126] 17.6% ------------------------------------------------------------------------- egg-run-rules [108] 100.0% [115] 224(0.6%) 224(0.6%) ??? ...gs/egg-herbie-linux/egg-interface.rkt:46:32 ------------------------------------------------------------------------- for-loop [110] 100.0% [116] 202(0.6%) 0(0.0%) fix-up-variables ...lts/src/core/matcher.rkt:106:2 pattern-match [123] 100.0% ------------------------------------------------------------------------- make-multiplication-node [111] 100.0% [117] 200(0.6%) 0(0.0%) make-multiplication-subnode ...re/reduce.rkt:241:0 group-by61 [125] 100.0% ------------------------------------------------------------------------- loop [104] 100.0% [118] 184(0.5%) 0(0.0%) real->precision ...er-alts/src/programs.rkt:118:11 ??? [120] 100.0% ------------------------------------------------------------------------- ??? [113] 100.0% [119] 11908(33.7%) 0(0.0%) for-loop ...pler-alts/src/core/alt-table.rkt:198:2 atab-add-altn [127] 100.0% ------------------------------------------------------------------------- real->precision [118] 1.6% ??? [173] 1.7% .../more-scheme.rkt:261:28 [41] 1.7% ??? [5] 9.8% loop [21] 11.3% loop [104] 21.7% location-do [128] 26.2% for-loop [90] 26.2% [120] 11852(33.6%) 398(1.1%) ??? ...tract/private/arrow-higher-order.rkt:375:33 location-do [128] 26.2% approximate9 [2] 25.3% hash-ref! [168] 21.1% ival-div [129] 16.8% ival-mult [130] 4.8% bf [134] 1.6% f40 [6] 0.8% ------------------------------------------------------------------------- ??? [114] 100.0% [121] 242(0.7%) 0(0.0%) ival-sub ...simpler-alts/src/biginterval.rkt:117:0 bfdiv [136] 100.0% ------------------------------------------------------------------------- ??? [114] 100.0% [122] 224(0.6%) 0(0.0%) ??? ...ects/racket/contract/private/prop.rkt:567:4 ??? [131] 100.0% ------------------------------------------------------------------------- fix-up-variables [116] 100.0% [123] 202(0.6%) 0(0.0%) pattern-match ...er-alts/src/core/matcher.rkt:29:0 for-loop [132] 100.0% ------------------------------------------------------------------------- ??? [114] 100.0% [124] 200(0.6%) 200(0.6%) ival-sqrt ...impler-alts/src/biginterval.rkt:205:0 ------------------------------------------------------------------------- make-multiplication-subnode [117] 100.0% [125] 200(0.6%) 0(0.0%) group-by61 ...t-7.5/collects/racket/list.rkt:771:0 hash-update [133] 100.0% ------------------------------------------------------------------------- ??? [114] 100.0% [126] 186(0.5%) 186(0.5%) ival-add ...simpler-alts/src/biginterval.rkt:111:0 ------------------------------------------------------------------------- for-loop [119] 100.0% [127] 11908(33.7%) 0(0.0%) atab-add-altn ...alts/src/core/alt-table.rkt:201:0 errors [135] 91.6% best-and-tied-at-points [137] 6.7% ??? [199] 1.7% ------------------------------------------------------------------------- ??? [120] 13.4% location-do [128] 86.6% [128] 8704(24.7%) 0(0.0%) location-do .../simpler-alts/src/programs.rkt:87:0 location-do [128] 86.6% ??? [120] 13.4% ------------------------------------------------------------------------- ??? [120] 100.0% [129] 1994(5.6%) 970(2.7%) ival-div ...simpler-alts/src/biginterval.rkt:149:0 bfdiv [136] 51.4% ------------------------------------------------------------------------- ??? [120] 100.0% [130] 572(1.6%) 384(1.1%) ival-mult ...impler-alts/src/biginterval.rkt:129:0 bfdiv [136] 32.9% ------------------------------------------------------------------------- ??? [122] 100.0% [131] 224(0.6%) 0(0.0%) ??? ...lects/racket/contract/private/orc.rkt:83:14 ??? [138] 100.0% ------------------------------------------------------------------------- pattern-match [123] 100.0% [132] 202(0.6%) 0(0.0%) for-loop ...simpler-alts/src/core/matcher.rkt:26:9 core457 [139] 100.0% ------------------------------------------------------------------------- group-by61 [125] 100.0% [133] 200(0.6%) 200(0.6%) hash-update ...acket/private/more-scheme.rkt:358:4 ------------------------------------------------------------------------- ??? [120] 100.0% [134] 184(0.5%) 0(0.0%) bf ...ath-lib/math/private/bigfloat/mpfr.rkt:615:2 new-mpfr [142] 100.0% ------------------------------------------------------------------------- pred [82] 3.5% for-loop [77] 4.9% .../more-scheme.rkt:261:28 [41] 6.2% atab-add-altn [127] 85.4% [135] 12768(36.2%) 0(0.0%) errors ...herbie/simpler-alts/src/points.rkt:192:0 temp85_0 [140] 54.6% for-loop [141] 38.8% eval-prog [145] 3.1% eval [143] 1.9% loop [163] 1.6% ------------------------------------------------------------------------- ival-mult [130] 12.9% ival-sub [121] 16.6% ival-div [129] 70.4% [136] 1454(4.1%) 0(0.0%) bfdiv ...-lib/math/private/bigfloat/mpfr.rkt:835:4 new-mpfr [142] 86.2% ??? [147] 13.8% ------------------------------------------------------------------------- atab-add-altn [127] 100.0% [137] 802(2.3%) 200(0.6%) best-and-tied-at-points ...core/alt-table.rkt:91:0 for-loop [144] 75.1% ------------------------------------------------------------------------- ??? [131] 100.0% [138] 224(0.6%) 224(0.6%) ??? ...ects/racket/contract/private/list.rkt:163:5 ------------------------------------------------------------------------- for-loop [132] 100.0% [139] 202(0.6%) 0(0.0%) core457 ...acket/contract/private/arr-i.rkt:976:19 arrow-higher-order:lnp [146] 100.0% ------------------------------------------------------------------------- loop [163] 1.5% prepare-points-intervals [91] 1.6% eval-const-expr [35] 44.2% errors [135] 52.7% [140] 13234(37.5%) 0(0.0%) temp85_0 (unknown source) compile15 [148] 100.0% ------------------------------------------------------------------------- errors [135] 100.0% [141] 4950(14.0%) 1308(3.7%) for-loop ...rbie/simpler-alts/src/points.rkt:194:2 .../more-scheme.rkt:261:28 [41] 73.6% ------------------------------------------------------------------------- bf [134] 12.8% bfdiv [136] 87.2% [142] 1438(4.1%) 1438(4.1%) new-mpfr ...b/math/private/bigfloat/mpfr.rkt:348:0 ------------------------------------------------------------------------- errors [135] 38.1% eval-const-expr [35] 61.9% [143] 646(1.8%) 200(0.6%) eval (unknown source) namespace-syntax-introduce3 [149] 69.0% ------------------------------------------------------------------------- best-and-tied-at-points [137] 100.0% [144] 602(1.7%) 200(0.6%) for-loop ...mpler-alts/src/core/alt-table.rkt:94:4 ??? [150] 66.8% ------------------------------------------------------------------------- prepare-points-intervals [91] 33.6% errors [135] 66.4% [145] 602(1.7%) 0(0.0%) eval-prog ...e/simpler-alts/src/programs.rkt:106:0 hash-ref! [168] 66.8% inductor [152] 33.2% ------------------------------------------------------------------------- core457 [139] 100.0% [146] 202(0.6%) 0(0.0%) arrow-higher-order:lnp ...w-higher-order.rkt:673:7 ??? [151] 100.0% ------------------------------------------------------------------------- bfdiv [136] 100.0% [147] 200(0.6%) 200(0.6%) ??? /opt/racket-7.5/collects/ffi/unsafe.rkt:938:4 ------------------------------------------------------------------------- temp85_0 [140] 100.0% [148] 13234(37.5%) 0(0.0%) compile15 (unknown source) temp91_0 [153] 100.0% ------------------------------------------------------------------------- eval [143] 100.0% [149] 446(1.3%) 446(1.3%) namespace-syntax-introduce3 (unknown source) ------------------------------------------------------------------------- for-loop [144] 100.0% [150] 402(1.1%) 402(1.1%) ??? ...7.5/collects/racket/private/for.rkt:1236:14 ------------------------------------------------------------------------- arrow-higher-order:lnp [146] 100.0% [151] 202(0.6%) 202(0.6%) ??? ...et/contract/private/arity-checking.rkt:19:2 ------------------------------------------------------------------------- eval-prog [145] 100.0% [152] 200(0.6%) 0(0.0%) inductor ...ie/simpler-alts/src/programs.rkt:127:4 value? [209] 100.0% ------------------------------------------------------------------------- compile15 [148] 100.0% [153] 13234(37.5%) 0(0.0%) temp91_0 (unknown source) temp118_0 [154] 92.3% compile-top9 [155] 7.7% ------------------------------------------------------------------------- temp91_0 [153] 100.0% [154] 12216(34.6%) 0(0.0%) temp118_0 (unknown source) expand-capturing-lifts [156] 100.0% ------------------------------------------------------------------------- temp91_0 [153] 100.0% [155] 1018(2.9%) 0(0.0%) compile-top9 (unknown source) compile-forms33 [157] 79.8% hash->linklet-bundle [158] 20.2% ------------------------------------------------------------------------- loop [163] 1.6% temp118_0 [154] 98.4% [156] 12416(35.2%) 0(0.0%) expand-capturing-lifts (unknown source) lambda-clause-expander [159] 98.4% loop [163] 1.6% ------------------------------------------------------------------------- compile-top9 [155] 100.0% [157] 812(2.3%) 0(0.0%) compile-forms33 (unknown source) for-loop [162] 74.6% loop! [160] 25.4% ------------------------------------------------------------------------- compile-top9 [155] 100.0% [158] 206(0.6%) 206(0.6%) hash->linklet-bundle (unknown source) ------------------------------------------------------------------------- expand-capturing-lifts [156] 100.0% [159] 12216(34.6%) 200(0.6%) lambda-clause-expander (unknown source) finish-bodys [161] 98.4% ------------------------------------------------------------------------- compile-forms33 [157] 100.0% [160] 206(0.6%) 0(0.0%) loop! (unknown source) for-loop [162] 100.0% ------------------------------------------------------------------------- lambda-clause-expander [159] 17.7% for-loop [162] 82.3% [161] 12016(34.0%) 0(0.0%) finish-bodys (unknown source) for-loop [162] 100.0% ------------------------------------------------------------------------- fallback-loop [37] 0.8% compile-let13 [19] 0.8% loop! [160] 0.8% *rules* [89] 1.5% compile-forms33 [157] 4.7% for-loop [162] 14.0% finish-bodys [161] 77.5% [162] 13028(36.9%) 2554(7.2%) for-loop (unknown source) finish-bodys [161] 66.5% for-loop [162] 14.0% compile-module-linklet57 [164] 4.7% dispatch-transformer41 [7] 3.1% expand-implicit [10] 1.9% compile5 [166] 1.6% syntax-e [3] 1.6% flag-set? [167] 1.5% loop [163] 1.1% expand-identifier [12] 0.3% dispatch-variable [165] 0.2% ------------------------------------------------------------------------- errors-score [61] 0.1% ??? [74] 0.1% egraph-add-exprs [92] 0.2% read-unwrapped-sequence17 [50] 0.9% expand-capturing-lifts [156] 1.1% errors [135] 1.1% .../more-scheme.rkt:261:28 [41] 1.1% syntax->list [51] 1.1% for-loop [58] 2.1% ??? [15] 4.3% apply-transformer52 [25] 5.4% for-loop [162] 5.4% datum->syntax6 [43] 6.4% loop [163] 10.8% ??? [105] 14.1% syntax-e/no-taint [23] 46.1% [163] 9438(26.7%) 1636(4.6%) loop (unknown source) gf [169] 44.9% loop [163] 10.8% sample-multi-bounded [170] 10.7% expand-id-application-form17 [171] 5.4% core-form-sym [174] 4.3% hash-ref! [168] 4.3% syntax-e [3] 2.2% ??? [173] 2.1% temp85_0 [140] 1.1% expand-capturing-lifts [156] 1.1% read-one/not-eof [17] 0.9% egg-expr->expr [18] 0.2% ------------------------------------------------------------------------- for-loop [162] 100.0% [164] 606(1.7%) 400(1.1%) compile-module-linklet57 (unknown source) make-module-use-to-linklet [175] 34.0% ------------------------------------------------------------------------- for-loop [162] 100.0% [165] 606(1.7%) 0(0.0%) dispatch-variable (unknown source) substitute-variable6 [172] 100.0% ------------------------------------------------------------------------- compile-let13 [19] 33.3% for-loop [162] 66.7% [166] 206(0.6%) 206(0.6%) compile5 (unknown source) compile-let13 [19] 66.7% ------------------------------------------------------------------------- for-loop [162] 100.0% [167] 200(0.6%) 0(0.0%) flag-set? ...rbie/simpler-alts/src/config.rkt:28:0 return/no-unsupplied [189] 100.0% ------------------------------------------------------------------------- eval-prog [145] 0.5% first-nonzero-exp [31] 0.6% localize-error [76] 0.7% for-loop [30] 2.0% ??? [38] 2.4% for-loop [100] 2.5% for-loop [28] 2.6% loop [163] 4.0% for-loop [36] 5.9% map [73] 6.4% loop [21] 8.4% ??? [5] 8.4% for-loop [24] 11.9% ??? [176] 17.1% ??? [120] 25.8% [168] 8926(25.3%) 400(1.1%) hash-ref! .../racket/private/more-scheme.rkt:376:2 ??? [176] 22.7% ??? [5] 16.8% ??? [4] 11.9% parse-loop74 [22] 9.4% f40 [6] 7.2% parse-loop15 [182] 6.9% ??? [8] 5.9% matcher [184] 4.1% ??? [15] 4.0% ??? [9] 3.9% taylor [180] 3.1% ??? [11] 1.6% f61 [188] 0.7% bigfloat-hash [186] 0.3% ??? [187] 0.2% ------------------------------------------------------------------------- loop [163] 100.0% [169] 4748(13.5%) 808(2.3%) gf (unknown source) propagation-apply [179] 42.7% propagation-merge [181] 27.3% propagation-apply-shifted [183] 8.6% cache-or-reuse-set [185] 4.4% ------------------------------------------------------------------------- ??? [105] 35.8% loop [163] 64.2% [170] 2190(6.2%) 0(0.0%) sample-multi-bounded ...r-alts/src/points.rkt:14:0 random-ranges [178] 100.0% ------------------------------------------------------------------------- loop [163] 100.0% [171] 824(2.3%) 0(0.0%) expand-id-application-form17 (unknown source) syntax-e/no-taint [23] 75.7% resolve+shift28 [27] 24.3% ------------------------------------------------------------------------- dispatch-variable [165] 100.0% [172] 606(1.7%) 606(1.7%) substitute-variable6 (unknown source) ------------------------------------------------------------------------- loop [163] 32.7% map [73] 67.3% [173] 594(1.7%) 0(0.0%) ??? ...s/herbie/simpler-alts/src/points.rkt:181:26 ??? [177] 66.7% ??? [120] 33.3% ------------------------------------------------------------------------- loop [163] 100.0% [174] 406(1.2%) 0(0.0%) core-form-sym (unknown source) resolve+shift28 [27] 100.0% ------------------------------------------------------------------------- compile-module-linklet57 [164] 100.0% [175] 206(0.6%) 206(0.6%) make-module-use-to-linklet (unknown source) ------------------------------------------------------------------------- hash-ref! [168] 100.0% [176] 6662(18.9%) 0(0.0%) ??? ...rbie/simpler-alts/src/core/taylor.rkt:44:15 hash-ref! [168] 92.5% f61 [188] 7.5% ------------------------------------------------------------------------- ??? [173] 16.4% .../more-scheme.rkt:261:28 [41] 83.6% [177] 2412(6.8%) 1806(5.1%) ??? ...e/simpler-alts/src/syntax/syntax.rkt:214:17 return/no-unsupplied [189] 25.1% ------------------------------------------------------------------------- sample-multi-bounded [170] 100.0% [178] 2190(6.2%) 406(1.2%) random-ranges ...simpler-alts/src/common.rkt:164:0 build--> [190] 44.8% cons/c [191] 36.6% ------------------------------------------------------------------------- gf [169] 100.0% [179] 2028(5.7%) 2028(5.7%) propagation-apply (unknown source) ------------------------------------------------------------------------- map [73] 13.0% hash-ref! [168] 23.2% for-loop [29] 28.9% taylor [180] 34.9% [180] 1842(5.2%) 0(0.0%) taylor ...e/simpler-alts/src/core/taylor.rkt:169:0 taylor [180] 34.9% debug-print [192] 24.4% map [73] 14.5% debug5 [194] 11.0% taylor-invert [13] 9.5% taylor-sqrt [14] 5.7% ------------------------------------------------------------------------- gf [169] 100.0% [181] 1298(3.7%) 1298(3.7%) propagation-merge (unknown source) ------------------------------------------------------------------------- hash-ref! [168] 100.0% [182] 634(1.8%) 0(0.0%) parse-loop15 (unknown source) map [73] 96.5% for-loop [195] 3.5% ------------------------------------------------------------------------- gf [169] 100.0% [183] 406(1.2%) 406(1.2%) propagation-apply-shifted (unknown source) ------------------------------------------------------------------------- hash-ref! [168] 100.0% [184] 402(1.1%) 0(0.0%) matcher ...simpler-alts/src/core/matcher.rkt:117:2 ??? [16] 50.0% rewriter [95] 50.0% ------------------------------------------------------------------------- gf [169] 100.0% [185] 208(0.6%) 208(0.6%) cache-or-reuse-set (unknown source) ------------------------------------------------------------------------- hash-ref! [168] 100.0% [186] 202(0.6%) 0(0.0%) bigfloat-hash ...h/private/bigfloat/mpfr.rkt:168:0 bfcanonicalize [193] 100.0% ------------------------------------------------------------------------- hash-ref! [168] 100.0% [187] 202(0.6%) 0(0.0%) ??? ...ie/simpler-alts/src/core/localize.rkt:16:13 return/no-unsupplied [189] 100.0% ------------------------------------------------------------------------- map [73] 11.6% for-loop [28] 11.6% ??? [11] 11.6% taylor-sqrt [14] 12.0% hash-ref! [168] 23.9% ??? [176] 29.2% [188] 1718(4.9%) 0(0.0%) f61 (unknown source) eval-const-expr [35] 88.4% composed [201] 11.6% ------------------------------------------------------------------------- flag-set? [167] 19.8% ??? [187] 20.0% ??? [177] 60.1% [189] 1008(2.9%) 606(1.7%) return/no-unsupplied ...ct/private/arr-i.rkt:566:0 filter [197] 39.9% ------------------------------------------------------------------------- random-ranges [178] 100.0% [190] 982(2.8%) 206(0.6%) build--> ...act/private/arrow-val-first.rkt:1214:0 coerce-contract [196] 79.0% ------------------------------------------------------------------------- random-ranges [178] 100.0% [191] 802(2.3%) 0(0.0%) cons/c .../racket/contract/private/guts.rkt:500:15 coerce-contract [196] 76.6% flat-contract? [202] 23.4% ------------------------------------------------------------------------- taylor [180] 100.0% [192] 600(1.7%) 0(0.0%) debug-print ...ie/simpler-alts/src/debug.rkt:110:0 for-loop [198] 66.7% ??? [199] 33.3% ------------------------------------------------------------------------- bigfloat-hash [186] 100.0% [193] 202(0.6%) 202(0.6%) bfcanonicalize .../private/bigfloat/mpfr.rkt:158:0 ------------------------------------------------------------------------- taylor [180] 100.0% [194] 202(0.6%) 202(0.6%) debug5 .../herbie/simpler-alts/src/debug.rkt:102:0 ------------------------------------------------------------------------- parse-loop15 [182] 100.0% [195] 200(0.6%) 0(0.0%) for-loop ...mpler-alts/src/core/localize.rkt:44:21 for-loop [200] 100.0% ------------------------------------------------------------------------- cons/c [191] 44.2% build--> [190] 55.8% [196] 1390(3.9%) 0(0.0%) coerce-contract ...contract/private/guts.rkt:307:0 coerce-contract/f [203] 100.0% ------------------------------------------------------------------------- return/no-unsupplied [189] 100.0% [197] 402(1.1%) 402(1.1%) filter ...5/collects/racket/private/list.rkt:256:2 ------------------------------------------------------------------------- debug-print [192] 100.0% [198] 400(1.1%) 400(1.1%) for-loop ...erbie/simpler-alts/src/debug.rkt:116:2 ------------------------------------------------------------------------- debug-print [192] 50.0% atab-add-altn [127] 50.0% [199] 400(1.1%) 200(0.6%) ??? .../contract/private/arrow-val-first.rkt:555:3 ??? [204] 50.0% ------------------------------------------------------------------------- for-loop [195] 100.0% [200] 200(0.6%) 200(0.6%) for-loop ...mpler-alts/src/core/localize.rkt:45:23 ------------------------------------------------------------------------- f61 [188] 100.0% [201] 200(0.6%) 0(0.0%) composed ...ollects/racket/private/list.rkt:321:16 free-variables [205] 100.0% ------------------------------------------------------------------------- cons/c [191] 100.0% [202] 188(0.5%) 188(0.5%) flat-contract? .../contract/private/guts.rkt:129:0 ------------------------------------------------------------------------- coerce-contract [196] 100.0% [203] 1390(3.9%) 0(0.0%) coerce-contract/f ...ntract/private/guts.rkt:372:0 coerce-simple-value [206] 100.0% ------------------------------------------------------------------------- ??? [199] 100.0% [204] 200(0.6%) 0(0.0%) ??? /opt/racket-7.5/collects/racket/hash.rkt:7:0 for-loop [207] 100.0% ------------------------------------------------------------------------- composed [201] 100.0% [205] 200(0.6%) 0(0.0%) free-variables ...mpler-alts/src/programs.rkt:80:0 constant? [208] 100.0% ------------------------------------------------------------------------- coerce-contract/f [203] 100.0% [206] 1390(3.9%) 1390(3.9%) coerce-simple-value ...ract/private/guts.rkt:385:0 ------------------------------------------------------------------------- ??? [204] 100.0% [207] 200(0.6%) 200(0.6%) for-loop ...cket-7.5/collects/racket/hash.rkt:14:2 ------------------------------------------------------------------------- free-variables [205] 100.0% [208] 200(0.6%) 0(0.0%) constant? ...pler-alts/src/syntax/syntax.rkt:726:0 value? [209] 100.0% ------------------------------------------------------------------------- constant? [208] 50.0% inductor [152] 50.0% [209] 400(1.1%) 400(1.1%) value? ...e/simpler-alts/src/syntax/types.rkt:18:0 -------------------------------------------------------------------------