Class Polynomial<E>

java.lang.Object
dk.jonaslindstrom.ruffini.polynomials.elements.Polynomial<E>
All Implemented Interfaces:
java.util.function.BiFunction<E,Ring<E>,E>

public final class Polynomial<E> extends Object implements java.util.function.BiFunction<E,Ring<E>,E>
  • Constructor Details

    • Polynomial

      public Polynomial(Polynomial<E> p)
    • Polynomial

      public Polynomial(int degree, java.util.function.IntFunction<E> populator)
    • Polynomial

      public Polynomial(Collection<Integer> nonZero, java.util.function.IntFunction<E> populator)
    • Polynomial

      public Polynomial(Vector<E> coefficients, Ring<E> ring)
  • Method Details

    • constant

      public static <T> Polynomial<T> constant(T constant)
    • monomial

      public static <T> Polynomial<T> monomial(T coefficient, int degree)
    • of

      @SafeVarargs public static <T> Polynomial<T> of(T... coefficients)
      Construct a new polynomial with the given coefficients. The constant coefficient is first, the linear is second etc.
    • forEach

      public void forEach(java.util.function.BiConsumer<Integer,E> consumer)
    • forEachInParallel

      public void forEachInParallel(java.util.function.BiConsumer<Integer,E> consumer)
    • mapCoefficients

      public <X> Polynomial<X> mapCoefficients(java.util.function.Function<E,X> converter)
    • removeTerms

      public Polynomial<E> removeTerms(java.util.function.Predicate<E> predicate)
    • scale

      public Polynomial<E> scale(E scale, Ring<E> ring)
    • apply

      public E apply(E input, Ring<E> ring)
      Specified by:
      apply in interface java.util.function.BiFunction<E,Ring<E>,E>
    • batchApply

      public List<E> batchApply(List<E> input, PolynomialRingOverRing<E> ring)
      Evaluate this polynomial for all inputs in the given list.
    • degree

      public int degree()
    • getCoefficient

      public E getCoefficient(int i)
      Get the i'th coefficient or, if it is not present, null.
    • vector

      public Vector<E> vector(E zero)
      Return the coefficients of this polynomial as a vector. The coefficients (of degree less than the degree of the polynomial) that are not present will be replaced by the given zero value.
    • differentiate

      public Polynomial<E> differentiate(Ring<E> ring)
    • reverse

      public Polynomial<E> reverse()
    • toString

      public String toString()
      Overrides:
      toString in class Object
    • toString

      public String toString(String variable, java.util.function.Function<E,String> stringRepresentation)
    • toString

      public String toString(String variable)
    • equals

      public boolean equals(Object o)
      Overrides:
      equals in class Object
    • hashCode

      public int hashCode()
      Overrides:
      hashCode in class Object
    • getConstant

      public E getConstant()