Interface VectorOperators.Operator

    • Method Summary

      Modifier and Type Method Description
      int arity()
      Returns the arity of this operator (1, 2, or 3).
      boolean compatibleWith​(Class<?> elementType)
      Reports whether this operator is compatible with the proposed element type.
      boolean isAssociative()
      Returns the associativity of this operator.
      boolean isBoolean()
      Reports whether this operator returns a boolean (a mask).
      String name()
      Returns the symbolic name of this operator, as a constant in VectorOperators.
      String operatorName()
      Returns the Java operator symbol or method name corresponding to this operator.
      Class<?> rangeType()
      Reports the special return type of this operator.
    • Method Detail

      • name

        String name()
        Returns the symbolic name of this operator, as a constant in VectorOperators. The operator symbol, Java method name, or example expression, such as "+", "max" or "-a", is also available as operatorName().
        Returns:
        the symbolic name of this operator, such as "ADD"
      • operatorName

        String operatorName()
        Returns the Java operator symbol or method name corresponding to this operator. If there is no symbol or method, return a string containing a representative expression for the operator, using operand names a, b (for non-unary operators), and c (for ternary operators). The symbolic name of the constant, such as "ADD", is also available as name().
        Returns:
        an operator token, such as "+", or a method name, such as "max", or a representative expression, such as "-a"
      • arity

        int arity()
        Returns the arity of this operator (1, 2, or 3).
        Returns:
        the arity of this operator (1, 2, or 3)
      • isBoolean

        boolean isBoolean()
        Reports whether this operator returns a boolean (a mask). A boolean operator also reports boolean as the rangeType.
        Returns:
        whether this operator returns a boolean
      • rangeType

        Class<?> rangeType()
        Reports the special return type of this operator. If this operator is a boolean, returns boolean.class. If this operator is a Conversion, returns its range type. Otherwise, the operator's return value always has whatever type was given as an input, and this method returns Object.class to denote that fact.
        Returns:
        the special return type, or Object.class if none
      • isAssociative

        boolean isAssociative()
        Returns the associativity of this operator. Only binary operators can be associative.
        Returns:
        the associativity of this operator
      • compatibleWith

        boolean compatibleWith​(Class<?> elementType)
        Reports whether this operator is compatible with the proposed element type. First, unrestricted operators are compatible with all element types. Next, if the element type is double or float and the operator is restricted to floating point types, it is compatible. Otherwise, if the element type is neither double nor float and the operator is restricted to integral types, it is compatible. Otherwise, the operator is not compatible.
        Parameters:
        elementType - the proposed operand type for the operator
        Returns:
        whether the proposed type is compatible with this operator