<html>
<head>
<meta content="text/html; charset=windows-1252"
http-equiv="Content-Type">
</head>
<body bgcolor="#FFFFFF" text="#000000">
Many people help Mike Meyer:<br>
<br>
<blockquote
cite="mid:CAHYVw0yO9spFbQ3S=cxNn0B4pjQjzBynn0SJog6vtBouhsROCw@mail.gmail.com"
type="cite">
<div class="gmail_extra">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.</div>
<div class="gmail_extra"><br>
</div>
<div class="gmail_extra">Maybe there's an easier way to tackle the
underlying problems. Anyone got a suggestion for such?</div>
</blockquote>
<br>
I didn't follow this discussion, so I might have missed some
essential issues, I apologize then. But if THIS is the problem...<br>
<br>
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...<br>
<br>
<b><font face="Courier New, Courier, monospace">colin ((x,y):l) =
all (\(c,d)->abs(px*d-py*c)<eps) q where <br>
((px,py):q) = [(ax-x,ay-y) | (ax,ay) <- l]<br>
</font></b><br>
[The iterated subtraction puts the first vector at the origin. eps
is the precision; better avoid ==0]<br>
<br>
For three dimensions and coplanarity, instead of separating one
vector, we need two, in order to compute their skew product. Then,
it suffices to verify that all its scalar products with the
remaining, vanish; if not, they are not coplanar.<br>
<br>
Jerzy Karczmarczuk<br>
<br>
<br>
<br>
</body>
</html>