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: }