|
|
- /* Find number of cycles used by function that takes 2 arguments */
-
- /* Function to be tested takes two integer arguments */
- typedef int (*test_funct)(int, int);
-
- /* Compute time used by function f */
- double fcyc2(test_funct f, int param1, int param2, int clear_cache);
-
- /********* These routines are used to help with the analysis *********/
-
- /*
- Parameters:
- k: How many samples must be within epsilon for convergence
- epsilon: What is tolerance
- maxsamples: How many samples until give up?
- */
-
- /* Full version of fcyc with control over parameters */
- double fcyc2_full(test_funct f, int param1, int param2, int clear_cache,
- int k, double epsilon, int maxsamples, int compensate);
-
- /* Get current minimum */
- double get_min();
-
- /* What is convergence status for k minimum measurements within epsilon
- Returns 0 if not converged, #samples if converged, and -1 if can't
- reach convergence
- */
-
- int has_converged(int k, double epsilon, int maxsamples);
-
- /* What is error of current measurement */
- double err(int k);
-
- /************* Try other clocking methods *****************/
-
- /* Full version that uses the time of day clock */
- double fcyc2_full_tod(test_funct f, int param1, int param2, int clear_cache,
- int k, double epsilon, int maxsamples, int compensate);
-
- double fcyc2_tod(test_funct f, int param1, int param2, int clear_cache);
|