The largest value representable as a positive Float
,
which is PosFloat(3.4028235E38)
.
The largest value representable as a positive Float
,
which is PosFloat(3.4028235E38)
.
The smallest value representable as a positive
Float
, which is PosFloat(1.4E-45)
.
The smallest value representable as a positive
Float
, which is PosFloat(1.4E-45)
.
The positive infinity value, which is PosFloat.ensuringValid(Float.PositiveInfinity)
.
The positive infinity value, which is PosFloat.ensuringValid(Float.PositiveInfinity)
.
A factory method, implemented via a macro, that produces a
PosFloat
if passed a valid Float
literal, otherwise a compile time error.
A factory method, implemented via a macro, that produces a
PosFloat
if passed a valid Float
literal, otherwise a compile time error.
The macro that implements this method will inspect the
specified Float
expression at compile time. If
the expression is a positive Float
literal,
i.e., with a value greater than 0.0, it will return
a PosFloat
representing that value. Otherwise,
the passed Float
expression is either a literal
that is 0.0f or 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 Float
literals at compile
time, whereas from
inspects Float
values at run time.
the Float
literal expression to
inspect at compile time, and if positive, to return
wrapped in a PosFloat
at run time.
the specified, valid Float
literal
value wrapped in a PosFloat
. (If the
specified expression is not a valid Float
literal, the invocation of this method will not
compile.)
A factory/assertion method that produces a PosFloat
given a
valid Float
value, or throws AssertionError
,
if given an invalid Float
value.
A factory/assertion method that produces a PosFloat
given a
valid Float
value, or throws AssertionError
,
if given an invalid Float
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 Float
value and if
it is a positive Float
, i.e., a value greater
than 0.0, it will return a PosFloat
representing that value.
Otherwise, the passed Float
value is 0.0f or 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 Float
literals at
compile time, whereas this method inspects
Float
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 Float
is positive.
the Float
to inspect, and if positive, return
wrapped in a PosFloat
.
the specified Float
value wrapped in a
PosFloat
, if it is positive, else
throws AssertionError
.
if the passed value is not positive
A factory method that produces an Option[PosFloat]
given a
Float
value.
A factory method that produces an Option[PosFloat]
given a
Float
value.
This method will inspect the passed Float
value and if
it is a positive Float
, i.e., a value greater
than 0.0, it will return a PosFloat
representing that value,
wrapped in a Some
. Otherwise, the passed Float
value is 0.0f or 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 Float
literals at
compile time, whereas from
inspects
Float
values at run time.
the Float
to inspect, and if positive, return
wrapped in a Some[PosFloat]
.
the specified Float
value wrapped in a
Some[PosFloat]
, if it is positive, else
None
.
A factory method that produces a PosFloat
given a
Float
value and a default PosFloat
.
A factory method that produces a PosFloat
given a
Float
value and a default PosFloat
.
This method will inspect the passed Float
value and if
it is a positive Float
, i.e., a value greater
than 0.0, it will return a PosFloat
representing that value.
Otherwise, the passed Float
value is 0.0f or 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 Float
literals at
compile time, whereas from
inspects
Float
values at run time.
the Float
to inspect, and if positive, return.
the PosFloat
to return if the passed
Float
value is not positive.
the specified Float
value wrapped in a
PosFloat
, if it is positive, else the
default
PosFloat
value.
A predicate method that returns true if a given
Float
value is positive.
A predicate method that returns true if a given
Float
value is positive.
the Float
to inspect, and if positive, return true.
true if the specified Float
is positive, else false.
Implicit Ordering instance.
Returns the PosFloat
sum of the passed PosFloat
value first
, the PosZFloat
value second
, and the PosFloat
values passed as varargs rest
.
Returns the PosFloat
sum of the passed PosFloat
value first
, the PosZFloat
value second
, and the PosFloat
values passed as varargs rest
.
This method will always succeed (not throw an exception) because adding a positive Float and one or more zeros or positive Floats will always result in another positive Float 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 PosFloat
sum of the passed PosFloat
value x
and PosZFloat
value y
.
Returns the PosFloat
sum of the passed PosFloat
value x
and PosZFloat
value y
.
This method will always succeed (not throw an exception) because adding a positive Float and zero or a positive Float and another positive Float will always result in another positive Float 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
PosZFloat
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 PosFloat
to
Double
.
Implicit widening conversion from PosFloat
to
Double
.
the PosFloat
to widen
the Float
value underlying the
specified PosFloat
, widened to
Double
.
Implicit widening conversion from PosFloat
to
Float
.
Implicit widening conversion from PosFloat
to
Float
.
the PosFloat
to widen
the Float
value underlying the
specified PosFloat
Implicit widening conversion from PosFloat
to
NonZeroDouble
.
Implicit widening conversion from PosFloat
to
NonZeroDouble
.
the PosFloat
to widen
the Float
value underlying the
specified PosFloat
, widened to
Double
and wrapped in a
NonZeroDouble
.
Implicit widening conversion from PosFloat
to
NonZeroFloat
.
Implicit widening conversion from PosFloat
to
NonZeroFloat
.
the PosFloat
to widen
the Float
value underlying the
specified PosFloat
, widened to
Float
and wrapped in a
NonZeroFloat
.
Implicit widening conversion from PosFloat
to
PosDouble
.
Implicit widening conversion from PosFloat
to
PosDouble
.
the PosFloat
to widen
the Float
value underlying the
specified PosFloat
, widened to
Double
and wrapped in a
PosDouble
.
Implicit widening conversion from PosFloat
to
PosZDouble
.
Implicit widening conversion from PosFloat
to
PosZDouble
.
the PosFloat
to widen
the Float
value underlying the
specified PosFloat
, widened to
Double
and wrapped in a
PosZDouble
.
Implicit widening conversion from PosFloat
to
PosZFloat
.
Implicit widening conversion from PosFloat
to
PosZFloat
.
the PosFloat
to widen
the Float
value underlying the
specified PosFloat
wrapped in a
PosZFloat
.
The companion object for
PosFloat
that offers factory methods that producePosFloat
s, implicit widening conversions fromPosFloat
to other numeric types, and maximum and minimum constant values forPosFloat
.