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: #undef __FUNCT__
7: /*@C
8: PetscViewerSocketPutScalar - Passes a Scalar array to a Socket PetscViewer.
10: Input Parameters:
11: + viewer - obtained from PetscViewerSocketOpen()
12: . m - number of rows of array
13: . m - number of columns of array
14: - array - the array stored in column ordering (matrix or vector data)
16: Level: advanced
18: Notes:
19: Most users should not call this routine, but instead should employ
20: either
21: .vb
22: MatView(Mat matrix,PetscViewer viewer)
23: or
24: VecView(Vec vector,PetscViewer viewer)
25: .ve
27: Concepts: Matlab^sending data
28: Concepts: sockets^sending data
30: .seealso: PetscViewerSocketOpen(), MatView(), VecView(), PetscViewerSocketPutReal(), PetscViewerSocketPutScalar(),
31: PETSC_VIEWER_SOCKET_, PETSC_VIEWER_SOCKET_WORLD, PETSC_VIEWER_SOCKET_SELF
32: @*/
33: int PetscViewerSocketPutScalar(PetscViewer viewer,int m,int n,PetscScalar *array)
34: {
35: PetscViewer_Socket *vmatlab = (PetscViewer_Socket*)viewer->data;
36: int ierr,t = vmatlab->port,type = DENSEREAL,value;
39: PetscBinaryWrite(t,&type,1,PETSC_INT,0);
40: PetscBinaryWrite(t,&m,1,PETSC_INT,0);
41: PetscBinaryWrite(t,&n,1,PETSC_INT,0);
42: #if !defined(PETSC_USE_COMPLEX)
43: value = 0;
44: #else
45: value = 1;
46: #endif
47: PetscBinaryWrite(t,&value,1,PETSC_INT,0);
48: PetscBinaryWrite(t,array,m*n,PETSC_SCALAR,0);
49: return(0);
50: }
52: #undef __FUNCT__
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: int PetscViewerSocketPutReal(PetscViewer viewer,int m,int n,PetscReal *array)
82: {
83: PetscViewer_Socket *vmatlab = (PetscViewer_Socket*)viewer->data;
84: int ierr,t = vmatlab->port,type = DENSEREAL,value;
87: PetscBinaryWrite(t,&type,1,PETSC_INT,0);
88: PetscBinaryWrite(t,&m,1,PETSC_INT,0);
89: PetscBinaryWrite(t,&n,1,PETSC_INT,0);
90: value = 0;
91: PetscBinaryWrite(t,&value,1,PETSC_INT,0);
92: PetscBinaryWrite(t,array,m*n,PETSC_REAL,0);
93: return(0);
94: }
97: #undef __FUNCT__
99: /*@C
100: PetscViewerSocketPutInt - Passes an integer array to a Socket PetscViewer.
102: Input Parameters:
103: + viewer - obtained from PetscViewerSocketOpen()
104: . m - number of rows of array
105: - array - the array stored in column ordering (matrix or vector data)
107: Level: advanced
109: Notes:
110: Most users should not call this routine, but instead should employ either
111: .vb
112: MatView(Mat matrix,PetscViewer viewer)
113: or
114: VecView(Vec vector,PetscViewer viewer)
115: .ve
117: Concepts: Matlab^sending data
118: Concepts: sockets^sending data
120: .seealso: PetscViewerSocketOpen(), MatView(), VecView(), PetscViewerSocketPutScalar(), PetscViewerSocketPutReal(),
121: PETSC_VIEWER_SOCKET_, PETSC_VIEWER_SOCKET_WORLD, PETSC_VIEWER_SOCKET_SELF
122: @*/
123: int PetscViewerSocketPutInt(PetscViewer viewer,int m,int *array)
124: {
125: PetscViewer_Socket *vmatlab = (PetscViewer_Socket*)viewer->data;
126: int ierr,t = vmatlab->port,type = DENSEINT;
129: PetscBinaryWrite(t,&type,1,PETSC_INT,0);
130: PetscBinaryWrite(t,&m,1,PETSC_INT,0);
131: PetscBinaryWrite(t,array,m,PETSC_INT,0);
132: return(0);
133: }