Re: Re: Compile&Which
- To: mathgroup at smc.vnet.net
- Subject: [mg66066] Re: [mg66015] Re: Compile&Which
- From: gregorc <gregor.cernivec at fe.uni-lj.si>
- Date: Fri, 28 Apr 2006 06:33:07 -0400 (EDT)
- References: <e2ne3s$3b7$1@smc.vnet.net> <200604270625.CAA29166@smc.vnet.net>
- Sender: owner-wri-mathgroup at wolfram.com
Jens-Peer Kuska wrote: >Hi, > >Compile[] don't know what Which[] returns and >r = Compile[{{x, _Real, 1}}, > > Block[{l1 = {0.}}, > Which[x[[1]] == x[[2]], l1 = f[x] + g[x], > x[[1]] < x[[2]], l1 = f[x] - g[x]]; > > l1], {{f[_], _Real, 1}, {g[_], _Real, 1}}] > >work fine. > >Regards > > Jens > > > >"gregorc" <gregor.cernivec at fe.uni-lj.si> schrieb >im Newsbeitrag news:e2ne3s$3b7$1 at smc.vnet.net... >| Hello, >| >| I have trouble to understand how does the >Compile function handle the >| Which statement. Following there are two >examples (just as >| ilustration), both are compiled OK, but the >second one does not evaluate >| as a compiled expression. Can someone explain >the evaluation error? It >| is probably because the Which statement, but I >do not know how to do >| this correctly. Much thanks! >| >| 1st example: >| >| f = Compile[{{x, _Real, 1}}, {x[[1]]}]; >| g = Compile[{{x, _Real, 1}}, {x[[2]]}]; >| r = Compile[{{x, _Real, 1}}, f[x] + g[x], >{{f[x], _Real, 1}, {g[x], >| _Real, 1}}] >| CompiledFunction[{x}, f[x] + >g[x], -CompiledCode-] >| r[{3, 4}] >| {7.} >| >| 2nd example: >| >| f = Compile[{{x, _Real, 1}}, {x[[1]]}]; >| g = Compile[{{x, _Real, 1}}, {x[[2]]}]; >| r = Compile[{{x, _Real, 1}}, Which[x[[1]] ? >x[[2]], f[x] +g[x], x[[1]] < >| x[[2]], f[x] -g[x]], {{f[x], _Real, 1}, {g[x], >_Real, 1}}] >| CompiledFunction[{x}, Which[x?1? ? x?2?, f[x] + >g[x], x?1? < x?2?, f[x] >| - g[x]], -CompiledCode-] >| r[{3, 4}] >| CompiledFunction::cfse: Compiled expression >{-1.} should be a >| machine-size \real number. >| CompiledFunction::cfex: External evaluation >error at instruction 2; >| \proceeding with uncompiled evaluation. >| {-1.} >| >| Thanks, >| >| Cernivec Gregor >| >| > > > >__________ NOD32 1.1509 (20060427) Information __________ > >This message was checked by NOD32 antivirus system. >http://www.eset.com > > > > > Thank you very much. It realy works ok! With best regards, gregor
- References:
- Re: Compile&Which
- From: "Jens-Peer Kuska" <kuska@informatik.uni-leipzig.de>
- Re: Compile&Which