Re: How can I get a nonscalar logical variable into a compiled function?
- To: mathgroup at smc.vnet.net
- Subject: [mg56196] Re: How can I get a nonscalar logical variable into a compiled function?
- From: dh <dh at metrohm.ch>
- Date: Tue, 19 Apr 2005 04:54:52 -0400 (EDT)
- References: <d3t3o2$8og$1@smc.vnet.net>
- Sender: owner-wri-mathgroup at wolfram.com
Hi Ben,
as arrays of boolean may not be fed to a compile function, you could
simply represent True/False by 0/1 for the Input/Output of your
function. Inside the functio, you may either choose to convert to
True/False or you can proceed with 0/1, whatever suits you better.
Sincerely, Daniel
barrowes at alum.mit.edu wrote:
> I can't seem to figure out how to get a nonscalar logical variable into
> a compiled function.
>
> I can get a nonscalar variable of other kinds into compiled function or
> a scalar True or False into a compiled function.
>
> For example the following two things work:
>
> fun1=Compile[{{x,_Real,2}}
> Print[x];
> ];
>
> fun2=Compile[{{x,True|False}}
> Print[x];
> ];
>
> but how can I specify a two-dimensional input variable into the second
> case?
> fun2=Compile[{{x,True|False,1}}
> Print[x];
> ];
> doesn't work. It returns:
> gg = {False, True, True, True, True, True, True}
> fun2[gg]
> CompiledFunction::cfsa: Argument {False, True, True, True, True, True,
> True} \
> at position 1 should be a True or False.
>
> Can only scalar logical variables be input into compiled functions? Am
> I missing something?
>
> Thanks,
> Ben
>