[#BloombergLP-balber-BerUtil_FloatingPointImpUtil]
= xref:BloombergLP.adoc[BloombergLP]::xref:BloombergLP/balber.adoc[balber]::BerUtil&lowbar;FloatingPointImpUtil
:relfileprefix: ../../
:mrdocs:

This component&hyphen;private utility `struct` provides a namespace for a suite of functions used by `BerUtil` to implement BER encoding and decoding operations for floating point number values&period; Within the definition of this `struct`&colon;

== Synopsis

Declared in `&lt;balber&lowbar;berutil&period;h&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
struct BerUtil&lowbar;FloatingPointImpUtil;
----

== Description

&ast; *the specification*&colon; &gt; Refers to the August 2015 revision of the ITU&hyphen;T Recommendation X&period;690

&ast; *the floating point specification*&colon; &gt; Refers to the 2008 revision of the IEE 754 Standard for &gt; Floating&hyphen;Point Arithemtic&period;

== Type Aliases

[cols="1,4"]
|===
| Name| Description
| xref:BloombergLP/balber/BerUtil_FloatingPointImpUtil/IntegerUtil.adoc[`IntegerUtil`] 
| `IntegerUtil` is an alias to a namespace for a suite of functions used to implement BER encoding and decoding operations for integer values&period;
| xref:BloombergLP/balber/BerUtil_FloatingPointImpUtil/LengthUtil.adoc[`LengthUtil`] 
| `LengthUtil` is an alias to a namespace for a suite of functions used to implement BER encoding and decoding operations for length quantities&period;
|===


== Static Member Functions

[cols="1,4"]
|===
| Name| Description
| xref:BloombergLP/balber/BerUtil_FloatingPointImpUtil/getDecimal64Value.adoc[`getDecimal64Value`] 
| Read the specified `length` number of bytes from the input sequence of the specified `streamBuf` and load to the specified `value` the interpretation of those bytes as the contents octets of an encoded 64&hyphen;bit decimal value&period; Return 0 if successful, and a non&hyphen;zero value otherwise&period; The behavior is undefined unless length is non&hyphen;negative&period; The operation succeeds if `length` bytes are successfully read from the input sequence of the `streamBuf` without the read position becoming unavailable, and the bytes read contain a valid representation of the contents octets of an encoded 64&hyphen;bit decimal value&period; See the package&hyphen;level documentation of &lcub;`balber`&rcub; for the definition of the format used to encode 64&hyphen;bit decimal values&period;
| xref:BloombergLP/balber/BerUtil_FloatingPointImpUtil/getDoubleValue.adoc[`getDoubleValue`] 
| Read the specified `length` number of bytes from the input sequence of the specified `streamBuf` and load to the specified `value` the interpretation of those bytes as the contents octets of a BER&hyphen;encoded real value according to the specification&period; Return 0 if successful, and a non&hyphen;zero value otherwise&period; The operation succeeds if `length` bytes are successfully read from the input sequence of the `streamBuf` without the read position becoming unavailable, and the bytes read contain a valid representation of the contents octets of a real value according to the specification&period;
| xref:BloombergLP/balber/BerUtil_FloatingPointImpUtil/getFloatValue.adoc[`getFloatValue`] 
| Read the specified `length` number of bytes from the input sequence of the specified `streamBuf` and load to the specified `value` the interpretation of those bytes as the contents octets of a BER&hyphen;encoded real value according to the specification&period; Return 0 if successful, and a non&hyphen;zero value otherwise&period; The operation succeeds if `length` bytes are successfully read from the input sequence of the `streamBuf` without the read position becoming unavailable, and the bytes read contain a valid representation of the contents octets of a real value according to the specification&period;
| xref:BloombergLP/balber/BerUtil_FloatingPointImpUtil/putDecimal64Value.adoc[`putDecimal64Value`] 
| Write the length and contents octets of the encoding of the BER encoding of the specified `value` to the output sequence of the specified `streamBuf`&period; Return 0 if successful, and a non&hyphen;zero value otherwise&period; The operation succeeds if all bytes corresponding to the length and contents octets are written to the `streamBuf` without the write position becoming unavailable&period; See the package&hyphen;level documentation of &lcub;`balber`&rcub; for the definition of the format used to encode 64&hyphen;bit decimal values&period;
| xref:BloombergLP/balber/BerUtil_FloatingPointImpUtil/putDoubleValue.adoc[`putDoubleValue`] 
| Write the length and contents octets of the BER encoding of the specified real `value` (as defined in the specification) to the output sequence of the specified `streamBuf`&period; Optionally specify `options`, which will indicate whether `&hyphen;0&period;0` will be preserved or encoded as `&plus;0&period;0`&period; Return 0 if successful, and a non&hyphen;zero value otherwise&period; The operation succeeds if all bytes corresponding to the length and contents octets are written to the `streamBuf` without the write position becoming unavailable&period;
| xref:BloombergLP/balber/BerUtil_FloatingPointImpUtil/putFloatValue.adoc[`putFloatValue`] 
| Write the length and contents octets of the BER encoding of the specified real `value` (as defined in the specification) to the output sequence of the specified `streamBuf`&period; Optionally specify `options`, which will indicate whether `&hyphen;0&period;0f` will be preserved or encoded as `&plus;0&period;0f`&period; Return 0 if successful, and a non&hyphen;zero value otherwise&period; The operation succeeds if all bytes corresponding to the length and contents octets are written to the `streamBuf` without the write position becoming unavailable&period;
|===



[.small]#Created with https://www.mrdocs.com[MrDocs]#
