MathGroup Archive 2009

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

Search the Archive

Re: SparseArray and Compile

  • To: mathgroup at smc.vnet.net
  • Subject: [mg99833] Re: SparseArray and Compile
  • From: Ray Koopman <koopman at sfu.ca>
  • Date: Fri, 15 May 2009 06:25:18 -0400 (EDT)
  • References: <gub7a9$4cf$1@smc.vnet.net>

It's not clear how you intend to use rp, so it's hard to say much more
than that you can cut the uncompiled time substantially by defining

  rp = SparseArray[ UnitStep[ .01 - dat - dat[[#]] ] ] & /@
       Range[Length[dat]];

The resulting rp will be exactly the same as in your version.

On May 12, 12:08 am, andreas.kohlma... at gmx.de wrote:
> Greetings,
>
> I have difficulties to speed up my calculation regarding SparseArray:
>
> Date[]
> rp = {};
> AppendTo[rp, SparseArray[UnitStep[0.01 - dat - dat[[#]]]]] & /@
>   Range[Length[dat]];
> Date[]
>
> dat is a list of Reals containing approx. 24000 elements. I had to
> use SparseArray for each line to prevent a memory crash; the final
> matrix has 574 million elements. The calculation takes 2' 43'' on
> my WinXP Dell workstation (DualCore @ 1.6 GHz, 3 GB RAM)
>
> I would like to speed up the calculation using compile, but the
> SparseArray object doesn't fit the tensor format. I have tried:
>
> Compile[{{data, _Real, 1}},
>  Block[{rp}, rp = {};
>   AppendTo[rp, SparseArray[UnitStep[0.01 - data - data[[#]]]]] & /@
>    Range[Length[data]]]]
>
> Compile::cpts: The result after evaluating Insert[rp,SparseArray
> [UnitStep[0.01-data-data[[System`Private`CompileSymbol[<<1>>]
> [[System`Private`CompileSymbol[<<1>>]]]]]]],-1] should be a tensor.
> Nontensor lists are not supported at present; evaluation will proceed
> with the uncompiled function. >>
>
> The calculation is used calculate a recurrence plot. The fixed value
> of 0.01 will be replaced by a variable later on; therefore, I need to
> speed up the calculation.
>
> Any help is appreciated.


  • Prev by Date: Re: Random choice
  • Next by Date: Re: Random choice
  • Previous by thread: SparseArray and Compile
  • Next by thread: Optimize speed of plotting mesh