예제 #1
0
        public object exp10(object arg)
        {
            // math:exp10($arg as xs:double?) as xs:double?

            double?value = ExtensionObjectConvert.ToNullableDouble(arg);

            if (value == null)
            {
                return(ExtensionObjectConvert.EmptyIterator);
            }

            return(Math.Pow(10, value.Value));
        }
예제 #2
0
        public object cos(object arg)
        {
            // math:cos($θ as xs:double?) as xs:double?

            double?value = ExtensionObjectConvert.ToNullableDouble(arg);

            if (value == null)
            {
                return(ExtensionObjectConvert.EmptyIterator);
            }

            return(Math.Cos(value.Value));
        }
예제 #3
0
        protected object round_half_to_even(object arg, int precision)
        {
            // fn:round-half-to-even($arg as numeric?, $precision as xs:integer) as numeric?

            double?value = ExtensionObjectConvert.ToNullableDouble(arg);

            if (value == null)
            {
                return(ExtensionObjectConvert.EmptyIterator);
            }

            return(Math.Round(value.Value, precision, MidpointRounding.ToEven));
        }
예제 #4
0
        public object pow(object x, double y)
        {
            // math:pow($x as xs:double?, $y as numeric) as xs:double?

            double?xVal = ExtensionObjectConvert.ToNullableDouble(x);

            if (xVal == null)
            {
                return(ExtensionObjectConvert.EmptyIterator);
            }

            return(Math.Pow(xVal.Value, y));
        }
예제 #5
0
        public object abs(object arg)
        {
            // fn:abs($arg as numeric?) as numeric?

            double?value = ExtensionObjectConvert.ToNullableDouble(arg);

            if (value == null)
            {
                return(ExtensionObjectConvert.EmptyIterator);
            }

            return(Math.Abs(value.Value));
        }