spire.math

Polynomial

trait Polynomial[C] extends AnyRef

Self Type
Polynomial[C]
Linear Supertypes
AnyRef, Any
Known Subclasses
Ordering
  1. Alphabetic
  2. By inheritance
Inherited
  1. Polynomial
  2. AnyRef
  3. Any
  1. Hide All
  2. Show all
Learn more about member selection
Visibility
  1. Public
  2. All

Abstract Value Members

  1. abstract def *(rhs: Polynomial[C])(implicit ring: Semiring[C], eq: Eq[C]): Polynomial[C]

  2. abstract def *:(k: C)(implicit ring: Semiring[C], eq: Eq[C]): Polynomial[C]

  3. abstract def +(rhs: Polynomial[C])(implicit ring: Semiring[C], eq: Eq[C]): Polynomial[C]

  4. abstract def apply(x: C)(implicit r: Semiring[C]): C

    Evaluate the polynomial at x.

  5. abstract def coeffsArray(implicit ring: Semiring[C]): Array[C]

    Returns the coefficients in little-endian order.

    Returns the coefficients in little-endian order. So, the i-th element is coeffsArray(i) * (x ** i).

  6. implicit abstract def ct: ClassTag[C]

  7. abstract def degree: Int

    Returns the degree of this polynomial.

  8. abstract def derivative(implicit ring: Ring[C], eq: Eq[C]): Polynomial[C]

  9. abstract def foreach[U](f: (Int, C) ⇒ U): Unit

    Traverses each term in this polynomial, in order of degree, lowest to highest (eg.

    Traverses each term in this polynomial, in order of degree, lowest to highest (eg. constant term would be first) and calls f with the degree of term and its coefficient. This may skip zero terms, or it may not.

  10. abstract def integral(implicit field: Field[C], eq: Eq[C]): Polynomial[C]

  11. abstract def isZero: Boolean

    Returns true if this polynomial is ring.zero.

  12. abstract def maxOrderTermCoeff(implicit ring: Semiring[C]): C

    Returns the coefficient of max term of this polynomial.

  13. abstract def nth(n: Int)(implicit ring: Semiring[C]): C

    Returns the coefficient of the n-th degree term.

  14. abstract def reductum(implicit e: Eq[C], ring: Semiring[C], ct: ClassTag[C]): Polynomial[C]

    Returns a polynomial with the max term removed.

  15. abstract def termsIterator: Iterator[Term[C]]

    Return an iterator of non-zero terms.

    Return an iterator of non-zero terms.

    This method is used to implement equals and hashCode.

    NOTE: This method uses a (_ == 0) test to prune zero values. This makes sense in a context where Semiring[C] and Eq[C] are unavailable, but not other places.

  16. abstract def toDense(implicit ring: Semiring[C], eq: Eq[C]): PolyDense[C]

    Returns a polynmial that has a dense representation.

  17. abstract def toSparse(implicit ring: Semiring[C], eq: Eq[C]): PolySparse[C]

    Returns a polynomial that has a sparse representation.

  18. abstract def unary_-()(implicit ring: Rng[C]): Polynomial[C]

Concrete Value Members

  1. final def !=(arg0: AnyRef): Boolean

    Definition Classes
    AnyRef
  2. final def !=(arg0: Any): Boolean

    Definition Classes
    Any
  3. final def ##(): Int

    Definition Classes
    AnyRef → Any
  4. def **(k: Int)(implicit ring: Rig[C], eq: Eq[C]): Polynomial[C]

  5. def -(rhs: Polynomial[C])(implicit ring: Rng[C], eq: Eq[C]): Polynomial[C]

  6. def :*(k: C)(implicit ring: Semiring[C], eq: Eq[C]): Polynomial[C]

  7. def :/(k: C)(implicit field: Field[C], eq: Eq[C]): Polynomial[C]

  8. final def ==(arg0: AnyRef): Boolean

    Definition Classes
    AnyRef
  9. final def ==(arg0: Any): Boolean

    Definition Classes
    Any
  10. final def asInstanceOf[T0]: T0

    Definition Classes
    Any
  11. def clone(): AnyRef

    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  12. def compose(y: Polynomial[C])(implicit ring: Rig[C], eq: Eq[C]): Polynomial[C]

    Compose this polynomial with another.

  13. def data(implicit ring: Semiring[C], eq: Eq[C]): Map[Int, C]

    Returns a map from exponent to coefficient of this polynomial.

  14. final def eq(arg0: AnyRef): Boolean

    Definition Classes
    AnyRef
  15. def equals(that: Any): Boolean

    Definition Classes
    Polynomial → AnyRef → Any
  16. def evalWith[A](x: A)(f: (C) ⇒ A)(implicit arg0: Semiring[A], arg1: Eq[A], arg2: ClassTag[A], ring: Semiring[C], eq: Eq[C]): A

  17. def finalize(): Unit

    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( classOf[java.lang.Throwable] )
  18. def flip(implicit ring: Rng[C], eq: Eq[C]): Polynomial[C]

    This will flip/mirror the polynomial about the y-axis.

    This will flip/mirror the polynomial about the y-axis. It is equivalent to poly.compose(-Polynomial.x), but will likely be faster to calculate.

  19. def foreachNonZero[U](f: (Int, C) ⇒ U)(implicit ring: Semiring[C], eq: Eq[C]): Unit

    Traverses each non-zero term in this polynomial, in order of degree, lowest to highest (eg.

    Traverses each non-zero term in this polynomial, in order of degree, lowest to highest (eg. constant term would be first) and calls f with the degree of term and its coefficient.

  20. final def getClass(): Class[_]

    Definition Classes
    AnyRef → Any
  21. def hashCode(): Int

    Definition Classes
    Polynomial → AnyRef → Any
  22. def isConstant: Boolean

    Returns true iff this polynomial is constant.

  23. final def isInstanceOf[T0]: Boolean

    Definition Classes
    Any
  24. def map[D](f: (C) ⇒ D)(implicit arg0: Semiring[D], arg1: Eq[D], arg2: ClassTag[D], ring: Semiring[C], eq: Eq[C]): Polynomial[D]

  25. def mapTerms[D](f: (Term[C]) ⇒ Term[D])(implicit arg0: Semiring[D], arg1: Eq[D], arg2: ClassTag[D], ring: Semiring[C], eq: Eq[C]): Polynomial[D]

  26. def maxTerm(implicit ring: Semiring[C]): Term[C]

    Returns the term of the highest degree in this polynomial.

  27. def minTerm(implicit ring: Semiring[C], eq: Eq[C]): Term[C]

    Returns the non-zero term of the minimum degree in this polynomial, unless it is zero.

    Returns the non-zero term of the minimum degree in this polynomial, unless it is zero. If this polynomial is zero, then this returns a zero term.

  28. def monic(implicit f: Field[C], eq: Eq[C]): Polynomial[C]

    Returns this polynomial as a monic polynomial, where the leading coefficient (ie.

    Returns this polynomial as a monic polynomial, where the leading coefficient (ie. maxOrderTermCoeff) is 1.

  29. final def ne(arg0: AnyRef): Boolean

    Definition Classes
    AnyRef
  30. final def notify(): Unit

    Definition Classes
    AnyRef
  31. final def notifyAll(): Unit

    Definition Classes
    AnyRef
  32. def pow(k: Int)(implicit ring: Rig[C], eq: Eq[C]): Polynomial[C]

  33. def reciprocal(implicit ring: Semiring[C], eq: Eq[C]): Polynomial[C]

    Returns the reciprocal of this polynomial.

    Returns the reciprocal of this polynomial. Essentially, if this polynomial is p with degree n, then returns a polynomial q(x) = x^n*p(1/x).

    See also

    http://en.wikipedia.org/wiki/Reciprocal_polynomial

  34. def removeZeroRoots(implicit ring: Semiring[C], eq: Eq[C]): Polynomial[C]

    Removes all zero roots from this polynomial.

  35. def roots(implicit finder: RootFinder[C]): Roots[C]

    Returns the real roots of this polynomial.

    Returns the real roots of this polynomial.

    Depending on C, the finder argument may need to be passed "explicitly" via an implicit conversion. This is because some types (eg BigDecimal, Rational, etc) require an error bound, and so provide implicit conversions to RootFinders from the error type. For instance, BigDecimal requires either a scale or MathContext. So, we'd call this method with poly.roots(MathContext.DECIMAL128), which would return a Roots[BigDecimal whose roots are approximated to the precision specified in DECIMAL128 and rounded appropriately.

    On the other hand, a type like Double doesn't require an error bound and so can be called without specifying the RootFinder.

    finder

    a root finder to extract roots with

    returns

    the real roots of this polynomial

  36. def shift(h: C)(implicit ring: Ring[C], eq: Eq[C]): Polynomial[C]

    Shift this polynomial along the x-axis by h, so that this(x + h) == this.shift(h).apply(x).

    Shift this polynomial along the x-axis by h, so that this(x + h) == this.shift(h).apply(x). This is equivalent to calling this.compose(Polynomial.x + h), but is likely to compute the shifted polynomial much faster.

  37. def signVariations(implicit ring: Semiring[C], eq: Eq[C], signed: Signed[C]): Int

    Returns the number of sign variations in the coefficients of this polynomial.

    Returns the number of sign variations in the coefficients of this polynomial. Given 2 consecutive terms (ignoring 0 terms), a sign variation is indicated when the terms have differing signs.

  38. final def synchronized[T0](arg0: ⇒ T0): T0

    Definition Classes
    AnyRef
  39. def terms(implicit ring: Semiring[C], eq: Eq[C]): List[Term[C]]

    Returns a list of non-zero terms.

  40. def toString(): String

    Definition Classes
    Polynomial → AnyRef → Any
  41. final def wait(): Unit

    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  42. final def wait(arg0: Long, arg1: Int): Unit

    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  43. final def wait(arg0: Long): Unit

    Definition Classes
    AnyRef
    Annotations
    @throws( ... )

Inherited from AnyRef

Inherited from Any

Ungrouped