MathGroup Archive 2007

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

Search the Archive

Re: Setting Negatives to Zero


What makes Clip[] fast?

Kevin

Carl Woll wrote:
> Ray Koopman wrote:
> 
>> On Oct 30, 1:38 am, "Kevin J. McCann" <Kevin.McC... at umbc.edu> wrote:
>>  
>>
>>> I have a very large data set (64000 x 583) in which negative values
>>> indicate "no data", unfortunately these negatives are not all the same.
>>> I would like to efficiently set all these negatives to zero.
>>>    
>>>
>> With 10% of data missing,  data*UnitStep[data]
>> is about twice as fast as  data/._?Negative->0
>> for real data, and about 30 times as fast for integer data.
>>
>>  
>>
> The reason data*UnitStep[data] is slow for real data is because real * 1 
> is a real number, while real * 0 is an integer. If UnitStep[data] has a 
> mixture of 0s and 1s, then unpacking of packed arrays will occur when 
> evaluating data*UnitStep[data]. To avoid this unpacking you could use 
> data*N[UnitStep[data]], which will be much faster, although not as fast 
> as using Clip.
> 
> Carl Woll
> Wolfram Research
> 

-- 

Kevin J. McCann
Research Associate Professor
JCET/Physics
Physics Building
University of Maryland, Baltimore County
1000 Hilltop Circle
Baltimore, MD 21250


  • Prev by Date: The uses of Condition (/;)
  • Next by Date: Re: Re: NumberPadding on the left
  • Previous by thread: Re: Re: Re: Setting Negatives to Zero
  • Next by thread: Re: FindRoot and Bose-Einstein distribution