Class Variable

java.lang.Object
org.tweetyproject.math.term.Term
org.tweetyproject.math.term.Variable
Direct Known Subclasses:
BinaryVariable, FloatVariable, IntegerVariable

public abstract class Variable extends Term
This class models a variable as a mathematical term.
Author:
Matthias Thimm
  • Constructor Details

    • Variable

      public Variable(String name)
      Creates a new variable with the given name.
      Parameters:
      name - the name of this variable.
    • Variable

      public Variable(String name, boolean isPositive)
      Creates a new variable with the given name.
      Parameters:
      name - the name of this variable.
      isPositive - whether this variables should be positive.
    • Variable

      public Variable(String name, double lowerBound, double upperBound)
      Creates a new variable with the given name and bounds.
      Parameters:
      name - the name of this variable.
      lowerBound - the lower bound of the variable.
      upperBound - the upper bound of the variable.
  • Method Details

    • isPositive

      public boolean isPositive()
      Checks whether this variables should be positive.
      Returns:
      "true" if this variables should be positive.
    • getUpperBound

      public double getUpperBound()
      Returns the upper bound of this variable.
      Returns:
      the upper bound of this variable.
    • getLowerBound

      public double getLowerBound()
      Returns the lower bound of this variable.
      Returns:
      the lower bound of this variable.
    • value

      public Constant value()
      Description copied from class: Term
      Computes the actual value of this term if it contains no variables.
      Specified by:
      value in class Term
      Returns:
      the value of this term, either a float or an integer.
    • getName

      public String getName()
      Returns the name of this variable.
      Returns:
      the name of this variable.
    • getVariables

      public Set<Variable> getVariables()
      Description copied from class: Term
      Returns all variables in this term.
      Specified by:
      getVariables in class Term
      Returns:
      all variables in this term.
    • getProducts

      public Set<Product> getProducts()
      Description copied from class: Term
      Returns all products of this term.
      Specified by:
      getProducts in class Term
      Returns:
      all products of this term.
    • getSums

      public Set<Sum> getSums()
      Description copied from class: Term
      Returns all sums of this term.
      Specified by:
      getSums in class Term
      Returns:
      all sums of this term.
    • getMinimums

      public Set<Minimum> getMinimums()
      Description copied from class: Term
      Returns all minimums of this term.
      Specified by:
      getMinimums in class Term
      Returns:
      all minimums of this term.
    • getMaximums

      public Set<Maximum> getMaximums()
      Description copied from class: Term
      Returns all maximums of this term.
      Specified by:
      getMaximums in class Term
      Returns:
      all maximums of this term.
    • getAbsoluteValues

      public Set<AbsoluteValue> getAbsoluteValues()
      Description copied from class: Term
      Returns all absolute values of this term.
      Specified by:
      getAbsoluteValues in class Term
      Returns:
      all absolute values of this term.
    • replaceTerm

      public Term replaceTerm(Term toSubstitute, Term substitution)
      Description copied from class: Term
      Replaces each occurrence of "toSubstitute" by "substitution" and return the new term.
      Specified by:
      replaceTerm in class Term
      Parameters:
      toSubstitute - the term to be substituted
      substitution - the new term
      Returns:
      this term where "toSubstitute" is replaced by "substitution"
    • collapseAssociativeOperations

      public void collapseAssociativeOperations()
      Description copied from class: Term
      This method collapses all associative operations appearing in this term, e.g. every min{min{a,b},c} becomes min{a,b,c}.
      Specified by:
      collapseAssociativeOperations in class Term
    • expandAssociativeOperations

      public void expandAssociativeOperations()
      Description copied from class: Term
      This method expands all associative operations appearing in this term, e.g. every min{a,b,c} becomes min{min{a,b},c}.
      Specified by:
      expandAssociativeOperations in class Term
    • isContinuous

      public boolean isContinuous(Variable v)
      Description copied from class: Term
      Checks whether this term is continuous in v.
      Specified by:
      isContinuous in class Term
      Parameters:
      v - a variable
      Returns:
      "true" iff this term is continuous in v.
    • toLinearForm

      public Sum toLinearForm() throws IllegalArgumentException
      Description copied from class: Term
      Converts this term into a linear normal form, i.e. into a sum of products of a constant and a variable.
      Specified by:
      toLinearForm in class Term
      Returns:
      a term in linear normal form.
      Throws:
      IllegalArgumentException - if this term cannot be converted into a linear normal form.
    • toQuadraticForm

      public Sum toQuadraticForm() throws IllegalArgumentException
      Specified by:
      toQuadraticForm in class Term
      Throws:
      IllegalArgumentException
    • derive

      public Term derive(Variable v)
      Description copied from class: Term
      Differentiates the term with respect to the given variable.
      Specified by:
      derive in class Term
      Parameters:
      v - a variable.
      Returns:
      the derivation of this term wrt. the given variable.
    • simplify

      public Term simplify()
      Description copied from class: Term
      Simplifies this term in an equivalent way:
      - Replaces products that contain a zero by the constant zero
      - Removes a term one from products
      - Removes a term zero from sums
      - Aggregates constants in sums, products, and minimums
      - Evaluates functional terms on constants
      - Simplifies fractions where possible.
      Specified by:
      simplify in class Term
      Returns:
      the simplified term.
    • getTerms

      public List<Term> getTerms()
      Specified by:
      getTerms in class Term
    • hashCode

      public int hashCode()
      Overrides:
      hashCode in class Object
    • equals

      public boolean equals(Object obj)
      Overrides:
      equals in class Object
    • toString

      public String toString()
      Specified by:
      toString in class Term