public IVector2D(int[][] v){
  defaultCapacity2=defaultDefaultCapacity2;
  if (v.length == 0) {
    vector=new int[defaultCapacity1][defaultCapacity2];
    sizes=new IVector(defaultCapacity1);
  }
 else {
    vector=v;
    sizes=new IVector(v.length);
    for (int i=0; i < v.length; ++i) {
      sizes.set(i,v[i].length);
      defaultCapacity2=Math.max(defaultCapacity2,v[i].length);
    }
    for (int i=0; i < v.length; ++i)     if (v[i].length == 0)     v[i]=new int[defaultCapacity2];
  }
}

public IVector2D ( int [ ] [ ] v ) { defaultCapacity2 = defaultDefaultCapacity2 ; if ( v . length == 0 ) { vector = new int [ defaultCapacity1 ] [ defaultCapacity2 ] ; sizes = new IVector ( defaultCapacity1 ) ; } else { vector = v ; sizes = new IVector ( v . length ) ; for ( int i = 0 ; i < v . length ; ++ i ) { sizes . set ( i , v [ i ] . length ) ; defaultCapacity2 = Math . max ( defaultCapacity2 , v [ i ] . length ) ; } for ( int i = 0 ; i < v . length ; ++ i ) if ( v [ i ] . length == 0 ) v [ i ] = new int [ defaultCapacity2 ] ; } }
constructs a new vector using the specified array as a starting point .
