@Override
    public boolean equals(Object obj) {
        if (this == obj)
            return true;
        if (obj == null)
            return false;
        if (getClass() != obj.getClass())
            return false;
        BaseFractalAlgorithm other = (BaseFractalAlgorithm) obj;
        if (Double.doubleToLongBits(escapeRadius) != Double.doubleToLongBits(other.escapeRadius))
            return false;
        if (Double.doubleToLongBits(escapeSquared) != Double.doubleToLongBits(other.escapeSquared))
            return false;
        if (iterations != other.iterations)
            return false;
        if (getName() == null) {
            if (other.getName() != null)
                return false;
        } else if (!getName().equals(other.getName()))
            return false;
        return true;
    }