Exemplo n.º 1
0
        public static CreatePolinom operator *(CreatePolinom p, double a)
        {
            if (p == null)
            {
                throw new ArgumentNullException();
            }

            CreatePolinom polinom = p;

            for (int i = 0; i < p.degree + 1; i++)
            {
                polinom[i] = a * polinom[i];
            }
            return(polinom);
        }
Exemplo n.º 2
0
 private static void Deconv(CreatePolinom dividend, CreatePolinom divisor, out CreatePolinom quotient, out CreatePolinom remainder)
 {
     if (ReferenceEquals(dividend, null) || ReferenceEquals(divisor, null))
     {
         throw new ArgumentNullException();
     }
     remainder = dividend;
     quotient  = new CreatePolinom(remainder.Degree - divisor.Degree);
     for (int i = 0; i < quotient.Degree + 1; i++)
     {
         CreatePolinom coef = (new CreatePolinom(remainder.Degree - divisor.Degree)) * (CreatePolinom)(remainder[remainder.Degree - i] / divisor[divisor.Degree]);
         quotient[quotient.Degree - i] = coef[coef.Degree];
         coef = Multiply(coef, divisor);
         //for (int j = 0; j < divisor.degree + 1; j++)
         //{
         remainder -= coef;
         //}
     }
 }
Exemplo n.º 3
0
        public override bool Equals(object obj)
        {
            if (ReferenceEquals(obj, null))
            {
                return(false);
            }
            if (ReferenceEquals(obj, this))
            {
                return(true);
            }
            CreatePolinom p = new CreatePolinom();

            if (p.GetType() != obj.GetType())
            {
                return(false);
            }
            p = (CreatePolinom)obj;
            return(Equals(p));
        }
Exemplo n.º 4
0
        public static CreatePolinom operator +(CreatePolinom p1, CreatePolinom p2)
        {
            if (p1 == null || p2 == null)
            {
                throw new ArgumentNullException();
            }

            CreatePolinom newm = p1.Degree > p2.Degree ? p1 : p2;

            for (int i = 0; i < Math.Min(p1.Degree, p2.Degree) + 1; i++)
            {
                if (newm.Equals(p1))
                {
                    newm.coeff[i] += p2.coeff[i];
                }
                else
                {
                    newm.coeff[i] += p1.coeff[i];
                }
            }
            return(newm);
        }
Exemplo n.º 5
0
 public bool Equals(CreatePolinom p)
 {
     if (ReferenceEquals(p, null))
     {
         return(false);
     }
     if (ReferenceEquals(p, this))
     {
         return(true);
     }
     if (p.degree != degree)
     {
         return(false);
     }
     for (int i = 0; i < degree; i++)
     {
         if (Math.Abs(coeff[i] - p[i]) > eps)
         {
             return(false);
         }
     }
     return(true);
 }
Exemplo n.º 6
0
        public static CreatePolinom Multiply(CreatePolinom lhs, CreatePolinom rhs)
        {
            if (ReferenceEquals(lhs, null) || ReferenceEquals(rhs, null))
            {
                throw new ArgumentNullException();
            }
            CreatePolinom p2 = new CreatePolinom(rhs.Degree + lhs.Degree);

            for (int i = 0; i < lhs.Degree + 1; i++)
            {
                CreatePolinom p1 = new CreatePolinom(rhs.coeff);
                if (Math.Abs(lhs[i]) > eps)
                {
                    p1 = p1 * lhs[i];

                    for (int k = 0; k < rhs.Degree + 1; k++)
                    {
                        p2[k + i] += p1[k];
                    }
                }
            }
            p2[p2.Degree] -= 1;
            return(p2);
        }
Exemplo n.º 7
0
 public static CreatePolinom Mod(CreatePolinom lhs, CreatePolinom rhs)
 {
     return(lhs % rhs);
 }
Exemplo n.º 8
0
 public static CreatePolinom Divide(CreatePolinom lhs, CreatePolinom rhs)
 {
     return(lhs / rhs);
 }
Exemplo n.º 9
0
 public static CreatePolinom Subtract(CreatePolinom lhs, CreatePolinom rhs)
 {
     return(lhs - rhs);
 }
Exemplo n.º 10
0
 public static CreatePolinom Add(CreatePolinom lhs, CreatePolinom rhs)
 {
     return(lhs + rhs);
 }