@Override
    public Vector slice(int from, int to) {

        SparseVector res = new SparseVector();
        int fi = find(from);
        if (fi < 0 ) {
            fi = - fi - 1;
        }
        int ti = find(to);
        if (ti < 0) {
            ti = - ti - 1;
        }
        for(int idx = fi; idx<ti; idx++) {
            res.set(index(idx)-from, value(idx));
        }
        return res;
    }