MathGroup Archive 2003

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

Search the Archive

speed-up of a function

  • To: mathgroup at smc.vnet.net
  • Subject: [mg45072] speed-up of a function
  • From: Kastens at Hamburg.BAW.DE (Marko Kastens)
  • Date: Tue, 16 Dec 2003 06:20:56 -0500 (EST)
  • Organization: BAW-AK, Hamburg-Rissen, Germany
  • Sender: owner-wri-mathgroup at wolfram.com

Hi!

I have something like this: (two lists(sublistTNW1 and sublistTNW2)), containing both time (Integer) and a value (Real)).
The following function pick-up the next dataset(time,value) out of sublistTNW2 after the given time (sublistTNW1[[i,1]]).

NextEvent[t_, list_] := Select[list, (#[[1]] >= t) &, 1]
For[i = 1, i < 500, 
{
      NextEvent[sublistTNW1[[i, 1]], sublistTNW2]
}; i++]

Calling the function in the for-loop very often (f.ex 500 times or more) is indeed very slowly. 

Trying to compile the function
testfunc = 
  Compile[{{t, _Integer}, {list, _Real, 2}}, Select[list, (#[[1]] >= t) &, 1]]

takes no effect in speed-up. Perhabs I've used the compile-Function not correctly?

How can I use lists with different data types in compile? {list, _Real, 2} (s.a.) is not exactly right, because the list is in the format {_Integer,_Real}.

Thanks for any suggestions,
marko


  • Prev by Date: Re: Plot of x=y^2
  • Next by Date: 2 Simple Mathematica Questions. (regarding tensors and matrices)
  • Previous by thread: Re NETLink - CREATING a new class?
  • Next by thread: RE: speed-up of a function