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; }