FLA_Random_matrix.c File Reference

(r)


Functions

FLA_Error FLA_Random_matrix (FLA_Obj A)
void FLA_F2C() fla_random_matrix_f (F_INT *A, F_INT *IERROR)

Function Documentation

FLA_Error FLA_Random_matrix ( FLA_Obj  A  ) 

References FLA_Check_error_level(), FLA_Obj_datatype(), FLA_Obj_ldim(), FLA_Obj_length(), FLA_Obj_width(), FLA_random_dcomplex(), FLA_random_double(), FLA_random_float(), FLA_Random_matrix_check(), and FLA_random_scomplex().

Referenced by fla_random_matrix_f(), FLA_Random_spd_matrix(), and FLASH_Random_matrix().

00036 {
00037   FLA_Datatype datatype;
00038   int          i, j;
00039   int          m_A, n_A, ldim_A;
00040 
00041   if ( FLA_Check_error_level() >= FLA_MIN_ERROR_CHECKING )
00042     FLA_Random_matrix_check( A );
00043 
00044   datatype = FLA_Obj_datatype( A );
00045 
00046   m_A      = FLA_Obj_length( A );
00047   n_A      = FLA_Obj_width( A );
00048   ldim_A   = FLA_Obj_ldim( A );
00049 
00050   switch( datatype ){
00051 
00052   case FLA_FLOAT:
00053   {
00054     float *buff_A = ( float * ) FLA_FLOAT_PTR( A );
00055 
00056     for ( j = 0; j < n_A; j++ )
00057     {
00058       for ( i = 0; i < m_A; i++ )
00059       {
00060         buff_A[ j*ldim_A + i ] = FLA_random_float();
00061       }
00062     }
00063 
00064     break;
00065   }
00066 
00067   case FLA_DOUBLE:
00068   {
00069     double *buff_A = ( double * ) FLA_DOUBLE_PTR( A );
00070 
00071     for ( j = 0; j < n_A; j++ )
00072     {
00073       for ( i = 0; i < m_A; i++ )
00074       {
00075         buff_A[ j*ldim_A + i ] = FLA_random_double();
00076       }
00077     }
00078 
00079     break;
00080   }
00081 
00082   case FLA_COMPLEX:
00083   {
00084     scomplex *buff_A = ( scomplex * ) FLA_COMPLEX_PTR( A );
00085 
00086     for ( j = 0; j < n_A; j++ )
00087     {
00088       for ( i = 0; i < m_A; i++ )
00089       {
00090         buff_A[ j*ldim_A + i ] = FLA_random_scomplex();
00091       }
00092     }
00093 
00094     break;
00095   }
00096 
00097   case FLA_DOUBLE_COMPLEX:
00098   {
00099     dcomplex *buff_A = ( dcomplex * ) FLA_DOUBLE_COMPLEX_PTR( A );
00100 
00101     for ( j = 0; j < n_A; j++ )
00102     {
00103       for ( i = 0; i < m_A; i++ )
00104       {
00105         buff_A[ j*ldim_A + i ] = FLA_random_dcomplex();
00106       }
00107     }
00108 
00109     break;
00110   }
00111 
00112   }
00113 
00114   return FLA_SUCCESS;
00115 }

void FLA_F2C() fla_random_matrix_f ( F_INT *  A,
F_INT *  IERROR 
)

References FLA_Random_matrix().

00119 {
00120   *IERROR = FLA_Random_matrix( *( ( FLA_Obj * ) A ) );
00121 }


Generated on Mon Jul 6 05:45:53 2009 for libflame by  doxygen 1.5.9