Exemplo n.º 1
0
        // ----------------------------------------
        // ------- object methods overriding ------
        // ----------------------------------------

        public object Clone()
        {
            LagrangePolynom <T, C> newObject = new LagrangePolynom <T, C>(this.points, false, false);

            newObject.difMatrix = this.difMatrix;

            return(newObject);
        }
Exemplo n.º 2
0
        public override bool Equals(object obj)
        {
            if (obj is LagrangePolynom <T, C> )
            {
                LagrangePolynom <T, C> poly = obj as LagrangePolynom <T, C>;

                // Если количество точек совпадает, проверяем поточечно.

                if (poly.points.Length == this.points.Length)
                {
                    for (int i = 0; i < poly.points.Length; i++)
                    {
                        if (!calc.eqv(this.points[i].X, poly.points[i].X) || !calc.eqv(this.points[i].Y, poly.points[i].Y))
                        {
                            return(false);
                        }
                    }

                    return(true);
                }

                // Если количество точек не совпадает, то...
                // К сожалению, может иметь место линейная зависимость.
                // Например, параболу тоже при желании можно определить по пяти точкам.
                // Единственный выход - приводить все к канонической форме и сравнивать по коэффициентам.

                return(this.AsStandardPolynom.Equals(poly.AsStandardPolynom));
            }

            else if (obj is Polynom <T, C> )
            {
                return(this.AsStandardPolynom.Equals(obj as Polynom <T, C>));
            }

            return(false);
        }
Exemplo n.º 3
0
 /// <summary>
 /// Tests whether the current polynom is equal
 /// to a certain LagrangePolynom by converting the latter
 /// to canonical polynomial form and comparing the coefficients.
 /// </summary>
 /// <param name="polynom">The object to test equality with.</param>
 /// <returns>True if the current polynom is equal to the passed object, false otherwise.</returns>
 public bool Equals(LagrangePolynom <T, C> polynom)
 {
     return(this.Equals(polynom.AsStandardPolynom));
 }