code: public static final int getDynamicStoreInitialCapacity(int initialLevel) {
          // Compute maxLevel
          LinearHashing h = new LinearHashing(DynamicConstants.SUB_ARRAY_SIZE);
          h.reinit(Integer.MAX_VALUE);
          int maxLevel = h.getLevel();
          
          // Compute initialCapacity
          int initialCapacity = DynamicConstants.SUB_ARRAY_SIZE;
          if(initialLevel > 0) {
              if(initialLevel > maxLevel) {
                  initialLevel = maxLevel;
              }
              initialCapacity = DynamicConstants.SUB_ARRAY_SIZE << initialLevel;
          }
          
          return initialCapacity;
      }
docs: Gets the initial capacity of {@link krati.store.DynamicDataStore DynamicDataStore}, {@link krati.store.DynamicDataSet DynamicDataSet}
  and {@link krati.store.IndexedDataStore IndexedDataStore} based on the <code>initialLevel</code> of store.
  The <code>initialLevel</code> determines that the <code>initialCapacity</code> should be
  equal to <code>2 ^ (16 + level)</code> and less than <code>Integer.MAX_VALUE</code>.
  
  @param initialLevel - the initial level of store, which should be in the range [0, 15).
  @return the initial capacity of a dynamic store.