The companion object for PosFiniteDouble
that offers
factory methods that produce PosFiniteDouble
s,
implicit widening conversions from PosFiniteDouble
to
other numeric types, and maximum and minimum constant values
for PosFiniteDouble
.
- Companion:
- class
- Source:
- PosFiniteDouble.scala
Value members
Concrete methods
A factory/assertion method that produces a PosFiniteDouble
given a
valid Double
value, or throws AssertionError
,
if given an invalid Double
value.
A factory/assertion method that produces a PosFiniteDouble
given a
valid Double
value, or throws AssertionError
,
if given an invalid Double
value.
This method will inspect the passed Double
value and if
it is a finite positive Double
, it will return a PosFiniteDouble
representing that value. Otherwise, the passed Double
value is not finite positive,
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 from
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 finite positive.
- Value parameters:
- value
the
Double
to inspect, and if finite positive, return wrapped in aPosFiniteDouble
.
- Returns:
the specified
Double
value wrapped in aPosFiniteDouble
, if it is finite positive, else throwsAssertionError
.- Throws:
- AssertionError
if the passed value is not finite positive
- Source:
- PosFiniteDouble.scala
A factory method that produces an Option[PosFiniteDouble]
given a
Double
value.
A factory method that produces an Option[PosFiniteDouble]
given a
Double
value.
This method will inspect the passed Double
value and if
it is a finite positive Double
, it will return a PosFiniteDouble
representing that value, wrapped in a Some
. Otherwise, the passed Double
value is not finite positive, 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.
- Value parameters:
- value
the
Double
to inspect, and if finite positive, return wrapped in aSome[PosFiniteDouble]
.
- Returns:
the specified
Double
value wrapped in aSome[PosFiniteDouble]
, if it is PosFiniteDouble, elseNone
.- Source:
- PosFiniteDouble.scala
A factory method that produces a PosFiniteDouble
given a
Double
value and a default PosFiniteDouble
.
A factory method that produces a PosFiniteDouble
given a
Double
value and a default PosFiniteDouble
.
This method will inspect the passed Double
value and if
it is a finite positive Double
, it will return a PosFiniteDouble
representing that value. Otherwise, the passed Double
value is finite positive,
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.
- Value parameters:
- default
the
PosFiniteDouble
to return if the passedDouble
value is not finite positive.- value
the
Double
to inspect, and if finite positive, return.
- Returns:
the specified
Double
value wrapped in aPosFiniteDouble
, if it is finite positive, else thedefault
PosFiniteDouble
value.- Source:
- PosFiniteDouble.scala
A factory/validation method that produces a PosFiniteDouble
, wrapped
in a Good
, given a valid Double
value, or if the
given Double
is invalid, an error value of type B
produced by passing the given invalid Double
value
to the given function f
, wrapped in a Bad
.
A factory/validation method that produces a PosFiniteDouble
, wrapped
in a Good
, given a valid Double
value, or if the
given Double
is invalid, an error value of type B
produced by passing the given invalid Double
value
to the given function f
, wrapped in a Bad
.
This method will inspect the passed Double
value and if
it is a finite positive Double
, it will return a PosFiniteDouble
representing that value, wrapped in a Good
.
Otherwise, the passed Double
value is not finite positive, so this
method will return a result of type B
obtained by passing
the invalid Double
value to the given function f
,
wrapped in a Bad
.
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.
- Value parameters:
- value
the
Double
to inspect, and if finite positive, return wrapped in aGood(PosFiniteDouble)
.
- Returns:
the specified
Double
value wrapped in aGood(PosFiniteDouble)
, if it is finite positive, else aBad(f(value))
.- Source:
- PosFiniteDouble.scala
A predicate method that returns true if a given
Double
value is finite positive.
A predicate method that returns true if a given
Double
value is finite positive.
- Value parameters:
- value
the
Double
to inspect, and if finite positive, return true.
- Returns:
true if the specified
Double
is positive, else false.- Source:
- PosFiniteDouble.scala
A validation method that produces a Pass
given a valid Double
value, or
an error value of type E
produced by passing the
given invalid Int
value
to the given function f
, wrapped in a Fail
.
A validation method that produces a Pass
given a valid Double
value, or
an error value of type E
produced by passing the
given invalid Int
value
to the given function f
, wrapped in a Fail
.
This method will inspect the passed Double
value and if
it is a finite positive Double
, it will return a Pass
.
Otherwise, the passed Double
value is finite positive, so this
method will return a result of type E
obtained by passing
the invalid Double
value to the given function f
,
wrapped in a Fail
.
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.
- Value parameters:
- value
the
Int
to validate that it is finite positive.
- Returns:
a
Pass
if the specifiedInt
value is finite positive, else aFail
containing an error value produced by passing the specifiedDouble
to the given functionf
.- Source:
- PosFiniteDouble.scala
A factory/validation method that produces a PosFiniteDouble
, wrapped
in a Right
, given a valid Double
value, or if the
given Double
is invalid, an error value of type L
produced by passing the given invalid Double
value
to the given function f
, wrapped in a Left
.
A factory/validation method that produces a PosFiniteDouble
, wrapped
in a Right
, given a valid Double
value, or if the
given Double
is invalid, an error value of type L
produced by passing the given invalid Double
value
to the given function f
, wrapped in a Left
.
This method will inspect the passed Double
value and if
it is a finite positive Double
, it will return a PosFiniteDouble
representing that value, wrapped in a Right
.
Otherwise, the passed Double
value is not finite positive, so this
method will return a result of type L
obtained by passing
the invalid Double
value to the given function f
,
wrapped in a Left
.
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.
- Value parameters:
- value
the
Double
to inspect, and if finite positive, return wrapped in aRight(PosFiniteDouble)
.
- Returns:
the specified
Double
value wrapped in aRight(PosFiniteDouble)
, if it is finite positive, else aLeft(f(value))
.- Source:
- PosFiniteDouble.scala
A factory/validation method that produces a PosFiniteDouble
, wrapped
in a Success
, given a valid Float
value, or if the
given Float
is invalid, an AssertionError
, wrapped
in a Failure
.
A factory/validation method that produces a PosFiniteDouble
, wrapped
in a Success
, given a valid Float
value, or if the
given Float
is invalid, an AssertionError
, wrapped
in a Failure
.
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 Float
value and if
it is a finite positive Float
, it will return a PosFiniteDouble
representing that value, wrapped in a Success
.
Otherwise, the passed Float
value is not finite positive, so this
method will return an AssertionError
, wrapped in a Failure
.
This factory method differs from the apply
factory method
in that apply
is implemented via a macro that inspects
Float
literals at compile time, whereas this method inspects
Float
values at run time.
- Value parameters:
- value
the
Float
to inspect, and if finite positive, return wrapped in aSuccess(PosFiniteDouble)
.
- Returns:
the specified
Float
value wrapped in aSuccess(PosFiniteDouble)
, if it is finite positive, else aFailure(AssertionError)
.- Source:
- PosFiniteDouble.scala
Concrete fields
The largest value representable as a finite positive Double
,
which is PosFiniteDouble(1.7976931348623157E308)
.
The largest value representable as a finite positive Double
,
which is PosFiniteDouble(1.7976931348623157E308)
.
- Source:
- PosFiniteDouble.scala
The smallest positive value greater than 0.0d representable as a PosFiniteDouble
, which is PosFiniteDouble(4.9E-324).
The smallest positive value greater than 0.0d representable as a PosFiniteDouble
, which is PosFiniteDouble(4.9E-324).
- Source:
- PosFiniteDouble.scala
The smallest value representable as a finite positive
Double
, which is PosFiniteDouble(4.9E-324)
.
The smallest value representable as a finite positive
Double
, which is PosFiniteDouble(4.9E-324)
.
- Source:
- PosFiniteDouble.scala
Implicits
Implicits
A factory method, implemented via a macro, that produces a
PosFiniteDouble
if passed a valid Double
literal, otherwise a compile time error.
A factory method, implemented via a macro, that produces a
PosFiniteDouble
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 finite positive Double
literal,
it will return a PosFiniteDouble
representing that value.
Otherwise, the passed Double
expression is either a literal
that is not finite positive, 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.
- Value parameters:
- value
the
Double
literal expression to inspect at compile time, and if finite positive, to return wrapped in aPosFiniteDouble
at run time.
- Returns:
the specified, valid
Double
literal value wrapped in aPosFiniteDouble
. (If the specified expression is not a validDouble
literal, the invocation of this method will not compile.)- Source:
- PosFiniteDouble.scala
Implicit widening conversion from PosFiniteDouble
to
Double
.
Implicit widening conversion from PosFiniteDouble
to
Double
.
- Value parameters:
- pos
the
PosFiniteDouble
to widen
- Returns:
the
Double
value underlying the specifiedPosFiniteDouble
- Source:
- PosFiniteDouble.scala
Implicit widening conversion from PosFiniteDouble
to FiniteDouble
.
Implicit widening conversion from PosFiniteDouble
to FiniteDouble
.
- Value parameters:
- pos
the
PosFiniteDouble
to widen
- Returns:
the
Double
value underlying the specifiedPosFiniteDouble
, widened toDouble
and wrapped in aFiniteDouble
.- Source:
- PosFiniteDouble.scala
Implicit widening conversion from PosFiniteDouble
to NonZeroDouble
.
Implicit widening conversion from PosFiniteDouble
to NonZeroDouble
.
- Value parameters:
- pos
the
PosFiniteDouble
to widen
- Returns:
the
Double
value underlying the specifiedPosFiniteDouble
, widened toDouble
and wrapped in aNonZeroDouble
.- Source:
- PosFiniteDouble.scala
Implicit widening conversion from PosFiniteDouble
to PosDouble
.
Implicit widening conversion from PosFiniteDouble
to PosDouble
.
- Value parameters:
- pos
the
PosFiniteDouble
to widen
- Returns:
the
Double
value underlying the specifiedPosFiniteDouble
, widened toDouble
and wrapped in aPosDouble
.- Source:
- PosFiniteDouble.scala
Implicit widening conversion from PosFiniteDouble
to PosZDouble
.
Implicit widening conversion from PosFiniteDouble
to PosZDouble
.
- Value parameters:
- pos
the
PosFiniteDouble
to widen
- Returns:
the
Double
value underlying the specifiedPosFiniteDouble
, widened toDouble
and wrapped in aPosZDouble
.- Source:
- PosFiniteDouble.scala
Implicit widening conversion from PosFiniteDouble
to PosZFiniteDouble
.
Implicit widening conversion from PosFiniteDouble
to PosZFiniteDouble
.
- Value parameters:
- pos
the
PosFiniteDouble
to widen
- Returns:
the
Double
value underlying the specifiedPosFiniteDouble
, widened toDouble
and wrapped in aPosZFiniteDouble
.- Source:
- PosFiniteDouble.scala