Profiling results ----------------- Total cpu time observed: 65418ms (out of 65752ms) Number of samples taken: 262 (once every 250ms) (Hiding functions with self<1.0% and local<2.0%: 7 of 216 hidden) ================================================================================ Caller Idx Total Self Name+src Local% ms(pct) ms(pct) Callee ================================================================================ ??? [107] 100.0% [1] 65418(100.0%) 0(0.0%) profile-thunk16 ...e/pkgs/profile-lib/main.rkt:9:0 run [14] 100.0% -------------------------------------------------------------------------------- ??? [107] 100.0% [2] 57792(88.3%) 0(0.0%) run-improve47 ...bie/master/src/mainloop.rkt:345:0 for-loop [15] 100.0% -------------------------------------------------------------------------------- ??? [152] 100.0% [3] 4722(7.2%) 0(0.0%) approximate9 ...ie/master/src/core/taylor.rkt:12:0 loop [16] 79.2% for-loop [20] 16.3% taylor [26] 4.5% -------------------------------------------------------------------------------- hash-ref! [168] 100.0% [4] 3740(5.7%) 0(0.0%) ??? ...ies/herbie/master/src/core/taylor.rkt:45:15 hash-ref! [168] 93.5% ??? [23] 6.5% -------------------------------------------------------------------------------- hash-ref! [168] 100.0% [5] 2280(3.5%) 0(0.0%) ??? ...es/herbie/master/src/core/taylor.rkt:301:23 for-loop [17] 100.0% -------------------------------------------------------------------------------- matcher [64] 100.0% [6] 1414(2.2%) 0(0.0%) ??? ...s/herbie/master/src/core/matcher.rkt:130:11 for-loop [18] 100.0% -------------------------------------------------------------------------------- hash-ref! [168] 100.0% [7] 1288(2.0%) 0(0.0%) ??? ...es/herbie/master/src/core/taylor.rkt:407:23 for-loop [19] 100.0% -------------------------------------------------------------------------------- hash-ref! [168] 100.0% [8] 1264(1.9%) 0(0.0%) ??? ...ies/herbie/master/src/core/taylor.rkt:68:15 ??? [152] 100.0% -------------------------------------------------------------------------------- match-e [69] 100.0% [9] 874(1.3%) 0(0.0%) variable? ...ie/master/src/syntax/syntax.rkt:729:0 ??? [76] 100.0% -------------------------------------------------------------------------------- for-loop [193] 100.0% [10] 466(0.7%) 0(0.0%) syntax-e (unknown source) syntax-e/no-taint [21] 100.0% -------------------------------------------------------------------------------- hash-ref! [168] 100.0% [11] 274(0.4%) 0(0.0%) ??? ...es/herbie/master/src/core/taylor.rkt:510:23 for-loop [22] 100.0% -------------------------------------------------------------------------------- taylor [26] 100.0% [12] 248(0.4%) 0(0.0%) loop ...es/herbie/master/src/core/taylor.rkt:268:2 hash-ref! [168] 100.0% -------------------------------------------------------------------------------- for-loop [193] 100.0% [13] 210(0.3%) 0(0.0%) expand-implicit (unknown source) resolve+shift28 [24] 100.0% -------------------------------------------------------------------------------- profile-thunk16 [1] 100.0% [14] 65418(100.0%) 0(0.0%) run ...et-7.2/share/pkgs/profile-lib/main.rkt:39:2 ??? [107] 100.0% -------------------------------------------------------------------------------- run-improve47 [2] 100.0% [15] 57792(88.3%) 0(0.0%) for-loop ...s/herbie/master/src/mainloop.rkt:364:4 run-iter! [25] 100.0% -------------------------------------------------------------------------------- approximate9 [3] 100.0% [16] 3740(5.7%) 0(0.0%) loop ...ies/herbie/master/src/core/taylor.rkt:87:4 ??? [152] 66.2% hash-ref! [168] 33.8% -------------------------------------------------------------------------------- ??? [5] 100.0% [17] 2280(3.5%) 0(0.0%) for-loop ...rbie/master/src/core/taylor.rkt:304:27 hash-ref! [168] 100.0% -------------------------------------------------------------------------------- ??? [6] 100.0% [18] 1414(2.2%) 0(0.0%) for-loop ...bie/master/src/core/matcher.rkt:132:15 matcher [64] 100.0% -------------------------------------------------------------------------------- ??? [7] 100.0% [19] 1288(2.0%) 0(0.0%) for-loop ...rbie/master/src/core/taylor.rkt:411:33 hash-ref! [168] 81.2% for-loop [27] 18.8% -------------------------------------------------------------------------------- approximate9 [3] 100.0% [20] 770(1.2%) 0(0.0%) for-loop ...erbie/master/src/core/taylor.rkt:30:18 taylor [26] 100.0% -------------------------------------------------------------------------------- expand-id-application-form17 [199] 35.5% syntax-e [10] 64.5% [21] 722(1.1%) 0(0.0%) syntax-e/no-taint (unknown source) loop [184] 100.0% -------------------------------------------------------------------------------- ??? [11] 100.0% [22] 274(0.4%) 0(0.0%) for-loop ...rbie/master/src/core/taylor.rkt:514:35 parse-loop30 [42] 100.0% -------------------------------------------------------------------------------- ??? [4] 100.0% [23] 242(0.4%) 0(0.0%) ??? ...es/herbie/master/src/core/taylor.rkt:294:19 hash-ref! [168] 100.0% -------------------------------------------------------------------------------- expand-implicit [13] 100.0% [24] 210(0.3%) 0(0.0%) resolve+shift28 (unknown source) fallback-loop [28] 100.0% -------------------------------------------------------------------------------- for-loop [15] 100.0% [25] 57792(88.3%) 0(0.0%) run-iter! .../herbie/master/src/mainloop.rkt:326:0 simplify! [29] 81.2% gen-series! [30] 8.2% finalize-iter! [31] 6.6% gen-rewrites! [32] 2.9% localize! [33] 1.1% -------------------------------------------------------------------------------- approximate9 [3] 7.2% taylor [26] 45.0% for-loop [20] 47.8% [26] 982(1.5%) 270(0.4%) taylor .../herbie/master/src/core/taylor.rkt:170:0 taylor [26] 45.0% taylor-cbrt [34] 25.7% loop [12] 8.4% map [126] 7.2% -------------------------------------------------------------------------------- for-loop [19] 100.0% [27] 242(0.4%) 0(0.0%) for-loop ...rbie/master/src/core/taylor.rkt:413:39 hash-ref! [168] 100.0% -------------------------------------------------------------------------------- resolve+shift28 [24] 100.0% [28] 210(0.3%) 0(0.0%) fallback-loop (unknown source) for-loop [193] 100.0% -------------------------------------------------------------------------------- run-iter! [25] 100.0% [29] 46942(71.8%) 0(0.0%) simplify! .../herbie/master/src/mainloop.rkt:223:0 ??? [35] 100.0% -------------------------------------------------------------------------------- run-iter! [25] 100.0% [30] 4722(7.2%) 0(0.0%) gen-series! ...erbie/master/src/mainloop.rkt:159:0 for-loop [36] 100.0% -------------------------------------------------------------------------------- run-iter! [25] 100.0% [31] 3814(5.8%) 0(0.0%) finalize-iter! ...ie/master/src/mainloop.rkt:277:0 ??? [76] 100.0% -------------------------------------------------------------------------------- run-iter! [25] 100.0% [32] 1650(2.5%) 0(0.0%) gen-rewrites! ...bie/master/src/mainloop.rkt:182:0 for-loop [38] 85.7% group-by61 [161] 14.3% -------------------------------------------------------------------------------- run-iter! [25] 100.0% [33] 664(1.0%) 0(0.0%) localize! .../herbie/master/src/mainloop.rkt:126:0 localize-error [39] 100.0% -------------------------------------------------------------------------------- taylor [26] 100.0% [34] 252(0.4%) 0(0.0%) taylor-cbrt ...ie/master/src/core/taylor.rkt:378:0 simplify [37] 100.0% -------------------------------------------------------------------------------- simplify! [29] 100.0% [35] 46942(71.8%) 0(0.0%) ??? ...es/herbie/master/src/core/simplify.rkt:26:0 for-loop [40] 86.8% one-iter [46] 11.7% loop [49] 1.6% -------------------------------------------------------------------------------- gen-series! [30] 100.0% [36] 4722(7.2%) 0(0.0%) for-loop ...s/herbie/master/src/mainloop.rkt:166:7 taylor-alt [41] 100.0% -------------------------------------------------------------------------------- taylor-invert [139] 4.8% taylor-cbrt [34] 5.7% hash-ref! [168] 89.6% [37] 4452(6.8%) 0(0.0%) simplify ...herbie/master/src/core/reduce.rkt:16:0 f46 [119] 51.7% parse-loop30 [42] 37.4% debug-print [44] 6.1% simplify* [45] 4.8% -------------------------------------------------------------------------------- gen-rewrites! [32] 100.0% [38] 1414(2.2%) 0(0.0%) for-loop .../herbie/master/src/mainloop.rkt:190:11 rewrite-expression-head20 [43] 100.0% -------------------------------------------------------------------------------- localize! [33] 100.0% [39] 664(1.0%) 0(0.0%) localize-error ...aster/src/core/localize.rkt:66:0 hash-ref! [168] 100.0% -------------------------------------------------------------------------------- ??? [35] 100.0% [40] 40726(62.3%) 0(0.0%) for-loop ...rbie/master/src/core/simplify.rkt:35:2 one-iter [46] 98.8% loop [49] 1.2% -------------------------------------------------------------------------------- for-loop [36] 100.0% [41] 4722(7.2%) 0(0.0%) taylor-alt ...herbie/master/src/mainloop.rkt:145:0 for-loop [47] 100.0% -------------------------------------------------------------------------------- for-loop [22] 6.3% hash-ref! [168] 15.2% simplify [37] 38.2% map [126] 40.3% [42] 4362(6.7%) 0(0.0%) parse-loop30 ...s/racket/match/compiler.rkt:418:15 eval-const-expr [112] 72.9% map [126] 12.6% for-loop [50] 6.3% f46 [119] 5.5% for-loop [52] 2.6% -------------------------------------------------------------------------------- for-loop [38] 100.0% [43] 1414(2.2%) 0(0.0%) rewrite-expression-head20 ...core/matcher.rkt:87:0 rewriter [48] 100.0% -------------------------------------------------------------------------------- simplify [37] 100.0% [44] 272(0.4%) 0(0.0%) debug-print ...s/herbie/master/src/debug.rkt:110:0 ??? [51] 100.0% -------------------------------------------------------------------------------- simplify [37] 100.0% [45] 212(0.3%) 0(0.0%) simplify* ...erbie/master/src/core/reduce.rkt:31:0 return/no-unsupplied [86] 100.0% -------------------------------------------------------------------------------- ??? [35] 12.0% for-loop [40] 88.0% [46] 45730(69.9%) 0(0.0%) one-iter ...rbie/master/src/core/simplify.rkt:72:0 find-matches [53] 47.9% for-loop [54] 41.7% for-loop [55] 8.8% for-loop [59] 1.6% -------------------------------------------------------------------------------- taylor-alt [41] 100.0% [47] 4722(7.2%) 0(0.0%) for-loop ...s/herbie/master/src/mainloop.rkt:151:6 ??? [152] 100.0% -------------------------------------------------------------------------------- rewrite-expression-head20 [43] 37.7% matcher [64] 62.3% [48] 1414(2.2%) 230(0.4%) rewriter ...erbie/master/src/core/matcher.rkt:90:2 for-loop [56] 62.3% *rules* [58] 29.6% -------------------------------------------------------------------------------- for-loop [40] 39.6% ??? [35] 60.4% [49] 1212(1.9%) 0(0.0%) loop ...herbie/master/src/core/extraction.rkt:25:2 for-loop [57] 100.0% -------------------------------------------------------------------------------- parse-loop30 [42] 100.0% [50] 274(0.4%) 0(0.0%) for-loop ...rbie/master/src/core/taylor.rkt:517:59 hash-ref! [168] 100.0% -------------------------------------------------------------------------------- debug-print [44] 100.0% [51] 272(0.4%) 0(0.0%) ??? .../contract/private/arrow-val-first.rkt:430:3 ~r78 [60] 100.0% -------------------------------------------------------------------------------- parse-loop30 [42] 100.0% [52] 230(0.4%) 0(0.0%) for-loop ...bie/master/src/core/localize.rkt:53:21 for-loop [61] 100.0% -------------------------------------------------------------------------------- one-iter [46] 100.0% [53] 21910(33.5%) 0(0.0%) find-matches .../master/src/core/simplify.rkt:62:0 for-loop [62] 100.0% -------------------------------------------------------------------------------- one-iter [46] 100.0% [54] 19064(29.1%) 0(0.0%) for-loop ...rbie/master/src/core/simplify.rkt:74:2 for-loop [63] 100.0% -------------------------------------------------------------------------------- one-iter [46] 100.0% [55] 4042(6.2%) 0(0.0%) for-loop ...rbie/master/src/core/simplify.rkt:84:2 update-leader! [80] 100.0% -------------------------------------------------------------------------------- rewriter [48] 100.0% [56] 1414(2.2%) 0(0.0%) for-loop ...erbie/master/src/core/matcher.rkt:92:4 matcher [64] 100.0% -------------------------------------------------------------------------------- loop [49] 100.0% [57] 1212(1.9%) 206(0.3%) for-loop ...ie/master/src/core/extraction.rkt:29:4 for-loop [66] 83.0% -------------------------------------------------------------------------------- rewriter [48] 100.0% [58] 1184(1.8%) 0(0.0%) *rules* ...erbie/master/src/syntax/rules.rkt:666:0 for-loop [65] 100.0% -------------------------------------------------------------------------------- one-iter [46] 100.0% [59] 714(1.1%) 0(0.0%) for-loop ...rbie/master/src/core/simplify.rkt:81:2 set-precompute! [67] 100.0% -------------------------------------------------------------------------------- ??? [51] 100.0% [60] 272(0.4%) 0(0.0%) ~r78 ...acket-7.2/collects/racket/format.rkt:189:0 number->string* [68] 100.0% -------------------------------------------------------------------------------- for-loop [52] 100.0% [61] 230(0.4%) 0(0.0%) for-loop ...bie/master/src/core/localize.rkt:54:23 ??? [194] 100.0% -------------------------------------------------------------------------------- for-loop [62] 47.2% find-matches [53] 52.8% [62] 21910(33.5%) 1522(2.3%) for-loop ...rbie/master/src/core/simplify.rkt:64:8 for-loop [62] 47.2% match-e [69] 46.0% ??? [94] 0.5% -------------------------------------------------------------------------------- for-loop [54] 100.0% [63] 19064(29.1%) 0(0.0%) for-loop ...rbie/master/src/core/simplify.rkt:77:4 merge-egraph-nodes! [75] 58.6% dedup-children! [81] 24.2% mk-enode-rec! [142] 13.6% pattern-substitute [71] 3.6% -------------------------------------------------------------------------------- for-loop [18] 50.0% for-loop [56] 50.0% [64] 1414(2.2%) 0(0.0%) matcher ...erbie/master/src/core/matcher.rkt:118:2 ??? [6] 50.0% rewriter [48] 50.0% -------------------------------------------------------------------------------- *rules* [58] 100.0% [65] 1184(1.8%) 468(0.7%) for-loop ...lies/herbie/master/src/common.rkt:74:9 ormap [72] 38.2% do-curry [85] 22.3% -------------------------------------------------------------------------------- for-loop [57] 100.0% [66] 1006(1.5%) 732(1.1%) for-loop ...e/master/src/core/extraction.rkt:37:16 for-loop [73] 27.2% -------------------------------------------------------------------------------- for-loop [59] 100.0% [67] 714(1.1%) 0(0.0%) set-precompute! ...ster/src/core/simplify.rkt:88:0 for-loop [70] 100.0% -------------------------------------------------------------------------------- ~r78 [60] 100.0% [68] 272(0.4%) 272(0.4%) number->string* ...ollects/racket/format.rkt:417:0 -------------------------------------------------------------------------------- for-loop [79] 27.1% for-loop [62] 72.9% [69] 20170(30.8%) 2734(4.2%) match-e .../herbie/master/src/core/ematch.rkt:39:0 for-loop [74] 78.8% constant? [104] 6.1% ??? [76] 2.2% variable? [9] 2.0% -------------------------------------------------------------------------------- set-precompute! [67] 100.0% [70] 714(1.1%) 0(0.0%) for-loop ...rbie/master/src/core/simplify.rkt:90:2 ??? [107] 34.7% merge-egraph-nodes! [75] 34.2% setfindf [78] 31.1% -------------------------------------------------------------------------------- pattern-substitute [71] 32.1% for-loop [63] 67.9% [71] 694(1.1%) 248(0.4%) pattern-substitute ...er/src/core/matcher.rkt:46:0 pattern-substitute [71] 32.1% ??? [76] 16.7% constant? [104] 15.4% -------------------------------------------------------------------------------- for-loop [65] 100.0% [72] 452(0.7%) 0(0.0%) ormap ....2/collects/racket/private/map.rkt:141:13 flag-set? [77] 100.0% -------------------------------------------------------------------------------- for-loop [66] 100.0% [73] 274(0.4%) 274(0.4%) for-loop ...e/master/src/core/extraction.rkt:41:23 -------------------------------------------------------------------------------- match-e [69] 100.0% [74] 18096(27.7%) 7224(11.0%) for-loop ...erbie/master/src/core/ematch.rkt:52:11 for-loop [79] 51.6% procedure-reduce-keyword-arity-mask [84] 9.9% loop [133] 3.1% do-curry [85] 2.1% -------------------------------------------------------------------------------- for-loop [70] 2.1% merge-egraph-nodes! [75] 5.3% for-loop [83] 9.2% for-loop [63] 83.3% [75] 11414(17.4%) 0(0.0%) merge-egraph-nodes! ...r/src/core/egraph.rkt:145:0 update-leader! [80] 48.4% loop! [140] 31.7% for-loop [83] 9.2% merge-egraph-nodes! [75] 5.3% dedup-children! [81] 3.2% enode-merge! [87] 2.2% -------------------------------------------------------------------------------- pattern-substitute [71] 3.9% variable? [9] 14.6% match-e [69] 17.9% finalize-iter! [31] 63.6% [76] 5996(9.2%) 1902(2.9%) ??? ...contract/private/arrow-val-first.rkt:390:18 for-loop [82] 60.1% ??? [178] 4.7% atab-add-altns [89] 3.5% -------------------------------------------------------------------------------- ormap [72] 100.0% [77] 452(0.7%) 212(0.3%) flag-set? ...ies/herbie/master/src/config.rkt:28:0 return/no-unsupplied [86] 53.1% -------------------------------------------------------------------------------- for-loop [70] 100.0% [78] 222(0.3%) 0(0.0%) setfindf ...ies/herbie/master/src/common.rkt:142:0 for-loop [88] 100.0% -------------------------------------------------------------------------------- for-loop [74] 100.0% [79] 12084(18.5%) 732(1.1%) for-loop ...erbie/master/src/core/ematch.rkt:58:37 match-e [69] 86.4% ??? [94] 8.8% -------------------------------------------------------------------------------- for-loop [55] 39.2% merge-egraph-nodes! [75] 60.8% [80] 10316(15.8%) 0(0.0%) update-leader! ...master/src/core/egraph.rkt:213:0 for-loop [90] 100.0% -------------------------------------------------------------------------------- merge-egraph-nodes! [75] 15.7% for-loop [63] 84.3% [81] 5468(8.4%) 0(0.0%) dedup-children! ...master/src/core/enode.rkt:202:0 loop [91] 73.0% loop [93] 27.0% -------------------------------------------------------------------------------- ??? [76] 100.0% [82] 3604(5.5%) 0(0.0%) for-loop ...bie/master/src/core/alt-table.rkt:55:2 atab-add-altn [92] 54.1% errors [98] 45.9% -------------------------------------------------------------------------------- merge-egraph-nodes! [75] 100.0% [83] 2252(3.4%) 0(0.0%) for-loop ...erbie/master/src/core/egraph.rkt:199:4 merge-egraph-nodes! [75] 100.0% -------------------------------------------------------------------------------- for-loop [74] 100.0% [84] 2210(3.4%) 2210(3.4%) procedure-reduce-keyword-arity-mask ....rkt:1562:4 -------------------------------------------------------------------------------- for-loop [65] 33.8% for-loop [74] 66.2% [85] 782(1.2%) 782(1.2%) do-curry ...-7.2/collects/racket/function.rkt:71:2 -------------------------------------------------------------------------------- simplify* [45] 46.9% flag-set? [77] 53.1% [86] 452(0.7%) 0(0.0%) return/no-unsupplied ...ct/private/arr-i.rkt:542:0 filter [95] 100.0% -------------------------------------------------------------------------------- merge-egraph-nodes! [75] 100.0% [87] 246(0.4%) 0(0.0%) enode-merge! ...ie/master/src/core/enode.rkt:131:0 adopt-enode! [96] 100.0% -------------------------------------------------------------------------------- setfindf [78] 100.0% [88] 222(0.3%) 222(0.3%) for-loop ...ies/herbie/master/src/common.rkt:143:2 -------------------------------------------------------------------------------- ??? [76] 100.0% [89] 210(0.3%) 0(0.0%) atab-add-altns ...ster/src/core/alt-table.rkt:49:0 atab-add-altn [92] 100.0% -------------------------------------------------------------------------------- update-leader! [80] 100.0% [90] 10316(15.8%) 0(0.0%) for-loop ...erbie/master/src/core/egraph.rkt:218:6 for-loop [97] 57.9% hash-update! [102] 39.7% update-en-expr [156] 2.4% -------------------------------------------------------------------------------- dedup-children! [81] 9.3% loop [91] 90.7% [91] 3992(6.1%) 3992(6.1%) loop ...racket-7.2/collects/racket/list.rkt:434:17 loop [91] 90.7% -------------------------------------------------------------------------------- atab-add-altns [89] 9.7% for-loop [82] 90.3% [92] 2160(3.3%) 0(0.0%) atab-add-altn ...ster/src/core/alt-table.rkt:203:0 errors [98] 88.5% override-at-pnts [101] 11.5% -------------------------------------------------------------------------------- dedup-children! [81] 21.9% loop [93] 78.1% [93] 1476(2.3%) 0(0.0%) loop ...racket-7.2/collects/racket/list.rkt:417:34 loop [93] 78.1% member [100] 14.2% loop [184] 7.8% -------------------------------------------------------------------------------- for-loop [62] 15.8% for-loop [79] 84.2% [94] 1382(2.1%) 426(0.7%) ??? ...lies/herbie/master/src/core/ematch.rkt:43:5 for-loop [99] 69.2% -------------------------------------------------------------------------------- return/no-unsupplied [86] 100.0% [95] 452(0.7%) 452(0.7%) filter ...2/collects/racket/private/list.rkt:256:2 -------------------------------------------------------------------------------- enode-merge! [87] 100.0% [96] 246(0.4%) 0(0.0%) adopt-enode! ...ie/master/src/core/enode.rkt:109:0 custom-set-union [154] 100.0% -------------------------------------------------------------------------------- for-loop [90] 100.0% [97] 5976(9.1%) 0(0.0%) for-loop ...erbie/master/src/core/egraph.rkt:219:8 hash-update! [102] 100.0% -------------------------------------------------------------------------------- ??? [107] 12.7% for-loop [82] 40.5% atab-add-altn [92] 46.8% [98] 4086(6.2%) 244(0.4%) errors ...tlies/herbie/master/src/points.rkt:205:0 for-loop [103] 71.0% eval-prog [105] 23.0% -------------------------------------------------------------------------------- ??? [94] 100.0% [99] 956(1.5%) 278(0.4%) for-loop ...herbie/master/src/core/ematch.rkt:44:7 constant? [104] 70.9% -------------------------------------------------------------------------------- loop [93] 100.0% [100] 748(1.1%) 748(1.1%) member (unknown source) -------------------------------------------------------------------------------- atab-add-altn [92] 100.0% [101] 248(0.4%) 0(0.0%) override-at-pnts ...r/src/core/alt-table.rkt:138:0 for-loop [106] 100.0% -------------------------------------------------------------------------------- for-loop [90] 40.7% for-loop [97] 59.3% [102] 10072(15.4%) 210(0.3%) hash-update! ...cket/private/more-scheme.rkt:365:4 ??? [108] 97.9% -------------------------------------------------------------------------------- errors [98] 100.0% [103] 2902(4.4%) 530(0.8%) for-loop ...ies/herbie/master/src/points.rkt:207:2 ??? [107] 65.3% ??? [128] 16.4% -------------------------------------------------------------------------------- pattern-substitute [71] 8.4% for-loop [99] 26.7% match-e [69] 64.9% [104] 2538(3.9%) 412(0.6%) constant? ...ie/master/src/syntax/syntax.rkt:726:0 value? [109] 83.8% -------------------------------------------------------------------------------- errors [98] 100.0% [105] 940(1.4%) 0(0.0%) eval-prog ...s/herbie/master/src/programs.rkt:83:0 temp85_0 [118] 100.0% -------------------------------------------------------------------------------- override-at-pnts [101] 100.0% [106] 248(0.4%) 248(0.4%) for-loop ...e/master/src/core/alt-table.rkt:139:22 -------------------------------------------------------------------------------- for-loop [70] 0.1% for-loop [103] 1.0% run [14] 49.5% [107] 65418(100.0%) 504(0.8%) ??? ...lects/racket/private/more-scheme.rkt:261:28 profile-thunk16 [1] 49.5% run-improve47 [2] 43.6% prepare-points-intervals [111] 4.4% ??? [131] 0.7% get-final-combination [113] 0.6% errors [98] 0.4% eval-errors [114] 0.2% oracle-error [115] 0.2% eval-const-expr [112] 0.1% -------------------------------------------------------------------------------- hash-update! [102] 100.0% [108] 9862(15.1%) 768(1.2%) ??? ...es/herbie/master/src/core/egraph.rkt:221:24 for-loop [110] 87.3% update-en-expr [156] 2.7% custom-in-set/checked [116] 2.3% -------------------------------------------------------------------------------- constant? [104] 100.0% [109] 2126(3.2%) 2126(3.2%) value? .../herbie/master/src/syntax/types.rkt:18:0 -------------------------------------------------------------------------------- ??? [108] 100.0% [110] 8610(13.2%) 8034(12.3%) for-loop ...rbie/master/src/core/egraph.rkt:222:26 update-en-expr [156] 6.7% -------------------------------------------------------------------------------- pred [146] 4.8% ??? [107] 95.2% [111] 6048(9.2%) 0(0.0%) prepare-points-intervals ...r/src/points.rkt:110:0 loop [117] 100.0% -------------------------------------------------------------------------------- ??? [107] 7.2% parse-loop30 [42] 92.8% [112] 3430(5.2%) 0(0.0%) eval-const-expr ...e/master/src/programs.rkt:118:0 temp85_0 [118] 92.7% inductor [122] 7.3% -------------------------------------------------------------------------------- ??? [107] 100.0% [113] 828(1.3%) 0(0.0%) get-final-combination ...er/src/mainloop.rkt:370:0 infer-splitpoints [120] 64.7% f46 [119] 35.3% -------------------------------------------------------------------------------- ??? [107] 100.0% [114] 274(0.4%) 0(0.0%) eval-errors .../herbie/master/src/points.rkt:179:0 for-loop [121] 100.0% -------------------------------------------------------------------------------- ??? [107] 100.0% [115] 248(0.4%) 0(0.0%) oracle-error ...herbie/master/src/points.rkt:188:0 for-loop [123] 100.0% -------------------------------------------------------------------------------- ??? [108] 100.0% [116] 222(0.3%) 222(0.3%) custom-in-set/checked ...ivate/set-types.rkt:583:0 -------------------------------------------------------------------------------- prepare-points-intervals [111] 100.0% [117] 6048(9.2%) 0(0.0%) loop ...ghtlies/herbie/master/src/points.rkt:123:4 loop [124] 80.6% ??? [127] 19.4% -------------------------------------------------------------------------------- eval-prog [105] 22.8% eval-const-expr [112] 77.2% [118] 4118(6.3%) 254(0.4%) temp85_0 (unknown source) compile15 [125] 93.8% -------------------------------------------------------------------------------- parse-loop30 [42] 3.1% get-final-combination [113] 11.3% map [126] 39.7% simplify [37] 46.0% [119] 2594(4.0%) 0(0.0%) f46 ...2/collects/racket/match/compiler.rkt:507:40 map [126] 88.7% sindices->spoints [130] 11.3% -------------------------------------------------------------------------------- get-final-combination [113] 100.0% [120] 536(0.8%) 0(0.0%) infer-splitpoints ...ter/src/core/regimes.rkt:34:0 for-loop [129] 100.0% -------------------------------------------------------------------------------- eval-errors [114] 100.0% [121] 274(0.4%) 0(0.0%) for-loop ...ies/herbie/master/src/points.rkt:181:2 ??? [128] 100.0% -------------------------------------------------------------------------------- eval-const-expr [112] 100.0% [122] 252(0.4%) 0(0.0%) inductor ...s/herbie/master/src/programs.rkt:104:4 table-ref [187] 100.0% -------------------------------------------------------------------------------- oracle-error [115] 100.0% [123] 248(0.4%) 248(0.4%) for-loop ...ies/herbie/master/src/points.rkt:189:2 -------------------------------------------------------------------------------- loop [117] 100.0% [124] 4876(7.5%) 0(0.0%) loop ...ightlies/herbie/master/src/points.rkt:81:2 ??? [131] 94.7% ??? [194] 5.3% -------------------------------------------------------------------------------- temp85_0 [118] 100.0% [125] 3864(5.9%) 0(0.0%) compile15 (unknown source) temp91_0 [132] 93.6% loop [184] 6.4% -------------------------------------------------------------------------------- taylor [26] 6.7% parse-loop30 [42] 20.9% f46 [119] 72.4% [126] 3178(4.9%) 0(0.0%) map ...t-7.2/collects/racket/private/map.rkt:35:13 f46 [119] 32.4% parse-loop30 [42] 31.8% hash-ref! [168] 15.2% taylor-invert [139] 6.7% loop [133] 5.7% make-multiplication-node [136] 2.9% simplify-node [137] 2.8% ??? [138] 2.5% -------------------------------------------------------------------------------- loop [117] 100.0% [127] 1172(1.8%) 280(0.4%) ??? ...ightlies/herbie/master/src/points.rkt:106:2 ??? [152] 76.1% -------------------------------------------------------------------------------- for-loop [121] 36.5% for-loop [103] 63.5% [128] 750(1.1%) 750(1.1%) ??? ...7.2/collects/racket/private/for.rkt:1233:14 -------------------------------------------------------------------------------- infer-splitpoints [120] 100.0% [129] 536(0.8%) 0(0.0%) for-loop ...erbie/master/src/core/regimes.rkt:47:6 option-on-expr [134] 100.0% -------------------------------------------------------------------------------- f46 [119] 100.0% [130] 292(0.4%) 0(0.0%) sindices->spoints ...er/src/core/regimes.rkt:194:0 for-loop [135] 100.0% -------------------------------------------------------------------------------- ??? [107] 23.2% loop [124] 76.8% [131] 6010(9.2%) 220(0.3%) ??? ...htlies/herbie/master/src/programs.rkt:115:2 ??? [141] 56.7% ??? [152] 35.5% ??? [197] 4.2% -------------------------------------------------------------------------------- compile15 [125] 100.0% [132] 3616(5.5%) 0(0.0%) temp91_0 (unknown source) temp118_0 [143] 67.0% compile-top9 [144] 27.0% expand [150] 6.0% -------------------------------------------------------------------------------- map [126] 0.4% loop! [140] 5.8% for-loop [74] 8.6% mk-enode-rec! [142] 15.2% loop [133] 70.0% [133] 3380(5.2%) 276(0.4%) loop ...-7.2/collects/racket/private/map.rkt:40:19 loop [133] 70.0% mk-enode-rec! [142] 15.2% loop! [140] 5.8% ??? [163] 0.2% bf* [151] 0.2% -------------------------------------------------------------------------------- for-loop [129] 100.0% [134] 536(0.8%) 0(0.0%) option-on-expr ...aster/src/core/regimes.rkt:126:0 err-lsts->split-indices [145] 100.0% -------------------------------------------------------------------------------- sindices->spoints [130] 100.0% [135] 292(0.4%) 0(0.0%) for-loop ...rbie/master/src/core/regimes.rkt:233:9 pred [146] 100.0% -------------------------------------------------------------------------------- map [126] 100.0% [136] 274(0.4%) 0(0.0%) make-multiplication-node .../core/reduce.rkt:234:0 make-multiplication-subnode [147] 100.0% -------------------------------------------------------------------------------- map [126] 100.0% [137] 270(0.4%) 0(0.0%) simplify-node ...e/master/src/core/reduce.rkt:48:0 gather-multiplicative-terms [148] 100.0% -------------------------------------------------------------------------------- map [126] 100.0% [138] 242(0.4%) 0(0.0%) ??? ...lies/herbie/master/src/core/reduce.rkt:59:5 for-loop [149] 100.0% -------------------------------------------------------------------------------- map [126] 100.0% [139] 212(0.3%) 0(0.0%) taylor-invert .../master/src/core/taylor.rkt:318:0 simplify [37] 100.0% -------------------------------------------------------------------------------- loop [133] 25.1% merge-egraph-nodes! [75] 74.9% [140] 4036(6.2%) 1214(1.9%) loop! ...es/herbie/master/src/core/enode.rkt:194:2 custom-set-union [154] 38.5% loop [133] 25.1% set [173] 9.7% update-en-expr [156] 2.6% -------------------------------------------------------------------------------- ??? [131] 100.0% [141] 3406(5.2%) 244(0.4%) ??? ...t-7.2/collects/racket/private/kw.rkt:594:14 ??? [155] 44.6% ??? [152] 35.2% ??? [162] 13.1% -------------------------------------------------------------------------------- loop [133] 9.9% for-loop [63] 90.1% [142] 2590(4.0%) 860(1.3%) mk-enode-rec! .../master/src/core/egraph.rkt:117:0 new-enode [158] 36.7% mutable-set [165] 10.3% loop [133] 9.9% for-loop [160] 9.9% -------------------------------------------------------------------------------- temp91_0 [132] 100.0% [143] 2424(3.7%) 0(0.0%) temp118_0 (unknown source) expand-capturing-lifts [153] 100.0% -------------------------------------------------------------------------------- temp91_0 [132] 100.0% [144] 976(1.5%) 0(0.0%) compile-top9 (unknown source) compile-forms33 [157] 100.0% -------------------------------------------------------------------------------- option-on-expr [134] 100.0% [145] 536(0.8%) 0(0.0%) err-lsts->split-indices .../core/regimes.rkt:262:0 loop [159] 100.0% -------------------------------------------------------------------------------- for-loop [135] 100.0% [146] 292(0.4%) 0(0.0%) pred ...s/herbie/master/src/core/regimes.rkt:204:4 prepare-points-intervals [111] 100.0% -------------------------------------------------------------------------------- make-multiplication-node [136] 100.0% [147] 274(0.4%) 0(0.0%) make-multiplication-subnode ...re/reduce.rkt:244:0 group-by61 [161] 100.0% -------------------------------------------------------------------------------- simplify-node [137] 100.0% [148] 270(0.4%) 0(0.0%) gather-multiplicative-terms ...re/reduce.rkt:112:0 compose [164] 100.0% -------------------------------------------------------------------------------- ??? [138] 100.0% [149] 242(0.4%) 0(0.0%) for-loop ...herbie/master/src/core/reduce.rkt:60:7 pattern-match [166] 100.0% -------------------------------------------------------------------------------- temp91_0 [132] 100.0% [150] 216(0.3%) 216(0.3%) expand (unknown source) -------------------------------------------------------------------------------- loop [133] 100.0% [151] 208(0.3%) 0(0.0%) bf* ...ath/private/bigfloat/bigfloat-mpfr.rkt:95:0 ??? [163] 100.0% -------------------------------------------------------------------------------- for-loop [190] 1.7% ??? [8] 4.7% ??? [127] 8.3% loop [16] 9.2% ??? [141] 13.4% location-do [167] 19.4% for-loop [47] 19.4% ??? [131] 23.8% [152] 8944(13.7%) 538(0.8%) ??? ...tract/private/arrow-higher-order.rkt:360:33 mk-ival [170] 21.3% location-do [167] 19.4% approximate9 [3] 19.4% hash-ref! [168] 13.9% ival-mult [172] 13.4% sample-multi-bounded [175] 8.3% -------------------------------------------------------------------------------- loop [184] 9.3% temp118_0 [143] 90.7% [153] 2672(4.1%) 0(0.0%) expand-capturing-lifts (unknown source) lambda-clause-expander [169] 90.7% loop [184] 9.3% -------------------------------------------------------------------------------- adopt-enode! [96] 12.8% loop! [140] 87.2% [154] 1920(2.9%) 506(0.8%) custom-set-union ...et/private/set-types.rkt:168:0 for-loop [174] 51.5% for-loop [179] 22.2% -------------------------------------------------------------------------------- ??? [141] 100.0% [155] 1518(2.3%) 0(0.0%) ??? ...tract/private/arrow-higher-order.rkt:364:33 ival-add [171] 81.7% ival-div [180] 18.3% -------------------------------------------------------------------------------- loop! [140] 16.0% for-loop [90] 18.9% ??? [108] 20.3% for-loop [110] 44.7% [156] 1288(2.0%) 1288(2.0%) update-en-expr ...master/src/core/egraph.rkt:207:0 -------------------------------------------------------------------------------- compile-top9 [144] 100.0% [157] 976(1.5%) 0(0.0%) compile-forms33 (unknown source) for-loop [193] 73.8% loop! [181] 26.2% -------------------------------------------------------------------------------- mk-enode-rec! [142] 100.0% [158] 950(1.5%) 0(0.0%) new-enode ...erbie/master/src/core/enode.rkt:101:0 type-of-enode-expr [176] 74.1% set [173] 25.9% -------------------------------------------------------------------------------- err-lsts->split-indices [145] 100.0% [159] 536(0.8%) 0(0.0%) loop ...s/herbie/master/src/core/regimes.rkt:313:4 for-loop [177] 100.0% -------------------------------------------------------------------------------- mk-enode-rec! [142] 100.0% [160] 514(0.8%) 514(0.8%) for-loop ...rbie/master/src/core/egraph.rkt:109:10 -------------------------------------------------------------------------------- gen-rewrites! [32] 46.3% make-multiplication-subnode [147] 53.7% [161] 510(0.8%) 510(0.8%) group-by61 ...t-7.2/collects/racket/list.rkt:771:0 -------------------------------------------------------------------------------- ??? [141] 100.0% [162] 446(0.7%) 210(0.3%) ??? .../herbie/master/src/syntax/syntax.rkt:214:17 ??? [178] 52.9% -------------------------------------------------------------------------------- bf* [151] 47.9% loop [133] 52.1% [163] 434(0.7%) 0(0.0%) ??? ...-racket/utils/simple-result-arrow.rkt:39:12 bfmul [183] 100.0% -------------------------------------------------------------------------------- gather-multiplicative-terms [148] 100.0% [164] 270(0.4%) 270(0.4%) compose ...collects/racket/private/list.rkt:385:12 -------------------------------------------------------------------------------- mk-enode-rec! [142] 100.0% [165] 266(0.4%) 266(0.4%) mutable-set .../racket/private/set-types.rkt:999:0 -------------------------------------------------------------------------------- for-loop [149] 100.0% [166] 242(0.4%) 0(0.0%) pattern-match .../master/src/core/matcher.rkt:30:0 for-loop [182] 100.0% -------------------------------------------------------------------------------- ??? [152] 46.6% location-do [167] 53.4% [167] 4722(7.2%) 0(0.0%) location-do ...herbie/master/src/programs.rkt:64:0 location-do [167] 53.4% ??? [152] 46.6% -------------------------------------------------------------------------------- for-loop [50] 0.8% for-loop [27] 0.9% ??? [23] 1.3% for-loop [19] 4.0% loop [12] 5.3% localize-error [39] 6.4% map [126] 7.9% loop [16] 8.2% ??? [4] 20.7% for-loop [17] 21.5% ??? [152] 22.0% [168] 4652(7.1%) 0(0.0%) hash-ref! .../racket/private/more-scheme.rkt:376:2 simplify [37] 27.4% ??? [4] 22.0% ??? [5] 21.5% parse-loop30 [42] 14.3% ??? [8] 8.2% ??? [7] 4.8% ??? [11] 0.8% -------------------------------------------------------------------------------- expand-capturing-lifts [153] 100.0% [169] 2424(3.7%) 0(0.0%) lambda-clause-expander (unknown source) finish-bodys [186] 68.2% loop [184] 31.8% -------------------------------------------------------------------------------- ??? [152] 100.0% [170] 1902(2.9%) 0(0.0%) mk-ival .../herbie/master/src/biginterval.rkt:57:0 bf [185] 100.0% -------------------------------------------------------------------------------- ??? [155] 100.0% [171] 1240(1.9%) 0(0.0%) ival-add ...herbie/master/src/biginterval.rkt:93:0 bfmul [183] 100.0% -------------------------------------------------------------------------------- ??? [152] 100.0% [172] 1198(1.8%) 274(0.4%) ival-mult ...rbie/master/src/biginterval.rkt:111:0 bfmul [183] 77.1% -------------------------------------------------------------------------------- new-enode [158] 20.7% loop! [140] 79.3% [173] 1188(1.8%) 1188(1.8%) set ...collects/racket/private/set-types.rkt:981:0 -------------------------------------------------------------------------------- custom-set-union [154] 100.0% [174] 988(1.5%) 498(0.8%) for-loop ...cts/racket/private/set-types.rkt:174:3 for-loop [189] 49.6% -------------------------------------------------------------------------------- ??? [152] 100.0% [175] 892(1.4%) 584(0.9%) sample-multi-bounded ...master/src/points.rkt:15:0 for-loop [190] 34.5% -------------------------------------------------------------------------------- new-enode [158] 100.0% [176] 704(1.1%) 0(0.0%) type-of-enode-expr ...ster/src/core/enode.rkt:66:0 table-ref [187] 100.0% -------------------------------------------------------------------------------- loop [159] 100.0% [177] 536(0.8%) 0(0.0%) for-loop ...rbie/master/src/core/regimes.rkt:278:4 for-loop [188] 100.0% -------------------------------------------------------------------------------- ??? [162] 45.7% ??? [76] 54.3% [178] 516(0.8%) 516(0.8%) ??? ...ects/racket/contract/private/guts.rkt:772:8 -------------------------------------------------------------------------------- custom-set-union [154] 100.0% [179] 426(0.7%) 426(0.7%) for-loop ...cts/racket/private/set-types.rkt:152:2 -------------------------------------------------------------------------------- ??? [155] 100.0% [180] 278(0.4%) 0(0.0%) ival-div ...erbie/master/src/biginterval.rkt:147:0 bfmul [183] 100.0% -------------------------------------------------------------------------------- compile-forms33 [157] 100.0% [181] 256(0.4%) 0(0.0%) loop! (unknown source) for-loop [193] 100.0% -------------------------------------------------------------------------------- pattern-match [166] 100.0% [182] 242(0.4%) 0(0.0%) for-loop ...erbie/master/src/core/matcher.rkt:27:9 core651 [191] 100.0% -------------------------------------------------------------------------------- ival-div [180] 9.7% ??? [163] 15.1% ival-mult [172] 32.1% ival-add [171] 43.1% [183] 2876(4.4%) 0(0.0%) bfmul ...-lib/math/private/bigfloat/mpfr.rkt:821:4 new-mpfr [192] 52.9% ??? [194] 47.1% -------------------------------------------------------------------------------- datum->syntax6 [209] 1.5% expand-capturing-lifts [153] 5.0% compile15 [125] 5.0% for-loop [193] 5.2% loop [184] 7.3% lambda-clause-expander [169] 22.5% syntax-e/no-taint [21] 24.0% loop [93] 29.5% [184] 2470(3.8%) 1228(1.9%) loop (unknown source) gf [196] 24.0% dispatch-transformer41 [195] 22.5% loop [184] 7.3% expand-id-application-form17 [199] 5.2% expand-capturing-lifts [153] 5.0% -------------------------------------------------------------------------------- mk-ival [170] 100.0% [185] 1902(2.9%) 0(0.0%) bf ...ath-lib/math/private/bigfloat/mpfr.rkt:601:2 new-mpfr [192] 84.6% ??? [194] 15.4% -------------------------------------------------------------------------------- lambda-clause-expander [169] 21.1% for-loop [193] 78.9% [186] 1652(2.5%) 228(0.3%) finish-bodys (unknown source) for-loop [193] 97.7% -------------------------------------------------------------------------------- inductor [122] 26.4% type-of-enode-expr [176] 73.6% [187] 956(1.5%) 494(0.8%) table-ref ...ies/herbie/master/src/common.rkt:45:0 for-loop [198] 48.3% -------------------------------------------------------------------------------- for-loop [177] 100.0% [188] 536(0.8%) 254(0.4%) for-loop ...rbie/master/src/core/regimes.rkt:282:8 ??? [197] 52.6% -------------------------------------------------------------------------------- for-loop [174] 100.0% [189] 490(0.7%) 490(0.7%) for-loop ...cts/racket/private/set-types.rkt:178:5 -------------------------------------------------------------------------------- sample-multi-bounded [175] 100.0% [190] 308(0.5%) 0(0.0%) for-loop ...lies/herbie/master/src/points.rkt:23:4 ??? [152] 100.0% -------------------------------------------------------------------------------- for-loop [182] 100.0% [191] 242(0.4%) 0(0.0%) core651 ...acket/contract/private/arr-i.rkt:929:19 un-dep/maybe-chaperone [200] 100.0% -------------------------------------------------------------------------------- bfmul [183] 48.6% bf [185] 51.4% [192] 3132(4.8%) 3132(4.8%) new-mpfr ...b/math/private/bigfloat/mpfr.rkt:335:0 -------------------------------------------------------------------------------- fallback-loop [28] 2.0% for-loop [193] 8.8% loop! [181] 9.7% compile-forms33 [157] 27.4% finish-bodys [186] 52.1% [193] 2628(4.0%) 460(0.7%) for-loop (unknown source) finish-bodys [186] 44.1% compile-module-linklet57 [202] 27.4% add-lambda-properties [204] 9.7% for-loop [193] 8.8% expand-implicit [13] 2.0% syntax-e [10] 1.2% loop [184] 1.1% -------------------------------------------------------------------------------- for-loop [61] 10.8% loop [124] 12.1% bf [185] 13.7% bfmul [183] 63.4% [194] 2134(3.3%) 2134(3.3%) ??? /opt/racket-7.2/collects/ffi/unsafe.rkt:905:4 -------------------------------------------------------------------------------- loop [184] 100.0% [195] 772(1.2%) 0(0.0%) dispatch-transformer41 (unknown source) apply-transformer52 [201] 100.0% -------------------------------------------------------------------------------- loop [184] 100.0% [196] 722(1.1%) 238(0.4%) gf (unknown source) propagation-apply [203] 67.0% -------------------------------------------------------------------------------- ??? [131] 47.2% for-loop [188] 52.8% [197] 534(0.8%) 534(0.8%) ??? ...cket-7.2/collects/racket/function.rkt:93:12 -------------------------------------------------------------------------------- table-ref [187] 100.0% [198] 462(0.7%) 462(0.7%) for-loop ...lies/herbie/master/src/common.rkt:47:4 -------------------------------------------------------------------------------- loop [184] 100.0% [199] 256(0.4%) 0(0.0%) expand-id-application-form17 (unknown source) syntax-e/no-taint [21] 100.0% -------------------------------------------------------------------------------- core651 [191] 100.0% [200] 242(0.4%) 0(0.0%) un-dep/maybe-chaperone ...private/arr-i.rkt:1108:2 get/build-late-neg-projection [205] 100.0% -------------------------------------------------------------------------------- dispatch-transformer41 [195] 100.0% [201] 772(1.2%) 248(0.4%) apply-transformer52 (unknown source) apply-transformer-in-context [206] 67.9% -------------------------------------------------------------------------------- for-loop [193] 100.0% [202] 720(1.1%) 720(1.1%) compile-module-linklet57 (unknown source) -------------------------------------------------------------------------------- gf [196] 100.0% [203] 484(0.7%) 484(0.7%) propagation-apply (unknown source) -------------------------------------------------------------------------------- for-loop [193] 100.0% [204] 256(0.4%) 256(0.4%) add-lambda-properties (unknown source) -------------------------------------------------------------------------------- un-dep/maybe-chaperone [200] 100.0% [205] 242(0.4%) 0(0.0%) get/build-late-neg-projection ...te/guts.rkt:829:0 single-or/c-late-neg-projection [207] 100.0% -------------------------------------------------------------------------------- apply-transformer52 [201] 100.0% [206] 524(0.8%) 0(0.0%) apply-transformer-in-context (unknown source) go [208] 51.9% datum->syntax6 [209] 48.1% -------------------------------------------------------------------------------- get/build-late-neg-projection [205] 100.0% [207] 242(0.4%) 242(0.4%) single-or/c-late-neg-projection ...te/orc.rkt:85:0 -------------------------------------------------------------------------------- apply-transformer-in-context [206] 100.0% [208] 272(0.4%) 272(0.4%) go .../collects/racket/private/qq-and-or.rkt:50:20 -------------------------------------------------------------------------------- apply-transformer-in-context [206] 100.0% [209] 252(0.4%) 0(0.0%) datum->syntax6 (unknown source) loop [184] 100.0% --------------------------------------------------------------------------------