Actual source code: senddense.c
1: /* $Id: senddense.c,v 1.48 2001/08/06 21:13:29 bsmith Exp $ */
3: #include src/sys/src/viewer/impls/socket/socket.h
5: /*@C
6: PetscViewerSocketPutScalar - Passes an Scalar array to a Socket PetscViewer.
8: Input Parameters:
9: + viewer - obtained from PetscViewerSocketOpen()
10: . m - number of rows of array
11: . m - number of columns of array
12: - array - the array stored in Fortran 77 style (matrix or vector data)
14: Level: advanced
16: Notes:
17: Most users should not call this routine, but instead should employ
18: either
19: .vb
20: MatView(Mat matrix,PetscViewer viewer)
21: or
22: VecView(Vec vector,PetscViewer viewer)
23: .ve
25: Concepts: Matlab^sending data
26: Concepts: sockets^sending data
28: .seealso: PetscViewerSocketOpen(), MatView(), VecView(), PetscViewerSocketPutReal(), PetscViewerSocketPutScalar(),
29: PETSC_VIEWER_SOCKET_, PETSC_VIEWER_SOCKET_WORLD, PETSC_VIEWER_SOCKET_SELF
30: @*/
31: int PetscViewerSocketPutScalar(PetscViewer viewer,int m,int n,PetscScalar *array)
32: {
33: PetscViewer_Socket *vmatlab = (PetscViewer_Socket*)viewer->data;
34: int ierr,t = vmatlab->port,type = DENSEREAL,value;
37: PetscBinaryWrite(t,&type,1,PETSC_INT,0);
38: PetscBinaryWrite(t,&m,1,PETSC_INT,0);
39: PetscBinaryWrite(t,&n,1,PETSC_INT,0);
40: #if !defined(PETSC_USE_COMPLEX)
41: value = 0;
42: #else
43: value = 1;
44: #endif
45: PetscBinaryWrite(t,&value,1,PETSC_INT,0);
46: PetscBinaryWrite(t,array,m*n,PETSC_SCALAR,0);
47: return(0);
48: }
50: /*@C
51: PetscViewerSocketPutReal - Passes a double (or single) precision array to
52: a Matlab PetscViewer.
54: Input Parameters:
55: + viewer - obtained from PetscViewerSocketOpen()
56: . m - number of rows of array
57: . m - number of columns of array
58: - array - the array stored in Fortran 77 style (matrix or vector data)
60: Level: advanced
62: Notes:
63: Most users should not call this routine, but instead should employ
64: either
65: .vb
66: MatView(Mat matrix,PetscViewer viewer)
67: or
68: VecView(Vec vector,PetscViewer viewer)
69: .ve
71: Concepts: Matlab^sending data
72: Concepts: sockets^sending data
74: .seealso: PetscViewerSocketOpen(), MatView(), VecView(), PetscViewerSocketPutInt(), PetscViewerSocketPutReal(),
75: PETSC_VIEWER_SOCKET_, PETSC_VIEWER_SOCKET_WORLD, PETSC_VIEWER_SOCKET_SELF
76: @*/
77: int PetscViewerSocketPutReal(PetscViewer viewer,int m,int n,PetscReal *array)
78: {
79: PetscViewer_Socket *vmatlab = (PetscViewer_Socket*)viewer->data;
80: int ierr,t = vmatlab->port,type = DENSEREAL,value;
83: PetscBinaryWrite(t,&type,1,PETSC_INT,0);
84: PetscBinaryWrite(t,&m,1,PETSC_INT,0);
85: PetscBinaryWrite(t,&n,1,PETSC_INT,0);
86: value = 0;
87: PetscBinaryWrite(t,&value,1,PETSC_INT,0);
88: PetscBinaryWrite(t,array,m*n,PETSC_REAL,0);
89: return(0);
90: }
93: /*@C
94: PetscViewerSocketPutInt - Passes an integer array to a Socket PetscViewer.
96: Input Parameters:
97: + viewer - obtained from PetscViewerSocketOpen()
98: . m - number of rows of array
99: - array - the array stored in Fortran 77 style (matrix or vector data)
101: Level: advanced
103: Notes:
104: Most users should not call this routine, but instead should employ either
105: .vb
106: MatView(Mat matrix,PetscViewer viewer)
107: or
108: VecView(Vec vector,PetscViewer viewer)
109: .ve
111: Concepts: Matlab^sending data
112: Concepts: sockets^sending data
114: .seealso: PetscViewerSocketOpen(), MatView(), VecView(), PetscViewerSocketPutScalar(), PetscViewerSocketPutReal(),
115: PETSC_VIEWER_SOCKET_, PETSC_VIEWER_SOCKET_WORLD, PETSC_VIEWER_SOCKET_SELF
116: @*/
117: int PetscViewerSocketPutInt(PetscViewer viewer,int m,int *array)
118: {
119: PetscViewer_Socket *vmatlab = (PetscViewer_Socket*)viewer->data;
120: int ierr,t = vmatlab->port,type = DENSEINT;
123: PetscBinaryWrite(t,&type,1,PETSC_INT,0);
124: PetscBinaryWrite(t,&m,1,PETSC_INT,0);
125: PetscBinaryWrite(t,array,m,PETSC_INT,0);
126: return(0);
127: }