package jmathlib.toolbox.general;
/* This file is part or JMathLib
* author: 2005/xx/xx
* */
import jmathlib.core.tokens.*;
import jmathlib.core.tokens.numbertokens.DoubleNumberToken;
import jmathlib.core.functions.ExternalFunction;
import jmathlib.core.interpreter.GlobalValues;
public class ndims extends ExternalFunction
{
/**returns the dimensions of an array 1,2,3,4-dimensional
*/
public OperandToken evaluate(Token[] operands, GlobalValues globals)
{
if (getNArgIn(operands)!=1)
throwMathLibException("ndims: number of input arguments != 1");
if ( !(operands[0] instanceof DoubleNumberToken))
throwMathLibException("ndims: works only on numbers");
// get size vector -> length of size vector is number of dimensions
int n = ((DoubleNumberToken)operands[0]).getSize().length;
return new DoubleNumberToken(n);
} // end eval
}
/*
@GROUP
General
@SYNTAX
answer = ndims(value)
@DOC
Returns the sign of value.
@EXAMPLES
<programlisting>
a=rand(5,5);
ndims(a) -> 2
a=rand(5,5,5)
ndims(a) -> 3
</programlisting>
@NOTES
.
@SEE
template
*/