Re: Re: Re: Nested If
- To: mathgroup at smc.vnet.net
- Subject: [mg92907] Re: [mg92857] Re: [mg92823] Re: [mg92779] Nested If
- From: Syd Geraghty <sydgeraghty at me.com>
- Date: Sat, 18 Oct 2008 06:24:18 -0400 (EDT)
- References: <gcn4ge$7ad$1@smc.vnet.net> <200810120833.EAA08815@smc.vnet.net>
Thanks to Daniel Lichtblau for his reply to my question below. His suggestion of using Table[-1, {ndivs}] instead of ConstantArray[-1, ndivs] for Mathematica V6 works fine as seen below. countFirstDivisors = Compile[{{max, _Integer}, {ndivs, _Integer}}, Module[{mlist = Table[-1, {ndivs}], primes = = Prime[Range[ndivs]]}, Do[Do[If[Mod[n, primes[[k]]] == 0, mlist[[k]]++; Break[]], {k, = ndivs}], {n, max}]; mlist]] Timing[countFirstDivisors[10!, 9]] {2.23923, {1814399, 604799, 241919, 138239, 75402, 58003, 40941, 34478, 26982}} Cheers ... Syd Syd Geraghty B.Sc, M.Sc. sydgeraghty at mac.com Mathematica 6.0.3 for Mac OS X x86 (64 - bit) (21st May, 2008) MacOS X V 10.5.4 MacBook Pro 2.33 Ghz Intel Core 2 Duo 2GB RAM On Oct 17, 2008, at 8:33 AM, Daniel Lichtblau wrote: > Syd Geraghty wrote: >> Hi Daniel, >> I have tried to use and understand your input below but I cannot >> see where the bug is to generate the Error message below. >> Attached is a Mathematica file that I used to experiment with. >> Appreciate your help. >> Cheers Syd >> In[7]:= countFirstDivisors = >> Compile[{{max, _Integer}, {ndivs, _Integer}}, >> Module[{mlist = ConstantArray[-1, ndivs], primes = >> Prime[Range[ndivs]]}, >> Do[Do[If[Mod[n, primes[[k]]] == 0, mlist[[k]]++; Break[]], {k, = >> ndivs}], {n, >> max}]; >> mlist]] >> During evaluation of In[7]:= Compile::"part" : "Part specification = >> mlist=CE k=CE=A4 cannot be compiled since the \ >> argument is not a tensor of sufficient rank. Evaluation will use >> the \ >> uncompiled function. ButtonBox["", >> BaseStyle->"Link", >> ButtonData:>"paclet:ref/Compile", >> ButtonFrame->None, >> .....SNIP >> Syd Geraghty B.Sc, M.Sc. >> sydgeraghty at mac.com <mailto:sydgeraghty at mac.com> >> Mathematica 6.0.3 for Mac OS X x86 (64 - bit) (21st May, 2008) >> MacOS X V 10.5.4 >> MacBook Pro 2.33 Ghz Intel Core 2 Duo 2GB RAM > > I use a development kernel. Apparently ConstantArray is unfamiliar > to Compile in version 6. Try it instead with > > mlist = Table[-1,{ndivs}] > > and see if that works better. > > Daniel >
- Follow-Ups:
- Pi Formula
- From: Artur <grafix@csl.pl>
- Pi Formula
- References:
- Re: error region in parametric plot
- From: m.r@inbox.ru
- Re: error region in parametric plot