object Algebraic extends AlgebraicInstances with Serializable
- Alphabetic
- By Inheritance
- Algebraic
- Serializable
- Serializable
- AlgebraicInstances
- AnyRef
- Any
- Hide All
- Show All
- Public
- All
Type Members
-
final
class
BitBound
extends AnyVal
A bit bound represents either an upper or lower bound as some power of 2.
A bit bound represents either an upper or lower bound as some power of 2. Specifically, the bound is typically either
2^bitBoundor2^-bitBound. -
sealed abstract
class
Expr
extends Serializable
The Algebraic expression AST.
The Algebraic expression AST.
Algebraicsimply stores an expression tree representing all operations performed on it. We then use this tree to deduce certain properties about the algebraic expression and use them to perform exact sign tests, compute approximations, etc.Generally, this should be regarded as an internal implementation detail of
Algebraic. -
sealed abstract
class
ZeroBoundFunction
extends AnyRef
A zero bound function, defined over an algebraic expression algebra.
Value Members
-
final
def
!=(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
final
def
##(): Int
- Definition Classes
- AnyRef → Any
-
final
def
==(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
implicit final
val
AlgebraicAlgebra: AlgebraicAlgebra
- Definition Classes
- AlgebraicInstances
-
implicit final
val
AlgebraicTag: LargeTag[Algebraic]
- Definition Classes
- AlgebraicInstances
-
val
One: Algebraic
Returns an Algebraic expression equal to 1.
-
val
Zero: Algebraic
Returns an Algebraic expression equal to 0.
-
def
apply(n: String): Algebraic
Returns an Algebraic expression equivalent to
BigDecimal(n).Returns an Algebraic expression equivalent to
BigDecimal(n). Ifnis not parseable as aBigDecimalthen an exception is thrown. -
def
apply(n: Rational): Algebraic
Returns an Algebraic expression equivalent to
n. -
def
apply(n: BigDecimal): Algebraic
Returns an Algebraic expression equivalent to
n. -
def
apply(n: BigInt): Algebraic
Returns an Algebraic expression equivalent to
n. -
implicit
def
apply(n: Double): Algebraic
Returns an Algebraic expression equivalent to
n, ifnis finite.Returns an Algebraic expression equivalent to
n, ifnis finite. Ifnis either infinite orNaN, then anIllegalArgumentExceptionis thrown. -
def
apply(n: Float): Algebraic
Returns an Algebraic expression equivalent to
n, ifnis finite.Returns an Algebraic expression equivalent to
n, ifnis finite. Ifnis either infinite orNaN, then anIllegalArgumentExceptionis thrown. -
def
apply(n: Long): Algebraic
Returns an Algebraic expression equivalent to
n. -
implicit
def
apply(n: Int): Algebraic
Returns an Algebraic expression equivalent to
n. -
final
def
asInstanceOf[T0]: T0
- Definition Classes
- Any
-
def
clone(): AnyRef
- Attributes
- protected[java.lang]
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
-
final
def
eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
-
def
equals(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
def
finalize(): Unit
- Attributes
- protected[java.lang]
- Definition Classes
- AnyRef
- Annotations
- @throws( classOf[java.lang.Throwable] )
-
final
def
getClass(): Class[_]
- Definition Classes
- AnyRef → Any
-
def
hashCode(): Int
- Definition Classes
- AnyRef → Any
-
final
def
isInstanceOf[T0]: Boolean
- Definition Classes
- Any
-
final
def
ne(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
-
final
def
notify(): Unit
- Definition Classes
- AnyRef
-
final
def
notifyAll(): Unit
- Definition Classes
- AnyRef
-
final
def
nroot(value: BigDecimal, n: Int, scale: Int, roundingMode: RoundingMode): BigDecimal
Returns an absolute approximation of the n-th root of
value, up toscaledigits past the decimal point.Returns an absolute approximation of the n-th root of
value, up toscaledigits past the decimal point. This only uses the rounding mode to chop-off the few remaining digits after the approximation, so may be inaccurate. -
final
def
nroot(value: BigDecimal, n: Int, mc: MathContext): BigDecimal
Returns a relative approximation of the n-th root of
value, up to the number of digits specified bymc.Returns a relative approximation of the n-th root of
value, up to the number of digits specified bymc. This only uses the rounding mode to chop-off the few remaining digits after the approximation, so may be inaccurate. -
final
def
nrootApprox(x: BigDecimal, n: Int): BigDecimal
Returns a number that is approximately equal to
x.pow(1/n).Returns a number that is approximately equal to
x.pow(1/n). This number is useful as initial values in converging n-root algorithms, but not as a general purpose n-root algorithm. There are no guarantees about the accuracy here. -
def
root(poly: Polynomial[Rational], i: Int): Algebraic
Returns an Algebraic expression whose value is equivalent to the
i-th real root of the Polynomialpoly.Returns an Algebraic expression whose value is equivalent to the
i-th real root of the Polynomialpoly. Ifiis negative or does not an index a real root (eg the value is greater than or equal to the number of real roots) then anArithmeticExceptionis thrown. Roots are indexed starting at 0. So if there are 3 roots, then they are indexed as 0, 1, and 2.- poly
the polynomial containing at least i real roots
- i
the index (0-based) of the root
- returns
an algebraic whose value is the i-th root of the polynomial
-
def
roots(poly: Polynomial[Rational]): Vector[Algebraic]
Returns all of the real roots of the given polynomial, in order from smallest to largest.
Returns all of the real roots of the given polynomial, in order from smallest to largest.
- poly
the polynomial to return the real roots of
- returns
all the real roots of
poly
-
final
def
synchronized[T0](arg0: ⇒ T0): T0
- Definition Classes
- AnyRef
-
def
toString(): String
- Definition Classes
- AnyRef → Any
-
def
unsafeRoot(poly: Polynomial[BigInt], i: Int, lb: Rational, ub: Rational): Algebraic
Returns an Algebraic whose value is the real root within (lb, ub).
Returns an Algebraic whose value is the real root within (lb, ub). This is potentially unsafe, as we assume that exactly 1 real root lies within the interval, otherwise the results are undetermined.
- poly
a polynomial with a real root within (lb, ub)
- i
the index of the root in the polynomial
- lb
the lower bound of the open interval containing the root
- ub
the upper bound of the open interval containing the root
-
final
def
wait(): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
-
final
def
wait(arg0: Long, arg1: Int): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
-
final
def
wait(arg0: Long): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
-
object
BFMSS
extends ZeroBoundFunction with Product with Serializable
An implementation of "A Separation Bound for Real Algebraic Expressions", by Burnikel, Funke, Mehlhorn, Schirra, and Schmitt.
An implementation of "A Separation Bound for Real Algebraic Expressions", by Burnikel, Funke, Mehlhorn, Schirra, and Schmitt. This provides a good ZeroBoundFunction for use in sign tests.
Unlike the paper, we use log-arithmetic instead of working with exact, big integer values. This means our bound isn't technically as good as it could be, but we save the cost of working with arithmetic. We also perform all log arithmetic using
Longs and check for overflow (throwingArithmeticExceptions when detected). In practice we shouldn't hit this limit, but in case we do, we prefer to throw over failing silently.- Annotations
- @SerialVersionUID()
- object BitBound
- object Expr extends Serializable
-
object
LiYap
extends ZeroBoundFunction with Product with Serializable
An implementation of "A New Constructive Root Bound for Algebraic Expressions" by Chen Li & Chee Yap.
An implementation of "A New Constructive Root Bound for Algebraic Expressions" by Chen Li & Chee Yap.
- Annotations
- @SerialVersionUID()