All Downloads are FREE. Search and download functionalities are using the official Maven repository.

cc.redberry.rings.scaladsl.package.scala Maven / Gradle / Ivy

The newest version!
package cc.redberry.rings


/**
  * @since 1.0
  */
package object scaladsl extends Predef {

  type Coder[E] = cc.redberry.rings.io.Coder[E, _, _]
  type DegreeVector = poly.multivar.DegreeVector
  type Ordering = java.util.Comparator[DegreeVector]
  type IntZ = bigint.BigInteger
  type Rational[E] = cc.redberry.rings.Rational[E]

  type IPolynomial[P <: poly.IPolynomial[P]]
  = poly.IPolynomial[P]
  type IUnivariatePolynomial[P <: poly.univar.IUnivariatePolynomial[P]]
  = poly.univar.IUnivariatePolynomial[P]

  type UnivariatePolynomial[E] = poly.univar.UnivariatePolynomial[E]
  type UnivariatePolynomialZp64 = poly.univar.UnivariatePolynomialZp64
  type PrecomputedInverse[Poly <: IUnivariatePolynomial[Poly]] = poly.univar.UnivariateDivision.InverseModMonomial[Poly]

  type AMonomial[E <: poly.multivar.AMonomial[E]] = poly.multivar.AMonomial[E]
  type MonomialZp64 = poly.multivar.MonomialZp64
  type Monomial[E] = poly.multivar.Monomial[E]

  type AMultivariatePolynomial[
  T <: poly.multivar.AMonomial[T],
  P <: poly.multivar.AMultivariatePolynomial[T, P]]
  = poly.multivar.AMultivariatePolynomial[T, P]
  type MultivariatePolynomial[E] = poly.multivar.MultivariatePolynomial[E]
  type MultivariatePolynomialZp64 = poly.multivar.MultivariatePolynomialZp64

  type PolynomialFactorDecomposition[P <: IPolynomial[P]] = poly.PolynomialFactorDecomposition[P]

  private[scaladsl] trait LowPrioritySyntax
    extends PolynomialSetSyntax
      with PolynomialCfSyntax
      with UnivariateSyntax
      with UnivariateCfSyntax
      with MultivariateSyntax
      with MultivariateCfSyntax
      with IntegerSyntax

  object syntax extends LowPrioritySyntax {
    implicit def cfOps[E, Poly <: IPolynomial[Poly]](self: E)(implicit pRing: IPolynomialRing[Poly, E])
    = new CfOps[E, Poly](self)(pRing)

    implicit def ringOps[E](lhs: E)(implicit ringSupport: RingSupport[E]): RingOps[E] = new RingOps[E](lhs)(ringSupport.ringEv(lhs))
  }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy