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