/** * Checks if the array is sorted */ public static boolean isSorted(final DefaultDomainElement1D[] domains) { if (domains == null) return true; for (int i = 1; i < domains.length; i++) { final DefaultDomainElement1D d1 = domains[i]; assert !(d1.getInputMinimum() > d1.getInputMaximum()) : d1; final DefaultDomainElement1D d0 = domains[i - 1]; assert !(d0.getInputMinimum() > d0.getInputMaximum()) : d0; if (compare(d0.getInputMaximum(), d1.getInputMinimum()) > 0) { return false; } } return true; }
public synchronized String getName() { if (name == null) { final StringBuffer buffer = new StringBuffer(30); final Locale locale = Locale.getDefault(); if (main != null) { buffer.append(main.getName()); } else { buffer.append('('); buffer.append("Untitled"); buffer.append(')'); } name = buffer.toString(); } return name; }
for (int i = 0; i < elements.length; i++) { final DefaultDomainElement1D c = elements[i]; final double inMinimum = minimums[i] = c.getInputMinimum(); if (i != 0) { assert !(inMinimum < minimums[i - 1]) : inMinimum; if (PiecewiseUtilities.compare(inMinimum, previous.getInputMaximum()) <= 0) { PiecewiseUtilities.domainElementsOverlap(elements, i); && inMinimum != ((Range) previous.getRange()).getMax(false).doubleValue()) { hasGaps = true; for (int i = elements.length; --i >= 0;) { final E candidate = elements[i]; if (Double.isInfinite(candidate.getInputMinimum()) && Double.isInfinite(candidate.getInputMaximum())) { range = Double.POSITIVE_INFINITY; main = candidate; continue; final double candidateRange = candidate.getInputMaximum() - candidate.getInputMinimum(); if (candidateRange >= range) { range = candidateRange;
@Override public int hashCode() { if (hashCode >= 0) return hashCode; hashCode = 37; hashCode = PiecewiseUtilities.hash(transform, hashCode); hashCode = PiecewiseUtilities.hash(inverse, hashCode); hashCode = PiecewiseUtilities.hash(super.hashCode(), hashCode); return hashCode; }
public boolean equals(Object obj) { if (obj == this) return true; if (!(obj instanceof DefaultPiecewiseTransform1DElement)) return false; final DefaultPiecewiseTransform1DElement that = (DefaultPiecewiseTransform1DElement) obj; if (getEquivalenceClass() != (that.getEquivalenceClass())) return false; if (!PiecewiseUtilities.equals(transform, that.transform)) return false; if (!PiecewiseUtilities.equals(inverse, that.inverse)) return false; return super.equals(obj); }
public Range getApproximateDomainRange() { synchronized (elements) { // @todo TODO should I include the NaN value? if (range == null) { Range range = null; for (E element : elements) { final Range extent = element.getRange(); if (!Double.isNaN(extent.getMin().doubleValue()) && !Double.isNaN(extent.getMax().doubleValue())) { if (range != null) {// TODO FIXME ADD RANGE UNION range = range.union(extent); } else { range = extent; } } } this.range = range; } return range; } }
/** * Implementation of {@link Object#equals(Object)} for {@link DomainElement1D}s. * * <p> * Two {@link DefaultDomainElement1D}s are considered to be equal if they have the same inputr range and the same name. * * @param obj the reference object with which to compare. * @return <code>true</code> if this object is the same as the obj argument; <code>false</code> otherwise. * @see Object#equals(Object) */ public boolean equals(final Object obj) { if (obj == this) { return true; } if (obj instanceof DefaultDomainElement1D) return false; final DefaultDomainElement1D that = (DefaultDomainElement1D) obj; if (getEquivalenceClass() != that.getEquivalenceClass()) return false; if (!PiecewiseUtilities.equals(inputMinimum, that.inputMinimum)) return false; if (!PiecewiseUtilities.equals(inputMaximum, that.inputMaximum)) return false; if (!this.name.equals(that.name)) return false; if (!this.range.equals(that.range)) return false; return true; }
for (int i = 0; i < elements.length; i++) { final DefaultDomainElement1D c = elements[i]; final double inMinimum = minimums[i] = c.getInputMinimum(); if (i != 0) { assert !(inMinimum < minimums[i - 1]) : inMinimum; if (PiecewiseUtilities.compare(inMinimum, previous.getInputMaximum()) <= 0) { PiecewiseUtilities.domainElementsOverlap(elements, i); && inMinimum != ((Range) previous.getRange()).getMax(false).doubleValue()) { hasGaps = true; for (int i = elements.length; --i >= 0;) { final E candidate = elements[i]; if (Double.isInfinite(candidate.getInputMinimum()) && Double.isInfinite(candidate.getInputMaximum())) { range = Double.POSITIVE_INFINITY; main = candidate; continue; final double candidateRange = candidate.getInputMaximum() - candidate.getInputMinimum(); if (candidateRange >= range) { range = candidateRange;
@Override public int hashCode() { if (hashCode >= 0) return hashCode; hashCode = 37; hashCode = PiecewiseUtilities.hash(transform, hashCode); hashCode = PiecewiseUtilities.hash(inverse, hashCode); hashCode = PiecewiseUtilities.hash(super.hashCode(), hashCode); return hashCode; }
public boolean equals(Object obj) { if (obj == this) return true; if (!(obj instanceof DefaultPiecewiseTransform1DElement)) return false; final DefaultPiecewiseTransform1DElement that = (DefaultPiecewiseTransform1DElement) obj; if (getEquivalenceClass() != (that.getEquivalenceClass())) return false; if (!PiecewiseUtilities.equals(transform, that.transform)) return false; if (!PiecewiseUtilities.equals(inverse, that.inverse)) return false; return super.equals(obj); }
public Range getApproximateDomainRange() { synchronized (elements) { // @todo TODO should I include the NaN value? if (range == null) { Range range = null; for (E element : elements) { final Range extent = element.getRange(); if (!Double.isNaN(extent.getMin().doubleValue()) && !Double.isNaN(extent.getMax().doubleValue())) { if (range != null) {// TODO FIXME ADD RANGE UNION range = range.union(extent); } else { range = extent; } } } this.range = range; } return range; } }
/** * Implementation of {@link Object#equals(Object)} for {@link DomainElement1D}s. * * <p> * Two {@link DefaultDomainElement1D}s are considered to be equal if they have the same inputr range and the same name. * * @param obj the reference object with which to compare. * @return <code>true</code> if this object is the same as the obj argument; <code>false</code> otherwise. * @see Object#equals(Object) */ public boolean equals(final Object obj) { if (obj == this) { return true; } if (obj instanceof DefaultDomainElement1D) return false; final DefaultDomainElement1D that = (DefaultDomainElement1D) obj; if (getEquivalenceClass() != that.getEquivalenceClass()) return false; if (!PiecewiseUtilities.equals(inputMinimum, that.inputMinimum)) return false; if (!PiecewiseUtilities.equals(inputMaximum, that.inputMaximum)) return false; if (!this.name.equals(that.name)) return false; if (!this.range.equals(that.range)) return false; return true; }
/** * Checks if the array is sorted */ public static boolean isSorted(final DefaultDomainElement1D[] domains) { if (domains == null) return true; for (int i = 1; i < domains.length; i++) { final DefaultDomainElement1D d1 = domains[i]; assert !(d1.getInputMinimum() > d1.getInputMaximum()) : d1; final DefaultDomainElement1D d0 = domains[i - 1]; assert !(d0.getInputMinimum() > d0.getInputMaximum()) : d0; if (compare(d0.getInputMaximum(), d1.getInputMinimum()) > 0) { return false; } } return true; }
public synchronized String getName() { if (name == null) { final StringBuffer buffer = new StringBuffer(30); final Locale locale = Locale.getDefault(); if (main != null) { buffer.append(main.getName()); } else { buffer.append('('); buffer.append("Untitled"); buffer.append(')'); } name = buffer.toString(); } return name; }