final class DCons[d <: Digit, T <: Dense] extends Dense
Non-zero dense number. The digit is the least significant bit
Author:
Harshad Deo
- d
Lowest priority bit
- T
Rest of the bits, in decreasing order of priority
- Since
0.1
- Grouped
- Alphabetic
- By Inheritance
- DCons
- Dense
- AnyRef
- Any
- by any2stringadd
- by StringFormat
- by Ensuring
- by ArrowAssoc
- Hide All
- Show All
- Public
- Protected
Instance Constructors
- new DCons()
Type Members
- type Add[b <: Dense] = Add.b.Match[AddNz[b], ::[d, T], Dense]
Add to the number
- type Add1[b <: Dense] = Dense.digit.Match[::[D0, Dense.Add.Inc], ::[d, T.Add[Add1.b.tail]], Dense]
- Attributes
- protected
- type AddNz[b <: Dense] = d.Match[Add1[b], ::[AddNz.b.digit, T.Add[AddNz.b.tail]], Dense]
- Attributes
- protected
- type Compare[B <: Dense] = CompareC[B, EQ]
Compares with the other dense number
- type CompareC[B <: Dense, Carry <: Comparison] = CompareC.B.Match[T.CompareC[CompareC.B.tail, NewCarry[Carry, CompareC.B.digit]], GT, Comparison]
- type Dec = d.Match[T.Match[::[D0, T], DNil, Dense], ::[D1, T.Dec], Dense]
Decrement the number
- type ExpHelper[arg <: Dense, res <: Dense] = T.ExpHelper[ExpHelper.arg.Sq, d.Match[*[res, arg], res, Dense]]
- type Inc = d.Match[::[D0, T.Inc], ::[D1, T], Dense]
Increment the number
- type Karatsuba[x <: Dense, res <: Dense] = T.Karatsuba[Karatsuba.x.ShiftL, d.Match[+[x, res], res, Dense]]
- type Len = Dense.Len.Match[Dense.digit.Match[DCons[D0, Dense.tail.Inc], DCons[D1, Dense.Len.tail], Dense], DCons[D1, DNil], Dense]
- type Match[NonZero <: Up, IfZero <: Up, Up] = NonZero
Typeconstructor for querying whether this is zero
- type Mult[b <: Dense] = Dense.Mult.b.Match[Karatsuba[b, DNil], DNil, Dense]
Multiply with the number
- type NewCarry[prev <: Comparison, od <: Digit] = Digit.Compare.Match[LT, prev, GT, Comparison]
- Attributes
- protected
- type ShiftL = DCons[D0, DCons[d, T]]
Unsigned left shift
- type ShiftR = T
Unsigned right shift
- type Sq = T.Karatsuba[DCons[D0, DCons[d, T]], d.Match[DCons[d, T], DNil, Dense]]
Square the number
- type YodaExp[b <: Dense] = ExpHelper[b, _1]
Yoda exponent - to the power of the base, raise the exponent (this is the base).
Yoda exponent - to the power of the base, raise the exponent (this is the base). Implemented this way for efficiency
Author:
Harshad Deo
- Definition Classes
- Dense
- Since
0.1
- type digit = d
Lowest priority bit
- type tail = T
Rest of the bits, stored in reverse order or priority
Value Members
- final def !=(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
- final def ##(): Int
- Definition Classes
- AnyRef → Any
- def +(other: String): String
- def ->[B](y: B): (DCons[d, T], B)
- final def ==(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
- final def asInstanceOf[T0]: T0
- Definition Classes
- Any
- def clone(): AnyRef
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.CloneNotSupportedException]) @native() @HotSpotIntrinsicCandidate()
- def ensuring(cond: (DCons[d, T]) => Boolean, msg: => Any): DCons[d, T]
- def ensuring(cond: (DCons[d, T]) => Boolean): DCons[d, T]
- def ensuring(cond: Boolean, msg: => Any): DCons[d, T]
- def ensuring(cond: Boolean): DCons[d, T]
- final def eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- def equals(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef → Any
- def formatted(fmtstr: String): String
- final def getClass(): Class[_ <: AnyRef]
- Definition Classes
- AnyRef → Any
- Annotations
- @native() @HotSpotIntrinsicCandidate()
- def hashCode(): Int
- Definition Classes
- AnyRef → Any
- Annotations
- @native() @HotSpotIntrinsicCandidate()
- final def isInstanceOf[T0]: Boolean
- Definition Classes
- Any
- final def ne(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- final def notify(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native() @HotSpotIntrinsicCandidate()
- final def notifyAll(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native() @HotSpotIntrinsicCandidate()
- final def synchronized[T0](arg0: => T0): T0
- Definition Classes
- AnyRef
- def toString(): String
- Definition Classes
- AnyRef → Any
- final def wait(arg0: Long, arg1: Int): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])
- final def wait(arg0: Long): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException]) @native()
- final def wait(): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])
Deprecated Value Members
- def finalize(): Unit
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.Throwable]) @Deprecated @deprecated
- Deprecated
(Since version ) see corresponding Javadoc for more information.
- def →[B](y: B): (DCons[d, T], B)
- Implicit
- This member is added by an implicit conversion from DCons[d, T] toArrowAssoc[DCons[d, T]] performed by method ArrowAssoc in scala.Predef.
- Definition Classes
- ArrowAssoc
- Annotations
- @deprecated
- Deprecated
(Since version 2.13.0) Use
->
instead. If you still wish to display it as one character, consider using a font with programming ligatures such as Fira Code.