/*
 **********************************************************************
 * Copyright (c) 2011-2012,International Business Machines
 * Corporation and others.  All Rights Reserved.
 **********************************************************************
 */

#ifndef SIEVE_H
#define SIEVE_H

#ifndef U_LOTS_OF_TIMES
#define U_LOTS_OF_TIMES 1000000
#endif

#include "unicode/utypes.h"
/**
 * Calculate the standardized sieve time (1 run)
 */
U_INTERNAL double uprv_calcSieveTime(void);

/**
 * Calculate the mean time, with margin of error
 * @param times array of times (modified/sorted)
 * @param timeCount length of array
 * @param marginOfError out parameter: gives +/- margin of err at 95% confidence
 * @return the mean time, or negative if error/imprecision.
 */
U_INTERNAL double uprv_getMeanTime(double *times, uint32_t timeCount, double *marginOfError);

/**
 * Get the standardized sieve time. (Doesn't recalculate if already computed.
 * @param marginOfError out parameter: gives +/- margin of error at 95% confidence.
 * @return the mean time, or negative if error/imprecision.
 */
U_INTERNAL double uprv_getSieveTime(double *marginOfError);

#endif
