in reply to module name: Algorithm::RectanglesContainingDot?

Well, let's see.

Is it a strictly geometric module, a graphics module, or what? This will help constrain the namespace. I'm guessing it's a geometric algorithm, so the Math::Geometry:: namespace is probably appropriate.

I think you're being overly granular as well. For instance, Math::Geometry::Planar implements isInside() as a method. Is this significantly different than what you're doing? If so, you might want to think about Math::Geometry:: as the namespace, and add a descriptive tag (Math::Geometry::Spherical::RegionSearch). If it's similar ... maybe you just want to use that module instead?

Algorithm:: as toplevel namespace is probably better applied to modules which provide an abstract way of doing something that doesn't necessarily map into a particular problem space. If this is a truly unique search algorithm, then yes, Algorithm:: is appropriate, especially if it's applicable across a range of different problems; if it's based on a known computer science algorithm, then name it after that (e.g., Graph::Kruskal, which is a specific algorithm for graphs, devised by J. Kruskal - also note: named after the problem space!). If it's your own abstract algorithm, then a more-descriptive name (with perhaps a deeper namespace) would be appropriate (Math::Geometry::PointInRange::DivideAndConquer, making something up at random).

The general point is that the more constrained you can make your namespace the better; it makes it much easier for people to search for, and easier for them to decide about.

  • Comment on Re: module name: Algorithm::RectanglesContainingDot?