Profiling results ----------------- Total cpu time observed: 55308ms (out of 55648ms) Number of samples taken: 254 (once every 218ms) (Hiding functions with self<1.0% and local<2.0%: 6 of 212 hidden) ========================================================================= Caller Idx Total Self Name+src Local% ms(pct) ms(pct) Callee ========================================================================= ??? [17] 100.0% [1] 55308(100.0%) 0(0.0%) profile-thunk16 ...e/pkgs/profile-lib/main.rkt:9:0 run [9] 100.0% ------------------------------------------------------------------------- ??? [99] 100.0% [2] 2586(4.7%) 0(0.0%) approximate9 ...js-tweaks/src/core/taylor.rkt:12:0 loop [10] 58.3% for-loop [14] 35.6% simplify [29] 6.1% ------------------------------------------------------------------------- hash-ref! [122] 100.0% [3] 1298(2.3%) 0(0.0%) ??? .../herbie/js-tweaks/src/core/taylor.rkt:68:15 ??? [99] 100.0% ------------------------------------------------------------------------- hash-ref! [122] 100.0% [4] 1052(1.9%) 0(0.0%) ??? ...herbie/js-tweaks/src/core/taylor.rkt:291:26 for-loop [11] 100.0% ------------------------------------------------------------------------- matcher [103] 100.0% [5] 954(1.7%) 0(0.0%) ??? ...erbie/js-tweaks/src/core/matcher.rkt:130:11 for-loop [13] 100.0% ------------------------------------------------------------------------- hash-ref! [122] 100.0% [6] 836(1.5%) 0(0.0%) ??? ...herbie/js-tweaks/src/core/taylor.rkt:301:23 for-loop [15] 100.0% ------------------------------------------------------------------------- loop [201] 48.0% for-loop [183] 52.0% [7] 792(1.4%) 0(0.0%) syntax-e (unknown source) syntax-e/no-taint [12] 100.0% ------------------------------------------------------------------------- for-loop [183] 100.0% [8] 392(0.7%) 182(0.3%) expand-implicit (unknown source) resolve+shift28 [16] 53.6% ------------------------------------------------------------------------- profile-thunk16 [1] 100.0% [9] 55308(100.0%) 0(0.0%) run ...et-7.0/share/pkgs/profile-lib/main.rkt:39:2 ??? [17] 100.0% ------------------------------------------------------------------------- approximate9 [2] 100.0% [10] 1508(2.7%) 0(0.0%) loop .../herbie/js-tweaks/src/core/taylor.rkt:87:4 hash-ref! [122] 86.1% ??? [99] 13.9% ------------------------------------------------------------------------- ??? [4] 100.0% [11] 1052(1.9%) 0(0.0%) for-loop ...e/js-tweaks/src/core/taylor.rkt:291:52 hash-ref! [122] 100.0% ------------------------------------------------------------------------- expand-id-application-form17 [203] 17.7% syntax-e [7] 82.3% [12] 962(1.7%) 0(0.0%) syntax-e/no-taint (unknown source) loop [201] 100.0% ------------------------------------------------------------------------- ??? [5] 100.0% [13] 954(1.7%) 0(0.0%) for-loop .../js-tweaks/src/core/matcher.rkt:132:15 matcher [103] 100.0% ------------------------------------------------------------------------- approximate9 [2] 100.0% [14] 920(1.7%) 0(0.0%) for-loop ...ie/js-tweaks/src/core/taylor.rkt:30:18 taylor [18] 100.0% ------------------------------------------------------------------------- ??? [6] 100.0% [15] 836(1.5%) 0(0.0%) for-loop ...e/js-tweaks/src/core/taylor.rkt:304:27 hash-ref! [122] 100.0% ------------------------------------------------------------------------- expand-implicit [8] 100.0% [16] 210(0.4%) 0(0.0%) resolve+shift28 (unknown source) fallback-loop [19] 100.0% ------------------------------------------------------------------------- for-loop [115] 0.1% for-loop [191] 1.7% run [9] 49.1% [17] 55308(100.0%) 250(0.5%) ??? ...lects/racket/private/more-scheme.rkt:261:28 profile-thunk16 [1] 49.1% run-improve43 [20] 44.6% prepare-points [21] 3.0% ulp-difference [77] 0.5% ??? [99] 0.4% oracle-error [23] 0.4% errors [181] 0.4% ordinary-value? [67] 0.3% ??? [44] 0.3% get-final-combination [24] 0.2% eval-errors [25] 0.1% errors-score [32] 0.1% for-loop [26] 0.1% eval-const-expr [64] 0.1% ------------------------------------------------------------------------- hash-ref! [122] 6.5% taylor [18] 18.4% map [46] 20.5% for-loop [14] 54.6% [18] 1142(2.1%) 0(0.0%) taylor ...rbie/js-tweaks/src/core/taylor.rkt:170:0 map [46] 61.1% taylor-invert [22] 20.5% taylor [18] 18.4% ------------------------------------------------------------------------- resolve+shift28 [16] 100.0% [19] 210(0.4%) 0(0.0%) fallback-loop (unknown source) for-loop [183] 100.0% ------------------------------------------------------------------------- ??? [17] 100.0% [20] 50150(90.7%) 0(0.0%) run-improve43 .../js-tweaks/src/mainloop.rkt:339:0 for-loop [27] 79.3% simplify! [42] 20.7% ------------------------------------------------------------------------- ??? [17] 100.0% [21] 3314(6.0%) 0(0.0%) prepare-points ...e/js-tweaks/src/points.rkt:166:0 loop [28] 100.0% ------------------------------------------------------------------------- map [46] 42.2% taylor [18] 57.8% [22] 938(1.7%) 0(0.0%) taylor-invert ...-tweaks/src/core/taylor.rkt:318:0 first-nonzero-exp [30] 65.9% simplify [29] 34.1% ------------------------------------------------------------------------- ??? [17] 100.0% [23] 478(0.9%) 0(0.0%) oracle-error ...bie/js-tweaks/src/points.rkt:207:0 for-loop [31] 100.0% ------------------------------------------------------------------------- ??? [17] 100.0% [24] 240(0.4%) 0(0.0%) get-final-combination ...ks/src/mainloop.rkt:360:0 infer-splitpoints [33] 100.0% ------------------------------------------------------------------------- ??? [17] 100.0% [25] 160(0.3%) 0(0.0%) eval-errors ...rbie/js-tweaks/src/points.rkt:198:0 for-loop [34] 100.0% ------------------------------------------------------------------------- ??? [17] 100.0% [26] 158(0.3%) 0(0.0%) for-loop .../herbie/js-tweaks/src/sandbox.rkt:70:8 errors-score [32] 100.0% ------------------------------------------------------------------------- run-improve43 [20] 100.0% [27] 39782(71.9%) 0(0.0%) for-loop ...erbie/js-tweaks/src/mainloop.rkt:354:4 run-iter! [35] 100.0% ------------------------------------------------------------------------- prepare-points [21] 100.0% [28] 3314(6.0%) 0(0.0%) loop ...lies/herbie/js-tweaks/src/points.rkt:143:4 loop [36] 81.2% ??? [38] 13.2% andmap [41] 5.7% ------------------------------------------------------------------------- approximate9 [2] 6.6% taylor-invert [22] 13.4% hash-ref! [122] 79.9% [29] 2382(4.3%) 0(0.0%) simplify ...bie/js-tweaks/src/core/reduce.rkt:16:0 f46 [37] 77.2% parse-loop80 [53] 22.8% ------------------------------------------------------------------------- taylor-invert [22] 100.0% [30] 618(1.1%) 0(0.0%) first-nonzero-exp ...aks/src/core/taylor.rkt:266:0 hash-ref! [122] 100.0% ------------------------------------------------------------------------- oracle-error [23] 100.0% [31] 478(0.9%) 0(0.0%) for-loop .../herbie/js-tweaks/src/points.rkt:208:2 map [46] 66.5% loop [139] 33.5% ------------------------------------------------------------------------- for-loop [26] 49.7% ??? [17] 50.3% [32] 318(0.6%) 0(0.0%) errors-score ...bie/js-tweaks/src/points.rkt:215:0 loop [39] 100.0% ------------------------------------------------------------------------- get-final-combination [24] 100.0% [33] 240(0.4%) 0(0.0%) infer-splitpoints ...aks/src/core/regimes.rkt:34:0 for-loop [40] 100.0% ------------------------------------------------------------------------- eval-errors [25] 100.0% [34] 160(0.3%) 0(0.0%) for-loop .../herbie/js-tweaks/src/points.rkt:200:2 ??? [44] 100.0% ------------------------------------------------------------------------- for-loop [27] 100.0% [35] 39782(71.9%) 0(0.0%) run-iter! ...rbie/js-tweaks/src/mainloop.rkt:320:0 simplify! [42] 79.4% finalize-iter! [43] 11.2% gen-series! [45] 6.5% gen-rewrites! [47] 2.4% localize! [49] 0.4% ------------------------------------------------------------------------- loop [28] 100.0% [36] 2690(4.9%) 204(0.4%) loop ...lies/herbie/js-tweaks/src/points.rkt:102:2 ??? [44] 78.3% ??? [146] 14.1% ------------------------------------------------------------------------- map [46] 4.3% simplify [29] 95.7% [37] 1840(3.3%) 0(0.0%) f46 ...0/collects/racket/match/compiler.rkt:507:40 map [46] 55.2% eval-const-expr [64] 44.8% ------------------------------------------------------------------------- loop [28] 100.0% [38] 436(0.8%) 178(0.3%) ??? ...tlies/herbie/js-tweaks/src/points.rkt:127:2 curried [157] 59.2% ------------------------------------------------------------------------- errors-score [32] 100.0% [39] 318(0.6%) 158(0.3%) loop .../racket-7.0/collects/racket/list.rkt:559:2 ordinary-value? [67] 50.3% ------------------------------------------------------------------------- infer-splitpoints [33] 100.0% [40] 240(0.4%) 0(0.0%) for-loop ...ie/js-tweaks/src/core/regimes.rkt:46:6 option-on-expr [48] 100.0% ------------------------------------------------------------------------- loop [28] 100.0% [41] 188(0.3%) 188(0.3%) andmap ...0/collects/racket/private/map.rkt:102:13 ------------------------------------------------------------------------- run-improve43 [20] 24.7% run-iter! [35] 75.3% [42] 41966(75.9%) 0(0.0%) simplify! ...rbie/js-tweaks/src/mainloop.rkt:217:0 ??? [50] 98.8% for-loop [55] 1.2% ------------------------------------------------------------------------- run-iter! [35] 100.0% [43] 4468(8.1%) 0(0.0%) finalize-iter! ...js-tweaks/src/mainloop.rkt:271:0 ??? [134] 100.0% ------------------------------------------------------------------------- for-loop [34] 5.5% loop [139] 5.5% ??? [17] 16.6% loop [36] 72.4% [44] 2910(5.3%) 0(0.0%) ??? ...lies/herbie/js-tweaks/src/programs.rkt:99:2 ??? [52] 56.1% ??? [99] 43.9% ------------------------------------------------------------------------- run-iter! [35] 100.0% [45] 2586(4.7%) 0(0.0%) gen-series! ...ie/js-tweaks/src/mainloop.rkt:153:0 for-loop [51] 100.0% ------------------------------------------------------------------------- parse-loop80 [53] 7.8% for-loop [31] 14.1% f46 [37] 36.3% taylor [18] 41.8% [46] 2256(4.1%) 204(0.4%) map ...t-7.0/collects/racket/private/map.rkt:35:13 parse-loop80 [53] 29.3% taylor [18] 24.0% ??? [56] 14.1% taylor-invert [22] 8.8% hash-ref! [122] 5.2% f46 [37] 3.5% make-multiplication-node [60] 3.5% loop [58] 2.6% ------------------------------------------------------------------------- run-iter! [35] 100.0% [47] 954(1.7%) 0(0.0%) gen-rewrites! .../js-tweaks/src/mainloop.rkt:176:0 for-loop [54] 100.0% ------------------------------------------------------------------------- for-loop [40] 100.0% [48] 240(0.4%) 0(0.0%) option-on-expr ...weaks/src/core/regimes.rkt:123:0 sort-context-on-expr [57] 100.0% ------------------------------------------------------------------------- run-iter! [35] 100.0% [49] 176(0.3%) 0(0.0%) localize! ...rbie/js-tweaks/src/mainloop.rkt:120:0 localize-error [59] 100.0% ------------------------------------------------------------------------- simplify! [42] 100.0% [50] 41446(74.9%) 0(0.0%) ??? ...herbie/js-tweaks/src/core/simplify.rkt:26:0 for-loop [61] 43.4% one-iter [72] 34.3% loop [62] 21.7% loop [139] 0.6% ------------------------------------------------------------------------- gen-series! [45] 100.0% [51] 2586(4.7%) 0(0.0%) for-loop ...erbie/js-tweaks/src/mainloop.rkt:160:7 taylor-alt [63] 100.0% ------------------------------------------------------------------------- ??? [44] 100.0% [52] 1632(3.0%) 354(0.6%) ??? ...t-7.0/collects/racket/private/kw.rkt:592:14 ??? [65] 62.3% ??? [99] 16.1% ------------------------------------------------------------------------- parse-loop80 [53] 7.0% hash-ref! [122] 11.2% simplify [29] 27.3% map [46] 54.4% [53] 1576(2.8%) 0(0.0%) parse-loop80 ...s/racket/match/compiler.rkt:418:15 eval-const-expr [64] 81.8% map [46] 11.2% parse-loop80 [53] 7.0% ------------------------------------------------------------------------- gen-rewrites! [47] 100.0% [54] 954(1.7%) 0(0.0%) for-loop ...rbie/js-tweaks/src/mainloop.rkt:184:11 rewrite-expression-head20 [66] 100.0% ------------------------------------------------------------------------- simplify! [42] 100.0% [55] 520(0.9%) 0(0.0%) for-loop ...erbie/js-tweaks/src/mainloop.rkt:255:6 for-loop [68] 100.0% ------------------------------------------------------------------------- map [46] 100.0% [56] 318(0.6%) 0(0.0%) ??? ...lies/herbie/js-tweaks/src/points.rkt:209:26 ordinary-value? [67] 50.3% ??? [99] 49.7% ------------------------------------------------------------------------- option-on-expr [48] 100.0% [57] 240(0.4%) 0(0.0%) sort-context-on-expr ...src/core/regimes.rkt:118:0 ??? [69] 100.0% ------------------------------------------------------------------------- map [46] 5.9% loop [58] 94.1% [58] 176(0.3%) 0(0.0%) loop ...-7.0/collects/racket/private/map.rkt:54:19 loop [58] 94.1% ??? [70] 5.9% ------------------------------------------------------------------------- localize! [49] 100.0% [59] 176(0.3%) 0(0.0%) localize-error ...weaks/src/core/localize.rkt:57:0 hash-ref! [122] 100.0% ------------------------------------------------------------------------- map [46] 100.0% [60] 158(0.3%) 0(0.0%) make-multiplication-node .../core/reduce.rkt:234:0 make-multiplication-subnode [71] 100.0% ------------------------------------------------------------------------- ??? [50] 100.0% [61] 17994(32.5%) 0(0.0%) for-loop ...e/js-tweaks/src/core/simplify.rkt:33:2 one-iter [72] 100.0% ------------------------------------------------------------------------- ??? [50] 100.0% [62] 8982(16.2%) 0(0.0%) loop ...rbie/js-tweaks/src/core/simplify.rkt:105:2 for-loop [73] 100.0% ------------------------------------------------------------------------- for-loop [51] 100.0% [63] 2586(4.7%) 0(0.0%) taylor-alt ...bie/js-tweaks/src/mainloop.rkt:139:0 for-loop [75] 100.0% ------------------------------------------------------------------------- ??? [17] 9.3% f46 [37] 33.6% parse-loop80 [53] 57.1% [64] 2452(4.4%) 0(0.0%) eval-const-expr ...s-tweaks/src/programs.rkt:102:0 eval-prog [74] 100.0% ------------------------------------------------------------------------- ??? [52] 100.0% [65] 1016(1.8%) 0(0.0%) ??? ...tract/private/arrow-higher-order.rkt:361:33 ival-sub [76] 100.0% ------------------------------------------------------------------------- for-loop [54] 100.0% [66] 954(1.7%) 0(0.0%) rewrite-expression-head20 ...core/matcher.rkt:87:0 rewriter [78] 100.0% ------------------------------------------------------------------------- loop [39] 18.0% ??? [56] 18.0% ??? [17] 64.0% [67] 888(1.6%) 0(0.0%) ordinary-value? ...ie/js-tweaks/src/float.rkt:80:0 special-value? [79] 100.0% ------------------------------------------------------------------------- for-loop [55] 100.0% [68] 520(0.9%) 0(0.0%) for-loop ...erbie/js-tweaks/src/mainloop.rkt:256:8 expression-cost [98] 100.0% ------------------------------------------------------------------------- sort-context-on-expr [57] 100.0% [69] 240(0.4%) 0(0.0%) ??? ...-7.0/collects/racket/private/sort.rkt:369:3 loop [80] 100.0% ------------------------------------------------------------------------- loop [58] 100.0% [70] 176(0.3%) 0(0.0%) ??? ...erbie/js-tweaks/src/core/localize.rkt:50:36 ulp-difference [77] 100.0% ------------------------------------------------------------------------- make-multiplication-node [60] 100.0% [71] 158(0.3%) 0(0.0%) make-multiplication-subnode ...re/reduce.rkt:244:0 for-loop [81] 100.0% ------------------------------------------------------------------------- ??? [50] 44.1% for-loop [61] 55.9% [72] 32214(58.2%) 0(0.0%) one-iter ...e/js-tweaks/src/core/simplify.rkt:65:0 find-matches [82] 60.7% for-loop [83] 32.9% for-loop [87] 3.5% for-loop [89] 2.8% ------------------------------------------------------------------------- loop [62] 100.0% [73] 8982(16.2%) 798(1.4%) for-loop .../js-tweaks/src/core/simplify.rkt:111:4 loop [85] 34.9% argmin [86] 33.6% expression-cost [98] 14.2% for-loop [92] 4.6% for-loop [101] 3.8% ------------------------------------------------------------------------- errors [181] 34.2% eval-const-expr [64] 65.8% [74] 3728(6.7%) 0(0.0%) eval-prog ...erbie/js-tweaks/src/programs.rkt:83:0 temp68_2 [84] 84.1% inductor [94] 10.0% loop [201] 6.0% ------------------------------------------------------------------------- taylor-alt [63] 100.0% [75] 2586(4.7%) 0(0.0%) for-loop ...erbie/js-tweaks/src/mainloop.rkt:145:6 ??? [99] 100.0% ------------------------------------------------------------------------- ??? [65] 100.0% [76] 1016(1.8%) 0(0.0%) ival-sub ...ie/js-tweaks/src/biginterval.rkt:100:0 bfsub [128] 100.0% ------------------------------------------------------------------------- ??? [70] 18.3% ??? [17] 81.7% [77] 964(1.7%) 390(0.7%) ulp-difference ...bie/js-tweaks/src/float.rkt:46:0 infer-representation [91] 59.5% ------------------------------------------------------------------------- rewrite-expression-head20 [66] 35.8% matcher [103] 64.2% [78] 954(1.7%) 0(0.0%) rewriter ...ie/js-tweaks/src/core/matcher.rkt:90:2 for-loop [88] 87.3% *rules* [93] 12.7% ------------------------------------------------------------------------- ordinary-value? [67] 100.0% [79] 888(1.6%) 234(0.4%) special-value? ...bie/js-tweaks/src/float.rkt:76:0 for-loop [90] 73.6% ------------------------------------------------------------------------- ??? [69] 100.0% [80] 240(0.4%) 0(0.0%) loop ...7.0/collects/racket/private/sort.rkt:96:12 ??? [99] 100.0% ------------------------------------------------------------------------- make-multiplication-subnode [71] 100.0% [81] 158(0.3%) 0(0.0%) for-loop ...ie/js-tweaks/src/core/reduce.rkt:246:3 mterm->expr [95] 100.0% ------------------------------------------------------------------------- one-iter [72] 100.0% [82] 19568(35.4%) 0(0.0%) find-matches ...-tweaks/src/core/simplify.rkt:55:0 for-loop [96] 100.0% ------------------------------------------------------------------------- one-iter [72] 100.0% [83] 10614(19.2%) 0(0.0%) for-loop ...e/js-tweaks/src/core/simplify.rkt:67:2 for-loop [97] 100.0% ------------------------------------------------------------------------- eval-prog [74] 100.0% [84] 3134(5.7%) 0(0.0%) temp68_2 (unknown source) compile16 [100] 100.0% ------------------------------------------------------------------------- for-loop [73] 100.0% [85] 3132(5.7%) 516(0.9%) loop .../racket-7.0/collects/racket/list.rkt:751:4 expression-cost [98] 51.2% for-loop [101] 32.3% ------------------------------------------------------------------------- for-loop [73] 100.0% [86] 3022(5.5%) 212(0.4%) argmin ...acket-7.0/collects/racket/list.rkt:765:0 expression-cost [98] 71.7% for-loop [101] 21.2% ------------------------------------------------------------------------- one-iter [72] 100.0% [87] 1128(2.0%) 0(0.0%) for-loop ...e/js-tweaks/src/core/simplify.rkt:72:2 set-precompute! [102] 100.0% ------------------------------------------------------------------------- rewriter [78] 100.0% [88] 954(1.7%) 0(0.0%) for-loop ...ie/js-tweaks/src/core/matcher.rkt:92:4 matcher [103] 88.2% for-loop [105] 11.8% ------------------------------------------------------------------------- one-iter [72] 100.0% [89] 904(1.6%) 0(0.0%) for-loop ...e/js-tweaks/src/core/simplify.rkt:75:2 update-leader! [135] 100.0% ------------------------------------------------------------------------- special-value? [79] 100.0% [90] 654(1.2%) 494(0.9%) for-loop ...es/herbie/js-tweaks/src/float.rkt:17:3 return/no-unsupplied [162] 24.5% ------------------------------------------------------------------------- ulp-difference [77] 100.0% [91] 574(1.0%) 574(1.0%) infer-representation ...-tweaks/src/float.rkt:15:0 ------------------------------------------------------------------------- for-loop [73] 100.0% [92] 414(0.7%) 206(0.4%) for-loop ...js-tweaks/src/core/simplify.rkt:115:16 for-loop [106] 50.2% ------------------------------------------------------------------------- rewriter [78] 100.0% [93] 406(0.7%) 0(0.0%) *rules* ...ie/js-tweaks/src/syntax/rules.rkt:666:0 for-loop [104] 100.0% ------------------------------------------------------------------------- eval-prog [74] 37.2% inductor [94] 62.8% [94] 372(0.7%) 0(0.0%) inductor ...herbie/js-tweaks/src/programs.rkt:88:4 inductor [94] 62.8% ??? [99] 24.5% table-ref [112] 12.8% ------------------------------------------------------------------------- for-loop [81] 100.0% [95] 158(0.3%) 0(0.0%) mterm->expr ...js-tweaks/src/core/reduce.rkt:274:0 free-variables [107] 100.0% ------------------------------------------------------------------------- for-loop [96] 49.3% find-matches [82] 50.7% [96] 19568(35.4%) 474(0.9%) for-loop ...e/js-tweaks/src/core/simplify.rkt:57:8 for-loop [96] 49.3% match-e [108] 48.8% ------------------------------------------------------------------------- for-loop [83] 100.0% [97] 10614(19.2%) 0(0.0%) for-loop ...e/js-tweaks/src/core/simplify.rkt:70:4 merge-egraph-nodes! [123] 67.1% dedup-children! [137] 16.4% substitute-e [114] 12.3% mk-enode! [141] 4.2% ------------------------------------------------------------------------- argmax [188] 2.9% for-loop [68] 9.1% for-loop [73] 22.2% loop [85] 28.0% argmin [86] 37.8% [98] 5734(10.4%) 0(0.0%) expression-cost ...s-tweaks/src/programs.rkt:157:0 compile [109] 100.0% ------------------------------------------------------------------------- loop [10] 1.3% ??? [56] 2.9% inductor [94] 3.3% loop [80] 4.4% ??? [52] 4.8% ??? [3] 7.9% ??? [17] 13.7% location-do [111] 19.1% for-loop [75] 19.1% ??? [44] 23.4% [99] 5450(9.9%) 558(1.0%) ??? ...tract/private/arrow-higher-order.rkt:357:33 ->flonum [113] 25.7% location-do [111] 19.1% approximate9 [2] 19.1% mk-ival [116] 11.8% hash-ref! [122] 9.2% ival-mult [117] 4.8% ------------------------------------------------------------------------- temp68_2 [84] 100.0% [100] 3134(5.7%) 0(0.0%) compile16 (unknown source) temp74_0 [110] 100.0% ------------------------------------------------------------------------- for-loop [73] 17.1% argmin [86] 32.2% loop [85] 50.7% [101] 1996(3.6%) 238(0.4%) for-loop ...erbie/js-tweaks/src/programs.rkt:158:2 table-ref [112] 88.1% ------------------------------------------------------------------------- for-loop [87] 100.0% [102] 1128(2.0%) 0(0.0%) set-precompute! ...eaks/src/core/simplify.rkt:79:0 for-loop [115] 100.0% ------------------------------------------------------------------------- for-loop [13] 46.6% for-loop [88] 53.4% [103] 954(1.7%) 0(0.0%) matcher ...ie/js-tweaks/src/core/matcher.rkt:118:2 ??? [5] 46.6% rewriter [78] 46.6% constant? [182] 6.8% ------------------------------------------------------------------------- *rules* [93] 100.0% [104] 406(0.7%) 172(0.3%) for-loop ...s/herbie/js-tweaks/src/common.rkt:70:9 flag-set? [118] 57.6% ------------------------------------------------------------------------- for-loop [88] 100.0% [105] 226(0.4%) 0(0.0%) for-loop ...ie/js-tweaks/src/core/matcher.rkt:99:8 fix-up-variables [119] 100.0% ------------------------------------------------------------------------- for-loop [92] 100.0% [106] 208(0.4%) 208(0.4%) for-loop ...js-tweaks/src/core/simplify.rkt:119:23 ------------------------------------------------------------------------- append-map [120] 50.0% mterm->expr [95] 50.0% [107] 158(0.3%) 0(0.0%) free-variables .../js-tweaks/src/programs.rkt:57:0 append-map [120] 100.0% ------------------------------------------------------------------------- for-loop [133] 34.7% for-loop [96] 65.3% [108] 19094(34.5%) 3154(5.7%) match-e ...rbie/js-tweaks/src/core/ematch.rkt:39:0 for-loop [121] 70.9% constant? [182] 8.0% ??? [134] 3.8% variable? [125] 3.7% make-sequence [161] 1.1% ------------------------------------------------------------------------- expression-cost [98] 100.0% [109] 5734(10.4%) 0(0.0%) compile ...herbie/js-tweaks/src/programs.rkt:134:0 hash-ref! [122] 100.0% ------------------------------------------------------------------------- compile16 [100] 100.0% [110] 3134(5.7%) 0(0.0%) temp74_0 (unknown source) expand-single [124] 71.3% compile-top9 [129] 28.7% ------------------------------------------------------------------------- location-do [111] 25.5% ??? [99] 74.5% [111] 2586(4.7%) 0(0.0%) location-do ...bie/js-tweaks/src/programs.rkt:64:0 ??? [99] 74.5% location-do [111] 25.5% ------------------------------------------------------------------------- inductor [94] 9.8% for-loop [101] 90.2% [112] 1948(3.5%) 1116(2.0%) table-ref .../herbie/js-tweaks/src/common.rkt:41:0 for-loop [130] 42.7% ------------------------------------------------------------------------- ??? [99] 100.0% [113] 1402(2.5%) 0(0.0%) ->flonum ...s/herbie/js-tweaks/src/float.rkt:149:0 ??? [126] 100.0% ------------------------------------------------------------------------- for-loop [127] 20.5% for-loop [97] 79.5% [114] 1302(2.4%) 200(0.4%) substitute-e ...js-tweaks/src/core/ematch.rkt:64:0 for-loop [127] 85.9% constant? [182] 6.4% ------------------------------------------------------------------------- set-precompute! [102] 100.0% [115] 1128(2.0%) 484(0.9%) for-loop ...e/js-tweaks/src/core/simplify.rkt:81:2 merge-egraph-nodes! [123] 36.9% ??? [17] 20.2% ------------------------------------------------------------------------- ??? [99] 100.0% [116] 642(1.2%) 0(0.0%) mk-ival ...rbie/js-tweaks/src/biginterval.rkt:57:0 bf [131] 100.0% ------------------------------------------------------------------------- ??? [99] 100.0% [117] 262(0.5%) 0(0.0%) ival-mult ...e/js-tweaks/src/biginterval.rkt:112:0 bfsub [128] 100.0% ------------------------------------------------------------------------- for-loop [104] 100.0% [118] 234(0.4%) 0(0.0%) flag-set? .../herbie/js-tweaks/src/config.rkt:28:0 ??? [160] 100.0% ------------------------------------------------------------------------- for-loop [105] 100.0% [119] 226(0.4%) 0(0.0%) fix-up-variables ...aks/src/core/matcher.rkt:111:2 for-loop [132] 100.0% ------------------------------------------------------------------------- free-variables [107] 100.0% [120] 158(0.3%) 158(0.3%) append-map ...t-7.0/collects/racket/list.rkt:586:2 free-variables [107] 50.0% ------------------------------------------------------------------------- match-e [108] 100.0% [121] 16330(29.5%) 5028(9.1%) for-loop ...ie/js-tweaks/src/core/ematch.rkt:52:11 for-loop [133] 62.7% loop [139] 8.2% foldr [145] 2.7% cp-2 [159] 1.4% curried [157] 1.3% ------------------------------------------------------------------------- localize-error [59] 0.8% map [46] 1.5% for-loop [15] 2.5% for-loop [11] 3.2% loop [10] 3.6% ??? [142] 3.8% ??? [99] 4.5% first-nonzero-exp [30] 5.8% ??? [136] 32.5% compile [109] 40.9% [122] 7814(14.1%) 4752(8.6%) hash-ref! .../racket/private/more-scheme.rkt:376:2 ??? [136] 37.3% simplify [29] 9.6% ??? [142] 3.8% ??? [3] 3.6% ??? [4] 3.2% ??? [6] 2.5% parse-loop80 [53] 2.3% taylor [18] 0.7% ------------------------------------------------------------------------- for-loop [147] 4.1% for-loop [115] 5.5% merge-egraph-nodes! [123] 6.9% for-loop [97] 83.5% [123] 7540(13.6%) 0(0.0%) merge-egraph-nodes! ...s/src/core/egraph.rkt:143:0 update-leader! [135] 56.6% dedup-children! [137] 16.2% loop! [153] 13.1% merge-egraph-nodes! [123] 6.9% for-loop [147] 4.1% enode-merge! [148] 3.2% ------------------------------------------------------------------------- temp74_0 [110] 100.0% [124] 2234(4.0%) 0(0.0%) expand-single (unknown source) expand-capturing-lifts [138] 100.0% ------------------------------------------------------------------------- match-e [108] 100.0% [125] 1914(3.5%) 228(0.4%) variable? ...js-tweaks/src/syntax/syntax.rkt:724:0 ??? [134] 47.8% value? [190] 40.3% ------------------------------------------------------------------------- ->flonum [113] 100.0% [126] 1402(2.5%) 422(0.8%) ??? ...ghtlies/herbie/js-tweaks/src/float.rkt:23:2 for-loop [143] 69.9% ------------------------------------------------------------------------- substitute-e [114] 100.0% [127] 1302(2.4%) 0(0.0%) for-loop ...ie/js-tweaks/src/core/ematch.rkt:73:24 mk-enode! [141] 65.4% substitute-e [114] 34.6% ------------------------------------------------------------------------- ival-mult [117] 20.5% ival-sub [76] 79.5% [128] 1278(2.3%) 190(0.3%) bfsub ...-lib/math/private/bigfloat/mpfr.rkt:821:4 new-mpfr [140] 69.5% ??? [146] 15.6% ------------------------------------------------------------------------- temp74_0 [110] 100.0% [129] 900(1.6%) 0(0.0%) compile-top9 (unknown source) compile-forms31 [144] 100.0% ------------------------------------------------------------------------- table-ref [112] 100.0% [130] 832(1.5%) 832(1.5%) for-loop ...s/herbie/js-tweaks/src/common.rkt:43:4 ------------------------------------------------------------------------- mk-ival [116] 100.0% [131] 642(1.2%) 0(0.0%) bf ...ath-lib/math/private/bigfloat/mpfr.rkt:601:2 new-mpfr [140] 69.8% ??? [146] 30.2% ------------------------------------------------------------------------- fix-up-variables [119] 100.0% [132] 226(0.4%) 226(0.4%) for-loop ...ie/js-tweaks/src/core/matcher.rkt:42:9 ------------------------------------------------------------------------- for-loop [121] 100.0% [133] 12350(22.3%) 262(0.5%) for-loop ...ie/js-tweaks/src/core/ematch.rkt:58:37 match-e [108] 93.5% ??? [158] 5.4% ------------------------------------------------------------------------- variable? [125] 12.6% match-e [108] 26.0% finalize-iter! [43] 61.5% [134] 7270(13.1%) 2802(5.1%) ??? ...contract/private/arrow-val-first.rkt:388:18 for-loop [150] 58.3% atab-add-altns [165] 3.2% ------------------------------------------------------------------------- for-loop [89] 16.4% merge-egraph-nodes! [123] 83.6% [135] 5512(10.0%) 246(0.4%) update-leader! ...tweaks/src/core/egraph.rkt:211:0 for-loop [149] 91.8% make-sequence [161] 3.7% ------------------------------------------------------------------------- hash-ref! [122] 100.0% [136] 3920(7.1%) 982(1.8%) ??? ...ies/herbie/js-tweaks/src/programs.rkt:142:5 hash-ref! [122] 90.5% ------------------------------------------------------------------------- merge-egraph-nodes! [123] 43.3% for-loop [97] 56.7% [137] 3078(5.6%) 0(0.0%) dedup-children! ...tweaks/src/core/enode.rkt:195:0 loop [152] 64.5% loop [154] 35.5% ------------------------------------------------------------------------- loop [201] 9.0% expand-single [124] 91.0% [138] 2456(4.4%) 0(0.0%) expand-capturing-lifts (unknown source) lambda-clause-expander [151] 83.4% dispatch-transformer41 [155] 16.6% ------------------------------------------------------------------------- loop! [153] 1.6% ??? [50] 2.3% for-loop [31] 7.3% for-loop [121] 15.8% loop [139] 73.0% [139] 2182(3.9%) 590(1.1%) loop ...-7.0/collects/racket/private/map.rkt:40:19 loop [139] 73.0% curried [157] 10.4% ??? [44] 7.3% foldl [156] 5.1% loop! [153] 1.6% ------------------------------------------------------------------------- bf [131] 33.5% bfsub [128] 66.5% [140] 1336(2.4%) 1336(2.4%) new-mpfr ...b/math/private/bigfloat/mpfr.rkt:335:0 ------------------------------------------------------------------------- for-loop [97] 34.2% for-loop [127] 65.8% [141] 1294(2.3%) 1048(1.9%) mk-enode! ...ie/js-tweaks/src/core/egraph.rkt:97:0 new-enode [163] 19.0% ------------------------------------------------------------------------- hash-ref! [122] 100.0% [142] 1286(2.3%) 0(0.0%) ??? .../herbie/js-tweaks/src/core/taylor.rkt:45:15 hash-ref! [122] 100.0% ------------------------------------------------------------------------- ??? [126] 100.0% [143] 980(1.8%) 590(1.1%) for-loop ...es/herbie/js-tweaks/src/float.rkt:24:5 ??? [160] 23.7% return/no-unsupplied [162] 16.1% ------------------------------------------------------------------------- compile-top9 [129] 100.0% [144] 900(1.6%) 210(0.4%) compile-forms31 (unknown source) for-loop [183] 51.3% loop! [166] 25.3% ------------------------------------------------------------------------- for-loop [121] 100.0% [145] 868(1.6%) 600(1.1%) foldr ....0/collects/racket/private/list.rkt:242:4 cp-2 [159] 30.9% ------------------------------------------------------------------------- bf [131] 25.1% bfsub [128] 25.8% loop [36] 49.1% [146] 774(1.4%) 774(1.4%) ??? /opt/racket-7.0/collects/ffi/unsafe.rkt:898:4 ------------------------------------------------------------------------- merge-egraph-nodes! [123] 100.0% [147] 690(1.2%) 0(0.0%) for-loop ...ie/js-tweaks/src/core/egraph.rkt:197:4 merge-egraph-nodes! [123] 100.0% ------------------------------------------------------------------------- merge-egraph-nodes! [123] 100.0% [148] 244(0.4%) 0(0.0%) enode-merge! ...js-tweaks/src/core/enode.rkt:124:0 adopt-enode! [164] 100.0% ------------------------------------------------------------------------- update-leader! [135] 100.0% [149] 5060(9.1%) 0(0.0%) for-loop ...ie/js-tweaks/src/core/egraph.rkt:216:6 hash-update! [180] 66.4% for-loop [169] 33.6% ------------------------------------------------------------------------- ??? [134] 100.0% [150] 4238(7.7%) 0(0.0%) for-loop .../js-tweaks/src/core/alt-table.rkt:56:2 atab-add-altn [167] 63.3% errors [181] 19.9% loop [172] 16.8% ------------------------------------------------------------------------- expand-capturing-lifts [138] 100.0% [151] 2048(3.7%) 0(0.0%) lambda-clause-expander (unknown source) finish-bodys [168] 89.8% loop [201] 10.2% ------------------------------------------------------------------------- dedup-children! [137] 10.9% loop [152] 89.1% [152] 1984(3.6%) 1984(3.6%) loop ...racket-7.0/collects/racket/list.rkt:434:17 loop [152] 89.1% ------------------------------------------------------------------------- loop [139] 16.0% merge-egraph-nodes! [123] 84.0% [153] 1356(2.5%) 204(0.4%) loop! ...herbie/js-tweaks/src/core/enode.rkt:187:2 custom-set-union [170] 68.0% loop [139] 16.0% set [177] 8.5% ------------------------------------------------------------------------- dedup-children! [137] 14.8% loop [154] 85.2% [154] 1094(2.0%) 0(0.0%) loop ...racket-7.0/collects/racket/list.rkt:417:34 loop [154] 85.2% loop [201] 11.7% member [176] 3.1% ------------------------------------------------------------------------- loop [201] 21.8% for-loop [183] 35.3% expand-capturing-lifts [138] 42.9% [155] 952(1.7%) 0(0.0%) dispatch-transformer41 (unknown source) apply-transformer52 [171] 100.0% ------------------------------------------------------------------------- loop [139] 100.0% [156] 772(1.4%) 552(1.0%) foldl ....0/collects/racket/private/list.rkt:229:4 merge2 [178] 28.5% ------------------------------------------------------------------------- for-loop [121] 30.9% loop [139] 32.3% ??? [38] 36.9% [157] 700(1.3%) 700(1.3%) curried ...-7.0/collects/racket/function.rkt:71:18 ------------------------------------------------------------------------- for-loop [133] 100.0% [158] 670(1.2%) 0(0.0%) ??? ...s/herbie/js-tweaks/src/core/ematch.rkt:43:5 for-loop [173] 100.0% ------------------------------------------------------------------------- for-loop [121] 46.4% foldr [145] 53.6% [159] 500(0.9%) 232(0.4%) cp-2 .../racket-7.0/collects/racket/list.rkt:826:2 for-loop [174] 53.6% ------------------------------------------------------------------------- for-loop [143] 49.8% flag-set? [118] 50.2% [160] 466(0.8%) 466(0.8%) ??? ...s/racket/contract/private/arr-i.rkt:1252:29 ------------------------------------------------------------------------- update-leader! [135] 50.0% match-e [108] 50.0% [161] 412(0.7%) 412(0.7%) make-sequence ...ects/racket/private/for.rkt:528:2 ------------------------------------------------------------------------- for-loop [143] 49.7% for-loop [90] 50.3% [162] 318(0.6%) 160(0.3%) return/no-unsupplied ...ct/private/arr-i.rkt:534:0 filter [179] 49.7% ------------------------------------------------------------------------- mk-enode! [141] 100.0% [163] 246(0.4%) 0(0.0%) new-enode ...bie/js-tweaks/src/core/enode.rkt:94:0 type-of-enode-expr [175] 100.0% ------------------------------------------------------------------------- enode-merge! [148] 100.0% [164] 244(0.4%) 0(0.0%) adopt-enode! ...js-tweaks/src/core/enode.rkt:102:0 custom-set-union [170] 100.0% ------------------------------------------------------------------------- ??? [134] 100.0% [165] 230(0.4%) 0(0.0%) atab-add-altns ...eaks/src/core/alt-table.rkt:50:0 atab-add-altn [167] 100.0% ------------------------------------------------------------------------- compile-forms31 [144] 100.0% [166] 228(0.4%) 0(0.0%) loop! (unknown source) for-loop [183] 100.0% ------------------------------------------------------------------------- atab-add-altns [165] 7.9% for-loop [150] 92.1% [167] 2914(5.3%) 0(0.0%) atab-add-altn ...eaks/src/core/alt-table.rkt:202:0 errors [181] 89.9% loop [186] 10.1% ------------------------------------------------------------------------- lambda-clause-expander [151] 22.6% for-loop [183] 77.4% [168] 1840(3.3%) 0(0.0%) finish-bodys (unknown source) for-loop [183] 100.0% ------------------------------------------------------------------------- for-loop [149] 100.0% [169] 1702(3.1%) 0(0.0%) for-loop ...ie/js-tweaks/src/core/egraph.rkt:217:8 hash-update! [180] 100.0% ------------------------------------------------------------------------- adopt-enode! [164] 20.9% loop! [153] 79.1% [170] 1166(2.1%) 528(1.0%) custom-set-union ...et/private/set-types.rkt:168:0 for-loop [184] 54.7% ------------------------------------------------------------------------- dispatch-transformer41 [155] 100.0% [171] 952(1.7%) 408(0.7%) apply-transformer52 (unknown source) apply-transformer-in-context [185] 57.1% ------------------------------------------------------------------------- for-loop [150] 100.0% [172] 712(1.3%) 268(0.5%) loop ...bie/js-tweaks/src/core/alt-table.rkt:176:2 loop [187] 38.8% argmax [188] 23.6% ------------------------------------------------------------------------- ??? [158] 100.0% [173] 670(1.2%) 222(0.4%) for-loop ...bie/js-tweaks/src/core/ematch.rkt:44:7 constant? [182] 66.9% ------------------------------------------------------------------------- cp-2 [159] 100.0% [174] 268(0.5%) 268(0.5%) for-loop ...ket-7.0/collects/racket/list.rkt:827:4 ------------------------------------------------------------------------- new-enode [163] 100.0% [175] 246(0.4%) 246(0.4%) type-of-enode-expr ...eaks/src/core/enode.rkt:66:0 ------------------------------------------------------------------------- loop [154] 100.0% [176] 238(0.4%) 238(0.4%) member (unknown source) ------------------------------------------------------------------------- loop! [153] 100.0% [177] 230(0.4%) 230(0.4%) set ...collects/racket/private/set-types.rkt:981:0 ------------------------------------------------------------------------- foldl [156] 100.0% [178] 220(0.4%) 220(0.4%) merge2 ...erbie/js-tweaks/src/core/ematch.rkt:24:0 ------------------------------------------------------------------------- return/no-unsupplied [162] 100.0% [179] 158(0.3%) 158(0.3%) filter ...0/collects/racket/private/list.rkt:256:2 ------------------------------------------------------------------------- for-loop [169] 33.6% for-loop [149] 66.4% [180] 5060(9.1%) 0(0.0%) hash-update! ...cket/private/more-scheme.rkt:365:4 ??? [189] 100.0% ------------------------------------------------------------------------- ??? [17] 15.8% for-loop [150] 20.5% atab-add-altn [167] 63.7% [181] 4110(7.4%) 0(0.0%) errors ...es/herbie/js-tweaks/src/points.rkt:223:0 for-loop [191] 69.0% eval-prog [74] 31.0% ------------------------------------------------------------------------- substitute-e [114] 7.4% matcher [103] 9.5% for-loop [173] 13.2% match-e [108] 69.8% [182] 3382(6.1%) 250(0.5%) constant? ...js-tweaks/src/syntax/syntax.rkt:721:0 value? [190] 92.6% ------------------------------------------------------------------------- fallback-loop [19] 1.7% loop! [166] 9.0% for-loop [183] 13.3% compile-forms31 [144] 18.3% finish-bodys [168] 57.7% [183] 2530(4.6%) 882(1.6%) for-loop (unknown source) finish-bodys [168] 46.7% for-loop [183] 13.3% compile5 [195] 9.0% add-local-binding!37 [194] 3.2% expand-implicit [8] 2.9% syntax-e [7] 2.6% dispatch-transformer41 [155] 1.1% loop [201] 0.8% ------------------------------------------------------------------------- custom-set-union [170] 100.0% [184] 638(1.2%) 0(0.0%) for-loop ...cts/racket/private/set-types.rkt:174:3 for-loop [192] 100.0% ------------------------------------------------------------------------- apply-transformer52 [171] 100.0% [185] 544(1.0%) 0(0.0%) apply-transformer-in-context (unknown source) parse-app [193] 61.8% ??? [196] 38.2% ------------------------------------------------------------------------- atab-add-altn [167] 100.0% [186] 294(0.5%) 294(0.5%) loop ...-7.0/collects/racket/private/hash.rkt:20:4 ------------------------------------------------------------------------- loop [172] 100.0% [187] 276(0.5%) 276(0.5%) loop ...racket-7.0/collects/racket/list.rkt:434:28 ------------------------------------------------------------------------- loop [172] 100.0% [188] 168(0.3%) 0(0.0%) argmax ...acket-7.0/collects/racket/list.rkt:766:0 expression-cost [98] 100.0% ------------------------------------------------------------------------- hash-update! [180] 100.0% [189] 5060(9.1%) 0(0.0%) ??? ...herbie/js-tweaks/src/core/egraph.rkt:219:24 for-loop [197] 100.0% ------------------------------------------------------------------------- variable? [125] 19.8% constant? [182] 80.2% [190] 3904(7.1%) 3904(7.1%) value? ...rbie/js-tweaks/src/syntax/types.rkt:18:0 ------------------------------------------------------------------------- errors [181] 100.0% [191] 2834(5.1%) 0(0.0%) for-loop .../herbie/js-tweaks/src/points.rkt:225:2 ??? [17] 100.0% ------------------------------------------------------------------------- for-loop [184] 100.0% [192] 638(1.2%) 638(1.2%) for-loop ...cts/racket/private/set-types.rkt:178:5 ------------------------------------------------------------------------- apply-transformer-in-context [185]100.0% [193] 336(0.6%) 0(0.0%) parse-app ...collects/racket/private/kw.rkt:1105:2 syntax->list [199] 100.0% ------------------------------------------------------------------------- for-loop [183] 100.0% [194] 320(0.6%) 320(0.6%) add-local-binding!37 (unknown source) ------------------------------------------------------------------------- for-loop [183] 100.0% [195] 228(0.4%) 228(0.4%) compile5 (unknown source) ------------------------------------------------------------------------- apply-transformer-in-context [185]100.0% [196] 208(0.4%) 0(0.0%) ??? ...collects/racket/private/qq-and-or.rkt:155:9 ??? [198] 100.0% ------------------------------------------------------------------------- ??? [189] 100.0% [197] 5060(9.1%) 4834(8.7%) for-loop ...e/js-tweaks/src/core/egraph.rkt:220:26 update-en-expr [200] 4.5% ------------------------------------------------------------------------- ??? [196] 100.0% [198] 208(0.4%) 0(0.0%) ??? ...ollects/racket/private/qq-and-or.rkt:164:21 syntax->list [199] 100.0% ------------------------------------------------------------------------- ??? [198] 38.2% parse-app [193] 61.8% [199] 544(1.0%) 0(0.0%) syntax->list (unknown source) loop [201] 100.0% ------------------------------------------------------------------------- for-loop [197] 100.0% [200] 226(0.4%) 226(0.4%) update-en-expr ...tweaks/src/core/egraph.rkt:205:0 ------------------------------------------------------------------------- lambda-clause-expander [151] 3.1% for-loop [183] 3.9% eval-prog [74] 10.1% syntax->list [199] 14.5% syntax-e/no-taint [12] 29.6% loop [154] 38.8% [201] 2204(4.0%) 1020(1.8%) loop (unknown source) gf [202] 29.6% expand-capturing-lifts [138] 10.1% syntax-e [7] 7.0% expand-id-application-form17 [203] 3.9% dispatch-transformer41 [155] 3.1% ------------------------------------------------------------------------- loop [201] 100.0% [202] 962(1.7%) 380(0.7%) gf (unknown source) cache-or-reuse-set [204] 23.3% propagation-merge [205] 19.5% propagation-apply [206] 17.7% ------------------------------------------------------------------------- loop [201] 100.0% [203] 170(0.3%) 0(0.0%) expand-id-application-form17 (unknown source) syntax-e/no-taint [12] 100.0% ------------------------------------------------------------------------- gf [202] 100.0% [204] 224(0.4%) 224(0.4%) cache-or-reuse-set (unknown source) ------------------------------------------------------------------------- gf [202] 100.0% [205] 188(0.3%) 188(0.3%) propagation-merge (unknown source) ------------------------------------------------------------------------- gf [202] 100.0% [206] 170(0.3%) 170(0.3%) propagation-apply (unknown source) -------------------------------------------------------------------------