On Sat, Apr 25, 2015 at 10:49 AM, Jerzy Karczmarczuk <jerzy.karczmarczuk@unicaen.fr> wrote:
Many people help Mike Meyer:

And I do appreciate it. 
My real problem is that I've got a list of points in R3  and want to decide if they determine a plane, meaning they are coplanar but not colinear. Similarly, given a list of points in R2, I want to verify that they aren't colinear. Both of these can be done by converting the list of points to a matrix and finding the rank of the matrix, but I only use the rank function in the definitions of colinear and coplanar.

Maybe there's an easier way to tackle the underlying problems. Anyone got a suggestion for such?

I didn't follow this discussion, so I might have missed some essential issues, I apologize then. But if THIS is the problem...

All these powerful universal libraries, with several hundreds of lines of code are important and useful, but if the problem is to find whether a list of pairs (x,y) is collinear or not, I presume that such program as below could do. I am ashamed showing something like that...

colin ((x,y):l) = all (\(c,d)->abs(px*d-py*c)<eps) q where
 ((px,py):q) = [(ax-x,ay-y) | (ax,ay) <- l]

[The iterated subtraction puts the first vector at the origin. eps is the precision; better avoid ==0]

That's not far from what I wound up with, except I generalized it to work for both 2d and 3d vectors. And yeah, I clearly got off on the wrong foot when I turned up "test the rank of the matrix" for finding collinearity and coplanarity.

This pretty much solves my problem. Thanks to all who helped.