class SparseFieldVector implements FieldVector<T>, Serializable {

    public FieldMatrix<T> outerProduct(SparseFieldVector<T> v) {
        final int n = v.getDimension();
        SparseFieldMatrix<T> res = new SparseFieldMatrix<T>(field, virtualSize, n);
        OpenIntToFieldHashMap<T>.Iterator iter = entries.iterator();
        while (iter.hasNext()) {
            iter.advance();
            OpenIntToFieldHashMap<T>.Iterator iter2 = v.entries.iterator();
            while (iter2.hasNext()) {
                iter2.advance();
                res.setEntry(iter.key(), iter2.key(), iter.value().multiply(iter2.value()));
            }
        }
        return res;
    }

    public  SparseFieldVector(Field<T> field);
    public  SparseFieldVector(Field<T> field, int dimension);
    protected  SparseFieldVector(SparseFieldVector<T> v, int resize);
    public  SparseFieldVector(Field<T> field, int dimension, int expectedSize);
    public  SparseFieldVector(Field<T> field, T[] values);
    public  SparseFieldVector(SparseFieldVector<T> v);

}