Item arg0 = argument[0].evaluateItem(context);
if (arg0==null) {
return DoubleValue.NaN;
}
if (arg0 instanceof BooleanValue || arg0 instanceof NumericValue) {
ConversionResult result = ((AtomicValue)arg0).convert(BuiltInAtomicType.DOUBLE, true, context);
if (result instanceof ValidationFailure) {
return DoubleValue.NaN;
} else {
return (AtomicValue)result;
}