| 
    libflame
    12600
    
   
   | 
  
  
  
 
Functions | |
| FLA_Error | FLA_Random_unitary_matrix (FLA_Obj A) | 
References FLA_Check_error_level(), FLA_Obj_create_conf_to(), FLA_Obj_free(), FLA_QR_UT(), FLA_QR_UT_create_T(), FLA_QR_UT_form_Q(), FLA_Random_matrix(), and FLA_Random_unitary_matrix_check().
{
  FLA_Obj B, T;
  if ( FLA_Check_error_level() >= FLA_MIN_ERROR_CHECKING )
    FLA_Random_unitary_matrix_check( A );
  FLA_Obj_create_conf_to( FLA_NO_TRANSPOSE, A, &B );
  FLA_Random_matrix( B );
  FLA_QR_UT_create_T( B, &T );
  FLA_QR_UT( B, T );
  FLA_QR_UT_form_Q( B, T, A );
  //FLA_Apply_Q_UT_create_workspace( A, T, &W );
  //FLA_Apply_Q_UT( FLA_LEFT, FLA_NO_TRANSPOSE, FLA_FORWARD, FLA_COLUMNWISE, B, T, W, A );
  //FLA_Obj_free( &W );
  FLA_Obj_free( &T );
  FLA_Obj_free( &B );
/*
  FLA_Datatype datatype;
  FLA_Obj      v, tau;
  FLA_Obj      aT,
               AB;
  int          i, mn;
  int          k;
  datatype = FLA_Obj_datatype( A );
  mn       = FLA_Obj_length( A );
  k        = 1;
  FLA_Obj_create( datatype, mn-1, 1, 0, 0, &v );
  FLA_Obj_create( datatype, 1,    1, 0, 0, &tau );
  FLA_Obj_set_to_identity( A );
  FLA_Part_2x1( A,   &aT,
                     &AB,    1, FLA_TOP );
  for ( i = 0; i < k; ++i )
  {
    FLA_Random_matrix( tau );
    FLA_Random_matrix( v );
    FLA_Apply_H2_UT( FLA_LEFT, tau, v, aT,
                                       AB );
  }
  FLA_Obj_free( &tau );
  FLA_Obj_free( &v );
*/
  return FLA_SUCCESS;
}
 1.7.6.1