Trouble Loading Packages...
- To: mathgroup at smc.vnet.net
- Subject: [mg128298] Trouble Loading Packages...
- From: Richard Palmer <rhpalmer at gmail.com>
- Date: Fri, 5 Oct 2012 02:51:27 -0400 (EDT)
- Delivered-to: l-mathgroup@mail-archive0.wolfram.com
- Delivered-to: l-mathgroup@wolfram.com
- Delivered-to: mathgroup-newout@smc.vnet.net
- Delivered-to: mathgroup-newsend@smc.vnet.net
...using the latest version of Mathematica on a 64 bit windows machine. Here is the relevant code In[1]:= Directory[] Out[1]= "C:\\Users\\Richard\\Documents" FileNames[{"*.m"}] {"cellNeighbours.m", "myS.m"} FileExistsQ["cellNeighbours.m"] True In[5]:= FindFile["cellNeighbours.m"] Out[5]= "C:\\Users\\Richard\\Documents\\cellNeighbours.m" In[6]:= << cellNeighbours` In[7]:= ?cellNeighbours During evaluation of In[7]:= Information::notfound: Symbol cellNeighbours not found. >> Needs["cellNeighbours`"] Needs::nocont: Context cellNeighbours` was not created when Needs was evaluated. >> Same thing happens with the myS package. Why can't if find and load the package? -------------------------------------------------------------------------- This is the cellNeighbours Package BeginPackage["cellNeighbours`"]; cellNeighbours::usage = "cellNeighbours[r,c] sets up a function to quickly return a list of the n \ nearest neighbours of a given cell in an r\[ScriptX]c matrix. By deafult, a \ toroidal distance matrix is assumed."; neighbourhoodList::usage = "neighbourhoodList[rI,cI,k] returns a list of the k nearest cells to \ \!\(\*SubscriptBox[\(cell\), \(r1, c1\)]\) in an r\[ScriptX]c matrix. By \ deafult, a toroidal distance matrix is assumed"; toroidalDistance::usage = "teroidalDistance[{r1,c1},{r2.c2}] returns a \!\(\* StyleBox[\"wrap\",\nFontSlant->\"Italic\"]\)\!\(\* StyleBox[\" \",\nFontSlant->\"Italic\"]\)\!\(\* StyleBox[\"around\",\nFontSlant->\"Italic\"]\)\!\(\* StyleBox[\" \",\nFontSlant->\"Italic\"]\)distance between two points"; distancefn::usage = "distance[a,b,len] computes a \!\(\* StyleBox[\"wrap\",\nFontSlant->\"Italic\"]\)\!\(\* StyleBox[\" \",\nFontSlant->\"Italic\"]\)\!\(\* StyleBox[\"around\",\nFontSlant->\"Italic\"]\) distance from a to b between \ two cells on the same row or column. \!\(\* StyleBox[\"len\",\nFontSlant->\"Italic\"]\) is the length of the \ row/column."; Begin["Private`"]; rows = -1; cols = -1; cellNeighbourhood = -1; cellIndices = -1; cellNeighbours[r_Integer, c_Integer] := Module[{}, rows = r; cols = c; cellIndices = Table[{i, j}, {i, 1, r}, {j, 1, c}]; cellNeighbourhood = Nearest[Flatten[cellIndices, 1] DistanceFunction -> toroidalDistance]] /; r > 1 && c > 1; distancefn = Compile[{{a, _Integer}, {b, _Integer}, {len, _Integer}}, Module[{mn, mx, result}, If[a == b, Return[0]]; mx = Max[a, b]; mn = Min[a, b]; result = Min[mx - mn, mn + len - mx]; If[result < 0, Print[{"distance error", a, b, len, result}]]; Return[result]]]; toroidalDistance[p1_, p2_] := Module[{r, c}, r = distancefn[First[p1], First[p2], rows]; c = distancefn[Last[p1], Last[p2], cols]; r^2 + c^2]; neighbourhoodList[r_, c_, n_] := cellNeighbourhood[{r, c}, n]; End[]; EndPackage[]; -- Richard Palmer Home 941 412 8828 Cell 508 982-7266