return newReal(type, doubleValue(v1) * doubleValue(v2));
case CUSTOMNUMERICTYPE:
int t1 = getNumericType(v1), t2 = getNumericType(v2);
ops = getArithmeticOperations(v1Type, v2Type);
if (t1 > t2) {
return ops.multiply(v1, bigDecValue(v2));
}
else if (t2 > t1) {
return ops.multiply(v2, bigDecValue(v1));
}
// otherwise let the default case handle it