~ubuntu-branches/ubuntu/warty/petsc/warty

« back to all changes in this revision

Viewing changes to src/sys/src/viewer/impls/socket/matlab/receivedense.c.html

  • Committer: Bazaar Package Importer
  • Author(s): Adam C. Powell, IV
  • Date: 2004-06-07 13:41:43 UTC
  • mfrom: (1.1.1 upstream)
  • Revision ID: james.westby@ubuntu.com-20040607134143-92p586zrauvie0le
Tags: 2.2.0-2
* Upstream patch level 2.
* New PETSC_BOPT_EXTRA option for different BOPT and lib names, with _c++
  symlinks only for plain and single (closes: #249617).
* New DEBIAN_DIST=contrib option to link with hypre, parmetis (closes:
  #249619).
* Combined petsc-c and petsc-fortran substvars into petsc-compilers.
* Extra quote in -dev prerm eliminates "too many arguments" problem.

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
<center><a href="receivedense.c">Actual source code: receivedense.c</a></center><br>
 
2
 
 
3
<html>
 
4
<head>
 
5
<title></title>
 
6
<meta name="generator" content="c2html 0.9.4">
 
7
<meta name="date" content="2004-02-27T19:55:49+00:00">
 
8
</head>
 
9
 
 
10
<body bgcolor="#FFFFFF">
 
11
<pre width="80"><a name="line1">  1: </a><font color="#B22222">/*$Id: receivedense.c,v 1.15 2001/03/23 23:19:53 balay Exp $*/</font>
 
12
<a name="line2">  2: </a><font color="#B22222">/* </font>
 
13
<a name="line3">  3: </a><font color="#B22222">   This is part of the MatlabSockettool Package. It is called by </font>
 
14
<a name="line4">  4: </a><font color="#B22222"> the receive.mex4 Matlab program. </font>
 
15
<a name="line5">  5: </a><font color="#B22222">  </font>
 
16
<a name="line6">  6: </a><font color="#B22222">        Written by Barry Smith, bsmith@mcs.anl.gov 4/14/92</font>
 
17
<a name="line7">  7: </a><font color="#B22222">         Updated by Ridhard Katz, katz@ldeo.columbia.edu 9/28/03</font>
 
18
 
 
19
<a name="line9">  9: </a><font color="#B22222">  Since this is called from Matlab it cannot be compiled with C++.</font>
 
20
<a name="line10"> 10: </a><font color="#B22222">*/</font>
 
21
 
 
22
 
 
23
<a name="line15"> 15: </a><font color="#A020F0">#include &lt;stdio.h&gt;</font>
 
24
<a name="line16"> 16: </a> #include <A href="../../../../../../../include/petscsys.h.html">petscsys.h</A>
 
25
<a name="line17"> 17: </a><font color="#A020F0">#include </font><font color="#666666">"mex.h"</font><font color="#A020F0"></font>
 
26
<a name="line18"> 18: </a><strong><font color="#228B22">#define ERROR(a) {fprintf(stdout,</font><font color="#666666">"RECEIVE %s \n"</font><font color="#228B22">,a); return -1;}</font></strong>
 
27
<a name="line19"> 19: </a><font color="#B22222">/*-----------------------------------------------------------------*/</font>
 
28
<a name="line22"> 22: </a><strong><font color="#4169E1"><a name="ReceiveDenseMatrix"></a>int ReceiveDenseMatrix(mxArray *plhs[],int t)</font></strong>
 
29
<a name="line23"> 23: </a>{
 
30
<a name="line24"> 24: </a>  int    m,n,compx = 0,i;
 
31
<a name="line25"> 25: </a>
 
32
<a name="line26"> 26: </a>  <font color="#B22222">/* get <A href="../../../../../../../docs/manualpages/Sys/size.html#size">size</A> of matrix */</font>
 
33
<a name="line27"> 27: </a>  <font color="#4169E1">if</font> (<A href="../../../../../../../docs/manualpages/Sys/PetscBinaryRead.html#PetscBinaryRead">PetscBinaryRead</A>(t,&amp;m,1,PETSC_INT))   ERROR(<font color="#666666">"reading number columns"</font>);
 
34
<a name="line28"> 28: </a>  <font color="#4169E1">if</font> (<A href="../../../../../../../docs/manualpages/Sys/PetscBinaryRead.html#PetscBinaryRead">PetscBinaryRead</A>(t,&amp;n,1,PETSC_INT))   ERROR(<font color="#666666">"reading number rows"</font>);
 
35
<a name="line29"> 29: </a>  <font color="#4169E1">if</font> (<A href="../../../../../../../docs/manualpages/Sys/PetscBinaryRead.html#PetscBinaryRead">PetscBinaryRead</A>(t,&amp;compx,1,PETSC_INT))   ERROR(<font color="#666666">"reading if complex"</font>);
 
36
<a name="line30"> 30: </a>
 
37
<a name="line31"> 31: </a>  <font color="#B22222">/*allocate matrix */</font>
 
38
<a name="line32"> 32: </a>  plhs[0]  = mxCreateDoubleMatrix(m,n,compx);
 
39
<a name="line33"> 33: </a>  <font color="#B22222">/* read in matrix */</font>
 
40
<a name="line34"> 34: </a>  <font color="#4169E1">if</font> (!compx) {
 
41
<a name="line35"> 35: </a>    <font color="#4169E1">if</font> (<A href="../../../../../../../docs/manualpages/Sys/PetscBinaryRead.html#PetscBinaryRead">PetscBinaryRead</A>(t,mxGetPr(plhs[0]),n*m,PETSC_DOUBLE)) ERROR(<font color="#666666">"read dense matrix"</font>);
 
42
<a name="line36"> 36: </a>  } <font color="#4169E1">else</font> {
 
43
<a name="line37"> 37: </a>    <font color="#4169E1">for</font> (i=0; i&lt;n*m; i++) {
 
44
<a name="line38"> 38: </a>      <font color="#4169E1">if</font> (<A href="../../../../../../../docs/manualpages/Sys/PetscBinaryRead.html#PetscBinaryRead">PetscBinaryRead</A>(t,mxGetPr(plhs[0])+i,1,PETSC_DOUBLE))ERROR(<font color="#666666">"read dense matrix"</font>);
 
45
<a name="line39"> 39: </a>      <font color="#4169E1">if</font> (<A href="../../../../../../../docs/manualpages/Sys/PetscBinaryRead.html#PetscBinaryRead">PetscBinaryRead</A>(t,mxGetPi(plhs[0])+i,1,PETSC_DOUBLE))ERROR(<font color="#666666">"read dense matrix"</font>);
 
46
<a name="line40"> 40: </a>    }
 
47
<a name="line41"> 41: </a>  }
 
48
<a name="line42"> 42: </a>  <font color="#4169E1">return</font> 0;
 
49
<a name="line43"> 43: </a>}
 
50
 
 
51
<a name="line47"> 47: </a><strong><font color="#4169E1"><a name="ReceiveDenseIntMatrix"></a>int ReceiveDenseIntMatrix(mxArray *plhs[],int t)</font></strong>
 
52
<a name="line48"> 48: </a>{
 
53
<a name="line49"> 49: </a>  int    m,compx = 0,i,*array;
 
54
<a name="line50"> 50: </a>  double *values;
 
55
<a name="line51"> 51: </a>  int    ierr;
 
56
<a name="line52"> 52: </a>
 
57
<a name="line53"> 53: </a>  <font color="#B22222">/* get <A href="../../../../../../../docs/manualpages/Sys/size.html#size">size</A> of matrix */</font>
 
58
<a name="line54"> 54: </a>  <A href="../../../../../../../docs/manualpages/Sys/PetscBinaryRead.html#PetscBinaryRead">PetscBinaryRead</A>(t,&amp;m,1,PETSC_INT); <font color="#4169E1">if</font> (ierr) ERROR(<font color="#666666">"reading number columns"</font>);
 
59
<a name="line55"> 55: </a>
 
60
<a name="line56"> 56: </a>  <font color="#B22222">/*allocate matrix */</font>
 
61
<a name="line57"> 57: </a>  plhs[0] = mxCreateDoubleMatrix(m,1,mxREAL);
 
62
 
 
63
<a name="line59"> 59: </a>  <font color="#B22222">/* read in matrix */</font>
 
64
<a name="line60"> 60: </a>  array = (int*) malloc(m*<font color="#4169E1">sizeof</font>(int)); <font color="#4169E1">if</font> (!array) ERROR(<font color="#666666">"reading allocating space"</font>);
 
65
<a name="line61"> 61: </a>  <A href="../../../../../../../docs/manualpages/Sys/PetscBinaryRead.html#PetscBinaryRead">PetscBinaryRead</A>(t,array,m,PETSC_INT); <font color="#4169E1">if</font> (ierr) ERROR(<font color="#666666">"read dense matrix"</font>);
 
66
 
 
67
<a name="line63"> 63: </a>  values = mxGetPr(plhs[0]);
 
68
<a name="line64"> 64: </a>  <font color="#4169E1">for</font> (i =0; i&lt;m; i++) {
 
69
<a name="line65"> 65: </a>    values[i] = array[i];
 
70
<a name="line66"> 66: </a>  }
 
71
<a name="line67"> 67: </a>  free(array);
 
72
 
 
73
<a name="line69"> 69: </a>  <font color="#4169E1">return</font> 0;
 
74
<a name="line70"> 70: </a>}
 
75
<a name="line71"> 71: </a>
 
76
<a name="line72"> 72: </a>
 
77
</pre>
 
78
</body>
 
79
 
 
80
</html>