class DoublePoint extends AbstractPoint {

    @Override
    public boolean equals(Object obj) {
        if (obj instanceof DoublePoint) {
            DoublePoint other = (DoublePoint) obj;
            return index == other.index && time == other.time
                    && ((Double.isNaN(value) && Double.isNaN(other.value)) || value == other.value);
        }
        return false;
    }

    public  DoublePoint(int index, long time, double value);

}