Profiling results ----------------- Total cpu time observed: 57816ms (out of 57948ms) Number of samples taken: 281 (once every 206ms) (Hiding functions with self<1.0% and local<2.0%: 6 of 214 hidden) ================================================================================= Caller Idx Total Self Name+src Local% ms(pct) ms(pct) Callee ================================================================================= [1] 57816(100.0%) 0(0.0%) ??? ...lects/racket/private/more-scheme.rkt:261:28 profile-thunk16 [13] 100.0% --------------------------------------------------------------------------------- ??? [174] 100.0% [2] 5922(10.2%) 0(0.0%) approximate9 ...stversion/src/core/taylor.rkt:12:0 loop [14] 79.2% for-loop [20] 14.0% taylor-quotient [22] 3.4% taylor [25] 3.4% --------------------------------------------------------------------------------- hash-ref! [181] 100.0% [3] 3934(6.8%) 0(0.0%) ??? ...math-testversion/src/core/taylor.rkt:301:23 for-loop [15] 100.0% --------------------------------------------------------------------------------- hash-ref! [181] 100.0% [4] 2674(4.6%) 0(0.0%) ??? ...gmath-testversion/src/core/taylor.rkt:68:15 ??? [174] 100.0% --------------------------------------------------------------------------------- hash-ref! [181] 100.0% [5] 2322(4.0%) 0(0.0%) ??? ...math-testversion/src/core/taylor.rkt:407:23 for-loop [18] 74.1% for-loop [24] 25.9% --------------------------------------------------------------------------------- for-loop [182] 33.5% loop [154] 66.5% [6] 1796(3.1%) 0(0.0%) syntax-e (unknown source) syntax-e/no-taint [16] 100.0% --------------------------------------------------------------------------------- hash-ref! [181] 100.0% [7] 1768(3.1%) 0(0.0%) ??? ...math-testversion/src/core/taylor.rkt:291:26 for-loop [17] 100.0% --------------------------------------------------------------------------------- matcher [106] 100.0% [8] 1604(2.8%) 0(0.0%) ??? ...ath-testversion/src/core/matcher.rkt:130:11 for-loop [19] 100.0% --------------------------------------------------------------------------------- hash-ref! [181] 100.0% [9] 654(1.1%) 0(0.0%) ??? ...math-testversion/src/core/taylor.rkt:510:23 for-loop [21] 100.0% --------------------------------------------------------------------------------- taylor [25] 100.0% [10] 418(0.7%) 0(0.0%) taylor-invert ...version/src/core/taylor.rkt:318:0 simplify [33] 52.2% first-nonzero-exp [28] 47.8% --------------------------------------------------------------------------------- taylor [25] 100.0% [11] 408(0.7%) 0(0.0%) loop ...math-testversion/src/core/taylor.rkt:268:2 hash-ref! [181] 100.0% --------------------------------------------------------------------------------- loop [154] 100.0% [12] 200(0.3%) 0(0.0%) core-form-sym (unknown source) resolve+shift28 [171] 100.0% --------------------------------------------------------------------------------- ??? [1] 100.0% [13] 57816(100.0%) 0(0.0%) profile-thunk16 ...e/pkgs/profile-lib/main.rkt:9:0 run [23] 100.0% --------------------------------------------------------------------------------- approximate9 [2] 100.0% [14] 4690(8.1%) 0(0.0%) loop ...gmath-testversion/src/core/taylor.rkt:87:4 hash-ref! [181] 57.0% ??? [174] 43.0% --------------------------------------------------------------------------------- ??? [3] 100.0% [15] 3934(6.8%) 254(0.4%) for-loop ...testversion/src/core/taylor.rkt:304:27 hash-ref! [181] 97.8% --------------------------------------------------------------------------------- gf [158] 9.2% expand-id-application-form17 [161] 16.9% syntax-e [6] 73.9% [16] 2430(4.2%) 0(0.0%) syntax-e/no-taint (unknown source) loop [154] 100.0% --------------------------------------------------------------------------------- ??? [7] 100.0% [17] 1768(3.1%) 0(0.0%) for-loop ...testversion/src/core/taylor.rkt:291:52 ??? [26] 44.0% simplify [33] 33.1% hash-ref! [181] 22.9% --------------------------------------------------------------------------------- ??? [5] 100.0% [18] 1720(3.0%) 0(0.0%) for-loop ...testversion/src/core/taylor.rkt:411:33 hash-ref! [181] 50.1% for-loop [24] 49.9% --------------------------------------------------------------------------------- ??? [8] 100.0% [19] 1604(2.8%) 0(0.0%) for-loop ...estversion/src/core/matcher.rkt:132:15 matcher [106] 100.0% --------------------------------------------------------------------------------- approximate9 [2] 100.0% [20] 828(1.4%) 0(0.0%) for-loop ...-testversion/src/core/taylor.rkt:30:18 taylor [25] 100.0% --------------------------------------------------------------------------------- ??? [9] 100.0% [21] 654(1.1%) 0(0.0%) for-loop ...testversion/src/core/taylor.rkt:514:35 parse-loop402 [27] 100.0% --------------------------------------------------------------------------------- approximate9 [2] 100.0% [22] 204(0.4%) 0(0.0%) taylor-quotient ...rsion/src/core/taylor.rkt:334:0 first-nonzero-exp [28] 100.0% --------------------------------------------------------------------------------- profile-thunk16 [13] 100.0% [23] 57816(100.0%) 0(0.0%) run ...et-7.5/share/pkgs/profile-lib/main.rkt:39:2 .../more-scheme.rkt:261:28 [29] 100.0% --------------------------------------------------------------------------------- ??? [5] 41.2% for-loop [18] 58.8% [24] 1460(2.5%) 0(0.0%) for-loop ...testversion/src/core/taylor.rkt:413:39 hash-ref! [181] 100.0% --------------------------------------------------------------------------------- approximate9 [2] 4.9% for-loop [20] 36.6% taylor [25] 58.5% [25] 1028(1.8%) 0(0.0%) taylor ...th-testversion/src/core/taylor.rkt:170:0 taylor [25] 58.5% taylor-cbrt [31] 19.6% taylor-invert [10] 11.9% loop [11] 9.9% --------------------------------------------------------------------------------- for-loop [17] 100.0% [26] 778(1.3%) 0(0.0%) ??? ...math-testversion/src/core/taylor.rkt:294:19 hash-ref! [181] 100.0% --------------------------------------------------------------------------------- for-loop [21] 100.0% [27] 654(1.1%) 0(0.0%) parse-loop402 (unknown source) for-loop [30] 100.0% --------------------------------------------------------------------------------- taylor-invert [10] 49.5% taylor-quotient [22] 50.5% [28] 404(0.7%) 0(0.0%) first-nonzero-exp ...ion/src/core/taylor.rkt:266:0 hash-ref! [181] 100.0% --------------------------------------------------------------------------------- for-loop [151] 0.9% run [23] 99.1% [29] 57816(100.0%) 404(0.7%) .../more-scheme.rkt:261:28 (unknown source) run-improve47 [32] 91.3% prepare-points-intervals [34] 5.2% oracle-error [35] 1.7% get-final-combination [36] 0.5% ??? [163] 0.5% loop [154] 0.3% --------------------------------------------------------------------------------- parse-loop402 [27] 100.0% [30] 654(1.1%) 0(0.0%) for-loop ...testversion/src/core/taylor.rkt:517:59 hash-ref! [181] 100.0% --------------------------------------------------------------------------------- taylor [25] 100.0% [31] 202(0.3%) 0(0.0%) taylor-cbrt ...stversion/src/core/taylor.rkt:378:0 simplify [33] 100.0% --------------------------------------------------------------------------------- .../more-scheme.rkt:261:28 [29] 100.0% [32] 53184(92.0%) 0(0.0%) run-improve47 ...estversion/src/mainloop.rkt:346:0 for-loop [37] 76.1% simplify! [53] 23.9% --------------------------------------------------------------------------------- taylor-cbrt [31] 3.6% taylor-invert [10] 3.8% for-loop [17] 10.3% hash-ref! [181] 82.3% [33] 5668(9.8%) 460(0.8%) simplify ...h-testversion/src/core/reduce.rkt:16:0 parse-loop80 [38] 42.5% f46 [40] 28.1% f67 [42] 13.9% simplify* [44] 3.8% debug-print [45] 3.5% --------------------------------------------------------------------------------- .../more-scheme.rkt:261:28 [29] 100.0% [34] 3018(5.2%) 0(0.0%) prepare-points-intervals ...n/src/points.rkt:110:0 loop [39] 100.0% --------------------------------------------------------------------------------- .../more-scheme.rkt:261:28 [29] 100.0% [35] 1010(1.7%) 0(0.0%) oracle-error ...h-testversion/src/points.rkt:188:0 for-loop [41] 100.0% --------------------------------------------------------------------------------- .../more-scheme.rkt:261:28 [29] 100.0% [36] 404(0.7%) 0(0.0%) get-final-combination ...on/src/mainloop.rkt:371:0 infer-splitpoints [43] 100.0% --------------------------------------------------------------------------------- run-improve47 [32] 100.0% [37] 40460(70.0%) 0(0.0%) for-loop ...ath-testversion/src/mainloop.rkt:365:4 run-iter! [46] 100.0% --------------------------------------------------------------------------------- map [49] 36.6% simplify [33] 63.4% [38] 3802(6.6%) 0(0.0%) parse-loop80 (unknown source) eval-const-expr [47] 100.0% --------------------------------------------------------------------------------- prepare-points-intervals [34] 100.0% [39] 3018(5.2%) 0(0.0%) loop ...e/eggmath-testversion/src/points.rkt:123:4 loop [48] 73.5% ??? [50] 26.5% --------------------------------------------------------------------------------- simplify [33] 45.7% map [49] 54.3% [40] 1592(2.8%) 0(0.0%) f46 (unknown source) map [49] 100.0% --------------------------------------------------------------------------------- oracle-error [35] 100.0% [41] 1010(1.7%) 0(0.0%) for-loop ...gmath-testversion/src/points.rkt:189:2 loop [154] 100.0% --------------------------------------------------------------------------------- map [49] 20.2% simplify [33] 79.8% [42] 988(1.7%) 0(0.0%) f67 (unknown source) eval-const-expr [47] 100.0% --------------------------------------------------------------------------------- get-final-combination [36] 100.0% [43] 404(0.7%) 0(0.0%) infer-splitpoints ...ion/src/core/regimes.rkt:34:0 for-loop [51] 100.0% --------------------------------------------------------------------------------- simplify [33] 100.0% [44] 218(0.4%) 0(0.0%) simplify* ...-testversion/src/core/reduce.rkt:31:0 return/no-unsupplied [206] 100.0% --------------------------------------------------------------------------------- simplify [33] 100.0% [45] 200(0.3%) 0(0.0%) debug-print ...ath-testversion/src/debug.rkt:110:0 for-loop [52] 100.0% --------------------------------------------------------------------------------- for-loop [37] 100.0% [46] 40460(70.0%) 188(0.3%) run-iter! ...th-testversion/src/mainloop.rkt:327:0 simplify! [53] 71.9% gen-series! [54] 14.6% finalize-iter! [56] 8.0% gen-rewrites! [57] 4.0% choose-best-alt! [59] 1.0% --------------------------------------------------------------------------------- f67 [42] 20.6% parse-loop80 [38] 79.4% [47] 4790(8.3%) 0(0.0%) eval-const-expr ...tversion/src/programs.rkt:118:0 temp85_0 [55] 79.4% loop [154] 12.2% inductor [156] 4.2% eval [60] 4.2% --------------------------------------------------------------------------------- loop [39] 100.0% [48] 2218(3.8%) 0(0.0%) loop ...ie/eggmath-testversion/src/points.rkt:81:2 ??? [163] 90.9% ??? [201] 9.1% --------------------------------------------------------------------------------- f46 [40] 100.0% [49] 1592(2.8%) 0(0.0%) map ...t-7.5/collects/racket/private/map.rkt:35:13 f46 [40] 54.3% parse-loop80 [38] 42.5% f67 [42] 3.1% --------------------------------------------------------------------------------- loop [39] 100.0% [50] 800(1.4%) 0(0.0%) ??? ...ie/eggmath-testversion/src/points.rkt:106:2 ??? [174] 100.0% --------------------------------------------------------------------------------- infer-splitpoints [43] 100.0% [51] 404(0.7%) 0(0.0%) for-loop ...-testversion/src/core/regimes.rkt:47:6 option-on-expr [58] 100.0% --------------------------------------------------------------------------------- debug-print [45] 100.0% [52] 200(0.3%) 200(0.3%) for-loop ...ggmath-testversion/src/debug.rkt:116:2 --------------------------------------------------------------------------------- run-improve47 [32] 30.4% run-iter! [46] 69.6% [53] 41814(72.3%) 0(0.0%) simplify! ...th-testversion/src/mainloop.rkt:224:0 ??? [61] 100.0% --------------------------------------------------------------------------------- run-iter! [46] 100.0% [54] 5922(10.2%) 0(0.0%) gen-series! ...-testversion/src/mainloop.rkt:160:0 for-loop [62] 100.0% --------------------------------------------------------------------------------- eval-prog [150] 24.3% eval-const-expr [47] 75.7% [55] 5022(8.7%) 0(0.0%) temp85_0 (unknown source) compile15 [63] 100.0% --------------------------------------------------------------------------------- run-iter! [46] 100.0% [56] 3256(5.6%) 0(0.0%) finalize-iter! ...stversion/src/mainloop.rkt:278:0 ??? [127] 100.0% --------------------------------------------------------------------------------- run-iter! [46] 100.0% [57] 1604(2.8%) 0(0.0%) gen-rewrites! ...estversion/src/mainloop.rkt:183:0 for-loop [64] 100.0% --------------------------------------------------------------------------------- for-loop [51] 100.0% [58] 404(0.7%) 0(0.0%) option-on-expr ...rsion/src/core/regimes.rkt:126:0 for-loop [66] 50.5% sort-context-on-expr [68] 49.5% --------------------------------------------------------------------------------- run-iter! [46] 100.0% [59] 400(0.7%) 0(0.0%) choose-best-alt! ...version/src/mainloop.rkt:117:0 ...ow-val-first.rkt:486:18 [65] 100.0% --------------------------------------------------------------------------------- eval-const-expr [47] 100.0% [60] 200(0.3%) 0(0.0%) eval (unknown source) namespace-syntax-introduce3 [67] 100.0% --------------------------------------------------------------------------------- simplify! [53] 100.0% [61] 41814(72.3%) 0(0.0%) ??? ...-testversion/src/core/herbie-egraph.rkt:9:0 for-loop [69] 97.1% loop [73] 2.4% for-loop [75] 0.5% --------------------------------------------------------------------------------- gen-series! [54] 100.0% [62] 5922(10.2%) 0(0.0%) for-loop ...ath-testversion/src/mainloop.rkt:167:7 taylor-alt [70] 100.0% --------------------------------------------------------------------------------- temp85_0 [55] 100.0% [63] 5022(8.7%) 0(0.0%) compile15 (unknown source) temp91_0 [71] 100.0% --------------------------------------------------------------------------------- gen-rewrites! [57] 100.0% [64] 1604(2.8%) 0(0.0%) for-loop ...th-testversion/src/mainloop.rkt:191:11 rewrite-expression-head20 [72] 100.0% --------------------------------------------------------------------------------- choose-best-alt! [59] 100.0% [65] 400(0.7%) 0(0.0%) ...ow-val-first.rkt:486:18 (unknown source) ??? [74] 100.0% --------------------------------------------------------------------------------- option-on-expr [58] 100.0% [66] 204(0.4%) 0(0.0%) for-loop ...testversion/src/core/regimes.rkt:136:4 errors [143] 100.0% --------------------------------------------------------------------------------- eval [60] 100.0% [67] 200(0.3%) 0(0.0%) namespace-syntax-introduce3 (unknown source) add-ns-scopes [76] 100.0% --------------------------------------------------------------------------------- option-on-expr [58] 100.0% [68] 200(0.3%) 0(0.0%) sort-context-on-expr ...src/core/regimes.rkt:119:0 ??? [77] 100.0% --------------------------------------------------------------------------------- ??? [61] 100.0% [69] 40588(70.2%) 0(0.0%) for-loop ...ersion/src/core/herbie-egraph.rkt:29:2 ??? [78] 93.0% for-loop [82] 3.9% precompute-phase [83] 3.0% --------------------------------------------------------------------------------- for-loop [62] 100.0% [70] 5922(10.2%) 0(0.0%) taylor-alt ...h-testversion/src/mainloop.rkt:146:0 for-loop [79] 100.0% --------------------------------------------------------------------------------- compile15 [63] 100.0% [71] 5022(8.7%) 0(0.0%) temp91_0 (unknown source) temp118_0 [80] 76.5% compile-top9 [84] 23.5% --------------------------------------------------------------------------------- for-loop [64] 100.0% [72] 1604(2.8%) 0(0.0%) rewrite-expression-head20 ...core/matcher.rkt:87:0 rewriter [81] 100.0% --------------------------------------------------------------------------------- ??? [61] 100.0% [73] 1022(1.8%) 0(0.0%) loop ...h-testversion/src/core/extraction.rkt:25:2 for-loop [85] 100.0% --------------------------------------------------------------------------------- ...ow-val-first.rkt:486:18 [65] 100.0% [74] 400(0.7%) 0(0.0%) ??? ...ath-testversion/src/core/alt-table.rkt:58:0 argmin [88] 50.0% loop [89] 50.0% --------------------------------------------------------------------------------- ??? [61] 100.0% [75] 204(0.4%) 0(0.0%) for-loop ...rsion/src/core/herbie-egraph.rkt:20:14 mk-enode-rec! [159] 100.0% --------------------------------------------------------------------------------- namespace-syntax-introduce3 [67] 100.0% [76] 200(0.3%) 0(0.0%) add-ns-scopes (unknown source) add-scopes [86] 100.0% --------------------------------------------------------------------------------- sort-context-on-expr [68] 100.0% [77] 200(0.3%) 0(0.0%) ??? ...-7.5/collects/racket/private/sort.rkt:369:3 generic-sort/key [87] 100.0% --------------------------------------------------------------------------------- for-loop [69] 100.0% [78] 37760(65.3%) 0(0.0%) ??? ...testversion/src/core/herbie-egraph.rkt:70:0 find-matches [90] 52.0% for-loop [91] 48.0% --------------------------------------------------------------------------------- taylor-alt [70] 100.0% [79] 5922(10.2%) 0(0.0%) for-loop ...ath-testversion/src/mainloop.rkt:152:6 ??? [174] 100.0% --------------------------------------------------------------------------------- temp91_0 [71] 100.0% [80] 3840(6.6%) 0(0.0%) temp118_0 (unknown source) expand-capturing-lifts [92] 100.0% --------------------------------------------------------------------------------- rewrite-expression-head20 [72] 33.2% matcher [106] 66.8% [81] 1604(2.8%) 0(0.0%) rewriter ...-testversion/src/core/matcher.rkt:90:2 for-loop [93] 69.9% *rules* [95] 30.1% --------------------------------------------------------------------------------- for-loop [69] 100.0% [82] 1602(2.8%) 0(0.0%) for-loop ...ersion/src/core/herbie-egraph.rkt:37:4 prune-phase [94] 100.0% --------------------------------------------------------------------------------- for-loop [69] 100.0% [83] 1226(2.1%) 0(0.0%) precompute-phase ...rc/core/herbie-egraph.rkt:79:0 for-loop [96] 100.0% --------------------------------------------------------------------------------- temp91_0 [71] 100.0% [84] 1182(2.0%) 0(0.0%) compile-top9 (unknown source) compile-forms33 [97] 100.0% --------------------------------------------------------------------------------- loop [73] 100.0% [85] 1022(1.8%) 0(0.0%) for-loop ...stversion/src/core/extraction.rkt:29:4 for-loop [98] 80.4% make-sequence [100] 19.6% --------------------------------------------------------------------------------- add-ns-scopes [76] 100.0% [86] 200(0.3%) 200(0.3%) add-scopes (unknown source) --------------------------------------------------------------------------------- ??? [77] 100.0% [87] 200(0.3%) 0(0.0%) generic-sort/key .../racket/private/sort.rkt:156:2 copying-mergesort [101] 100.0% --------------------------------------------------------------------------------- ??? [74] 100.0% [88] 200(0.3%) 0(0.0%) argmin ...acket-7.5/collects/racket/list.rkt:765:0 ??? [99] 100.0% --------------------------------------------------------------------------------- ??? [74] 100.0% [89] 200(0.3%) 0(0.0%) loop .../racket-7.5/collects/racket/list.rkt:751:4 ??? [99] 100.0% --------------------------------------------------------------------------------- ??? [78] 100.0% [90] 19654(34.0%) 0(0.0%) find-matches ...on/src/core/herbie-egraph.rkt:62:0 for-loop [102] 100.0% --------------------------------------------------------------------------------- ??? [78] 100.0% [91] 18106(31.3%) 0(0.0%) for-loop ...ersion/src/core/herbie-egraph.rkt:71:2 for-loop [103] 100.0% --------------------------------------------------------------------------------- loop [154] 20.8% temp118_0 [80] 79.2% [92] 4850(8.4%) 0(0.0%) expand-capturing-lifts (unknown source) lambda-clause-expander [104] 66.7% dispatch-transformer41 [105] 29.1% expand-id-application-form17 [161] 4.2% --------------------------------------------------------------------------------- rewriter [81] 100.0% [93] 1604(2.8%) 0(0.0%) for-loop ...-testversion/src/core/matcher.rkt:92:4 matcher [106] 100.0% --------------------------------------------------------------------------------- for-loop [82] 100.0% [94] 1602(2.8%) 0(0.0%) prune-phase ...ion/src/core/herbie-egraph.rkt:84:0 for-loop [107] 100.0% --------------------------------------------------------------------------------- rewriter [81] 100.0% [95] 1404(2.4%) 0(0.0%) *rules* ...-testversion/src/syntax/rules.rkt:669:0 for-loop [182] 100.0% --------------------------------------------------------------------------------- precompute-phase [83] 100.0% [96] 1226(2.1%) 0(0.0%) for-loop ...ersion/src/core/herbie-egraph.rkt:80:2 set-precompute! [108] 100.0% --------------------------------------------------------------------------------- compile-top9 [84] 100.0% [97] 1182(2.0%) 574(1.0%) compile-forms33 (unknown source) for-loop [182] 51.4% --------------------------------------------------------------------------------- for-loop [85] 100.0% [98] 822(1.4%) 606(1.0%) for-loop ...tversion/src/core/extraction.rkt:37:16 for-loop [109] 26.3% --------------------------------------------------------------------------------- loop [89] 50.0% argmin [88] 50.0% [99] 400(0.7%) 0(0.0%) ??? ...eggmath-testversion/src/mainloop.rkt:114:10 errors [143] 100.0% --------------------------------------------------------------------------------- for-loop [85] 100.0% [100] 200(0.3%) 0(0.0%) make-sequence ...ects/racket/private/for.rkt:533:2 ??? [110] 100.0% --------------------------------------------------------------------------------- copying-mergesort [101] 50.0% generic-sort/key [87] 50.0% [101] 200(0.3%) 0(0.0%) copying-mergesort ...racket/private/sort.rkt:129:8 copying-mergesort [101] 50.0% loop [111] 50.0% --------------------------------------------------------------------------------- for-loop [102] 49.5% find-matches [90] 50.5% [102] 19654(34.0%) 802(1.4%) for-loop ...ersion/src/core/herbie-egraph.rkt:64:8 for-loop [102] 49.5% match-e [112] 46.4% ??? [135] 1.5% --------------------------------------------------------------------------------- for-loop [91] 100.0% [103] 18106(31.3%) 400(0.7%) for-loop ...ersion/src/core/herbie-egraph.rkt:74:4 merge-egraph-nodes! [119] 67.5% dedup-children! [113] 19.1% mk-enode-rec! [159] 7.9% pattern-substitute [117] 3.3% --------------------------------------------------------------------------------- expand-capturing-lifts [92] 100.0% [104] 3236(5.6%) 0(0.0%) lambda-clause-expander (unknown source) finish-bodys [114] 75.0% loop [154] 25.0% --------------------------------------------------------------------------------- loop [154] 36.4% expand-capturing-lifts [92] 63.6% [105] 2218(3.8%) 0(0.0%) dispatch-transformer41 (unknown source) apply-transformer52 [115] 100.0% --------------------------------------------------------------------------------- for-loop [19] 50.0% for-loop [93] 50.0% [106] 1604(2.8%) 0(0.0%) matcher ...-testversion/src/core/matcher.rkt:118:2 ??? [8] 50.0% rewriter [81] 48.4% constant? [144] 1.6% --------------------------------------------------------------------------------- prune-phase [94] 100.0% [107] 1602(2.8%) 0(0.0%) for-loop ...ersion/src/core/herbie-egraph.rkt:85:2 update-leader! [126] 100.0% --------------------------------------------------------------------------------- for-loop [96] 100.0% [108] 1226(2.1%) 0(0.0%) set-precompute! ...src/core/herbie-egraph.rkt:88:0 for-loop [116] 100.0% --------------------------------------------------------------------------------- for-loop [98] 100.0% [109] 216(0.4%) 216(0.4%) for-loop ...tversion/src/core/extraction.rkt:41:23 --------------------------------------------------------------------------------- make-sequence [100] 100.0% [110] 200(0.3%) 200(0.3%) ??? ...t-7.5/collects/racket/private/for.rkt:453:7 --------------------------------------------------------------------------------- copying-mergesort [101] 100.0% [111] 200(0.3%) 200(0.3%) loop ...7.5/collects/racket/private/sort.rkt:96:12 --------------------------------------------------------------------------------- for-loop [125] 32.5% for-loop [102] 67.5% [112] 18244(31.6%) 2012(3.5%) match-e ...th-testversion/src/core/ematch.rkt:39:0 for-loop [118] 81.1% variable? [121] 4.2% constant? [144] 3.9% ??? [127] 2.1% --------------------------------------------------------------------------------- for-loop [103] 100.0% [113] 3458(6.0%) 0(0.0%) dedup-children! ...ersion/src/core/enode.rkt:202:0 loop [120] 88.4% loop [145] 11.6% --------------------------------------------------------------------------------- lambda-clause-expander [104] 26.2% for-loop [182] 73.8% [114] 2428(4.2%) 0(0.0%) finish-bodys (unknown source) for-loop [182] 100.0% --------------------------------------------------------------------------------- dispatch-transformer41 [105] 100.0% [115] 2218(3.8%) 0(0.0%) apply-transformer52 (unknown source) loop [154] 44.5% apply-transformer-in-context [122] 36.3% apply-post-expansion [123] 19.1% --------------------------------------------------------------------------------- set-precompute! [108] 100.0% [116] 1226(2.1%) 202(0.3%) for-loop ...ersion/src/core/herbie-egraph.rkt:90:2 merge-egraph-nodes! [119] 65.7% setfindf [124] 17.8% --------------------------------------------------------------------------------- pattern-substitute [117] 33.3% for-loop [103] 66.7% [117] 600(1.0%) 200(0.3%) pattern-substitute ...on/src/core/matcher.rkt:46:0 pattern-substitute [117] 33.3% ??? [127] 16.8% constant? [144] 16.5% --------------------------------------------------------------------------------- match-e [112] 100.0% [118] 16622(28.7%) 7468(12.9%) for-loop ...-testversion/src/core/ematch.rkt:52:11 for-loop [125] 49.1% do-curry [191] 7.3% procedure-reduce-keyword-arity-mask [129] 5.0% cp-2 [130] 2.4% loop [154] 2.4% --------------------------------------------------------------------------------- for-loop [116] 6.2% for-loop [128] 6.3% merge-egraph-nodes! [119] 7.6% for-loop [103] 79.8% [119] 13024(22.5%) 400(0.7%) merge-egraph-nodes! ...n/src/core/egraph.rkt:145:0 loop! [157] 44.4% update-leader! [126] 37.0% merge-egraph-nodes! [119] 7.6% for-loop [128] 6.3% for-loop [182] 1.5% --------------------------------------------------------------------------------- dedup-children! [113] 17.1% loop [120] 82.9% [120] 3058(5.3%) 3058(5.3%) loop ...racket-7.5/collects/racket/list.rkt:434:17 loop [120] 82.9% --------------------------------------------------------------------------------- match-e [112] 100.0% [121] 2012(3.5%) 0(0.0%) variable? ...stversion/src/syntax/syntax.rkt:729:0 ??? [127] 70.1% value? [149] 29.9% --------------------------------------------------------------------------------- apply-transformer52 [115] 100.0% [122] 806(1.4%) 400(0.7%) apply-transformer-in-context (unknown source) ??? [131] 50.4% --------------------------------------------------------------------------------- apply-transformer52 [115] 100.0% [123] 424(0.7%) 0(0.0%) apply-post-expansion (unknown source) gf [158] 100.0% --------------------------------------------------------------------------------- for-loop [116] 100.0% [124] 218(0.4%) 0(0.0%) setfindf ...gmath-testversion/src/common.rkt:130:0 for-loop [132] 100.0% --------------------------------------------------------------------------------- for-loop [118] 100.0% [125] 11124(19.2%) 0(0.0%) for-loop ...-testversion/src/core/ematch.rkt:58:37 match-e [112] 96.4% ??? [135] 3.6% --------------------------------------------------------------------------------- for-loop [107] 22.1% merge-egraph-nodes! [119] 77.9% [126] 7250(12.5%) 206(0.4%) update-leader! ...ersion/src/core/egraph.rkt:213:0 for-loop [133] 97.2% --------------------------------------------------------------------------------- pattern-substitute [117] 3.4% match-e [112] 17.3% variable? [121] 23.9% finalize-iter! [56] 55.3% [127] 5888(10.2%) 2632(4.6%) ??? ...contract/private/arrow-val-first.rkt:486:18 for-loop [134] 55.3% --------------------------------------------------------------------------------- merge-egraph-nodes! [119] 100.0% [128] 1850(3.2%) 0(0.0%) for-loop ...-testversion/src/core/egraph.rkt:199:4 merge-egraph-nodes! [119] 100.0% --------------------------------------------------------------------------------- for-loop [118] 100.0% [129] 1034(1.8%) 1034(1.8%) procedure-reduce-keyword-arity-mask ....rkt:1597:4 --------------------------------------------------------------------------------- for-loop [118] 100.0% [130] 406(0.7%) 406(0.7%) cp-2 .../racket-7.5/collects/racket/list.rkt:826:2 --------------------------------------------------------------------------------- apply-transformer-in-context [122] 100.0% [131] 406(0.7%) 0(0.0%) ??? ...collects/racket/private/qq-and-or.rkt:155:9 ??? [136] 100.0% --------------------------------------------------------------------------------- setfindf [124] 100.0% [132] 218(0.4%) 218(0.4%) for-loop ...gmath-testversion/src/common.rkt:131:2 --------------------------------------------------------------------------------- update-leader! [126] 100.0% [133] 7044(12.2%) 0(0.0%) for-loop ...-testversion/src/core/egraph.rkt:218:6 hash-update! [142] 56.9% for-loop [137] 43.1% --------------------------------------------------------------------------------- ??? [127] 100.0% [134] 3256(5.6%) 0(0.0%) for-loop ...estversion/src/core/alt-table.rkt:55:2 atab-add-altn [138] 81.4% errors [143] 12.4% loop [141] 6.1% --------------------------------------------------------------------------------- for-loop [125] 39.7% for-loop [102] 60.3% [135] 1008(1.7%) 202(0.3%) ??? ...ggmath-testversion/src/core/ematch.rkt:43:5 for-loop [139] 80.0% --------------------------------------------------------------------------------- ??? [131] 100.0% [136] 406(0.7%) 0(0.0%) ??? ...ollects/racket/private/qq-and-or.rkt:164:21 syntax->list [140] 100.0% --------------------------------------------------------------------------------- for-loop [133] 100.0% [137] 3034(5.2%) 0(0.0%) for-loop ...-testversion/src/core/egraph.rkt:219:8 hash-update! [142] 100.0% --------------------------------------------------------------------------------- for-loop [134] 100.0% [138] 2652(4.6%) 0(0.0%) atab-add-altn ...sion/src/core/alt-table.rkt:203:0 errors [143] 84.9% override-at-pnts [147] 7.5% loop [146] 7.5% --------------------------------------------------------------------------------- ??? [135] 100.0% [139] 806(1.4%) 200(0.3%) for-loop ...h-testversion/src/core/ematch.rkt:44:7 constant? [144] 75.2% --------------------------------------------------------------------------------- ??? [136] 100.0% [140] 406(0.7%) 0(0.0%) syntax->list (unknown source) loop [154] 100.0% --------------------------------------------------------------------------------- for-loop [134] 100.0% [141] 200(0.3%) 0(0.0%) loop ...h-testversion/src/core/alt-table.rkt:177:2 loop [145] 100.0% --------------------------------------------------------------------------------- for-loop [137] 43.1% for-loop [133] 56.9% [142] 7044(12.2%) 0(0.0%) hash-update! ...cket/private/more-scheme.rkt:365:4 ??? [148] 100.0% --------------------------------------------------------------------------------- for-loop [66] 6.3% ??? [99] 12.3% for-loop [134] 12.4% atab-add-altn [138] 69.1% [143] 3260(5.6%) 0(0.0%) errors ...eggmath-testversion/src/points.rkt:201:0 eval-prog [150] 56.8% for-loop [151] 43.2% --------------------------------------------------------------------------------- pattern-substitute [117] 8.9% matcher [106] 9.0% for-loop [139] 27.2% match-e [112] 55.0% [144] 2232(3.9%) 0(0.0%) constant? ...stversion/src/syntax/syntax.rkt:726:0 value? [149] 100.0% --------------------------------------------------------------------------------- loop [141] 8.3% dedup-children! [113] 12.0% loop [145] 79.6% [145] 600(1.0%) 200(0.3%) loop ...racket-7.5/collects/racket/list.rkt:417:34 loop [145] 79.6% member [152] 8.3% loop [154] 3.7% --------------------------------------------------------------------------------- atab-add-altn [138] 100.0% [146] 200(0.3%) 200(0.3%) loop ...-7.5/collects/racket/private/hash.rkt:20:4 --------------------------------------------------------------------------------- atab-add-altn [138] 100.0% [147] 200(0.3%) 0(0.0%) override-at-pnts ...n/src/core/alt-table.rkt:138:0 for-loop [153] 100.0% --------------------------------------------------------------------------------- hash-update! [142] 100.0% [148] 7044(12.2%) 0(0.0%) ??? ...math-testversion/src/core/egraph.rkt:221:24 for-loop [155] 100.0% --------------------------------------------------------------------------------- variable? [121] 21.2% constant? [144] 78.8% [149] 2834(4.9%) 2834(4.9%) value? ...th-testversion/src/syntax/types.rkt:18:0 --------------------------------------------------------------------------------- loop [154] 9.7% errors [143] 90.3% [150] 2052(3.5%) 0(0.0%) eval-prog ...ath-testversion/src/programs.rkt:83:0 temp85_0 [55] 59.4% loop [154] 20.7% inductor [156] 10.1% hash-ref! [181] 9.8% --------------------------------------------------------------------------------- errors [143] 100.0% [151] 1408(2.4%) 402(0.7%) for-loop ...gmath-testversion/src/points.rkt:203:2 .../more-scheme.rkt:261:28 [29] 71.4% --------------------------------------------------------------------------------- loop [145] 100.0% [152] 200(0.3%) 200(0.3%) member (unknown source) --------------------------------------------------------------------------------- override-at-pnts [147] 100.0% [153] 200(0.3%) 200(0.3%) for-loop ...tversion/src/core/alt-table.rkt:139:22 --------------------------------------------------------------------------------- eval-prog [150] 0.4% for-loop [118] 0.7% .../more-scheme.rkt:261:28 [29] 1.0% syntax->list [140] 1.4% gf [158] 1.7% eval-const-expr [47] 2.0% loop [145] 2.0% ??? [197] 2.0% lambda-clause-expander [104] 2.9% apply-transformer52 [115] 3.5% for-loop [182] 3.7% for-loop [41] 4.4% mk-enode-rec! [159] 8.1% loop! [157] 8.2% syntax-e/no-taint [16] 11.8% loop [154] 46.3% [154] 9940(17.2%) 1212(2.1%) loop (unknown source) loop [154] 46.3% gf [158] 12.8% mk-enode-rec! [159] 8.1% loop! [157] 8.0% ??? [160] 4.4% syntax-e [6] 3.8% expand-id-application-form17 [161] 3.7% dispatch-transformer41 [105] 2.9% expand-capturing-lifts [92] 2.4% eval-prog [150] 1.0% core-form-sym [12] 1.0% foldl [162] 0.5% --------------------------------------------------------------------------------- ??? [148] 100.0% [155] 7044(12.2%) 6446(11.1%) for-loop ...testversion/src/core/egraph.rkt:222:26 update-en-expr [166] 8.5% --------------------------------------------------------------------------------- eval-prog [150] 8.5% inductor [156] 42.5% eval-const-expr [47] 49.0% [156] 408(0.7%) 208(0.4%) inductor ...ath-testversion/src/programs.rkt:104:4 table-ref [187] 49.0% inductor [156] 42.5% --------------------------------------------------------------------------------- loop [154] 30.2% merge-egraph-nodes! [119] 69.8% [157] 6776(11.7%) 1248(2.2%) loop! ...math-testversion/src/core/enode.rkt:194:2 custom-set-union [164] 38.0% loop [154] 34.7% set [165] 11.2% update-en-expr [166] 4.4% --------------------------------------------------------------------------------- apply-post-expansion [123] 3.2% loop [154] 96.8% [158] 2424(4.2%) 830(1.4%) gf (unknown source) propagation-apply [167] 33.4% cache-or-reuse-hash [169] 24.2% loop [154] 12.4% propagation-merge [173] 8.2% syntax-e/no-taint [16] 1.8% --------------------------------------------------------------------------------- for-loop [75] 3.1% loop [154] 27.9% for-loop [103] 69.0% [159] 1634(2.8%) 626(1.1%) mk-enode-rec! ...version/src/core/egraph.rkt:117:0 loop [154] 27.9% new-enode [168] 24.6% for-loop [170] 18.5% --------------------------------------------------------------------------------- loop [154] 100.0% [160] 1010(1.7%) 402(0.7%) ??? ...e/eggmath-testversion/src/points.rkt:190:26 ??? [163] 60.2% --------------------------------------------------------------------------------- expand-capturing-lifts [92] 25.1% loop [154] 74.9% [161] 814(1.4%) 0(0.0%) expand-id-application-form17 (unknown source) syntax-e/no-taint [16] 50.4% resolve+shift28 [171] 25.1% binding-lookup52 [203] 24.6% --------------------------------------------------------------------------------- loop [154] 100.0% [162] 200(0.3%) 0(0.0%) foldl ....5/collects/racket/private/list.rkt:229:4 merge2 [172] 100.0% --------------------------------------------------------------------------------- .../more-scheme.rkt:261:28 [29] 18.7% ??? [160] 18.8% loop [48] 62.5% [163] 3226(5.6%) 804(1.4%) ??? .../eggmath-testversion/src/programs.rkt:115:2 ??? [176] 31.2% ??? [174] 25.0% ??? [177] 18.8% --------------------------------------------------------------------------------- loop! [157] 100.0% [164] 3080(5.3%) 1640(2.8%) custom-set-union ...et/private/set-types.rkt:168:0 for-loop [175] 46.8% --------------------------------------------------------------------------------- loop! [157] 100.0% [165] 1446(2.5%) 1446(2.5%) set ...collects/racket/private/set-types.rkt:992:0 --------------------------------------------------------------------------------- for-loop [155] 50.0% loop! [157] 50.0% [166] 1196(2.1%) 1196(2.1%) update-en-expr ...ersion/src/core/egraph.rkt:207:0 --------------------------------------------------------------------------------- gf [158] 100.0% [167] 810(1.4%) 810(1.4%) propagation-apply (unknown source) --------------------------------------------------------------------------------- mk-enode-rec! [159] 100.0% [168] 602(1.0%) 0(0.0%) new-enode ...-testversion/src/core/enode.rkt:101:0 type-of-enode-expr [178] 100.0% --------------------------------------------------------------------------------- gf [158] 100.0% [169] 586(1.0%) 0(0.0%) cache-or-reuse-hash (unknown source) for-loop [182] 100.0% --------------------------------------------------------------------------------- mk-enode-rec! [159] 100.0% [170] 406(0.7%) 406(0.7%) for-loop ...testversion/src/core/egraph.rkt:109:10 --------------------------------------------------------------------------------- core-form-sym [12] 49.5% expand-id-application-form17 [161] 50.5% [171] 404(0.7%) 204(0.4%) resolve+shift28 (unknown source) fallback-loop [179] 49.5% --------------------------------------------------------------------------------- foldl [162] 100.0% [172] 200(0.3%) 200(0.3%) merge2 ...ath-testversion/src/core/ematch.rkt:24:0 --------------------------------------------------------------------------------- gf [158] 100.0% [173] 198(0.3%) 198(0.3%) propagation-merge (unknown source) --------------------------------------------------------------------------------- loop [14] 8.9% ??? [50] 10.6% ??? [163] 10.7% ??? [4] 11.8% location-do [180] 28.9% for-loop [79] 28.9% [174] 7528(13.0%) 0(0.0%) ??? ...tract/private/arrow-higher-order.rkt:375:33 location-do [180] 28.9% approximate9 [2] 28.9% hash-ref! [181] 20.8% sample-multi-bounded [185] 10.6% ival-mult [186] 8.0% mk-ival [189] 2.7% --------------------------------------------------------------------------------- custom-set-union [164] 100.0% [175] 1440(2.5%) 604(1.0%) for-loop ...cts/racket/private/set-types.rkt:174:3 for-loop [183] 58.1% --------------------------------------------------------------------------------- ??? [163] 100.0% [176] 1008(1.7%) 0(0.0%) ??? ...tract/private/arrow-higher-order.rkt:379:33 ival-add [184] 79.6% ival-sub [188] 20.4% --------------------------------------------------------------------------------- ??? [163] 100.0% [177] 608(1.1%) 608(1.1%) ??? ...th-testversion/src/syntax/syntax.rkt:214:17 --------------------------------------------------------------------------------- new-enode [168] 100.0% [178] 602(1.0%) 402(0.7%) type-of-enode-expr ...sion/src/core/enode.rkt:66:0 table-ref [187] 33.2% --------------------------------------------------------------------------------- resolve+shift28 [171] 100.0% [179] 200(0.3%) 0(0.0%) fallback-loop (unknown source) for-loop [182] 100.0% --------------------------------------------------------------------------------- ??? [174] 46.3% location-do [180] 53.7% [180] 5922(10.2%) 0(0.0%) location-do ...h-testversion/src/programs.rkt:64:0 location-do [180] 53.7% ??? [174] 46.3% --------------------------------------------------------------------------------- for-loop [17] 1.2% for-loop [30] 1.4% for-loop [18] 2.7% ??? [26] 3.0% first-nonzero-exp [28] 3.5% eval-prog [150] 3.5% for-loop [24] 4.7% loop [11] 5.4% loop [14] 10.2% ??? [190] 20.1% ??? [174] 20.1% for-loop [15] 23.0% [181] 5704(9.9%) 0(0.0%) hash-ref! .../racket/private/more-scheme.rkt:376:2 simplify [33] 25.0% ??? [3] 23.5% ??? [190] 20.1% ??? [4] 10.2% ??? [7] 7.6% ??? [5] 7.4% ??? [197] 3.5% ??? [9] 1.4% --------------------------------------------------------------------------------- fallback-loop [179] 3.7% merge-egraph-nodes! [119] 3.7% for-loop [182] 6.7% cache-or-reuse-hash [169] 10.8% compile-forms33 [97] 11.2% *rules* [95] 25.9% finish-bodys [114] 38.0% [182] 5426(9.4%) 1802(3.1%) for-loop (unknown source) finish-bodys [114] 30.4% ormap [193] 14.9% compile-module-linklet57 [195] 7.5% for-loop [182] 6.7% flag-set? [202] 3.7% do-curry [191] 3.5% expand-implicit [194] 3.1% syntax-e [6] 0.9% loop [154] 0.8% --------------------------------------------------------------------------------- for-loop [175] 100.0% [183] 836(1.4%) 836(1.4%) for-loop ...cts/racket/private/set-types.rkt:178:5 --------------------------------------------------------------------------------- ??? [176] 100.0% [184] 802(1.4%) 200(0.3%) ival-add ...-testversion/src/biginterval.rkt:101:0 bfmul [192] 75.1% --------------------------------------------------------------------------------- ??? [174] 100.0% [185] 800(1.4%) 200(0.3%) sample-multi-bounded ...ersion/src/points.rkt:15:0 random-ranges [196] 50.0% for-loop [198] 25.0% --------------------------------------------------------------------------------- ??? [174] 100.0% [186] 606(1.0%) 206(0.4%) ival-mult ...testversion/src/biginterval.rkt:119:0 bfmul [192] 66.0% --------------------------------------------------------------------------------- type-of-enode-expr [178] 50.0% inductor [156] 50.0% [187] 400(0.7%) 200(0.3%) table-ref ...gmath-testversion/src/common.rkt:33:0 for-loop [199] 50.0% --------------------------------------------------------------------------------- ??? [176] 100.0% [188] 206(0.4%) 0(0.0%) ival-sub ...-testversion/src/biginterval.rkt:107:0 bfmul [192] 100.0% --------------------------------------------------------------------------------- ??? [174] 100.0% [189] 200(0.3%) 0(0.0%) mk-ival ...th-testversion/src/biginterval.rkt:65:0 bf [200] 100.0% --------------------------------------------------------------------------------- hash-ref! [181] 100.0% [190] 4690(8.1%) 0(0.0%) ??? ...gmath-testversion/src/core/taylor.rkt:45:15 hash-ref! [181] 100.0% --------------------------------------------------------------------------------- for-loop [182] 11.7% for-loop [118] 88.3% [191] 1618(2.8%) 1618(2.8%) do-curry ...-7.5/collects/racket/function.rkt:71:2 --------------------------------------------------------------------------------- ival-sub [188] 17.1% ival-mult [186] 33.1% ival-add [184] 49.8% [192] 1208(2.1%) 0(0.0%) bfmul ...-lib/math/private/bigfloat/mpfr.rkt:835:4 ??? [201] 83.4% new-mpfr [204] 16.6% --------------------------------------------------------------------------------- for-loop [182] 100.0% [193] 806(1.4%) 200(0.3%) ormap ....5/collects/racket/private/map.rkt:141:13 flag-set? [202] 75.2% --------------------------------------------------------------------------------- for-loop [182] 100.0% [194] 610(1.1%) 202(0.3%) expand-implicit (unknown source) binding-lookup52 [203] 33.8% syntax-disarm3 [205] 33.1% --------------------------------------------------------------------------------- for-loop [182] 100.0% [195] 406(0.7%) 406(0.7%) compile-module-linklet57 (unknown source) --------------------------------------------------------------------------------- sample-multi-bounded [185] 100.0% [196] 400(0.7%) 400(0.7%) random-ranges ...-testversion/src/common.rkt:171:0 --------------------------------------------------------------------------------- hash-ref! [181] 100.0% [197] 202(0.3%) 0(0.0%) ??? .../eggmath-testversion/src/programs.rkt:161:5 loop [154] 100.0% --------------------------------------------------------------------------------- sample-multi-bounded [185] 100.0% [198] 200(0.3%) 200(0.3%) for-loop ...ggmath-testversion/src/points.rkt:23:4 --------------------------------------------------------------------------------- table-ref [187] 100.0% [199] 200(0.3%) 200(0.3%) for-loop ...ggmath-testversion/src/common.rkt:35:4 --------------------------------------------------------------------------------- mk-ival [189] 100.0% [200] 200(0.3%) 0(0.0%) bf ...ath-lib/math/private/bigfloat/mpfr.rkt:615:2 new-mpfr [204] 100.0% --------------------------------------------------------------------------------- loop [48] 16.7% bfmul [192] 83.3% [201] 1210(2.1%) 1210(2.1%) ??? /opt/racket-7.5/collects/ffi/unsafe.rkt:938:4 --------------------------------------------------------------------------------- for-loop [182] 24.8% ormap [193] 75.2% [202] 806(1.4%) 200(0.3%) flag-set? ...gmath-testversion/src/config.rkt:28:0 return/no-unsupplied [206] 75.2% --------------------------------------------------------------------------------- expand-id-application-form17 [161] 49.3% expand-implicit [194] 50.7% [203] 406(0.7%) 206(0.4%) binding-lookup52 (unknown source) binding->module-instance [207] 49.3% --------------------------------------------------------------------------------- bfmul [192] 50.0% bf [200] 50.0% [204] 400(0.7%) 400(0.7%) new-mpfr ...b/math/private/bigfloat/mpfr.rkt:348:0 --------------------------------------------------------------------------------- expand-implicit [194] 100.0% [205] 202(0.3%) 202(0.3%) syntax-disarm3 (unknown source) --------------------------------------------------------------------------------- simplify* [44] 26.5% flag-set? [202] 73.5% [206] 824(1.4%) 624(1.1%) return/no-unsupplied ...ct/private/arr-i.rkt:566:0 filter [208] 24.3% --------------------------------------------------------------------------------- binding-lookup52 [203] 100.0% [207] 200(0.3%) 200(0.3%) binding->module-instance (unknown source) --------------------------------------------------------------------------------- return/no-unsupplied [206] 100.0% [208] 200(0.3%) 200(0.3%) filter ...5/collects/racket/private/list.rkt:256:2 ---------------------------------------------------------------------------------