real64 -> efp_t. Wraps efp_decompose; unlike the pre-fix
version, the NaN / overflow flags are NOT discarded – they seed
a%poison (nonzero iff is_nan .or. is_ovf), so a poisoned
summand still taints every later efp_plus/efp_to_real even
though the flags themselves aren’t returned here (callers needing
the raw flags call efp_decompose directly).
Nodes of different colours represent the following:
Solid arrows point from a procedure to one which it calls. Dashed
arrows point from an interface to procedures which implement that interface.
This could include the module procedures in a generic interface or the
implementation in a submodule of an interface in a parent module.
Where possible, edges connecting nodes are
given different colours to make them easier to distinguish in
large graphs.
Nodes of different colours represent the following:
Solid arrows point from a procedure to one which it calls. Dashed
arrows point from an interface to procedures which implement that interface.
This could include the module procedures in a generic interface or the
implementation in a submodule of an interface in a parent module.
Where possible, edges connecting nodes are
given different colours to make them easier to distinguish in
large graphs.
Variables
Type
Visibility
Attributes
Name
Initial
logical,
private
::
is_nan
logical,
private
::
is_ovf
Source Code
pure function efp_from_real(r)result(a)!! `real64 -> efp_t`. Wraps `efp_decompose`; unlike the pre-fix!! version, the NaN / overflow flags are NOT discarded -- they seed!! `a%poison` (nonzero iff `is_nan .or. is_ovf`), so a poisoned!! summand still taints every later `efp_plus`/`efp_to_real` even!! though the flags themselves aren't returned here (callers needing!! the raw flags call `efp_decompose` directly).real(real64),intent(in)::rtype(efp_t)::alogical::is_nan,is_ovfcall efp_decompose(r,a%v,is_nan,is_ovf)a%poison=merge(1_int64,0_int64,is_nan.or.is_ovf)end function efp_from_real