xref: /petsc/src/mat/tests/ex253.c (revision 9566063d113dddea24716c546802770db7481bc0)
16048efd1SBarry Smith static char help[] = "Tests MatMultHermitianTranspose() for real numbers.\n\n";
26048efd1SBarry Smith #include <petsc.h>
36048efd1SBarry Smith 
46048efd1SBarry Smith int main(int argc, char **args)
56048efd1SBarry Smith {
66048efd1SBarry Smith   Mat            A, AHT;
76048efd1SBarry Smith   Vec            x, y;
86048efd1SBarry Smith   PetscRandom    rand;
96048efd1SBarry Smith 
10*9566063dSJacob Faibussowitsch   PetscCall(PetscInitialize(&argc, &args, (char*)0, help));
116048efd1SBarry Smith 
12*9566063dSJacob Faibussowitsch   PetscCall(MatCreate(PETSC_COMM_WORLD, &A));
13*9566063dSJacob Faibussowitsch   PetscCall(MatSetType(A, MATAIJ));
14*9566063dSJacob Faibussowitsch   PetscCall(MatSetSizes(A, PETSC_DECIDE, PETSC_DECIDE, 10, 10));
15*9566063dSJacob Faibussowitsch   PetscCall(MatSetFromOptions(A));
16*9566063dSJacob Faibussowitsch   PetscCall(MatSetUp(A));
176048efd1SBarry Smith 
18*9566063dSJacob Faibussowitsch   PetscCall(MatSetValue(A, 0, 0, 1.0, INSERT_VALUES));
19*9566063dSJacob Faibussowitsch   PetscCall(MatAssemblyBegin(A, MAT_FINAL_ASSEMBLY));
20*9566063dSJacob Faibussowitsch   PetscCall(MatAssemblyEnd(A, MAT_FINAL_ASSEMBLY));
216048efd1SBarry Smith 
22*9566063dSJacob Faibussowitsch   PetscCall(MatCreateHermitianTranspose(A, &AHT));
23*9566063dSJacob Faibussowitsch   PetscCall(MatCreateVecs(AHT, &x, &y));
246048efd1SBarry Smith 
25*9566063dSJacob Faibussowitsch   PetscCall(PetscRandomCreate(PETSC_COMM_WORLD, &rand));
26*9566063dSJacob Faibussowitsch   PetscCall(PetscRandomSetFromOptions(rand));
27*9566063dSJacob Faibussowitsch   PetscCall(VecSetRandom(y, rand));
28*9566063dSJacob Faibussowitsch   PetscCall(PetscRandomDestroy(&rand));
296048efd1SBarry Smith 
30*9566063dSJacob Faibussowitsch   PetscCall(MatMultHermitianTranspose(AHT, y, x));
316048efd1SBarry Smith 
32*9566063dSJacob Faibussowitsch   PetscCall(VecDestroy(&x));
33*9566063dSJacob Faibussowitsch   PetscCall(VecDestroy(&y));
34*9566063dSJacob Faibussowitsch   PetscCall(MatDestroy(&A));
35*9566063dSJacob Faibussowitsch   PetscCall(MatDestroy(&AHT));
36*9566063dSJacob Faibussowitsch   PetscCall(PetscFinalize());
37b122ec5aSJacob Faibussowitsch   return 0;
386048efd1SBarry Smith }
396048efd1SBarry Smith 
406048efd1SBarry Smith /*TEST
416048efd1SBarry Smith 
426048efd1SBarry Smith    test:
436048efd1SBarry Smith 
446048efd1SBarry Smith TEST*/
45