Services & Resources / Wolfram Forums / MathGroup Archive
-----

MathGroup Archive 2011

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

Search the Archive

help to make code run faster (mathematica v8.01)

  • To: mathgroup at smc.vnet.net
  • Subject: [mg121318] help to make code run faster (mathematica v8.01)
  • From: kristoph <kristophs.post at web.de>
  • Date: Sat, 10 Sep 2011 07:28:51 -0400 (EDT)
  • Delivered-to: l-mathgroup@mail-archive0.wolfram.com

Hi

I'm running out of options in order to make my code run faster. I do
appreciate any help. I programmed a function named tStat that
basically sums over two compiled functions. Although, I run the
function parallel it is still rather slow. Thanks in advance for help.
Here is what I mean:

(*the following 5 lines is just random input data to test the
function*)

resp=RandomReal[10,250];
reg=RandomReal[1,250];
des=DesignMatrix[Table[{reg[[i]],resp[[i]]},{i,1,Length[reg]}],x,x];
fit=LinearModelFit[{des,resp}];
h=1.06 StandardDeviation[reg] Length[reg]^(-1/5);

(*the two compiled functions which are inputs for the function tStat*)

epanKern=Compile[{u},
If[Abs[u]<1,3/4 (1-u^2),0]
];

val1=Compile[{{rk,_Real},{rj,_Real},{dk,_Real},{dj,_Real},
{band,_Real}},
rk rj epanKern[(dk-dj)/band]];

(*the following function is rather slow*)

tStat[data_,band_,residuals_,leg_]:=Module[{k,j,res=0,var=0},
res=ParallelSum[val1[residuals[[k]],residuals[[j]],data[[k]],data[[j]],band],
{k,1,leg},{j,k+1,leg}];
2 res
];

(*executing the function*)
tStat[reg,h,fit["FitResiduals"],Length[reg]]//AbsoluteTiming




  • Prev by Date: passing Indeterminate and Infinity to C via MathLink
  • Next by Date: execution model: Function vs. delayed execution
  • Previous by thread: Re: passing Indeterminate and Infinity to C via MathLink
  • Next by thread: Re: help to make code run faster (mathematica v8.01)