public XDouble eval(DynamicContext dynEnv, Item v1, Item v2) throws XQueryException {
double d1 = asDouble(v1, dynEnv);
double d2 = asDouble(v2, dynEnv);
final double res = d1 * d2;
if(res == Double.POSITIVE_INFINITY) {
throw new DynamicError("err:FOAR0002", "result overflow");
}
if(res == Double.NEGATIVE_INFINITY) {
throw new DynamicError("err:FOAR0002", "result underflow");
}
return XDouble.valueOf(res);
}