Package com.singularsys.jep.functions
Class Ele
- java.lang.Object
-
- com.singularsys.jep.functions.PostfixMathCommand
-
- com.singularsys.jep.functions.NaryFunction
-
- com.singularsys.jep.functions.Ele
-
- All Implemented Interfaces:
LValueI
,PostfixMathCommandI
,java.io.Serializable
- Direct Known Subclasses:
MatrixEle
,ThreadSafeEle
public class Ele extends NaryFunction implements LValueI
Function which allows array access using the a[3] notation on left and right hand side. The first element is indexed with 1.a=[4,3,2,1]; a[2]; // Returns 2 a[2]=5; // Sets the 2nd element of a to 5. So a is now [4,5,2,1] // Two dimensional matrices only work with the configurable parser b=[[1,2,3],[4,5,6]]; b[2][3]; // returns 6 b[2][3]=7; // sets 3rd element of 2nd row to 7
- Author:
- Richard Morris
- See Also:
- Serialized Form
-
-
Field Summary
Fields Modifier and Type Field Description protected int
indexShift
-
Fields inherited from class com.singularsys.jep.functions.PostfixMathCommand
curNumberOfParameters, name, NaN, numberOfParameters
-
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description boolean
checkNumberOfParameters(int n)
Checks the number of parameters of the function.java.lang.Object
ele(java.lang.Object[] args)
Find the element of an array.java.lang.Object
ele(java.lang.Object vec, java.lang.Object indexObject)
Find the element of a vectorjava.lang.Object
ele(java.lang.Object mat, java.lang.Object[] args)
Find element of a multi-dimensional arrayjava.lang.Object
ele(java.lang.Object mat, java.lang.Object row, java.lang.Object col)
Find the element of a matrixjava.lang.Object
eval(java.lang.Object[] args)
Evaluate the functionprotected Variable
getVariable(Evaluator pv, ASTVarNode node)
Find the variable associated with a node.void
set(Evaluator pv, Node node, java.lang.Object value)
Performs appropriate action to set an LValue.-
Methods inherited from class com.singularsys.jep.functions.NaryFunction
run
-
Methods inherited from class com.singularsys.jep.functions.PostfixMathCommand
asArray, asBool, asDouble, asInt, asLong, asStrictInt, asString, getName, getNumberOfParameters, setCurNumberOfParameters, setName, toString, toString
-
-
-
-
Constructor Detail
-
Ele
public Ele()
Element access with mathematical convention, first element has index 1
-
Ele
public Ele(boolean javaIndex)
Element access, either java convention (first element has index 0) or mathematical convention (first element has index 1) can be specified.- Parameters:
javaIndex
- whether to use the java convention, if true index start at 0.
-
-
Method Detail
-
checkNumberOfParameters
public boolean checkNumberOfParameters(int n)
Description copied from class:PostfixMathCommand
Checks the number of parameters of the function. Functions which set numberOfParameter=-1 should overload this method- Specified by:
checkNumberOfParameters
in interfacePostfixMathCommandI
- Overrides:
checkNumberOfParameters
in classPostfixMathCommand
- Parameters:
n
- number of parameters function will be called with.- Returns:
- false if an illegal number of parameters is supplied, true otherwise.
-
set
public void set(Evaluator pv, Node node, java.lang.Object value) throws EvaluationException
Description copied from interface:LValueI
Performs appropriate action to set an LValue.- Specified by:
set
in interfaceLValueI
- Parameters:
pv
- a pointer to the evaluator. The pv.eval() method can be used to evaluate the children of the node.node
- The top node for the LValuevalue
- the value obtained by evaluating the right hand side.- Throws:
EvaluationException
- if the calculation cannot be performed
-
eval
public java.lang.Object eval(java.lang.Object[] args) throws EvaluationException
Description copied from class:NaryFunction
Evaluate the function- Specified by:
eval
in classNaryFunction
- Parameters:
args
- arguments to the function- Returns:
- value returned by the function
- Throws:
EvaluationException
- if the calculation cannot be performed
-
ele
public java.lang.Object ele(java.lang.Object[] args) throws EvaluationException
Find the element of an array. Callsele(Object, Object)
,ele(Object, Object, Object)
orele(Object, Object[])
depending on number of arguments.- Parameters:
args
- First element is the vector or matrix, subsequent elements are indices- Returns:
- the element referred to by the indices
- Throws:
EvaluationException
- if the calculation cannot be performed
-
ele
public java.lang.Object ele(java.lang.Object vec, java.lang.Object indexObject) throws EvaluationException
Find the element of a vector- Parameters:
vec
- the vectorindexObject
- the index either as a vector with a single value or as a single value.- Returns:
- element of vec referred to by the index.
- Throws:
EvaluationException
- if the calculation cannot be performed- Since:
- 3.4.0
-
ele
public java.lang.Object ele(java.lang.Object mat, java.lang.Object row, java.lang.Object col) throws EvaluationException
Find the element of a matrix- Parameters:
mat
- the matrix represented a a Vector<Vector<Object>>row
- the indexcol
- the index- Returns:
- element of matrix referred to by row/col
- Throws:
EvaluationException
- if the calculation cannot be performed- Since:
- 3.4.0
-
ele
public java.lang.Object ele(java.lang.Object mat, java.lang.Object[] args) throws EvaluationException
Find element of a multi-dimensional array- Parameters:
mat
- the arrayargs
- array of indices- Returns:
- element in mat referred to by indices
- Throws:
EvaluationException
- if the calculation cannot be performed- Since:
- 3.4.0
-
getVariable
protected Variable getVariable(Evaluator pv, ASTVarNode node)
Find the variable associated with a node. Overwitten by subclasses which require thread-safety.- Parameters:
pv
- the evaluatornode
- the node- Returns:
- the variable
- Since:
- 3.5
-
-