PLASMA  2.4.5
PLASMA - Parallel Linear Algebra for Scalable Multi-core Architectures
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups
testing_sgesv.c File Reference
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include <math.h>
#include <plasma.h>
#include <cblas.h>
#include <lapacke.h>
#include <core_blas.h>
#include "testing_smain.h"
Include dependency graph for testing_sgesv.c:

Go to the source code of this file.

Enumerations

enum  blas_order_type {
  blas_rowmajor = 101, blas_colmajor = 102, blas_rowmajor = 101, blas_colmajor = 102,
  blas_rowmajor = 101, blas_colmajor = 102, blas_rowmajor = 101, blas_colmajor = 102,
  blas_rowmajor = 101, blas_colmajor = 102, blas_rowmajor = 101, blas_colmajor = 102,
  blas_rowmajor = 101, blas_colmajor = 102, blas_rowmajor = 101, blas_colmajor = 102,
  blas_rowmajor = 101, blas_colmajor = 102, blas_rowmajor = 101, blas_colmajor = 102,
  blas_rowmajor = 101, blas_colmajor = 102, blas_rowmajor = 101, blas_colmajor = 102,
  blas_rowmajor = 101, blas_colmajor = 102, blas_rowmajor = 101, blas_colmajor = 102,
  blas_rowmajor = 101, blas_colmajor = 102, blas_rowmajor = 101, blas_colmajor = 102,
  blas_rowmajor = 101, blas_colmajor = 102
}
enum  blas_cmach_type {
  blas_base = 151, blas_t = 152, blas_rnd = 153, blas_ieee = 154,
  blas_emin = 155, blas_emax = 156, blas_eps = 157, blas_prec = 158,
  blas_underflow = 159, blas_overflow = 160, blas_sfmin = 161, blas_base = 151,
  blas_t = 152, blas_rnd = 153, blas_ieee = 154, blas_emin = 155,
  blas_emax = 156, blas_eps = 157, blas_prec = 158, blas_underflow = 159,
  blas_overflow = 160, blas_sfmin = 161, blas_base = 151, blas_t = 152,
  blas_rnd = 153, blas_ieee = 154, blas_emin = 155, blas_emax = 156,
  blas_eps = 157, blas_prec = 158, blas_underflow = 159, blas_overflow = 160,
  blas_sfmin = 161, blas_base = 151, blas_t = 152, blas_rnd = 153,
  blas_ieee = 154, blas_emin = 155, blas_emax = 156, blas_eps = 157,
  blas_prec = 158, blas_underflow = 159, blas_overflow = 160, blas_sfmin = 161,
  blas_base = 151, blas_t = 152, blas_rnd = 153, blas_ieee = 154,
  blas_emin = 155, blas_emax = 156, blas_eps = 157, blas_prec = 158,
  blas_underflow = 159, blas_overflow = 160, blas_sfmin = 161, blas_base = 151,
  blas_t = 152, blas_rnd = 153, blas_ieee = 154, blas_emin = 155,
  blas_emax = 156, blas_eps = 157, blas_prec = 158, blas_underflow = 159,
  blas_overflow = 160, blas_sfmin = 161, blas_base = 151, blas_t = 152,
  blas_rnd = 153, blas_ieee = 154, blas_emin = 155, blas_emax = 156,
  blas_eps = 157, blas_prec = 158, blas_underflow = 159, blas_overflow = 160,
  blas_sfmin = 161, blas_base = 151, blas_t = 152, blas_rnd = 153,
  blas_ieee = 154, blas_emin = 155, blas_emax = 156, blas_eps = 157,
  blas_prec = 158, blas_underflow = 159, blas_overflow = 160, blas_sfmin = 161,
  blas_base = 151, blas_t = 152, blas_rnd = 153, blas_ieee = 154,
  blas_emin = 155, blas_emax = 156, blas_eps = 157, blas_prec = 158,
  blas_underflow = 159, blas_overflow = 160, blas_sfmin = 161, blas_base = 151,
  blas_t = 152, blas_rnd = 153, blas_ieee = 154, blas_emin = 155,
  blas_emax = 156, blas_eps = 157, blas_prec = 158, blas_underflow = 159,
  blas_overflow = 160, blas_sfmin = 161, blas_base = 151, blas_t = 152,
  blas_rnd = 153, blas_ieee = 154, blas_emin = 155, blas_emax = 156,
  blas_eps = 157, blas_prec = 158, blas_underflow = 159, blas_overflow = 160,
  blas_sfmin = 161, blas_base = 151, blas_t = 152, blas_rnd = 153,
  blas_ieee = 154, blas_emin = 155, blas_emax = 156, blas_eps = 157,
  blas_prec = 158, blas_underflow = 159, blas_overflow = 160, blas_sfmin = 161,
  blas_base = 151, blas_t = 152, blas_rnd = 153, blas_ieee = 154,
  blas_emin = 155, blas_emax = 156, blas_eps = 157, blas_prec = 158,
  blas_underflow = 159, blas_overflow = 160, blas_sfmin = 161, blas_base = 151,
  blas_t = 152, blas_rnd = 153, blas_ieee = 154, blas_emin = 155,
  blas_emax = 156, blas_eps = 157, blas_prec = 158, blas_underflow = 159,
  blas_overflow = 160, blas_sfmin = 161, blas_base = 151, blas_t = 152,
  blas_rnd = 153, blas_ieee = 154, blas_emin = 155, blas_emax = 156,
  blas_eps = 157, blas_prec = 158, blas_underflow = 159, blas_overflow = 160,
  blas_sfmin = 161, blas_base = 151, blas_t = 152, blas_rnd = 153,
  blas_ieee = 154, blas_emin = 155, blas_emax = 156, blas_eps = 157,
  blas_prec = 158, blas_underflow = 159, blas_overflow = 160, blas_sfmin = 161,
  blas_base = 151, blas_t = 152, blas_rnd = 153, blas_ieee = 154,
  blas_emin = 155, blas_emax = 156, blas_eps = 157, blas_prec = 158,
  blas_underflow = 159, blas_overflow = 160, blas_sfmin = 161
}
enum  blas_norm_type {
  blas_one_norm = 171, blas_real_one_norm = 172, blas_two_norm = 173, blas_frobenius_norm = 174,
  blas_inf_norm = 175, blas_real_inf_norm = 176, blas_max_norm = 177, blas_real_max_norm = 178,
  blas_one_norm = 171, blas_real_one_norm = 172, blas_two_norm = 173, blas_frobenius_norm = 174,
  blas_inf_norm = 175, blas_real_inf_norm = 176, blas_max_norm = 177, blas_real_max_norm = 178,
  blas_one_norm = 171, blas_real_one_norm = 172, blas_two_norm = 173, blas_frobenius_norm = 174,
  blas_inf_norm = 175, blas_real_inf_norm = 176, blas_max_norm = 177, blas_real_max_norm = 178,
  blas_one_norm = 171, blas_real_one_norm = 172, blas_two_norm = 173, blas_frobenius_norm = 174,
  blas_inf_norm = 175, blas_real_inf_norm = 176, blas_max_norm = 177, blas_real_max_norm = 178,
  blas_one_norm = 171, blas_real_one_norm = 172, blas_two_norm = 173, blas_frobenius_norm = 174,
  blas_inf_norm = 175, blas_real_inf_norm = 176, blas_max_norm = 177, blas_real_max_norm = 178,
  blas_one_norm = 171, blas_real_one_norm = 172, blas_two_norm = 173, blas_frobenius_norm = 174,
  blas_inf_norm = 175, blas_real_inf_norm = 176, blas_max_norm = 177, blas_real_max_norm = 178,
  blas_one_norm = 171, blas_real_one_norm = 172, blas_two_norm = 173, blas_frobenius_norm = 174,
  blas_inf_norm = 175, blas_real_inf_norm = 176, blas_max_norm = 177, blas_real_max_norm = 178,
  blas_one_norm = 171, blas_real_one_norm = 172, blas_two_norm = 173, blas_frobenius_norm = 174,
  blas_inf_norm = 175, blas_real_inf_norm = 176, blas_max_norm = 177, blas_real_max_norm = 178,
  blas_one_norm = 171, blas_real_one_norm = 172, blas_two_norm = 173, blas_frobenius_norm = 174,
  blas_inf_norm = 175, blas_real_inf_norm = 176, blas_max_norm = 177, blas_real_max_norm = 178,
  blas_one_norm = 171, blas_real_one_norm = 172, blas_two_norm = 173, blas_frobenius_norm = 174,
  blas_inf_norm = 175, blas_real_inf_norm = 176, blas_max_norm = 177, blas_real_max_norm = 178,
  blas_one_norm = 171, blas_real_one_norm = 172, blas_two_norm = 173, blas_frobenius_norm = 174,
  blas_inf_norm = 175, blas_real_inf_norm = 176, blas_max_norm = 177, blas_real_max_norm = 178,
  blas_one_norm = 171, blas_real_one_norm = 172, blas_two_norm = 173, blas_frobenius_norm = 174,
  blas_inf_norm = 175, blas_real_inf_norm = 176, blas_max_norm = 177, blas_real_max_norm = 178,
  blas_one_norm = 171, blas_real_one_norm = 172, blas_two_norm = 173, blas_frobenius_norm = 174,
  blas_inf_norm = 175, blas_real_inf_norm = 176, blas_max_norm = 177, blas_real_max_norm = 178,
  blas_one_norm = 171, blas_real_one_norm = 172, blas_two_norm = 173, blas_frobenius_norm = 174,
  blas_inf_norm = 175, blas_real_inf_norm = 176, blas_max_norm = 177, blas_real_max_norm = 178,
  blas_one_norm = 171, blas_real_one_norm = 172, blas_two_norm = 173, blas_frobenius_norm = 174,
  blas_inf_norm = 175, blas_real_inf_norm = 176, blas_max_norm = 177, blas_real_max_norm = 178,
  blas_one_norm = 171, blas_real_one_norm = 172, blas_two_norm = 173, blas_frobenius_norm = 174,
  blas_inf_norm = 175, blas_real_inf_norm = 176, blas_max_norm = 177, blas_real_max_norm = 178,
  blas_one_norm = 171, blas_real_one_norm = 172, blas_two_norm = 173, blas_frobenius_norm = 174,
  blas_inf_norm = 175, blas_real_inf_norm = 176, blas_max_norm = 177, blas_real_max_norm = 178
}

Functions

int testing_sgesv (int argc, char **argv)

Detailed Description

PLASMA testing routines PLASMA is a software package provided by Univ. of Tennessee, Univ. of California Berkeley and Univ. of Colorado Denver

Version:
2.4.5
Author:
Bilel Hadri
Hatem Ltaief
Matheiu Faverge
Date:
2010-11-15 s Tue Nov 22 14:35:48 2011

Definition in file testing_sgesv.c.


Enumeration Type Documentation

Enumerator:
blas_base 
blas_t 
blas_rnd 
blas_ieee 
blas_emin 
blas_emax 
blas_eps 
blas_prec 
blas_underflow 
blas_overflow 
blas_sfmin 
blas_base 
blas_t 
blas_rnd 
blas_ieee 
blas_emin 
blas_emax 
blas_eps 
blas_prec 
blas_underflow 
blas_overflow 
blas_sfmin 
blas_base 
blas_t 
blas_rnd 
blas_ieee 
blas_emin 
blas_emax 
blas_eps 
blas_prec 
blas_underflow 
blas_overflow 
blas_sfmin 
blas_base 
blas_t 
blas_rnd 
blas_ieee 
blas_emin 
blas_emax 
blas_eps 
blas_prec 
blas_underflow 
blas_overflow 
blas_sfmin 
blas_base 
blas_t 
blas_rnd 
blas_ieee 
blas_emin 
blas_emax 
blas_eps 
blas_prec 
blas_underflow 
blas_overflow 
blas_sfmin 
blas_base 
blas_t 
blas_rnd 
blas_ieee 
blas_emin 
blas_emax 
blas_eps 
blas_prec 
blas_underflow 
blas_overflow 
blas_sfmin 
blas_base 
blas_t 
blas_rnd 
blas_ieee 
blas_emin 
blas_emax 
blas_eps 
blas_prec 
blas_underflow 
blas_overflow 
blas_sfmin 
blas_base 
blas_t 
blas_rnd 
blas_ieee 
blas_emin 
blas_emax 
blas_eps 
blas_prec 
blas_underflow 
blas_overflow 
blas_sfmin 
blas_base 
blas_t 
blas_rnd 
blas_ieee 
blas_emin 
blas_emax 
blas_eps 
blas_prec 
blas_underflow 
blas_overflow 
blas_sfmin 
blas_base 
blas_t 
blas_rnd 
blas_ieee 
blas_emin 
blas_emax 
blas_eps 
blas_prec 
blas_underflow 
blas_overflow 
blas_sfmin 
blas_base 
blas_t 
blas_rnd 
blas_ieee 
blas_emin 
blas_emax 
blas_eps 
blas_prec 
blas_underflow 
blas_overflow 
blas_sfmin 
blas_base 
blas_t 
blas_rnd 
blas_ieee 
blas_emin 
blas_emax 
blas_eps 
blas_prec 
blas_underflow 
blas_overflow 
blas_sfmin 
blas_base 
blas_t 
blas_rnd 
blas_ieee 
blas_emin 
blas_emax 
blas_eps 
blas_prec 
blas_underflow 
blas_overflow 
blas_sfmin 
blas_base 
blas_t 
blas_rnd 
blas_ieee 
blas_emin 
blas_emax 
blas_eps 
blas_prec 
blas_underflow 
blas_overflow 
blas_sfmin 
blas_base 
blas_t 
blas_rnd 
blas_ieee 
blas_emin 
blas_emax 
blas_eps 
blas_prec 
blas_underflow 
blas_overflow 
blas_sfmin 
blas_base 
blas_t 
blas_rnd 
blas_ieee 
blas_emin 
blas_emax 
blas_eps 
blas_prec 
blas_underflow 
blas_overflow 
blas_sfmin 
blas_base 
blas_t 
blas_rnd 
blas_ieee 
blas_emin 
blas_emax 
blas_eps 
blas_prec 
blas_underflow 
blas_overflow 
blas_sfmin 

Definition at line 32 of file testing_sgesv.c.

{
blas_base = 151,
blas_t = 152,
blas_rnd = 153,
blas_ieee = 154,
blas_emin = 155,
blas_emax = 156,
blas_eps = 157,
blas_prec = 158,
blas_sfmin = 161};
Enumerator:
blas_one_norm 
blas_real_one_norm 
blas_two_norm 
blas_frobenius_norm 
blas_inf_norm 
blas_real_inf_norm 
blas_max_norm 
blas_real_max_norm 
blas_one_norm 
blas_real_one_norm 
blas_two_norm 
blas_frobenius_norm 
blas_inf_norm 
blas_real_inf_norm 
blas_max_norm 
blas_real_max_norm 
blas_one_norm 
blas_real_one_norm 
blas_two_norm 
blas_frobenius_norm 
blas_inf_norm 
blas_real_inf_norm 
blas_max_norm 
blas_real_max_norm 
blas_one_norm 
blas_real_one_norm 
blas_two_norm 
blas_frobenius_norm 
blas_inf_norm 
blas_real_inf_norm 
blas_max_norm 
blas_real_max_norm 
blas_one_norm 
blas_real_one_norm 
blas_two_norm 
blas_frobenius_norm 
blas_inf_norm 
blas_real_inf_norm 
blas_max_norm 
blas_real_max_norm 
blas_one_norm 
blas_real_one_norm 
blas_two_norm 
blas_frobenius_norm 
blas_inf_norm 
blas_real_inf_norm 
blas_max_norm 
blas_real_max_norm 
blas_one_norm 
blas_real_one_norm 
blas_two_norm 
blas_frobenius_norm 
blas_inf_norm 
blas_real_inf_norm 
blas_max_norm 
blas_real_max_norm 
blas_one_norm 
blas_real_one_norm 
blas_two_norm 
blas_frobenius_norm 
blas_inf_norm 
blas_real_inf_norm 
blas_max_norm 
blas_real_max_norm 
blas_one_norm 
blas_real_one_norm 
blas_two_norm 
blas_frobenius_norm 
blas_inf_norm 
blas_real_inf_norm 
blas_max_norm 
blas_real_max_norm 
blas_one_norm 
blas_real_one_norm 
blas_two_norm 
blas_frobenius_norm 
blas_inf_norm 
blas_real_inf_norm 
blas_max_norm 
blas_real_max_norm 
blas_one_norm 
blas_real_one_norm 
blas_two_norm 
blas_frobenius_norm 
blas_inf_norm 
blas_real_inf_norm 
blas_max_norm 
blas_real_max_norm 
blas_one_norm 
blas_real_one_norm 
blas_two_norm 
blas_frobenius_norm 
blas_inf_norm 
blas_real_inf_norm 
blas_max_norm 
blas_real_max_norm 
blas_one_norm 
blas_real_one_norm 
blas_two_norm 
blas_frobenius_norm 
blas_inf_norm 
blas_real_inf_norm 
blas_max_norm 
blas_real_max_norm 
blas_one_norm 
blas_real_one_norm 
blas_two_norm 
blas_frobenius_norm 
blas_inf_norm 
blas_real_inf_norm 
blas_max_norm 
blas_real_max_norm 
blas_one_norm 
blas_real_one_norm 
blas_two_norm 
blas_frobenius_norm 
blas_inf_norm 
blas_real_inf_norm 
blas_max_norm 
blas_real_max_norm 
blas_one_norm 
blas_real_one_norm 
blas_two_norm 
blas_frobenius_norm 
blas_inf_norm 
blas_real_inf_norm 
blas_max_norm 
blas_real_max_norm 
blas_one_norm 
blas_real_one_norm 
blas_two_norm 
blas_frobenius_norm 
blas_inf_norm 
blas_real_inf_norm 
blas_max_norm 
blas_real_max_norm 

Definition at line 45 of file testing_sgesv.c.

Enumerator:
blas_rowmajor 
blas_colmajor 
blas_rowmajor 
blas_colmajor 
blas_rowmajor 
blas_colmajor 
blas_rowmajor 
blas_colmajor 
blas_rowmajor 
blas_colmajor 
blas_rowmajor 
blas_colmajor 
blas_rowmajor 
blas_colmajor 
blas_rowmajor 
blas_colmajor 
blas_rowmajor 
blas_colmajor 
blas_rowmajor 
blas_colmajor 
blas_rowmajor 
blas_colmajor 
blas_rowmajor 
blas_colmajor 
blas_rowmajor 
blas_colmajor 
blas_rowmajor 
blas_colmajor 
blas_rowmajor 
blas_colmajor 
blas_rowmajor 
blas_colmajor 
blas_rowmajor 
blas_colmajor 

Definition at line 28 of file testing_sgesv.c.

{
blas_colmajor = 102 };

Function Documentation

int testing_sgesv ( int  argc,
char **  argv 
)

Definition at line 155 of file testing_sgesv.c.

References blas_eps, check_solution(), IONE, IPIV, ISEED, PLASMA_sgesv(), PLASMA_sgetrf(), PLASMA_sgetrs, PLASMA_slaswp(), PLASMA_strsm(), PlasmaLeft, PlasmaLower, PlasmaNonUnit, PlasmaNoTrans, PlasmaUnit, PlasmaUpper, and USAGE.

{
/* Check for valid arguments*/
if (argc != 4){
USAGE("GESV", "N LDA NRHS LDB",
" - N : the size of the matrix\n"
" - LDA : leading dimension of the matrix A\n"
" - NRHS : number of RHS\n"
" - LDB : leading dimension of the matrix B\n");
return -1;
}
int N = atoi(argv[0]);
int LDA = atoi(argv[1]);
int NRHS = atoi(argv[2]);
int LDB = atoi(argv[3]);
float eps;
int info_solution;
int i,j;
int LDAxN = LDA*N;
int LDBxNRHS = LDB*NRHS;
float *A1 = (float *)malloc(LDA*N *sizeof(float));
float *A2 = (float *)malloc(LDA*N *sizeof(float));
float *B1 = (float *)malloc(LDB*NRHS*sizeof(float));
float *B2 = (float *)malloc(LDB*NRHS*sizeof(float));
int *IPIV = (int *)malloc(N*sizeof(int));
/* Check if unable to allocate memory */
if ( (!A1) || (!A2)|| (!B1) || (!B2) || (!IPIV) ) {
printf("Out of Memory \n ");
return -2;
}
eps = BLAS_sfpinfo(blas_eps);
/*----------------------------------------------------------
* TESTING SGESV
*/
/* Initialize A1 and A2 Matrix */
LAPACKE_slarnv_work(IONE, ISEED, LDAxN, A1);
for ( i = 0; i < N; i++)
for ( j = 0; j < N; j++)
A2[LDA*j+i] = A1[LDA*j+i];
/* Initialize B1 and B2 */
LAPACKE_slarnv_work(IONE, ISEED, LDBxNRHS, B1);
for ( i = 0; i < N; i++)
for ( j = 0; j < NRHS; j++)
B2[LDB*j+i] = B1[LDB*j+i];
/* PLASMA SGESV */
PLASMA_sgesv(N, NRHS, A2, LDA, IPIV, B2, LDB);
printf("\n");
printf("------ TESTS FOR PLASMA SGESV ROUTINE ------- \n");
printf(" Size of the Matrix %d by %d\n", N, N);
printf("\n");
printf(" The matrix A is randomly generated for each test.\n");
printf("============\n");
printf(" The relative machine precision (eps) is to be %e \n", eps);
printf(" Computational tests pass if scaled residuals are less than 60.\n");
/* Check the factorization and the solution */
info_solution = check_solution(N, NRHS, A1, LDA, B1, B2, LDB, eps);
if ((info_solution == 0)){
printf("***************************************************\n");
printf(" ---- TESTING SGESV ...................... PASSED !\n");
printf("***************************************************\n");
}
else{
printf("************************************************\n");
printf(" - TESTING SGESV ... FAILED !\n");
printf("************************************************\n");
}
/*-------------------------------------------------------------
* TESTING SGETRF + SGETRS
*/
/* Initialize A1 and A2 */
LAPACKE_slarnv_work(IONE, ISEED, LDAxN, A1);
for ( i = 0; i < N; i++)
for ( j = 0; j < N; j++)
A2[LDA*j+i] = A1[LDA*j+i];
/* Initialize B1 and B2 */
LAPACKE_slarnv_work(IONE, ISEED, LDBxNRHS, B1);
for ( i = 0; i < N; i++)
for ( j = 0; j < NRHS; j++)
B2[LDB*j+i] = B1[LDB*j+i];
/* Plasma routines */
PLASMA_sgetrf(N, N, A2, LDA, IPIV);
PLASMA_sgetrs(PlasmaNoTrans, N, NRHS, A2, LDA, IPIV, B2, LDB);
printf("\n");
printf("------ TESTS FOR PLASMA SGETRF + SGETRS ROUTINE ------- \n");
printf(" Size of the Matrix %d by %d\n", N, N);
printf("\n");
printf(" The matrix A is randomly generated for each test.\n");
printf("============\n");
printf(" The relative machine precision (eps) is to be %e \n", eps);
printf(" Computational tests pass if scaled residuals are less than 60.\n");
/* Check the solution */
info_solution = check_solution(N, NRHS, A1, LDA, B1, B2, LDB, eps);
if ((info_solution == 0)){
printf("***************************************************\n");
printf(" ---- TESTING SGETRF + SGETRS ............ PASSED !\n");
printf("***************************************************\n");
}
else{
printf("***************************************************\n");
printf(" - TESTING SGETRF + SGETRS ... FAILED !\n");
printf("***************************************************\n");
}
/*-------------------------------------------------------------
* TESTING SGETRF + STRSMPL + STRSM
*/
/* Initialize A1 and A2 */
LAPACKE_slarnv_work(IONE, ISEED, LDAxN, A1);
for ( i = 0; i < N; i++)
for ( j = 0; j < N; j++)
A2[LDA*j+i] = A1[LDA*j+i];
/* Initialize B1 and B2 */
LAPACKE_slarnv_work(IONE, ISEED, LDBxNRHS, B1);
for ( i = 0; i < N; i++)
for ( j = 0; j < NRHS; j++)
B2[LDB*j+i] = B1[LDB*j+i];
/* PLASMA routines */
PLASMA_sgetrf(N, N, A2, LDA, IPIV);
PLASMA_slaswp(NRHS, B2, LDB, 1, N, IPIV, 1);
N, NRHS, 1.0, A2, LDA, B2, LDB);
N, NRHS, 1.0, A2, LDA, B2, LDB);
printf("\n");
printf("------ TESTS FOR PLASMA SGETRF + SLASWP + STRSM + STRSM ROUTINE ------- \n");
printf(" Size of the Matrix %d by %d\n", N, N);
printf("\n");
printf(" The matrix A is randomly generated for each test.\n");
printf("============\n");
printf(" The relative machine precision (eps) is to be %e \n", eps);
printf(" Computational tests pass if scaled residuals are less than 60.\n");
/* Check the solution */
info_solution = check_solution(N, NRHS, A1, LDA, B1, B2, LDB, eps);
if ((info_solution == 0)){
printf("***************************************************\n");
printf(" ---- TESTING SGETRF + SLASWP + STRSM + STRSM ... PASSED !\n");
printf("***************************************************\n");
}
else{
printf("**************************************************\n");
printf(" - TESTING SGETRF + SLASWP + STRSM + STRSM ... FAILED !\n");
printf("**************************************************\n");
}
free(A1); free(A2); free(B1); free(B2); free(IPIV);
return 0;
}

Here is the call graph for this function:

Here is the caller graph for this function: