/**
   * write the field, note the code could easily be extracted and templated but then would get
   * autoboxing and unable to optimise inlining
   *
   * @param encoder
   * @param mapWriter
   * @param value
   */
  public double read(final FastFixDecodeBuilder encoder, final PresenceMapReader mapReader) {
    final int exp = _exp.read(encoder);

    if (exp != Constants.UNSET_INT) {
      final long mant = _mant.read(encoder);

      return _prevDecimal.set(exp, mant);
    }

    return Constants.UNSET_DOUBLE;
  }
 @Override
 public boolean requiresPMap() {
   return _exp.requiresPMap() || _mant.requiresPMap();
 }
 @Override
 public void reset() {
   _prevDecimal.set(_initExp, _initMant);
   _exp.reset();
   _mant.reset();
 }
 public double getInitValue(FastFixDecimal t) {
   return t.set(_exp.getInitValue(), _mant.getInitValue());
 }