Actual source code: ex175.c
2: static char help[] = "Tests MatCreateHermitianTranspose().\n\n";
4: #include <petscmat.h>
6: int main(int argc,char **args)
7: {
8: Mat C,C_htransposed,Cht,C_empty;
9: PetscInt i,j,m = 10,n = 10;
10: PetscScalar v;
12: PetscInitialize(&argc,&args,(char*)0,help);
13: /* Create a complex non-hermitian matrix */
14: MatCreate(PETSC_COMM_SELF,&C);
15: MatSetSizes(C,PETSC_DECIDE,PETSC_DECIDE,m,n);
16: MatSetFromOptions(C);
17: MatSetUp(C);
18: for (i=0; i<m; i++) {
19: for (j=0; j<n; j++) {
20: v = 0.0 - 1.0*PETSC_i;
21: if (i>j && i-j<2) MatSetValues(C,1,&i,1,&j,&v,INSERT_VALUES);
22: }
23: }
24: MatAssemblyBegin(C,MAT_FINAL_ASSEMBLY);
25: MatAssemblyEnd(C,MAT_FINAL_ASSEMBLY);
27: MatCreateHermitianTranspose(C, &C_htransposed);
29: MatView(C,PETSC_VIEWER_STDOUT_SELF);
30: MatDuplicate(C_htransposed,MAT_COPY_VALUES,&Cht);
31: MatView(Cht,PETSC_VIEWER_STDOUT_SELF);
32: MatDuplicate(C_htransposed,MAT_DO_NOT_COPY_VALUES,&C_empty);
33: MatView(C_empty,PETSC_VIEWER_STDOUT_SELF);
35: MatDestroy(&C);
36: MatDestroy(&C_htransposed);
37: MatDestroy(&Cht);
38: MatDestroy(&C_empty);
39: PetscFinalize();
40: return 0;
41: }
43: /*TEST
45: build:
46: requires: complex
48: test:
49: output_file: output/ex175.out
51: TEST*/