code: func NewForUtilInto(accetableOverheadRatio float32, out util.DataOutput) (*ForUtil, error) {
  	ans, err := &ForUtil{}, out.WriteVInt(packed.VERSION_CURRENT)
  	if err != nil {
  		return ans, err
  	}
  	ans.encodedSizes = make([]int32, 33)
  	ans.encoders = make([]packed.PackedIntsEncoder, 33)
  	ans.decoders = make([]packed.PackedIntsDecoder, 33)
  	ans.iterations = make([]int32, 33)
  
  	packedIntsVersion := int32(packed.VERSION_CURRENT)
  	for bpv := 1; bpv <= 32; bpv++ {
  		formatAndBits := packed.FastestFormatAndBits(
  			LUCENE41_BLOCK_SIZE, bpv, accetableOverheadRatio)
  		format := formatAndBits.Format
  		bitsPerValue := formatAndBits.BitsPerValue
  		assert(format.IsSupported(bitsPerValue))
  		assert(bitsPerValue <= 32)
  		ans.encodedSizes[bpv] = encodedSize(format, packedIntsVersion, uint32(bitsPerValue))
  		ans.encoders[bpv] = packed.GetPackedIntsEncoder(format, packedIntsVersion, uint32(bitsPerValue))
  		ans.decoders[bpv] = packed.GetPackedIntsDecoder(format, packedIntsVersion, uint32(bitsPerValue))
  		ans.iterations[bpv] = computeIterations(ans.decoders[bpv])
  
  		err = out.WriteVInt(int32(format.Id()<<5 | (bitsPerValue - 1)))
  		if err != nil {
  			return ans, err
  		}
  	}
  	return ans, err
  }
docs: /* Create a new ForUtil instance and save state into out. */