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