/*
* Automatically Tuned Linear Algebra Software v3.8.3
* (C) Copyright 1999 R. Clint Whaley
*
* Code contributers : R. Clint Whaley, Antoine P. Petitet
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions, and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* 3. The name of the ATLAS group or the names of its contributers may
* not be used to endorse or promote products derived from this
* software without specific written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
* ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
* TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
* PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE ATLAS GROUP OR ITS CONTRIBUTORS
* BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGE.
*
*/
#ifndef ATLAS_TST_H
#define ATLAS_TST_H
#include "atlas_enum.h"
double time00();
#ifndef UseCRand
void ATL_srand(int iseed);
int ATL_rand(void);
#define dumb_seed(iseed_) ATL_srand(iseed_)
#define dumb_rand() ( 0.5 - ((double)ATL_rand())/(2147483648.0) )
#else
#define dumb_seed(iseed_) srand(iseed_)
#ifndef RAND_MAX /* rather dangerous non-ansi workaround */
#define RAND_MAX ((unsigned long)(1<<30))
#endif
#define dumb_rand() ( 0.5 - ((double)rand())/((double)RAND_MAX) )
#endif
void ATL_ststsqtran(const int N, float *A, const int lda);
void ATL_sgeprint
(char *mat, const int M, const int N, const float *A, const int lda);
float ATL_sgediffnrm1
(const int M, const int N, const float *A, const int lda,
const float *B, const int ldb);
float ATL_shediffnrm
(const enum ATLAS_ORDER Order, const enum ATLAS_UPLO Uplo, const int N,
const float *A0, const int ld0, const float *A1, const int ld1);
float ATL_sinfnrm(const int N, const float *X, const int incX);
float ATL_sgenrm1
(const int M, const int N, const float *A, const int lda);
float ATL_strnrm1
(const enum ATLAS_UPLO Upper, const enum ATLAS_DIAG Diag, const int N,
const float *A, const int lda);
float ATL_sgbnrm1
(const int M, const int N, const int KL, const int KU,
const float *A, const int lda);
float ATL_stpnrm1
(const enum ATLAS_UPLO UPLO, const enum ATLAS_DIAG DIAG, const int N,
const float *A);
float ATL_stbnrm1
(const enum ATLAS_UPLO UPLO, const enum ATLAS_DIAG DIAG,
const int N, const int K, const float *A, const int LDA);
float ATL_ssynrm
(const enum ATLAS_UPLO UPLO, const int N, const float *A, const int LDA);
float ATL_shenrm
(const enum ATLAS_UPLO UPLO, const int N, const float *A, const int LDA);
float ATL_sspnrm
(const enum ATLAS_UPLO UPLO, const int N, const float *A);
float ATL_shpnrm
(const enum ATLAS_UPLO UPLO, const int N, const float *A);
float ATL_ssbnrm
(const enum ATLAS_UPLO UPLO, const int N, const int K,
const float *A, const int LDA);
float ATL_shbnrm
(const enum ATLAS_UPLO UPLO, const int N, const int K,
const float *A, const int LDA);
void ATL_sgefillgap(const int M, const int N, float *A, const int lda0);
int ATL_sgechkgap(const int M0, const int N, float *A, const int lda0);
void ATL_strgen(const enum ATLAS_UPLO Uplo, const enum ATLAS_DIAG Diag,
const int N, float *A, const int lda, const int seed);
void ATL_sgegen(const int M0, const int N, float *A, const int lda,
const int seed);
float ATL_sepsilon(void);
void ATL_svdiff(const int N, const float *X, const int incX,
const float *Y, const int incY, float *Z, const int incZ);
void ATL_sgediff(const int M, const int N, const float *A, const int lda,
const