Re: Pattern matching "on the fly" + Developer`ClearCache[]
- To: mathgroup at smc.vnet.net
- Subject: [mg30119] Re: Pattern matching "on the fly" + Developer`ClearCache[]
- From: "Allan Hayes" <hay at haystack.demon.co.uk>
- Date: Sun, 29 Jul 2001 21:26:13 -0400 (EDT)
- References: <9jvr9h$dof$1@smc.vnet.net>
- Sender: owner-wri-mathgroup at wolfram.com
(1+x)^(10^6) (the original example). Andrzej's method is quicker as a one-off calcuation. But the Series method that Bob and I suggested does some cacheing and is quicker for repeats. In fact it seems that it Series is not just cacheing but is loading code at *any* first use. Developer`ClearCache` does not seem to clear this code. So ClearCache does not *always* give the worstcase timing. Please note that Quit[] must be evaluated as a separate input on each occasion. ORIGINAL: (1+x)^(10^6) Quit[] (x^n_^:=0/;n>2; (*Andrzej*) myexpand[f_,n_]:= Fold[Expand[#1^2*If[#2\[Equal]1,f,1]]&,f, Rest[IntegerDigits[n,2]]])//Timing {0. Second,Null} myexpand[(1+x),10^6];//Timing {0.11 Second,Null} No cacheing: myexpand[(1+x),10^6];//Timing {0.11 Second,Null} Quit[] (1+x)^(10^6)+O[x]^3//Normal;//Timing {0.28 Second,Null} (1+x)^(10^6)+O[x]^3//Normal;//Timing {0.06 Second,Null} Quit[] *Any* use of Series seems to be sufficient. Series[a,{b,c,0}];//Timing {0.22 Second,Null} (1+x)^(10^6)+O[x]^3//Normal;//Timing {0. Second,Null} Developer`ClearCache[] has little effect. Developer`ClearCache[] (1+x+O[x]^5)^(10^6)//Normal;//Timing {0. Second,Null} HIGHER POWER: (1+x)^(10^100) Quit[] (x^n_^:=0/;n>2; myexpand[f_,n_]:= Fold[Expand[#1^2*If[#2\[Equal]1,f,1]]&,f, Rest[IntegerDigits[n,2]]])//Timing {0. Second,Null} myexpand[(1+x),10^100];//Timing {1.92 Second,Null} myexpand[(1+x),10^100];//Timing {1.92 Second,Null} Quit[] (1+x)^(10^100)+O[x]^3//Normal;//Timing {0.28 Second,Null} (1+x)^(10^100)+O[x]^3//Normal;//Timing {0. Second,Null} Quit[] *Any* use of Series seems to be sufficient. Series[a,{b,c,0}];//Timing {0.22 Second,Null} (1+x)^(10^100)+O[x]^3//Normal;//Timing {0. Second,Null} Developer`ClearCache[] has little effect. Developer`ClearCache[] (1+x+O[x]^5)^(10^100)//Normal;//Timing {0.05 Second,Null} Allan --------------------- Allan Hayes Mathematica Training and Consulting Leicester UK www.haystack.demon.co.uk hay at haystack.demon.co.uk Voice: +44 (0)116 271 4198 Fax: +44 (0)870 164 0565