final class PosZDouble extends AnyVal
An AnyVal
for non-negative Double
s.
Because PosZDouble
is an AnyVal
it will usually be
as efficient as an Double
, being boxed only when a
Double
would have been boxed.
The PosZDouble.apply
factory method is
implemented in terms of a macro that checks literals for
validity at compile time. Calling
PosZDouble.apply
with a literal
Double
value will either produce a valid
PosZDouble
instance at run time or an error at
compile time. Here's an example:
scala> import anyvals._ import anyvals._ scala> PosZDouble(1.1) res0: org.scalactic.anyvals.PosZDouble = PosZDouble(1.1) scala> PosZDouble(0.0) res1: org.scalactic.anyvals.PosZDouble = PosZDouble(0.0) scala> PosZDouble(-1.1) <console>:14: error: PosZDouble.apply can only be invoked on a non-negative (i >= 0.0) floating point literal, like PosZDouble(42.0). PosZDouble(-1.1) ^
PosZDouble.apply
cannot be used if the value
being passed is a variable (i.e., not a literal),
because the macro cannot determine the validity of variables
at compile time (just literals). If you try to pass a
variable to PosZDouble.apply
, you'll get a
compiler error that suggests you use a different factor
method, PosZDouble.from
, instead:
scala> val x = 1.1 x: Double = 1.1 scala> PosZDouble(x) <console>:15: error: PosZDouble.apply can only be invoked on a floating point literal, like PosZDouble(42.0). Please use PosZDouble.from instead. PosZDouble(x) ^
The PosZDouble.from
factory method will inspect
the value at runtime and return an
Option[PosZDouble]
. If the value is valid,
PosZDouble.from
will return a
Some[PosZDouble]
, else it will return a
None
. Here's an example:
scala> PosZDouble.from(x) res4: Option[org.scalactic.anyvals.PosZDouble] = Some(PosZDouble(1.1)) scala> val y = -1.1 y: Double = -1.1 scala> PosZDouble.from(y) res5: Option[org.scalactic.anyvals.PosZDouble] = None
The PosZDouble.apply
factory method is marked implicit, so that
you can pass literal Double
s into methods that require
PosZDouble
, and get the same compile-time checking you get when
calling PosZDouble.apply
explicitly. Here's an example:
scala> def invert(pos: PosZDouble): Double = Double.MaxValue - pos invert: (pos: org.scalactic.anyvals.PosZDouble)Double scala> invert(0.0) res6: Double = 1.7976931348623157E308 scala> invert(Double.MaxValue) res7: Double = 0.0 scala> invert(-1.1) <console>:15: error: PosZDouble.apply can only be invoked on a non-negative (i >= 0.0) floating point literal, like PosZDouble(42.0). invert(-1.1) ^
This example also demonstrates that the
PosZDouble
companion object also defines
implicit widening conversions when a similar conversion is
provided in Scala. This makes it convenient to use a
PosZDouble
where a Double
or wider
type is needed. An example is the subtraction in the body of
the invert
method defined above,
Double.MaxValue - pos
. Although
Double.MaxValue
is a Double
, which
has no -
method that takes a
PosZDouble
(the type of pos
), you
can still subtract pos
, because the
PosZDouble
will be implicitly widened to
Double
.
- Source
- PosZDouble.scala
- Alphabetic
- By Inheritance
- PosZDouble
- AnyVal
- Any
- Hide All
- Show All
- Public
- Protected
Value Members
- final def !=(arg0: Any): Boolean
- Definition Classes
- Any
- final def ##: Int
- Definition Classes
- Any
- def %(x: Double): Double
Returns the remainder of the division of this value by
x
. - def %(x: Float): Double
Returns the remainder of the division of this value by
x
. - def %(x: Long): Double
Returns the remainder of the division of this value by
x
. - def %(x: Int): Double
Returns the remainder of the division of this value by
x
. - def %(x: Char): Double
Returns the remainder of the division of this value by
x
. - def %(x: Short): Double
Returns the remainder of the division of this value by
x
. - def %(x: Byte): Double
Returns the remainder of the division of this value by
x
. - def *(x: Double): Double
Returns the product of this value and
x
. - def *(x: Float): Double
Returns the product of this value and
x
. - def *(x: Long): Double
Returns the product of this value and
x
. - def *(x: Int): Double
Returns the product of this value and
x
. - def *(x: Char): Double
Returns the product of this value and
x
. - def *(x: Short): Double
Returns the product of this value and
x
. - def *(x: Byte): Double
Returns the product of this value and
x
. - def +(x: Double): Double
Returns the sum of this value and
x
. - def +(x: Float): Double
Returns the sum of this value and
x
. - def +(x: Long): Double
Returns the sum of this value and
x
. - def +(x: Int): Double
Returns the sum of this value and
x
. - def +(x: Char): Double
Returns the sum of this value and
x
. - def +(x: Short): Double
Returns the sum of this value and
x
. - def +(x: Byte): Double
Returns the sum of this value and
x
. - def +(x: String): String
Converts this
PosZDouble
's value to a string then concatenates the given string. - def -(x: Double): Double
Returns the difference of this value and
x
. - def -(x: Float): Double
Returns the difference of this value and
x
. - def -(x: Long): Double
Returns the difference of this value and
x
. - def -(x: Int): Double
Returns the difference of this value and
x
. - def -(x: Char): Double
Returns the difference of this value and
x
. - def -(x: Short): Double
Returns the difference of this value and
x
. - def -(x: Byte): Double
Returns the difference of this value and
x
. - def /(x: Double): Double
Returns the quotient of this value and
x
. - def /(x: Float): Double
Returns the quotient of this value and
x
. - def /(x: Long): Double
Returns the quotient of this value and
x
. - def /(x: Int): Double
Returns the quotient of this value and
x
. - def /(x: Char): Double
Returns the quotient of this value and
x
. - def /(x: Short): Double
Returns the quotient of this value and
x
. - def /(x: Byte): Double
Returns the quotient of this value and
x
. - def <(x: Double): Boolean
Returns
true
if this value is less than x,false
otherwise. - def <(x: Float): Boolean
Returns
true
if this value is less than x,false
otherwise. - def <(x: Long): Boolean
Returns
true
if this value is less than x,false
otherwise. - def <(x: Int): Boolean
Returns
true
if this value is less than x,false
otherwise. - def <(x: Char): Boolean
Returns
true
if this value is less than x,false
otherwise. - def <(x: Short): Boolean
Returns
true
if this value is less than x,false
otherwise. - def <(x: Byte): Boolean
Returns
true
if this value is less than x,false
otherwise. - def <=(x: Double): Boolean
Returns
true
if this value is less than or equal to x,false
otherwise. - def <=(x: Float): Boolean
Returns
true
if this value is less than or equal to x,false
otherwise. - def <=(x: Long): Boolean
Returns
true
if this value is less than or equal to x,false
otherwise. - def <=(x: Int): Boolean
Returns
true
if this value is less than or equal to x,false
otherwise. - def <=(x: Char): Boolean
Returns
true
if this value is less than or equal to x,false
otherwise. - def <=(x: Short): Boolean
Returns
true
if this value is less than or equal to x,false
otherwise. - def <=(x: Byte): Boolean
Returns
true
if this value is less than or equal to x,false
otherwise. - final def ==(arg0: Any): Boolean
- Definition Classes
- Any
- def >(x: Double): Boolean
Returns
true
if this value is greater than x,false
otherwise. - def >(x: Float): Boolean
Returns
true
if this value is greater than x,false
otherwise. - def >(x: Long): Boolean
Returns
true
if this value is greater than x,false
otherwise. - def >(x: Int): Boolean
Returns
true
if this value is greater than x,false
otherwise. - def >(x: Char): Boolean
Returns
true
if this value is greater than x,false
otherwise. - def >(x: Short): Boolean
Returns
true
if this value is greater than x,false
otherwise. - def >(x: Byte): Boolean
Returns
true
if this value is greater than x,false
otherwise. - def >=(x: Double): Boolean
Returns
true
if this value is greater than or equal to x,false
otherwise. - def >=(x: Float): Boolean
Returns
true
if this value is greater than or equal to x,false
otherwise. - def >=(x: Long): Boolean
Returns
true
if this value is greater than or equal to x,false
otherwise. - def >=(x: Int): Boolean
Returns
true
if this value is greater than or equal to x,false
otherwise. - def >=(x: Char): Boolean
Returns
true
if this value is greater than or equal to x,false
otherwise. - def >=(x: Short): Boolean
Returns
true
if this value is greater than or equal to x,false
otherwise. - def >=(x: Byte): Boolean
Returns
true
if this value is greater than or equal to x,false
otherwise. - final def asInstanceOf[T0]: T0
- Definition Classes
- Any
- def ceil: PosZDouble
- def floor: PosZDouble
- def getClass(): Class[_ <: AnyVal]
- Definition Classes
- AnyVal → Any
- final def isInstanceOf[T0]: Boolean
- Definition Classes
- Any
- def isPosInfinity: Boolean
- def isWhole: Boolean
- def max(that: PosZDouble): PosZDouble
Returns
this
ifthis > that
orthat
otherwise. - def min(that: PosZDouble): PosZDouble
Returns
this
ifthis < that
orthat
otherwise. - def round: PosZLong
- def toByte: Byte
Converts this
PosZDouble
to aByte
. - def toChar: Char
Converts this
PosZDouble
to aChar
. - def toDegrees: Double
Converts an angle measured in radians to an approximately equivalent angle measured in degrees.
Converts an angle measured in radians to an approximately equivalent angle measured in degrees.
- returns
the measurement of the angle x in degrees.
- def toDouble: Double
Converts this
PosZDouble
to aDouble
. - def toFloat: Float
Converts this
PosZDouble
to aFloat
. - def toInt: Int
Converts this
PosZDouble
to anInt
. - def toLong: Long
Converts this
PosZDouble
to aLong
. - def toRadians: Double
Converts an angle measured in degrees to an approximately equivalent angle measured in radians.
Converts an angle measured in degrees to an approximately equivalent angle measured in radians.
- returns
the measurement of the angle x in radians.
- def toShort: Short
Converts this
PosZDouble
to aShort
. - def toString(): String
A string representation of this
PosZDouble
.A string representation of this
PosZDouble
.- Definition Classes
- PosZDouble → Any
- def unary_+: PosZDouble
Returns this value, unmodified.
- def unary_-: Double
Returns the negation of this value.
- val value: Double
Deprecated Value Members
- def to(end: Double, step: Double): Inclusive[BigDecimal]
Create an inclusive
Range
from thisPosZDouble
value to the specifiedend
with the specifiedstep
value.Create an inclusive
Range
from thisPosZDouble
value to the specifiedend
with the specifiedstep
value.- end
The final bound of the range to make.
- step
The number to increase by for each step of the range.
- returns
A scala.collection.immutable.NumericRange.Inclusive[Double] from
this
up to and includingend
.
- Annotations
- @deprecated
- Deprecated
This function will be removed in future version of Scalactic, use BigDecimal's to function instead
- def to(end: Double): Partial[BigDecimal, Inclusive[BigDecimal]]
Create an inclusive
Range.Partial
from thisPosZDouble
value to the specifiedend
with step value 1.Create an inclusive
Range.Partial
from thisPosZDouble
value to the specifiedend
with step value 1.- end
The final bound of the range to make.
- returns
A NumericRange[Double]] from
this
up to and includingend
.
- Annotations
- @deprecated
- Deprecated
This function will be removed in future version of Scalactic, use BigDecimal's to function instead
- def until(end: Double, step: Double): Exclusive[BigDecimal]
Create a
Range
from thisPosZDouble
value until the specifiedend
(exclusive) with the specifiedstep
value.Create a
Range
from thisPosZDouble
value until the specifiedend
(exclusive) with the specifiedstep
value.- end
The final bound of the range to make.
- step
The number to increase by for each step of the range.
- returns
A scala.collection.immutable.NumericRange.Exclusive[Double] from
this
up to but not includingend
.
- Annotations
- @deprecated
- Deprecated
This function will be removed in future version of Scalactic, use BigDecimal's until function instead
- def until(end: Double): Partial[BigDecimal, Exclusive[BigDecimal]]
Create a
Range.Partial
from thisPosZDouble
value until the specifiedend
(exclusive) with step value 1.Create a
Range.Partial
from thisPosZDouble
value until the specifiedend
(exclusive) with step value 1.- end
The final bound of the range to make.
- returns
A NumericRange[Double]] from
this
up to but not includingend
.
- Annotations
- @deprecated
- Deprecated
This function will be removed in future version of Scalactic, use BigDecimal's until function instead