Re: How do I DistributeDefinitions inside a function?
- To: mathgroup at smc.vnet.net
- Subject: [mg97805] Re: How do I DistributeDefinitions inside a function?
- From: Jens-Peer Kuska <kuska at informatik.uni-leipzig.de>
- Date: Sun, 22 Mar 2009 05:47:42 -0500 (EST)
- References: <gq2f1b$ef9$1@smc.vnet.net>
Hi, and LeaveOneOut[f_Symbol, items_] := ( SetSharedFunction[f]; Parallelize[ MapIndexed[ f[#1, items[[Complement[Table[i, {i, Length[items]}], #2]]]] &, items]]) ? does not help. Regards Jens uk.org.microserf at googlemail.com wrote: > Hi > > I have the following function: > > LeaveOneOut[f_, items_] := > Parallelize[ > MapIndexed[ > f[#1, items[[Complement[Table[i, {i, Length[items]}], #2]]]] &, > items]] > > Which might be called as follows: > > a = 10 Table[i, {i, 10}]; > f[x_, items_] := Mean[items] + x; > DistributeDefinitions[a, f]; > LeaveOneOut[f, a] > > Notice that I need to explicitly call DistributeDefinitions. I would > like to modify LeaveOneOut such that it performs the > DistributeDefinitions call. I've tried a few things=97such as using > (Distribute....; Parallelize...) and Module[{}, Distribute....; > Parallelize...]=97but the arguments passed to LeaveOneOut don't seem to > be being distributed (old definitions are used instead). I'm a > relative Mathematica novice, so help=97and an explanation of why what I > have already tried doesn't work=97would very much be appreciated! > > Cheers > > Chris >