/// <summary>
        /// Implements the / operator.
        /// </summary>
        /// <param name="a">a.</param>
        /// <param name="b">The b.</param>
        /// <returns>The result of the operator.</returns>
        public static PolarParametricEquation operator /(PolarParametricEquation a, double b)
        {
            PolarParametricEquation parametric = a.CloneParametric();

            parametric._radius  /= b;
            parametric._azimuth /= b;
            return(parametric);
        }
        /// <summary>
        /// Returns the current parametric function, differentiated to the specified # of times.
        /// </summary>
        /// <param name="index">The index to differentiate to, which must be greater than 0.</param>
        /// <returns>HyperbolicParametric.</returns>
        public PolarParametricEquation DifferentiateBy(int index)
        {
            PolarParametricEquation differential = CloneParametric();

            differential._radius  = _radius.DifferentiateBy(index) as DoubleParametricComponents;
            differential._azimuth = _azimuth.DifferentiateBy(index) as AngularParametricComponents;
            differential._differentiationIndex = index;
            return(differential);
        }
        /// <summary>
        /// Clones the curve.
        /// </summary>
        /// <returns>LinearCurve.</returns>
        public PolarParametricEquation CloneParametric()
        {
            PolarParametricEquation parametric = new PolarParametricEquation();

            parametric._radius.Clone();
            parametric._azimuth.Clone();
            parametric._differentiationIndex = _differentiationIndex;
            return(parametric);
        }