public Value eval(DocumentSet docs, NodeSet context, NodeProxy node) {
public Value eval(StaticContext context, DocumentSet docs, NodeSet contextSet, NodeProxy contextNode) { if(contextNode != null) contextSet = new SingleNodeSet(contextNode);
	public Value eval(DocumentSet docs, NodeSet context, NodeProxy node) {		double val;		// Argument is a node list		if (getArgument(0).returnsType() == Constants.TYPE_NODELIST) {			ValueSet values = new ValueSet();			NodeSet args = (NodeSet) getArgument(0).eval(docs, context, null).getNodeList();			if (args.getLength() > 0) {				try {					val = Double.parseDouble(args.get(0).getNodeValue());					values.add(new ValueNumber(Math.floor(val)));				} catch (NumberFormatException nfe) {				}			}			return values;		} else {			// does argument return a value set?			Value v = getArgument(0).eval(docs, context, node);			return new ValueNumber(Math.ceil(v.getNumericValue()));		}	}