Profiling results ----------------- Total cpu time observed: 7562ms (out of 7628ms) Number of samples taken: 36 (once every 210ms) ======================================================================== Caller Idx Total Self Name+src Local% ms(pct) ms(pct) Callee ======================================================================== [1] 7562(100.0%) 0(0.0%) ??? ...lects/racket/private/more-scheme.rkt:261:28 profile-thunk16 [8] 100.0% ------------------------------------------------------------------------ ??? [88] 100.0% [2] 1112(14.7%) 0(0.0%) approximate9 ...ie/master/src/core/taylor.rkt:11:0 for-loop [9] 40.8% loop [10] 39.7% taylor-invert [12] 19.4% ------------------------------------------------------------------------ hash-ref! [74] 100.0% [3] 416(5.5%) 0(0.0%) ??? ...es/herbie/master/src/core/taylor.rkt:300:23 for-loop [11] 100.0% ------------------------------------------------------------------------ hash-ref! [74] 100.0% [4] 216(2.9%) 0(0.0%) f61 (unknown source) eval-const-expr [61] 100.0% ------------------------------------------------------------------------ hash-ref! [74] 100.0% [5] 216(2.9%) 0(0.0%) ??? ...es/herbie/master/src/core/taylor.rkt:290:26 for-loop [13] 100.0% ------------------------------------------------------------------------ for-loop [107] 100.0% [6] 202(2.7%) 0(0.0%) syntax-e (unknown source) syntax-e/no-taint [14] 100.0% ------------------------------------------------------------------------ hash-ref! [74] 100.0% [7] 200(2.6%) 0(0.0%) ??? ...htlies/herbie/master/src/programs.rkt:178:5 loop [16] 100.0% ------------------------------------------------------------------------ ??? [1] 100.0% [8] 7562(100.0%) 0(0.0%) profile-thunk16 ...e/pkgs/profile-lib/main.rkt:9:0 run [15] 100.0% ------------------------------------------------------------------------ approximate9 [2] 100.0% [9] 454(6.0%) 0(0.0%) for-loop ...erbie/master/src/core/taylor.rkt:29:18 taylor [17] 100.0% ------------------------------------------------------------------------ approximate9 [2] 100.0% [10] 442(5.8%) 0(0.0%) loop ...ies/herbie/master/src/core/taylor.rkt:86:4 hash-ref! [74] 100.0% ------------------------------------------------------------------------ ??? [3] 100.0% [11] 416(5.5%) 0(0.0%) for-loop ...rbie/master/src/core/taylor.rkt:303:27 hash-ref! [74] 100.0% ------------------------------------------------------------------------ approximate9 [2] 100.0% [12] 216(2.9%) 0(0.0%) taylor-invert .../master/src/core/taylor.rkt:317:0 first-nonzero-exp [26] 100.0% ------------------------------------------------------------------------ ??? [5] 100.0% [13] 216(2.9%) 0(0.0%) for-loop ...rbie/master/src/core/taylor.rkt:290:52 hash-ref! [74] 100.0% ------------------------------------------------------------------------ syntax-e [6] 100.0% [14] 202(2.7%) 0(0.0%) syntax-e/no-taint (unknown source) loop [16] 100.0% ------------------------------------------------------------------------ profile-thunk16 [8] 100.0% [15] 7562(100.0%) 0(0.0%) run ...et-7.5/share/pkgs/profile-lib/main.rkt:39:2 .../more-scheme.rkt:261:28 [18] 100.0% ------------------------------------------------------------------------ ??? [7] 32.4% syntax-e/no-taint [14] 32.7% for-loop [107] 35.0% [16] 618(8.2%) 200(2.6%) loop (unknown source) expand-id-application-form17 [20] 35.0% gf [21] 32.7% ------------------------------------------------------------------------ taylor [17] 28.0% for-loop [9] 72.0% [17] 454(6.0%) 0(0.0%) taylor .../herbie/master/src/core/taylor.rkt:169:0 taylor-quotient [19] 44.1% taylor [17] 28.0% map [42] 28.0% ------------------------------------------------------------------------ for-loop [89] 6.8% run [15] 93.2% [18] 7562(100.0%) 624(8.3%) .../more-scheme.rkt:261:28 (unknown source) run-improve47 [22] 55.1% prepare-points-intervals [23] 19.1% oracle-error [27] 5.4% get-final-combination [25] 4.4% eval-errors [30] 2.6% ??? [31] 2.6% errors [79] 1.3% ??? [88] 1.3% ulp-difference [32] 1.3% ??? [33] 1.3% ------------------------------------------------------------------------ taylor [17] 44.1% map [42] 55.9% [19] 454(6.0%) 0(0.0%) taylor-quotient ...aster/src/core/taylor.rkt:333:0 f40 [24] 55.9% first-nonzero-exp [26] 44.1% ------------------------------------------------------------------------ loop [16] 100.0% [20] 216(2.9%) 0(0.0%) expand-id-application-form17 (unknown source) resolve+shift28 [28] 100.0% ------------------------------------------------------------------------ loop [16] 100.0% [21] 202(2.7%) 0(0.0%) gf (unknown source) cache-or-reuse-set [29] 100.0% ------------------------------------------------------------------------ .../more-scheme.rkt:261:28 [18] 100.0% [22] 4464(59.0%) 0(0.0%) run-improve47 ...bie/master/src/mainloop.rkt:346:0 for-loop [34] 95.4% simplify! [49] 4.6% ------------------------------------------------------------------------ .../more-scheme.rkt:261:28 [18] 100.0% [23] 1448(19.1%) 0(0.0%) prepare-points-intervals ...r/src/points.rkt:120:0 loop [35] 100.0% ------------------------------------------------------------------------ map [42] 14.9% taylor-quotient [19] 36.5% hash-ref! [74] 48.6% [24] 696(9.2%) 0(0.0%) f40 (unknown source) map [42] 100.0% ------------------------------------------------------------------------ .../more-scheme.rkt:261:28 [18] 100.0% [25] 440(5.8%) 0(0.0%) get-final-combination ...er/src/mainloop.rkt:371:0 infer-splitpoints [36] 100.0% ------------------------------------------------------------------------ taylor-quotient [19] 48.1% taylor-invert [12] 51.9% [26] 416(5.5%) 0(0.0%) first-nonzero-exp ...ter/src/core/taylor.rkt:265:0 hash-ref! [74] 100.0% ------------------------------------------------------------------------ .../more-scheme.rkt:261:28 [18] 100.0% [27] 408(5.4%) 0(0.0%) oracle-error ...herbie/master/src/points.rkt:177:0 for-loop [37] 100.0% ------------------------------------------------------------------------ expand-id-application-form17 [20]100.0% [28] 216(2.9%) 0(0.0%) resolve+shift28 (unknown source) fallback-loop [38] 100.0% ------------------------------------------------------------------------ gf [21] 100.0% [29] 202(2.7%) 202(2.7%) cache-or-reuse-set (unknown source) ------------------------------------------------------------------------ .../more-scheme.rkt:261:28 [18] 100.0% [30] 200(2.6%) 0(0.0%) eval-errors .../herbie/master/src/points.rkt:168:0 for-loop [39] 100.0% ------------------------------------------------------------------------ .../more-scheme.rkt:261:28 [18] 100.0% [31] 200(2.6%) 0(0.0%) ??? ...tract/private/arrow-higher-order.rkt:379:33 ??? [40] 100.0% ------------------------------------------------------------------------ .../more-scheme.rkt:261:28 [18] 100.0% [32] 200(2.6%) 0(0.0%) ulp-difference ...herbie/master/src/float.rkt:19:0 ??? [88] 100.0% ------------------------------------------------------------------------ .../more-scheme.rkt:261:28 [18] 100.0% [33] 198(2.6%) 198(2.6%) ??? .../herbie/master/src/syntax/syntax.rkt:214:17 ------------------------------------------------------------------------ run-improve47 [22] 100.0% [34] 4260(56.3%) 0(0.0%) for-loop ...s/herbie/master/src/mainloop.rkt:365:4 run-iter! [41] 100.0% ------------------------------------------------------------------------ prepare-points-intervals [23] 100.0% [35] 1448(19.1%) 0(0.0%) loop ...ghtlies/herbie/master/src/points.rkt:132:4 loop [43] 72.0% ??? [45] 28.0% ------------------------------------------------------------------------ get-final-combination [25] 100.0% [36] 440(5.8%) 0(0.0%) infer-splitpoints ...ter/src/core/regimes.rkt:33:0 for-loop [44] 100.0% ------------------------------------------------------------------------ oracle-error [27] 100.0% [37] 408(5.4%) 0(0.0%) for-loop ...ies/herbie/master/src/points.rkt:178:2 map [42] 100.0% ------------------------------------------------------------------------ resolve+shift28 [28] 100.0% [38] 216(2.9%) 0(0.0%) fallback-loop (unknown source) for-loop [107] 100.0% ------------------------------------------------------------------------ eval-errors [30] 100.0% [39] 200(2.6%) 0(0.0%) for-loop ...ies/herbie/master/src/points.rkt:170:2 ??? [46] 100.0% ------------------------------------------------------------------------ for-loop [47] 50.0% ??? [31] 50.0% [40] 200(2.6%) 200(2.6%) ??? ...cts/racket/contract/private/list.rkt:209:10 for-loop [47] 50.0% ------------------------------------------------------------------------ for-loop [34] 100.0% [41] 4260(56.3%) 0(0.0%) run-iter! .../herbie/master/src/mainloop.rkt:327:0 finalize-iter! [48] 37.8% simplify! [49] 26.6% gen-series! [50] 26.1% localize! [56] 9.4% ------------------------------------------------------------------------ taylor [17] 9.7% parse-loop15 [83] 15.3% for-loop [37] 31.3% f40 [24] 43.6% [42] 1304(17.2%) 0(0.0%) map ...t-7.5/collects/racket/private/map.rkt:35:13 ??? [54] 31.3% parse-loop74 [51] 25.9% hash-ref! [74] 15.3% taylor-quotient [19] 9.7% simplify* [57] 9.7% f40 [24] 8.0% ------------------------------------------------------------------------ loop [35] 100.0% [43] 1042(13.8%) 224(3.0%) loop ...ightlies/herbie/master/src/points.rkt:79:2 real->precision [52] 59.3% ??? [88] 19.2% ------------------------------------------------------------------------ infer-splitpoints [36] 100.0% [44] 440(5.8%) 0(0.0%) for-loop ...erbie/master/src/core/regimes.rkt:45:6 option-on-expr [53] 100.0% ------------------------------------------------------------------------ loop [35] 100.0% [45] 406(5.4%) 0(0.0%) ??? ...ightlies/herbie/master/src/points.rkt:113:6 sample-multi-bounded [55] 100.0% ------------------------------------------------------------------------ for-loop [39] 100.0% [46] 200(2.6%) 200(2.6%) ??? ...cket-7.5/collects/racket/function.rkt:93:12 ------------------------------------------------------------------------ ??? [40] 100.0% [47] 200(2.6%) 0(0.0%) for-loop ...acket/contract/private/list.rkt:212:15 ??? [40] 100.0% ------------------------------------------------------------------------ run-iter! [41] 100.0% [48] 1612(21.3%) 0(0.0%) finalize-iter! ...ie/master/src/mainloop.rkt:278:0 ??? [58] 100.0% ------------------------------------------------------------------------ run-improve47 [22] 15.2% run-iter! [41] 84.8% [49] 1338(17.7%) 0(0.0%) simplify! .../herbie/master/src/mainloop.rkt:224:0 ??? [59] 100.0% ------------------------------------------------------------------------ run-iter! [41] 100.0% [50] 1112(14.7%) 0(0.0%) gen-series! ...erbie/master/src/mainloop.rkt:160:0 for-loop [60] 100.0% ------------------------------------------------------------------------ hash-ref! [74] 31.2% map [42] 68.8% [51] 642(8.5%) 0(0.0%) parse-loop74 (unknown source) eval-const-expr [61] 100.0% ------------------------------------------------------------------------ loop [43] 100.0% [52] 618(8.2%) 0(0.0%) real->precision ...e/master/src/programs.rkt:94:11 ??? [88] 100.0% ------------------------------------------------------------------------ for-loop [44] 100.0% [53] 440(5.8%) 0(0.0%) option-on-expr ...aster/src/core/regimes.rkt:124:0 for-loop [62] 100.0% ------------------------------------------------------------------------ map [42] 100.0% [54] 408(5.4%) 408(5.4%) ??? ...ghtlies/herbie/master/src/points.rkt:179:26 ------------------------------------------------------------------------ ??? [45] 100.0% [55] 406(5.4%) 0(0.0%) sample-multi-bounded ...master/src/points.rkt:14:0 for-loop [65] 50.7% random-ranges [66] 49.3% ------------------------------------------------------------------------ run-iter! [41] 100.0% [56] 402(5.3%) 0(0.0%) localize! .../herbie/master/src/mainloop.rkt:127:0 localize-error [63] 100.0% ------------------------------------------------------------------------ map [42] 100.0% [57] 254(3.4%) 0(0.0%) simplify* ...erbie/master/src/core/reduce.rkt:29:0 return/no-unsupplied [64] 100.0% ------------------------------------------------------------------------ finalize-iter! [48] 100.0% [58] 1612(21.3%) 0(0.0%) ??? ...contract/private/arrow-val-first.rkt:486:18 for-loop [67] 100.0% ------------------------------------------------------------------------ simplify! [49] 100.0% [59] 1338(17.7%) 0(0.0%) ??? ...es/herbie/master/src/core/simplify.rkt:42:0 egraph-run [68] 100.0% ------------------------------------------------------------------------ gen-series! [50] 100.0% [60] 1112(14.7%) 0(0.0%) for-loop ...s/herbie/master/src/mainloop.rkt:167:7 taylor-alt [69] 100.0% ------------------------------------------------------------------------ f61 [4] 25.2% parse-loop74 [51] 74.8% [61] 858(11.3%) 0(0.0%) eval-const-expr ...e/master/src/programs.rkt:120:0 temp85_0 [91] 76.7% eval-prog [72] 23.3% ------------------------------------------------------------------------ option-on-expr [53] 100.0% [62] 440(5.8%) 0(0.0%) for-loop ...rbie/master/src/core/regimes.rkt:135:4 errors [79] 100.0% ------------------------------------------------------------------------ localize! [56] 100.0% [63] 402(5.3%) 0(0.0%) localize-error ...aster/src/core/localize.rkt:58:0 hash-ref! [74] 100.0% ------------------------------------------------------------------------ simplify* [57] 100.0% [64] 254(3.4%) 0(0.0%) return/no-unsupplied ...ct/private/arr-i.rkt:566:0 filter [70] 100.0% ------------------------------------------------------------------------ sample-multi-bounded [55] 100.0% [65] 206(2.7%) 206(2.7%) for-loop ...lies/herbie/master/src/points.rkt:20:4 ------------------------------------------------------------------------ sample-multi-bounded [55] 100.0% [66] 200(2.6%) 0(0.0%) random-ranges ...erbie/master/src/common.rkt:164:0 cons/c [71] 100.0% ------------------------------------------------------------------------ ??? [58] 100.0% [67] 1612(21.3%) 0(0.0%) for-loop ...bie/master/src/core/alt-table.rkt:46:2 atab-add-altn [75] 75.3% loop [77] 12.4% errors [79] 12.3% ------------------------------------------------------------------------ ??? [59] 100.0% [68] 1338(17.7%) 0(0.0%) egraph-run .../pkgs/egg-herbie-linux/main.rkt:49:0 egraph-add-exprs [73] 100.0% ------------------------------------------------------------------------ for-loop [60] 100.0% [69] 1112(14.7%) 0(0.0%) taylor-alt ...herbie/master/src/mainloop.rkt:146:0 for-loop [76] 100.0% ------------------------------------------------------------------------ return/no-unsupplied [64] 100.0% [70] 254(3.4%) 254(3.4%) filter ...5/collects/racket/private/list.rkt:256:2 ------------------------------------------------------------------------ random-ranges [66] 100.0% [71] 200(2.6%) 0(0.0%) cons/c .../racket/contract/private/guts.rkt:500:15 coerce-contract [78] 100.0% ------------------------------------------------------------------------ eval-const-expr [61] 100.0% [72] 200(2.6%) 0(0.0%) eval-prog ...s/herbie/master/src/programs.rkt:82:0 hash-ref! [74] 100.0% ------------------------------------------------------------------------ egraph-run [68] 100.0% [73] 1338(17.7%) 0(0.0%) egraph-add-exprs ...gg-herbie-linux/main.rkt:111:0 ??? [80] 100.0% ------------------------------------------------------------------------ ??? [82] 4.1% eval-prog [72] 5.3% for-loop [13] 5.7% ??? [81] 10.3% ??? [88] 10.3% loop [10] 10.3% for-loop [11] 11.0% first-nonzero-exp [26] 11.0% map [42] 11.9% localize-error [63] 20.0% [74] 1260(16.7%) 0(0.0%) hash-ref! .../racket/private/more-scheme.rkt:376:2 parse-loop15 [83] 27.9% ??? [82] 14.4% ??? [3] 11.0% ??? [81] 10.3% f40 [24] 10.3% ??? [5] 5.7% f61 [4] 5.7% parse-loop74 [51] 5.3% ??? [7] 5.3% ??? [87] 4.0% ------------------------------------------------------------------------ for-loop [67] 100.0% [75] 1214(16.1%) 0(0.0%) atab-add-altn ...ster/src/core/alt-table.rkt:194:0 errors [79] 83.4% for-loop [84] 16.6% ------------------------------------------------------------------------ taylor-alt [69] 100.0% [76] 1112(14.7%) 0(0.0%) for-loop ...s/herbie/master/src/mainloop.rkt:152:6 ??? [88] 100.0% ------------------------------------------------------------------------ for-loop [67] 100.0% [77] 200(2.6%) 0(0.0%) loop ...herbie/master/src/core/alt-table.rkt:168:2 loop [85] 100.0% ------------------------------------------------------------------------ cons/c [71] 100.0% [78] 200(2.6%) 0(0.0%) coerce-contract ...contract/private/guts.rkt:307:0 coerce-contract/f [86] 100.0% ------------------------------------------------------------------------ for-loop [67] 10.7% .../more-scheme.rkt:261:28 [18] 10.9% for-loop [62] 23.8% atab-add-altn [75] 54.6% [79] 1852(24.5%) 0(0.0%) errors ...tlies/herbie/master/src/points.rkt:190:0 for-loop [89] 78.1% eval-one-top12 [92] 11.0% temp85_0 [91] 10.9% ------------------------------------------------------------------------ egraph-add-exprs [73] 100.0% [80] 1338(17.7%) 0(0.0%) ??? ...s/herbie/master/src/core/simplify.rkt:102:6 for-loop [90] 100.0% ------------------------------------------------------------------------ hash-ref! [74] 100.0% [81] 442(5.8%) 0(0.0%) ??? ...ies/herbie/master/src/core/taylor.rkt:44:15 hash-ref! [74] 100.0% ------------------------------------------------------------------------ hash-ref! [74] 100.0% [82] 442(5.8%) 0(0.0%) ??? ...ies/herbie/master/src/core/taylor.rkt:67:15 ??? [88] 76.5% hash-ref! [74] 23.5% ------------------------------------------------------------------------ hash-ref! [74] 100.0% [83] 402(5.3%) 202(2.7%) parse-loop15 (unknown source) map [42] 49.8% ------------------------------------------------------------------------ atab-add-altn [75] 100.0% [84] 202(2.7%) 202(2.7%) for-loop ...ie/master/src/core/alt-table.rkt:110:2 ------------------------------------------------------------------------ loop [77] 14.3% loop [85] 85.7% [85] 200(2.6%) 200(2.6%) loop ...racket-7.5/collects/racket/list.rkt:434:28 loop [85] 85.7% ------------------------------------------------------------------------ coerce-contract [78] 100.0% [86] 200(2.6%) 0(0.0%) coerce-contract/f ...ntract/private/guts.rkt:372:0 coerce-simple-value [93] 100.0% ------------------------------------------------------------------------ hash-ref! [74] 100.0% [87] 200(2.6%) 0(0.0%) ??? ...s/herbie/master/src/core/localize.rkt:17:13 repeat [94] 100.0% ------------------------------------------------------------------------ ??? [82] 6.3% ulp-difference [32] 8.6% .../more-scheme.rkt:261:28 [18] 8.6% loop [43] 8.6% location-do [95] 20.7% for-loop [76] 20.7% real->precision [52] 26.5% [88] 2330(30.8%) 800(10.6%) ??? ...tract/private/arrow-higher-order.rkt:375:33 location-do [95] 20.7% approximate9 [2] 20.7% bf [97] 9.4% ival-mult [99] 8.6% hash-ref! [74] 6.3% ------------------------------------------------------------------------ errors [79] 100.0% [89] 1446(19.1%) 424(5.6%) for-loop ...ies/herbie/master/src/points.rkt:192:2 .../more-scheme.rkt:261:28 [18] 70.7% ------------------------------------------------------------------------ ??? [80] 100.0% [90] 1338(17.7%) 1338(17.7%) for-loop ...bie/master/src/core/simplify.rkt:121:2 ------------------------------------------------------------------------ errors [79] 23.5% eval-const-expr [61] 76.5% [91] 860(11.4%) 0(0.0%) temp85_0 (unknown source) compile15 [96] 100.0% ------------------------------------------------------------------------ errors [79] 100.0% [92] 204(2.7%) 204(2.7%) eval-one-top12 (unknown source) ------------------------------------------------------------------------ coerce-contract/f [86] 100.0% [93] 200(2.6%) 200(2.6%) coerce-simple-value ...ract/private/guts.rkt:385:0 ------------------------------------------------------------------------ ??? [87] 100.0% [94] 200(2.6%) 0(0.0%) repeat .../herbie/master/src/core/localize.rkt:8:0 for-loop [98] 100.0% ------------------------------------------------------------------------ location-do [95] 9.7% ??? [88] 90.3% [95] 1112(14.7%) 0(0.0%) location-do ...herbie/master/src/programs.rkt:63:0 ??? [88] 90.3% location-do [95] 9.7% ------------------------------------------------------------------------ temp85_0 [91] 100.0% [96] 860(11.4%) 0(0.0%) compile15 (unknown source) temp91_0 [100] 100.0% ------------------------------------------------------------------------ ??? [88] 100.0% [97] 218(2.9%) 0(0.0%) bf ...ath-lib/math/private/bigfloat/mpfr.rkt:615:2 new-mpfr [103] 100.0% ------------------------------------------------------------------------ repeat [94] 100.0% [98] 200(2.6%) 200(2.6%) for-loop ...erbie/master/src/core/localize.rkt:9:2 ------------------------------------------------------------------------ ??? [88] 100.0% [99] 200(2.6%) 0(0.0%) ival-mult ...rbie/master/src/biginterval.rkt:129:0 bfmul [101] 100.0% ------------------------------------------------------------------------ compile15 [96] 100.0% [100] 860(11.4%) 0(0.0%) temp91_0 (unknown source) temp118_0 [102] 100.0% ------------------------------------------------------------------------ ival-mult [99] 100.0% [101] 200(2.6%) 0(0.0%) bfmul ...-lib/math/private/bigfloat/mpfr.rkt:835:4 new-mpfr [103] 100.0% ------------------------------------------------------------------------ temp91_0 [100] 100.0% [102] 860(11.4%) 0(0.0%) temp118_0 (unknown source) expand-capturing-lifts [104] 100.0% ------------------------------------------------------------------------ bfmul [101] 47.8% bf [97] 52.2% [103] 418(5.5%) 418(5.5%) new-mpfr ...b/math/private/bigfloat/mpfr.rkt:348:0 ------------------------------------------------------------------------ temp118_0 [102] 100.0% [104] 860(11.4%) 0(0.0%) expand-capturing-lifts (unknown source) lambda-clause-expander [105] 100.0% ------------------------------------------------------------------------ expand-capturing-lifts [104] 100.0% [105] 860(11.4%) 0(0.0%) lambda-clause-expander (unknown source) finish-bodys [106] 100.0% ------------------------------------------------------------------------ lambda-clause-expander [105] 23.8% for-loop [107] 76.2% [106] 860(11.4%) 0(0.0%) finish-bodys (unknown source) for-loop [107] 100.0% ------------------------------------------------------------------------ fallback-loop [38] 3.6% for-loop [107] 25.7% finish-bodys [106] 70.7% [107] 860(11.4%) 216(2.9%) for-loop (unknown source) finish-bodys [106] 54.4% for-loop [107] 25.7% expand-implicit [108] 9.4% loop [16] 3.6% syntax-e [6] 3.4% ------------------------------------------------------------------------ for-loop [107] 100.0% [108] 442(5.8%) 234(3.1%) expand-implicit (unknown source) datum->syntax6 [109] 47.1% ------------------------------------------------------------------------ expand-implicit [108] 100.0% [109] 208(2.8%) 208(2.8%) datum->syntax6 (unknown source) ------------------------------------------------------------------------