Exemplo n.º 1
0
        public BigInteger this[int degree]
        {
            get
            {
                ITerm term = Terms.FirstOrDefault(t => t.Exponent == degree);

                if (term == default(ITerm))
                {
                    return(BigInteger.Zero);
                }
                else
                {
                    return(term.CoEfficient);
                }
            }
            set
            {
                ITerm term = Terms.FirstOrDefault(t => t.Exponent == degree);

                if (term == default(ITerm))
                {
                    if (value != BigInteger.Zero)
                    {
                        ITerm          newTerm = new Term(value, degree);
                        TermCollection terms   = _terms;
                        terms.Add(newTerm);
                        SetTerms(terms);
                    }
                }
                else
                {
                    term.CoEfficient = value;
                }
            }
        }
Exemplo n.º 2
0
 public void RemoveZeros()
 {
     _terms.RemoveAll(t => t.CoEfficient == 0);
     if (!_terms.Any())
     {
         _terms = new TermCollection(Term.GetTerms(new BigInteger[] { 0 }).ToList());
     }
     SetDegree();
 }
Exemplo n.º 3
0
 private void SetTerms(IEnumerable <ITerm> terms)
 {
     _terms = new TermCollection(terms.OrderBy(t => t.Exponent).ToList());
     RemoveZeros();
 }
Exemplo n.º 4
0
 internal Polynomial()
 {
     _terms = new TermCollection();
 }