Yes, solving it directly is probably a better tact.  I believe There's quite a bit of research literature on this out there in the computational geometry literature.  

Have you looked at the CGal c++ lib to check if they have any specialized code for low dimensional geoemtry? CGal or something like it is very likely to have what you want. 

Perhaps more importantly: what are your precision needs?  Cause some of these questions have very real precision trade offs depending on your goals 



On Saturday, April 25, 2015, Mike Meyer <mwm@mired.org> wrote:
Well, none of the suggested solutions for computing the rank of a matrix really suited my needs, as dragging in something like BLAS introduce more cost than just integrating the bed-and-breakfast library into my own library. So let me try a different track.

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?