private static double incidenceLineCircle(CartesianCoordinate point1, CartesianCoordinate point2, double radius)
        {
            double determinant = point1.CrossProduct(point2);
            double lineLength  = AlgebraLibrary.SRSS((point2.X - point1.X), (point2.Y - point1.Y));

            return(incidenceLineCircle(radius, lineLength, determinant));
        }
        /// <summary>
        /// The y-coordinates of a line intersecting a circle centered at 0,0.
        /// </summary>
        /// <param name="point1">First point forming the line.</param>
        /// <param name="point2">Second point forming the line.</param>
        /// <param name="radius">Radius of the circle centered at 0,0.</param>
        public static double[] CircleLineIntersectY(CartesianCoordinate point1, CartesianCoordinate point2, double radius)
        {
            CartesianOffset delta       = new CartesianOffset(point1, point2);
            double          determinant = point1.CrossProduct(point2);
            double          lineLength  = AlgebraLibrary.SRSS(delta.X(), delta.Y());
            double          incidence   = incidenceLineCircle(radius, lineLength, determinant);

            return(CircleLineIntersectY(radius, lineLength, incidence, determinant, delta));
        }