MulDiv, as, for example the Windows API function,
"The MulDiv function multiplies two 32-bit values and then
divides the 64-bit result by a third 32-bit value.
The return value is rounded up or down to the nearest integer."
The specs do say that implementations must support 18 digits of precision
for xs:integer, so it's very likely they will use 64 bits or more. There's
no absolute rule that intermediate results of xs:integer calculations must
retain at least 64 bits, but it's a reasonable expectation. xs:decimal
leaves more scope for implementations to vary, especially with division and
in their overflow behaviour, but I think you'd be unlikely to find an
implementation that doesn't allow any two 32-bit values to be multiplied
without loss.
Michael Kay
http://www.saxonica.com/
--~------------------------------------------------------------------
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--