Package org.apache.sysds.parser

## Class ParameterizedBuiltinFunctionExpression

- java.lang.Object
- - org.apache.sysds.parser.Expression
  - - org.apache.sysds.parser.Identifier
    - - org.apache.sysds.parser.DataIdentifier
      - - org.apache.sysds.parser.ParameterizedBuiltinFunctionExpression

- All Implemented Interfaces:
    `ParseInfo`

      public class ParameterizedBuiltinFunctionExpression
      extends DataIdentifier

- - ### Nested Class Summary

    - ### Nested classes/interfaces inherited from class org.apache.sysds.parser.Expression

      `Expression.BinaryOp, Expression.BooleanOp, Expression.DataOp, Expression.FunctCallOp, Expression.RelationalOp`

  - ### Field Summary

    Fields
    Modifier and Type | Field | Description
    --- | --- | ---
    `static String` | `LINEAGE_TRACE` |
    `static HashMap<Builtins,​Types.ParamBuiltinOp>` | `pbHopMap` |
    `static String` | `TF_FN_PARAM_DATA` |
    `static String` | `TF_FN_PARAM_MTD` |
    `static String` | `TF_FN_PARAM_MTD2` |
    `static String` | `TF_FN_PARAM_SPEC` |

  - ### Constructor Summary

    Constructors
    Constructor | Description
    --- | ---
    `ParameterizedBuiltinFunctionExpression​(org.antlr.v4.runtime.ParserRuleContext ctx, Builtins op, LinkedHashMap<String,​Expression> varParams, String filename)` |
    `ParameterizedBuiltinFunctionExpression​(Builtins op, LinkedHashMap<String,​Expression> varParams, ParseInfo parseInfo)` |

  - ### Method Summary

    All Methods Static Methods Instance Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `void` | `addVarParam​(String name, Expression value)` |
    `Builtins` | `getOpCode()` |
    `static ParameterizedBuiltinFunctionExpression` | `getParamBuiltinFunctionExpression​(org.antlr.v4.runtime.ParserRuleContext ctx, String functionName, ArrayList<ParameterExpression> paramExprsPassed, String fileName)` |
    `Expression` | `getVarParam​(String name)` |
    `HashMap<String,​Expression>` | `getVarParams()` |
    `boolean` | `multipleReturns()` | Method to specify if an expression returns multiple outputs.
    `Expression` | `rewriteExpression​(String prefix)` |
    `void` | `setOpcode​(Builtins op)` |
    `String` | `toString()` |
    `void` | `validateExpression​(HashMap<String,​DataIdentifier> ids, HashMap<String,​ConstIdentifier> constVars, boolean conditional)` | Validate parse tree : Process BuiltinFunction Expression in an assignment statement
    `void` | `validateExpression​(MultiAssignmentStatement stmt, HashMap<String,​DataIdentifier> ids, HashMap<String,​ConstIdentifier> constVars, boolean conditional)` |
    `VariableSet` | `variablesRead()` |
    `VariableSet` | `variablesUpdated()` |

    - ### Methods inherited from class org.apache.sysds.parser.DataIdentifier

      `equals, getName, hashCode, setName`

    - ### Methods inherited from class org.apache.sysds.parser.Identifier

      `computeDataType, dimsKnown, getBlocksize, getDataType, getDim1, getDim2, getFileFormat, getNnz, getPrivacy, getValueType, isScalarBoolean, setBlocksize, setBooleanProperties, setDataType, setDimensions, setDimensionValueProperties, setFileFormat, setIntProperties, setNnz, setPrivacy, setPrivacy, setProperties, setValueType`

    - ### Methods inherited from class org.apache.sysds.parser.Expression

      `computeDataType, computeDataType, computeValueType, computeValueType, computeValueType, convertFormatType, getBeginColumn, getBeginLine, getBinaryMatrixCharacteristics, getBinaryOp, getBooleanOp, getEndColumn, getEndLine, getFilename, getOutput, getOutputs, getParseExceptionList, getRelationalOp, getTempName, getText, printErrorLocation, printInfoLocation, printWarningLocation, raiseValidateError, raiseValidateError, raiseValidateError, setBeginColumn, setBeginLine, setCtxValues, setCtxValuesAndFilename, setEndColumn, setEndLine, setFilename, setOutput, setParseExceptionList, setParseInfo, setText`

    - ### Methods inherited from class java.lang.Object

      `getClass, notify, notifyAll, wait, wait, wait`

- - ### Field Detail

    - #### TF_FN_PARAM_DATA

          public static final String TF_FN_PARAM_DATA

      See Also:
        Constant Field Values

    - #### TF_FN_PARAM_MTD2

          public static final String TF_FN_PARAM_MTD2

      See Also:
        Constant Field Values

    - #### TF_FN_PARAM_SPEC

          public static final String TF_FN_PARAM_SPEC

      See Also:
        Constant Field Values

    - #### LINEAGE_TRACE

          public static final String LINEAGE_TRACE

      See Also:
        Constant Field Values

    - #### TF_FN_PARAM_MTD

          public static final String TF_FN_PARAM_MTD

      See Also:
        Constant Field Values

    - #### pbHopMap

          public static HashMap<Builtins,​Types.ParamBuiltinOp> pbHopMap

  - ### Constructor Detail

    - #### ParameterizedBuiltinFunctionExpression

          public ParameterizedBuiltinFunctionExpression​(org.antlr.v4.runtime.ParserRuleContext ctx,
                                                        Builtins op,
                                                        LinkedHashMap<String,​Expression> varParams,
                                                        String filename)

    - #### ParameterizedBuiltinFunctionExpression

          public ParameterizedBuiltinFunctionExpression​(Builtins op,
                                                        LinkedHashMap<String,​Expression> varParams,
                                                        ParseInfo parseInfo)

  - ### Method Detail

    - #### getParamBuiltinFunctionExpression

          public static ParameterizedBuiltinFunctionExpression getParamBuiltinFunctionExpression​(org.antlr.v4.runtime.ParserRuleContext ctx,
                                                                                                 String functionName,
                                                                                                 ArrayList<ParameterExpression> paramExprsPassed,
                                                                                                 String fileName)

    - #### rewriteExpression

          public Expression rewriteExpression​(String prefix)

      Overrides:
        `rewriteExpression` in class `DataIdentifier`

    - #### setOpcode

          public void setOpcode​(Builtins op)

    - #### getOpCode

          public Builtins getOpCode()

    - #### getVarParams

          public HashMap<String,​Expression> getVarParams()

    - #### getVarParam

          public Expression getVarParam​(String name)

    - #### addVarParam

          public void addVarParam​(String name,
                                  Expression value)

    - #### validateExpression

          public void validateExpression​(HashMap<String,​DataIdentifier> ids,
                                         HashMap<String,​ConstIdentifier> constVars,
                                         boolean conditional)

      Validate parse tree : Process BuiltinFunction Expression in an assignment statement
      Overrides:
        `validateExpression` in class `Identifier`

    - #### validateExpression

          public void validateExpression​(MultiAssignmentStatement stmt,
                                         HashMap<String,​DataIdentifier> ids,
                                         HashMap<String,​ConstIdentifier> constVars,
                                         boolean conditional)

      Overrides:
        `validateExpression` in class `Expression`

    - #### toString

          public String toString()

      Overrides:
        `toString` in class `DataIdentifier`

    - #### variablesRead

          public VariableSet variablesRead()

      Overrides:
        `variablesRead` in class `DataIdentifier`

    - #### variablesUpdated

          public VariableSet variablesUpdated()

      Overrides:
        `variablesUpdated` in class `DataIdentifier`

    - #### multipleReturns

          public boolean multipleReturns()

      Description copied from class: `DataIdentifier`
      Method to specify if an expression returns multiple outputs. This method must be overridden by all child classes.
      Overrides:
        `multipleReturns` in class `DataIdentifier`
      Returns:
        true if expression returns multiple outputs