MathGroup Archive 2004

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

Search the Archive

Re: Compile ReplacePart

  • To: mathgroup at smc.vnet.net
  • Subject: [mg52597] Re: Compile ReplacePart
  • From: Joerg Schaber <schaber at molgen.mpg.de>
  • Date: Fri, 3 Dec 2004 03:54:23 -0500 (EST)
  • References: <comh1m$9ht$1@smc.vnet.net>
  • Sender: owner-wri-mathgroup at wolfram.com

Hi Yehuda,

here I constructed you a code that shows that it works in principle but 
not in a compiled fucntion. Maybe you have an idea,

best,

joerg

<<Statistics`ContinuousDistributions`

x={-0.9,0.98,0.97,-0.96,1.1,1.1,1.2,1.03,-1.3,2.9,2.9,-0.89,0.90};
lu={{0,0,0,0,0,0,0,0,0,0,0,0,0},{1,1,1,1,1,1,1,1,1,100,100,100,1}};

CheckXBounds=Compile[{{x,_Real,1},{lb,_Real,1},{ub,_Real,1}},
       p=Position[Thread[lb<=x<=ub]/.{True\[Rule]1,False\[Rule]0},0],
       {{p,_Integer,2}}];

In[56]:=
CheckXBounds[x,lu[[1]],lu[[2]]]

Out[56]=
{{1},{4},{5},{6},{7},{8},{9},{12}}

(* CheckXBounds works *)

p=CheckXBounds[x,lu[[1]],lu[[2]]];
new=x+RandomArray[NormalDistribution[0,1],Length[x]]
x2=ReplacePart[x,new,p,p]

(* The above also works
but the same code in a compiled function gives we the mentioned error
*)

CheckParameters=Compile[{{x,_Real,1},{lb,_Real,
       1},{ub,_Real,1}},Module[{x2,p,new},
         p=CheckXBounds[x,lb,ub];
         new=x+RandomArray[NormalDistribution[0,1],Length[x]];
         x2=ReplacePart[x2,new,p,p];
         Return[x2]
         ]
       ];

yehuda ben-shimol wrote:

> It is difficult to comment to your posting without an exact reference to the
> line (or block of code) that caused the problem. Can you send it so we will
> be able to figure out what is wrong?
> yehuda
> 
> -----Original Message-----
> From: Joerg Schaber [mailto:schaber at molgen.mpg.de] 
To: mathgroup at smc.vnet.net
> Subject: [mg52597]  Compile ReplacePart
> 
> Hi,
> 
> using ReplacePart with 4 arguments in a Compiled Function gives me the 
> error 'ReplacePart::argrx: ReplacePart called with 4 arguments; 3 
> arguments are expected', even though ReplacePart is defined also for 4 
> arguments in regular Mathematica code.
> What's the problem here?
> 
> best,
> 
> joerg
> 
> 


  • Prev by Date: binomial fraction subharmic functions-3rd, and 4th
  • Next by Date: Re: Compiled function with NIntegrate
  • Previous by thread: Re: Compile ReplacePart
  • Next by thread: Re: launching a kernel on a remote linux machine through ssh from a linux machine