MCPcopy Create free account
hub / github.com/RcppCore/Rcpp / prod

Function prod

inst/include/Rcpp/algorithm.h:252–274  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

250
251template< typename InputIterator >
252typename traits::enable_if< helpers::decays_to_ctype< typename std::iterator_traits< InputIterator >::value_type >::value,
253 typename helpers::ctype< typename std::iterator_traits< InputIterator >::value_type >::type >::type
254 prod(InputIterator begin, InputIterator end) {
255
256 typedef typename helpers::ctype< typename std::iterator_traits< InputIterator >::value_type >::type value_type;
257 typedef typename helpers::rtype< value_type > rtype;
258
259 if (begin != end) {
260 value_type start = rtype::ONE();
261
262 while (begin != end) {
263 if (!Vector< rtype::RTYPE >::is_na(*begin)) {
264 start *= *begin++;
265 } else {
266 return rtype::NA();
267 }
268 }
269
270 return start;
271 }
272
273 return rtype::ONE();
274}
275
276template< typename InputIterator >
277typename traits::enable_if< helpers::decays_to_ctype< typename std::iterator_traits< InputIterator >::value_type >::value,

Callers 1

prodTestFunction · 0.85

Calls 1

is_naFunction · 0.50

Tested by

no test coverage detected