Table of Contents

**qutil_double_mult**, **qutil_uint_mult**, **qutil_int_mult** - multiply an array
in parallel
**#include <qthread.h>**

**#include <qthread/qutil.h>**
*double*

**qutil_double_mult** (double **array*, size_t *length*, int *checkfeb*);

*unsigned*
int

**qutil_uint_mult** (unsigned int **array*, size_t *length*, int *checkfeb*);

*int*

**qutil_int_mult** (int **array*, size_t *length*, int *checkfeb*);

These
functions take as input an *array* of *length* numbers and will return the
product of those numbers. This product is computed in parallel by using
a lagging-loop structure, using futures to restrict the parallelism to the
available limits.
If *checkfeb* is non-zero, these functions will wait for
the entries in the array to be full before multiplying them. They **DO NOT**
check whether the array entries are properly aligned. If the datatype is
too small to do a FEB operation on, **they will abort,** if sanity checks are
turned on.

The product of the first *length* entries of *array*.
**qutil_double_sum**(3)
, **qutil_double_max**(3)
, **qutil_double_min**(3)
,
**qutil_uint_sum**(3)
, **qutil_uint_max**(3)
, **qutil_uint_min**(3)
, **qutil_int_sum**(3)
,
**qutil_int_max**(3)
, **qutil_int_min**(3)
, **qutil_mergesort**(3)
, **qutil_qsort**(3)

**Table of Contents**