I think most of us would expect prod(0:1000) to return 0, and ...
... it does. However, many of us also expect prod(x1, x2) to be equivalent to prod(c(x1,x2)) the same as we can expect that for min(), max(), sum() and such members of the "Summary" group. Consequently, prod(0, 1:1000) should also return 0, but as you see, it gives NaN which may be a bit puzzling... The explanation is relatively simple: 1) The internal implementation uses prod(x1, x2) := prod(x1) * prod(x2) which in this case is 2) 0 * Inf and that is not 0, but NaN; not necessarily because we would want that, but I think just because the underlying C math library does so. I would personally like to change both behaviors, but am currently only proposing to change prod() such as to return 0 in such cases. This would be S-plus compatible, in case that matters. Opinions? Martin Maechler, ETH Zurich & R-core ______________________________________________ R-devel@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-devel