Re: How can I get a nonscalar logical variable into a compiled function?
- To: mathgroup at smc.vnet.net
- Subject: [mg56278] Re: How can I get a nonscalar logical variable into a compiled function?
- From: dh <dh at metrohm.ch>
- Date: Wed, 20 Apr 2005 05:33:05 -0400 (EDT)
- References: <d3t3o2$8og$1@smc.vnet.net> <d42kdb$398$1@smc.vnet.net>
- Sender: owner-wri-mathgroup at wolfram.com
Hi All,
the trouble seems to be that only numerical arrays are allowed inside a
compiled function.
The Mathematica book, chapter 2.6.15 gives a hint:
Compile nevertheless also allows integers, complex numbers and logical
variables (True or False), as well as arrays of numbers.
Sincerely, Daniel
dh wrote:
> 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
>>
>
>