Actual source code: senddense.c
1: /* $Id: senddense.c,v 1.47 2001/04/10 19:34:04 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, n - number of rows and columns of array
11: - array - the array stored in Fortran 77 style (matrix or vector data)
13: Level: advanced
15: Notes:
16: Most users should not call this routine, but instead should employ
17: either
18: .vb
19: MatView(Mat matrix,PetscViewer viewer)
20: or
21: VecView(Vec vector,PetscViewer viewer)
22: .ve
24: Concepts: Matlab^sending data
25: Concepts: sockets^sending data
27: .seealso: PetscViewerSocketOpen(), MatView(), VecView(), PetscViewerSocketPutReal(), PetscViewerSocketPutScalar(),
28: PETSC_VIEWER_SOCKET_, PETSC_VIEWER_SOCKET_WORLD, PETSC_VIEWER_SOCKET_SELF
29: @*/
30: int PetscViewerSocketPutScalar(PetscViewer viewer,int m,int n,Scalar *array)
31: {
32: PetscViewer_Socket *vmatlab = (PetscViewer_Socket*)viewer->data;
33: int ierr,t = vmatlab->port,type = DENSEREAL,value;
36: PetscBinaryWrite(t,&type,1,PETSC_INT,0);
37: PetscBinaryWrite(t,&m,1,PETSC_INT,0);
38: PetscBinaryWrite(t,&n,1,PETSC_INT,0);
39: #if !defined(PETSC_USE_COMPLEX)
40: value = 0;
41: #else
42: value = 1;
43: #endif
44: PetscBinaryWrite(t,&value,1,PETSC_INT,0);
45: PetscBinaryWrite(t,array,m*n,PETSC_SCALAR,0);
46: return(0);
47: }
49: /*@C
50: PetscViewerSocketPutReal - Passes a double (or single) precision array to
51: a Matlab PetscViewer.
53: Input Parameters:
54: + viewer - obtained from PetscViewerSocketOpen()
55: . m, n - number of rows and columns of array
56: - array - the array stored in Fortran 77 style (matrix or vector data)
58: Level: advanced
60: Notes:
61: Most users should not call this routine, but instead should employ
62: either
63: .vb
64: MatView(Mat matrix,PetscViewer viewer)
65: or
66: VecView(Vec vector,PetscViewer viewer)
67: .ve
69: Concepts: Matlab^sending data
70: Concepts: sockets^sending data
72: .seealso: PetscViewerSocketOpen(), MatView(), VecView(), PetscViewerSocketPutInt(), PetscViewerSocketPutReal(),
73: PETSC_VIEWER_SOCKET_, PETSC_VIEWER_SOCKET_WORLD, PETSC_VIEWER_SOCKET_SELF
74: @*/
75: int PetscViewerSocketPutReal(PetscViewer viewer,int m,int n,PetscReal *array)
76: {
77: PetscViewer_Socket *vmatlab = (PetscViewer_Socket*)viewer->data;
78: int ierr,t = vmatlab->port,type = DENSEREAL,value;
81: PetscBinaryWrite(t,&type,1,PETSC_INT,0);
82: PetscBinaryWrite(t,&m,1,PETSC_INT,0);
83: PetscBinaryWrite(t,&n,1,PETSC_INT,0);
84: value = 0;
85: PetscBinaryWrite(t,&value,1,PETSC_INT,0);
86: PetscBinaryWrite(t,array,m*n,PETSC_REAL,0);
87: return(0);
88: }
91: /*@C
92: PetscViewerSocketPutInt - Passes an integer array to a Socket PetscViewer.
94: Input Parameters:
95: + viewer - obtained from PetscViewerSocketOpen()
96: . m - number of rows of array
97: - array - the array stored in Fortran 77 style (matrix or vector data)
99: Level: advanced
101: Notes:
102: Most users should not call this routine, but instead should employ either
103: .vb
104: MatView(Mat matrix,PetscViewer viewer)
105: or
106: VecView(Vec vector,PetscViewer viewer)
107: .ve
109: Concepts: Matlab^sending data
110: Concepts: sockets^sending data
112: .seealso: PetscViewerSocketOpen(), MatView(), VecView(), PetscViewerSocketPutScalar(), PetscViewerSocketPutReal(),
113: PETSC_VIEWER_SOCKET_, PETSC_VIEWER_SOCKET_WORLD, PETSC_VIEWER_SOCKET_SELF
114: @*/
115: int PetscViewerSocketPutInt(PetscViewer viewer,int m,int *array)
116: {
117: PetscViewer_Socket *vmatlab = (PetscViewer_Socket*)viewer->data;
118: int ierr,t = vmatlab->port,type = DENSEINT;
121: PetscBinaryWrite(t,&type,1,PETSC_INT,0);
122: PetscBinaryWrite(t,&m,1,PETSC_INT,0);
123: PetscBinaryWrite(t,array,m,PETSC_INT,0);
124: return(0);
125: }