Profiling results ----------------- Total cpu time observed: 218776ms (out of 219504ms) Number of samples taken: 690 (once every 317ms) (Hiding functions with self<1.0% and local<2.0%: 15 of 305 hidden) =================================================================================== Caller Idx Total Self Name+src Local% ms(pct) ms(pct) Callee =================================================================================== ??? [120] 100.0% [1] 218776(100.0%) 0(0.0%) profile-thunk16 ...e/pkgs/profile-lib/main.rkt:9:0 run [15] 100.0% ----------------------------------------------------------------------------------- ??? [120] 100.0% [2] 154752(70.7%) 0(0.0%) run-improve43 ...nal-posits/src/mainloop.rkt:340:0 for-loop [16] 98.1% simplify! [31] 1.7% ----------------------------------------------------------------------------------- ??? [231] 100.0% [3] 13258(6.1%) 0(0.0%) approximate9 ...al-posits/src/core/taylor.rkt:12:0 loop [17] 81.0% for-loop [23] 16.7% taylor [28] 2.3% ----------------------------------------------------------------------------------- hash-ref! [196] 100.0% [4] 9824(4.5%) 0(0.0%) ??? ...e/optional-posits/src/core/taylor.rkt:45:15 hash-ref! [196] 83.4% ??? [27] 13.2% simplify [50] 3.4% ----------------------------------------------------------------------------------- matcher [82] 100.0% [5] 5762(2.6%) 0(0.0%) ??? ...optional-posits/src/core/matcher.rkt:130:11 for-loop [18] 95.8% for-loop [25] 2.9% foldl [191] 1.3% ----------------------------------------------------------------------------------- hash-ref! [196] 100.0% [6] 4472(2.0%) 0(0.0%) ??? .../optional-posits/src/core/taylor.rkt:291:26 for-loop [19] 100.0% ----------------------------------------------------------------------------------- hash-ref! [196] 100.0% [7] 4108(1.9%) 0(0.0%) ??? .../optional-posits/src/core/taylor.rkt:301:23 for-loop [20] 100.0% ----------------------------------------------------------------------------------- hash-ref! [196] 100.0% [8] 2498(1.1%) 0(0.0%) ??? .../optional-posits/src/core/taylor.rkt:363:30 hash-ref! [196] 64.1% ??? [27] 35.9% ----------------------------------------------------------------------------------- loop [279] 29.2% for-loop [261] 70.8% [9] 2180(1.0%) 0(0.0%) syntax-e (unknown source) syntax-e/no-taint [22] 100.0% ----------------------------------------------------------------------------------- loop [279] 18.8% for-loop [261] 81.2% [10] 1626(0.7%) 326(0.1%) expand-identifier (unknown source) resolve+shift28 [21] 80.0% ----------------------------------------------------------------------------------- for-loop [261] 100.0% [11] 1560(0.7%) 336(0.2%) expand-implicit (unknown source) resolve+shift28 [21] 57.4% binding-lookup50 [288] 21.0% ----------------------------------------------------------------------------------- for-loop [67] 100.0% [12] 962(0.4%) 0(0.0%) for-loop ...ional-posits/src/core/matcher.rkt:99:8 fix-up-variables [24] 100.0% ----------------------------------------------------------------------------------- copying-mergesort [216] 100.0% [13] 910(0.4%) 0(0.0%) jloop ...0/collects/racket/private/sort.rkt:120:23 ??? [131] 67.3% ??? [260] 32.7% ----------------------------------------------------------------------------------- taylor [28] 100.0% [14] 660(0.3%) 0(0.0%) taylor-invert ...-posits/src/core/taylor.rkt:318:0 first-nonzero-exp [44] 100.0% ----------------------------------------------------------------------------------- profile-thunk16 [1] 100.0% [15] 218776(100.0%) 0(0.0%) run ...et-7.0/share/pkgs/profile-lib/main.rkt:39:2 ??? [120] 100.0% ----------------------------------------------------------------------------------- run-improve43 [2] 100.0% [16] 151866(69.4%) 0(0.0%) for-loop ...optional-posits/src/mainloop.rkt:355:4 run-iter! [26] 100.0% ----------------------------------------------------------------------------------- approximate9 [3] 100.0% [17] 10738(4.9%) 0(0.0%) loop ...e/optional-posits/src/core/taylor.rkt:87:4 hash-ref! [196] 100.0% ----------------------------------------------------------------------------------- ??? [5] 100.0% [18] 5762(2.6%) 0(0.0%) for-loop ...nal-posits/src/core/matcher.rkt:132:15 matcher [82] 100.0% ----------------------------------------------------------------------------------- ??? [6] 100.0% [19] 4472(2.0%) 0(0.0%) for-loop ...onal-posits/src/core/taylor.rkt:291:52 hash-ref! [196] 46.2% ??? [27] 39.4% simplify [50] 14.3% ----------------------------------------------------------------------------------- ??? [7] 100.0% [20] 4108(1.9%) 298(0.1%) for-loop ...onal-posits/src/core/taylor.rkt:304:27 hash-ref! [196] 92.7% ----------------------------------------------------------------------------------- core-form-sym [285] 17.6% expand-id-application-form17 [284] 18.2% expand-implicit [11] 26.2% expand-identifier [10] 38.0% [21] 3418(1.6%) 300(0.1%) resolve+shift28 (unknown source) fallback-loop [29] 91.2% ----------------------------------------------------------------------------------- gf [283] 10.7% expand-id-application-form17 [284] 11.6% syntax-e [9] 77.7% [22] 2806(1.3%) 0(0.0%) syntax-e/no-taint (unknown source) loop [279] 100.0% ----------------------------------------------------------------------------------- approximate9 [3] 100.0% [23] 2220(1.0%) 0(0.0%) for-loop ...ional-posits/src/core/taylor.rkt:30:18 taylor [28] 86.4% taylor-sqrt [36] 13.6% ----------------------------------------------------------------------------------- for-loop [12] 100.0% [24] 962(0.4%) 326(0.1%) fix-up-variables ...its/src/core/matcher.rkt:111:2 for-loop [30] 66.1% ----------------------------------------------------------------------------------- ??? [5] 100.0% [25] 336(0.2%) 0(0.0%) for-loop ...onal-posits/src/core/matcher.rkt:106:4 foldl [191] 100.0% ----------------------------------------------------------------------------------- for-loop [16] 100.0% [26] 151866(69.4%) 0(0.0%) run-iter! ...ptional-posits/src/mainloop.rkt:321:0 simplify! [31] 66.3% finalize-iter! [32] 18.1% gen-series! [33] 8.7% gen-rewrites! [34] 4.2% choose-best-alt! [35] 1.9% localize! [37] 0.9% ----------------------------------------------------------------------------------- ??? [8] 19.7% ??? [4] 30.1% for-loop [19] 50.3% [27] 3806(1.7%) 0(0.0%) ??? .../optional-posits/src/core/taylor.rkt:294:19 hash-ref! [196] 100.0% ----------------------------------------------------------------------------------- approximate9 [3] 9.6% hash-ref! [196] 17.0% for-loop [23] 33.8% taylor [28] 39.6% [28] 3132(1.4%) 0(0.0%) taylor ...ptional-posits/src/core/taylor.rkt:170:0 taylor [28] 39.6% taylor-sqrt [36] 32.4% map [149] 18.4% taylor-invert [14] 7.1% loop [171] 2.5% ----------------------------------------------------------------------------------- resolve+shift28 [21] 100.0% [29] 3118(1.4%) 1292(0.6%) fallback-loop (unknown source) for-loop [261] 58.6% ----------------------------------------------------------------------------------- fix-up-variables [24] 100.0% [30] 636(0.3%) 0(0.0%) for-loop ...ional-posits/src/core/matcher.rkt:42:9 pattern-match [38] 100.0% ----------------------------------------------------------------------------------- run-improve43 [2] 2.5% run-iter! [26] 97.5% [31] 103200(47.2%) 0(0.0%) simplify! ...ptional-posits/src/mainloop.rkt:217:0 ??? [39] 100.0% ----------------------------------------------------------------------------------- run-iter! [26] 100.0% [32] 27466(12.6%) 0(0.0%) finalize-iter! ...al-posits/src/mainloop.rkt:272:0 ??? [40] 100.0% ----------------------------------------------------------------------------------- run-iter! [26] 100.0% [33] 13258(6.1%) 0(0.0%) gen-series! ...ional-posits/src/mainloop.rkt:153:0 for-loop [41] 100.0% ----------------------------------------------------------------------------------- run-iter! [26] 100.0% [34] 6396(2.9%) 0(0.0%) gen-rewrites! ...nal-posits/src/mainloop.rkt:176:0 for-loop [42] 95.3% for-loop [45] 4.7% ----------------------------------------------------------------------------------- run-iter! [26] 100.0% [35] 2828(1.3%) 0(0.0%) choose-best-alt! ...-posits/src/mainloop.rkt:111:0 ??? [40] 100.0% ----------------------------------------------------------------------------------- for-loop [23] 12.2% map [149] 37.7% taylor [28] 50.0% [36] 2466(1.1%) 0(0.0%) taylor-sqrt ...al-posits/src/core/taylor.rkt:352:0 simplify [50] 50.0% hash-ref! [196] 37.6% first-nonzero-exp [44] 12.4% ----------------------------------------------------------------------------------- run-iter! [26] 100.0% [37] 1296(0.6%) 0(0.0%) localize! ...ptional-posits/src/mainloop.rkt:120:0 localize-error [43] 100.0% ----------------------------------------------------------------------------------- for-loop [30] 100.0% [38] 636(0.3%) 0(0.0%) pattern-match ...-posits/src/core/matcher.rkt:30:0 variable? [210] 52.8% constant? [223] 47.2% ----------------------------------------------------------------------------------- ??? [147] 0.3% simplify! [31] 99.7% [39] 103544(47.3%) 0(0.0%) ??? .../optional-posits/src/core/simplify.rkt:26:0 one-iter [55] 58.0% for-loop [47] 24.3% loop [48] 17.1% loop [171] 0.3% for-loop [54] 0.3% ----------------------------------------------------------------------------------- substitute-e [107] 0.9% variable? [210] 3.5% match-e [97] 5.6% choose-best-alt! [35] 8.3% finalize-iter! [32] 80.8% [40] 34008(15.5%) 3406(1.6%) ??? ...contract/private/arrow-val-first.rkt:388:18 for-loop [46] 80.8% ??? [52] 8.3% ??? [260] 0.9% ----------------------------------------------------------------------------------- gen-series! [33] 100.0% [41] 13258(6.1%) 0(0.0%) for-loop ...optional-posits/src/mainloop.rkt:160:7 taylor-alt [49] 100.0% ----------------------------------------------------------------------------------- gen-rewrites! [34] 100.0% [42] 6096(2.8%) 0(0.0%) for-loop ...ptional-posits/src/mainloop.rkt:184:11 rewrite-expression-head20 [51] 100.0% ----------------------------------------------------------------------------------- localize! [37] 100.0% [43] 1296(0.6%) 0(0.0%) localize-error ...osits/src/core/localize.rkt:57:0 hash-ref! [196] 100.0% ----------------------------------------------------------------------------------- taylor-sqrt [36] 31.7% taylor-invert [14] 68.3% [44] 966(0.4%) 0(0.0%) first-nonzero-exp ...its/src/core/taylor.rkt:266:0 hash-ref! [196] 68.3% simplify [50] 31.7% ----------------------------------------------------------------------------------- gen-rewrites! [34] 100.0% [45] 300(0.1%) 0(0.0%) for-loop ...optional-posits/src/mainloop.rkt:201:4 for-loop [53] 100.0% ----------------------------------------------------------------------------------- ??? [40] 100.0% [46] 27466(12.6%) 0(0.0%) for-loop ...nal-posits/src/core/alt-table.rkt:56:2 atab-add-altn [56] 96.7% loop [61] 3.3% ----------------------------------------------------------------------------------- ??? [39] 100.0% [47] 25128(11.5%) 0(0.0%) for-loop ...onal-posits/src/core/simplify.rkt:33:2 one-iter [55] 100.0% ----------------------------------------------------------------------------------- ??? [39] 100.0% [48] 17686(8.1%) 0(0.0%) loop ...ptional-posits/src/core/simplify.rkt:142:2 for-loop [57] 100.0% ----------------------------------------------------------------------------------- for-loop [41] 100.0% [49] 13258(6.1%) 0(0.0%) taylor-alt ...tional-posits/src/mainloop.rkt:139:0 for-loop [58] 100.0% ----------------------------------------------------------------------------------- first-nonzero-exp [44] 2.4% ??? [4] 2.7% for-loop [19] 5.1% taylor-sqrt [36] 9.7% hash-ref! [196] 80.1% [50] 12652(5.8%) 0(0.0%) simplify ...tional-posits/src/core/reduce.rkt:16:0 f46 [59] 76.9% parse-loop30 [159] 15.7% simplify* [169] 2.6% simplify-node [167] 2.4% debug-print [62] 2.4% ----------------------------------------------------------------------------------- for-loop [42] 100.0% [51] 6096(2.8%) 0(0.0%) rewrite-expression-head20 ...core/matcher.rkt:87:0 rewriter [60] 100.0% ----------------------------------------------------------------------------------- ??? [40] 100.0% [52] 2828(1.3%) 0(0.0%) ??? ...optional-posits/src/core/alt-table.rkt:59:0 ??? [231] 100.0% ----------------------------------------------------------------------------------- for-loop [45] 100.0% [53] 300(0.1%) 0(0.0%) for-loop ...optional-posits/src/mainloop.rkt:202:6 change-apply [63] 100.0% ----------------------------------------------------------------------------------- ??? [39] 100.0% [54] 298(0.1%) 0(0.0%) for-loop ...nal-posits/src/core/simplify.rkt:31:14 mk-enode-rec! [195] 100.0% ----------------------------------------------------------------------------------- for-loop [47] 29.5% ??? [39] 70.5% [55] 85224(39.0%) 0(0.0%) one-iter ...onal-posits/src/core/simplify.rkt:85:0 find-matches [64] 69.8% for-loop [65] 27.0% for-loop [68] 3.2% ----------------------------------------------------------------------------------- for-loop [46] 100.0% [56] 26556(12.1%) 0(0.0%) atab-add-altn ...sits/src/core/alt-table.rkt:202:0 errors [104] 95.4% override-at-pnts [74] 1.3% best-and-tied-at-points [78] 1.1% ----------------------------------------------------------------------------------- loop [48] 100.0% [57] 17686(8.1%) 310(0.1%) for-loop ...nal-posits/src/core/simplify.rkt:148:4 argmin [66] 44.8% loop [144] 22.1% expression-cost [81] 15.3% for-loop [152] 10.5% for-loop [72] 5.5% ----------------------------------------------------------------------------------- taylor-alt [49] 100.0% [58] 13258(6.1%) 0(0.0%) for-loop ...optional-posits/src/mainloop.rkt:145:6 ??? [231] 100.0% ----------------------------------------------------------------------------------- parse-loop30 [159] 2.8% get-final-combination [133] 17.2% map [149] 21.0% simplify [50] 59.1% [59] 11750(5.4%) 310(0.1%) f46 ...0/collects/racket/match/compiler.rkt:507:40 map [149] 49.7% eval-const-expr [172] 24.1% sindices->spoints [71] 17.2% composed [70] 7.6% ----------------------------------------------------------------------------------- rewrite-expression-head20 [51] 34.6% matcher [82] 65.4% [60] 6096(2.8%) 960(0.4%) rewriter ...ional-posits/src/core/matcher.rkt:90:2 for-loop [67] 85.2% *rules* [69] 9.6% ----------------------------------------------------------------------------------- for-loop [46] 100.0% [61] 910(0.4%) 0(0.0%) loop ...tional-posits/src/core/alt-table.rkt:176:2 loop [73] 65.9% argmax [75] 34.1% ----------------------------------------------------------------------------------- simplify [50] 100.0% [62] 300(0.1%) 0(0.0%) debug-print ...optional-posits/src/debug.rkt:110:0 ??? [76] 100.0% ----------------------------------------------------------------------------------- for-loop [53] 100.0% [63] 300(0.1%) 0(0.0%) change-apply ...l-posits/src/core/matcher.rkt:70:0 pattern-substitute [77] 100.0% ----------------------------------------------------------------------------------- one-iter [55] 100.0% [64] 59486(27.2%) 0(0.0%) find-matches ...-posits/src/core/simplify.rkt:55:0 for-loop [79] 100.0% ----------------------------------------------------------------------------------- one-iter [55] 100.0% [65] 23008(10.5%) 296(0.1%) for-loop ...onal-posits/src/core/simplify.rkt:94:2 loop [80] 90.6% reduce-to-single! [86] 5.2% update-leader! [113] 2.9% ----------------------------------------------------------------------------------- for-loop [57] 100.0% [66] 7932(3.6%) 0(0.0%) argmin ...acket-7.0/collects/racket/list.rkt:765:0 expression-cost [81] 73.1% for-loop [152] 26.9% ----------------------------------------------------------------------------------- rewriter [60] 100.0% [67] 6096(2.8%) 0(0.0%) for-loop ...ional-posits/src/core/matcher.rkt:92:4 matcher [82] 94.6% for-loop [12] 5.4% ----------------------------------------------------------------------------------- one-iter [55] 100.0% [68] 2730(1.2%) 0(0.0%) for-loop ...nal-posits/src/core/simplify.rkt:110:2 set-precompute! [83] 100.0% ----------------------------------------------------------------------------------- rewriter [60] 100.0% [69] 2302(1.1%) 332(0.2%) *rules* ...ional-posits/src/syntax/rules.rkt:666:0 for-loop [85] 85.6% ----------------------------------------------------------------------------------- f46 [59] 100.0% [70] 2144(1.0%) 0(0.0%) composed ...ollects/racket/private/list.rkt:321:16 free-variables [215] 100.0% ----------------------------------------------------------------------------------- f46 [59] 100.0% [71] 2018(0.9%) 0(0.0%) sindices->spoints ...ts/src/core/regimes.rkt:188:0 for-loop [84] 100.0% ----------------------------------------------------------------------------------- for-loop [57] 100.0% [72] 968(0.4%) 0(0.0%) for-loop ...al-posits/src/core/simplify.rkt:152:16 for-loop [87] 100.0% ----------------------------------------------------------------------------------- loop [61] 35.0% loop [73] 65.0% [73] 600(0.3%) 600(0.3%) loop ...racket-7.0/collects/racket/list.rkt:434:28 loop [73] 65.0% ----------------------------------------------------------------------------------- atab-add-altn [56] 100.0% [74] 336(0.2%) 0(0.0%) override-at-pnts ...s/src/core/alt-table.rkt:138:0 for-loop [88] 100.0% ----------------------------------------------------------------------------------- loop [61] 100.0% [75] 310(0.1%) 0(0.0%) argmax ...acket-7.0/collects/racket/list.rkt:766:0 expression-cost [81] 100.0% ----------------------------------------------------------------------------------- debug-print [62] 100.0% [76] 300(0.1%) 0(0.0%) ??? .../contract/private/arrow-val-first.rkt:428:3 ~r78 [89] 100.0% ----------------------------------------------------------------------------------- change-apply [63] 20.0% pattern-substitute [77] 80.0% [77] 300(0.1%) 0(0.0%) pattern-substitute ...ts/src/core/matcher.rkt:46:0 pattern-substitute [77] 80.0% constant? [223] 20.0% ----------------------------------------------------------------------------------- atab-add-altn [56] 100.0% [78] 298(0.1%) 0(0.0%) best-and-tied-at-points ...ore/alt-table.rkt:117:0 for-loop [90] 100.0% ----------------------------------------------------------------------------------- for-loop [79] 49.0% find-matches [64] 51.0% [79] 59486(27.2%) 1868(0.9%) for-loop ...onal-posits/src/core/simplify.rkt:57:8 for-loop [79] 49.0% match-e [97] 47.9% ??? [122] 0.5% ----------------------------------------------------------------------------------- loop [80] 0.7% for-loop [65] 99.3% [80] 20844(9.5%) 0(0.0%) loop ...optional-posits/src/core/simplify.rkt:99:4 apply-match [91] 99.3% loop [80] 0.7% ----------------------------------------------------------------------------------- argmax [75] 3.0% loop [144] 14.6% for-loop [57] 26.2% argmin [66] 56.2% [81] 10320(4.7%) 0(0.0%) expression-cost ...l-posits/src/programs.rkt:157:0 compile [92] 100.0% ----------------------------------------------------------------------------------- for-loop [18] 44.5% for-loop [67] 55.5% [82] 6096(2.8%) 0(0.0%) matcher ...ional-posits/src/core/matcher.rkt:118:2 ??? [5] 47.0% rewriter [60] 44.5% variable? [210] 5.5% constant? [223] 3.0% ----------------------------------------------------------------------------------- for-loop [68] 100.0% [83] 2730(1.2%) 0(0.0%) set-precompute! ...its/src/core/simplify.rkt:116:0 for-loop [93] 100.0% ----------------------------------------------------------------------------------- sindices->spoints [71] 100.0% [84] 2018(0.9%) 0(0.0%) for-loop ...onal-posits/src/core/regimes.rkt:225:9 binary-search-floats [94] 69.1% pred [99] 30.9% ----------------------------------------------------------------------------------- *rules* [69] 100.0% [85] 1970(0.9%) 654(0.3%) for-loop ...ie/optional-posits/src/common.rkt:70:9 ormap [96] 51.6% flag-set? [101] 15.2% ----------------------------------------------------------------------------------- for-loop [65] 100.0% [86] 1202(0.5%) 0(0.0%) reduce-to-single! ...its/src/core/egraph.rkt:318:0 for-loop [95] 100.0% ----------------------------------------------------------------------------------- for-loop [72] 100.0% [87] 968(0.4%) 968(0.4%) for-loop ...al-posits/src/core/simplify.rkt:156:23 ----------------------------------------------------------------------------------- override-at-pnts [74] 100.0% [88] 336(0.2%) 336(0.2%) for-loop ...l-posits/src/core/alt-table.rkt:139:22 ----------------------------------------------------------------------------------- ??? [76] 100.0% [89] 300(0.1%) 300(0.1%) ~r78 ...acket-7.0/collects/racket/format.rkt:189:0 ----------------------------------------------------------------------------------- best-and-tied-at-points [78] 100.0% [90] 298(0.1%) 298(0.1%) for-loop ...l-posits/src/core/alt-table.rkt:119:16 ----------------------------------------------------------------------------------- loop [80] 100.0% [91] 20844(9.5%) 0(0.0%) apply-match ...l-posits/src/core/simplify.rkt:64:0 for-loop [98] 57.6% match-e [97] 39.5% custom-set-intersect [102] 2.9% ----------------------------------------------------------------------------------- expression-cost [81] 100.0% [92] 10320(4.7%) 602(0.3%) compile .../optional-posits/src/programs.rkt:134:0 hash-ref! [196] 94.2% ----------------------------------------------------------------------------------- set-precompute! [83] 100.0% [93] 2730(1.2%) 0(0.0%) for-loop ...nal-posits/src/core/simplify.rkt:118:2 setfindf [100] 56.3% ??? [120] 43.7% ----------------------------------------------------------------------------------- for-loop [84] 100.0% [94] 1394(0.6%) 0(0.0%) binary-search-floats ...src/core/regimes.rkt:169:0 pred [99] 100.0% ----------------------------------------------------------------------------------- reduce-to-single! [86] 100.0% [95] 1202(0.5%) 0(0.0%) for-loop ...ional-posits/src/core/egraph.rkt:319:8 constant? [223] 100.0% ----------------------------------------------------------------------------------- for-loop [85] 100.0% [96] 1016(0.5%) 356(0.2%) ormap ....0/collects/racket/private/map.rkt:141:13 flag-set? [101] 65.0% ----------------------------------------------------------------------------------- apply-match [91] 6.2% for-loop [110] 34.0% for-loop [79] 59.9% [97] 65212(29.8%) 5810(2.7%) match-e ...ptional-posits/src/core/ematch.rkt:39:0 for-loop [103] 52.0% constant? [223] 31.0% variable? [210] 7.1% ??? [40] 1.1% ----------------------------------------------------------------------------------- apply-match [91] 100.0% [98] 12016(5.5%) 0(0.0%) for-loop ...onal-posits/src/core/simplify.rkt:77:2 merge-egraph-nodes! [106] 69.9% substitute-e [107] 20.1% mk-enode! [125] 7.5% dedup-children! [116] 2.5% ----------------------------------------------------------------------------------- for-loop [84] 30.9% binary-search-floats [94] 69.1% [99] 2018(0.9%) 0(0.0%) pred ...optional-posits/src/core/regimes.rkt:197:4 prepare-points [105] 64.2% errors [104] 35.8% ----------------------------------------------------------------------------------- for-loop [93] 100.0% [100] 1536(0.7%) 0(0.0%) setfindf ...e/optional-posits/src/common.rkt:138:0 for-loop [108] 100.0% ----------------------------------------------------------------------------------- for-loop [85] 31.2% ormap [96] 68.8% [101] 960(0.4%) 0(0.0%) flag-set? ...e/optional-posits/src/config.rkt:28:0 return/no-unsupplied [281] 100.0% ----------------------------------------------------------------------------------- apply-match [91] 100.0% [102] 604(0.3%) 0(0.0%) custom-set-intersect ...rivate/set-types.rkt:195:0 for-loop [109] 100.0% ----------------------------------------------------------------------------------- match-e [97] 100.0% [103] 47296(21.6%) 7656(3.5%) for-loop ...ional-posits/src/core/ematch.rkt:52:11 for-loop [110] 84.0% loop [171] 1.3% foldl [191] 0.6% foldr [118] 0.6% ----------------------------------------------------------------------------------- pred [99] 2.0% ??? [258] 6.1% for-loop [173] 9.9% ??? [120] 12.6% atab-add-altn [56] 69.4% [104] 36470(16.7%) 0(0.0%) errors ...bie/optional-posits/src/points.rkt:223:0 for-loop [111] 81.3% eval-prog [186] 18.7% ----------------------------------------------------------------------------------- pred [99] 5.7% ??? [120] 92.9% [105] 22616(10.3%) 0(0.0%) prepare-points ...onal-posits/src/points.rkt:166:0 loop [112] 97.1% eval-prog [186] 2.9% ----------------------------------------------------------------------------------- for-loop [115] 2.5% merge-egraph-nodes! [106] 13.2% for-loop [98] 84.3% [106] 8398(3.8%) 0(0.0%) merge-egraph-nodes! ...s/src/core/egraph.rkt:143:0 update-leader! [113] 40.6% loop! [188] 36.5% merge-egraph-nodes! [106] 13.2% dedup-children! [116] 3.6% enode-merge! [119] 3.6% for-loop [115] 2.5% ----------------------------------------------------------------------------------- for-loop [114] 30.8% for-loop [98] 69.2% [107] 2416(1.1%) 0(0.0%) substitute-e ...al-posits/src/core/ematch.rkt:64:0 for-loop [114] 55.7% constant? [223] 36.0% variable? [210] 4.2% ??? [40] 4.0% ----------------------------------------------------------------------------------- setfindf [100] 100.0% [108] 1536(0.7%) 0(0.0%) for-loop ...e/optional-posits/src/common.rkt:139:2 constant? [223] 100.0% ----------------------------------------------------------------------------------- custom-set-intersect [102] 100.0% [109] 604(0.3%) 300(0.1%) for-loop ...cts/racket/private/set-types.rkt:207:3 for-loop [117] 50.3% ----------------------------------------------------------------------------------- for-loop [103] 100.0% [110] 41812(19.1%) 300(0.1%) for-loop ...ional-posits/src/core/ematch.rkt:58:37 match-e [97] 90.0% ??? [122] 9.3% ----------------------------------------------------------------------------------- errors [104] 100.0% [111] 29648(13.6%) 936(0.4%) for-loop ...e/optional-posits/src/points.rkt:225:2 ??? [120] 96.8% ----------------------------------------------------------------------------------- prepare-points [105] 100.0% [112] 21966(10.0%) 0(0.0%) loop ...erbie/optional-posits/src/points.rkt:143:4 loop [121] 86.7% ??? [124] 8.7% andmap [126] 3.0% ordinary-value? [267] 1.7% ----------------------------------------------------------------------------------- for-loop [65] 16.3% merge-egraph-nodes! [106] 83.7% [113] 4074(1.9%) 298(0.1%) update-leader! ...posits/src/core/egraph.rkt:211:0 for-loop [123] 85.4% for-loop [130] 7.3% ----------------------------------------------------------------------------------- substitute-e [107] 100.0% [114] 1794(0.8%) 0(0.0%) for-loop ...ional-posits/src/core/ematch.rkt:73:24 substitute-e [107] 66.4% mk-enode! [125] 33.6% ----------------------------------------------------------------------------------- merge-egraph-nodes! [106] 100.0% [115] 626(0.3%) 0(0.0%) for-loop ...ional-posits/src/core/egraph.rkt:197:4 merge-egraph-nodes! [106] 100.0% ----------------------------------------------------------------------------------- merge-egraph-nodes! [106] 50.0% for-loop [98] 50.0% [116] 604(0.3%) 0(0.0%) dedup-children! ...posits/src/core/enode.rkt:198:0 loop [127] 100.0% ----------------------------------------------------------------------------------- for-loop [109] 100.0% [117] 304(0.1%) 304(0.1%) for-loop ...cts/racket/private/set-types.rkt:201:4 ----------------------------------------------------------------------------------- for-loop [103] 100.0% [118] 300(0.1%) 0(0.0%) foldr ....0/collects/racket/private/list.rkt:242:4 cp-2 [128] 100.0% ----------------------------------------------------------------------------------- merge-egraph-nodes! [106] 100.0% [119] 300(0.1%) 0(0.0%) enode-merge! ...al-posits/src/core/enode.rkt:127:0 adopt-enode! [129] 100.0% ----------------------------------------------------------------------------------- for-loop [93] 0.2% for-loop [111] 4.4% run [15] 47.7% [120] 218776(100.0%) 894(0.4%) ??? ...lects/racket/private/more-scheme.rkt:261:28 profile-thunk16 [1] 47.7% run-improve43 [2] 33.7% oracle-error [132] 5.4% prepare-points [105] 4.8% ??? [131] 2.7% get-final-combination [133] 2.2% errors [104] 0.7% ulp-difference [198] 0.5% eval-errors [163] 0.4% ordinary-value? [267] 0.4% ??? [231] 0.4% ??? [260] 0.3% eval-const-expr [172] 0.2% baseline-error [137] 0.2% loop [171] 0.1% errors-score [259] 0.1% for-loop [139] 0.1% ----------------------------------------------------------------------------------- loop [112] 100.0% [121] 19034(8.7%) 372(0.2%) loop ...erbie/optional-posits/src/points.rkt:102:2 ??? [131] 98.0% ----------------------------------------------------------------------------------- for-loop [79] 13.5% for-loop [110] 86.5% [122] 4670(2.1%) 904(0.4%) ??? ...ie/optional-posits/src/core/ematch.rkt:43:5 for-loop [134] 80.6% ----------------------------------------------------------------------------------- update-leader! [113] 100.0% [123] 3478(1.6%) 302(0.1%) for-loop ...ional-posits/src/core/egraph.rkt:216:6 hash-update! [145] 46.6% for-loop [135] 44.7% ----------------------------------------------------------------------------------- loop [112] 100.0% [124] 1902(0.9%) 652(0.3%) ??? ...herbie/optional-posits/src/points.rkt:127:2 ??? [231] 49.2% ??? [138] 16.5% ----------------------------------------------------------------------------------- for-loop [114] 40.1% for-loop [98] 59.9% [125] 1502(0.7%) 602(0.3%) mk-enode! ...ional-posits/src/core/egraph.rkt:97:0 new-enode [136] 59.9% ----------------------------------------------------------------------------------- loop [112] 100.0% [126] 648(0.3%) 0(0.0%) andmap ...0/collects/racket/private/map.rkt:102:13 ordinary-value? [267] 100.0% ----------------------------------------------------------------------------------- dedup-children! [116] 23.8% loop [127] 76.2% [127] 604(0.3%) 0(0.0%) loop ...racket-7.0/collects/racket/list.rkt:417:34 loop [127] 76.2% loop [279] 23.8% ----------------------------------------------------------------------------------- foldr [118] 100.0% [128] 300(0.1%) 0(0.0%) cp-2 .../racket-7.0/collects/racket/list.rkt:826:2 for-loop [140] 100.0% ----------------------------------------------------------------------------------- enode-merge! [119] 100.0% [129] 300(0.1%) 0(0.0%) adopt-enode! ...al-posits/src/core/enode.rkt:103:0 custom-set-union [199] 100.0% ----------------------------------------------------------------------------------- update-leader! [113] 100.0% [130] 298(0.1%) 298(0.1%) for-loop ...ional-posits/src/core/egraph.rkt:226:6 ----------------------------------------------------------------------------------- jloop [13] 1.1% loop [226] 1.7% for-loop [174] 2.4% loop [171] 11.6% ??? [187] 16.8% ??? [120] 32.0% loop [121] 34.3% [131] 54418(24.9%) 1572(0.7%) ??? ...erbie/optional-posits/src/programs.rkt:99:2 ??? [231] 43.2% ??? [142] 37.4% ??? [260] 16.5% ----------------------------------------------------------------------------------- ??? [120] 100.0% [132] 23434(10.7%) 0(0.0%) oracle-error ...tional-posits/src/points.rkt:207:0 for-loop [141] 100.0% ----------------------------------------------------------------------------------- ??? [120] 100.0% [133] 10662(4.9%) 0(0.0%) get-final-combination ...ts/src/mainloop.rkt:361:0 infer-splitpoints [143] 77.8% f46 [59] 18.9% ??? [147] 3.2% ----------------------------------------------------------------------------------- ??? [122] 100.0% [134] 3766(1.7%) 0(0.0%) for-loop ...tional-posits/src/core/ematch.rkt:44:7 constant? [223] 100.0% ----------------------------------------------------------------------------------- for-loop [123] 100.0% [135] 1554(0.7%) 0(0.0%) for-loop ...ional-posits/src/core/egraph.rkt:217:8 hash-update! [145] 100.0% ----------------------------------------------------------------------------------- mk-enode! [125] 100.0% [136] 900(0.4%) 0(0.0%) new-enode ...tional-posits/src/core/enode.rkt:95:0 type-of-enode-expr [146] 66.7% check-valid-enode5 [148] 33.3% ----------------------------------------------------------------------------------- ??? [120] 100.0% [137] 664(0.3%) 0(0.0%) baseline-error ...onal-posits/src/points.rkt:211:0 loop [144] 100.0% ----------------------------------------------------------------------------------- ??? [124] 100.0% [138] 314(0.1%) 314(0.1%) ??? ...ects/racket/contract/private/prop.rkt:519:4 ----------------------------------------------------------------------------------- ??? [120] 100.0% [139] 310(0.1%) 0(0.0%) for-loop ...e/optional-posits/src/sandbox.rkt:70:8 errors-score [259] 100.0% ----------------------------------------------------------------------------------- cp-2 [128] 100.0% [140] 300(0.1%) 300(0.1%) for-loop ...ket-7.0/collects/racket/list.rkt:827:4 ----------------------------------------------------------------------------------- oracle-error [132] 100.0% [141] 23434(10.7%) 0(0.0%) for-loop ...e/optional-posits/src/points.rkt:208:2 loop [171] 65.0% map [149] 35.0% ----------------------------------------------------------------------------------- ??? [131] 100.0% [142] 20368(9.3%) 1248(0.6%) ??? ...t-7.0/collects/racket/private/kw.rkt:592:14 ??? [231] 39.7% ??? [151] 39.1% double->posit16 [154] 9.1% ??? [155] 6.0% ----------------------------------------------------------------------------------- get-final-combination [133] 100.0% [143] 8300(3.8%) 0(0.0%) infer-splitpoints ...its/src/core/regimes.rkt:34:0 for-loop [150] 96.3% exprs-to-branch-on [157] 3.7% ----------------------------------------------------------------------------------- baseline-error [137] 14.5% for-loop [57] 85.5% [144] 4578(2.1%) 0(0.0%) loop .../racket-7.0/collects/racket/list.rkt:751:4 for-loop [152] 52.6% expression-cost [81] 32.9% ??? [156] 14.5% ----------------------------------------------------------------------------------- for-loop [135] 48.9% for-loop [123] 51.1% [145] 3176(1.5%) 0(0.0%) hash-update! ...cket/private/more-scheme.rkt:365:4 ??? [153] 100.0% ----------------------------------------------------------------------------------- new-enode [136] 100.0% [146] 600(0.3%) 298(0.1%) type-of-enode-expr ...sits/src/core/enode.rkt:67:0 value? [266] 50.3% ----------------------------------------------------------------------------------- get-final-combination [133] 100.0% [147] 344(0.2%) 0(0.0%) ??? .../optional-posits/src/core/simplify.rkt:22:0 ??? [39] 100.0% ----------------------------------------------------------------------------------- new-enode [136] 100.0% [148] 300(0.1%) 0(0.0%) check-valid-enode5 ...its/src/core/enode.rkt:207:0 value? [266] 100.0% ----------------------------------------------------------------------------------- taylor [28] 4.6% parse-loop30 [159] 7.6% f46 [59] 39.6% for-loop [141] 48.2% [149] 17018(7.8%) 0(0.0%) map ...t-7.0/collects/racket/private/map.rkt:35:13 loop [171] 30.4% f46 [59] 18.7% ??? [187] 17.8% parse-loop30 [159] 17.6% hash-ref! [196] 5.2% taylor-sqrt [36] 4.6% simplify-node [167] 2.7% loop [166] 2.5% simplify* [169] 0.6% ----------------------------------------------------------------------------------- infer-splitpoints [143] 100.0% [150] 7992(3.7%) 0(0.0%) for-loop ...ional-posits/src/core/regimes.rkt:46:6 option-on-expr [158] 100.0% ----------------------------------------------------------------------------------- ??? [142] 100.0% [151] 7960(3.6%) 1028(0.5%) ??? ...tract/private/arrow-higher-order.rkt:361:33 ival-sub [161] 44.1% ival-neg [164] 26.7% ival-div [168] 11.4% ival-sqrt [170] 4.9% ----------------------------------------------------------------------------------- for-loop [57] 29.0% argmin [66] 33.3% loop [144] 37.7% [152] 6398(2.9%) 302(0.1%) for-loop ...optional-posits/src/programs.rkt:158:2 table-ref [160] 95.3% ----------------------------------------------------------------------------------- hash-update! [145] 100.0% [153] 3176(1.5%) 300(0.1%) ??? .../optional-posits/src/core/egraph.rkt:219:24 for-loop [162] 90.6% ----------------------------------------------------------------------------------- ??? [142] 100.0% [154] 1852(0.8%) 0(0.0%) double->posit16 ...ftposit-rkt/softposit.rkt:248:0 get-ffi-obj* [165] 100.0% ----------------------------------------------------------------------------------- ??? [142] 100.0% [155] 1224(0.6%) 1224(0.6%) ??? ...ptional-posits/src/syntax/syntax.rkt:209:17 ----------------------------------------------------------------------------------- loop [144] 100.0% [156] 664(0.3%) 0(0.0%) ??? ...erbie/optional-posits/src/points.rkt:212:27 eval-errors [163] 100.0% ----------------------------------------------------------------------------------- infer-splitpoints [143] 100.0% [157] 308(0.1%) 0(0.0%) exprs-to-branch-on ...ts/src/core/regimes.rkt:58:0 loop [171] 100.0% ----------------------------------------------------------------------------------- for-loop [150] 100.0% [158] 7992(3.7%) 0(0.0%) option-on-expr ...osits/src/core/regimes.rkt:123:0 for-loop [173] 45.2% sort-context-on-expr [176] 27.3% err-lsts->split-indices [178] 19.7% ??? [231] 4.1% loop [171] 3.8% ----------------------------------------------------------------------------------- gather-additive-terms6 [181] 3.9% append-map [225] 4.0% parse-loop30 [159] 4.1% hash-ref! [196] 16.7% simplify [50] 23.5% map [149] 47.8% [159] 7756(3.5%) 650(0.3%) parse-loop30 ...s/racket/match/compiler.rkt:418:15 eval-const-expr [172] 54.5% map [149] 14.4% f46 [59] 8.4% parse-loop30 [159] 4.1% make-multiplication-node [183] 4.0% gather-additive-terms6 [181] 3.9% for-loop [182] 2.3% ----------------------------------------------------------------------------------- for-loop [152] 100.0% [160] 6096(2.8%) 3660(1.7%) table-ref ...e/optional-posits/src/common.rkt:41:0 for-loop [177] 30.1% dict? [184] 4.9% assoc-iterate-first [185] 4.9% ----------------------------------------------------------------------------------- ??? [151] 100.0% [161] 3510(1.6%) 0(0.0%) ival-sub ...ional-posits/src/biginterval.rkt:100:0 bfmul [246] 100.0% ----------------------------------------------------------------------------------- ??? [153] 100.0% [162] 2876(1.3%) 2552(1.2%) for-loop ...onal-posits/src/core/egraph.rkt:220:26 update-en-expr [204] 11.3% ----------------------------------------------------------------------------------- ??? [156] 26.2% ??? [120] 73.8% [163] 2534(1.2%) 0(0.0%) eval-errors ...ptional-posits/src/points.rkt:198:0 for-loop [174] 100.0% ----------------------------------------------------------------------------------- ??? [151] 100.0% [164] 2124(1.0%) 0(0.0%) ival-neg ...tional-posits/src/biginterval.rkt:90:0 bfneg [175] 100.0% ----------------------------------------------------------------------------------- double->posit16 [154] 100.0% [165] 1852(0.8%) 300(0.1%) get-ffi-obj* ...-7.0/collects/ffi/unsafe.rkt:209:2 get-ffi-lib9 [179] 83.8% ----------------------------------------------------------------------------------- map [149] 3.8% loop [166] 96.2% [166] 936(0.4%) 0(0.0%) loop ...-7.0/collects/racket/private/map.rkt:54:19 loop [166] 96.2% ??? [180] 3.8% ----------------------------------------------------------------------------------- simplify [50] 33.3% map [149] 66.7% [167] 918(0.4%) 0(0.0%) simplify-node ...l-posits/src/core/reduce.rkt:48:0 gather-additive-terms6 [181] 67.1% constant? [223] 32.9% ----------------------------------------------------------------------------------- ??? [151] 100.0% [168] 906(0.4%) 308(0.1%) ival-div ...ional-posits/src/biginterval.rkt:148:0 bfmul [246] 66.0% ----------------------------------------------------------------------------------- map [149] 47.6% simplify [50] 52.4% [169] 626(0.3%) 626(0.3%) simplify* ...ional-posits/src/core/reduce.rkt:31:0 ----------------------------------------------------------------------------------- ??? [151] 100.0% [170] 392(0.2%) 0(0.0%) ival-sqrt ...onal-posits/src/biginterval.rkt:198:0 bfneg [175] 100.0% ----------------------------------------------------------------------------------- option-on-expr [158] 0.0% ??? [39] 0.1% mk-enode-rec! [195] 1.1% for-loop [103] 1.2% taylor [28] 1.2% exprs-to-branch-on [157] 1.2% ??? [213] 1.3% ??? [120] 1.5% loop! [188] 2.3% map [149] 15.1% for-loop [141] 29.7% loop [171] 45.3% [171] 26312(12.0%) 1518(0.7%) loop ...-7.0/collects/racket/private/map.rkt:40:19 loop [171] 45.3% ??? [187] 27.7% ??? [131] 12.3% loop! [188] 2.3% ??? [231] 1.7% eval-prog [186] 1.5% hash-ref! [196] 1.3% all-critical-subexpressions [194] 1.2% mk-enode-rec! [195] 1.1% ulp-difference [198] 1.0% ordinary-value? [267] 0.4% ??? [260] 0.3% foldl [191] 0.0% ----------------------------------------------------------------------------------- ??? [120] 13.4% f46 [59] 35.6% parse-loop30 [159] 51.0% [172] 8898(4.1%) 0(0.0%) eval-const-expr ...l-posits/src/programs.rkt:102:0 eval-prog [186] 100.0% ----------------------------------------------------------------------------------- option-on-expr [158] 100.0% [173] 3616(1.7%) 0(0.0%) for-loop ...onal-posits/src/core/regimes.rkt:131:4 errors [104] 100.0% ----------------------------------------------------------------------------------- eval-errors [163] 100.0% [174] 2534(1.2%) 0(0.0%) for-loop ...e/optional-posits/src/points.rkt:200:2 ??? [131] 51.2% ulp-difference [198] 36.9% ??? [231] 11.8% ----------------------------------------------------------------------------------- ival-sqrt [170] 15.6% ival-neg [164] 84.4% [175] 2516(1.2%) 0(0.0%) bfneg ...-lib/math/private/bigfloat/mpfr.rkt:618:4 ??? [256] 86.6% new-mpfr [254] 13.4% ----------------------------------------------------------------------------------- option-on-expr [158] 100.0% [176] 2180(1.0%) 0(0.0%) sort-context-on-expr ...src/core/regimes.rkt:118:0 ??? [189] 100.0% ----------------------------------------------------------------------------------- table-ref [160] 100.0% [177] 1836(0.8%) 1836(0.8%) for-loop ...ie/optional-posits/src/common.rkt:43:4 ----------------------------------------------------------------------------------- option-on-expr [158] 100.0% [178] 1572(0.7%) 0(0.0%) err-lsts->split-indices .../core/regimes.rkt:254:0 loop [190] 100.0% ----------------------------------------------------------------------------------- get-ffi-obj* [165] 100.0% [179] 1552(0.7%) 646(0.3%) get-ffi-lib9 ...-7.0/collects/ffi/unsafe.rkt:121:0 get-cross-lib-search-dirs [192] 58.4% ----------------------------------------------------------------------------------- loop [166] 100.0% [180] 936(0.4%) 306(0.1%) ??? ...optional-posits/src/core/localize.rkt:50:36 ulp-difference [198] 67.3% ----------------------------------------------------------------------------------- parse-loop30 [159] 24.8% simplify-node [167] 75.2% [181] 616(0.3%) 306(0.1%) gather-additive-terms6 ...src/core/reduce.rkt:70:0 append-map [225] 50.3% parse-loop30 [159] 24.8% ----------------------------------------------------------------------------------- parse-loop30 [159] 100.0% [182] 360(0.2%) 360(0.2%) for-loop ...nal-posits/src/core/localize.rkt:45:21 ----------------------------------------------------------------------------------- parse-loop30 [159] 100.0% [183] 310(0.1%) 0(0.0%) make-multiplication-node .../core/reduce.rkt:234:0 make-multiplication-subnode [193] 100.0% ----------------------------------------------------------------------------------- table-ref [160] 100.0% [184] 300(0.1%) 300(0.1%) dict? ...ollects/racket/private/generic.rkt:146:11 ----------------------------------------------------------------------------------- table-ref [160] 100.0% [185] 300(0.1%) 300(0.1%) assoc-iterate-first ...cket/private/dict.rkt:166:0 ----------------------------------------------------------------------------------- loop [171] 3.5% prepare-points [105] 3.8% errors [104] 40.2% eval-const-expr [172] 52.4% [186] 16968(7.8%) 0(0.0%) eval-prog ...optional-posits/src/programs.rkt:83:0 temp68_2 [197] 77.8% inductor [200] 11.2% loop [279] 5.3% hash-ref! [196] 2.0% eval [209] 1.8% ----------------------------------------------------------------------------------- map [149] 20.7% loop [171] 79.3% [187] 14634(6.7%) 300(0.1%) ??? ...erbie/optional-posits/src/points.rkt:209:26 ??? [131] 62.6% ulp-difference [198] 12.6% ??? [231] 10.4% ordinary-value? [267] 8.3% ??? [260] 4.1% ----------------------------------------------------------------------------------- loop [171] 31.2% merge-egraph-nodes! [106] 68.8% [188] 4388(2.0%) 0(0.0%) loop! .../optional-posits/src/core/enode.rkt:190:2 custom-set-union [199] 46.1% loop [171] 31.2% set [203] 12.0% update-en-expr [204] 10.7% ----------------------------------------------------------------------------------- sort-context-on-expr [176] 100.0% [189] 2180(1.0%) 0(0.0%) ??? ...-7.0/collects/racket/private/sort.rkt:369:3 generic-sort/key [201] 86.2% loop [226] 13.8% ----------------------------------------------------------------------------------- err-lsts->split-indices [178] 100.0% [190] 1572(0.7%) 0(0.0%) loop ...optional-posits/src/core/regimes.rkt:305:4 for-loop [202] 100.0% ----------------------------------------------------------------------------------- loop [171] 19.4% ??? [5] 19.6% for-loop [25] 21.8% for-loop [103] 39.1% [191] 1538(0.7%) 0(0.0%) foldl ....0/collects/racket/private/list.rkt:229:4 merge2 [205] 58.5% ??? [206] 41.5% ----------------------------------------------------------------------------------- get-ffi-lib9 [179] 100.0% [192] 906(0.4%) 906(0.4%) get-cross-lib-search-dirs ...rivate/dirs.rkt:168:7 ----------------------------------------------------------------------------------- make-multiplication-node [183] 100.0% [193] 310(0.1%) 0(0.0%) make-multiplication-subnode ...re/reduce.rkt:244:0 for-loop [207] 100.0% ----------------------------------------------------------------------------------- loop [171] 100.0% [194] 308(0.1%) 0(0.0%) all-critical-subexpressions ...re/regimes.rkt:75:0 for-loop [208] 100.0% ----------------------------------------------------------------------------------- for-loop [54] 20.0% loop [171] 80.0% [195] 298(0.1%) 298(0.1%) mk-enode-rec! ...-posits/src/core/egraph.rkt:117:0 loop [171] 80.0% ----------------------------------------------------------------------------------- eval-prog [186] 0.3% ??? [8] 1.0% loop [171] 1.1% first-nonzero-exp [44] 1.8% for-loop [19] 2.3% localize-error [43] 2.6% taylor-sqrt [36] 2.7% map [149] 3.0% ??? [27] 3.5% for-loop [20] 3.5% ??? [212] 5.9% ??? [4] 7.9% ??? [231] 10.8% loop [17] 10.8% compile [92] 19.5% ??? [213] 22.1% [196] 23374(10.7%) 8216(3.8%) hash-ref! .../racket/private/more-scheme.rkt:376:2 ??? [213] 26.5% ??? [212] 16.7% simplify [50] 12.2% ??? [4] 9.5% parse-loop30 [159] 5.5% ??? [6] 4.8% ??? [7] 3.8% ??? [8] 1.7% taylor [28] 1.3% ----------------------------------------------------------------------------------- eval-prog [186] 100.0% [197] 13208(6.0%) 0(0.0%) temp68_2 (unknown source) compile16 [211] 100.0% ----------------------------------------------------------------------------------- loop [171] 8.0% ??? [180] 8.4% for-loop [174] 12.5% ??? [187] 24.5% ??? [120] 46.5% [198] 7488(3.4%) 1560(0.7%) ulp-difference ...tional-posits/src/float.rkt:46:0 infer-representation [214] 79.2% ----------------------------------------------------------------------------------- adopt-enode! [129] 12.1% loop! [188] 87.9% [199] 2484(1.1%) 1226(0.6%) custom-set-union ...et/private/set-types.rkt:168:0 for-loop [218] 37.5% for-loop [220] 13.1% ----------------------------------------------------------------------------------- eval-prog [186] 34.2% inductor [200] 65.8% [200] 1894(0.9%) 670(0.3%) inductor .../optional-posits/src/programs.rkt:88:4 inductor [200] 65.8% value? [266] 8.6% variable? [210] 4.0% ??? [231] 2.0% ----------------------------------------------------------------------------------- ??? [189] 100.0% [201] 1880(0.9%) 0(0.0%) generic-sort/key .../racket/private/sort.rkt:156:2 copying-mergesort [216] 84.0% loop [226] 16.0% ----------------------------------------------------------------------------------- loop [190] 100.0% [202] 1572(0.7%) 0(0.0%) for-loop ...onal-posits/src/core/regimes.rkt:270:4 for-loop [217] 100.0% ----------------------------------------------------------------------------------- loop! [188] 100.0% [203] 1268(0.6%) 1268(0.6%) set ...collects/racket/private/set-types.rkt:981:0 ----------------------------------------------------------------------------------- for-loop [162] 25.7% loop! [188] 74.3% [204] 1260(0.6%) 1260(0.6%) update-en-expr ...posits/src/core/egraph.rkt:205:0 ----------------------------------------------------------------------------------- foldl [191] 100.0% [205] 900(0.4%) 900(0.4%) merge2 ...optional-posits/src/core/ematch.rkt:24:0 ----------------------------------------------------------------------------------- foldl [191] 100.0% [206] 638(0.3%) 0(0.0%) ??? ...e/optional-posits/src/core/matcher.rkt:26:7 core651 [219] 100.0% ----------------------------------------------------------------------------------- make-multiplication-subnode [193] 100.0% [207] 310(0.1%) 0(0.0%) for-loop ...ional-posits/src/core/reduce.rkt:246:3 make-multiplication-subsubsubnode [221] 100.0% ----------------------------------------------------------------------------------- all-critical-subexpressions [194] 100.0% [208] 308(0.1%) 0(0.0%) for-loop ...ional-posits/src/core/regimes.rkt:82:2 free-variables [215] 100.0% ----------------------------------------------------------------------------------- eval-prog [186] 100.0% [209] 300(0.1%) 0(0.0%) eval (unknown source) add-ns-scopes [222] 100.0% ----------------------------------------------------------------------------------- substitute-e [107] 2.2% matcher [82] 2.4% pattern-match [38] 2.4% inductor [200] 4.2% match-e [97] 88.9% [210] 14170(6.5%) 2160(1.0%) variable? ...al-posits/src/syntax/syntax.rkt:724:0 for-loop [265] 46.1% value? [266] 30.2% ??? [40] 8.5% ----------------------------------------------------------------------------------- temp68_2 [197] 100.0% [211] 13208(6.0%) 0(0.0%) compile16 (unknown source) temp74_0 [224] 100.0% ----------------------------------------------------------------------------------- hash-ref! [196] 100.0% [212] 10738(4.9%) 0(0.0%) ??? ...e/optional-posits/src/core/taylor.rkt:68:15 ??? [231] 67.5% hash-ref! [196] 32.5% ----------------------------------------------------------------------------------- hash-ref! [196] 100.0% [213] 8526(3.9%) 1502(0.7%) ??? ...rbie/optional-posits/src/programs.rkt:142:5 hash-ref! [196] 87.0% loop [171] 3.9% ----------------------------------------------------------------------------------- ulp-difference [198] 100.0% [214] 5928(2.7%) 900(0.4%) infer-representation ...-posits/src/float.rkt:15:0 for-loop [276] 84.8% ----------------------------------------------------------------------------------- for-loop [208] 3.1% composed [70] 35.8% append-map [225] 61.0% [215] 2452(1.1%) 0(0.0%) free-variables ...nal-posits/src/programs.rkt:57:0 append-map [225] 73.3% constant? [223] 26.7% ----------------------------------------------------------------------------------- generic-sort/key [201] 45.9% copying-mergesort [216] 54.1% [216] 1580(0.7%) 0(0.0%) copying-mergesort ...racket/private/sort.rkt:129:8 copying-mergesort [216] 54.1% loop [226] 28.2% jloop [13] 17.6% ----------------------------------------------------------------------------------- for-loop [202] 100.0% [217] 1572(0.7%) 1572(0.7%) for-loop ...onal-posits/src/core/regimes.rkt:274:8 ----------------------------------------------------------------------------------- custom-set-union [199] 100.0% [218] 932(0.4%) 608(0.3%) for-loop ...cts/racket/private/set-types.rkt:174:3 for-loop [228] 34.8% ----------------------------------------------------------------------------------- ??? [206] 100.0% [219] 638(0.3%) 0(0.0%) core651 ...acket/contract/private/arr-i.rkt:918:19 un-dep/maybe-chaperone [227] 52.7% ??? [230] 47.3% ----------------------------------------------------------------------------------- custom-set-union [199] 100.0% [220] 326(0.1%) 326(0.1%) for-loop ...cts/racket/private/set-types.rkt:152:2 ----------------------------------------------------------------------------------- for-loop [207] 100.0% [221] 310(0.1%) 0(0.0%) make-multiplication-subsubsubnode ...uce.rkt:266:0 mterm->expr [229] 100.0% ----------------------------------------------------------------------------------- eval [209] 100.0% [222] 300(0.1%) 0(0.0%) add-ns-scopes (unknown source) gf [283] 100.0% ----------------------------------------------------------------------------------- pattern-substitute [77] 0.7% pattern-match [38] 0.7% simplify-node [167] 0.7% matcher [82] 2.2% for-loop [95] 2.9% substitute-e [107] 2.9% for-loop [108] 3.7% free-variables [215] 5.2% for-loop [134] 9.1% match-e [97] 71.9% [223] 41558(19.0%) 2768(1.3%) constant? ...al-posits/src/syntax/syntax.rkt:721:0 for-loop [265] 57.1% value? [266] 36.3% ----------------------------------------------------------------------------------- compile16 [211] 100.0% [224] 13208(6.0%) 0(0.0%) temp74_0 (unknown source) expand-single [232] 90.7% compile-top9 [233] 6.8% loop [279] 2.5% ----------------------------------------------------------------------------------- gather-additive-terms6 [181] 11.2% free-variables [215] 88.8% [225] 2762(1.3%) 300(0.1%) append-map ...t-7.0/collects/racket/list.rkt:586:2 free-variables [215] 77.9% parse-loop30 [159] 11.2% ----------------------------------------------------------------------------------- ??? [189] 23.6% generic-sort/key [201] 23.6% copying-mergesort [216] 52.8% [226] 1270(0.6%) 0(0.0%) loop ...7.0/collects/racket/private/sort.rkt:96:12 ??? [131] 73.7% ??? [231] 26.3% ----------------------------------------------------------------------------------- core651 [219] 100.0% [227] 336(0.2%) 0(0.0%) un-dep/maybe-chaperone ...private/arr-i.rkt:1097:2 ??? [234] 100.0% ----------------------------------------------------------------------------------- for-loop [218] 100.0% [228] 324(0.1%) 324(0.1%) for-loop ...cts/racket/private/set-types.rkt:178:5 ----------------------------------------------------------------------------------- make-multiplication-subsubsubnode [221] 100.0% [229] 310(0.1%) 0(0.0%) mterm->expr ...al-posits/src/core/reduce.rkt:274:0 type-of [235] 100.0% ----------------------------------------------------------------------------------- core651 [219] 100.0% [230] 302(0.1%) 302(0.1%) ??? ...s/racket/contract/private/arr-i.rkt:1249:27 ----------------------------------------------------------------------------------- inductor [200] 0.6% for-loop [174] 0.6% option-on-expr [158] 0.6% loop [226] 0.6% loop [171] 1.7% ??? [124] 1.7% ??? [187] 2.8% ??? [52] 4.3% ??? [120] 4.7% ??? [212] 6.6% location-do [237] 9.0% for-loop [58] 9.0% ??? [142] 15.0% ??? [131] 42.8% [231] 53826(24.6%) 898(0.4%) ??? ...tract/private/arrow-higher-order.rkt:357:33 ->flonum [236] 48.6% ival-mult [239] 15.0% location-do [237] 9.0% approximate9 [3] 9.0% hash-ref! [196] 6.6% best-alt [240] 4.3% mk-ival [241] 3.7% ??? [243] 0.6% ----------------------------------------------------------------------------------- temp74_0 [224] 100.0% [232] 11982(5.5%) 0(0.0%) expand-single (unknown source) expand-capturing-lifts [238] 100.0% ----------------------------------------------------------------------------------- temp74_0 [224] 100.0% [233] 902(0.4%) 0(0.0%) compile-top9 (unknown source) compile-forms31 [242] 100.0% ----------------------------------------------------------------------------------- un-dep/maybe-chaperone [227] 100.0% [234] 336(0.2%) 336(0.2%) ??? ...ntract/private/arrow-higher-order.rkt:554:2 ----------------------------------------------------------------------------------- mterm->expr [229] 100.0% [235] 310(0.1%) 310(0.1%) type-of ...optional-posits/src/type-check.rkt:34:0 ----------------------------------------------------------------------------------- ??? [231] 100.0% [236] 26476(12.1%) 1808(0.8%) ->flonum ...ie/optional-posits/src/float.rkt:149:0 ??? [244] 93.2% ----------------------------------------------------------------------------------- location-do [237] 43.7% ??? [231] 56.3% [237] 13258(6.1%) 0(0.0%) location-do ...tional-posits/src/programs.rkt:64:0 ??? [231] 56.3% location-do [237] 43.7% ----------------------------------------------------------------------------------- loop [279] 9.3% expand-single [232] 90.7% [238] 13204(6.0%) 0(0.0%) expand-capturing-lifts (unknown source) lambda-clause-expander [245] 88.5% dispatch-transformer41 [247] 6.8% loop [279] 2.5% expand-id-application-form17 [284] 2.3% ----------------------------------------------------------------------------------- ??? [231] 100.0% [239] 8084(3.7%) 2502(1.1%) ival-mult ...onal-posits/src/biginterval.rkt:112:0 bfmul [246] 69.0% ----------------------------------------------------------------------------------- ??? [231] 100.0% [240] 2828(1.3%) 0(0.0%) best-alt ...optional-posits/src/mainloop.rkt:106:0 loop [249] 67.8% argmins [250] 32.2% ----------------------------------------------------------------------------------- ??? [231] 100.0% [241] 1996(0.9%) 0(0.0%) mk-ival ...ptional-posits/src/biginterval.rkt:57:0 bf [248] 100.0% ----------------------------------------------------------------------------------- compile-top9 [233] 100.0% [242] 902(0.4%) 0(0.0%) compile-forms31 (unknown source) for-loop [261] 66.7% serialize-phase-to-link-module-uses [252] 33.3% ----------------------------------------------------------------------------------- for-loop [251] 50.0% ??? [231] 50.0% [243] 324(0.1%) 0(0.0%) ??? ...cts/racket/contract/private/list.rkt:209:10 for-loop [251] 100.0% ----------------------------------------------------------------------------------- ->flonum [236] 100.0% [244] 24668(11.3%) 2162(1.0%) ??? ...s/herbie/optional-posits/src/float.rkt:23:2 for-loop [253] 91.2% ----------------------------------------------------------------------------------- expand-capturing-lifts [238] 100.0% [245] 11682(5.3%) 0(0.0%) lambda-clause-expander (unknown source) finish-bodys [255] 74.8% loop [279] 22.4% expand-body7 [268] 2.8% ----------------------------------------------------------------------------------- ival-div [168] 6.2% ival-sub [161] 36.2% ival-mult [239] 57.6% [246] 9690(4.4%) 288(0.1%) bfmul ...-lib/math/private/bigfloat/mpfr.rkt:821:4 new-mpfr [254] 74.1% ??? [256] 22.9% ----------------------------------------------------------------------------------- expand-capturing-lifts [238] 22.2% for-loop [261] 29.6% loop [279] 48.2% [247] 4058(1.9%) 0(0.0%) dispatch-transformer41 (unknown source) apply-transformer52 [257] 100.0% ----------------------------------------------------------------------------------- mk-ival [241] 100.0% [248] 1996(0.9%) 0(0.0%) bf ...ath-lib/math/private/bigfloat/mpfr.rkt:601:2 new-mpfr [254] 85.5% ??? [256] 14.5% ----------------------------------------------------------------------------------- best-alt [240] 100.0% [249] 1918(0.9%) 0(0.0%) loop ...herbie/optional-posits/src/common.rkt:93:2 ??? [258] 68.6% errors-score [259] 31.4% ----------------------------------------------------------------------------------- best-alt [240] 100.0% [250] 910(0.4%) 0(0.0%) argmins ...bie/optional-posits/src/common.rkt:92:0 ??? [258] 100.0% ----------------------------------------------------------------------------------- ??? [243] 100.0% [251] 324(0.1%) 0(0.0%) for-loop ...acket/contract/private/list.rkt:212:15 ??? [243] 50.0% ??? [260] 50.0% ----------------------------------------------------------------------------------- compile-forms31 [242] 100.0% [252] 300(0.1%) 300(0.1%) serialize-phase-to-link-module-uses ...own source) ----------------------------------------------------------------------------------- ??? [244] 100.0% [253] 22506(10.3%) 17484(8.0%) for-loop ...bie/optional-posits/src/float.rkt:24:5 ??? [278] 11.2% return/no-unsupplied [281] 4.1% keyword-apply [280] 4.0% ??? [260] 1.5% ??? [282] 1.5% ----------------------------------------------------------------------------------- bfneg [175] 3.6% bf [248] 18.5% bfmul [246] 77.9% [254] 9224(4.2%) 9224(4.2%) new-mpfr ...b/math/private/bigfloat/mpfr.rkt:335:0 ----------------------------------------------------------------------------------- lambda-clause-expander [245] 34.8% for-loop [261] 65.2% [255] 8738(4.0%) 0(0.0%) finish-bodys (unknown source) for-loop [261] 100.0% ----------------------------------------------------------------------------------- bf [248] 6.2% bfneg [175] 46.5% bfmul [246] 47.3% [256] 4690(2.1%) 4690(2.1%) ??? /opt/racket-7.0/collects/ffi/unsafe.rkt:898:4 ----------------------------------------------------------------------------------- dispatch-transformer41 [247] 100.0% [257] 4058(1.9%) 986(0.5%) apply-transformer52 (unknown source) apply-transformer-in-context [263] 31.3% loop [279] 29.6% apply-post-expansion [264] 14.8% ----------------------------------------------------------------------------------- argmins [250] 40.9% loop [249] 59.1% [258] 2226(1.0%) 0(0.0%) ??? ...bie/optional-posits/src/mainloop.rkt:108:19 errors [104] 100.0% ----------------------------------------------------------------------------------- for-loop [139] 20.6% ??? [120] 39.4% loop [249] 40.0% [259] 1504(0.7%) 0(0.0%) errors-score ...tional-posits/src/points.rkt:215:0 loop [262] 100.0% ----------------------------------------------------------------------------------- jloop [13] 2.3% ??? [40] 2.4% for-loop [251] 2.5% loop [171] 2.6% for-loop [253] 2.7% ??? [187] 4.6% ??? [120] 14.3% ??? [131] 68.7% [260] 13060(6.0%) 1258(0.6%) ??? ...ects/racket/contract/private/guts.rkt:746:8 for-loop [265] 49.4% value? [266] 40.9% ----------------------------------------------------------------------------------- fallback-loop [29] 3.6% compile-forms31 [242] 6.4% for-loop [261] 18.1% finish-bodys [255] 71.9% [261] 9340(4.3%) 2728(1.2%) for-loop (unknown source) finish-bodys [255] 48.8% for-loop [261] 18.1% loop [279] 6.2% expand-implicit [11] 3.9% expand-body7 [268] 3.7% syntax-e [9] 2.6% expand-identifier [10] 2.4% dispatch-transformer41 [247] 2.2% ----------------------------------------------------------------------------------- errors-score [259] 100.0% [262] 1504(0.7%) 0(0.0%) loop .../racket-7.0/collects/racket/list.rkt:559:2 ordinary-value? [267] 100.0% ----------------------------------------------------------------------------------- apply-transformer52 [257] 100.0% [263] 1270(0.6%) 0(0.0%) apply-transformer-in-context (unknown source) go [269] 26.5% ??? [270] 26.3% parse-app [272] 23.6% parse-lambda [271] 23.6% ----------------------------------------------------------------------------------- apply-transformer52 [257] 100.0% [264] 600(0.3%) 0(0.0%) apply-post-expansion (unknown source) gf [283] 100.0% ----------------------------------------------------------------------------------- ??? [260] 17.6% variable? [210] 17.8% constant? [223] 64.6% [265] 36692(16.8%) 29030(13.3%) for-loop ...onal-posits/src/syntax/types.rkt:18:19 ??? [278] 13.3% keyword-apply [280] 7.6% ----------------------------------------------------------------------------------- check-valid-enode5 [148] 1.2% type-of-enode-expr [146] 1.2% inductor [200] 1.3% variable? [210] 16.7% ??? [260] 20.9% constant? [223] 58.8% [266] 25630(11.7%) 20990(9.6%) value? ...ptional-posits/src/syntax/types.rkt:18:0 ??? [278] 14.6% keyword-apply [280] 3.5% ----------------------------------------------------------------------------------- loop [171] 5.1% loop [112] 5.8% andmap [126] 9.8% ??? [187] 18.4% loop [262] 22.8% ??? [120] 38.2% [267] 6604(3.0%) 324(0.1%) ordinary-value? ...ional-posits/src/float.rkt:80:0 special-value? [273] 95.1% ----------------------------------------------------------------------------------- lambda-clause-expander [245] 34.5% for-loop [261] 65.5% [268] 956(0.4%) 956(0.4%) expand-body7 (unknown source) ----------------------------------------------------------------------------------- apply-transformer-in-context [263] 100.0% [269] 336(0.2%) 0(0.0%) go .../collects/racket/private/qq-and-or.rkt:50:20 syntax->list [277] 100.0% ----------------------------------------------------------------------------------- apply-transformer-in-context [263] 100.0% [270] 334(0.2%) 0(0.0%) ??? ...collects/racket/private/qq-and-or.rkt:155:9 ??? [274] 100.0% ----------------------------------------------------------------------------------- apply-transformer-in-context [263] 100.0% [271] 300(0.1%) 300(0.1%) parse-lambda ...llects/racket/private/kw.rkt:585:2 ----------------------------------------------------------------------------------- apply-transformer-in-context [263] 100.0% [272] 300(0.1%) 0(0.0%) parse-app ...collects/racket/private/kw.rkt:1105:2 datum->syntax6 [275] 100.0% ----------------------------------------------------------------------------------- ordinary-value? [267] 100.0% [273] 6280(2.9%) 300(0.1%) special-value? ...tional-posits/src/float.rkt:76:0 for-loop [276] 95.2% ----------------------------------------------------------------------------------- ??? [270] 100.0% [274] 334(0.2%) 0(0.0%) ??? ...ollects/racket/private/qq-and-or.rkt:164:21 syntax->list [277] 100.0% ----------------------------------------------------------------------------------- parse-app [272] 100.0% [275] 300(0.1%) 300(0.1%) datum->syntax6 (unknown source) ----------------------------------------------------------------------------------- infer-representation [214] 45.7% special-value? [273] 54.3% [276] 11008(5.0%) 7822(3.6%) for-loop ...bie/optional-posits/src/float.rkt:17:3 return/no-unsupplied [281] 11.2% ??? [278] 6.4% ??? [282] 5.8% keyword-apply [280] 5.6% ----------------------------------------------------------------------------------- ??? [274] 49.9% go [269] 50.1% [277] 670(0.3%) 0(0.0%) syntax->list (unknown source) loop [279] 100.0% ----------------------------------------------------------------------------------- for-loop [276] 6.0% for-loop [253] 21.3% value? [266] 31.6% for-loop [265] 41.1% [278] 11828(5.4%) 11828(5.4%) ??? ...-7.0/collects/racket/lazy-require.rkt:106:6 ----------------------------------------------------------------------------------- expand-capturing-lifts [238] 1.9% temp74_0 [224] 1.9% syntax->list [277] 3.3% eval-prog [186] 4.5% loop [279] 5.2% gf [283] 6.7% loop [127] 7.2% for-loop [261] 10.3% apply-transformer52 [257] 10.7% syntax-e/no-taint [22] 23.8% lambda-clause-expander [245] 24.6% [279] 8438(3.9%) 2160(1.0%) loop (unknown source) gf [283] 28.8% dispatch-transformer41 [247] 16.8% expand-id-application-form17 [284] 13.6% core-form-sym [285] 8.9% expand-capturing-lifts [238] 6.4% loop [279] 5.2% expand-identifier [10] 3.6% syntax-e [9] 3.1% ----------------------------------------------------------------------------------- for-loop [276] 11.7% for-loop [253] 17.3% value? [266] 17.3% for-loop [265] 53.7% [280] 5218(2.4%) 5218(2.4%) keyword-apply ...lects/racket/private/kw.rkt:421:2 ----------------------------------------------------------------------------------- for-loop [253] 29.4% flag-set? [101] 30.9% for-loop [276] 39.7% [281] 3106(1.4%) 2472(1.1%) return/no-unsupplied ...ct/private/arr-i.rkt:534:0 filter [286] 20.4% ----------------------------------------------------------------------------------- for-loop [253] 34.6% for-loop [276] 65.4% [282] 970(0.4%) 970(0.4%) ??? ...s/racket/contract/private/arr-i.rkt:1252:29 ----------------------------------------------------------------------------------- apply-post-expansion [264] 3.2% add-ns-scopes [222] 4.4% loop [279] 92.4% [283] 3406(1.6%) 602(0.3%) gf (unknown source) propagation-apply [287] 37.5% loop [279] 23.5% propagation-merge [289] 17.6% propagation-apply-shifted [290] 9.6% syntax-e/no-taint [22] 1.5% ----------------------------------------------------------------------------------- expand-capturing-lifts [238] 18.6% loop [279] 81.4% [284] 1606(0.7%) 0(0.0%) expand-id-application-form17 (unknown source) binding-lookup50 [288] 41.0% resolve+shift28 [21] 38.7% syntax-e/no-taint [22] 20.3% ----------------------------------------------------------------------------------- loop [279] 100.0% [285] 900(0.4%) 300(0.1%) core-form-sym (unknown source) resolve+shift28 [21] 66.7% ----------------------------------------------------------------------------------- return/no-unsupplied [281] 100.0% [286] 634(0.3%) 634(0.3%) filter ...0/collects/racket/private/list.rkt:256:2 ----------------------------------------------------------------------------------- gf [283] 100.0% [287] 1278(0.6%) 1278(0.6%) propagation-apply (unknown source) ----------------------------------------------------------------------------------- expand-implicit [11] 33.3% expand-id-application-form17 [284] 66.7% [288] 986(0.5%) 986(0.5%) binding-lookup50 (unknown source) ----------------------------------------------------------------------------------- gf [283] 100.0% [289] 600(0.3%) 600(0.3%) propagation-merge (unknown source) ----------------------------------------------------------------------------------- gf [283] 100.0% [290] 326(0.1%) 326(0.1%) propagation-apply-shifted (unknown source) -----------------------------------------------------------------------------------