Function Works in Notebook NOT Package
- To: mathgroup at smc.vnet.net
- Subject: [mg86518] Function Works in Notebook NOT Package
- From: Andrew Beveridge <acbev at lanl.gov>
- Date: Thu, 13 Mar 2008 04:29:41 -0500 (EST)
Any help would be appreciated. I am using Mathematica 5.2. I wrote a function that compares rows in a 2D array. If the individual values of the rows are within some tolerance, for example 15%, it is considered a match. Since I do not know many elements will be in each row, I had to write a conditional for any value of elements. There is probably a better way of doing this, any suggestions welcomed. Anyway the following function works fine IF I evaluate it in a Notebook. When I try to place it in a package file it does not work. It appears the replacement rules are not working. Why does not it work in the package file? Function: PreliminaryAlignment[x_List, percentTolerance_] := Module[ {ListLength,numLength, correctForm,numData, blankTable,lowerLimit, upperLimit, conditionalTable,stringConditional}, correctForm =SameQ@@(Length/@x); numData = Rest/@x; ListLength=Length/@numData; numLength = First[ListLength]; lowerLimit = ToString[ 1 - percentTolerance]; upperLimit = ToString[1 + percentTolerance]; If[correctForm=== False, Return[$Failed], blankTable = "z:Table[_, {"<>ToString[numLength]<>"}]"; conditionalTable = Table["LessEqual[Times["<>lowerLimit<>",Part[kkk, j, " <> ToString[i] <> "]], Part[z," <> ToString[ i] <> "], Times["<>upperLimit<>", Part[kkk, j, "<>ToString[i]<>"]]] " , {i,1,numLength}] ; stringConditional = MakeExpression[ blankTable <> "/; And[" <> \ StringReplace[ToString[conditionalTable]<> "]", {"{"\[Rule] " ", "}"\[Rule] ""} ] ] ; Union[ Table[Flatten[ Position[numData, ReleaseHold[ stringConditional/.{kkk\[Rule] numData,j\[Rule]l} ] ] ],{l,1, Length[numData]} ] ] ] ] Andrew C Beveridge MS M888 Los Alamos National Laboratory Los Alamos, NM 87545 505-665-2092 e-mail: acbev at lanl.gov