yacs.domain
Class IntervalDomain

java.lang.Object
  extended byyacs.domain.Domain
      extended byyacs.domain.IntervalDomain
All Implemented Interfaces:
java.lang.Cloneable, java.io.Serializable

public class IntervalDomain
extends Domain

Klasse zur Repräsentation einer reellwertigen Intervalldomäne. Diese Klasse stützt sich auf die in der Bibliothek IAMath von Timothy J. Hickey implementierte Repräsentation von Intervallen.

Copyright (C) 2005 Wolfgang Runte

This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version.

This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.

You should have received a copy of the GNU Lesser General Public License along with this library; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA

Version:
YACS 0.1.1
Author:
Wolfgang Runte (woru@tzi.org)
See Also:
Serialized Form

Constructor Summary
IntervalDomain()
          Konstruktor -- Instantiiert eine Intervalldomäne.
IntervalDomain(double lo, double hi)
          Konstruktor -- Erlaubt die vereinfachte Instantiierung einer Intervalldomäne durch Angabe der unteren (lo) und oberen Schranke (hi) des Intervalls als double-Wert.
IntervalDomain(java.lang.Double lo, java.lang.Double hi)
          Konstruktor -- Erlaubt die vereinfachte Instantiierung einer Intervalldomäne durch Angabe der unteren (lo) und oberen Schranke (hi) des Intervalls als Double-Objekt.
IntervalDomain(net.sourceforge.interval.ia_math.RealInterval value)
          Konstruktor -- Die Domäne wird mit einem Wert (hier: RealInterval) instantiiert.
 
Method Summary
 boolean add(DomainElement value)
          Der Domäne wird ein Element hinzugefügt.
 boolean add(double lo, double hi)
          Vereinfacht das Hinzufügen von Elementen zu Domäne, indem lediglich die untere (lo) und obere Schranke (hi) des Intervalls als double-Wert angegeben werden muss.
 boolean add(java.lang.Double lo, java.lang.Double hi)
          Vereinfacht das Hinzufügen von Elementen zu Domäne, indem lediglich die untere (lo) und obere Schranke (hi) des Intervalls als Double-Objekt angegeben werden muss.
 boolean add(net.sourceforge.interval.ia_math.RealInterval value)
          Vereinfacht das Hinzufügen von Elementen zu Domäne, indem lediglich ein RealIntervall übergeben werden muss.
 double getLowerBound()
          Liefert die untere Schranke dieser Intervalldomäne.
 double getUpperBound()
          Liefert die obere Schranke dieser Intervalldomäne.
 boolean narrow(int operatorType, DomainElement element)
          Führt eine Beschränkung der Domäne durch, so dass sich das enthaltene Intervall anschließend innerhalb den Grenzen des übergebenen Intervalls befindet.
 void setLowerBound(double lowerBound)
          Setzt die untere Schranke dieser Intervalldomäne.
 void setUpperBound(double upperBound)
          Setzt die obere Schranke dieser Intervalldomäne.
 
Methods inherited from class yacs.domain.Domain
clone, cloneDeep, containsElement, deleteElement, getElement, getElements, isEmpty, size, toString, update
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

IntervalDomain

public IntervalDomain()
Konstruktor -- Instantiiert eine Intervalldomäne.


IntervalDomain

public IntervalDomain(net.sourceforge.interval.ia_math.RealInterval value)
Konstruktor -- Die Domäne wird mit einem Wert (hier: RealInterval) instantiiert.

Parameters:
value - RealInterval

IntervalDomain

public IntervalDomain(java.lang.Double lo,
                      java.lang.Double hi)
Konstruktor -- Erlaubt die vereinfachte Instantiierung einer Intervalldomäne durch Angabe der unteren (lo) und oberen Schranke (hi) des Intervalls als Double-Objekt.

Parameters:
lo - double
hi - double

IntervalDomain

public IntervalDomain(double lo,
                      double hi)
Konstruktor -- Erlaubt die vereinfachte Instantiierung einer Intervalldomäne durch Angabe der unteren (lo) und oberen Schranke (hi) des Intervalls als double-Wert.

Parameters:
lo - double
hi - double
Method Detail

add

public boolean add(DomainElement value)
Der Domäne wird ein Element hinzugefügt. Überschreibt die übergeordnete add()-Methode in der Art, dass sichergestellt wird, dass das übergebene Element anschließend das einzige innerhalb der Domäne ist. Dadurch wird ein konvexes Intervall repräsentiert. Die Methode liefert true zurück, wenn die Belegung erfolgreich war, false wenn nicht.

Overrides:
add in class Domain
Parameters:
value - DomainElement
Returns:
boolean

add

public boolean add(net.sourceforge.interval.ia_math.RealInterval value)
Vereinfacht das Hinzufügen von Elementen zu Domäne, indem lediglich ein RealIntervall übergeben werden muss. Liefert true zurück, wenn dies erfolgreich war, false wenn nicht (Intervall bereits vorhanden). Diese Methode stellt sicher, dass das übergebene Intervall anschließend das einzige Element innerhalb der Domäne ist, wodurch ein konvexes Intervall repräsentiert wird.

Parameters:
value - RealInterval
Returns:
boolean

add

public boolean add(java.lang.Double lo,
                   java.lang.Double hi)
Vereinfacht das Hinzufügen von Elementen zu Domäne, indem lediglich die untere (lo) und obere Schranke (hi) des Intervalls als Double-Objekt angegeben werden muss. Liefert true zurück, wenn dies erfolgreich war, false wenn nicht (Intervall bereits vorhanden). Diese Methode stellt sicher, dass das übergebene Intervall anschließend das einzige Element innerhalb der Domäne ist, wodurch ein konvexes Intervall repräsentiert wird.

Parameters:
lo - Double
hi - Double
Returns:
boolean

add

public boolean add(double lo,
                   double hi)
Vereinfacht das Hinzufügen von Elementen zu Domäne, indem lediglich die untere (lo) und obere Schranke (hi) des Intervalls als double-Wert angegeben werden muss. Liefert true zurück, wenn dies erfolgreich war, false wenn nicht (Intervall bereits vorhanden). Diese Methode stellt sicher, dass das übergebene Intervall anschließend das einzige Element innerhalb der Domäne ist, wodurch ein konvexes Intervall repräsentiert wird.

Parameters:
lo - double
hi - double
Returns:
boolean

getLowerBound

public double getLowerBound()
Liefert die untere Schranke dieser Intervalldomäne.

Returns:
double

getUpperBound

public double getUpperBound()
Liefert die obere Schranke dieser Intervalldomäne.

Returns:
double

setLowerBound

public void setLowerBound(double lowerBound)
Setzt die untere Schranke dieser Intervalldomäne.

Parameters:
lowerBound - double

setUpperBound

public void setUpperBound(double upperBound)
Setzt die obere Schranke dieser Intervalldomäne.

Parameters:
upperBound - double

narrow

public boolean narrow(int operatorType,
                      DomainElement element)
Führt eine Beschränkung der Domäne durch, so dass sich das enthaltene Intervall anschließend innerhalb den Grenzen des übergebenen Intervalls befindet. Lässt sich diese Beschränkung nicht durchführen, wird das in dieser Domäne enthaltenen Intervall gelöscht, wodurch eine "false domain" und dadurch eine Inkonsistenz entsteht. Liefert true wenn die Domäne eingeschränkt wurde, false wenn nicht. (Anm.: Derzeit wird auf diese Art ausschließlich das Einschränken der Intervallgrenzen für den Gleichheitsoperator implementiert.)

Overrides:
narrow in class Domain
Parameters:
operatorType - int
element - DomainElement
Returns:
boolean