MathGroup Archive 2002

[Date Index] [Thread Index] [Author Index]

Search the Archive

Efficiency question

  • To: mathgroup at smc.vnet.net
  • Subject: [mg34680] Efficiency question
  • From: ryan.shannon at bemail.org (Ryan Shannon)
  • Date: Fri, 31 May 2002 04:29:10 -0400 (EDT)
  • Sender: owner-wri-mathgroup at wolfram.com

I'm trying to write a function that computes cyclotomic polynomials
faster that Mathematica's built in function, and the best I get is slower than
it by a factor of three.  Can anybody point out any improvements? 

*****************************************************************************

In[4]:=
\!\(f[n_] := 
    Module[{list, a = z - 1}, \[IndentingNewLine]list = 
        Map[First, 
          FactorInteger[
            n]]; \[IndentingNewLine]q := \((a = 
              PolynomialQuotient[a /. z \[Rule] z\^#, a, 
                z])\) &; \[IndentingNewLine]Map[q, 
        list]; \[IndentingNewLine]a /. 
        z \[Rule] z\^\(n/Apply[Times, list]\)]\)

In[5]:=
Timing[Table[f[n],{n,2,2000}];]

Out[5]=
{40.999 Second,Null}

In[6]:=
Timing[Table[Cyclotomic[n,z],{n,2,2000}];]

Out[6]=
{7.141 Second,Null}

**********************************************************************

That function reads like this...

f[n_]:=Module[{list,a=z-1},
	list=Map[First,FactorInteger[n]];
	q:=(a=PolynomialQuotient[a/.z->z^#,a,z])&;
	Map[q,list];
	a/.z->z^(n/Apply[Times,list])]

On the same note, what are some good resources for learning to program
Mathematica as efficiently as possible (books, websites...)?

Thanks!

Ryan Shannon


  • Prev by Date: RE: new user question about creating a new cell
  • Next by Date: Re: Function as an argument of the function
  • Previous by thread: Kendall's Rank Correlation Coefficient
  • Next by thread: Image Processing questions (Help!)