groups and dynamic pmap bits

Imported from previous forum

It is not clear for me how to handle a group which contains an optional decimal with individual operators and no other fields requiring a pmap bit, in the case where the exponent requires no pmap bit (for instance a delta) and the mantissa requires one (for instance copy). Since the pmap bit for the mantissa depends on the stream, how can we know if the stream contain a pmap for this group ? As I look in the java openfast implementation, the composed decimal field is considered not requiring a bit, which would suggest that the mantissa bit, if required, is in the presence map of the sequence containing the group, as opposed to the case where some other field in the group would require a bit, in which case the mantissa bit would be in the pmap of the group .

Is this the correct interpretation ?

The group always contains a pmap if at least one of its fields has an operator requiring a pbit. In your example, the mantissa requires a bit even if it is not utilized in every instance of the field.

/David

It is not clear for me how to handle a group which contains an optional
decimal with individual operators and no other fields requiring a pmap
bit, in the case where the exponent requires no pmap bit (for instance a
delta) and the mantissa requires one (for instance copy). Since the pmap
bit for the mantissa depends on the stream, how can we know if the
stream contain a pmap for this group ? As I look in the java openfast
implementation, the composed decimal field is considered not requiring a
bit, which would suggest that the mantissa bit, if required, is in the
presence map of the sequence containing the group, as opposed to the
case where some other field in the group would require a bit, in which
case the mantissa bit would be in the pmap of the group .

Is this the correct interpretation ?

It is not clear for me how to handle a group which contains an optional
decimal with individual operators and no other fields requiring a pmap
bit, in the case where the exponent requires no pmap bit (for instance a
delta) and the mantissa requires one (for instance copy). Since the pmap
bit for the mantissa depends on the stream, how can we know if the
stream contain a pmap for this group ? As I look in the java openfast
implementation, the composed decimal field is considered not requiring a
bit, which would suggest that the mantissa bit, if required, is in the
presence map of the sequence containing the group, as opposed to the
case where some other field in the group would require a bit, in which
case the mantissa bit would be in the pmap of the group .

Is this the correct interpretation ?

I think the bit will be in the PMAP of the group (where the bit for the exponent would be, if required). Because exponent is a DELTA (always required in the stream, no PMAP bit needed) you would have the PMAP bit for the mantissa iff the exponent value decoded from the stream is not NULL.

This appears to be a bug in OpenFAST. The group should always have a presence map. When a null value is encoded in the stream for the decimal exponent then the PMAP will be empty.

It is not clear for me how to handle a group which contains an optional
decimal with individual operators and no other fields requiring a pmap
bit, in the case where the exponent requires no pmap bit (for instance a
delta) and the mantissa requires one (for instance copy). Since the pmap
bit for the mantissa depends on the stream, how can we know if the
stream contain a pmap for this group ? As I look in the java openfast
implementation, the composed decimal field is considered not requiring a
bit, which would suggest that the mantissa bit, if required, is in the
presence map of the sequence containing the group, as opposed to the
case where some other field in the group would require a bit, in which
case the mantissa bit would be in the pmap of the group .

Is this the correct interpretation ?

Thank you for this quick answer. This means as well that for a mandatory composed decimal, a group pmap is required if at least one of the decimal subfield requires one ?

This appears to be a bug in OpenFAST. The group should always have a
presence map. When a null value is encoded in the stream for the decimal
exponent then the PMAP will be empty.

It is not clear for me how to handle a group which contains an
optional decimal with individual operators and no other fields
requiring a pmap bit, in the case where the exponent requires no pmap
bit (for instance a delta) and the mantissa requires one (for instance
copy). Since the pmap bit for the mantissa depends on the stream, how
can we know if the stream contain a pmap for this group ? As I look in
the java openfast implementation, the composed decimal field is
considered not requiring a bit, which would suggest that the mantissa
bit, if required, is in the presence map of the sequence containing
the group, as opposed to the case where some other field in the group
would require a bit, in which case the mantissa bit would be in the
pmap of the group .

Is this the correct interpretation ?

Correct

Thank you for this quick answer. This means as well that for a mandatory
composed decimal, a group pmap is required if at least one of the
decimal subfield requires one ?

This appears to be a bug in OpenFAST. The group should always have a
presence map. When a null value is encoded in the stream for the
decimal exponent then the PMAP will be empty.

It is not clear for me how to handle a group which contains an
optional decimal with individual operators and no other fields
requiring a pmap bit, in the case where the exponent requires no
pmap bit (for instance a delta) and the mantissa requires one (for
instance copy). Since the pmap bit for the mantissa depends on the
stream, how can we know if the stream contain a pmap for this group
? As I look in the java openfast implementation, the composed
decimal field is considered not requiring a bit, which would suggest
that the mantissa bit, if required, is in the presence map of the
sequence containing the group, as opposed to the case where some
other field in the group would require a bit, in which case the
mantissa bit would be in the pmap of the group .

Is this the correct interpretation ?