[#BloombergLP-bdldfp-DecimalImpUtil_IntelDfp-divide-0f] = xref:BloombergLP.adoc[BloombergLP]::xref:BloombergLP/bdldfp.adoc[bdldfp]::xref:BloombergLP/bdldfp/DecimalImpUtil_IntelDfp.adoc[DecimalImpUtil_IntelDfp]::divide :relfileprefix: ../../../ :mrdocs: Divide the value of the specified `lhs` by the value of the specified `rhs` as described by IEEE‐754, and return the result. == Synopsis Declared in `<bdldfp_decimalimputil_inteldfp.h>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- static xref:BloombergLP/bdldfp/DecimalImpUtil_IntelDfp/ValueType32.adoc[DecimalImpUtil_IntelDfp::ValueType32] divide( xref:BloombergLP/bdldfp/DecimalImpUtil_IntelDfp/ValueType32.adoc[ValueType32] lhs, xref:BloombergLP/bdldfp/DecimalImpUtil_IntelDfp/ValueType32.adoc[ValueType32] rhs); ---- == Description * If either of `lhs` or `rhs` is signaling NaN, then store the value of the macro `EDOM` into `errno` and return a NaN. * Otherwise if either of `lhs` or `rhs` is NaN, return a NaN. * Otherwise if `lhs` and `rhs` are both infinity (positive or negative) or both zero (positive or negative) then store the value of the macro `EDOM` into `errno` and return a NaN. * Otherwise if `lhs` has a normal value and `rhs` has a positive zero value, store the value of the macro `ERANGE` into `errno` and return infinity with the sign of `lhs`. * Otherwise if `lhs` has a normal value and `rhs` has a negative zero value, store the value of the macro `ERANGE` into `errno` and return infinity with the opposite sign as `lhs`. * Otherwise if `lhs` has infinity value and `rhs` has a positive zero value, return infinity with the sign of `lhs`. * Otherwise if `lhs` has infinity value and `rhs` has a negative zero value, return infinity with the opposite sign as `lhs`. * Otherwise if dividing the value of `lhs` with the value of `rhs` results in an absolute value that is larger than max value supported by the return type then store the value of the macro `ERANGE` into `errno` and return infinity with the same sign as that result. * Otherwise if dividing the value of `lhs` with the value of `rhs` results in an absolute value that is smaller than min value supported by indicated result type then store the value of the macro `ERANGE` into `errno`and return zero with the same sign as that result. * Otherwise return the result of dividing the value of `lhs` with the value of `rhs`. [.small]#Created with https://www.mrdocs.com[MrDocs]#