fn product<P>(self) -> Product<Self, P>
    where
        P: std::iter::Product<Self::Item> + std::iter::Product<P> + Send,
    {
        Product::new(self)
    }
/// Multiplies all the items in the iterator.
///
/// Note that the order in items will be reduced is not specified,
/// so if the `*` operator is not truly [associative] \(as is the
/// case for floating point numbers), then the results are not
/// fully deterministic.
///
/// [associative]: https://en.wikipedia.org/wiki/Associative_property
///
/// Basically equivalent to `self.reduce(|| 1, |a, b| a * b)`,
/// except that the type of `1` and the `*` operation may vary
/// depending on the type of value being produced.
///
/// # Examples
///
/// ```
/// use asparit::*;
///
/// fn factorial(n: u32) -> u32 {
///     (1..n + 1).into_par_iter().product().exec()
/// }
///
/// assert_eq!(factorial(0), 1);
/// assert_eq!(factorial(1), 1);
/// assert_eq!(factorial(5), 120);
/// ```
Multiplies all the items in the iterator.
Note that the order in items will be reduced is not specified,
so if the `*` operator is not truly [associative] \(as is the
case for floating point numbers), then the results are not
fully deterministic.




Multiplies all the items in the iterator . Note that the order in items will be reduced is not specified so if the ` * ` operator is not truly [ associative ] \ ( as is the case for floating point numbers ) then the results are not fully deterministic .
fn product<P>(self) -> Product<Self, P>
    where
        P: std::iter::Product<Self::Item> + std::iter::Product<P> + Send,
    {
        Product::new(self)
    }
fn product < P > ( self ) -> Product < Self , P > where P : std :: iter :: Product < Self :: Item > + std :: iter :: Product < P > + Send , { Product :: new ( self ) }
Multiplies all the items in the iterator.
Multiplies all the items in the iterator .
self
self
examples
None