Re: Replace, ReplaceAll and If time performace comparition

• To: mathgroup at smc.vnet.net
• Subject: [mg127027] Re: Replace, ReplaceAll and If time performace comparition
• From: Bill Rowe <readnews at sbcglobal.net>
• Date: Mon, 25 Jun 2012 04:01:42 -0400 (EDT)
• Delivered-to: l-mathgroup@mail-archive0.wolfram.com

```On 6/24/12 at 4:26 AM, rodrigomurtax at gmail.com (Murta) wrote:

>HI all I was working in some simulations with random numbers and get
>this example of performance comparition.

>randomList = RandomInteger[{-100, 100}, 10 10^6];

>(randomList /. (x_ /; x < 0 -> 0)); // AbsoluteTiming {5.747133,
>Null}

>Replace[randomList, (x_ /; x < 0 -> 0), 1]; // AbsoluteTiming
>{4.758984, Null}

>(If[# < 0, 0, #] & /@ randomList); // AbsoluteTiming {0.572200,
>Null}

>I personally prefer work with patterns because they are more compact
>and functional. Someone knows why patter is one magnitude order
>slow?? There is some trick to make it faster?

I don't know how to make the pattern matching faster. But I do
know how to create the list faster. That is:

In[1]:= randomList = RandomInteger[{-100, 100}, 10 10^6];

In[2]:= (a = If[# < 0, 0, #] & /@ randomList); // AbsoluteTiming

Out[2]= {0.597679,Null}

In[3]:= (b = Clip[randomList, {0, 100}]); // AbsoluteTiming

Out[3]= {0.086329,Null}

In[4]:= a == b

Out[4]= True

And it seems to me the syntax of Clip makes it very apparent
what the code does.

```

• Prev by Date: Re: Replace, ReplaceAll and If time performace comparition
• Next by Date: Re: Replace, ReplaceAll and If time performace comparition
• Previous by thread: Re: Replace, ReplaceAll and If time performace comparition
• Next by thread: Combining Two Lists