Actual source code: senddense.c
2: #include src/sys/src/viewer/impls/socket/socket.h
6: /*@C
7: PetscViewerSocketPutScalar - Passes a Scalar array to a Socket PetscViewer.
9: Input Parameters:
10: + viewer - obtained from PetscViewerSocketOpen()
11: . m - number of rows of array
12: . m - number of columns of array
13: - array - the array stored in column ordering (matrix or vector data)
15: Level: advanced
17: Notes:
18: Most users should not call this routine, but instead should employ
19: either
20: .vb
21: MatView(Mat matrix,PetscViewer viewer)
22: or
23: VecView(Vec vector,PetscViewer viewer)
24: .ve
26: Concepts: Matlab^sending data
27: Concepts: sockets^sending data
29: .seealso: PetscViewerSocketOpen(), MatView(), VecView(), PetscViewerSocketPutReal(), PetscViewerSocketPutScalar(),
30: PETSC_VIEWER_SOCKET_, PETSC_VIEWER_SOCKET_WORLD, PETSC_VIEWER_SOCKET_SELF
31: @*/
32: PetscErrorCode PetscViewerSocketPutScalar(PetscViewer viewer,PetscInt m,PetscInt n,PetscScalar *array)
33: {
34: PetscViewer_Socket *vmatlab = (PetscViewer_Socket*)viewer->data;
35: PetscErrorCode ierr;
36: int t = vmatlab->port,type = DENSEREAL,value;
39: PetscBinaryWrite(t,&type,1,PETSC_INT,PETSC_FALSE);
40: PetscBinaryWrite(t,&m,1,PETSC_INT,PETSC_FALSE);
41: PetscBinaryWrite(t,&n,1,PETSC_INT,PETSC_FALSE);
42: #if !defined(PETSC_USE_COMPLEX)
43: value = 0;
44: #else
45: value = 1;
46: #endif
47: PetscBinaryWrite(t,&value,1,PETSC_INT,PETSC_FALSE);
48: PetscBinaryWrite(t,array,m*n,PETSC_SCALAR,PETSC_FALSE);
49: return(0);
50: }
54: /*@C
55: PetscViewerSocketPutReal - Passes a double (or single) precision array to
56: a Matlab PetscViewer.
58: Input Parameters:
59: + viewer - obtained from PetscViewerSocketOpen()
60: . m - number of rows of array
61: . m - number of columns of array
62: - array - the array stored in column ordering (matrix or vector data)
64: Level: advanced
66: Notes:
67: Most users should not call this routine, but instead should employ
68: either
69: .vb
70: MatView(Mat matrix,PetscViewer viewer)
71: or
72: VecView(Vec vector,PetscViewer viewer)
73: .ve
75: Concepts: Matlab^sending data
76: Concepts: sockets^sending data
78: .seealso: PetscViewerSocketOpen(), MatView(), VecView(), PetscViewerSocketPutInt(), PetscViewerSocketPutReal(),
79: PETSC_VIEWER_SOCKET_, PETSC_VIEWER_SOCKET_WORLD, PETSC_VIEWER_SOCKET_SELF
80: @*/
81: PetscErrorCode PetscViewerSocketPutReal(PetscViewer viewer,PetscInt m,PetscInt n,PetscReal *array)
82: {
83: PetscViewer_Socket *vmatlab = (PetscViewer_Socket*)viewer->data;
84: PetscErrorCode ierr;
85: int t = vmatlab->port,type = DENSEREAL,value;
88: PetscBinaryWrite(t,&type,1,PETSC_INT,PETSC_FALSE);
89: PetscBinaryWrite(t,&m,1,PETSC_INT,PETSC_FALSE);
90: PetscBinaryWrite(t,&n,1,PETSC_INT,PETSC_FALSE);
91: value = 0;
92: PetscBinaryWrite(t,&value,1,PETSC_INT,PETSC_FALSE);
93: PetscBinaryWrite(t,array,m*n,PETSC_REAL,PETSC_FALSE);
94: return(0);
95: }
100: /*@C
101: PetscViewerSocketPutInt - Passes an integer array to a Socket PetscViewer.
103: Input Parameters:
104: + viewer - obtained from PetscViewerSocketOpen()
105: . m - number of rows of array
106: - array - the array stored in column ordering (matrix or vector data)
108: Level: advanced
110: Notes:
111: Most users should not call this routine, but instead should employ either
112: .vb
113: MatView(Mat matrix,PetscViewer viewer)
114: or
115: VecView(Vec vector,PetscViewer viewer)
116: .ve
118: Concepts: Matlab^sending data
119: Concepts: sockets^sending data
121: .seealso: PetscViewerSocketOpen(), MatView(), VecView(), PetscViewerSocketPutScalar(), PetscViewerSocketPutReal(),
122: PETSC_VIEWER_SOCKET_, PETSC_VIEWER_SOCKET_WORLD, PETSC_VIEWER_SOCKET_SELF
123: @*/
124: PetscErrorCode PetscViewerSocketPutInt(PetscViewer viewer,PetscInt m,PetscInt *array)
125: {
126: PetscViewer_Socket *vmatlab = (PetscViewer_Socket*)viewer->data;
127: PetscErrorCode ierr;
128: int t = vmatlab->port,type = DENSEINT;
131: PetscBinaryWrite(t,&type,1,PETSC_INT,PETSC_FALSE);
132: PetscBinaryWrite(t,&m,1,PETSC_INT,PETSC_FALSE);
133: PetscBinaryWrite(t,array,m,PETSC_INT,PETSC_FALSE);
134: return(0);
135: }