public static long[] andCMin(long[] v,long[] o){
  final int min=Math.min(v.length,o.length);
  long[] out=new long[min];
  int i=0;
  for (; i < min; i++) {
    out[i]=v[i] & o[i];
  }
  return out;
}

public static long [ ] andCMin ( long [ ] v , long [ ] o ) { final int min = Math . min ( v . length , o . length ) ; long [ ] out = new long [ min ] ; int i = 0 ; for ( ; i < min ; i ++ ) { out [ i ] = v [ i ] & o [ i ] ; } return out ; }
and o onto v in a copy , i . e . v & o the resulting array will have the shorter length of the two .
