Profiling results ----------------- Total cpu time observed: 7082ms (out of 7192ms) Number of samples taken: 33 (once every 215ms) ====================================================================== Caller Idx Total Self Name+src Local% ms(pct) ms(pct) Callee ====================================================================== [1] 7082(100.0%) 0(0.0%) ??? ...lects/racket/private/more-scheme.rkt:261:28 profile-thunk16 [10] 100.0% ---------------------------------------------------------------------- ??? [71] 100.0% [2] 1392(19.7%) 0(0.0%) approximate9 ...both-ends/src/core/taylor.rkt:11:0 loop [12] 65.1% make-apply-contract9 [14] 19.5% taylor [18] 15.4% ---------------------------------------------------------------------- map [43] 20.0% hash-ref! [21] 80.0% [3] 1120(15.8%) 0(0.0%) parse-loop74 (unknown source) eval-const-expr [11] 100.0% ---------------------------------------------------------------------- matcher [82] 100.0% [4] 232(3.3%) 0(0.0%) ??? ...ction-both-ends/src/core/matcher.rkt:127:11 for-loop [15] 100.0% ---------------------------------------------------------------------- hash-ref! [21] 100.0% [5] 224(3.2%) 0(0.0%) ??? ...ection-both-ends/src/core/taylor.rkt:290:26 for-loop [17] 100.0% ---------------------------------------------------------------------- hash-ref! [21] 100.0% [6] 224(3.2%) 0(0.0%) ??? ...ection-both-ends/src/core/taylor.rkt:300:23 for-loop [16] 100.0% ---------------------------------------------------------------------- loop [100] 100.0% [7] 218(3.1%) 0(0.0%) expand-id-application-form17 (unknown source) syntax-e/no-taint [13] 100.0% ---------------------------------------------------------------------- taylor [18] 100.0% [8] 214(3.0%) 0(0.0%) taylor-invert ...th-ends/src/core/taylor.rkt:317:0 first-nonzero-exp [19] 100.0% ---------------------------------------------------------------------- loop [100] 100.0% [9] 200(2.8%) 0(0.0%) syntax-e (unknown source) syntax-e/no-taint [13] 100.0% ---------------------------------------------------------------------- ??? [1] 100.0% [10] 7082(100.0%) 0(0.0%) profile-thunk16 ...e/pkgs/profile-lib/main.rkt:9:0 run [20] 100.0% ---------------------------------------------------------------------- parse-loop74 [3] 100.0% [11] 1120(15.8%) 0(0.0%) eval-const-expr ...oth-ends/src/programs.rkt:120:0 temp85_0 [78] 39.5% loop [100] 39.1% eval4 [23] 21.4% ---------------------------------------------------------------------- approximate9 [2] 100.0% [12] 906(12.8%) 0(0.0%) loop ...tection-both-ends/src/core/taylor.rkt:86:4 hash-ref! [21] 75.9% ??? [71] 24.1% ---------------------------------------------------------------------- syntax-e [9] 47.8% expand-id-application-form17 [7] 52.2% [13] 418(5.9%) 0(0.0%) syntax-e/no-taint (unknown source) loop [100] 100.0% ---------------------------------------------------------------------- approximate9 [2] 100.0% [14] 272(3.8%) 0(0.0%) make-apply-contract9 ...ract/private/base.rkt:74:0 ??? [22] 100.0% ---------------------------------------------------------------------- ??? [4] 100.0% [15] 232(3.3%) 0(0.0%) for-loop ...-both-ends/src/core/matcher.rkt:129:15 matcher [82] 100.0% ---------------------------------------------------------------------- ??? [6] 100.0% [16] 224(3.2%) 0(0.0%) for-loop ...n-both-ends/src/core/taylor.rkt:303:27 hash-ref! [21] 100.0% ---------------------------------------------------------------------- ??? [5] 100.0% [17] 224(3.2%) 0(0.0%) for-loop ...n-both-ends/src/core/taylor.rkt:290:52 hash-ref! [21] 100.0% ---------------------------------------------------------------------- approximate9 [2] 33.3% taylor [18] 66.7% [18] 214(3.0%) 0(0.0%) taylor ...tion-both-ends/src/core/taylor.rkt:169:0 taylor [18] 66.7% taylor-invert [8] 33.3% ---------------------------------------------------------------------- taylor-invert [8] 100.0% [19] 214(3.0%) 0(0.0%) first-nonzero-exp ...nds/src/core/taylor.rkt:265:0 hash-ref! [21] 100.0% ---------------------------------------------------------------------- profile-thunk16 [10] 100.0% [20] 7082(100.0%) 0(0.0%) run ...et-7.5/share/pkgs/profile-lib/main.rkt:39:2 .../more-scheme.rkt:261:28 [24] 100.0% ---------------------------------------------------------------------- ??? [29] 2.9% for-loop [17] 2.9% ??? [28] 2.9% for-loop [16] 2.9% loop [12] 16.7% first-nonzero-exp [19] 19.1% ??? [25] 26.4% ??? [71] 26.4% [21] 1120(15.8%) 0(0.0%) hash-ref! .../racket/private/more-scheme.rkt:376:2 parse-loop74 [3] 38.8% ??? [25] 26.4% ??? [26] 16.7% f40 [30] 6.7% ??? [6] 2.9% ??? [28] 2.9% ??? [5] 2.9% ??? [29] 2.9% ---------------------------------------------------------------------- make-apply-contract9 [14] 100.0% [22] 272(3.8%) 0(0.0%) ??? ...cts/racket/contract/private/guts.rkt:835:10 ??? [27] 100.0% ---------------------------------------------------------------------- eval-const-expr [11] 100.0% [23] 240(3.4%) 240(3.4%) eval4 (unknown source) ---------------------------------------------------------------------- for-loop [79] 3.2% run [20] 96.8% [24] 7082(100.0%) 238(3.4%) .../more-scheme.rkt:261:28 (unknown source) prepare-points-intervals [31] 46.0% run-improve47 [32] 39.4% errors [72] 5.6% oracle-error [35] 2.9% get-final-combination [36] 2.8% ??? [34] 1.6% ---------------------------------------------------------------------- hash-ref! [21] 100.0% [25] 906(12.8%) 0(0.0%) ??? ...tection-both-ends/src/core/taylor.rkt:44:15 hash-ref! [21] 100.0% ---------------------------------------------------------------------- hash-ref! [21] 100.0% [26] 688(9.7%) 0(0.0%) ??? ...tection-both-ends/src/core/taylor.rkt:67:15 ??? [71] 100.0% ---------------------------------------------------------------------- ??? [22] 100.0% [27] 272(3.8%) 0(0.0%) ??? ...ntract/private/arrow-higher-order.rkt:575:2 build-subcontract-late-negs [33]100.0% ---------------------------------------------------------------------- hash-ref! [21] 100.0% [28] 224(3.2%) 0(0.0%) ??? ...ection-both-ends/src/core/taylor.rkt:343:33 hash-ref! [21] 100.0% ---------------------------------------------------------------------- hash-ref! [21] 100.0% [29] 224(3.2%) 0(0.0%) ??? ...ection-both-ends/src/core/taylor.rkt:327:33 hash-ref! [21] 100.0% ---------------------------------------------------------------------- hash-ref! [21] 33.3% map [43] 66.7% [30] 224(3.2%) 0(0.0%) f40 (unknown source) map [43] 100.0% ---------------------------------------------------------------------- .../more-scheme.rkt:261:28 [24] 100.0% [31] 3258(46.0%) 0(0.0%) prepare-points-intervals ...s/src/points.rkt:132:0 loop [37] 100.0% ---------------------------------------------------------------------- .../more-scheme.rkt:261:28 [24] 100.0% [32] 3022(42.7%) 0(0.0%) run-improve47 ...-both-ends/src/mainloop.rkt:346:0 for-loop [38] 100.0% ---------------------------------------------------------------------- ??? [27] 100.0% [33] 272(3.8%) 272(3.8%) build-subcontract-late-negs ...her-order.rkt:711:0 ---------------------------------------------------------------------- .../more-scheme.rkt:261:28 [24] 100.0% [34] 222(3.1%) 222(3.1%) ??? ...tion-both-ends/src/syntax/syntax.rkt:214:17 ---------------------------------------------------------------------- .../more-scheme.rkt:261:28 [24] 100.0% [35] 206(2.9%) 0(0.0%) oracle-error ...ion-both-ends/src/points.rkt:189:0 for-loop [39] 100.0% ---------------------------------------------------------------------- .../more-scheme.rkt:261:28 [24] 100.0% [36] 200(2.8%) 0(0.0%) get-final-combination ...ds/src/mainloop.rkt:371:0 infer-splitpoints [40] 100.0% ---------------------------------------------------------------------- prepare-points-intervals [31] 100.0% [37] 3258(46.0%) 0(0.0%) loop ...w-detection-both-ends/src/points.rkt:144:4 loop [42] 87.7% ??? [44] 12.3% ---------------------------------------------------------------------- run-improve47 [32] 100.0% [38] 3022(42.7%) 0(0.0%) for-loop ...ction-both-ends/src/mainloop.rkt:365:4 run-iter! [41] 100.0% ---------------------------------------------------------------------- oracle-error [35] 100.0% [39] 206(2.9%) 0(0.0%) for-loop ...tection-both-ends/src/points.rkt:190:2 map [43] 100.0% ---------------------------------------------------------------------- get-final-combination [36] 100.0% [40] 200(2.8%) 0(0.0%) infer-splitpoints ...nds/src/core/regimes.rkt:33:0 for-loop [45] 100.0% ---------------------------------------------------------------------- for-loop [38] 100.0% [41] 3022(42.7%) 0(0.0%) run-iter! ...tion-both-ends/src/mainloop.rkt:327:0 gen-series! [46] 46.1% simplify! [47] 23.6% finalize-iter! [48] 22.6% gen-rewrites! [51] 7.7% ---------------------------------------------------------------------- loop [37] 100.0% [42] 2858(40.4%) 402(5.7%) loop ...ow-detection-both-ends/src/points.rkt:81:2 ??? [71] 57.1% real->precision [49] 14.8% ??? [56] 7.0% ??? [53] 7.0% ---------------------------------------------------------------------- for-loop [39] 47.9% f40 [30] 52.1% [43] 430(6.1%) 0(0.0%) map ...t-7.5/collects/racket/private/map.rkt:35:13 ??? [52] 47.9% f40 [30] 34.7% parse-loop74 [3] 17.4% ---------------------------------------------------------------------- loop [37] 100.0% [44] 400(5.6%) 0(0.0%) ??? ...ow-detection-both-ends/src/points.rkt:125:6 sample-multi-bounded [50] 100.0% ---------------------------------------------------------------------- infer-splitpoints [40] 100.0% [45] 200(2.8%) 0(0.0%) for-loop ...on-both-ends/src/core/regimes.rkt:45:6 option-on-expr [54] 100.0% ---------------------------------------------------------------------- run-iter! [41] 100.0% [46] 1392(19.7%) 0(0.0%) gen-series! ...on-both-ends/src/mainloop.rkt:160:0 for-loop [55] 100.0% ---------------------------------------------------------------------- run-iter! [41] 100.0% [47] 714(10.1%) 0(0.0%) simplify! ...tion-both-ends/src/mainloop.rkt:224:0 ??? [57] 100.0% ---------------------------------------------------------------------- run-iter! [41] 100.0% [48] 684(9.7%) 0(0.0%) finalize-iter! ...both-ends/src/mainloop.rkt:278:0 ??? [56] 100.0% ---------------------------------------------------------------------- loop [42] 100.0% [49] 424(6.0%) 0(0.0%) real->precision ...oth-ends/src/programs.rkt:94:11 ??? [71] 100.0% ---------------------------------------------------------------------- ??? [44] 100.0% [50] 400(5.6%) 200(2.8%) sample-multi-bounded ...h-ends/src/points.rkt:14:0 random-ranges [60] 50.0% ---------------------------------------------------------------------- run-iter! [41] 100.0% [51] 232(3.3%) 0(0.0%) gen-rewrites! ...-both-ends/src/mainloop.rkt:183:0 for-loop [58] 100.0% ---------------------------------------------------------------------- map [43] 100.0% [52] 206(2.9%) 206(2.9%) ??? ...w-detection-both-ends/src/points.rkt:191:26 ---------------------------------------------------------------------- loop [42] 100.0% [53] 200(2.8%) 0(0.0%) ??? ...tract/private/arrow-higher-order.rkt:379:33 ival-add [59] 100.0% ---------------------------------------------------------------------- for-loop [45] 100.0% [54] 200(2.8%) 0(0.0%) option-on-expr ...-ends/src/core/regimes.rkt:124:0 temp85_0 [78] 100.0% ---------------------------------------------------------------------- gen-series! [46] 100.0% [55] 1392(19.7%) 0(0.0%) for-loop ...ction-both-ends/src/mainloop.rkt:167:7 taylor-alt [61] 100.0% ---------------------------------------------------------------------- loop [42] 22.6% finalize-iter! [48] 77.4% [56] 884(12.5%) 200(2.8%) ??? ...contract/private/arrow-val-first.rkt:486:18 for-loop [63] 77.4% ---------------------------------------------------------------------- simplify! [47] 100.0% [57] 714(10.1%) 0(0.0%) ??? ...ection-both-ends/src/core/simplify.rkt:42:0 egraph-run [62] 100.0% ---------------------------------------------------------------------- gen-rewrites! [51] 100.0% [58] 232(3.3%) 0(0.0%) for-loop ...tion-both-ends/src/mainloop.rkt:191:11 rewrite-expression-head24 [64] 100.0% ---------------------------------------------------------------------- ??? [53] 100.0% [59] 200(2.8%) 0(0.0%) ival-add ...on-both-ends/src/biginterval.rkt:200:0 e-compute [84] 100.0% ---------------------------------------------------------------------- sample-multi-bounded [50] 100.0% [60] 200(2.8%) 0(0.0%) random-ranges ...on-both-ends/src/common.rkt:164:0 cons/c [65] 100.0% ---------------------------------------------------------------------- for-loop [55] 100.0% [61] 1392(19.7%) 0(0.0%) taylor-alt ...ion-both-ends/src/mainloop.rkt:146:0 for-loop [66] 100.0% ---------------------------------------------------------------------- ??? [57] 100.0% [62] 714(10.1%) 0(0.0%) egraph-run .../pkgs/egg-herbie-linux/main.rkt:49:0 egraph-add-exprs [67] 100.0% ---------------------------------------------------------------------- ??? [56] 100.0% [63] 684(9.7%) 0(0.0%) for-loop ...-both-ends/src/core/alt-table.rkt:46:2 atab-add-altn [68] 100.0% ---------------------------------------------------------------------- for-loop [58] 100.0% [64] 232(3.3%) 0(0.0%) rewrite-expression-head24 ...core/matcher.rkt:85:0 rewriter [69] 100.0% ---------------------------------------------------------------------- random-ranges [60] 100.0% [65] 200(2.8%) 0(0.0%) cons/c .../racket/contract/private/guts.rkt:500:15 coerce-contract [70] 100.0% ---------------------------------------------------------------------- taylor-alt [61] 100.0% [66] 1392(19.7%) 0(0.0%) for-loop ...ction-both-ends/src/mainloop.rkt:152:6 ??? [71] 100.0% ---------------------------------------------------------------------- egraph-run [62] 100.0% [67] 714(10.1%) 0(0.0%) egraph-add-exprs ...gg-herbie-linux/main.rkt:111:0 ??? [73] 100.0% ---------------------------------------------------------------------- for-loop [63] 100.0% [68] 684(9.7%) 0(0.0%) atab-add-altn ...ends/src/core/alt-table.rkt:194:0 errors [72] 100.0% ---------------------------------------------------------------------- rewrite-expression-head24 [64] 33.3% matcher [82] 66.7% [69] 232(3.3%) 232(3.3%) rewriter ...on-both-ends/src/core/matcher.rkt:87:2 for-loop [74] 66.7% ---------------------------------------------------------------------- cons/c [65] 100.0% [70] 200(2.8%) 0(0.0%) coerce-contract ...contract/private/guts.rkt:307:0 coerce-contract/f [75] 100.0% ---------------------------------------------------------------------- loop [12] 2.1% ??? [26] 6.7% real->precision [49] 12.3% location-do [77] 15.8% for-loop [66] 15.8% loop [42] 47.3% [71] 3448(48.7%) 0(0.0%) ??? ...tract/private/arrow-higher-order.rkt:375:33 ival-mult [76] 47.3% location-do [77] 15.8% approximate9 [2] 15.8% bf [81] 12.3% hash-ref! [21] 8.8% ---------------------------------------------------------------------- .../more-scheme.rkt:261:28 [24] 36.7% atab-add-altn [68] 63.3% [72] 1080(15.2%) 0(0.0%) errors ...detection-both-ends/src/points.rkt:202:0 for-loop [79] 79.3% temp85_0 [78] 20.7% ---------------------------------------------------------------------- egraph-add-exprs [67] 100.0% [73] 714(10.1%) 0(0.0%) ??? ...ction-both-ends/src/core/simplify.rkt:102:6 for-loop [80] 100.0% ---------------------------------------------------------------------- rewriter [69] 100.0% [74] 232(3.3%) 0(0.0%) for-loop ...on-both-ends/src/core/matcher.rkt:89:4 matcher [82] 100.0% ---------------------------------------------------------------------- coerce-contract [70] 100.0% [75] 200(2.8%) 0(0.0%) coerce-contract/f ...ntract/private/guts.rkt:372:0 coerce-simple-value [83] 100.0% ---------------------------------------------------------------------- ??? [71] 100.0% [76] 1632(23.0%) 406(5.7%) ival-mult ...n-both-ends/src/biginterval.rkt:243:0 e-compute [84] 50.5% ormap [86] 24.6% ---------------------------------------------------------------------- location-do [77] 29.3% ??? [71] 70.7% [77] 1392(19.7%) 0(0.0%) location-do ...ion-both-ends/src/programs.rkt:63:0 ??? [71] 70.7% location-do [77] 29.3% ---------------------------------------------------------------------- option-on-expr [54] 23.1% errors [72] 25.9% eval-const-expr [11] 51.0% [78] 866(12.2%) 0(0.0%) temp85_0 (unknown source) compile15 [85] 100.0% ---------------------------------------------------------------------- errors [72] 100.0% [79] 856(12.1%) 396(5.6%) for-loop ...tection-both-ends/src/points.rkt:204:2 .../more-scheme.rkt:261:28 [24] 53.7% ---------------------------------------------------------------------- ??? [73] 100.0% [80] 714(10.1%) 714(10.1%) for-loop ...-both-ends/src/core/simplify.rkt:121:2 ---------------------------------------------------------------------- ??? [71] 100.0% [81] 424(6.0%) 0(0.0%) bf ...ath-lib/math/private/bigfloat/mpfr.rkt:615:2 new-mpfr [91] 52.8% ??? [92] 47.2% ---------------------------------------------------------------------- for-loop [15] 50.0% for-loop [74] 50.0% [82] 232(3.3%) 0(0.0%) matcher ...on-both-ends/src/core/matcher.rkt:115:2 ??? [4] 50.0% rewriter [69] 50.0% ---------------------------------------------------------------------- coerce-contract/f [75] 100.0% [83] 200(2.8%) 200(2.8%) coerce-simple-value ...ract/private/guts.rkt:385:0 ---------------------------------------------------------------------- ival-add [59] 19.5% ival-mult [76] 80.5% [84] 1024(14.5%) 200(2.8%) e-compute ...n-both-ends/src/biginterval.rkt:160:0 bfmul [88] 80.5% ---------------------------------------------------------------------- temp85_0 [78] 100.0% [85] 866(12.2%) 0(0.0%) compile15 (unknown source) temp91_0 [87] 100.0% ---------------------------------------------------------------------- ival-mult [76] 100.0% [86] 402(5.7%) 0(0.0%) ormap ....5/collects/racket/private/map.rkt:141:13 serious-immovable-endpoint? [89]100.0% ---------------------------------------------------------------------- compile15 [85] 100.0% [87] 866(12.2%) 0(0.0%) temp91_0 (unknown source) temp118_0 [90] 74.1% compile-top9 [93] 25.9% ---------------------------------------------------------------------- e-compute [84] 100.0% [88] 824(11.6%) 206(2.9%) bfmul ...-lib/math/private/bigfloat/mpfr.rkt:835:4 new-mpfr [91] 48.3% ??? [92] 26.7% ---------------------------------------------------------------------- ormap [86] 100.0% [89] 402(5.7%) 402(5.7%) serious-immovable-endpoint? ...ginterval.rkt:178:0 ---------------------------------------------------------------------- temp91_0 [87] 100.0% [90] 642(9.1%) 0(0.0%) temp118_0 (unknown source) expand-capturing-lifts [94] 100.0% ---------------------------------------------------------------------- bf [81] 36.0% bfmul [88] 64.0% [91] 622(8.8%) 622(8.8%) new-mpfr ...b/math/private/bigfloat/mpfr.rkt:348:0 ---------------------------------------------------------------------- bf [81] 47.6% bfmul [88] 52.4% [92] 420(5.9%) 420(5.9%) ??? /opt/racket-7.5/collects/ffi/unsafe.rkt:938:4 ---------------------------------------------------------------------- temp91_0 [87] 100.0% [93] 224(3.2%) 0(0.0%) compile-top9 (unknown source) compile-forms33 [95] 100.0% ---------------------------------------------------------------------- loop [100] 40.6% temp118_0 [90] 59.4% [94] 1080(15.2%) 214(3.0%) expand-capturing-lifts (unknown source) lambda-clause-expander [97] 59.4% dispatch-transformer41 [96] 20.7% ---------------------------------------------------------------------- compile-top9 [93] 100.0% [95] 224(3.2%) 0(0.0%) compile-forms33 (unknown source) for-loop [108] 100.0% ---------------------------------------------------------------------- expand-capturing-lifts [94] 34.6% for-loop [108] 65.4% [96] 648(9.1%) 0(0.0%) dispatch-transformer41 (unknown source) apply-transformer52 [98] 100.0% ---------------------------------------------------------------------- expand-capturing-lifts [94] 100.0% [97] 642(9.1%) 0(0.0%) lambda-clause-expander (unknown source) finish-bodys [99] 100.0% ---------------------------------------------------------------------- dispatch-transformer41 [96] 100.0% [98] 648(9.1%) 0(0.0%) apply-transformer52 (unknown source) loop [100] 65.4% apply-post-expansion [101] 34.6% ---------------------------------------------------------------------- for-loop [108] 42.7% lambda-clause-expander [97] 57.3% [99] 642(9.1%) 0(0.0%) finish-bodys (unknown source) for-loop [108] 100.0% ---------------------------------------------------------------------- for-loop [108] 10.1% gf [102] 11.2% loop [100] 14.2% syntax-e/no-taint [13] 16.3% eval-const-expr [11] 21.4% apply-transformer52 [98] 26.9% [100] 1080(15.2%) 0(0.0%) loop (unknown source) gf [102] 27.4% expand-capturing-lifts [94] 21.4% core-form-sym [103] 20.7% loop [100] 14.2% expand-id-application-form17 [7] 10.1% syntax-e [9] 6.2% ---------------------------------------------------------------------- apply-transformer52 [98] 100.0% [101] 224(3.2%) 0(0.0%) apply-post-expansion (unknown source) gf [102] 100.0% ---------------------------------------------------------------------- apply-post-expansion [101] 4.4% loop [100] 95.6% [102] 642(9.1%) 224(3.2%) gf (unknown source) propagation-apply [105] 34.0% cache-or-reuse-set [106] 31.2% loop [100] 30.5% ---------------------------------------------------------------------- loop [100] 100.0% [103] 224(3.2%) 0(0.0%) core-form-sym (unknown source) resolve+shift28 [104] 100.0% ---------------------------------------------------------------------- core-form-sym [103] 100.0% [104] 224(3.2%) 0(0.0%) resolve+shift28 (unknown source) fallback-loop [107] 100.0% ---------------------------------------------------------------------- gf [102] 100.0% [105] 218(3.1%) 218(3.1%) propagation-apply (unknown source) ---------------------------------------------------------------------- gf [102] 100.0% [106] 200(2.8%) 200(2.8%) cache-or-reuse-set (unknown source) ---------------------------------------------------------------------- resolve+shift28 [104] 100.0% [107] 224(3.2%) 0(0.0%) fallback-loop (unknown source) for-loop [108] 100.0% ---------------------------------------------------------------------- fallback-loop [107] 6.5% for-loop [108] 24.8% compile-forms33 [95] 25.9% finish-bodys [99] 42.8% [108] 866(12.2%) 224(3.2%) for-loop (unknown source) compile-module-linklet57 [109] 25.9% for-loop [108] 24.8% finish-bodys [99] 24.5% dispatch-transformer41 [96] 14.2% loop [100] 4.2% ---------------------------------------------------------------------- for-loop [108] 100.0% [109] 224(3.2%) 224(3.2%) compile-module-linklet57 (unknown source) ----------------------------------------------------------------------