`angle(point1, point2)`

determines the angle between point1 and point2. The smallest angle is returned and `π`

obtains when the points are oppositely directed: `[(1,0), (-1,0)]`

.

So, `0 <= angle(p1, p2) <= pi`

. It does this with more accuracy than the usual way.

`angle(p1, p2)`

expects `p1`

, `p2`

to be points in a 2D, 3D … ManyD space, with Cartesian coordinates. To use any given point representation, define its Tuple constructor (unless one already exists). `Vectors`

, `NamedTuples`

, `SVectors`

already have that.

This package is posted by request. The method is work of Professor Kahan (pg 15).