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