The largest value representable as a non-negative Double
,
which is PosZDouble(1.7976931348623157E308)
.
The largest value representable as a non-negative Double
,
which is PosZDouble(1.7976931348623157E308)
.
The smallest value representable as a positive
Double
, which is PosDouble(4.9E-324)
.
The smallest value representable as a positive
Double
, which is PosDouble(4.9E-324)
.
The smallest value representable as a non-negative Double
,
which is PosZDouble(0.0)
.
The smallest value representable as a non-negative Double
,
which is PosZDouble(0.0)
.
The positive infinity value, which is PosZDouble.ensuringValid(Double.PositiveInfinity)
.
The positive infinity value, which is PosZDouble.ensuringValid(Double.PositiveInfinity)
.
A factory method, implemented via a macro, that produces a
PosZDouble
if passed a valid Double
literal, otherwise a compile time error.
A factory method, implemented via a macro, that produces a
PosZDouble
if passed a valid Double
literal, otherwise a compile time error.
The macro that implements this method will inspect the
specified Double
expression at compile time. If
the expression is a non-negative Double
literal,
i.e., with a value greater than or equal to 0, it will return
a PosZDouble
representing that value. Otherwise,
the passed Double
expression is either a literal
that is negative, or is not a literal, so this method
will give a compiler error.
This factory method differs from the from
factory method in that this method is implemented via a
macro that inspects Double
literals at compile
time, whereas from
inspects Double
values at run time.
the Double
literal expression to inspect at
compile time, and if non-negative, to return wrapped in a
PosZDouble
at run time.
the specified, valid Double
literal
value wrapped in a PosZDouble
. (If the
specified expression is not a valid Double
literal, the invocation of this method will not
compile.)
A factory/assertion method that produces an PosZDouble
given a
valid Double
value, or throws AssertionError
,
if given an invalid Double
value.
A factory/assertion method that produces an PosZDouble
given a
valid Double
value, or throws AssertionError
,
if given an invalid Double
value.
Note: you should use this method only when you are convinced that it will
always succeed, i.e., never throw an exception. It is good practice to
add a comment near the invocation of this method indicating why you think
it will always succeed to document your reasoning. If you are not sure an
ensuringValid
call will always succeed, you should use one of the other
factory or validation methods provided on this object instead: isValid
,
tryingValid
, passOrElse
, goodOrElse
, or rightOrElse
.
This method will inspect the passed Double
value
and if it is a non-negative Double
,
i.e., a value greater than or equal to 0, it will
return a PosZDouble
representing that value.
Otherwise, the passed Double
value is negative,
so this method will throw AssertionError
.
This factory method differs from the apply
factory method in that apply
is implemented
via a macro that inspects Double
literals at
compile time, whereas this method inspects
Double
values at run time.
It differs from a vanilla assert
or ensuring
call in that you get something you didn't already have if the assertion
succeeds: a type that promises a Double
is positive or zero.
the Double
to inspect, and if
non-negative, return wrapped in a
PosZDouble
.
the specified Double
value wrapped
in a PosZDouble
, if it is positive, else
throws AssertionError
.
if the passed value is not zero or positive
A factory method that produces an Option[PosZDouble]
given a
Double
value.
A factory method that produces an Option[PosZDouble]
given a
Double
value.
This method will inspect the passed Double
value
and if it is a non-negative Double
,
i.e., a value greater than or equal to 0, it will
return a PosZDouble
representing that value,
wrapped in a Some
. Otherwise, the passed
Double
value is negative, so this method
will return None
.
This factory method differs from the apply
factory method in that apply
is implemented
via a macro that inspects Double
literals at
compile time, whereas from
inspects
Double
values at run time.
the Double
to inspect, and if
non-negative, return wrapped in a
Some[PosZDouble]
.
the specified Double
value wrapped
in a Some[PosZDouble]
, if it is positive, else
None
.
A factory method that produces a PosZDouble
given a
Double
value and a default PosZDouble
.
A factory method that produces a PosZDouble
given a
Double
value and a default PosZDouble
.
This method will inspect the passed Double
value and if
it is a positive or zero Double
, i.e., a value greater
than or equal to 0.0, it will return a PosZDouble
representing that value.
Otherwise, the passed Double
value is negative, so this
method will return the passed default
value.
This factory method differs from the apply
factory method in that apply
is implemented
via a macro that inspects Double
literals at
compile time, whereas from
inspects
Double
values at run time.
the Double
to inspect, and if positive or zero, return.
the PosZDouble
to return if the passed
Double
value is not positive or zero.
the specified Double
value wrapped in a
PosZDouble
, if it is positive or zero, else the
default
PosZDouble
value.
A predicate method that returns true if a given
Double
value is positive or zero.
A predicate method that returns true if a given
Double
value is positive or zero.
the Double
to inspect, and if positive or zero, return true.
true if the specified Double
is positive or zero, else false.
Implicit Ordering instance.
Returns the PosZDouble
sum of the passed PosZDouble
values first
and
value second
, and the PosZDouble
values passed as varargs rest
.
Returns the PosZDouble
sum of the passed PosZDouble
values first
and
value second
, and the PosZDouble
values passed as varargs rest
.
This method will always succeed (not throw an exception) because adding a positive or zero Double to another positive or zero Double will always result in another positive or zero Double value (though the result may be positive infinity).
This overloaded form of the sumOf
method can sum more than two
values, but unlike its two-arg sibling, will entail boxing.
Returns the PosZDouble
sum of the passed PosZDouble
values x
and y
.
Returns the PosZDouble
sum of the passed PosZDouble
values x
and y
.
This method will always succeed (not throw an exception) because adding a positive or zero Double to another positive or zero Double will always result in another positive or zero Double value (though the result may be positive infinity).
This overloaded form of the method is used when there are just two arguments so that
boxing is avoided. The overloaded sumOf
that takes a varargs of
PosZDouble
starting at the third parameter can sum more than two
values, but will entail boxing and may therefore be less efficient.
Implicit widening conversion from PosZDouble
to
Double
.
Implicit widening conversion from PosZDouble
to
Double
.
the Double
value underlying the specified
PosZDouble
.
The companion object for
PosZDouble
that offers factory methods that producePosZDouble
s, implicit widening conversions fromPosZDouble
to other numeric types, and maximum and minimum constant values forPosZDouble
.