[This message was posted by Alessio Mazzanti of List <[EMAIL PROTECTED]> to the "FAST Protocol" discussion forum at http://fixprotocol.org/discuss/46. You can reply to it on-line at http://fixprotocol.org/discuss/read/7efb014e - PLEASE DO NOT REPLY BY MAIL.]
OK, perfect. Thank you very much. -- Ale > No, the mantissa is always mandatory, see the specification at > section 10.5.1: > > "Decimal fields with individual operators have the following > utilization: > > * If the decimal has mandatory presence, the exponent and mantissa > fields are treated as two separate mandatory integer fields as > described above. > > * If the decimal has optional presence, the exponent field is treated as > an optional integer field and the mantissa field is treated as a > mandatory integer field. The presence of the mantissa field and any > related bits in the presence map are dependent on the presence of the > exponent. The mantissa field appears in the stream iff the exponent > value is considered present. If the mantissa has an operator that > requires a bit in the presence map, this bit is present iff the > exponent value is considered present." > > /David > > > OK, But is it possible that exponent is not NULL and mantissa is NULL? > > > > And what's the resulting 'scaled number' in this case? > > > > Thanks in advance, -- Ale > > > > > > > > I believe it is easiest to think of them as two completely > > > independent fields in all other regards than this: when the exponent > > > is NULL you don't process the mantissa field - in any way - no > > > operator, no change in dictionary, no pbit, no value to read from > > > the stream. > > > > > > The state of the previous value is an artifact of the dictionary so > > > it's not significant when you pass values to your application and > > > there's nothing to combine in this case. > > > > > > A typical decoder would pass NULL to the application if the > > > expoenent is NULL, and a scalar number in all other cases. > > > > > > /David > > > > > > > Sorry David, I would need another particular detail: > > > > > > > > As you replied to the question number 2, the mantissa and exponent > > > > parts have to be treated as two individual fields in the > > > > dictionary, and they will be somehow combined... > > > > > > > > My doubt is: how should I combine the status (assigned, undefined, > > > > empty) of the exponent and the mantissa when I combine them into a > > > > scaled number or similar? > > > > > > > > In particular do I have to expect the exponent is assigned and the > > > > mantissa is not and/or vice versa? > > > > > > > > Thanks in advance. Regards, -- Ale > > > > > > > > > > > > > > > > > Yes, if the previous value has the state empty and the bit is > > > > > not set, then the exponent is NULL. > > > > > > > > > > /David > > > > > > > > > > > Thank you very much for your prompt and clear reply. > > > > > > > > > > > > Just a little question: what if the exponent bit isn't set and > > > > > > the previous value is empty? Is this a particular case of NULL > > > > > > exponent? > > > > > > > > > > > > Regards, -- Ale > > > > > > > > > > > > > > > > > > > > > > > > > Ale - > > > > > > > > > > > > > > 1. No. Whether you should process the mantissa or not is > > > > > > > only dependent on a single thing: if the exponent is NULL > > > > > > > or not. Whether you use a operator on the exponent > > > > > > > doesn't change this property. > > > > > > > > > > > > > > In your example you use the copy operator. If the bit is not > > > > > > > set this means "copy the previous value". If the previous > > > > > > > value is not NULL, then the value of the exponent is not > > > > > > > NULL and the mantissa is present. > > > > > > > > > > > > > > 2. The mantissa and exponent parts are treated as two > > > > > > > individual fields in the dictionary so there are one or > > > > > > > two separate signed integer fields in the dictionary to > > > > > > > manage. There is no corresponding scaled number field in > > > > > > > the dictionary in this case. However, when you > > > > > > > communicate the value of the field from the decoder to > > > > > > > the application you would typically combine them into a > > > > > > > scaled number or similar. > > > > > > > > > > > > > > /David > > > > > > > > > > > > > > > Actually may be I was not so clear. > > > > > > > > > > > > > > > > In the specific case: > > > > > > > > > > > > > > > > < decimal name="MDEntryPx" id="270" presence="optional" > > > > > > > > > < exponent > > > > > > > > > < copy value="-2" / > < / exponent > < mantissa > < > > > > > > > > > delta / > > > > > > > > > > < / > > > > > > > > mantissa > < /decimal > > > > > > > > > > > > > > > > > since the decimal is optional, then the exponent is > > > > > > > > optional. Moreover, since the exponent has the individual > > > > > > > > copy operator, then the exponent will have a bit in the > > > > > > > > pmap (no matter if it is set or not). > > > > > > > > > > > > > > > > The exponent will be considered absent in two distinct > > > > > > > > cases: > > > > > > > > > > > > > > > > a) The bit is not set. > > > > > > > > b) The bit is set but, since the exponent is optional, it > > > > > > > > is present in the stream in its NULL representation. > > > > > > > > > > > > > > > > In both these cases the mantissa will be not present in > > > > > > > > the stream as well and has to be considered absent. > > > > > > > > > > > > > > > > The only case in which the mantissa is present in the > > > > > > > > stream is when the exponent bit in pmap is set and the > > > > > > > > exponent value is not NULL. > > > > > > > > > > > > > > > > 1. Is all that right? > > > > > > > > > > > > > > > > 2. How should we set the new previous value of the decimal > > > > > > > > (the corresponding Scaled Number) if the exponent has > > > > > > > > to be considered absent? > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > Note that even if the exponent bit in pmap was not set, > > > > > > > > the value of the exponent field could result assigned (for > > > > > > > > example it should be assigned to the copy initial value, > > > > > > > > or to the previous value stored in the dictionary). > > > > > > > > > > > > > > > > 3. Let suppose the mantissa is not in the stream (because > > > > > > > > of the exponent absence), what does it imply in term of > > > > > > > > the mantissa field value, and what in term of the mantissa > > > > > > > > new previous value? > > > > > > > > > > > > > > > > > > > > > > > > Many thanks in advance. > > > > > > > > > > > > > > > > Regards, -- Ale > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > Ale - > > > > > > > > > > > > > > > > > > A bit in the pmap indicates how a field operator should > > > > > > > > > be executed. The exact meaning of the bit is dependent > > > > > > > > > on the operator type and its attributes. > > > > > > > > > > > > > > > > > > The bit doesn't automatically indicate whether an > > > > > > > > > optional field is NULL or not. Only after exercising the > > > > > > > > > operator according to the bit you'll know if the value > > > > > > > > > is NULL or not. > > > > > > > > > > > > > > > > > > When using a decimal field with individual operators, > > > > > > > > > and the value of an exponent field is NULL, the > > > > > > > > > instruction for the mantissa should be skipped. > > > > > > > > > > > > > > > > > > You may want to have a look a this post (and other posts > > > > > > > > > in the same thread): > > > > > > > > > > > > > > > > > > http://www.fixprotocol.org/discuss/read/24ed599c > > > > > > > > > > > > > > > > > > /David > > > > > > > > > > > > > > > > > > > > > > > > > > > > Hello, I would need a clarification. > > > > > > > > > > > > > > > > > > > > The handbook [section 10.5.1 -- Presence Map and NULL > > > > > > > > > > Utilization] says: > > > > > > > > > > > > > > > > > > > > [...]If the decimal has optional presence, the > > > > > > > > > > exponent field is treated as an optional integer field > > > > > > > > > > and the mantissa field is treated as a mandatory > > > > > > > > > > integer field. The presence of the mantissa field and > > > > > > > > > > any related bits in the presence map are dependent on > > > > > > > > > > the presence of the exponent. The mantissa field > > > > > > > > > > appears in the stream iff the exponent value is > > > > > > > > > > considered present. If the mantissa has an operator > > > > > > > > > > that requires a bit in the presence map, this bit is > > > > > > > > > > present iff the exponent value is considered > > > > > > > > > > present.[...] > > > > > > > > > > > > > > > > > > > > Let suppose I have the following decimal field in my > > > > > > > > > > template definition: > > > > > > > > > > > > > > > > > > > > < decimal name="MDEntryPx" id="270" > > > > > > > > > > presence="optional" > > > > > > > > > > > < exponent < copy value="-2" / > < / exponent > < > > > > > > > > > > > mantissa > < delta / > > > > > > > > > > > > < / > > > > > > > > > > mantissa > > > > > > > > > > > < /decimal > > > > > > > > > > > > > > > > > > > > > For the best of my comprehension in this case the > > > > > > > > > > exponent is optional, and has its own bit in pmap (due > > > > > > > > > > to the copy operator). If that bit is not set (the > > > > > > > > > > exponent is not present in the stream for sure) then > > > > > > > > > > the mantissa will be not present in the stream as > > > > > > > > > > well. > > > > > > > > > > > > > > > > > > > > 1. Does the same worth if the bit in pmap is set but > > > > > > > > > > the exponent value is NULL? > > > > > > > > > > 2. What about the new previous value of the Scaled > > > > > > > > > > Number if the exponent has to be considered absent? > > > > > > > > > > > > > > > > > > > > Moreover, the fact that the exponent bit in pmap is > > > > > > > > > > not set should not imply that the value of the > > > > > > > > > > exponent field will be not assigned (e.g. it should be > > > > > > > > > > assigned to the copy initial value, or to the previous > > > > > > > > > > value stored in the dictionary). > > > > > > > > > > > > > > > > > > > > 3.Let suppose the mantissa is not in the stream > > > > > > > > > > (because of the exponent absence), what does it imply > > > > > > > > > > in term of the mantissa field value, and in term of > > > > > > > > > > the mantissa new previous value? > > > > > > > > > > > > > > > > > > > > Many thanks in advance. Kind regards, -- Ale [You can unsubscribe from this discussion group by sending a message to mailto:[EMAIL PROTECTED] --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Financial Information eXchange" group. To post to this group, send email to FIX-Protocol@googlegroups.com To unsubscribe from this group, send email to [EMAIL PROTECTED] For more options, visit this group at http://groups.google.com/group/FIX-Protocol?hl=en -~----------~----~----~----~------~----~------~--~---