Help - Compile[] problems
- To: mathgroup at smc.vnet.net
- Subject: [mg4871] Help - Compile[] problems
- From: frankeye at aol.com (FrankEye)
- Date: Thu, 26 Sep 1996 22:42:25 -0400
- Organization: America Online, Inc. (1-800-827-6364)
- Sender: owner-wri-mathgroup at wolfram.com
Apparently, either Compile[] has trouble inferring variable types, or I don't well understand how to use it. Insights wanted -- TIA. Here's the problem, with code snippets below. I'm trying to compile an expression, which is a function which takes arguments and passes into a Module: imgCSAc=Compile[{{inputimage,_Real,2},{aA,_Real,2}, {sigma2,_Real},{torflag,_Integer},{nsweeps, _Integer}}, Module[{m,n,i,j,k,l,indices...etc}, ...etc...{stuff which causes no problem for Compile[]}... For[m=1, m<=npix, m++, i=indices[[m,1]]; j=indices[[m,2]]; (* indices is a rank-2 matrix of integer indices *) storem=Flatten[ image[[ Range[i-halfWts,i+halfWts], Range[j-halfWts,j+halfWts] ]] ]; ....etc.... ], {{i,_Integer},{j,_Integer},{k,_Integer},{m,_Integer}, {indices,_Integer,2},{halfWts,_Integer},...etc...}] So, I try to Enter this Compile[] request, and get back messages such as the following: Compile::"cpintlt": "Range[i-halfWts,i+halfWts] at position <<2>> of image[[ Range[i-halfWts,i+halfWts], Range[j-halfWts,j+halfWts] ]] should be either a non-zero integer or a vector of non-zero integers; evaluation will use the uncompiled function." Well, I thought that my declaration of sub-expression types in the trailing portion of the Compile[] request would tell Mathematica what it is apparently not understanding. I *am* using Version 3.0 beta 3. What am I doing that is wrong? Would the more bulletproof version 2.2.2 work? Regards, Frank J. Iannarilli, Jr. frankeye at aol.com OR franki at aerodyne.com ==== [MESSAGE SEPARATOR] ====