Package parser
Class Function
java.lang.Object
parser.Function
- All Implemented Interfaces:
Savable,java.io.Serializable
public class Function extends java.lang.Object implements Savable
- Author:
- JIBOYE OLUWAGBEMIRO OLAOLUWA
- See Also:
- Serialized Form
-
Field Summary
-
Constructor Summary
-
Method Summary
Modifier and Type Method Description static booleanassignObject(java.lang.String input)doublecalc(double... x)doublecalcDet()MatrixcalcInverse()booleanequals(java.lang.Object obj)java.lang.Stringeval()java.lang.StringevalArgs(java.lang.String args)double[][]evalRange(double xLower, double xUpper, double xStep, java.lang.String variableName, int DRG)java.lang.String[][]evalRange(java.lang.String rangeDescr)java.lang.StringexpressionForm()VariablegetDependentVariable()java.lang.StringgetFullName()VariablegetIndependentVariable(java.lang.String name)java.util.ArrayList<Variable>getIndependentVariables()MathExpressiongetMathExpression()MatrixgetMatrix()java.lang.StringgetName()static java.lang.String[]getParameters(java.lang.String paramList)intgetType()booleanhasIndependentVariable(java.lang.String var)booleanisAnonymous()static booleanisAnonymous(java.lang.String name)static booleanisAnonymous(Function f)static booleanisFunctionFullName(java.lang.String str)booleanisParam(java.lang.String name)static MatrixlistToMatrix(java.util.List<java.lang.String> data)static voidmain(java.lang.String[] args)static java.lang.StringmatrixToCommaList(Matrix mat)static java.util.List<java.lang.String>matrixToList(Matrix mat)The input list is such that: The first 2 entries specify the number of rows and columns.intnumberOfParameters()static Functionparse(java.lang.String enc)static voidprint2DArray(java.lang.Object[][] obj)Prints the content of a 2D arrayMatrixreduceToEchelon()java.lang.Stringserialize()voidsetDependentVariable(Variable dependentVariable)voidsetIndependentVariables(java.util.ArrayList<Variable> independentVariables)voidsetMathExpression(MathExpression mathExpression)voidsetType(int type)static java.lang.StringstoreAnonymousFunction(java.lang.String expression)static java.lang.StringstoreAnonymousMatrixFunction(Matrix matrix)java.lang.StringtoString()MatrixtriangularMatrix()
-
Field Details
-
ALGEBRAIC
public static final int ALGEBRAIC- See Also:
- Constant Field Values
-
MATRIX
public static final int MATRIX- See Also:
- Constant Field Values
-
LIST
public static final int LIST- See Also:
- Constant Field Values
-
-
Constructor Details
-
Function
- Parameters:
matrix- A Matrix to be used to initialize the function..
-
Function
public Function(java.lang.String input) throws java.util.InputMismatchException- Parameters:
input- The user input into the system, usually of the form: F(x,y,z,w,....)=mathexpr; or F= @(x,y,z,w,...)mathexpr ...where mathexpr is an algebraic expression in terms of x,y,z,w,...- Throws:
java.util.InputMismatchException
-
-
Method Details
-
setType
public void setType(int type) -
getType
public int getType() -
calc
public double calc(double... x)- Parameters:
x- A list of variable values to set for the function. The supplied value list is applied to the function's parameter list in the order they were supplied in the original question.- Returns:
- the value of the function with these variables set.
-
assignObject
public static boolean assignObject(java.lang.String input) -
setDependentVariable
-
getDependentVariable
-
setMathExpression
-
getMathExpression
-
setIndependentVariables
-
getIndependentVariables
-
numberOfParameters
public int numberOfParameters()- Returns:
- the number of independent variables possessed by this Function object.
-
getMatrix
-
getIndependentVariable
- Parameters:
name- The name of the variable.- Returns:
- the Variable if it exists in the parameter list of this Function. Returns null if no Variable having that name is to be found in the parameter list of this Function.
-
hasIndependentVariable
public boolean hasIndependentVariable(java.lang.String var)- Parameters:
var- The name of the Variable to check.- Returns:
- true if this object has an independent variable that goes by the given name.
-
getParameters
public static java.lang.String[] getParameters(java.lang.String paramList)- Parameters:
paramList- A string containing info. about the arguments to be passed to the Function. The format is (var1,var2,var3,....)- Returns:
- an array containing the parameters, if its format is valid.
-
isParam
public boolean isParam(java.lang.String name)- Parameters:
name- The name of the Variable object to check, whether or not it is a parameter of this Function object.- Returns:
- true if a Variable of the specified name exists in the parameter list of this Function object.
-
storeAnonymousMatrixFunction
- Parameters:
matrix- TheMatrixobject to be wrapped in a function- Returns:
- the name assigned to the anonymous function created.
-
storeAnonymousFunction
public static java.lang.String storeAnonymousFunction(java.lang.String expression)- Parameters:
expression- The expression used to create the function...e.g @(x)sin(x-1)^cos(x)- Returns:
- the name assigned to the anonymous function created.
-
evalArgs
public java.lang.String evalArgs(java.lang.String args)- Parameters:
args-- Returns:
- the value of a function when valid arguments are passed into its parentheses. e.g if the fullname of the Function is f(x,y,c), this method could be passed..f(3,-4,9)
-
evalRange
public java.lang.String[][] evalRange(java.lang.String rangeDescr)- Parameters:
rangeDescr- Describes the range between which this Function object should be plotted. e.g. x:-10:10:0.0001- Returns:
- an 2D array containing two 1d arrays. The first array contains the values that the Function object will have for all values specified for the range of the independent variable. The second array contains the values that the independent variable will assume in its given range. If the rangeDescr parameter is not valid.. it returns a2D array containing 2 null arrays.
-
evalRange
public double[][] evalRange(double xLower, double xUpper, double xStep, java.lang.String variableName, int DRG)- Parameters:
xLower- The lower limit from which plotting begins.xUpper- The upper limit from which plotting begins.xStep- The plot step.variableName- The name of the independent(the horizontal axis variable..usually x)DRG- States whether the function should be evaluated in Degrees, Radians, and Grad.- Returns:
- an 2D array containing two 1d arrays. The first array contains the values that the Function object will have for all values specified for the range of the independent variable. The second array contains the values that the independent variable will assume in its given range. If the rangeDescr parameter is not valid.. it returns a2D array containing 2 null arrays.
-
print2DArray
public static void print2DArray(java.lang.Object[][] obj)Prints the content of a 2D array -
eval
public java.lang.String eval()- Returns:
- the value of the function based on assigned values of its variables and constants.
-
isFunctionFullName
public static boolean isFunctionFullName(java.lang.String str)- Parameters:
str- The input string to check if or not it is of the format of the full name of a Function. e.g. F(x),p(x,y) e.t.c.- Returns:
- true if the input string has the format of the full name of a Function. This method will be used to identify when the input into a calculator is to be treated as a Function problem...i.e. identify when the user is trying to create or modify a Function. F(x,y,x1,c,e3,u)
-
toString
public java.lang.String toString()- Overrides:
toStringin classjava.lang.Object- Returns:
- the standard math form of this Function object.
-
isAnonymous
public boolean isAnonymous() -
isAnonymous
-
isAnonymous
public static boolean isAnonymous(java.lang.String name) -
equals
public boolean equals(java.lang.Object obj)- Overrides:
equalsin classjava.lang.Object
-
getFullName
public java.lang.String getFullName()- Returns:
- the dependent variable together with its independent variables within its circular parentheses. e.g if the Function is y=x^2, this method will return y(x)
-
getName
public java.lang.String getName()- Returns:
- the simple name of the function. e.g if the function is y=@(x)cos(x), then this method returns 'y'.
-
calcDet
public double calcDet()- Returns:
- the determinant of the function if it is of type
MATRIXOtherwise it returnsDouble.NaN
-
calcInverse
- Returns:
- the inverse of the matrix-function if it is of type
MATRIXOtherwise it returns null
-
triangularMatrix
- Returns:
- the triangular Matrix of the function if it is of type
MATRIXOtherwise it returns null
-
reduceToEchelon
- Returns:
- the row-reduced echelon matrix of the function if it is of type
MATRIXOtherwise it returns null
-
expressionForm
public java.lang.String expressionForm()- Returns:
- the sub-expression on the right hand side of the assignment '=' sign in the expression that created this Function object.
-
listToMatrix
- Parameters:
data- The input list The input list is such that: The first 2 entries specify the number of rows and columns. The remaining entries are the Matrix's entries.- Returns:
- a number list which represents the row-reduced echelon Matrix that the entries reduce to.
-
matrixToList
The input list is such that: The first 2 entries specify the number of rows and columns. The remaining entries are the Matrix's entries.- Returns:
- a list containing the data of the Matrix. This list does not contain the dimensions of the Matrix, only the data.
-
matrixToCommaList
- Parameters:
mat- TheMatrixobject- Returns:
- a comma separated string containing the data of the Matrix. This string does not contain the dimensions of the Matrix, only the data.
-
parse
-
main
public static void main(java.lang.String[] args) -
serialize
public java.lang.String serialize()
-