Enum StandardOperation

  • All Implemented Interfaces:
    java.io.Serializable, java.lang.Comparable<StandardOperation>, TypeRule

    public enum StandardOperation
    extends java.lang.Enum<StandardOperation>
    implements TypeRule
    The StandardOperation.java enumeration contains identifiers that specify particular operations used in expressions.
    • Nested Class Summary

      Nested Classes 
      Modifier and Type Class Description
      static class  StandardOperation.Family
      Describes the family of operands the operation manipulates with.
    • Enum Constant Summary

      Enum Constants 
      Enum Constant Description
      ABS
      Group: Logic, Operation: Absolute value.
      ADD
      Group: Logic, Operation: Addition.
      AND
      Group: Logic, Operation: AND.
      BOOL2BV
      Group: Bit Vector Cast, Operation: Cast boolean to bit vector of size 1.
      BV2BOOL
      Group: Bit Vector Cast, Operation: Cast to boolean.
      BV2INT
      Group: Bit Vector Cast, Operation: Cast bit vector to integer.
      BVADD
      Group: Bitvector, Operation: Addition.
      BVAND
      Group: Bitvector, Operation: Bitwise AND.
      BVANDR
      Group: Bit Vector Reduction, Operation: Reduction AND (&).
      BVASHL
      Group: Bitvector, Operation: Arithmetical shift left.
      BVASHR
      Group: Bitvector, Operation: Signed (arithmetical) shift right.
      BVCONCAT
      Group: Bitvector, Operation: Concatenation (expected operand order is from HIGH to LOW).
      BVEXTRACT
      Group: Bitvector, Operation: Extraction of subvector.
      BVLSHL
      Group: Bitvector, Operation: Logical shift left.
      BVLSHR
      Group: Bitvector, Operation: Unsigned (BitVectorOperational) shift right.
      BVMUL
      Group: Bitvector, Operation: Multiplication.
      BVNAND
      Group: Bitvector, Operation: Bitwise NAND.
      BVNANDR
      Group: Bit Vector Reduction, Operation: Reduction NAND (~&).
      BVNEG
      Group: Bitvector, Operation: Unary minus.
      BVNOR
      Group: Bitvector, Operation: Bitwise NOR.
      BVNORR
      Group: Bit Vector Reduction, Operation: Reduction NOR (~|).
      BVNOT
      Group: Bitvector, Operation: Bitwise NOT.
      BVOR
      Group: Bitvector, Operation: Bitwise OR.
      BVORR
      Group: Bit Vector Reduction, Operation: Reduction OR (|).
      BVREPEAT
      Group: Bitvector, Operation: Replication (concatenation of several copies of bitvector).
      BVROL
      Group: Bitvector, Operation: Rotate left.
      BVROR
      Group: Bitvector, Operation: Rotate right.
      BVSDIV
      Group: Bitvector, Operation: Signed division.
      BVSGE
      Group: Bitvector, Operation: Signed greater or equal.
      BVSGT
      Group: Bitvector, Operation: Signed greater than.
      BVSIGNEXT
      Group: Bitvector, Operation: Extension to the signed equivalent.
      BVSLE
      Group: Bitvector, Operation: Signed less or equal.
      BVSLT
      Group: Bitvector, Operation: Signed less than.
      BVSMOD
      Group: Bitvector, Operation: Signed modulo.
      BVSREM
      Group: Bitvector, Operation: Signed remainder.
      BVSUB
      Group: Bitvector, Operation: Subtraction.
      BVUDIV
      Group: Bitvector, Operation: Unsigned division.
      BVUGE
      Group: Bitvector, Operation: Unsigned greater or equal.
      BVUGT
      Group: Bitvector, Operation: Unsigned greater than.
      BVULE
      Group: Bitvector, Operation: Unsigned less or equal.
      BVULT
      Group: Bitvector, Operation: Unsigned less than.
      BVUREM
      Group: Bitvector, Operation: Unsigned remainder.
      BVXNOR
      Group: Bitvector, Operation: Bitwise XNOR.
      BVXNORR
      Group: Bit Vector Reduction, Operation: Reduction XNOR (~^).
      BVXOR
      Group: Bitvector, Operation: Bitwise XOR.
      BVXORR
      Group: Bit Vector Reduction, Operation: Reduction XOR (^).
      BVZEROEXT
      Group: Bitvector, Operation: Extension by zeros.
      DIV
      Group: Logic, Operation: Division.
      EQ
      Group: Logic, Operation: Equality.
      EQCASE
      Group: Logic, Operation: Case equality.
      FUNCTION
      Group: Function Call.
      GREATER
      Group: Logic, Operation: Greater.
      GREATEREQ
      Group: Logic, Operation: Greater or equal.
      IMPL
      Group: Logic, Operation: Implication.
      INT2BV
      Group: Bit Vector Cast, Operation: Conversion to integer.
      ITE
      Group: Logic, Operation: Conditional expression aka if-then-else.
      LESS
      Group: Logic, Operation: Less.
      LESSEQ
      Group: Logic, Operation: Less or equal.
      MAX
      Group: Logic, Operation: Maximum.
      MIN
      Group: Logic, Operation: Minimum.
      MINUS
      Group: Logic, Operation: Unary minus.
      MOD
      Group: Logic, Operation: Modulo.
      MUL
      Group: Logic, Operation: Multiplication.
      NOT
      Group: Logic, Operation: NOT.
      NOTEQ
      Group: Logic, Operation: Not Equal.
      NOTEQCASE
      Group: Logic, Operation: Case not equality.
      OR
      Group: Logic, Operation: OR.
      PLUS
      Group: Logic, Operation: Unary plus.
      POWER
      Group: Logic, Operation: Power.
      REM
      Group: Logic, Operation: Remainder.
      SELECT
      Group: Array, Operation: Get stored value.
      STORE
      Group: Array, Operation: Store value.
      SUB
      Group: Logic, Operation: Subtraction.
      XOR
      Group: Logic, Operation: XOR.
    • Method Summary

      All Methods Static Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      static java.util.Collection<java.lang.Enum<?>> getBoolOperandOperations()
      Returns the collection of operations are defined on operands of boolean type.
      static java.util.Collection<java.lang.Enum<?>> getBvOperandOperations()
      Returns the collection of operations are defined on operands of bit vector type.
      static java.util.Collection<java.lang.Enum<?>> getDifferentBvOperandOperations()
      Returns the collection of operations are defined on operands of different bit vector types.
      static java.util.Collection<java.lang.Enum<?>> getIntOperandOperations()
      Returns the collection of operations are defined on operands of integer type.
      static java.util.Collection<java.lang.Enum<?>> getLogicOperandOperations()
      Returns the collection of operations are defined on operands of logic types.
      static java.util.Collection<java.lang.Enum<?>> getOneIntParamBvOperandOperations()
      Returns the collection of operations are defined on operands of following types - one integer parameter and one bit vector operand.
      static int getParameterCount​(java.lang.Enum<?> operationId)
      Returns the parameter number for the specified operation or 0 if it is not parametric.
      static java.util.Collection<java.lang.Enum<?>> getParamOperations()
      Returns the collection of parametric operation identifiers.
      DataType getResultType​(DataType[] operandTypes, int[] params)  
      static java.util.Collection<java.lang.Enum<?>> getSameBvOperandOperations()
      Returns the collection of operations are defined on same bit vector type operands.
      static java.util.Collection<java.lang.Enum<?>> getSameLogicNumOperandOperations()
      Returns the collection of operations are defined on operands of logic numeric type.
      static java.util.Collection<java.lang.Enum<?>> getSameOperandOperations()
      Returns the collection of operations are defined on same type operands.
      static java.util.Collection<java.lang.Enum<?>> getTwoIntParamBvOperandOperations()
      Returns the collection of operations are defined on operands of following types - two integer parameters and one bit vector operand.
      static boolean isFamily​(java.lang.Enum<?> operationId, StandardOperation.Family family)
      Checks whether the specified operation manipulates with operands belonging to the specified family.
      static boolean isParametric​(java.lang.Enum<?> operationId)
      Checks whether the specified enumeration item represents a parametric operation.
      static StandardOperation valueOf​(java.lang.String name)
      Returns the enum constant of this type with the specified name.
      static StandardOperation[] values()
      Returns an array containing the constants of this enum type, in the order they are declared.
      • Methods inherited from class java.lang.Enum

        clone, compareTo, equals, finalize, getDeclaringClass, hashCode, name, ordinal, toString, valueOf
      • Methods inherited from class java.lang.Object

        getClass, notify, notifyAll, wait, wait, wait
    • Enum Constant Detail

      • NOTEQ

        public static final StandardOperation NOTEQ
        Group: Logic, Operation: Not Equal.
      • EQCASE

        public static final StandardOperation EQCASE
        Group: Logic, Operation: Case equality.
      • NOTEQCASE

        public static final StandardOperation NOTEQCASE
        Group: Logic, Operation: Case not equality.
      • IMPL

        public static final StandardOperation IMPL
        Group: Logic, Operation: Implication.
      • ITE

        public static final StandardOperation ITE
        Group: Logic, Operation: Conditional expression aka if-then-else.
      • MINUS

        public static final StandardOperation MINUS
        Group: Logic, Operation: Unary minus.
      • PLUS

        public static final StandardOperation PLUS
        Group: Logic, Operation: Unary plus.
      • SUB

        public static final StandardOperation SUB
        Group: Logic, Operation: Subtraction.
      • MUL

        public static final StandardOperation MUL
        Group: Logic, Operation: Multiplication.
      • LESSEQ

        public static final StandardOperation LESSEQ
        Group: Logic, Operation: Less or equal.
      • GREATER

        public static final StandardOperation GREATER
        Group: Logic, Operation: Greater.
      • GREATEREQ

        public static final StandardOperation GREATEREQ
        Group: Logic, Operation: Greater or equal.
      • ABS

        public static final StandardOperation ABS
        Group: Logic, Operation: Absolute value.
      • BVADD

        public static final StandardOperation BVADD
        Group: Bitvector, Operation: Addition.
      • BVSUB

        public static final StandardOperation BVSUB
        Group: Bitvector, Operation: Subtraction.
      • BVNEG

        public static final StandardOperation BVNEG
        Group: Bitvector, Operation: Unary minus.
      • BVMUL

        public static final StandardOperation BVMUL
        Group: Bitvector, Operation: Multiplication.
      • BVUDIV

        public static final StandardOperation BVUDIV
        Group: Bitvector, Operation: Unsigned division.
      • BVSDIV

        public static final StandardOperation BVSDIV
        Group: Bitvector, Operation: Signed division.
      • BVUREM

        public static final StandardOperation BVUREM
        Group: Bitvector, Operation: Unsigned remainder.
      • BVSREM

        public static final StandardOperation BVSREM
        Group: Bitvector, Operation: Signed remainder.
      • BVSMOD

        public static final StandardOperation BVSMOD
        Group: Bitvector, Operation: Signed modulo.
      • BVLSHL

        public static final StandardOperation BVLSHL
        Group: Bitvector, Operation: Logical shift left.
      • BVASHL

        public static final StandardOperation BVASHL
        Group: Bitvector, Operation: Arithmetical shift left.
      • BVLSHR

        public static final StandardOperation BVLSHR
        Group: Bitvector, Operation: Unsigned (BitVectorOperational) shift right.
      • BVASHR

        public static final StandardOperation BVASHR
        Group: Bitvector, Operation: Signed (arithmetical) shift right.
      • BVCONCAT

        public static final StandardOperation BVCONCAT
        Group: Bitvector, Operation: Concatenation (expected operand order is from HIGH to LOW).
      • BVREPEAT

        public static final StandardOperation BVREPEAT
        Group: Bitvector, Operation: Replication (concatenation of several copies of bitvector).
      • BVROL

        public static final StandardOperation BVROL
        Group: Bitvector, Operation: Rotate left.
      • BVROR

        public static final StandardOperation BVROR
        Group: Bitvector, Operation: Rotate right.
      • BVZEROEXT

        public static final StandardOperation BVZEROEXT
        Group: Bitvector, Operation: Extension by zeros.
      • BVSIGNEXT

        public static final StandardOperation BVSIGNEXT
        Group: Bitvector, Operation: Extension to the signed equivalent.
      • BVEXTRACT

        public static final StandardOperation BVEXTRACT
        Group: Bitvector, Operation: Extraction of subvector.
      • BVOR

        public static final StandardOperation BVOR
        Group: Bitvector, Operation: Bitwise OR.
      • BVXOR

        public static final StandardOperation BVXOR
        Group: Bitvector, Operation: Bitwise XOR.
      • BVAND

        public static final StandardOperation BVAND
        Group: Bitvector, Operation: Bitwise AND.
      • BVNOT

        public static final StandardOperation BVNOT
        Group: Bitvector, Operation: Bitwise NOT.
      • BVNAND

        public static final StandardOperation BVNAND
        Group: Bitvector, Operation: Bitwise NAND.
      • BVNOR

        public static final StandardOperation BVNOR
        Group: Bitvector, Operation: Bitwise NOR.
      • BVXNOR

        public static final StandardOperation BVXNOR
        Group: Bitvector, Operation: Bitwise XNOR.
      • BVULE

        public static final StandardOperation BVULE
        Group: Bitvector, Operation: Unsigned less or equal.
      • BVULT

        public static final StandardOperation BVULT
        Group: Bitvector, Operation: Unsigned less than.
      • BVUGE

        public static final StandardOperation BVUGE
        Group: Bitvector, Operation: Unsigned greater or equal.
      • BVUGT

        public static final StandardOperation BVUGT
        Group: Bitvector, Operation: Unsigned greater than.
      • BVSLE

        public static final StandardOperation BVSLE
        Group: Bitvector, Operation: Signed less or equal.
      • BVSLT

        public static final StandardOperation BVSLT
        Group: Bitvector, Operation: Signed less than.
      • BVSGE

        public static final StandardOperation BVSGE
        Group: Bitvector, Operation: Signed greater or equal.
      • BVSGT

        public static final StandardOperation BVSGT
        Group: Bitvector, Operation: Signed greater than.
      • BVANDR

        public static final StandardOperation BVANDR
        Group: Bit Vector Reduction, Operation: Reduction AND (&).
      • BVNANDR

        public static final StandardOperation BVNANDR
        Group: Bit Vector Reduction, Operation: Reduction NAND (~&).
      • BVORR

        public static final StandardOperation BVORR
        Group: Bit Vector Reduction, Operation: Reduction OR (|).
      • BVNORR

        public static final StandardOperation BVNORR
        Group: Bit Vector Reduction, Operation: Reduction NOR (~|).
      • BVXORR

        public static final StandardOperation BVXORR
        Group: Bit Vector Reduction, Operation: Reduction XOR (^).
      • BVXNORR

        public static final StandardOperation BVXNORR
        Group: Bit Vector Reduction, Operation: Reduction XNOR (~^).
      • BV2BOOL

        public static final StandardOperation BV2BOOL
        Group: Bit Vector Cast, Operation: Cast to boolean.
      • BOOL2BV

        public static final StandardOperation BOOL2BV
        Group: Bit Vector Cast, Operation: Cast boolean to bit vector of size 1.
      • BV2INT

        public static final StandardOperation BV2INT
        Group: Bit Vector Cast, Operation: Cast bit vector to integer.
      • INT2BV

        public static final StandardOperation INT2BV
        Group: Bit Vector Cast, Operation: Conversion to integer.
      • SELECT

        public static final StandardOperation SELECT
        Group: Array, Operation: Get stored value.
      • STORE

        public static final StandardOperation STORE
        Group: Array, Operation: Store value.
    • Method Detail

      • values

        public static StandardOperation[] values()
        Returns an array containing the constants of this enum type, in the order they are declared. This method may be used to iterate over the constants as follows:
        for (StandardOperation c : StandardOperation.values())
            System.out.println(c);
        
        Returns:
        an array containing the constants of this enum type, in the order they are declared
      • valueOf

        public static StandardOperation valueOf​(java.lang.String name)
        Returns the enum constant of this type with the specified name. The string must match exactly an identifier used to declare an enum constant in this type. (Extraneous whitespace characters are not permitted.)
        Parameters:
        name - the name of the enum constant to be returned.
        Returns:
        the enum constant with the specified name
        Throws:
        java.lang.IllegalArgumentException - if this enum type has no constant with the specified name
        java.lang.NullPointerException - if the argument is null
      • isParametric

        public static boolean isParametric​(java.lang.Enum<?> operationId)
        Checks whether the specified enumeration item represents a parametric operation.
        Parameters:
        operationId - Operation identifier.
        Returns:
        true is the specified enumeration item represents a parametric operation or false otherwise.
      • getParameterCount

        public static int getParameterCount​(java.lang.Enum<?> operationId)
        Returns the parameter number for the specified operation or 0 if it is not parametric.
        Parameters:
        operationId - Operation identifier.
        Returns:
        Parameter number for the specified operation or 0 if it is not parametric.
      • isFamily

        public static boolean isFamily​(java.lang.Enum<?> operationId,
                                       StandardOperation.Family family)
        Checks whether the specified operation manipulates with operands belonging to the specified family.
        Parameters:
        operationId - Operation identifier.
        family - Family identifier.
        Returns:
        true if the specified operation manipulates with operands belonging to the specified family or false otherwise.
      • getSameOperandOperations

        public static java.util.Collection<java.lang.Enum<?>> getSameOperandOperations()
        Returns the collection of operations are defined on same type operands.
        Returns:
        The collection of operations are defined on same type operands.
      • getSameBvOperandOperations

        public static java.util.Collection<java.lang.Enum<?>> getSameBvOperandOperations()
        Returns the collection of operations are defined on same bit vector type operands.
        Returns:
        The collection of operations are defined on same bit vector type operands.
      • getLogicOperandOperations

        public static java.util.Collection<java.lang.Enum<?>> getLogicOperandOperations()
        Returns the collection of operations are defined on operands of logic types.
        Returns:
        The collection of operations are defined on operands of logic types.
      • getSameLogicNumOperandOperations

        public static java.util.Collection<java.lang.Enum<?>> getSameLogicNumOperandOperations()
        Returns the collection of operations are defined on operands of logic numeric type.
        Returns:
        The collection of operations are defined on operands of logic numeric type.
      • getIntOperandOperations

        public static java.util.Collection<java.lang.Enum<?>> getIntOperandOperations()
        Returns the collection of operations are defined on operands of integer type.
        Returns:
        The collection of operations are defined on operands of integer type.
      • getBoolOperandOperations

        public static java.util.Collection<java.lang.Enum<?>> getBoolOperandOperations()
        Returns the collection of operations are defined on operands of boolean type.
        Returns:
        The collection of operations are defined on operands of boolean type.
      • getDifferentBvOperandOperations

        public static java.util.Collection<java.lang.Enum<?>> getDifferentBvOperandOperations()
        Returns the collection of operations are defined on operands of different bit vector types.
        Returns:
        The collection of operations are defined on operands of different bit vector types.
      • getOneIntParamBvOperandOperations

        public static java.util.Collection<java.lang.Enum<?>> getOneIntParamBvOperandOperations()
        Returns the collection of operations are defined on operands of following types - one integer parameter and one bit vector operand.
        Returns:
        The collection of operations are defined on operands of following types - one integer parameter and one bit vector operand.
      • getTwoIntParamBvOperandOperations

        public static java.util.Collection<java.lang.Enum<?>> getTwoIntParamBvOperandOperations()
        Returns the collection of operations are defined on operands of following types - two integer parameters and one bit vector operand.
        Returns:
        The collection of operations are defined on operands of following types - two integer parameters and one bit vector operand.
      • getBvOperandOperations

        public static java.util.Collection<java.lang.Enum<?>> getBvOperandOperations()
        Returns the collection of operations are defined on operands of bit vector type.
        Returns:
        The collection of operations are defined on operands of bit vector type.
      • getParamOperations

        public static java.util.Collection<java.lang.Enum<?>> getParamOperations()
        Returns the collection of parametric operation identifiers.
        Returns:
        The collection of parametric operation identifiers.