<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
	<id>tag:old.nabble.com,2006:forum-4192</id>
	<title>Nabble - GNU Octave Repository</title>
	<updated>2009-11-09T15:28:33Z</updated>
	<link rel="self" type="application/atom+xml" href="http://old.nabble.com/GNU-Octave-Repository-f4192.xml" />
	<link rel="alternate" type="text/html" href="http://old.nabble.com/GNU-Octave-Repository-f4192.html" />
	<subtitle type="html">Central storage place for script and function files used with GNU Octave. GNU Octave Repository home is &lt;a href=&quot;http://sourceforge.net/projects/octave/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;here&lt;/a&gt;.</subtitle>
	
<entry>
	<id>tag:old.nabble.com,2006:post-26275663</id>
	<title>[nnet] added semplified version of radbas</title>
	<published>2009-11-09T15:28:33Z</published>
	<updated>2009-11-09T15:28:33Z</updated>
	<author>
		<name>Luca Favatella</name>
	</author>
	<content type="html">Hi.
&lt;br&gt;&lt;br&gt;&lt;br&gt;I added a semplified version of radbas to nnet package (see svn r6455).
&lt;br&gt;(I wrote this function because I need it at the University).
&lt;br&gt;&lt;br&gt;I also added it to INDEX.
&lt;br&gt;&lt;br&gt;&lt;br&gt;I hope this commit is ok.
&lt;br&gt;&lt;br&gt;&lt;br&gt;Cheers,
&lt;br&gt;Luca Favatella
&lt;br&gt;&lt;br&gt;------------------------------------------------------------------------------
&lt;br&gt;Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day 
&lt;br&gt;trial. Simplify your report design, integration and deployment - and focus on 
&lt;br&gt;what you do best, core application coding. Discover what's new with
&lt;br&gt;Crystal Reports now. &amp;nbsp;&lt;a href=&quot;http://p.sf.net/sfu/bobj-july&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://p.sf.net/sfu/bobj-july&lt;/a&gt;&lt;br&gt;_______________________________________________
&lt;br&gt;Octave-dev mailing list
&lt;br&gt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26275663&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;Octave-dev@...&lt;/a&gt;
&lt;br&gt;&lt;a href=&quot;https://lists.sourceforge.net/lists/listinfo/octave-dev&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://lists.sourceforge.net/lists/listinfo/octave-dev&lt;/a&gt;&lt;br&gt;&lt;p&gt;From forum: &lt;a href=&quot;http://old.nabble.com/octave-dev-f4193.html&quot; embed=&quot;fixTarget[4193]&quot; target=&quot;_top&quot; &gt;octave-dev&lt;/a&gt;&lt;/p&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/-nnet--added-semplified-version-of-radbas-tp26275663p26275663.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26273204</id>
	<title>Re: Access to Octave Wiki</title>
	<published>2009-11-09T12:33:15Z</published>
	<updated>2009-11-09T12:33:15Z</updated>
	<author>
		<name>Thomas Weber-8</name>
	</author>
	<content type="html">On Mon, Nov 09, 2009 at 12:29:29PM -0500, Iain Murray wrote:
&lt;br&gt;&amp;gt; As instructed on:
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &lt;a href=&quot;http://wiki.octave.org/wiki.pl?action=edit&amp;id=MostWanted&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://wiki.octave.org/wiki.pl?action=edit&amp;id=MostWanted&lt;/a&gt;&lt;br&gt;&amp;gt; I am emailing to ask for a password to edit the octave wiki.
&lt;br&gt;&lt;br&gt;Done.
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Thomas
&lt;br&gt;&lt;br&gt;------------------------------------------------------------------------------
&lt;br&gt;Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day 
&lt;br&gt;trial. Simplify your report design, integration and deployment - and focus on 
&lt;br&gt;what you do best, core application coding. Discover what's new with
&lt;br&gt;Crystal Reports now. &amp;nbsp;&lt;a href=&quot;http://p.sf.net/sfu/bobj-july&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://p.sf.net/sfu/bobj-july&lt;/a&gt;&lt;br&gt;_______________________________________________
&lt;br&gt;Octave-dev mailing list
&lt;br&gt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26273204&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;Octave-dev@...&lt;/a&gt;
&lt;br&gt;&lt;a href=&quot;https://lists.sourceforge.net/lists/listinfo/octave-dev&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://lists.sourceforge.net/lists/listinfo/octave-dev&lt;/a&gt;&lt;br&gt;&lt;p&gt;From forum: &lt;a href=&quot;http://old.nabble.com/octave-dev-f4193.html&quot; embed=&quot;fixTarget[4193]&quot; target=&quot;_top&quot; &gt;octave-dev&lt;/a&gt;&lt;/p&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/Access-to-Octave-Wiki-tp26272695p26273204.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26272695</id>
	<title>Access to Octave Wiki</title>
	<published>2009-11-09T09:29:29Z</published>
	<updated>2009-11-09T09:29:29Z</updated>
	<author>
		<name>Iain Murray-3</name>
	</author>
	<content type="html">As instructed on:
&lt;br&gt;&amp;nbsp; &amp;nbsp; &lt;a href=&quot;http://wiki.octave.org/wiki.pl?action=edit&amp;id=MostWanted&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://wiki.octave.org/wiki.pl?action=edit&amp;id=MostWanted&lt;/a&gt;&lt;br&gt;I am emailing to ask for a password to edit the octave wiki.
&lt;br&gt;&lt;br&gt;Thanks,
&lt;br&gt;Iain.
&lt;br&gt;&lt;br&gt;------------------------------------------------------------------------------
&lt;br&gt;Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day 
&lt;br&gt;trial. Simplify your report design, integration and deployment - and focus on 
&lt;br&gt;what you do best, core application coding. Discover what's new with
&lt;br&gt;Crystal Reports now. &amp;nbsp;&lt;a href=&quot;http://p.sf.net/sfu/bobj-july&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://p.sf.net/sfu/bobj-july&lt;/a&gt;&lt;br&gt;_______________________________________________
&lt;br&gt;Octave-dev mailing list
&lt;br&gt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26272695&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;Octave-dev@...&lt;/a&gt;
&lt;br&gt;&lt;a href=&quot;https://lists.sourceforge.net/lists/listinfo/octave-dev&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://lists.sourceforge.net/lists/listinfo/octave-dev&lt;/a&gt;&lt;br&gt;&lt;p&gt;From forum: &lt;a href=&quot;http://old.nabble.com/octave-dev-f4193.html&quot; embed=&quot;fixTarget[4193]&quot; target=&quot;_top&quot; &gt;octave-dev&lt;/a&gt;&lt;/p&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/Access-to-Octave-Wiki-tp26272695p26272695.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26252019</id>
	<title>Re: Octave 3.2+Octave forge with JHandles under Ubuntu</title>
	<published>2009-11-08T01:29:25Z</published>
	<updated>2009-11-08T01:29:25Z</updated>
	<author>
		<name>Søren Hauberg</name>
	</author>
	<content type="html">søn, 08 11 2009 kl. 09:55 +0100, skrev Emmanuel FARHI:
&lt;br&gt;&amp;gt; I've tried to complement this with the JHandles, but can not manage to
&lt;br&gt;&amp;gt; install it under Ubuntu (Jaunty nor Karmic). I have quite a few Java SDK
&lt;br&gt;&amp;gt; and JRE, but none seem to be effective, even specifying the JAVA_HOME
&lt;br&gt;&amp;gt; variable.
&lt;br&gt;&lt;br&gt;Do you have problems installing the 'java' package or the 'jhandles'
&lt;br&gt;package? My impression was that you really only needed to set JAVA_HOME
&lt;br&gt;when installing the 'java' package. I must admit, though, that I have
&lt;br&gt;never been a 'jhandles' user, so I might be mistaken.
&lt;br&gt;&lt;br&gt;&amp;gt; Do you plan to distribute octave-forge/jhandles .deb and .rpm packages for
&lt;br&gt;&amp;gt; the major Linux distros, e.g. Fedora and Ubuntu ? You have a Windows and
&lt;br&gt;&amp;gt; MacOSX installer, so why not Linux ?
&lt;br&gt;&lt;br&gt;In general it is believed that Linux packages should be handled by the
&lt;br&gt;distributions. Personally, I wouldn't object to a PPA for Ubuntu,
&lt;br&gt;setting up a build service for OpenSUSE, and similar for other
&lt;br&gt;distributions. This, however, needs manpower; something we are quite
&lt;br&gt;short on. So, I would encourage other people to work on such services,
&lt;br&gt;but I would not be able to help out due to lack of time.
&lt;br&gt;&lt;br&gt;Søren
&lt;br&gt;&lt;br&gt;&lt;br&gt;------------------------------------------------------------------------------
&lt;br&gt;Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day 
&lt;br&gt;trial. Simplify your report design, integration and deployment - and focus on 
&lt;br&gt;what you do best, core application coding. Discover what's new with
&lt;br&gt;Crystal Reports now. &amp;nbsp;&lt;a href=&quot;http://p.sf.net/sfu/bobj-july&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://p.sf.net/sfu/bobj-july&lt;/a&gt;&lt;br&gt;_______________________________________________
&lt;br&gt;Octave-dev mailing list
&lt;br&gt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26252019&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;Octave-dev@...&lt;/a&gt;
&lt;br&gt;&lt;a href=&quot;https://lists.sourceforge.net/lists/listinfo/octave-dev&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://lists.sourceforge.net/lists/listinfo/octave-dev&lt;/a&gt;&lt;br&gt;&lt;p&gt;From forum: &lt;a href=&quot;http://old.nabble.com/octave-dev-f4193.html&quot; embed=&quot;fixTarget[4193]&quot; target=&quot;_top&quot; &gt;octave-dev&lt;/a&gt;&lt;/p&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/Octave-3.2%2BOctave-forge-with-JHandles-under-Ubuntu-tp26251849p26252019.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26251849</id>
	<title>Octave 3.2+Octave forge with JHandles under Ubuntu</title>
	<published>2009-11-08T00:55:09Z</published>
	<updated>2009-11-08T00:55:09Z</updated>
	<author>
		<name>Farhi</name>
	</author>
	<content type="html">Hello Dear Octave dev team,
&lt;br&gt;&lt;br&gt;The octave 3.2 now has 100% compatibility support with Matlab objects.
&lt;br&gt;This is just great.
&lt;br&gt;I've tried to complement this with the JHandles, but can not manage to
&lt;br&gt;install it under Ubuntu (Jaunty nor Karmic). I have quite a few Java SDK
&lt;br&gt;and JRE, but none seem to be effective, even specifying the JAVA_HOME
&lt;br&gt;variable.
&lt;br&gt;&lt;br&gt;Do you plan to distribute octave-forge/jhandles .deb and .rpm packages for
&lt;br&gt;the major Linux distros, e.g. Fedora and Ubuntu ? You have a Windows and
&lt;br&gt;MacOSX installer, so why not Linux ?
&lt;br&gt;&lt;br&gt;Thanks a lot for your nice work.
&lt;br&gt;E. Farhi.
&lt;br&gt;&lt;br&gt;&lt;br&gt;-- 
&lt;br&gt;FARHI Emmanuel &amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26251849&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;farhi@...&lt;/a&gt;&amp;gt;
&lt;br&gt;Groupe DS/CS, ILL4/156, Tel 04 76 20 71 35
&lt;br&gt;ILL, Grenoble
&lt;br&gt;&lt;br&gt;------------------------------------------------------------------------------
&lt;br&gt;Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day 
&lt;br&gt;trial. Simplify your report design, integration and deployment - and focus on 
&lt;br&gt;what you do best, core application coding. Discover what's new with
&lt;br&gt;Crystal Reports now. &amp;nbsp;&lt;a href=&quot;http://p.sf.net/sfu/bobj-july&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://p.sf.net/sfu/bobj-july&lt;/a&gt;&lt;br&gt;_______________________________________________
&lt;br&gt;Octave-dev mailing list
&lt;br&gt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26251849&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;Octave-dev@...&lt;/a&gt;
&lt;br&gt;&lt;a href=&quot;https://lists.sourceforge.net/lists/listinfo/octave-dev&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://lists.sourceforge.net/lists/listinfo/octave-dev&lt;/a&gt;&lt;br&gt;&lt;p&gt;From forum: &lt;a href=&quot;http://old.nabble.com/octave-dev-f4193.html&quot; embed=&quot;fixTarget[4193]&quot; target=&quot;_top&quot; &gt;octave-dev&lt;/a&gt;&lt;/p&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/Octave-3.2%2BOctave-forge-with-JHandles-under-Ubuntu-tp26251849p26251849.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26242119</id>
	<title>Re: Octave for Windows problem</title>
	<published>2009-11-06T20:53:32Z</published>
	<updated>2009-11-06T20:53:32Z</updated>
	<author>
		<name>Tatsuro MATSUOKA-2</name>
	</author>
	<content type="html">Hello
&lt;br&gt;&lt;br&gt;I have mis-pasted.
&lt;br&gt;&lt;br&gt;&amp;gt; The description like the above (&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26242119&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;octave-dev@...&lt;/a&gt; ) is better to described in
&lt;br&gt;&amp;gt; startup
&lt;br&gt;&lt;br&gt;should be 
&lt;br&gt;&lt;br&gt;&amp;gt; The description like the above (PS1(&amp;quot;&amp;gt;&amp;gt;&amp;quot;) ) is better to described in
&lt;br&gt;&amp;gt; startup
&lt;br&gt;&lt;br&gt;&lt;br&gt;--- Tatsuro MATSUOKA wrote:
&lt;br&gt;&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt; Hello
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; --- David Bateman &amp;nbsp;wrote:
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; &amp;gt; Something like the command
&lt;br&gt;&amp;gt; &amp;gt; 
&lt;br&gt;&amp;gt; &amp;gt; PS1(&amp;quot;&amp;gt;&amp;gt;&amp;quot;)
&lt;br&gt;&amp;gt; &amp;gt; 
&lt;br&gt;&amp;gt; &amp;gt; might be what you are looking for
&lt;br&gt;&amp;gt; &amp;gt; 
&lt;br&gt;&amp;gt; &amp;gt; D.
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; The description like the above (&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26242119&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;octave-dev@...&lt;/a&gt; ) is better to described in
&lt;br&gt;&amp;gt; startup
&lt;br&gt;&amp;gt; files.
&lt;br&gt;&amp;gt; &amp;nbsp;
&lt;br&gt;&amp;gt; Please consult the octave manual '2.1.2 Startup Files'.
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; You can see '~/.octaverc' in the manual.
&lt;br&gt;&amp;gt; You can find where does '~' point to by
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; &amp;nbsp;&amp;gt; tilde_expand('~')
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; like
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; octave:3&amp;gt; tilde_expand('~')
&lt;br&gt;&amp;gt; ans = C:\Documents and Settings\Tatsu
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; In my case, I made a file '.octaverc' by a text editor and described
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; PS1('octave:\#&amp;gt; ')
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; Please also see '2.4.7 Customizing the Prompt' in the octave manual.
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; Regards
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; Tatsuro
&lt;br&gt;&amp;gt; &amp;nbsp;
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; --------------------------------------
&lt;br&gt;&amp;gt; GyaO! - Anime, Dramas, Movies, and Music videos [FREE]
&lt;br&gt;&amp;gt; &lt;a href=&quot;http://pr.mail.yahoo.co.jp/gyao/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://pr.mail.yahoo.co.jp/gyao/&lt;/a&gt;&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; ------------------------------------------------------------------------------
&lt;br&gt;&amp;gt; Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day 
&lt;br&gt;&amp;gt; trial. Simplify your report design, integration and deployment - and focus on 
&lt;br&gt;&amp;gt; what you do best, core application coding. Discover what's new with
&lt;br&gt;&amp;gt; Crystal Reports now. &amp;nbsp;&lt;a href=&quot;http://p.sf.net/sfu/bobj-july&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://p.sf.net/sfu/bobj-july&lt;/a&gt;&lt;br&gt;&amp;gt; _______________________________________________
&lt;br&gt;&amp;gt; Octave-dev mailing list
&lt;br&gt;&amp;gt; &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26242119&amp;i=2&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;Octave-dev@...&lt;/a&gt;
&lt;br&gt;&amp;gt; &lt;a href=&quot;https://lists.sourceforge.net/lists/listinfo/octave-dev&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://lists.sourceforge.net/lists/listinfo/octave-dev&lt;/a&gt;&lt;br&gt;&amp;gt; 
&lt;/div&gt;&lt;br&gt;&lt;br&gt;--------------------------------------
&lt;br&gt;GyaO! - Anime, Dramas, Movies, and Music videos [FREE]
&lt;br&gt;&lt;a href=&quot;http://pr.mail.yahoo.co.jp/gyao/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://pr.mail.yahoo.co.jp/gyao/&lt;/a&gt;&lt;br&gt;&lt;br&gt;------------------------------------------------------------------------------
&lt;br&gt;Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day 
&lt;br&gt;trial. Simplify your report design, integration and deployment - and focus on 
&lt;br&gt;what you do best, core application coding. Discover what's new with
&lt;br&gt;Crystal Reports now. &amp;nbsp;&lt;a href=&quot;http://p.sf.net/sfu/bobj-july&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://p.sf.net/sfu/bobj-july&lt;/a&gt;&lt;br&gt;_______________________________________________
&lt;br&gt;Octave-dev mailing list
&lt;br&gt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26242119&amp;i=3&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;Octave-dev@...&lt;/a&gt;
&lt;br&gt;&lt;a href=&quot;https://lists.sourceforge.net/lists/listinfo/octave-dev&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://lists.sourceforge.net/lists/listinfo/octave-dev&lt;/a&gt;&lt;br&gt;&lt;p&gt;From forum: &lt;a href=&quot;http://old.nabble.com/octave-dev-f4193.html&quot; embed=&quot;fixTarget[4193]&quot; target=&quot;_top&quot; &gt;octave-dev&lt;/a&gt;&lt;/p&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/Octave-for-Windows-problem-tp26236408p26242119.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26241950</id>
	<title>Re: Octave for Windows problem</title>
	<published>2009-11-06T20:01:37Z</published>
	<updated>2009-11-06T20:01:37Z</updated>
	<author>
		<name>Tatsuro MATSUOKA-2</name>
	</author>
	<content type="html">Hello
&lt;br&gt;&lt;br&gt;--- David Bateman &amp;nbsp;wrote:
&lt;br&gt;&lt;br&gt;&amp;gt; Something like the command
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; PS1(&amp;quot;&amp;gt;&amp;gt;&amp;quot;)
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; might be what you are looking for
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; D.
&lt;br&gt;&lt;br&gt;The description like the above (&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26241950&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;octave-dev@...&lt;/a&gt; ) is better to described in startup
&lt;br&gt;files.
&lt;br&gt;&amp;nbsp;
&lt;br&gt;Please consult the octave manual '2.1.2 Startup Files'.
&lt;br&gt;&lt;br&gt;You can see '~/.octaverc' in the manual.
&lt;br&gt;You can find where does '~' point to by
&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;gt; tilde_expand('~')
&lt;br&gt;&lt;br&gt;like
&lt;br&gt;&lt;br&gt;octave:3&amp;gt; tilde_expand('~')
&lt;br&gt;ans = C:\Documents and Settings\Tatsu
&lt;br&gt;&lt;br&gt;In my case, I made a file '.octaverc' by a text editor and described
&lt;br&gt;&lt;br&gt;PS1('octave:\#&amp;gt; ')
&lt;br&gt;&lt;br&gt;Please also see '2.4.7 Customizing the Prompt' in the octave manual.
&lt;br&gt;&lt;br&gt;Regards
&lt;br&gt;&lt;br&gt;Tatsuro
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&lt;br&gt;--------------------------------------
&lt;br&gt;GyaO! - Anime, Dramas, Movies, and Music videos [FREE]
&lt;br&gt;&lt;a href=&quot;http://pr.mail.yahoo.co.jp/gyao/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://pr.mail.yahoo.co.jp/gyao/&lt;/a&gt;&lt;br&gt;&lt;br&gt;------------------------------------------------------------------------------
&lt;br&gt;Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day 
&lt;br&gt;trial. Simplify your report design, integration and deployment - and focus on 
&lt;br&gt;what you do best, core application coding. Discover what's new with
&lt;br&gt;Crystal Reports now. &amp;nbsp;&lt;a href=&quot;http://p.sf.net/sfu/bobj-july&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://p.sf.net/sfu/bobj-july&lt;/a&gt;&lt;br&gt;_______________________________________________
&lt;br&gt;Octave-dev mailing list
&lt;br&gt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26241950&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;Octave-dev@...&lt;/a&gt;
&lt;br&gt;&lt;a href=&quot;https://lists.sourceforge.net/lists/listinfo/octave-dev&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://lists.sourceforge.net/lists/listinfo/octave-dev&lt;/a&gt;&lt;br&gt;&lt;p&gt;From forum: &lt;a href=&quot;http://old.nabble.com/octave-dev-f4193.html&quot; embed=&quot;fixTarget[4193]&quot; target=&quot;_top&quot; &gt;octave-dev&lt;/a&gt;&lt;/p&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/Octave-for-Windows-problem-tp26236408p26241950.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26241852</id>
	<title>Re: R:  Octave for Windows problem</title>
	<published>2009-11-06T19:36:46Z</published>
	<updated>2009-11-06T19:36:46Z</updated>
	<author>
		<name>Tatsuro MATSUOKA-2</name>
	</author>
	<content type="html">Hello
&lt;br&gt;&lt;br&gt;My way of writing in the previous post is a little bit too rough.
&lt;br&gt;&lt;br&gt;--- Tatsuro MATSUOKA wrote:
&lt;br&gt;&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt; Hello
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; --- Marco Atzeri &amp;nbsp;wrote:
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; &amp;gt; 
&lt;br&gt;&amp;gt; &amp;gt; 
&lt;br&gt;&amp;gt; &amp;gt; --- Ven 6/11/09, Rocco Orlando Rossi &amp;nbsp;ha scritto:
&lt;br&gt;&amp;gt; &amp;gt; 
&lt;br&gt;&amp;gt; &amp;gt; &amp;gt; Hi all.
&lt;br&gt;&amp;gt; &amp;gt; &amp;gt; 
&lt;br&gt;&amp;gt; &amp;gt; &amp;gt; I've just installed GNU Octave for Windows. It works
&lt;br&gt;&amp;gt; &amp;gt; &amp;gt; fine but I was wondering if it's at all possible to
&lt;br&gt;&amp;gt; &amp;gt; &amp;gt; remove or at least modify the appearance of the annoying
&lt;br&gt;&amp;gt; &amp;gt; &amp;gt; message that comes up after the result of each computation.
&lt;br&gt;&amp;gt; &amp;gt; &amp;gt; For instance:
&lt;br&gt;&amp;gt; &amp;gt; &amp;gt; 
&lt;br&gt;&amp;gt; &amp;gt; &amp;gt; 
&lt;br&gt;&amp;gt; &amp;gt; &amp;gt; octave-3.2.3.exe:1:C:\Octave\3.2.3_gcc4.4.0\bin
&lt;br&gt;&amp;gt; &amp;gt; &amp;gt; 
&lt;br&gt;&amp;gt; &amp;gt; &amp;gt; I just can't find a way to get rid of it!
&lt;br&gt;&amp;gt; &amp;gt; &amp;gt; 
&lt;br&gt;&amp;gt; &amp;gt; &amp;gt; Thank you.
&lt;br&gt;&amp;gt; &amp;gt; &amp;gt; 
&lt;br&gt;&amp;gt; &amp;gt; &amp;gt; Rocco Rossi
&lt;br&gt;&amp;gt; &amp;gt; 
&lt;br&gt;&amp;gt; &amp;gt; 1) this is not the Octave help mailing list. 
&lt;br&gt;&amp;gt; &amp;gt; For that see
&lt;br&gt;&amp;gt; &amp;gt; &lt;a href=&quot;https://www-old.cae.wisc.edu/mailman/listinfo/help-octave&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://www-old.cae.wisc.edu/mailman/listinfo/help-octave&lt;/a&gt;&lt;br&gt;&amp;gt; &amp;gt; This is for discussion about the development of octave
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; Really?
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; The question specific to octave on Cygwin may be discussed in the Cygwin ML.
&lt;br&gt;&amp;gt; Octave for windows is distributed from octave-forge page.
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; This is the same situation.
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; As an evidence: 
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; **************************
&lt;br&gt;&amp;gt; If you have questions regarding software downloaded from Octave-Forge, send a message to the
&lt;br&gt;&amp;gt; repository mailing list. 
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; If you have code to contribute, send a message to the repository mailing list or join the
&lt;br&gt;&amp;gt; development
&lt;br&gt;&amp;gt; team. 
&lt;br&gt;&amp;gt; *********************************
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; The above is described in the octave-forge top page.
&lt;/div&gt;&lt;br&gt;********************************
&lt;br&gt;&amp;gt; Octave for windows is distrbuted on the octave-forge project pafe but not octave itself.
&lt;br&gt;&amp;gt; Inquiry that is specific to octave for windows is recommend to discuss here but not at
&lt;br&gt;&amp;gt; octave-help 
&lt;br&gt;&amp;gt; list.
&lt;br&gt;&lt;br&gt;I correct the above to the below &amp;nbsp;
&lt;br&gt;&lt;br&gt;Octave for windows is distributed on the octave-forge project page but not octave itself.
&lt;br&gt;According to the description of the octave-forge top page, it is no problem that inquiries that are
&lt;br&gt;specific to the octave for windows are discussed on &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26241852&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;octave-dev@...&lt;/a&gt;. 
&lt;br&gt;It is the same as the topics that are specific to octave on Cygwin are discussed in the Cygwin ML.
&lt;br&gt;&lt;br&gt;Regards
&lt;br&gt;&lt;br&gt;Tatsuro
&lt;br&gt;&lt;br&gt;&lt;br&gt;--------------------------------------
&lt;br&gt;GyaO! - Anime, Dramas, Movies, and Music videos [FREE]
&lt;br&gt;&lt;a href=&quot;http://pr.mail.yahoo.co.jp/gyao/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://pr.mail.yahoo.co.jp/gyao/&lt;/a&gt;&lt;br&gt;&lt;br&gt;------------------------------------------------------------------------------
&lt;br&gt;Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day 
&lt;br&gt;trial. Simplify your report design, integration and deployment - and focus on 
&lt;br&gt;what you do best, core application coding. Discover what's new with
&lt;br&gt;Crystal Reports now. &amp;nbsp;&lt;a href=&quot;http://p.sf.net/sfu/bobj-july&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://p.sf.net/sfu/bobj-july&lt;/a&gt;&lt;br&gt;_______________________________________________
&lt;br&gt;Octave-dev mailing list
&lt;br&gt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26241852&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;Octave-dev@...&lt;/a&gt;
&lt;br&gt;&lt;a href=&quot;https://lists.sourceforge.net/lists/listinfo/octave-dev&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://lists.sourceforge.net/lists/listinfo/octave-dev&lt;/a&gt;&lt;br&gt;&lt;p&gt;From forum: &lt;a href=&quot;http://old.nabble.com/octave-dev-f4193.html&quot; embed=&quot;fixTarget[4193]&quot; target=&quot;_top&quot; &gt;octave-dev&lt;/a&gt;&lt;/p&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/Octave-for-Windows-problem-tp26236408p26241852.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26241082</id>
	<title>Re: R:  Octave for Windows problem</title>
	<published>2009-11-06T16:56:26Z</published>
	<updated>2009-11-06T16:56:26Z</updated>
	<author>
		<name>Tatsuro MATSUOKA-2</name>
	</author>
	<content type="html">Hello
&lt;br&gt;&lt;br&gt;--- Marco Atzeri &amp;nbsp;wrote:
&lt;br&gt;&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; --- Ven 6/11/09, Rocco Orlando Rossi &amp;nbsp;ha scritto:
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; &amp;gt; Hi all.
&lt;br&gt;&amp;gt; &amp;gt; 
&lt;br&gt;&amp;gt; &amp;gt; I've just installed GNU Octave for Windows. It works
&lt;br&gt;&amp;gt; &amp;gt; fine but I was wondering if it's at all possible to
&lt;br&gt;&amp;gt; &amp;gt; remove or at least modify the appearance of the annoying
&lt;br&gt;&amp;gt; &amp;gt; message that comes up after the result of each computation.
&lt;br&gt;&amp;gt; &amp;gt; For instance:
&lt;br&gt;&amp;gt; &amp;gt; 
&lt;br&gt;&amp;gt; &amp;gt; 
&lt;br&gt;&amp;gt; &amp;gt; octave-3.2.3.exe:1:C:\Octave\3.2.3_gcc4.4.0\bin
&lt;br&gt;&amp;gt; &amp;gt; 
&lt;br&gt;&amp;gt; &amp;gt; I just can't find a way to get rid of it!
&lt;br&gt;&amp;gt; &amp;gt; 
&lt;br&gt;&amp;gt; &amp;gt; Thank you.
&lt;br&gt;&amp;gt; &amp;gt; 
&lt;br&gt;&amp;gt; &amp;gt; Rocco Rossi
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; 1) this is not the Octave help mailing list. 
&lt;br&gt;&amp;gt; For that see
&lt;br&gt;&amp;gt; &lt;a href=&quot;https://www-old.cae.wisc.edu/mailman/listinfo/help-octave&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://www-old.cae.wisc.edu/mailman/listinfo/help-octave&lt;/a&gt;&lt;br&gt;&amp;gt; This is for discussion about the development of octave
&lt;/div&gt;&lt;br&gt;Really?
&lt;br&gt;&lt;br&gt;The question specific to octave on Cygwin may be discussed in the Cygwin ML.
&lt;br&gt;Octave for windows is distributed from octave-forge page.
&lt;br&gt;&lt;br&gt;This is the same situation.
&lt;br&gt;&lt;br&gt;As an evidence: 
&lt;br&gt;&lt;br&gt;**************************
&lt;br&gt;If you have questions regarding software downloaded from Octave-Forge, send a message to the
&lt;br&gt;repository mailing list. 
&lt;br&gt;&lt;br&gt;If you have code to contribute, send a message to the repository mailing list or join the development
&lt;br&gt;team. 
&lt;br&gt;*********************************
&lt;br&gt;&lt;br&gt;The above is described in the octave-forge top page.
&lt;br&gt;&lt;br&gt;Octave for windows is distrbuted on the octave-forge project pafe but not octave itself.
&lt;br&gt;Inquiry that is specific to octave for windows is recommend to discuss here but not at octave-help 
&lt;br&gt;list.
&lt;br&gt;&lt;br&gt;Regards
&lt;br&gt;&lt;br&gt;Tatsuro
&lt;br&gt;&lt;br&gt;&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt; 2) see &amp;quot;help PS1&amp;quot;
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; Regards
&lt;br&gt;&amp;gt; Marco
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; 
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; ------------------------------------------------------------------------------
&lt;br&gt;&amp;gt; Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day 
&lt;br&gt;&amp;gt; trial. Simplify your report design, integration and deployment - and focus on 
&lt;br&gt;&amp;gt; what you do best, core application coding. Discover what's new with
&lt;br&gt;&amp;gt; Crystal Reports now. &amp;nbsp;&lt;a href=&quot;http://p.sf.net/sfu/bobj-july&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://p.sf.net/sfu/bobj-july&lt;/a&gt;&lt;br&gt;&amp;gt; _______________________________________________
&lt;br&gt;&amp;gt; Octave-dev mailing list
&lt;br&gt;&amp;gt; &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26241082&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;Octave-dev@...&lt;/a&gt;
&lt;br&gt;&amp;gt; &lt;a href=&quot;https://lists.sourceforge.net/lists/listinfo/octave-dev&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://lists.sourceforge.net/lists/listinfo/octave-dev&lt;/a&gt;&lt;br&gt;&amp;gt; 
&lt;/div&gt;&lt;br&gt;&lt;br&gt;--------------------------------------
&lt;br&gt;GyaO! - Anime, Dramas, Movies, and Music videos [FREE]
&lt;br&gt;&lt;a href=&quot;http://pr.mail.yahoo.co.jp/gyao/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://pr.mail.yahoo.co.jp/gyao/&lt;/a&gt;&lt;br&gt;&lt;br&gt;------------------------------------------------------------------------------
&lt;br&gt;Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day 
&lt;br&gt;trial. Simplify your report design, integration and deployment - and focus on 
&lt;br&gt;what you do best, core application coding. Discover what's new with
&lt;br&gt;Crystal Reports now. &amp;nbsp;&lt;a href=&quot;http://p.sf.net/sfu/bobj-july&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://p.sf.net/sfu/bobj-july&lt;/a&gt;&lt;br&gt;_______________________________________________
&lt;br&gt;Octave-dev mailing list
&lt;br&gt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26241082&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;Octave-dev@...&lt;/a&gt;
&lt;br&gt;&lt;a href=&quot;https://lists.sourceforge.net/lists/listinfo/octave-dev&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://lists.sourceforge.net/lists/listinfo/octave-dev&lt;/a&gt;&lt;br&gt;&lt;p&gt;From forum: &lt;a href=&quot;http://old.nabble.com/octave-dev-f4193.html&quot; embed=&quot;fixTarget[4193]&quot; target=&quot;_top&quot; &gt;octave-dev&lt;/a&gt;&lt;/p&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/Octave-for-Windows-problem-tp26236408p26241082.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26238873</id>
	<title>Re: Contribution to Octave-forge with a simple Open-MPI Package</title>
	<published>2009-11-06T12:31:16Z</published>
	<updated>2009-11-06T12:31:16Z</updated>
	<author>
		<name>Søren Hauberg</name>
	</author>
	<content type="html">Hi,
&lt;br&gt;&lt;br&gt;fre, 06 11 2009 kl. 14:04 +0000, skrev Riccardo Corradini:
&lt;br&gt;&amp;gt; I would inform that my account for sourceforge is
&lt;br&gt;&amp;gt; &lt;a href=&quot;http://sourceforge.net/users/rikcorradini&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://sourceforge.net/users/rikcorradini&lt;/a&gt;&lt;br&gt;&lt;br&gt;I've added you as a developer.
&lt;br&gt;&lt;br&gt;&amp;gt; Now I have just to find out the solution for uploading the package
&lt;br&gt;&amp;gt; because my svn doesn't work
&lt;br&gt;&amp;gt; svn co
&lt;br&gt;&lt;a href=&quot;https://octave.svn.sourceforge.net/svnroot/octave/trunk/octave-forge&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://octave.svn.sourceforge.net/svnroot/octave/trunk/octave-forge&lt;/a&gt;&lt;br&gt;&amp;gt; svn: OPTIONS di
&lt;br&gt;'&lt;a href=&quot;https://octave.svn.sourceforge.net/svnroot/octave/trunk/octave-forge':&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://octave.svn.sourceforge.net/svnroot/octave/trunk/octave-forge':&lt;/a&gt;&lt;br&gt;&amp;gt; I I could not connect to the server
&lt;br&gt;(&lt;a href=&quot;https://octave.svn.sourceforge.net&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://octave.svn.sourceforge.net&lt;/a&gt;)
&lt;br&gt;&lt;br&gt;&amp;gt; But I could &amp;nbsp;connect &amp;nbsp;my browser.
&lt;br&gt;&amp;gt; Is it possible to use ftp or something else similar?
&lt;br&gt;&lt;br&gt;I don't know what could be the cause of this error. Perhaps just try
&lt;br&gt;again later. If you still can't connect, then I guess we'll have to
&lt;br&gt;investigate some more.
&lt;br&gt;&lt;br&gt;Søren
&lt;br&gt;&lt;br&gt;&lt;br&gt;------------------------------------------------------------------------------
&lt;br&gt;Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day 
&lt;br&gt;trial. Simplify your report design, integration and deployment - and focus on 
&lt;br&gt;what you do best, core application coding. Discover what's new with
&lt;br&gt;Crystal Reports now. &amp;nbsp;&lt;a href=&quot;http://p.sf.net/sfu/bobj-july&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://p.sf.net/sfu/bobj-july&lt;/a&gt;&lt;br&gt;_______________________________________________
&lt;br&gt;Octave-dev mailing list
&lt;br&gt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26238873&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;Octave-dev@...&lt;/a&gt;
&lt;br&gt;&lt;a href=&quot;https://lists.sourceforge.net/lists/listinfo/octave-dev&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://lists.sourceforge.net/lists/listinfo/octave-dev&lt;/a&gt;&lt;br&gt;&lt;p&gt;From forum: &lt;a href=&quot;http://old.nabble.com/octave-dev-f4193.html&quot; embed=&quot;fixTarget[4193]&quot; target=&quot;_top&quot; &gt;octave-dev&lt;/a&gt;&lt;/p&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/Contribution-to-Octave-forge-with-a-simple-Open-MPI-Package-tp26180209p26238873.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26236988</id>
	<title>R:  Octave for Windows problem</title>
	<published>2009-11-06T10:57:03Z</published>
	<updated>2009-11-06T10:57:03Z</updated>
	<author>
		<name>Marco atzeri-3</name>
	</author>
	<content type="html">&lt;br&gt;&lt;br&gt;--- Ven 6/11/09, Rocco Orlando Rossi &amp;nbsp;ha scritto:
&lt;br&gt;&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt; Hi all.
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; I've just installed GNU Octave for Windows. It works
&lt;br&gt;&amp;gt; fine but I was wondering if it's at all possible to
&lt;br&gt;&amp;gt; remove or at least modify the appearance of the annoying
&lt;br&gt;&amp;gt; message that comes up after the result of each computation.
&lt;br&gt;&amp;gt; For instance:
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; octave-3.2.3.exe:1:C:\Octave\3.2.3_gcc4.4.0\bin
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; I just can't find a way to get rid of it!
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; Thank you.
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; Rocco Rossi
&lt;/div&gt;&lt;br&gt;1) this is not the Octave help mailing list. 
&lt;br&gt;For that see
&lt;br&gt;&lt;a href=&quot;https://www-old.cae.wisc.edu/mailman/listinfo/help-octave&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://www-old.cae.wisc.edu/mailman/listinfo/help-octave&lt;/a&gt;&lt;br&gt;This is for discussion about the development of octave
&lt;br&gt;&lt;br&gt;2) see &amp;quot;help PS1&amp;quot;
&lt;br&gt;&lt;br&gt;Regards
&lt;br&gt;Marco
&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; 
&lt;br&gt;&lt;br&gt;------------------------------------------------------------------------------
&lt;br&gt;Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day 
&lt;br&gt;trial. Simplify your report design, integration and deployment - and focus on 
&lt;br&gt;what you do best, core application coding. Discover what's new with
&lt;br&gt;Crystal Reports now. &amp;nbsp;&lt;a href=&quot;http://p.sf.net/sfu/bobj-july&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://p.sf.net/sfu/bobj-july&lt;/a&gt;&lt;br&gt;_______________________________________________
&lt;br&gt;Octave-dev mailing list
&lt;br&gt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26236988&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;Octave-dev@...&lt;/a&gt;
&lt;br&gt;&lt;a href=&quot;https://lists.sourceforge.net/lists/listinfo/octave-dev&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://lists.sourceforge.net/lists/listinfo/octave-dev&lt;/a&gt;&lt;br&gt;&lt;p&gt;From forum: &lt;a href=&quot;http://old.nabble.com/octave-dev-f4193.html&quot; embed=&quot;fixTarget[4193]&quot; target=&quot;_top&quot; &gt;octave-dev&lt;/a&gt;&lt;/p&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/Octave-for-Windows-problem-tp26236408p26236988.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26236790</id>
	<title>Re: Octave for Windows problem</title>
	<published>2009-11-06T10:29:58Z</published>
	<updated>2009-11-06T10:29:58Z</updated>
	<author>
		<name>dbateman</name>
	</author>
	<content type="html">Something like the command
&lt;br&gt;&lt;br&gt;PS1(&amp;quot;&amp;gt;&amp;gt;&amp;quot;)
&lt;br&gt;&lt;br&gt;might be what you are looking for
&lt;br&gt;&lt;br&gt;D.
&lt;br&gt;&lt;br&gt;&lt;br&gt;Rocco Orlando Rossi wrote:
&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt; Hi all.
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; I've just installed GNU Octave for Windows. It works fine but I was
&lt;br&gt;&amp;gt; wondering if it's at all possible to remove or at least modify the
&lt;br&gt;&amp;gt; appearance of the annoying message that comes up after the result of each
&lt;br&gt;&amp;gt; computation. For instance:
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; octave-3.2.3.exe:1:C:\Octave\3.2.3_gcc4.4.0\bin
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; I just can't find a way to get rid of it!
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Thank you.
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Rocco Rossi
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; 
&lt;br&gt;&amp;gt; ------------------------------------------------------------------------
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; ------------------------------------------------------------------------------
&lt;br&gt;&amp;gt; Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day 
&lt;br&gt;&amp;gt; trial. Simplify your report design, integration and deployment - and focus on 
&lt;br&gt;&amp;gt; what you do best, core application coding. Discover what's new with
&lt;br&gt;&amp;gt; Crystal Reports now. &amp;nbsp;&lt;a href=&quot;http://p.sf.net/sfu/bobj-july&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://p.sf.net/sfu/bobj-july&lt;/a&gt;&lt;br&gt;&amp;gt; ------------------------------------------------------------------------
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; _______________________________________________
&lt;br&gt;&amp;gt; Octave-dev mailing list
&lt;br&gt;&amp;gt; &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26236790&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;Octave-dev@...&lt;/a&gt;
&lt;br&gt;&amp;gt; &lt;a href=&quot;https://lists.sourceforge.net/lists/listinfo/octave-dev&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://lists.sourceforge.net/lists/listinfo/octave-dev&lt;/a&gt;&lt;br&gt;&amp;gt; &amp;nbsp; 
&lt;/div&gt;&lt;br&gt;&lt;br&gt;-- 
&lt;br&gt;David Bateman &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26236790&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;dbateman@...&lt;/a&gt;
&lt;br&gt;35 rue Gambetta &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+33 1 46 04 02 18 (Home)
&lt;br&gt;92100 Boulogne-Billancourt FRANCE &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+33 6 72 01 06 33 (Mob)
&lt;br&gt;&lt;br&gt;&lt;br&gt;------------------------------------------------------------------------------
&lt;br&gt;Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day 
&lt;br&gt;trial. Simplify your report design, integration and deployment - and focus on 
&lt;br&gt;what you do best, core application coding. Discover what's new with
&lt;br&gt;Crystal Reports now. &amp;nbsp;&lt;a href=&quot;http://p.sf.net/sfu/bobj-july&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://p.sf.net/sfu/bobj-july&lt;/a&gt;&lt;br&gt;_______________________________________________
&lt;br&gt;Octave-dev mailing list
&lt;br&gt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26236790&amp;i=2&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;Octave-dev@...&lt;/a&gt;
&lt;br&gt;&lt;a href=&quot;https://lists.sourceforge.net/lists/listinfo/octave-dev&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://lists.sourceforge.net/lists/listinfo/octave-dev&lt;/a&gt;&lt;br&gt;&lt;p&gt;From forum: &lt;a href=&quot;http://old.nabble.com/octave-dev-f4193.html&quot; embed=&quot;fixTarget[4193]&quot; target=&quot;_top&quot; &gt;octave-dev&lt;/a&gt;&lt;/p&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/Octave-for-Windows-problem-tp26236408p26236790.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26233575</id>
	<title>writing ncdf file with octcdf</title>
	<published>2009-11-06T07:13:55Z</published>
	<updated>2009-11-06T07:13:55Z</updated>
	<author>
		<name>Claudio Belotti-3</name>
	</author>
	<content type="html">hi,
&lt;br&gt;I'm unable to write values to a netcdf variable
&lt;br&gt;as described in example_netcdf
&lt;br&gt;&lt;a href=&quot;http://octave.svn.sourceforge.net/viewvc/octave/trunk/octave-forge/main/octcdf/inst/example_netcdf.m?revision=HEAD&amp;content-type=text/plain&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://octave.svn.sourceforge.net/viewvc/octave/trunk/octave-forge/main/octcdf/inst/example_netcdf.m?revision=HEAD&amp;content-type=text/plain&lt;/a&gt;&lt;br&gt;&lt;br&gt;nc{'longitude'}(:) = longitude;
&lt;br&gt;error: a cs-list cannot be further indexed
&lt;br&gt;&lt;br&gt;GNU Octave, version 3.2.3
&lt;br&gt;octcdf-1.0.13
&lt;br&gt;&lt;br&gt;thanks
&lt;br&gt;Claudio
&lt;br&gt;&lt;br&gt;------------------------------------------------------------------------------
&lt;br&gt;Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day 
&lt;br&gt;trial. Simplify your report design, integration and deployment - and focus on 
&lt;br&gt;what you do best, core application coding. Discover what's new with
&lt;br&gt;Crystal Reports now. &amp;nbsp;&lt;a href=&quot;http://p.sf.net/sfu/bobj-july&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://p.sf.net/sfu/bobj-july&lt;/a&gt;&lt;br&gt;_______________________________________________
&lt;br&gt;Octave-dev mailing list
&lt;br&gt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26233575&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;Octave-dev@...&lt;/a&gt;
&lt;br&gt;&lt;a href=&quot;https://lists.sourceforge.net/lists/listinfo/octave-dev&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://lists.sourceforge.net/lists/listinfo/octave-dev&lt;/a&gt;&lt;br&gt;&lt;p&gt;From forum: &lt;a href=&quot;http://old.nabble.com/octave-dev-f4193.html&quot; embed=&quot;fixTarget[4193]&quot; target=&quot;_top&quot; &gt;octave-dev&lt;/a&gt;&lt;/p&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/writing-ncdf-file-with-octcdf-tp26233575p26233575.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26232542</id>
	<title>Re: Contribution to Octave-forge with a simple Open-MPI Package</title>
	<published>2009-11-06T06:04:18Z</published>
	<updated>2009-11-06T06:04:18Z</updated>
	<author>
		<name>Riccardo Corradini</name>
	</author>
	<content type="html">&lt;table cellspacing=&quot;0&quot; cellpadding=&quot;0&quot; border=&quot;0&quot;&gt;&lt;tr&gt;&lt;td valign=&quot;top&quot; style=&quot;font: inherit;&quot;&gt;Søren,&lt;br&gt;I would inform that my account for sourceforge is&lt;br&gt;http://sourceforge.net/users/rikcorradini&lt;br&gt;Now I have just to find out the solution for uploading the package&lt;br&gt;because my svn doesn't work&lt;br&gt;svn co https://octave.svn.sourceforge.net/svnroot/octave/trunk/octave-forge&lt;br&gt;svn: OPTIONS di 'https://octave.svn.sourceforge.net/svnroot/octave/trunk/octave-forge': I I could not connect to the server (https://octave.svn.sourceforge.net)&lt;br&gt;&lt;br&gt;But I could&amp;nbsp; connect&amp;nbsp; my browser.&lt;br&gt;Is it possible to use ftp or something else similar?&lt;br&gt;&lt;br&gt;Thanks a lot&lt;br&gt;Riccardo &lt;br&gt;&lt;br&gt;&lt;br&gt;--- &lt;b&gt;Gio 5/11/09, Jaroslav Hajek &lt;i&gt;&amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26232542&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;highegg@...&lt;/a&gt;&amp;gt;&lt;/i&gt;&lt;/b&gt; ha scritto:&lt;br&gt;&lt;blockquote style=&quot;border-left: 2px solid rgb(16, 16, 255); margin-left: 5px; padding-left: 5px;&quot;&gt;&lt;br&gt;Da: Jaroslav Hajek &amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26232542&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;highegg@...&lt;/a&gt;&amp;gt;&lt;br&gt;Oggetto: Re: [OctDev] Contribution
 to Octave-forge with a simple Open-MPI  Package&lt;br&gt;A: &quot;Riccardo Corradini&quot; &amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26232542&amp;i=2&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;riccardocorradini@...&lt;/a&gt;&amp;gt;&lt;br&gt;Cc: &quot;Søren Hauberg&quot; &amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26232542&amp;i=3&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;soren@...&lt;/a&gt;&amp;gt;, &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26232542&amp;i=4&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;octave-dev@...&lt;/a&gt;&lt;br&gt;Data: Giovedì 5 novembre 2009, 21:34&lt;br&gt;&lt;br&gt;&lt;div id=&quot;yiv159169001&quot;&gt;&lt;br&gt;&lt;br&gt;&lt;div class=&quot;gmail_quote&quot;&gt;On Wed, Nov 4, 2009 at 4:49 PM, Riccardo Corradini &lt;span dir=&quot;ltr&quot;&gt;&amp;lt;&lt;a rel=&quot;nofollow&quot; ymailto=&quot;mailto:riccardocorradini@yahoo.it&quot; target=&quot;_blank&quot; href=&quot;/mc/compose?to=riccardocorradini@yahoo.it&quot;&gt;riccardocorradini@...&lt;/a&gt;&amp;gt;&lt;/span&gt; wrote:&lt;br&gt;&lt;blockquote class=&quot;gmail_quote&quot; style=&quot;border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;&quot;&gt;
&lt;table border=&quot;0&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot;&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style=&quot;font-family: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; font-size: inherit; line-height: inherit; font-size-adjust: inherit; font-stretch: inherit;&quot; valign=&quot;top&quot;&gt;
Hi Søren,&lt;br&gt;thanks for your quick reply.&lt;br&gt;The code is general-purpose, but as I told you I would love to use it for econometrics.&lt;br&gt;So the first step will be to install the following tarball from&lt;br&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://www.open-mpi.org/software/ompi/v1.3/downloads/openmpi-1.3.3.tar.bz2&quot;&gt;http://www.open-mpi.org/software/ompi/v1.3/downloads/openmpi-1.3.3.tar.bz2&lt;/a&gt;&lt;br&gt;
possibly in a multi-core computer to run my simple examples&lt;br&gt;and configure it for instance in the following way (/home/user is your $HOME)&lt;br&gt;./configure --enable-mpirun-prefix-by-default --enable-heterogeneous --prefix=/home/user/openmpi-1.3.3/ --enable-static&lt;br&gt;
&lt;br&gt;and modify .bashrc in your home &lt;br&gt;&amp;nbsp;OMPIBIN=`$ompi_info -path&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; bindir&amp;nbsp; -parsable | cut -d: -f3`&lt;br&gt;&amp;nbsp;OMPILIB=`$ompi_info -path&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; libdir&amp;nbsp; -parsable | cut -d: -f3`&lt;br&gt;&amp;nbsp;OMPISCD=`$ompi_info -path sysconfdir&amp;nbsp; -parsable | cut -d:
 -f3`&lt;br&gt;&lt;br&gt;&amp;nbsp;OSCBIN=~/oompi-1.0.4/bin &lt;br&gt;&lt;br&gt;export&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; PATH=$OMPIBIN:$PATH&lt;br&gt;export&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; PATH=$OSCBIN:$PATH&lt;br&gt;export LD_LIBRARY_PATH=:$OMPILIB:$LD_LIBRARY_PATH&lt;br&gt;&lt;br&gt;unset&amp;nbsp; ompi_info OMPIBIN OMPILIB OMPISCD OSCBIN&lt;br&gt;
&lt;br&gt;After this type in a terminal mpiCC --showme&lt;br&gt;In my case I will have something like&lt;br&gt;&lt;br&gt;g++ -I/home/user/openmpi-1.3.3/include -pthread -L/home/user/openmpi-1.3.3/lib -lmpi_cxx -lmpi -lopen-rte -lopen-pal -ldl -Wl,--export-dynamic -lnsl -lutil -lm -ldl&lt;br&gt;
&lt;br&gt;This will be useful for mkoctfile&lt;br&gt;&lt;br&gt;Now I will include the basic functions&lt;br&gt;&lt;br&gt;// mkoctfile -I/home/corradin/openmpi-1.3.3/include -lpthread -L/home/corradin/openmpi-1.3.3/lib -lmpi_cxx -lmpi -lopen-rte -lopen-pal -ldl -lnsl -lutil -lm -ldl MPI_Init.cc&lt;br&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br&gt;&lt;/blockquote&gt;&lt;/div&gt;&lt;br&gt;This looks good. Do I get it correctly that it is not necessary to relink Octave? I'd suggest you create the package on OctaveForge, then others will be able to try it and contribute.&lt;br&gt;
&lt;br&gt;regards&lt;br&gt;&lt;br&gt;-- &lt;br&gt;RNDr. Jaroslav Hajek&lt;br&gt;computing expert &amp;amp; GNU Octave developer&lt;br&gt;Aeronautical Research and Test Institute (VZLU)&lt;br&gt;Prague, Czech Republic&lt;br&gt;url: &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://www.highegg.matfyz.cz&quot;&gt;www.highegg.matfyz.cz&lt;/a&gt;&lt;br&gt;

&lt;/div&gt;&lt;/blockquote&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br&gt;



   &lt;br /&gt;------------------------------------------------------------------------------
&lt;br&gt;Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day 
&lt;br&gt;trial. Simplify your report design, integration and deployment - and focus on 
&lt;br&gt;what you do best, core application coding. Discover what's new with
&lt;br&gt;Crystal Reports now. &amp;nbsp;&lt;a href=&quot;http://p.sf.net/sfu/bobj-july&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://p.sf.net/sfu/bobj-july&lt;/a&gt;&lt;br /&gt;_______________________________________________
&lt;br&gt;Octave-dev mailing list
&lt;br&gt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26232542&amp;i=5&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;Octave-dev@...&lt;/a&gt;
&lt;br&gt;&lt;a href=&quot;https://lists.sourceforge.net/lists/listinfo/octave-dev&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://lists.sourceforge.net/lists/listinfo/octave-dev&lt;/a&gt;&lt;br&gt;&lt;p&gt;From forum: &lt;a href=&quot;http://old.nabble.com/octave-dev-f4193.html&quot; embed=&quot;fixTarget[4193]&quot; target=&quot;_top&quot; &gt;octave-dev&lt;/a&gt;&lt;/p&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/Contribution-to-Octave-forge-with-a-simple-Open-MPI-Package-tp26180209p26232542.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26236408</id>
	<title>Octave for Windows problem</title>
	<published>2009-11-06T05:41:36Z</published>
	<updated>2009-11-06T05:41:36Z</updated>
	<author>
		<name>Rock-15</name>
	</author>
	<content type="html">Hi all.&lt;br&gt;&lt;br&gt;I&amp;#39;ve just installed GNU Octave for Windows. It works fine but I was wondering if it&amp;#39;s at all possible to remove or at least modify the appearance of the annoying message that comes up after the result of each computation. For instance:&lt;br&gt;
&lt;br&gt;octave-3.2.3.exe:1:C:\Octave\3.2.3_gcc4.4.0\bin&lt;br&gt;&lt;br&gt;I just can&amp;#39;t find a way to get rid of it!&lt;br&gt;&lt;br&gt;Thank you.&lt;br&gt;&lt;br&gt;Rocco Rossi&lt;br&gt;
&lt;br /&gt;------------------------------------------------------------------------------
&lt;br&gt;Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day 
&lt;br&gt;trial. Simplify your report design, integration and deployment - and focus on 
&lt;br&gt;what you do best, core application coding. Discover what's new with
&lt;br&gt;Crystal Reports now. &amp;nbsp;&lt;a href=&quot;http://p.sf.net/sfu/bobj-july&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://p.sf.net/sfu/bobj-july&lt;/a&gt;&lt;br /&gt;_______________________________________________
&lt;br&gt;Octave-dev mailing list
&lt;br&gt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26236408&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;Octave-dev@...&lt;/a&gt;
&lt;br&gt;&lt;a href=&quot;https://lists.sourceforge.net/lists/listinfo/octave-dev&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://lists.sourceforge.net/lists/listinfo/octave-dev&lt;/a&gt;&lt;br&gt;&lt;p&gt;From forum: &lt;a href=&quot;http://old.nabble.com/octave-dev-f4193.html&quot; embed=&quot;fixTarget[4193]&quot; target=&quot;_top&quot; &gt;octave-dev&lt;/a&gt;&lt;/p&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/Octave-for-Windows-problem-tp26236408p26236408.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26231433</id>
	<title>Re: Contribution to Octave-forge with a simple Open-MPI Package</title>
	<published>2009-11-06T04:45:47Z</published>
	<updated>2009-11-06T04:45:47Z</updated>
	<author>
		<name>Jaroslav Hajek-2</name>
	</author>
	<content type="html">&lt;br&gt;&lt;br&gt;&lt;div class=&quot;gmail_quote&quot;&gt;On Fri, Nov 6, 2009 at 1:37 PM, Riccardo Corradini &lt;span dir=&quot;ltr&quot;&gt;&amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26231433&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;riccardocorradini@...&lt;/a&gt;&amp;gt;&lt;/span&gt; wrote:&lt;br&gt;&lt;blockquote class=&quot;gmail_quote&quot; style=&quot;border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;&quot;&gt;
&lt;table border=&quot;0&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot;&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style=&quot;font-family: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; font-size: inherit; line-height: inherit; font-size-adjust: inherit; font-stretch: inherit;&quot; valign=&quot;top&quot;&gt;
&lt;div&gt;Yes Jaroslav. It&amp;#39;s not necessary to relink octave, you just have to include the header of openmpi and -l the other open mpi libraries.&lt;br&gt;I tried to run on my ubuntu terminal as explained here&lt;br&gt;&lt;a href=&quot;http://octave.sourceforge.net/developers.html&quot; target=&quot;_blank&quot; rel=&quot;nofollow&quot;&gt;http://octave.sourceforge.net/developers.html&lt;/a&gt;&lt;br&gt;
&lt;br&gt;svn co &lt;a href=&quot;https://octave.svn.sourceforge.net/svnroot/octave/trunk/octave-forge&quot; target=&quot;_blank&quot; rel=&quot;nofollow&quot;&gt;https://octave.svn.sourceforge.net/svnroot/octave/trunk/octave-forge&lt;/a&gt;&lt;br&gt;svn: OPTIONS di &amp;#39;&lt;a href=&quot;https://octave.svn.sourceforge.net/svnroot/octave/trunk/octave-forge&quot; target=&quot;_blank&quot; rel=&quot;nofollow&quot;&gt;https://octave.svn.sourceforge.net/svnroot/octave/trunk/octave-forge&lt;/a&gt;&amp;#39;: could not connect to server&lt;br&gt;
&lt;br&gt;How do you suggest to proceed?&lt;br&gt;&lt;br&gt;Thanks a lot&lt;br&gt;Riccardo&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br&gt;



      &lt;/blockquote&gt;&lt;/div&gt;&lt;br&gt;This should work (works for me). Can you access the address using a web browser? Maybe sourceforge was just down at the moment.&lt;br&gt;For write access, you&amp;#39;ll need to register at sourceforge (unless you already did so) and tell Soren your username, so that he can add you to the OctaveForge group. I think that it is not needed for a checkout, by I may be wrong.&lt;br clear=&quot;all&quot;&gt;
&lt;br&gt;hth&lt;br&gt;&lt;br&gt;-- &lt;br&gt;RNDr. Jaroslav Hajek&lt;br&gt;computing expert &amp;amp; GNU Octave developer&lt;br&gt;Aeronautical Research and Test Institute (VZLU)&lt;br&gt;Prague, Czech Republic&lt;br&gt;url: &lt;a href=&quot;http://www.highegg.matfyz.cz&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;www.highegg.matfyz.cz&lt;/a&gt;&lt;br&gt;

&lt;br /&gt;------------------------------------------------------------------------------
&lt;br&gt;Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day 
&lt;br&gt;trial. Simplify your report design, integration and deployment - and focus on 
&lt;br&gt;what you do best, core application coding. Discover what's new with
&lt;br&gt;Crystal Reports now. &amp;nbsp;&lt;a href=&quot;http://p.sf.net/sfu/bobj-july&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://p.sf.net/sfu/bobj-july&lt;/a&gt;&lt;br /&gt;_______________________________________________
&lt;br&gt;Octave-dev mailing list
&lt;br&gt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26231433&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;Octave-dev@...&lt;/a&gt;
&lt;br&gt;&lt;a href=&quot;https://lists.sourceforge.net/lists/listinfo/octave-dev&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://lists.sourceforge.net/lists/listinfo/octave-dev&lt;/a&gt;&lt;br&gt;&lt;p&gt;From forum: &lt;a href=&quot;http://old.nabble.com/octave-dev-f4193.html&quot; embed=&quot;fixTarget[4193]&quot; target=&quot;_top&quot; &gt;octave-dev&lt;/a&gt;&lt;/p&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/Contribution-to-Octave-forge-with-a-simple-Open-MPI-Package-tp26180209p26231433.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26231349</id>
	<title>Re: Contribution to Octave-forge with a simple Open-MPI Package</title>
	<published>2009-11-06T04:37:15Z</published>
	<updated>2009-11-06T04:37:15Z</updated>
	<author>
		<name>Riccardo Corradini</name>
	</author>
	<content type="html">&lt;table cellspacing=&quot;0&quot; cellpadding=&quot;0&quot; border=&quot;0&quot;&gt;&lt;tr&gt;&lt;td valign=&quot;top&quot; style=&quot;font: inherit;&quot;&gt;&lt;div id=&quot;yiv295995386&quot;&gt;Yes Jaroslav. It's not necessary to relink octave, you just have to include the header of openmpi and -l the other open mpi libraries.&lt;br&gt;I tried to run on my ubuntu terminal as explained here&lt;br&gt;http://octave.sourceforge.net/developers.html&lt;br&gt;&lt;br&gt;svn co https://octave.svn.sourceforge.net/svnroot/octave/trunk/octave-forge&lt;br&gt;svn: OPTIONS di 'https://octave.svn.sourceforge.net/svnroot/octave/trunk/octave-forge': could not connect to server&lt;br&gt;&lt;br&gt;How do you suggest to proceed?&lt;br&gt;&lt;br&gt;Thanks a lot&lt;br&gt;Riccardo&lt;br&gt;&lt;br&gt;--- &lt;b&gt;Gio 5/11/09, Jaroslav Hajek &lt;i&gt;&amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26231349&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;highegg@...&lt;/a&gt;&amp;gt;&lt;/i&gt;&lt;/b&gt; ha scritto:&lt;br&gt;&lt;blockquote style=&quot;border-left: 2px solid rgb(16, 16, 255); margin-left: 5px; padding-left: 5px;&quot;&gt;&lt;br&gt;Da: Jaroslav Hajek &amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26231349&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;highegg@...&lt;/a&gt;&amp;gt;&lt;br&gt;Oggetto: Re: [OctDev] Contribution to Octave-forge with a simple Open-MPI  Package&lt;br&gt;A:
 &quot;Riccardo Corradini&quot; &amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26231349&amp;i=2&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;riccardocorradini@...&lt;/a&gt;&amp;gt;&lt;br&gt;Cc: &quot;Søren Hauberg&quot; &amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26231349&amp;i=3&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;soren@...&lt;/a&gt;&amp;gt;, &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26231349&amp;i=4&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;octave-dev@...&lt;/a&gt;&lt;br&gt;Data: Giovedì 5 novembre 2009, 21:34&lt;br&gt;&lt;br&gt;&lt;div id=&quot;yiv43869944&quot;&gt;&lt;br&gt;&lt;br&gt;&lt;div class=&quot;gmail_quote&quot;&gt;On Wed, Nov 4, 2009 at 4:49 PM, Riccardo Corradini &lt;span dir=&quot;ltr&quot;&gt;&amp;lt;&lt;a rel=&quot;nofollow&quot; target=&quot;_top&quot;&gt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26231349&amp;i=5&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;riccardocorradini@...&lt;/a&gt;&lt;/a&gt;&amp;gt;&lt;/span&gt; wrote:&lt;br&gt;&lt;blockquote class=&quot;gmail_quote&quot; style=&quot;border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;&quot;&gt;
&lt;table border=&quot;0&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot;&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style=&quot;font-family: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; font-size: inherit; line-height: inherit; font-size-adjust: inherit; font-stretch: inherit;&quot; valign=&quot;top&quot;&gt;
Hi Søren,&lt;br&gt;thanks for your quick reply.&lt;br&gt;The code is general-purpose, but as I told you I would love to use it for econometrics.&lt;br&gt;So the first step will be to install the following tarball from&lt;br&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://www.open-mpi.org/software/ompi/v1.3/downloads/openmpi-1.3.3.tar.bz2&quot;&gt;http://www.open-mpi.org/software/ompi/v1.3/downloads/openmpi-1.3.3.tar.bz2&lt;/a&gt;&lt;br&gt;
possibly in a multi-core computer to run my simple examples&lt;br&gt;and configure it for instance in the following way (/home/user is your $HOME)&lt;br&gt;./configure --enable-mpirun-prefix-by-default --enable-heterogeneous --prefix=/home/user/openmpi-1.3.3/ --enable-static&lt;br&gt;
&lt;br&gt;and modify .bashrc in your home &lt;br&gt;&amp;nbsp;OMPIBIN=`$ompi_info -path&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; bindir&amp;nbsp; -parsable | cut -d: -f3`&lt;br&gt;&amp;nbsp;OMPILIB=`$ompi_info -path&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; libdir&amp;nbsp; -parsable | cut -d: -f3`&lt;br&gt;&amp;nbsp;OMPISCD=`$ompi_info -path sysconfdir&amp;nbsp; -parsable | cut -d:
 -f3`&lt;br&gt;&lt;br&gt;&amp;nbsp;OSCBIN=~/oompi-1.0.4/bin &lt;br&gt;&lt;br&gt;export&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; PATH=$OMPIBIN:$PATH&lt;br&gt;export&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; PATH=$OSCBIN:$PATH&lt;br&gt;export LD_LIBRARY_PATH=:$OMPILIB:$LD_LIBRARY_PATH&lt;br&gt;&lt;br&gt;unset&amp;nbsp; ompi_info OMPIBIN OMPILIB OMPISCD OSCBIN&lt;br&gt;
&lt;br&gt;After this type in a terminal mpiCC --showme&lt;br&gt;In my case I will have something like&lt;br&gt;&lt;br&gt;g++ -I/home/user/openmpi-1.3.3/include -pthread -L/home/user/openmpi-1.3.3/lib -lmpi_cxx -lmpi -lopen-rte -lopen-pal -ldl -Wl,--export-dynamic -lnsl -lutil -lm -ldl&lt;br&gt;
&lt;br&gt;This will be useful for mkoctfile&lt;br&gt;&lt;br&gt;Now I will include the basic functions&lt;br&gt;&lt;br&gt;// mkoctfile -I/home/corradin/openmpi-1.3.3/include -lpthread -L/home/corradin/openmpi-1.3.3/lib -lmpi_cxx -lmpi -lopen-rte -lopen-pal -ldl -lnsl -lutil -lm -ldl MPI_Init.cc&lt;br&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br&gt;&lt;/blockquote&gt;&lt;/div&gt;&lt;br&gt;This looks good. Do I get it correctly that it is not necessary to relink Octave? I'd suggest you create the package on OctaveForge, then others will be able to try it and contribute.&lt;br&gt;
&lt;br&gt;regards&lt;br&gt;&lt;br&gt;-- &lt;br&gt;RNDr. Jaroslav Hajek&lt;br&gt;computing expert &amp;amp; GNU Octave developer&lt;br&gt;Aeronautical Research and Test Institute (VZLU)&lt;br&gt;Prague, Czech Republic&lt;br&gt;url: &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://www.highegg.matfyz.cz&quot;&gt;www.highegg.matfyz.cz&lt;/a&gt;&lt;br&gt;

&lt;/div&gt;&lt;/blockquote&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br&gt;



&lt;br /&gt;------------------------------------------------------------------------------
&lt;br&gt;Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day 
&lt;br&gt;trial. Simplify your report design, integration and deployment - and focus on 
&lt;br&gt;what you do best, core application coding. Discover what's new with
&lt;br&gt;Crystal Reports now. &amp;nbsp;&lt;a href=&quot;http://p.sf.net/sfu/bobj-july&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://p.sf.net/sfu/bobj-july&lt;/a&gt;&lt;br /&gt;_______________________________________________
&lt;br&gt;Octave-dev mailing list
&lt;br&gt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26231349&amp;i=6&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;Octave-dev@...&lt;/a&gt;
&lt;br&gt;&lt;a href=&quot;https://lists.sourceforge.net/lists/listinfo/octave-dev&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://lists.sourceforge.net/lists/listinfo/octave-dev&lt;/a&gt;&lt;br&gt;&lt;p&gt;From forum: &lt;a href=&quot;http://old.nabble.com/octave-dev-f4193.html&quot; embed=&quot;fixTarget[4193]&quot; target=&quot;_top&quot; &gt;octave-dev&lt;/a&gt;&lt;/p&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/Contribution-to-Octave-forge-with-a-simple-Open-MPI-Package-tp26180209p26231349.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26221800</id>
	<title>Re: Contribution to Octave-forge with a simple Open-MPI Package</title>
	<published>2009-11-05T12:34:49Z</published>
	<updated>2009-11-05T12:34:49Z</updated>
	<author>
		<name>Jaroslav Hajek-2</name>
	</author>
	<content type="html">&lt;br&gt;&lt;br&gt;&lt;div class=&quot;gmail_quote&quot;&gt;On Wed, Nov 4, 2009 at 4:49 PM, Riccardo Corradini &lt;span dir=&quot;ltr&quot;&gt;&amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26221800&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;riccardocorradini@...&lt;/a&gt;&amp;gt;&lt;/span&gt; wrote:&lt;br&gt;&lt;blockquote class=&quot;gmail_quote&quot; style=&quot;border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;&quot;&gt;
&lt;table border=&quot;0&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot;&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style=&quot;font-family: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; font-size: inherit; line-height: inherit; font-size-adjust: inherit; font-stretch: inherit;&quot; valign=&quot;top&quot;&gt;
Hi Søren,&lt;br&gt;thanks for your quick reply.&lt;br&gt;The code is general-purpose, but as I told you I would love to use it for econometrics.&lt;br&gt;So the first step will be to install the following tarball from&lt;br&gt;&lt;a href=&quot;http://www.open-mpi.org/software/ompi/v1.3/downloads/openmpi-1.3.3.tar.bz2&quot; target=&quot;_blank&quot; rel=&quot;nofollow&quot;&gt;http://www.open-mpi.org/software/ompi/v1.3/downloads/openmpi-1.3.3.tar.bz2&lt;/a&gt;&lt;br&gt;
possibly in a multi-core computer to run my simple examples&lt;br&gt;and configure it for instance in the following way (/home/user is your $HOME)&lt;br&gt;./configure --enable-mpirun-prefix-by-default --enable-heterogeneous --prefix=/home/user/openmpi-1.3.3/ --enable-static&lt;br&gt;
&lt;br&gt;and modify .bashrc in your home &lt;br&gt; OMPIBIN=`$ompi_info -path     bindir  -parsable | cut -d: -f3`&lt;br&gt; OMPILIB=`$ompi_info -path     libdir  -parsable | cut -d: -f3`&lt;br&gt; OMPISCD=`$ompi_info -path sysconfdir  -parsable | cut -d:
 -f3`&lt;br&gt;&lt;br&gt; OSCBIN=~/oompi-1.0.4/bin &lt;br&gt;&lt;br&gt;export            PATH=$OMPIBIN:$PATH&lt;br&gt;export          PATH=$OSCBIN:$PATH&lt;br&gt;export LD_LIBRARY_PATH=:$OMPILIB:$LD_LIBRARY_PATH&lt;br&gt;&lt;br&gt;unset  ompi_info OMPIBIN OMPILIB OMPISCD OSCBIN&lt;br&gt;
&lt;br&gt;After this type in a terminal mpiCC --showme&lt;br&gt;In my case I will have something like&lt;br&gt;&lt;br&gt;g++ -I/home/user/openmpi-1.3.3/include -pthread -L/home/user/openmpi-1.3.3/lib -lmpi_cxx -lmpi -lopen-rte -lopen-pal -ldl -Wl,--export-dynamic -lnsl -lutil -lm -ldl&lt;br&gt;
&lt;br&gt;This will be useful for mkoctfile&lt;br&gt;&lt;br&gt;Now I will include the basic functions&lt;br&gt;&lt;br&gt;// mkoctfile -I/home/corradin/openmpi-1.3.3/include -lpthread -L/home/corradin/openmpi-1.3.3/lib -lmpi_cxx -lmpi -lopen-rte -lopen-pal -ldl -lnsl -lutil -lm -ldl MPI_Init.cc&lt;br&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br&gt;&lt;/blockquote&gt;&lt;/div&gt;&lt;br&gt;This looks good. Do I get it correctly that it is not necessary to relink Octave? I&amp;#39;d suggest you create the package on OctaveForge, then others will be able to try it and contribute.&lt;br&gt;
&lt;br&gt;regards&lt;br&gt;&lt;br&gt;-- &lt;br&gt;RNDr. Jaroslav Hajek&lt;br&gt;computing expert &amp;amp; GNU Octave developer&lt;br&gt;Aeronautical Research and Test Institute (VZLU)&lt;br&gt;Prague, Czech Republic&lt;br&gt;url: &lt;a href=&quot;http://www.highegg.matfyz.cz&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;www.highegg.matfyz.cz&lt;/a&gt;&lt;br&gt;

&lt;br /&gt;------------------------------------------------------------------------------
&lt;br&gt;Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day 
&lt;br&gt;trial. Simplify your report design, integration and deployment - and focus on 
&lt;br&gt;what you do best, core application coding. Discover what's new with
&lt;br&gt;Crystal Reports now. &amp;nbsp;&lt;a href=&quot;http://p.sf.net/sfu/bobj-july&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://p.sf.net/sfu/bobj-july&lt;/a&gt;&lt;br /&gt;_______________________________________________
&lt;br&gt;Octave-dev mailing list
&lt;br&gt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26221800&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;Octave-dev@...&lt;/a&gt;
&lt;br&gt;&lt;a href=&quot;https://lists.sourceforge.net/lists/listinfo/octave-dev&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://lists.sourceforge.net/lists/listinfo/octave-dev&lt;/a&gt;&lt;br&gt;&lt;p&gt;From forum: &lt;a href=&quot;http://old.nabble.com/octave-dev-f4193.html&quot; embed=&quot;fixTarget[4193]&quot; target=&quot;_top&quot; &gt;octave-dev&lt;/a&gt;&lt;/p&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/Contribution-to-Octave-forge-with-a-simple-Open-MPI-Package-tp26180209p26221800.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26213215</id>
	<title>Re: inv() crashes when called with a complex matrix on octave 3.2.3</title>
	<published>2009-11-05T03:51:22Z</published>
	<updated>2009-11-05T03:51:22Z</updated>
	<author>
		<name>Marco atzeri-3</name>
	</author>
	<content type="html">--- Gio 5/11/09, Benjamin Lindner &amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26213215&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;lindnerben@...&lt;/a&gt;&amp;gt; ha scritto:
&lt;br&gt;&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt; Da: Benjamin Lindner &amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26213215&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;lindnerben@...&lt;/a&gt;&amp;gt;
&lt;br&gt;&amp;gt; Oggetto: Re: [OctDev] inv() crashes when called with a complex matrix on octave 3.2.3
&lt;br&gt;&amp;gt; A: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26213215&amp;i=2&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;tmacchant@...&lt;/a&gt;
&lt;br&gt;&amp;gt; Cc: &amp;quot;octave-dev&amp;quot; &amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26213215&amp;i=3&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;octave-dev@...&lt;/a&gt;&amp;gt;, &amp;quot;George&amp;quot; &amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26213215&amp;i=4&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;pinkisntwell@...&lt;/a&gt;&amp;gt;
&lt;br&gt;&amp;gt; Data: Giovedì 5 novembre 2009, 11:09
&lt;br&gt;&amp;gt; Tatsuro MATSUOKA wrote:
&lt;br&gt;&amp;gt; &amp;gt; Hello
&lt;br&gt;&amp;gt; &amp;gt; 
&lt;br&gt;&amp;gt; &amp;gt; --- Benjamin Lindner wrote:
&lt;br&gt;&amp;gt; &amp;gt; 
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt; On Wed, Nov 4, 2009 at 6:29 PM, Benjamin
&lt;br&gt;&amp;gt; Lindner wrote:
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; George wrote:
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; I'm using octave 3.2.3 on windows via
&lt;br&gt;&amp;gt; octave-forge. When I do this it
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; crashes:
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; A=rand(5,5);
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; [V D] = eig(A);
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; V^-1;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; The crash happens on the last step. I
&lt;br&gt;&amp;gt; tested using other complex
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; matrices and it keeps crashing.
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; It gives the error
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; panic: Segmentation violation --
&lt;br&gt;&amp;gt; stopping myself...
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; attempting to save variables to
&lt;br&gt;&amp;gt; `octave-core'...
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; save to `octave-core' complete
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; I can't find the octave-core dump.
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; If you installed with SSE3 atlas
&lt;br&gt;&amp;gt; libraries, then please try to install with
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; SSE2 libraries.
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; There seems to be a problem with the SSE3
&lt;br&gt;&amp;gt; atlas libraries.
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; benjamin
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;  &amp;gt; Thanks, that fixed the problem. From
&lt;br&gt;&amp;gt; looking at the installation
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;  &amp;gt; application, I gather that SSE3 is not
&lt;br&gt;&amp;gt; valid for my processor
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;  &amp;gt; (Sempron). How come was it selected as
&lt;br&gt;&amp;gt; the default? I left it there
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;  &amp;gt; the first time I installed, heeding the
&lt;br&gt;&amp;gt; strongly worded warning about
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;  &amp;gt; changing the optimization settings.
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; The installer queries the CPU for supported flags,
&lt;br&gt;&amp;gt; and selectes the 
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; higest available. (If you're interested in what
&lt;br&gt;&amp;gt; your cpu supports, you 
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; can take a look at the cpu-z utility &lt;a href=&quot;http://www.cpuid.com/cpuz.php&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.cpuid.com/cpuz.php&lt;/a&gt;).
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; No I suspect that something is wrong with
&lt;br&gt;&amp;gt; gcc-4.4.0 and atlas which is 
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; built with gcc-4.3.0, since the atlas library is
&lt;br&gt;&amp;gt; the same as for 
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; previous binaries, but I switched to gcc-4.4.0 for
&lt;br&gt;&amp;gt; the 3.2.3 binary.
&lt;br&gt;&amp;gt; &amp;gt; 
&lt;br&gt;&amp;gt; &amp;gt; HMMMMM?
&lt;br&gt;&amp;gt; &amp;gt; 
&lt;br&gt;&amp;gt; &amp;gt; I have build the atlas libraries by the GCC-4.3.3 on
&lt;br&gt;&amp;gt; Cygwin.
&lt;br&gt;&amp;gt; &amp;gt; 
&lt;br&gt;&amp;gt; &amp;gt; The GCC-4.3.3 that I am using is built by myself
&lt;br&gt;&amp;gt; without patches for Cygwin.
&lt;br&gt;&amp;gt; &amp;gt;  
&lt;br&gt;&amp;gt; &amp;gt; I have made libblas.dll, libcblas.dll and
&lt;br&gt;&amp;gt; liblapack.dll from the libf77blas.a, libcblas.a and
&lt;br&gt;&amp;gt; &amp;gt; libatlas.a built by the the GCC-4.3.3 on Cygwin with
&lt;br&gt;&amp;gt; gcc-4.4.0 / MinGW.
&lt;br&gt;&amp;gt; &amp;gt; 
&lt;br&gt;&amp;gt; &amp;gt; I have tried gcc-4 from Cygwin site.  However,
&lt;br&gt;&amp;gt; the libraries depended on other cygwin libraries so
&lt;br&gt;&amp;gt; &amp;gt; that I cannot used for building dll files on MinGW.
&lt;br&gt;&amp;gt; &amp;gt; 
&lt;br&gt;&amp;gt; &amp;gt; In my idea, it is essential to use gcc without Cygwin
&lt;br&gt;&amp;gt; specific patches but not version number.
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; I haven't got atlas to build without using cygwin gcc. Did
&lt;br&gt;&amp;gt; you? That 
&lt;br&gt;&amp;gt; would be really interesing, and helpful because atlas is
&lt;br&gt;&amp;gt; currently the 
&lt;br&gt;&amp;gt; one component I cannot get to build with mingw.
&lt;/div&gt;&lt;br&gt;cygwin source package for Atlas
&lt;br&gt;&lt;a href=&quot;http://matzeri.altervista.org/cygwin-1.7/atlas/index.html&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://matzeri.altervista.org/cygwin-1.7/atlas/index.html&lt;/a&gt;&lt;br&gt;&lt;br&gt;eventually could help you to understand the problem, 
&lt;br&gt;on your build
&lt;br&gt;&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; Well, my suspicion my be altogether wrong, It's just the
&lt;br&gt;&amp;gt; only thing I 
&lt;br&gt;&amp;gt; changed from 3.2.2 to 3.2.3. Lapack version is the same,
&lt;br&gt;&amp;gt; atlas version 
&lt;br&gt;&amp;gt; is the same, only octave is being built with gcc-4.4
&lt;br&gt;&amp;gt; whereas atlas was 
&lt;br&gt;&amp;gt; being built with 4.3.
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; Perhaps it's not this difference, perhaps the atlas
&lt;br&gt;&amp;gt; binaries are more 
&lt;br&gt;&amp;gt; tied to the actual hardware platform they are built on, so
&lt;br&gt;&amp;gt; I cannot 
&lt;br&gt;&amp;gt; safely build on e.g. a Core2Duo and use it on a P4 or so.
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; &amp;gt; At least for me, version difference between Cygwin GCC
&lt;br&gt;&amp;gt; and MinGW GCC gives no problem.
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; Hm, well then it's probably some other bug lurking here.
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; benjamin
&lt;br&gt;&amp;gt; 
&lt;/div&gt;&lt;br&gt;Regards
&lt;br&gt;Marco
&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; 
&lt;br&gt;&lt;br&gt;------------------------------------------------------------------------------
&lt;br&gt;Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day 
&lt;br&gt;trial. Simplify your report design, integration and deployment - and focus on 
&lt;br&gt;what you do best, core application coding. Discover what's new with
&lt;br&gt;Crystal Reports now. &amp;nbsp;&lt;a href=&quot;http://p.sf.net/sfu/bobj-july&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://p.sf.net/sfu/bobj-july&lt;/a&gt;&lt;br&gt;_______________________________________________
&lt;br&gt;Octave-dev mailing list
&lt;br&gt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26213215&amp;i=5&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;Octave-dev@...&lt;/a&gt;
&lt;br&gt;&lt;a href=&quot;https://lists.sourceforge.net/lists/listinfo/octave-dev&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://lists.sourceforge.net/lists/listinfo/octave-dev&lt;/a&gt;&lt;br&gt;&lt;p&gt;From forum: &lt;a href=&quot;http://old.nabble.com/octave-dev-f4193.html&quot; embed=&quot;fixTarget[4193]&quot; target=&quot;_top&quot; &gt;octave-dev&lt;/a&gt;&lt;/p&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/inv%28%29-crashes-when-called-with-a-complex-matrix-on-octave-3.2.3-tp26201846p26213215.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26211931</id>
	<title>Re: inv() crashes when called with a complex matrix on octave 3.2.3</title>
	<published>2009-11-05T02:09:58Z</published>
	<updated>2009-11-05T02:09:58Z</updated>
	<author>
		<name>Benjamin Lindner</name>
	</author>
	<content type="html">Tatsuro MATSUOKA wrote:
&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt; Hello
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; --- Benjamin Lindner wrote:
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; On Wed, Nov 4, 2009 at 6:29 PM, Benjamin Lindner wrote:
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; George wrote:
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; I'm using octave 3.2.3 on windows via octave-forge. When I do this it
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; crashes:
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; A=rand(5,5);
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; [V D] = eig(A);
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; V^-1;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; The crash happens on the last step. I tested using other complex
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; matrices and it keeps crashing.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; It gives the error
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; panic: Segmentation violation -- stopping myself...
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; attempting to save variables to `octave-core'...
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; save to `octave-core' complete
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; I can't find the octave-core dump.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; If you installed with SSE3 atlas libraries, then please try to install with
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; SSE2 libraries.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; There seems to be a problem with the SSE3 atlas libraries.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; benjamin
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; &amp;nbsp;&amp;gt; Thanks, that fixed the problem. From looking at the installation
&lt;br&gt;&amp;gt;&amp;gt; &amp;nbsp;&amp;gt; application, I gather that SSE3 is not valid for my processor
&lt;br&gt;&amp;gt;&amp;gt; &amp;nbsp;&amp;gt; (Sempron). How come was it selected as the default? I left it there
&lt;br&gt;&amp;gt;&amp;gt; &amp;nbsp;&amp;gt; the first time I installed, heeding the strongly worded warning about
&lt;br&gt;&amp;gt;&amp;gt; &amp;nbsp;&amp;gt; changing the optimization settings.
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; The installer queries the CPU for supported flags, and selectes the 
&lt;br&gt;&amp;gt;&amp;gt; higest available. (If you're interested in what your cpu supports, you 
&lt;br&gt;&amp;gt;&amp;gt; can take a look at the cpu-z utility &lt;a href=&quot;http://www.cpuid.com/cpuz.php&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.cpuid.com/cpuz.php&lt;/a&gt;).
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; No I suspect that something is wrong with gcc-4.4.0 and atlas which is 
&lt;br&gt;&amp;gt;&amp;gt; built with gcc-4.3.0, since the atlas library is the same as for 
&lt;br&gt;&amp;gt;&amp;gt; previous binaries, but I switched to gcc-4.4.0 for the 3.2.3 binary.
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; HMMMMM?
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; I have build the atlas libraries by the GCC-4.3.3 on Cygwin.
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; The GCC-4.3.3 that I am using is built by myself without patches for Cygwin.
&lt;br&gt;&amp;gt; &amp;nbsp;
&lt;br&gt;&amp;gt; I have made libblas.dll, libcblas.dll and liblapack.dll from the libf77blas.a, libcblas.a and
&lt;br&gt;&amp;gt; libatlas.a built by the the GCC-4.3.3 on Cygwin with gcc-4.4.0 / MinGW.
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; I have tried gcc-4 from Cygwin site. &amp;nbsp;However, the libraries depended on other cygwin libraries so
&lt;br&gt;&amp;gt; that I cannot used for building dll files on MinGW.
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; In my idea, it is essential to use gcc without Cygwin specific patches but not version number.
&lt;/div&gt;&lt;br&gt;I haven't got atlas to build without using cygwin gcc. Did you? That 
&lt;br&gt;would be really interesing, and helpful because atlas is currently the 
&lt;br&gt;one component I cannot get to build with mingw.
&lt;br&gt;&lt;br&gt;Well, my suspicion my be altogether wrong, It's just the only thing I 
&lt;br&gt;changed from 3.2.2 to 3.2.3. Lapack version is the same, atlas version 
&lt;br&gt;is the same, only octave is being built with gcc-4.4 whereas atlas was 
&lt;br&gt;being built with 4.3.
&lt;br&gt;&lt;br&gt;Perhaps it's not this difference, perhaps the atlas binaries are more 
&lt;br&gt;tied to the actual hardware platform they are built on, so I cannot 
&lt;br&gt;safely build on e.g. a Core2Duo and use it on a P4 or so.
&lt;br&gt;&lt;br&gt;&amp;gt; At least for me, version difference between Cygwin GCC and MinGW GCC gives no problem.
&lt;br&gt;&lt;br&gt;Hm, well then it's probably some other bug lurking here.
&lt;br&gt;&lt;br&gt;benjamin
&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;------------------------------------------------------------------------------
&lt;br&gt;Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day 
&lt;br&gt;trial. Simplify your report design, integration and deployment - and focus on 
&lt;br&gt;what you do best, core application coding. Discover what's new with
&lt;br&gt;Crystal Reports now. &amp;nbsp;&lt;a href=&quot;http://p.sf.net/sfu/bobj-july&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://p.sf.net/sfu/bobj-july&lt;/a&gt;&lt;br&gt;_______________________________________________
&lt;br&gt;Octave-dev mailing list
&lt;br&gt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26211931&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;Octave-dev@...&lt;/a&gt;
&lt;br&gt;&lt;a href=&quot;https://lists.sourceforge.net/lists/listinfo/octave-dev&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://lists.sourceforge.net/lists/listinfo/octave-dev&lt;/a&gt;&lt;br&gt;&lt;p&gt;From forum: &lt;a href=&quot;http://old.nabble.com/octave-dev-f4193.html&quot; embed=&quot;fixTarget[4193]&quot; target=&quot;_top&quot; &gt;octave-dev&lt;/a&gt;&lt;/p&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/inv%28%29-crashes-when-called-with-a-complex-matrix-on-octave-3.2.3-tp26201846p26211931.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26209375</id>
	<title>Re: inv() crashes when called with a complex matrix on octave 3.2.3</title>
	<published>2009-11-04T21:06:19Z</published>
	<updated>2009-11-04T21:06:19Z</updated>
	<author>
		<name>Tatsuro MATSUOKA-2</name>
	</author>
	<content type="html">Hello
&lt;br&gt;&lt;br&gt;--- Benjamin Lindner wrote:
&lt;br&gt;&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt; &amp;gt; On Wed, Nov 4, 2009 at 6:29 PM, Benjamin Lindner wrote:
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; George wrote:
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt; I'm using octave 3.2.3 on windows via octave-forge. When I do this it
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt; crashes:
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt; A=rand(5,5);
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt; [V D] = eig(A);
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt; V^-1;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt; The crash happens on the last step. I tested using other complex
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt; matrices and it keeps crashing.
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt; It gives the error
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt; panic: Segmentation violation -- stopping myself...
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt; attempting to save variables to `octave-core'...
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt; save to `octave-core' complete
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt; I can't find the octave-core dump.
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; If you installed with SSE3 atlas libraries, then please try to install with
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; SSE2 libraries.
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; There seems to be a problem with the SSE3 atlas libraries.
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; benjamin
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt; 
&lt;br&gt;&amp;gt; &amp;nbsp;&amp;gt; Thanks, that fixed the problem. From looking at the installation
&lt;br&gt;&amp;gt; &amp;nbsp;&amp;gt; application, I gather that SSE3 is not valid for my processor
&lt;br&gt;&amp;gt; &amp;nbsp;&amp;gt; (Sempron). How come was it selected as the default? I left it there
&lt;br&gt;&amp;gt; &amp;nbsp;&amp;gt; the first time I installed, heeding the strongly worded warning about
&lt;br&gt;&amp;gt; &amp;nbsp;&amp;gt; changing the optimization settings.
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; The installer queries the CPU for supported flags, and selectes the 
&lt;br&gt;&amp;gt; higest available. (If you're interested in what your cpu supports, you 
&lt;br&gt;&amp;gt; can take a look at the cpu-z utility &lt;a href=&quot;http://www.cpuid.com/cpuz.php&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.cpuid.com/cpuz.php&lt;/a&gt;).
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; No I suspect that something is wrong with gcc-4.4.0 and atlas which is 
&lt;br&gt;&amp;gt; built with gcc-4.3.0, since the atlas library is the same as for 
&lt;br&gt;&amp;gt; previous binaries, but I switched to gcc-4.4.0 for the 3.2.3 binary.
&lt;/div&gt;&lt;br&gt;HMMMMM?
&lt;br&gt;&lt;br&gt;I have build the atlas libraries by the GCC-4.3.3 on Cygwin.
&lt;br&gt;&lt;br&gt;The GCC-4.3.3 that I am using is built by myself without patches for Cygwin.
&lt;br&gt;&amp;nbsp;
&lt;br&gt;I have made libblas.dll, libcblas.dll and liblapack.dll from the libf77blas.a, libcblas.a and
&lt;br&gt;libatlas.a built by the the GCC-4.3.3 on Cygwin with gcc-4.4.0 / MinGW.
&lt;br&gt;&lt;br&gt;I have tried gcc-4 from Cygwin site. &amp;nbsp;However, the libraries depended on other cygwin libraries so
&lt;br&gt;that I cannot used for building dll files on MinGW.
&lt;br&gt;&lt;br&gt;In my idea, it is essential to use gcc without Cygwin specific patches but not version number.
&lt;br&gt;&lt;br&gt;At least for me, version difference between Cygwin GCC and MinGW GCC gives no problem.
&lt;br&gt;&lt;br&gt;Regards
&lt;br&gt;&lt;br&gt;Tatsuro
&lt;br&gt;&lt;br&gt;--------------------------------------
&lt;br&gt;GyaO! - Anime, Dramas, Movies, and Music videos [FREE]
&lt;br&gt;&lt;a href=&quot;http://pr.mail.yahoo.co.jp/gyao/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://pr.mail.yahoo.co.jp/gyao/&lt;/a&gt;&lt;br&gt;&lt;br&gt;------------------------------------------------------------------------------
&lt;br&gt;Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day 
&lt;br&gt;trial. Simplify your report design, integration and deployment - and focus on 
&lt;br&gt;what you do best, core application coding. Discover what's new with
&lt;br&gt;Crystal Reports now. &amp;nbsp;&lt;a href=&quot;http://p.sf.net/sfu/bobj-july&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://p.sf.net/sfu/bobj-july&lt;/a&gt;&lt;br&gt;_______________________________________________
&lt;br&gt;Octave-dev mailing list
&lt;br&gt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26209375&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;Octave-dev@...&lt;/a&gt;
&lt;br&gt;&lt;a href=&quot;https://lists.sourceforge.net/lists/listinfo/octave-dev&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://lists.sourceforge.net/lists/listinfo/octave-dev&lt;/a&gt;&lt;br&gt;&lt;p&gt;From forum: &lt;a href=&quot;http://old.nabble.com/octave-dev-f4193.html&quot; embed=&quot;fixTarget[4193]&quot; target=&quot;_top&quot; &gt;octave-dev&lt;/a&gt;&lt;/p&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/inv%28%29-crashes-when-called-with-a-complex-matrix-on-octave-3.2.3-tp26201846p26209375.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26204872</id>
	<title>Re: inv() crashes when called with a complex matrix on octave 3.2.3</title>
	<published>2009-11-04T13:22:51Z</published>
	<updated>2009-11-04T13:22:51Z</updated>
	<author>
		<name>Benjamin Lindner</name>
	</author>
	<content type="html">&lt;div class='shrinkable-quote'&gt;&amp;gt; On Wed, Nov 4, 2009 at 6:29 PM, Benjamin Lindner wrote:
&lt;br&gt;&amp;gt;&amp;gt; George wrote:
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; I'm using octave 3.2.3 on windows via octave-forge. When I do this it
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; crashes:
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; A=rand(5,5);
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; [V D] = eig(A);
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; V^-1;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; The crash happens on the last step. I tested using other complex
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; matrices and it keeps crashing.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; It gives the error
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; panic: Segmentation violation -- stopping myself...
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; attempting to save variables to `octave-core'...
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; save to `octave-core' complete
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; I can't find the octave-core dump.
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; If you installed with SSE3 atlas libraries, then please try to install with
&lt;br&gt;&amp;gt;&amp;gt; SSE2 libraries.
&lt;br&gt;&amp;gt;&amp;gt; There seems to be a problem with the SSE3 atlas libraries.
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; benjamin
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; 
&lt;/div&gt;&amp;nbsp;&amp;gt; Thanks, that fixed the problem. From looking at the installation
&lt;br&gt;&amp;nbsp;&amp;gt; application, I gather that SSE3 is not valid for my processor
&lt;br&gt;&amp;nbsp;&amp;gt; (Sempron). How come was it selected as the default? I left it there
&lt;br&gt;&amp;nbsp;&amp;gt; the first time I installed, heeding the strongly worded warning about
&lt;br&gt;&amp;nbsp;&amp;gt; changing the optimization settings.
&lt;br&gt;&lt;br&gt;The installer queries the CPU for supported flags, and selectes the 
&lt;br&gt;higest available. (If you're interested in what your cpu supports, you 
&lt;br&gt;can take a look at the cpu-z utility &lt;a href=&quot;http://www.cpuid.com/cpuz.php&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.cpuid.com/cpuz.php&lt;/a&gt;).
&lt;br&gt;&lt;br&gt;No I suspect that something is wrong with gcc-4.4.0 and atlas which is 
&lt;br&gt;built with gcc-4.3.0, since the atlas library is the same as for 
&lt;br&gt;previous binaries, but I switched to gcc-4.4.0 for the 3.2.3 binary.
&lt;br&gt;&lt;br&gt;benjamin
&lt;br&gt;&lt;br&gt;------------------------------------------------------------------------------
&lt;br&gt;Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day 
&lt;br&gt;trial. Simplify your report design, integration and deployment - and focus on 
&lt;br&gt;what you do best, core application coding. Discover what's new with
&lt;br&gt;Crystal Reports now. &amp;nbsp;&lt;a href=&quot;http://p.sf.net/sfu/bobj-july&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://p.sf.net/sfu/bobj-july&lt;/a&gt;&lt;br&gt;_______________________________________________
&lt;br&gt;Octave-dev mailing list
&lt;br&gt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26204872&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;Octave-dev@...&lt;/a&gt;
&lt;br&gt;&lt;a href=&quot;https://lists.sourceforge.net/lists/listinfo/octave-dev&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://lists.sourceforge.net/lists/listinfo/octave-dev&lt;/a&gt;&lt;br&gt;&lt;p&gt;From forum: &lt;a href=&quot;http://old.nabble.com/octave-dev-f4193.html&quot; embed=&quot;fixTarget[4193]&quot; target=&quot;_top&quot; &gt;octave-dev&lt;/a&gt;&lt;/p&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/inv%28%29-crashes-when-called-with-a-complex-matrix-on-octave-3.2.3-tp26201846p26204872.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26202050</id>
	<title>Re: inv() crashes when called with a complex matrix on octave 3.2.3</title>
	<published>2009-11-04T10:29:09Z</published>
	<updated>2009-11-04T10:29:09Z</updated>
	<author>
		<name>Benjamin Lindner</name>
	</author>
	<content type="html">George wrote:
&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt; I'm using octave 3.2.3 on windows via octave-forge. When I do this it crashes:
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; A=rand(5,5);
&lt;br&gt;&amp;gt; [V D] = eig(A);
&lt;br&gt;&amp;gt; V^-1;
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; The crash happens on the last step. I tested using other complex
&lt;br&gt;&amp;gt; matrices and it keeps crashing.
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; It gives the error
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; panic: Segmentation violation -- stopping myself...
&lt;br&gt;&amp;gt; attempting to save variables to `octave-core'...
&lt;br&gt;&amp;gt; save to `octave-core' complete
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; I can't find the octave-core dump.
&lt;/div&gt;&lt;br&gt;&lt;br&gt;If you installed with SSE3 atlas libraries, then please try to install 
&lt;br&gt;with SSE2 libraries.
&lt;br&gt;There seems to be a problem with the SSE3 atlas libraries.
&lt;br&gt;&lt;br&gt;benjamin
&lt;br&gt;&lt;br&gt;------------------------------------------------------------------------------
&lt;br&gt;Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day 
&lt;br&gt;trial. Simplify your report design, integration and deployment - and focus on 
&lt;br&gt;what you do best, core application coding. Discover what's new with
&lt;br&gt;Crystal Reports now. &amp;nbsp;&lt;a href=&quot;http://p.sf.net/sfu/bobj-july&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://p.sf.net/sfu/bobj-july&lt;/a&gt;&lt;br&gt;_______________________________________________
&lt;br&gt;Octave-dev mailing list
&lt;br&gt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26202050&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;Octave-dev@...&lt;/a&gt;
&lt;br&gt;&lt;a href=&quot;https://lists.sourceforge.net/lists/listinfo/octave-dev&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://lists.sourceforge.net/lists/listinfo/octave-dev&lt;/a&gt;&lt;br&gt;&lt;p&gt;From forum: &lt;a href=&quot;http://old.nabble.com/octave-dev-f4193.html&quot; embed=&quot;fixTarget[4193]&quot; target=&quot;_top&quot; &gt;octave-dev&lt;/a&gt;&lt;/p&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/inv%28%29-crashes-when-called-with-a-complex-matrix-on-octave-3.2.3-tp26201846p26202050.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26201846</id>
	<title>inv() crashes when called with a complex matrix on octave 3.2.3</title>
	<published>2009-11-04T09:56:08Z</published>
	<updated>2009-11-04T09:56:08Z</updated>
	<author>
		<name>pinkisntwell</name>
	</author>
	<content type="html">I'm using octave 3.2.3 on windows via octave-forge. When I do this it crashes:
&lt;br&gt;&lt;br&gt;A=rand(5,5);
&lt;br&gt;[V D] = eig(A);
&lt;br&gt;V^-1;
&lt;br&gt;&lt;br&gt;The crash happens on the last step. I tested using other complex
&lt;br&gt;matrices and it keeps crashing.
&lt;br&gt;&lt;br&gt;It gives the error
&lt;br&gt;&lt;br&gt;panic: Segmentation violation -- stopping myself...
&lt;br&gt;attempting to save variables to `octave-core'...
&lt;br&gt;save to `octave-core' complete
&lt;br&gt;&lt;br&gt;I can't find the octave-core dump.
&lt;br&gt;&lt;br&gt;------------------------------------------------------------------------------
&lt;br&gt;Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day 
&lt;br&gt;trial. Simplify your report design, integration and deployment - and focus on 
&lt;br&gt;what you do best, core application coding. Discover what's new with
&lt;br&gt;Crystal Reports now. &amp;nbsp;&lt;a href=&quot;http://p.sf.net/sfu/bobj-july&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://p.sf.net/sfu/bobj-july&lt;/a&gt;&lt;br&gt;_______________________________________________
&lt;br&gt;Octave-dev mailing list
&lt;br&gt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26201846&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;Octave-dev@...&lt;/a&gt;
&lt;br&gt;&lt;a href=&quot;https://lists.sourceforge.net/lists/listinfo/octave-dev&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://lists.sourceforge.net/lists/listinfo/octave-dev&lt;/a&gt;&lt;br&gt;&lt;p&gt;From forum: &lt;a href=&quot;http://old.nabble.com/octave-dev-f4193.html&quot; embed=&quot;fixTarget[4193]&quot; target=&quot;_top&quot; &gt;octave-dev&lt;/a&gt;&lt;/p&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/inv%28%29-crashes-when-called-with-a-complex-matrix-on-octave-3.2.3-tp26201846p26201846.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26199106</id>
	<title>Re: Please update the link of &quot;Windows installer (Octave and Octave-Forge)&quot; http://octave.sourceforge.net/</title>
	<published>2009-11-04T08:01:14Z</published>
	<updated>2009-11-04T08:01:14Z</updated>
	<author>
		<name>Søren Hauberg</name>
	</author>
	<content type="html">ons, 04 11 2009 kl. 16:49 +0100, skrev Benjamin Lindner:
&lt;br&gt;&amp;gt; Would it be an option to let the link point to the 
&lt;br&gt;&amp;gt; mingw-folder of sourceforge's files page instead 
&lt;br&gt;&amp;gt; of pointing it to a specific file directly?
&lt;br&gt;&amp;gt; This would save the step ofchanging the link every 
&lt;br&gt;&amp;gt; time a new file is uploaded.
&lt;br&gt;&lt;br&gt;Personally, I like that the user only have to click on the link on the
&lt;br&gt;front page to start the download. I'm afraid that some users will have a
&lt;br&gt;hard time browsing the SourceForge files-page.
&lt;br&gt;&lt;br&gt;That being said, I agree that we have a problem with the current
&lt;br&gt;approach. It's simply too error-prone to manually update the link all
&lt;br&gt;the time. I don't know if SourceForge provides some mechanism for
&lt;br&gt;dealing with this.
&lt;br&gt;&lt;br&gt;Søren
&lt;br&gt;&lt;br&gt;&lt;br&gt;------------------------------------------------------------------------------
&lt;br&gt;Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day 
&lt;br&gt;trial. Simplify your report design, integration and deployment - and focus on 
&lt;br&gt;what you do best, core application coding. Discover what's new with
&lt;br&gt;Crystal Reports now. &amp;nbsp;&lt;a href=&quot;http://p.sf.net/sfu/bobj-july&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://p.sf.net/sfu/bobj-july&lt;/a&gt;&lt;br&gt;_______________________________________________
&lt;br&gt;Octave-dev mailing list
&lt;br&gt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26199106&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;Octave-dev@...&lt;/a&gt;
&lt;br&gt;&lt;a href=&quot;https://lists.sourceforge.net/lists/listinfo/octave-dev&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://lists.sourceforge.net/lists/listinfo/octave-dev&lt;/a&gt;&lt;br&gt;&lt;p&gt;From forum: &lt;a href=&quot;http://old.nabble.com/octave-dev-f4193.html&quot; embed=&quot;fixTarget[4193]&quot; target=&quot;_top&quot; &gt;octave-dev&lt;/a&gt;&lt;/p&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/Please-update-the-link-of-%22Windows-installer-%28Octave-and-Octave-Forge%29%22-http%3A--octave.sourceforge.net--tp26122585p26199106.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26198878</id>
	<title>Re: Please update the link of &quot;Windows installer (Octave and Octave-Forge)&quot; http://octave.sourceforge.net/</title>
	<published>2009-11-04T07:49:55Z</published>
	<updated>2009-11-04T07:49:55Z</updated>
	<author>
		<name>Benjamin Lindner</name>
	</author>
	<content type="html">&lt;div class='shrinkable-quote'&gt;&amp;gt; fre, 30 10 2009 kl. 08:26 +0900, skrev Tatsuro MATSUOKA:
&lt;br&gt;&amp;gt; &amp;gt; The link of &amp;quot;Windows installer (Octave and Octave-Forge)&amp;quot; 
&lt;br&gt;&amp;gt; &lt;a href=&quot;http://octave.sourceforge.net/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://octave.sourceforge.net/&lt;/a&gt;&amp;nbsp;still points
&lt;br&gt;&amp;gt; &amp;gt; to the previos version of octave 3.2.2 /mingw32.
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; Fixed.
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; Thanks and sorry for the slow reply
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; Søren
&lt;br&gt;&amp;gt; 
&lt;/div&gt;&lt;br&gt;Would it be an option to let the link point to the 
&lt;br&gt;mingw-folder of sourceforge's files page instead 
&lt;br&gt;of pointing it to a specific file directly?
&lt;br&gt;This would save the step ofchanging the link every 
&lt;br&gt;time a new file is uploaded.
&lt;br&gt;&lt;br&gt;benjamin
&lt;br&gt;-- 
&lt;br&gt;DSL-Preisknaller: DSL Komplettpakete von GMX schon für 
&lt;br&gt;16,99 Euro mtl.!* Hier klicken: &lt;a href=&quot;http://portal.gmx.net/de/go/dsl02&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://portal.gmx.net/de/go/dsl02&lt;/a&gt;&lt;br&gt;&lt;br&gt;------------------------------------------------------------------------------
&lt;br&gt;Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day 
&lt;br&gt;trial. Simplify your report design, integration and deployment - and focus on 
&lt;br&gt;what you do best, core application coding. Discover what's new with
&lt;br&gt;Crystal Reports now. &amp;nbsp;&lt;a href=&quot;http://p.sf.net/sfu/bobj-july&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://p.sf.net/sfu/bobj-july&lt;/a&gt;&lt;br&gt;_______________________________________________
&lt;br&gt;Octave-dev mailing list
&lt;br&gt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26198878&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;Octave-dev@...&lt;/a&gt;
&lt;br&gt;&lt;a href=&quot;https://lists.sourceforge.net/lists/listinfo/octave-dev&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://lists.sourceforge.net/lists/listinfo/octave-dev&lt;/a&gt;&lt;br&gt;&lt;p&gt;From forum: &lt;a href=&quot;http://old.nabble.com/octave-dev-f4193.html&quot; embed=&quot;fixTarget[4193]&quot; target=&quot;_top&quot; &gt;octave-dev&lt;/a&gt;&lt;/p&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/Please-update-the-link-of-%22Windows-installer-%28Octave-and-Octave-Forge%29%22-http%3A--octave.sourceforge.net--tp26122585p26198878.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26198993</id>
	<title>Re: Contribution to Octave-forge with a simple Open-MPI Package</title>
	<published>2009-11-04T07:49:48Z</published>
	<updated>2009-11-04T07:49:48Z</updated>
	<author>
		<name>Riccardo Corradini</name>
	</author>
	<content type="html">&lt;table cellspacing=&quot;0&quot; cellpadding=&quot;0&quot; border=&quot;0&quot;&gt;&lt;tr&gt;&lt;td valign=&quot;top&quot; style=&quot;font: inherit;&quot;&gt;Hi Søren,&lt;br&gt;thanks for your quick reply.&lt;br&gt;The code is general-purpose, but as I told you I would love to use it for econometrics.&lt;br&gt;So the first step will be to install the following tarball from&lt;br&gt;http://www.open-mpi.org/software/ompi/v1.3/downloads/openmpi-1.3.3.tar.bz2&lt;br&gt;possibly in a multi-core computer to run my simple examples&lt;br&gt;and configure it for instance in the following way (/home/user is your $HOME)&lt;br&gt;./configure --enable-mpirun-prefix-by-default --enable-heterogeneous --prefix=/home/user/openmpi-1.3.3/ --enable-static&lt;br&gt;&lt;br&gt;and modify .bashrc in your home &lt;br&gt;&amp;nbsp;OMPIBIN=`$ompi_info -path&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; bindir&amp;nbsp; -parsable | cut -d: -f3`&lt;br&gt;&amp;nbsp;OMPILIB=`$ompi_info -path&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; libdir&amp;nbsp; -parsable | cut -d: -f3`&lt;br&gt;&amp;nbsp;OMPISCD=`$ompi_info -path sysconfdir&amp;nbsp; -parsable | cut -d:
 -f3`&lt;br&gt;&lt;br&gt;&amp;nbsp;OSCBIN=~/oompi-1.0.4/bin &lt;br&gt;&lt;br&gt;export&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; PATH=$OMPIBIN:$PATH&lt;br&gt;export&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; PATH=$OSCBIN:$PATH&lt;br&gt;export LD_LIBRARY_PATH=:$OMPILIB:$LD_LIBRARY_PATH&lt;br&gt;&lt;br&gt;unset&amp;nbsp; ompi_info OMPIBIN OMPILIB OMPISCD OSCBIN&lt;br&gt;&lt;br&gt;After this type in a terminal mpiCC --showme&lt;br&gt;In my case I will have something like&lt;br&gt;&lt;br&gt;g++ -I/home/user/openmpi-1.3.3/include -pthread -L/home/user/openmpi-1.3.3/lib -lmpi_cxx -lmpi -lopen-rte -lopen-pal -ldl -Wl,--export-dynamic -lnsl -lutil -lm -ldl&lt;br&gt;&lt;br&gt;This will be useful for mkoctfile&lt;br&gt;&lt;br&gt;Now I will include the basic functions&lt;br&gt;&lt;br&gt;// mkoctfile -I/home/corradin/openmpi-1.3.3/include -lpthread -L/home/corradin/openmpi-1.3.3/lib -lmpi_cxx -lmpi -lopen-rte -lopen-pal -ldl -lnsl -lutil -lm -ldl MPI_Init.cc&lt;br&gt;/*&lt;br&gt;## Copyright (C) 2004-2007 Javier Fernández Baldomero, Mancia Anguita López&lt;br&gt;##&lt;br&gt;## This
 program is free software&lt;br&gt;## ----------------------------------------------------&lt;br&gt;## Author: Javier Fernández Baldomero &amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26198993&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;jfernand@...&lt;/a&gt;&amp;gt;, Mancia Anguita López&lt;br&gt;## Keywords: parallel MPI&lt;br&gt;## tested on octave 3.2.3 by Riccardo Corradini&lt;br&gt;## ----------------------------------------------------&lt;br&gt;&amp;nbsp;*/&lt;br&gt;#define&amp;nbsp;&amp;nbsp; NAME&amp;nbsp; MPI_Init&lt;br&gt;/*&lt;br&gt;&amp;nbsp;* ----------------------------------------------------&lt;br&gt;&amp;nbsp;* Initialize the MPI execution environment&lt;br&gt;&amp;nbsp;* info = MPI_Init [ ( 'arg' [, 'arg']... ) ]&lt;br&gt;&amp;nbsp;* ----------------------------------------------------&lt;br&gt;&amp;nbsp;*/&lt;br&gt;#include &quot;mpi.h&quot;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; // mpi.h, oct.h&lt;br&gt;#include &amp;lt;octave/oct.h&amp;gt;&lt;br&gt;&lt;br&gt;DEFUN_DLD(NAME, args, nargout,&lt;br&gt;&quot;MPI_Init&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Initialize the MPI execution environment\n\&lt;br&gt;\n\&lt;br&gt;&amp;nbsp; info = MPI_Init [ ( 'arg' [, 'arg']... )
 ]\n\&lt;br&gt;\n\&lt;br&gt;&amp;nbsp; arg (str) arguments to pass\n\&lt;br&gt;&amp;nbsp; info(int) return code\n\&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0 MPI_SUCCESS&amp;nbsp;&amp;nbsp;&amp;nbsp; No error\n\&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 16 MPI_ERR_OTHER&amp;nbsp; Attempt was made to call MPI_INIT a&amp;nbsp; second&amp;nbsp; time\n\&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; MPI_INIT may only be called once in a program\n\&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; \n\&lt;br&gt;\n\&lt;br&gt;&amp;nbsp; SEE ALSO: MPI_Finalize, MPI_Initialized, MPI_Finalized\n\&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; misc\n\&lt;br&gt;\n\&lt;br&gt;&quot;)&lt;br&gt;{&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; int nargin = args.length();&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; // Too flexible to use NARGCHK&lt;br&gt;/*&lt;br&gt;&amp;nbsp;* info = MPI_Init [ ( 'arg' [,
 'arg']... ) ]&lt;br&gt;&amp;nbsp;*/&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; for (int i=0; i&amp;lt;nargin; i++){&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if( ! args(i).is_string() ) {&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; error(&quot;MPI_Init: args must be strings&quot;);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; return octave_value (MPI_ERR_ARG);&amp;nbsp;&amp;nbsp;&amp;nbsp; // error returns nothing&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; string_vector argvec = args.make_argv(&quot;MPI_Init&quot;);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; char **argve= argvec.c_str_vec();&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; char **argv =&amp;amp;argve[1];&lt;br&gt;&lt;br&gt;//&amp;nbsp; printf(&quot;args: &quot;); for (int i=0; i&amp;lt;nargin; i++) printf(&quot;%s &quot;,argv[i]);&lt;br&gt;//&amp;nbsp; printf(&quot;\n&quot;);&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; int info = MPI_Init(&amp;amp;nargin, &amp;amp;argv);&lt;br&gt;//&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; int info = MPI::Init();&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; free(argve);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; return octave_value (info);&lt;br&gt;}&lt;br&gt;&amp;nbsp;&lt;br&gt;&lt;br&gt;#define&amp;nbsp;&amp;nbsp; NAME&amp;nbsp;
 MPI_Comm_rank&lt;br&gt;/*&lt;br&gt;&amp;nbsp;* ----------------------------------------------------&lt;br&gt;&amp;nbsp;* Determines the rank of the calling process in the communicator&lt;br&gt;&amp;nbsp;* [info rank] = MPI_Comm_rank (comm)&lt;br&gt;&amp;nbsp;* ----------------------------------------------------&lt;br&gt;&amp;nbsp;*/&lt;br&gt;&lt;br&gt;#include &amp;lt;octave/oct.h&amp;gt;&lt;br&gt;#include &quot;mpi.h&quot;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br&gt;&lt;br&gt;DEFUN_DLD(NAME, args, nargout,&lt;br&gt;&quot;MPI_Comm_rank&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Determines rank of calling process in communicator\n\&lt;br&gt;\n\&lt;br&gt;&amp;nbsp; [info rank] =&amp;nbsp; MPI_Comm_rank (comm)\n\&lt;br&gt;\n\&lt;br&gt;&amp;nbsp; comm (int) communicator handle. MPI_COMM_NULL not valid\n\&lt;br&gt;&amp;nbsp; rank (int) rank of the calling process in group of comm\n\&lt;br&gt;\n\&lt;br&gt;&amp;nbsp; info (int) return code\n\&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0 MPI_SUCCESS&amp;nbsp;&amp;nbsp;&amp;nbsp; No error\n\&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 5 MPI_ERR_COMM&amp;nbsp;&amp;nbsp; Invalid communicator
 (NULL?)\n\&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 13 MPI_ERR_ARG&amp;nbsp;&amp;nbsp;&amp;nbsp; Invalid argument (typically a NULL pointer?)\n\&lt;br&gt;\n\&lt;br&gt;&amp;nbsp; SEE ALSO: MPI_Comm_size\n\&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; comms\n\&lt;br&gt;\n\&lt;br&gt;&quot;)&lt;br&gt;&lt;br&gt;{&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; octave_value_list results;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; int my_rank;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; int info = MPI_Comm_rank(MPI_COMM_WORLD,&amp;amp;my_rank);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; results(0) = info;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; results(1) = my_rank;&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* [info rank] = MPI_Comm_rank (comm) */&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; return results;&lt;br&gt;}&lt;br&gt;&lt;br&gt;#define&amp;nbsp;&amp;nbsp; NAME&amp;nbsp; MPI_Comm_size&lt;br&gt;/*&lt;br&gt;&amp;nbsp;* ----------------------------------------------------&lt;br&gt;&amp;nbsp;* Determines the size of the calling process in the communicator&lt;br&gt;&amp;nbsp;* [info rank] = MPI_Comm_size (comm)&lt;br&gt;&amp;nbsp;*
 ----------------------------------------------------&lt;br&gt;&amp;nbsp;*/&lt;br&gt;&lt;br&gt;#include &amp;lt;octave/oct.h&amp;gt;&lt;br&gt;#include &quot;mpi.h&quot;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br&gt;&lt;br&gt;DEFUN_DLD(NAME, args, nargout,&lt;br&gt;&quot;MPI_Comm_size&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Determines rank of calling process in communicator\n\&lt;br&gt;\n\&lt;br&gt;&amp;nbsp; [info rank] =&amp;nbsp; MPI_Comm_size (comm)\n\&lt;br&gt;\n\&lt;br&gt;&amp;nbsp; comm (int) communicator handle. MPI_COMM_NULL not valid\n\&lt;br&gt;&amp;nbsp; size (int) size of the calling process in group of comm\n\&lt;br&gt;\n\&lt;br&gt;&amp;nbsp; info (int) return code\n\&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0 MPI_SUCCESS&amp;nbsp;&amp;nbsp;&amp;nbsp; No error\n\&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 5 MPI_ERR_COMM&amp;nbsp;&amp;nbsp; Invalid communicator (NULL?)\n\&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 13 MPI_ERR_ARG&amp;nbsp;&amp;nbsp;&amp;nbsp; Invalid argument (typically a NULL pointer?)\n\&lt;br&gt;\n\&lt;br&gt;&amp;nbsp; SEE ALSO: MPI_Comm_rank\n\&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
 comms\n\&lt;br&gt;\n\&lt;br&gt;&quot;)&lt;br&gt;&lt;br&gt;{&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; octave_value_list results;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; int my_size;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; int info = MPI_Comm_size(MPI_COMM_WORLD,&amp;amp;my_size);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; results(0) = info;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; results(1) = my_size;&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* [info rank] = MPI_Comm_size (comm) */&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; return results;&lt;br&gt;}&lt;br&gt;&lt;br&gt;&lt;br&gt;#define&amp;nbsp;&amp;nbsp; NAME&amp;nbsp;&amp;nbsp;&amp;nbsp; MPI_Finalize&lt;br&gt;/*&lt;br&gt;&amp;nbsp;* ----------------------------------------------------&lt;br&gt;&amp;nbsp;* Terminates MPI execution environment&lt;br&gt;&amp;nbsp;* info = MPI_Finalize&lt;br&gt;&amp;nbsp;* ----------------------------------------------------&lt;br&gt;&amp;nbsp;*/&lt;br&gt;#include &quot;mpi.h&quot;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br&gt;#include &amp;lt;octave/oct.h&amp;gt;&lt;br&gt;&lt;br&gt;DEFUN_DLD(NAME, args, nargout,&lt;br&gt;&quot;MPI_Finalize&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Terminates MPI execution environment\n\&lt;br&gt;\n\&lt;br&gt;&amp;nbsp;
 info = MPI_Finalize\n\&lt;br&gt;\n\&lt;br&gt;&amp;nbsp; info(int) return code\n\&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0 MPI_SUCCESS&amp;nbsp;&amp;nbsp;&amp;nbsp; No error\n\&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 17 MPI_ERR_INTERN This is fatal. Please send bug report to LAM\n\&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 16 MPI_ERR_OTHER&amp;nbsp; A different thread attempts to finalize MPI than\n\&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; the thread that initialized MPI\n\&lt;br&gt;\n\&lt;br&gt;&amp;nbsp; SEE ALSO: MPI_Init, MPI_Initialized, MPI_Finalized\n\&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; misc\n\&lt;br&gt;\n\&lt;br&gt;&quot;)&lt;br&gt;{&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; int info = MPI_Finalize();&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; return octave_value(info);&lt;br&gt;}&lt;br&gt;&lt;br&gt;#define&amp;nbsp;&amp;nbsp; NAME&amp;nbsp; MPI_Finalized&lt;br&gt;/* &lt;br&gt;&amp;nbsp;* ----------------------------------------------------&lt;br&gt;&amp;nbsp;* Indicates whether
 MPI_Finalize has completed&lt;br&gt;&amp;nbsp;* [info flag] = MPI_Finalized&lt;br&gt;&amp;nbsp;* ----------------------------------------------------&lt;br&gt;&amp;nbsp;*/&lt;br&gt;#include &quot;mpi.h&quot;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br&gt;#include &amp;lt;octave/oct.h&amp;gt;&lt;br&gt;&lt;br&gt;DEFUN_DLD(NAME, args, nargout,&lt;br&gt;&quot;MPI_Finalized&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Indicates whether MPI_Finalize has completed\n\&lt;br&gt;\n\&lt;br&gt;&amp;nbsp; [info flag] = MPI_Finalized\n\&lt;br&gt;\n\&lt;br&gt;&amp;nbsp; flag(int) 0 false\n\&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1 true\n\&lt;br&gt;\n\&lt;br&gt;&amp;nbsp; info(int) return code\n\&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0 MPI_SUCCESS&amp;nbsp;&amp;nbsp;&amp;nbsp; This function always returns MPI_SUCCESS\n\&lt;br&gt;\n\&lt;br&gt;&amp;nbsp; SEE ALSO: MPI_Init, MPI_Finalize, MPI_Initialized\n\&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; misc\n\&lt;br&gt;\n\&lt;br&gt;&quot;)&lt;br&gt;{&lt;br&gt;&amp;nbsp;&amp;nbsp; octave_value_list results;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; int flag;&amp;nbsp;&amp;nbsp;&amp;nbsp;
 &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; // Too flexible to use NARGCHK&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; int info = MPI_Finalized(&amp;amp;flag);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; results(0) = info;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; results(1) = flag;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; return results;&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* [info flag] = MPI_Finalized */&lt;br&gt;}&lt;br&gt;&lt;br&gt;// mkoctfile -lpthread -L/home/user/openmpi-1.3.3/lib -lmpi_cxx -lmpi -lopen-rte -lopen-pal -ldl&amp;nbsp; -lnsl -lutil -lm -ldl MPI_Initialized.cc&lt;br&gt;&lt;br&gt;#define&amp;nbsp;&amp;nbsp; NAME&amp;nbsp; MPI_Initialized&lt;br&gt;/*&lt;br&gt;&amp;nbsp;* ----------------------------------------------------&lt;br&gt;&amp;nbsp;* Indicates whether MPI_Init has been called&lt;br&gt;&amp;nbsp;* [info flag] = MPI_Initialized&lt;br&gt;&amp;nbsp;* ----------------------------------------------------&lt;br&gt;&amp;nbsp;*/&lt;br&gt;#include &quot;mpi.h&quot;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br&gt;#include &amp;lt;octave/oct.h&amp;gt;&lt;br&gt;&lt;br&gt;DEFUN_DLD(NAME, args, nargout,&lt;br&gt;&quot;MPI_Initialized&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
 Indicates whether MPI_Init has been called\n\&lt;br&gt;\n\&lt;br&gt;&amp;nbsp; [info flag] = MPI_Initialized\n\&lt;br&gt;\n\&lt;br&gt;&amp;nbsp; flag(int) 0 false\n\&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1 true\n\&lt;br&gt;\n\&lt;br&gt;&amp;nbsp; info(int) return code\n\&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0 MPI_SUCCESS&amp;nbsp;&amp;nbsp;&amp;nbsp; This function always returns MPI_SUCCESS\n\&lt;br&gt;\n\&lt;br&gt;&amp;nbsp; SEE ALSO: MPI_Init, MPI_Finalize,\n\&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; misc\n\&lt;br&gt;\n\&lt;br&gt;&quot;)&lt;br&gt;{&lt;br&gt;&amp;nbsp;&amp;nbsp; octave_value_list results;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; int flag;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; // Too flexible to use NARGCHK&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; int info = MPI_Initialized(&amp;amp;flag);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; results(0) = info;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; results(1) = flag;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; return results;&lt;br&gt;}&lt;br&gt;&lt;br&gt;The following two functions MPI_Send and MPI_Recv are my real simple original
 contribution (I will report some test script as well)&lt;br&gt;&lt;br&gt;MPI_Send.cc&lt;br&gt;&lt;br&gt;// mkoctfile -lpthread&amp;nbsp; -I/home/user/openmpi-1.3.3/include/&amp;nbsp; -L/home/user/openmpi-1.3.3/lib -lmpi_cxx -lmpi -lopen-rte -lopen-pal -ldl&amp;nbsp; -lnsl -lutil -lm -ldl MPI_Send.cc&lt;br&gt;&lt;br&gt;// mkoctfile -lpthread&amp;nbsp; -I/home/corradin/openmpi-1.3.3/include/&amp;nbsp; -L/home/corradin/openmpi-1.3.3/lib -lmpi_cxx -lmpi -lopen-rte -lopen-pal -ldl&amp;nbsp; -lnsl -lutil -lm -ldl MPI_Send.cc&lt;br&gt;&lt;br&gt;&lt;br&gt;/*&lt;br&gt;&amp;nbsp;* sends most Octave datatypes into contiguous memory&lt;br&gt;&amp;nbsp;* using derived datatypes&lt;br&gt;&amp;nbsp;* info = MPI_Send(var,rank)&lt;br&gt;&amp;nbsp;*/&lt;br&gt;#include &quot;mpi.h&quot;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br&gt;#include &amp;lt;octave/oct.h&amp;gt;&lt;br&gt;#include &amp;lt;ov-cell.h&amp;gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // avoid errmsg &quot;cell -- incomplete datatype&quot;&lt;br&gt;#include &amp;lt;oct-map.h&amp;gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // avoid errmsg &quot;Oct.map -- invalid use undef type&quot;&lt;br&gt;&lt;br&gt;enum ov_t_id&lt;br&gt;{&lt;br&gt;&lt;br&gt;ov_unknown=0,&lt;br&gt;ov_cell,&amp;nbsp;&amp;nbsp;&amp;nbsp;
 &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; // 1&lt;br&gt;ov_scalar,&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; // 2&lt;br&gt;ov_complex_scalar,&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; // 3&lt;br&gt;ov_matrix,&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; // 4&lt;br&gt;ov_diagonal_matrix,&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; // 5&lt;br&gt;ov_complex_matrix,&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; // 6&lt;br&gt;ov_complex_diagonal_matrix,&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; // 7&lt;br&gt;ov_range,&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; // 8&lt;br&gt;ov_bool,&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; // 9&lt;br&gt;ov_bool_matrix,&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; // 10&lt;br&gt;ov_char_matrix,&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; // 11&lt;br&gt;ov_string,&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; // 12&lt;br&gt;ov_sq_string,&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; // 13&lt;br&gt;ov_int8_scalar,&amp;nbsp;&amp;nbsp;&amp;nbsp;
 &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; // 14&lt;br&gt;ov_int16_scalar,&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; // 15&lt;br&gt;ov_int32_scalar,&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; // 16&lt;br&gt;ov_int64_scalar,&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; // 17&lt;br&gt;ov_uint8_scalar,&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; // 18&lt;br&gt;ov_uint16_scalar,&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; // 19&lt;br&gt;ov_uint32_scalar,&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; // 20&lt;br&gt;ov_uint64_scalar,&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; // 21&lt;br&gt;ov_int8_matrix,&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; // 22&lt;br&gt;ov_int16_matrix,&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; // 23&lt;br&gt;ov_int32_matrix,&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; // 24&lt;br&gt;ov_int64_matrix,&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; // 25&lt;br&gt;ov_uint8_matrix,&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; // 26&lt;br&gt;ov_uint16_matrix,&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; // 27&lt;br&gt;ov_uint32_matrix,&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; //
 28&lt;br&gt;ov_uint64_matrix,&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; // 29&lt;br&gt;ov_sparse_bool_matrix,&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; // 30&lt;br&gt;ov_sparse_matrix,&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; // 31&lt;br&gt;ov_sparse_complex_matrix,&amp;nbsp;&amp;nbsp;&amp;nbsp; // 32&lt;br&gt;ov_struct,&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; // 33&lt;br&gt;ov_class,&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; // 34&lt;br&gt;ov_list,&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; // 35&lt;br&gt;ov_cs_list,&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; // 36&lt;br&gt;ov_magic_colon,&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; // 37&lt;br&gt;ov_built_in_function,&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; // 38&lt;br&gt;ov_user_defined_function,&amp;nbsp;&amp;nbsp;&amp;nbsp; // 39&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br&gt;ov_dynamically_linked_function,&amp;nbsp;&amp;nbsp;&amp;nbsp; // 40&lt;br&gt;ov_function_handle,&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; // 41&lt;br&gt;ov_inline_function,&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; //
 42&lt;br&gt;ov_float_scalar,&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; // 43&lt;br&gt;ov_float_complex_scalar,&amp;nbsp;&amp;nbsp;&amp;nbsp; // 44&lt;br&gt;ov_float_matrix,&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; // 45&lt;br&gt;ov_float_diagonal_matrix,&amp;nbsp;&amp;nbsp;&amp;nbsp; // 46&lt;br&gt;ov_float_complex_matrix,&amp;nbsp;&amp;nbsp;&amp;nbsp; // 47&lt;br&gt;ov_float_complex_diagonal_matrix,&amp;nbsp;&amp;nbsp;&amp;nbsp; // 48&lt;br&gt;ov_permutation_matrix,&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; // 49&lt;br&gt;ov_null_matrix,&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; // 50&lt;br&gt;ov_null_string,&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; // 51&lt;br&gt;ov_null_sq_string,&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; // 52&lt;br&gt;};&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;/*----------------------------------*/&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; /* forward declaration */&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;int send_class( octave_value ov,&amp;nbsp; ColumnVector rankrec, int mytag);&amp;nbsp;&amp;nbsp;&amp;nbsp;
 &amp;nbsp;&amp;nbsp;&amp;nbsp; /* along the datatype */&lt;br&gt;/*----------------------------------*/&amp;nbsp;&amp;nbsp;&amp;nbsp; /* to send any octave_value */&lt;br&gt;int send_scalar( double d, ColumnVector rankrec, int mytag){&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; /* directly MPI_Send it, */&lt;br&gt;/*-----------------------------*/&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; /* it's just a double value */&lt;br&gt;&amp;nbsp; int info;&lt;br&gt;&amp;nbsp; int t_id = ov_scalar;&lt;br&gt;&amp;nbsp; int tanktag[2];&lt;br&gt;&amp;nbsp; tanktag[0] = mytag;&lt;br&gt;&amp;nbsp; tanktag[1] = mytag+1;&lt;br&gt;&amp;nbsp; for (octave_idx_type&amp;nbsp; i = 0; i&amp;lt; rankrec.nelem(); i++)&lt;br&gt;&amp;nbsp; { &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; info = MPI_Send(&amp;amp;t_id, 1, MPI_INT, rankrec(i), tanktag[0], MPI_COMM_WORLD);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; if (info !=MPI_SUCCESS) return info;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; info = MPI_Send((&amp;amp;d), 1,MPI_DOUBLE, rankrec(i), tanktag[1], MPI_COMM_WORLD);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; if (info !=MPI_SUCCESS) return
 info;&lt;br&gt;&amp;nbsp; }&lt;br&gt;&amp;nbsp;&amp;nbsp; return(MPI_SUCCESS);&lt;br&gt;}&lt;br&gt;&lt;br&gt;int send_float_scalar( float d, ColumnVector rankrec, int mytag){&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; /* directly MPI_Send it, */&lt;br&gt;/*-----------------------------*/&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; /* it's just a double value */&lt;br&gt;&amp;nbsp; int info;&lt;br&gt;&amp;nbsp; int t_id = ov_float_scalar;&lt;br&gt;&amp;nbsp; int tanktag[2];&lt;br&gt;&amp;nbsp; tanktag[0] = mytag;&lt;br&gt;&amp;nbsp; tanktag[1] = mytag+1;&lt;br&gt;&amp;nbsp; for (octave_idx_type&amp;nbsp; i = 0; i&amp;lt; rankrec.nelem(); i++)&lt;br&gt;&amp;nbsp; { &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; info = MPI_Send(&amp;amp;t_id, 1, MPI_INT, rankrec(i), tanktag[0], MPI_COMM_WORLD);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; if (info !=MPI_SUCCESS) return info;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; info = MPI_Send((&amp;amp;d), 1,MPI_FLOAT, rankrec(i), tanktag[1], MPI_COMM_WORLD);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; if (info !=MPI_SUCCESS) return info;&lt;br&gt;&amp;nbsp; }&lt;br&gt;&amp;nbsp;&amp;nbsp;
 return(MPI_SUCCESS);&lt;br&gt;}&lt;br&gt;&lt;br&gt;int send_i8( octave_int8 d, ColumnVector rankrec, int mytag){&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; /* directly MPI_Send it, */&lt;br&gt;/*-----------------------------*/&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; /* it's just a double value */&lt;br&gt;&amp;nbsp; int info;&lt;br&gt;&amp;nbsp; int t_id = ov_int8_scalar;&lt;br&gt;&amp;nbsp; int tanktag[2];&lt;br&gt;&amp;nbsp; tanktag[0] = mytag;&lt;br&gt;&amp;nbsp; tanktag[1] = mytag+1;&lt;br&gt;&amp;nbsp; for (octave_idx_type&amp;nbsp; i = 0; i&amp;lt; rankrec.nelem(); i++)&lt;br&gt;&amp;nbsp; { &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; info = MPI_Send(&amp;amp;t_id, 1, MPI_INT, rankrec(i), tanktag[0], MPI_COMM_WORLD);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; if (info !=MPI_SUCCESS) return info;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; info = MPI_Send((&amp;amp;d), 1,MPI_BYTE, rankrec(i), tanktag[1], MPI_COMM_WORLD);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; if (info !=MPI_SUCCESS) return info;&lt;br&gt;&amp;nbsp; }&lt;br&gt;&amp;nbsp;&amp;nbsp; return(MPI_SUCCESS);&lt;br&gt;}&lt;br&gt;&lt;br&gt;int send_i16( octave_int16 d,
 ColumnVector rankrec, int mytag){&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; /* directly MPI_Send it, */&lt;br&gt;/*-----------------------------*/&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; /* it's just a double value */&lt;br&gt;&amp;nbsp; int info;&lt;br&gt;&amp;nbsp; int t_id = ov_int16_scalar;&lt;br&gt;&amp;nbsp; OCTAVE_LOCAL_BUFFER(int,tanktag,2);&lt;br&gt;//&amp;nbsp;&amp;nbsp; int tanktag[2];&lt;br&gt;&amp;nbsp; tanktag[0] = mytag;&lt;br&gt;&amp;nbsp; tanktag[1] = mytag+1;&lt;br&gt;&amp;nbsp; for (octave_idx_type&amp;nbsp; i = 0; i&amp;lt; rankrec.nelem(); i++)&lt;br&gt;&amp;nbsp; { &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; info = MPI_Send(&amp;amp;t_id, 1, MPI_INT, rankrec(i), tanktag[0], MPI_COMM_WORLD);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; if (info !=MPI_SUCCESS) return info;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; info = MPI_Send((&amp;amp;d), 1,MPI_SHORT, rankrec(i), tanktag[1], MPI_COMM_WORLD);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; if (info !=MPI_SUCCESS) return info;&lt;br&gt;&amp;nbsp; }&lt;br&gt;&amp;nbsp;&amp;nbsp; return(MPI_SUCCESS);&lt;br&gt;}&lt;br&gt;&lt;br&gt;int send_i32( octave_int32 d,
 ColumnVector rankrec, int mytag){&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; /* directly MPI_Send it, */&lt;br&gt;/*-----------------------------*/&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; /* it's just a double value */&lt;br&gt;&amp;nbsp; int info;&lt;br&gt;&amp;nbsp; int t_id = ov_int32_scalar;&lt;br&gt;&amp;nbsp; OCTAVE_LOCAL_BUFFER(int,tanktag,2);&lt;br&gt;//&amp;nbsp;&amp;nbsp; int tanktag[2];&lt;br&gt;&amp;nbsp; tanktag[0] = mytag;&lt;br&gt;&amp;nbsp; tanktag[1] = mytag+1;&lt;br&gt;&amp;nbsp; for (octave_idx_type&amp;nbsp; i = 0; i&amp;lt; rankrec.nelem(); i++)&lt;br&gt;&amp;nbsp; { &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; info = MPI_Send(&amp;amp;t_id, 1, MPI_INT, rankrec(i), tanktag[0], MPI_COMM_WORLD);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; if (info !=MPI_SUCCESS) return info;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; info = MPI_Send((&amp;amp;d), 1,MPI_INT, rankrec(i), tanktag[1], MPI_COMM_WORLD);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; if (info !=MPI_SUCCESS) return info;&lt;br&gt;&amp;nbsp; }&lt;br&gt;&amp;nbsp;&amp;nbsp; return(MPI_SUCCESS);&lt;br&gt;}&lt;br&gt;&lt;br&gt;int send_i64( octave_int64 d,
 ColumnVector rankrec, int mytag){&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; /* directly MPI_Send it, */&lt;br&gt;/*-----------------------------*/&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; /* it's just a value */&lt;br&gt;&amp;nbsp; int info;&lt;br&gt;&amp;nbsp; int t_id = ov_int64_scalar;&lt;br&gt;&amp;nbsp; OCTAVE_LOCAL_BUFFER(int,tanktag,2);&lt;br&gt;//&amp;nbsp;&amp;nbsp; int tanktag[2];&lt;br&gt;&amp;nbsp; tanktag[0] = mytag;&lt;br&gt;&amp;nbsp; tanktag[1] = mytag+1;&lt;br&gt;&amp;nbsp; for (octave_idx_type&amp;nbsp; i = 0; i&amp;lt; rankrec.nelem(); i++)&lt;br&gt;&amp;nbsp; { &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; info = MPI_Send(&amp;amp;t_id, 1, MPI_INT, rankrec(i), tanktag[0], MPI_COMM_WORLD);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; if (info !=MPI_SUCCESS) return info;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; info = MPI_Send((&amp;amp;d), 1,MPI_LONG_LONG, rankrec(i), tanktag[1], MPI_COMM_WORLD);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; if (info !=MPI_SUCCESS) return info;&lt;br&gt;&amp;nbsp; }&lt;br&gt;&amp;nbsp;&amp;nbsp; return(MPI_SUCCESS);&lt;br&gt;}&lt;br&gt;&lt;br&gt;int send_ui64( octave_uint64 d,
 ColumnVector rankrec, int mytag){&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; /* directly MPI_Send it, */&lt;br&gt;/*-----------------------------*/&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; /* it's just a&amp;nbsp; value */&lt;br&gt;&amp;nbsp; int info;&lt;br&gt;&amp;nbsp; int t_id = ov_uint64_scalar;&lt;br&gt;&amp;nbsp; OCTAVE_LOCAL_BUFFER(int,tanktag,2);&lt;br&gt;//&amp;nbsp;&amp;nbsp; int tanktag[2];&lt;br&gt;&amp;nbsp; tanktag[0] = mytag;&lt;br&gt;&amp;nbsp; tanktag[1] = mytag+1;&lt;br&gt;&amp;nbsp; for (octave_idx_type&amp;nbsp; i = 0; i&amp;lt; rankrec.nelem(); i++)&lt;br&gt;&amp;nbsp; { &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; info = MPI_Send(&amp;amp;t_id, 1, MPI_INT, rankrec(i), tanktag[0], MPI_COMM_WORLD);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; if (info !=MPI_SUCCESS) return info;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; info = MPI_Send((&amp;amp;d), 1,MPI_UNSIGNED_LONG_LONG, rankrec(i), tanktag[1], MPI_COMM_WORLD);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; if (info !=MPI_SUCCESS) return info;&lt;br&gt;&amp;nbsp; }&lt;br&gt;&amp;nbsp;&amp;nbsp; return(MPI_SUCCESS);&lt;br&gt;}&lt;br&gt;&lt;br&gt;int send_ui32(
 octave_uint32 d, ColumnVector rankrec, int mytag){&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; /* directly MPI_Send it, */&lt;br&gt;/*-----------------------------*/&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; /* it's just a value */&lt;br&gt;&amp;nbsp; int info;&lt;br&gt;&amp;nbsp; int t_id = ov_uint32_scalar;&lt;br&gt;&amp;nbsp; OCTAVE_LOCAL_BUFFER(int,tanktag,2);&lt;br&gt;//&amp;nbsp;&amp;nbsp; int tanktag[2];&lt;br&gt;&amp;nbsp; tanktag[0] = mytag;&lt;br&gt;&amp;nbsp; tanktag[1] = mytag+1;&lt;br&gt;&amp;nbsp; for (octave_idx_type&amp;nbsp; i = 0; i&amp;lt; rankrec.nelem(); i++)&lt;br&gt;&amp;nbsp; { &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; info = MPI_Send(&amp;amp;t_id, 1, MPI_INT, rankrec(i), tanktag[0], MPI_COMM_WORLD);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; if (info !=MPI_SUCCESS) return info;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; info = MPI_Send((&amp;amp;d), 1,MPI_UNSIGNED, rankrec(i), tanktag[1], MPI_COMM_WORLD);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; if (info !=MPI_SUCCESS) return info;&lt;br&gt;&amp;nbsp; }&lt;br&gt;&amp;nbsp;&amp;nbsp; return(MPI_SUCCESS);&lt;br&gt;}&lt;br&gt;&lt;br&gt;int send_ui16(
 octave_uint16 d, ColumnVector rankrec, int mytag){&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; /* directly MPI_Send it, */&lt;br&gt;/*-----------------------------*/&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; /* it's just a&amp;nbsp; value */&lt;br&gt;&amp;nbsp; int info;&lt;br&gt;&amp;nbsp; int t_id = ov_uint16_scalar;&lt;br&gt;&amp;nbsp; OCTAVE_LOCAL_BUFFER(int,tanktag,2);&lt;br&gt;//&amp;nbsp;&amp;nbsp; int tanktag[2];&lt;br&gt;&amp;nbsp; tanktag[0] = mytag;&lt;br&gt;&amp;nbsp; tanktag[1] = mytag+1;&lt;br&gt;&amp;nbsp; for (octave_idx_type&amp;nbsp; i = 0; i&amp;lt; rankrec.nelem(); i++)&lt;br&gt;&amp;nbsp; { &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; info = MPI_Send(&amp;amp;t_id, 1, MPI_INT, rankrec(i), tanktag[0], MPI_COMM_WORLD);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; if (info !=MPI_SUCCESS) return info;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; info = MPI_Send((&amp;amp;d), 1,MPI_UNSIGNED_SHORT, rankrec(i), tanktag[1], MPI_COMM_WORLD);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; if (info !=MPI_SUCCESS) return info;&lt;br&gt;&amp;nbsp; }&lt;br&gt;&amp;nbsp;&amp;nbsp; return(MPI_SUCCESS);&lt;br&gt;}&lt;br&gt;&lt;br&gt;&lt;br&gt;int
 send_ui8( octave_uint8 d, ColumnVector rankrec, int mytag){&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; /* directly MPI_Send it, */&lt;br&gt;/*-----------------------------*/&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; /* it's just a value */&lt;br&gt;&amp;nbsp; int info;&lt;br&gt;&amp;nbsp; int t_id = ov_uint8_scalar;&lt;br&gt;&amp;nbsp; OCTAVE_LOCAL_BUFFER(int,tanktag,2);&lt;br&gt;//&amp;nbsp;&amp;nbsp; int tanktag[2];&lt;br&gt;&amp;nbsp; tanktag[0] = mytag;&lt;br&gt;&amp;nbsp; tanktag[1] = mytag+1;&lt;br&gt;&amp;nbsp; for (octave_idx_type&amp;nbsp; i = 0; i&amp;lt; rankrec.nelem(); i++)&lt;br&gt;&amp;nbsp; { &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; info = MPI_Send(&amp;amp;t_id, 1, MPI_INT, rankrec(i), tanktag[0], MPI_COMM_WORLD);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; if (info !=MPI_SUCCESS) return info;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; info = MPI_Send((&amp;amp;d), 1,MPI_UNSIGNED_CHAR, rankrec(i), tanktag[1], MPI_COMM_WORLD);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; if (info !=MPI_SUCCESS) return info;&lt;br&gt;&amp;nbsp; }&lt;br&gt;&amp;nbsp;&amp;nbsp; return(MPI_SUCCESS);&lt;br&gt;}&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;int
 send_bool( int d, ColumnVector rankrec, int mytag){&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; /* directly MPI_Send it, */&lt;br&gt;/*-----------------------------*/&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; /* it's just a&amp;nbsp; value */&lt;br&gt;&amp;nbsp; int info;&lt;br&gt;&amp;nbsp; int t_id = ov_bool;&lt;br&gt;&amp;nbsp; int tanktag[2];&lt;br&gt;&amp;nbsp; tanktag[0] = mytag;&lt;br&gt;&amp;nbsp; tanktag[1] = mytag+1;&lt;br&gt;&amp;nbsp; for (octave_idx_type&amp;nbsp; i = 0; i&amp;lt; rankrec.nelem(); i++)&lt;br&gt;&amp;nbsp; { &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; info = MPI_Send(&amp;amp;t_id, 1, MPI_INT, rankrec(i), tanktag[0], MPI_COMM_WORLD);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; if (info !=MPI_SUCCESS) return info;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; info = MPI_Send((&amp;amp;d), 1,MPI_DOUBLE, rankrec(i), tanktag[1], MPI_COMM_WORLD);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; if (info !=MPI_SUCCESS) return info;&lt;br&gt;&amp;nbsp; }&lt;br&gt;&amp;nbsp;&amp;nbsp; return(MPI_SUCCESS);&lt;br&gt;}&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;int send_complex_scalar( Complex c, ColumnVector rankrec, int
 mytag){&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; /* directly MPI_Send it, */&lt;br&gt;/*-----------------------------*/&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; /* it's just a value */&lt;br&gt;&amp;nbsp; int info;&lt;br&gt;&amp;nbsp; int t_id = ov_complex_scalar;&lt;br&gt;&amp;nbsp; OCTAVE_LOCAL_BUFFER(int,tanktag,2);&lt;br&gt;&amp;nbsp; tanktag[0] = mytag;&lt;br&gt;&amp;nbsp; tanktag[1] = mytag+1;&lt;br&gt;&amp;nbsp; OCTAVE_LOCAL_BUFFER(double,d,2);&lt;br&gt;&amp;nbsp; d[0] = real(c);&lt;br&gt;&amp;nbsp; d[1] = imag(c);&lt;br&gt;&amp;nbsp; for (octave_idx_type&amp;nbsp; i = 0; i&amp;lt; rankrec.nelem(); i++)&lt;br&gt;&amp;nbsp; { &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; info = MPI_Send(&amp;amp;t_id, 1, MPI_INT, rankrec(i), tanktag[0], MPI_COMM_WORLD);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; if (info !=MPI_SUCCESS) return info;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; info = MPI_Send((&amp;amp;d), 2,MPI_DOUBLE, rankrec(i), tanktag[1], MPI_COMM_WORLD);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; if (info !=MPI_SUCCESS) return info;&lt;br&gt;&amp;nbsp; }&lt;br&gt;&amp;nbsp;&amp;nbsp; return(MPI_SUCCESS);&lt;br&gt;}&lt;br&gt;&lt;br&gt;int
 send_float_complex_scalar( std::complex&amp;lt;float&amp;gt;&amp;nbsp; c, ColumnVector rankrec, int mytag){&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; /* directly MPI_Send it, */&lt;br&gt;/*-----------------------------*/&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; /* it's just a double value */&lt;br&gt;&amp;nbsp; int info;&lt;br&gt;&amp;nbsp; int t_id = ov_float_complex_scalar;&lt;br&gt;&amp;nbsp; OCTAVE_LOCAL_BUFFER(int,tanktag,2);&lt;br&gt;&amp;nbsp; tanktag[0] = mytag;&lt;br&gt;&amp;nbsp; tanktag[1] = mytag+1;&lt;br&gt;&amp;nbsp; OCTAVE_LOCAL_BUFFER(float,d,2);&lt;br&gt;&amp;nbsp; d[0] = real(c);&lt;br&gt;&amp;nbsp; d[1] = imag(c);&lt;br&gt;&amp;nbsp; for (octave_idx_type&amp;nbsp; i = 0; i&amp;lt; rankrec.nelem(); i++)&lt;br&gt;&amp;nbsp; { &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; info = MPI_Send(&amp;amp;t_id, 1, MPI_INT, rankrec(i), tanktag[0], MPI_COMM_WORLD);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; if (info !=MPI_SUCCESS) return info;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; info = MPI_Send((&amp;amp;d), 2,MPI_FLOAT, rankrec(i), tanktag[1], MPI_COMM_WORLD);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; if
 (info !=MPI_SUCCESS) return info;&lt;br&gt;&amp;nbsp; }&lt;br&gt;&amp;nbsp;&amp;nbsp; return(MPI_SUCCESS);&lt;br&gt;}&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;int send_string(std::string&amp;nbsp; oi8,ColumnVector rankrec, int mytag){&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; /* directly pvm_pkbyte it, */&lt;br&gt;/*----------------------------------*/&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; /* just a char value */&lt;br&gt;&amp;nbsp; int info;&lt;br&gt;&amp;nbsp; int nitem = oi8.length();&lt;br&gt;&amp;nbsp; int tanktag[3];&lt;br&gt;&amp;nbsp; tanktag[0] = mytag;&lt;br&gt;&amp;nbsp; tanktag[1] = mytag+1;&lt;br&gt;&amp;nbsp; tanktag[2] = mytag+2;&lt;br&gt;//&amp;nbsp;&amp;nbsp; OCTAVE_LOCAL_BUFFER(char,i8,nitem+1);&lt;br&gt;&amp;nbsp;&amp;nbsp; char i8[nitem+1];&lt;br&gt;&amp;nbsp; strcpy(i8, oi8.c_str());&lt;br&gt;&amp;nbsp; int t_id = ov_string;&lt;br&gt;&lt;br&gt;// Here we declare a contiguous derived datatype&lt;br&gt;// Create a contiguous datatype for the fortranvec&lt;br&gt;MPI_Datatype fortvec;&lt;br&gt;MPI_Type_contiguous(nitem,MPI_CHAR, &amp;amp;fortvec);&lt;br&gt;MPI_Type_commit(&amp;amp;fortvec);&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&amp;nbsp; for (octave_idx_type&amp;nbsp; i = 0; i&amp;lt;
 rankrec.nelem(); i++)&lt;br&gt;&amp;nbsp; { &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; printf(&quot;Sending block to %i \n&quot;,rankrec(i));&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; printf(&quot;Sending block with tag to %i \n&quot;,mytag);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; info = MPI_Send(&amp;amp;t_id, 1, MPI_INT, rankrec(i), mytag, MPI_COMM_WORLD);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; if (info !=MPI_SUCCESS) return info;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; printf(&quot;Sending type of object&amp;nbsp; %i \n&quot;,t_id);&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; info = MPI_Send(&amp;amp;nitem, 1, MPI_INT, rankrec(i), tanktag[1], MPI_COMM_WORLD);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; printf(&quot;Sending nitem&amp;nbsp; %i \n&quot;,nitem);&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; if (info !=MPI_SUCCESS) return info;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; info =&amp;nbsp;
 MPI_Send(&amp;amp;i8,1,fortvec,rankrec(i),tanktag[2],MPI_COMM_WORLD);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; printf(&quot;Info for sending fortvec&amp;nbsp; %i \n&quot;,info);&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; if (info !=MPI_SUCCESS) return info;&lt;br&gt;&amp;nbsp; }&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; return(info);&lt;br&gt;&lt;br&gt;}&lt;br&gt;/*-----------------------------------*/&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; /* to pack a struct */&lt;br&gt;int send_struct(Octave_map map,ColumnVector rankrec, int mytag){&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; /* we store nkeys, */&lt;br&gt;&lt;br&gt;int n = map.nfields();&amp;nbsp; &lt;br&gt;int info;&lt;br&gt;int t_id;&lt;br&gt;int tanktag[3];&lt;br&gt;&amp;nbsp; tanktag[0] = mytag;&lt;br&gt;&amp;nbsp; tanktag[1] = mytag+1;&lt;br&gt;&amp;nbsp; tanktag[2] = mytag+2;&lt;br&gt;int newtag = mytag+3; &lt;br&gt;&lt;br&gt;// Create 3 contiguous derived datatype&lt;br&gt;// one for dim_vector struc_dims&lt;br&gt;&lt;br&gt;&amp;nbsp; dim_vector struc_dims = map.dims();&amp;nbsp;&amp;nbsp;&amp;nbsp; // struct array dimensions (ND)&lt;br&gt;&amp;nbsp; dim_vector
 conts_dims;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; // each key stores ND field-values&lt;br&gt;&lt;br&gt;&amp;nbsp; int nd = map.ndims();&lt;br&gt;&lt;br&gt;// Declare here the octave_local_buffers&lt;br&gt;&amp;nbsp; OCTAVE_LOCAL_BUFFER(int,dimV,nd);&lt;br&gt;&amp;nbsp;for (octave_idx_type i=0; i&amp;lt;nd; i++)&lt;br&gt;&amp;nbsp;{&lt;br&gt;&amp;nbsp; dimV[i] = struc_dims(i) ;&lt;br&gt;&amp;nbsp;}&lt;br&gt;&lt;br&gt;&amp;nbsp; // Now create the contiguos derived datatype&lt;br&gt;&amp;nbsp; MPI_Datatype dimvec;&lt;br&gt;&amp;nbsp; MPI_Type_contiguous(nd,MPI_INT, &amp;amp;dimvec);&lt;br&gt;&amp;nbsp; MPI_Type_commit(&amp;amp;dimvec); &lt;br&gt;&lt;br&gt;&lt;br&gt;// Create a derived datatype containing three integer;&lt;br&gt;// n nd maxlenght&lt;br&gt;typedef struct&lt;br&gt;{ int sn, snd,smlenght;&lt;br&gt;} Particle;&lt;br&gt;&lt;br&gt;Particle part;&lt;br&gt;MPI_Datatype particletype, oldtypes[1];&lt;br&gt;int blockcounts[1];&lt;br&gt;&lt;br&gt;MPI_Aint offsets[1];&lt;br&gt;// MPI_Status &lt;br&gt;&lt;br&gt;/* Setup description of 3 MPI_INT fields */&lt;br&gt;offsets[0] =0;&lt;br&gt;oldtypes[0] = MPI_INT;&lt;br&gt;blockcounts[0] = 3;&lt;br&gt;/* Now define structured type and commit
 */&lt;br&gt;MPI_Type_struct(1,blockcounts, offsets, oldtypes, &amp;amp;particletype);&lt;br&gt;MPI_Type_commit(&amp;amp;particletype);&lt;br&gt;&lt;br&gt;/* Initialize the particle */&lt;br&gt;part.sn = n; &lt;br&gt;part.snd = nd;&amp;nbsp; &lt;br&gt;&lt;br&gt;octave_idx_type&amp;nbsp; maxlen;&lt;br&gt;&lt;br&gt;&amp;nbsp; Octave_map::const_iterator p = map.begin();&amp;nbsp;&amp;nbsp;&amp;nbsp; // iterate through keys(fnames)&lt;br&gt;&amp;nbsp; for (octave_idx_type i=0; p!=map.end(); p++, i++){&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; std::string&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; key = map.key&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (p);&amp;nbsp;&amp;nbsp;&amp;nbsp; // field name&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; int len = key.length()+1;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; /* fieldname len, works for len==0 */&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if&amp;nbsp; (len&amp;gt; maxlen) maxlen = len;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Cell&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; conts = map.contents(p);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; conts_dims = conts.dims();&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; /* each elemt should have same ND
 */&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (struc_dims != conts_dims){&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; printf(&quot;MPI_Send: inconsistent map dims\n&quot;); return(MPI_ERR_UNKNOWN);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br&gt;&amp;nbsp; if (n != map.nfields()){&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; printf(&quot;MPI_Send: inconsistent map length\n&quot;);return(MPI_ERR_UNKNOWN);&lt;br&gt;&amp;nbsp; }&lt;br&gt;&amp;nbsp;}&lt;br&gt;&lt;br&gt;part.smlenght&amp;nbsp; = maxlen;&lt;br&gt;&lt;br&gt;MPI_Datatype fortvec;&lt;br&gt;MPI_Type_contiguous(maxlen,MPI_CHAR, &amp;amp;fortvec);&lt;br&gt;MPI_Type_commit(&amp;amp;fortvec);&lt;br&gt;&lt;br&gt;// Now we start the big loop&lt;br&gt;&amp;nbsp; for (octave_idx_type&amp;nbsp; i = 0; i&amp;lt; rankrec.nelem(); i++)&lt;br&gt;&amp;nbsp; { &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; info = MPI_Send(&amp;amp;t_id, 1, MPI_INT, rankrec(i), tanktag[0], MPI_COMM_WORLD);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; if (info !=MPI_SUCCESS) return info;&lt;br&gt;// Send the particle struct derived datatype&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; info =
 MPI_Send(&amp;amp;part,1,particletype,rankrec(i),tanktag[1],MPI_COMM_WORLD);&lt;br&gt;// Dimension vector&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; info = MPI_Send(dimV, 1, dimvec, rankrec(i), tanktag[2], MPI_COMM_WORLD);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; if (info !=MPI_SUCCESS) return info;&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br&gt;Octave_map::const_iterator b = map.begin();&amp;nbsp;&amp;nbsp;&amp;nbsp; // iterate through keys(fnames)&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; for (octave_idx_type i=0; b!=map.end(); b++, i++){&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; Cell&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; conts = map.contents(p);&amp;nbsp;&amp;nbsp;&amp;nbsp; // Cell w/ND contents&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; newtag = newtag + conts.capacity();&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; int info =send_class(conts,rankrec,newtag);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; if (info !=MPI_SUCCESS) return info;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;
 }&lt;br&gt;&lt;br&gt;return(MPI_SUCCESS);&lt;br&gt;}&lt;br&gt;&lt;br&gt;&lt;br&gt;int send_cell(Cell cell, ColumnVector rankrec, int mytag){&amp;nbsp;&amp;nbsp;&amp;nbsp; /* we first store nelems and then */&lt;br&gt;/*----------------------------*/&amp;nbsp;&amp;nbsp;&amp;nbsp; /* recursively the elements themselves */&lt;br&gt;&lt;br&gt;// Lists of items to send&lt;br&gt;// type_id to identify octave_value&lt;br&gt;// n for the cell capacity&lt;br&gt;// nd for number of dimensions &lt;br&gt;// dimvec derived datatype&lt;br&gt;// item of cell&lt;br&gt;&amp;nbsp; int t_id = ov_cell;&lt;br&gt;&amp;nbsp; int n = cell.capacity();&lt;br&gt;&amp;nbsp; int info;&lt;br&gt;&amp;nbsp; int tanktag[5];&lt;br&gt;&amp;nbsp; tanktag[0] = mytag;&lt;br&gt;&amp;nbsp; tanktag[1] = mytag+1;&lt;br&gt;&amp;nbsp; tanktag[2] = mytag+2;&lt;br&gt;&amp;nbsp; tanktag[3] = mytag+3;&lt;br&gt;&amp;nbsp; tanktag[4] = mytag+4;&lt;br&gt;&amp;nbsp; int newtag = tanktag[4];&lt;br&gt;&amp;nbsp; dim_vector&amp;nbsp;&amp;nbsp;&amp;nbsp; vdim&amp;nbsp;&amp;nbsp; = cell. dims();&lt;br&gt;&amp;nbsp; int nd = cell.ndims();&lt;br&gt;&lt;br&gt;// Declare here the octave_local_buffers&lt;br&gt;&amp;nbsp; OCTAVE_LOCAL_BUFFER(int,dimV,nd);&lt;br&gt;&amp;nbsp;for
 (octave_idx_type i=0; i&amp;lt;nd; i++)&lt;br&gt;&amp;nbsp;{&lt;br&gt;&amp;nbsp; dimV[i] = vdim(i) ;&lt;br&gt;&amp;nbsp;}&lt;br&gt;&lt;br&gt;&amp;nbsp; // Now create the contiguos derived datatype&lt;br&gt;&amp;nbsp; MPI_Datatype dimvec;&lt;br&gt;&amp;nbsp; MPI_Type_contiguous(nd,MPI_INT, &amp;amp;dimvec);&lt;br&gt;&amp;nbsp; MPI_Type_commit(&amp;amp;dimvec); &lt;br&gt;&lt;br&gt;&lt;br&gt;// Now start the big loop&lt;br&gt;&lt;br&gt;&amp;nbsp; for (octave_idx_type&amp;nbsp; i = 0; i&amp;lt; rankrec.nelem(); i++)&lt;br&gt;&amp;nbsp; { &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; info = MPI_Send(&amp;amp;t_id, 1, MPI_INT, rankrec(i), tanktag[0], MPI_COMM_WORLD);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; if (info !=MPI_SUCCESS) return info;&lt;br&gt;// send cell capacity &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; info = MPI_Send(&amp;amp;n, 1, MPI_INT, rankrec(i), tanktag[1], MPI_COMM_WORLD);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; if (info !=MPI_SUCCESS) return info;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; info = MPI_Send(&amp;amp;nd, 1, MPI_INT, rankrec(i), tanktag[2],
 MPI_COMM_WORLD);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; if (info !=MPI_SUCCESS) return info;&lt;br&gt;// send the dim vector&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; info =&amp;nbsp; MPI_Send(dimV,1,dimvec,rankrec(i),tanktag[3],MPI_COMM_WORLD);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; if (info !=MPI_SUCCESS) return info;&lt;br&gt;&amp;nbsp; }&lt;br&gt;&lt;br&gt;// Now focus on every single octave_value&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; for (octave_idx_type i=0; i&amp;lt;n; i++){&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; octave_value ov = cell.data()[i];&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; newtag = newtag +ov.capacity();&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; info=send_class(ov,rankrec,newtag);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; if (info !=MPI_SUCCESS) return info; &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&amp;nbsp; return(MPI_SUCCESS);&amp;nbsp; &lt;br&gt;&lt;br&gt;&lt;br&gt;}&lt;br&gt;&lt;br&gt;int send_sp_mat(SparseMatrix m ,ColumnVector rankrec, int mytag&amp;nbsp;
 ){&lt;br&gt;&lt;br&gt;int info;&lt;br&gt;int t_id = ov_sparse_matrix;&lt;br&gt;int tanktag[5];&lt;br&gt;tanktag[0] = mytag;&lt;br&gt;tanktag[1] = mytag+1;&lt;br&gt;tanktag[2] = mytag+2;&lt;br&gt;tanktag[3] = mytag+3;&lt;br&gt;tanktag[4] = mytag+4;&lt;br&gt;// octave_idx_type nr = m.rows ();&lt;br&gt;// octave_idx_type nc = m.cols ();&lt;br&gt;// octave_idx_type nz = m.nnz ();&lt;br&gt;&lt;br&gt;OCTAVE_LOCAL_BUFFER(int,s,3);&amp;nbsp;&amp;nbsp; &lt;br&gt;s[0]= m.rows();&lt;br&gt;s[1]= m.cols();&lt;br&gt;s[2]= m.capacity();// int n = m.capacity();&lt;br&gt;&lt;br&gt;// Create a contiguous derived datatype// OCTAVE_LOCAL_BUFFER( double ,data,n);&lt;br&gt;MPI_Datatype sintsparse;// OCTAVE_LOCAL_BUFFER( int ,ridx,n);&lt;br&gt;MPI_Type_contiguous(3,MPI_INT, &amp;amp;sintsparse);&lt;br&gt;MPI_Type_commit(&amp;amp;sintsparse);&lt;br&gt;&lt;br&gt;&lt;br&gt;MPI_Datatype rowindex;&lt;br&gt;MPI_Type_contiguous(m.capacity(),MPI_INT, &amp;amp;rowindex);&lt;br&gt;MPI_Type_commit(&amp;amp;rowindex);&lt;br&gt;&lt;br&gt;MPI_Datatype columnindex;&lt;br&gt;MPI_Type_contiguous(m.cols()+1,MPI_INT, &amp;amp;columnindex);&lt;br&gt;MPI_Type_commit(&amp;amp;columnindex);&lt;br&gt;&lt;br&gt;MPI_Datatype
 numnnz;&lt;br&gt;MPI_Type_contiguous(m.capacity(),MPI_DOUBLE, &amp;amp;numnnz);&lt;br&gt;MPI_Type_commit(&amp;amp;numnnz);&lt;br&gt;&lt;br&gt;&lt;br&gt;OCTAVE_LOCAL_BUFFER( int ,sridx,m.capacity());&lt;br&gt;OCTAVE_LOCAL_BUFFER( int ,scidx,m.cols()+1);&lt;br&gt;OCTAVE_LOCAL_BUFFER( double ,sdata,m.capacity());&lt;br&gt;// Fill them with their respective value&lt;br&gt;&amp;nbsp; for (octave_idx_type ix = 0; ix &amp;lt; m.capacity(); ix++)&lt;br&gt;&amp;nbsp; { &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; sdata[ix]=m.data(ix);&lt;br&gt;// &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; printf(&quot;sending %d \n&quot;,sdata[ix]);&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; sridx[ix]= m.ridx(ix);&lt;br&gt;//&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; printf(&quot;sending %i \n&quot;,sridx[ix]);&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br&gt;&amp;nbsp; }&lt;br&gt;NDArray buf (dim_vector (m.capacity(), 1));&lt;br&gt;&amp;nbsp; for (int ix = 0; ix &amp;lt; m.capacity(); ix++)&lt;br&gt;&amp;nbsp; { &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; buf(ix)=m.data(ix);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; sdata[ix] = buf(ix); &lt;br&gt;// &amp;nbsp;&amp;nbsp;&amp;nbsp; printf(&quot;sending buffer %d
 \n&quot;,sdata[ix]);&lt;br&gt;&amp;nbsp; }&lt;br&gt;&amp;nbsp; for (octave_idx_type ix = 0; ix &amp;lt; m.cols()+1; ix++)&lt;br&gt;&amp;nbsp; { &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; scidx[ix]= m.cidx(ix);&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br&gt;//&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; printf(&quot;sending %i \n&quot;,scidx[ix]);&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br&gt;&lt;br&gt;&amp;nbsp; }&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&amp;nbsp; for (octave_idx_type&amp;nbsp; i = 0; i&amp;lt; rankrec.nelem(); i++)&lt;br&gt;&amp;nbsp; { &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; info = MPI_Send(&amp;amp;t_id, 1, MPI_INT, rankrec(i), tanktag[0], MPI_COMM_WORLD);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; if (info !=MPI_SUCCESS) return info;&lt;br&gt;// send the sintsparse vector named s&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; info = MPI_Send(s, 1, sintsparse, rankrec(i), tanktag[1], MPI_COMM_WORLD);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; if (info !=MPI_SUCCESS) return info;&lt;br&gt;// send the vector with row indexes&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; info =&amp;nbsp;
 MPI_Send(sridx,1,rowindex,rankrec(i),tanktag[2],MPI_COMM_WORLD);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; if (info !=MPI_SUCCESS) return info;&lt;br&gt;// send the vector with column indexes&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; info =&amp;nbsp; MPI_Send(scidx,1,columnindex,rankrec(i),tanktag[3],MPI_COMM_WORLD);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; if (info !=MPI_SUCCESS) return info;&lt;br&gt;// send the vector of non zero elements&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; info =&amp;nbsp; MPI_Send(sdata,1,numnnz,rankrec(i),tanktag[4],MPI_COMM_WORLD);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; if (info !=MPI_SUCCESS) return info;&lt;br&gt;&amp;nbsp; }&lt;br&gt;&lt;br&gt;&lt;br&gt;return(info);&lt;br&gt;}&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;int send_sp_bl_mat(SparseBoolMatrix m ,ColumnVector rankrec, int mytag&amp;nbsp; ){&lt;br&gt;&lt;br&gt;int info;&lt;br&gt;int t_id = ov_sparse_matrix;&lt;br&gt;int tanktag[5];&lt;br&gt;tanktag[0] = mytag;&lt;br&gt;tanktag[1] = mytag+1;&lt;br&gt;tanktag[2] = mytag+2;&lt;br&gt;tanktag[3] = mytag+3;&lt;br&gt;tanktag[4] = mytag+4;&lt;br&gt;// octave_idx_type nr = m.rows ();&lt;br&gt;// octave_idx_type nc =
 m.cols ();&lt;br&gt;// octave_idx_type nz = m.nnz ();&lt;br&gt;&lt;br&gt;OCTAVE_LOCAL_BUFFER(int,s,3);&amp;nbsp;&amp;nbsp; &lt;br&gt;s[0]= m.rows();&lt;br&gt;s[1]= m.cols();&lt;br&gt;s[2]= m.capacity();// int n = m.capacity();&lt;br&gt;&lt;br&gt;// Create a contiguous derived datatype// OCTAVE_LOCAL_BUFFER( double ,data,n);&lt;br&gt;MPI_Datatype sintsparse;// OCTAVE_LOCAL_BUFFER( int ,ridx,n);&lt;br&gt;MPI_Type_contiguous(3,MPI_INT, &amp;amp;sintsparse);&lt;br&gt;MPI_Type_commit(&amp;amp;sintsparse);&lt;br&gt;&lt;br&gt;&lt;br&gt;MPI_Datatype rowindex;&lt;br&gt;MPI_Type_contiguous(m.capacity(),MPI_INT, &amp;amp;rowindex);&lt;br&gt;MPI_Type_commit(&amp;amp;rowindex);&lt;br&gt;&lt;br&gt;MPI_Datatype columnindex;&lt;br&gt;MPI_Type_contiguous(m.cols()+1,MPI_INT, &amp;amp;columnindex);&lt;br&gt;MPI_Type_commit(&amp;amp;columnindex);&lt;br&gt;&lt;br&gt;MPI_Datatype numnnz;&lt;br&gt;MPI_Type_contiguous(m.capacity(),MPI_INT, &amp;amp;numnnz);&lt;br&gt;MPI_Type_commit(&amp;amp;numnnz);&lt;br&gt;&lt;br&gt;&lt;br&gt;OCTAVE_LOCAL_BUFFER( int ,sridx,m.capacity());&lt;br&gt;OCTAVE_LOCAL_BUFFER( int ,scidx,m.cols()+1);&lt;br&gt;OCTAVE_LOCAL_BUFFER( int
 ,sdata,m.capacity());&lt;br&gt;// Fill them with their respective value&lt;br&gt;&amp;nbsp; for (octave_idx_type ix = 0; ix &amp;lt; m.capacity(); ix++)&lt;br&gt;&amp;nbsp; { &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; sdata[ix]=m.data(ix);&lt;br&gt;// &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; printf(&quot;sending %d \n&quot;,sdata[ix]);&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; sridx[ix]= m.ridx(ix);&lt;br&gt;//&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; printf(&quot;sending %i \n&quot;,sridx[ix]);&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br&gt;&amp;nbsp; }&lt;br&gt;&amp;nbsp; for (octave_idx_type ix = 0; ix &amp;lt; m.cols()+1; ix++)&lt;br&gt;&amp;nbsp; { &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; scidx[ix]= m.cidx(ix);&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br&gt;//&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; printf(&quot;sending %i \n&quot;,scidx[ix]);&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br&gt;&lt;br&gt;&amp;nbsp; }&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&amp;nbsp; for (octave_idx_type&amp;nbsp; i = 0; i&amp;lt; rankrec.nelem(); i++)&lt;br&gt;&amp;nbsp; { &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; info = MPI_Send(&amp;amp;t_id, 1, MPI_INT, rankrec(i), tanktag[0], MPI_COMM_WORLD);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; if
 (info !=MPI_SUCCESS) return info;&lt;br&gt;// send the sintsparse vector named s&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; info = MPI_Send(s, 1, sintsparse, rankrec(i), tanktag[1], MPI_COMM_WORLD);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; if (info !=MPI_SUCCESS) return info;&lt;br&gt;// send the vector with row indexes&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; info =&amp;nbsp; MPI_Send(sridx,1,rowindex,rankrec(i),tanktag[2],MPI_COMM_WORLD);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; if (info !=MPI_SUCCESS) return info;&lt;br&gt;// send the vector with column indexes&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; info =&amp;nbsp; MPI_Send(scidx,1,columnindex,rankrec(i),tanktag[3],MPI_COMM_WORLD);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; if (info !=MPI_SUCCESS) return info;&lt;br&gt;// send the vector of non zero elements&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; info =&amp;nbsp; MPI_Send(sdata,1,numnnz,rankrec(i),tanktag[4],MPI_COMM_WORLD);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; if (info !=MPI_SUCCESS) return info;&lt;br&gt;&amp;nbsp;
 }&lt;br&gt;&lt;br&gt;&lt;br&gt;return(info);&lt;br&gt;}&lt;br&gt;&lt;br&gt;int send_sp_cx_mat(SparseComplexMatrix m ,ColumnVector rankrec, int mytag&amp;nbsp; ){&lt;br&gt;&lt;br&gt;int info; &lt;br&gt;int t_id = ov_sparse_complex_matrix;&lt;br&gt;OCTAVE_LOCAL_BUFFER(int,tanktag,6);&lt;br&gt;// int tanktag[5];&lt;br&gt;tanktag[0] = mytag;&lt;br&gt;tanktag[1] = mytag+1;&lt;br&gt;tanktag[2] = mytag+2;&lt;br&gt;tanktag[3] = mytag+3;&lt;br&gt;tanktag[4] = mytag+4;&lt;br&gt;tanktag[5] = mytag+5;&lt;br&gt;&lt;br&gt;OCTAVE_LOCAL_BUFFER(int,s,3);&amp;nbsp;&amp;nbsp; &lt;br&gt;s[0]= m.rows();&lt;br&gt;s[1]= m.cols();&lt;br&gt;s[2]= m.capacity();// int n = m.capacity();&lt;br&gt;&lt;br&gt;// Create a contiguous derived datatype// OCTAVE_LOCAL_BUFFER( double ,data,n);&lt;br&gt;MPI_Datatype sintsparse;// OCTAVE_LOCAL_BUFFER( int ,ridx,n);&lt;br&gt;MPI_Type_contiguous(3,MPI_INT, &amp;amp;sintsparse);&lt;br&gt;MPI_Type_commit(&amp;amp;sintsparse);&lt;br&gt;&lt;br&gt;&lt;br&gt;MPI_Datatype rowindex;&lt;br&gt;MPI_Type_contiguous(m.capacity(),MPI_INT, &amp;amp;rowindex);&lt;br&gt;MPI_Type_commit(&amp;amp;rowindex);&lt;br&gt;&lt;br&gt;MPI_Datatype
 columnindex;&lt;br&gt;MPI_Type_contiguous(m.cols()+1,MPI_INT, &amp;amp;columnindex);&lt;br&gt;MPI_Type_commit(&amp;amp;columnindex);&lt;br&gt;&lt;br&gt;MPI_Datatype numnnz;&lt;br&gt;MPI_Type_contiguous(m.capacity(),MPI_DOUBLE, &amp;amp;numnnz);&lt;br&gt;MPI_Type_commit(&amp;amp;numnnz);&lt;br&gt;&lt;br&gt;&lt;br&gt;OCTAVE_LOCAL_BUFFER( int ,sridx,m.capacity());&lt;br&gt;OCTAVE_LOCAL_BUFFER( int ,scidx,m.cols()+1);&lt;br&gt;OCTAVE_LOCAL_BUFFER( double ,rsdata,m.capacity());&lt;br&gt;OCTAVE_LOCAL_BUFFER( double ,isdata,m.capacity());&lt;br&gt;// Fill them with their respective value&lt;br&gt;&amp;nbsp; for (octave_idx_type ix = 0; ix &amp;lt; m.capacity(); ix++)&lt;br&gt;&amp;nbsp; { &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; rsdata[ix]=real(m.data(ix));&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; isdata[ix]=imag(m.data(ix));&lt;br&gt;// &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; printf(&quot;sending %d \n&quot;,sdata[ix]);&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; sridx[ix]= m.ridx(ix);&lt;br&gt;//&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; printf(&quot;sending %i \n&quot;,sridx[ix]);&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br&gt;&amp;nbsp; }&lt;br&gt;&amp;nbsp; for (octave_idx_type ix =
 0; ix &amp;lt; m.cols()+1; ix++)&lt;br&gt;&amp;nbsp; { &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; scidx[ix]= m.cidx(ix);&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br&gt;//&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; printf(&quot;sending %i \n&quot;,scidx[ix]);&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br&gt;&lt;br&gt;&amp;nbsp; }&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&amp;nbsp; for (octave_idx_type&amp;nbsp; i = 0; i&amp;lt; rankrec.nelem(); i++)&lt;br&gt;&amp;nbsp; { &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; info = MPI_Send(&amp;amp;t_id, 1, MPI_INT, rankrec(i), tanktag[0], MPI_COMM_WORLD);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; if (info !=MPI_SUCCESS) return info;&lt;br&gt;// send the sintsparse vector named s&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; info = MPI_Send(s, 1, sintsparse, rankrec(i), tanktag[1], MPI_COMM_WORLD);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; if (info !=MPI_SUCCESS) return info;&lt;br&gt;// send the vector with row indexes&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; info =&amp;nbsp; MPI_Send(sridx,1,rowindex,rankrec(i),tanktag[2],MPI_COMM_WORLD);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; if (info !=MPI_SUCCESS) return
 info;&lt;br&gt;// send the vector with column indexes&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; info =&amp;nbsp; MPI_Send(scidx,1,columnindex,rankrec(i),tanktag[3],MPI_COMM_WORLD);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; if (info !=MPI_SUCCESS) return info;&lt;br&gt;// send the vector of non zero elements&lt;br&gt;// real&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; info =&amp;nbsp; MPI_Send(rsdata,1,numnnz,rankrec(i),tanktag[4],MPI_COMM_WORLD);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; if (info !=MPI_SUCCESS) return info;&lt;br&gt;// img&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; info =&amp;nbsp; MPI_Send(isdata,1,numnnz,rankrec(i),tanktag[5],MPI_COMM_WORLD);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; if (info !=MPI_SUCCESS) return info;&lt;br&gt;&lt;br&gt;&amp;nbsp; }&lt;br&gt;&lt;br&gt;&lt;br&gt;return(info);&lt;br&gt;}&lt;br&gt;&lt;br&gt;&lt;br&gt;int send_complex_matrix(ComplexNDArray myCNDA,ColumnVector rankrec, int mytag){&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br&gt;&amp;nbsp; int info;&lt;br&gt;&amp;nbsp; int nitem = myCNDA.nelem();&lt;br&gt;&amp;nbsp; dim_vector dv = myCNDA.dims();&lt;br&gt;&amp;nbsp;
 OCTAVE_LOCAL_BUFFER(int,tanktag,6);&lt;br&gt;//&amp;nbsp;&amp;nbsp; int&amp;nbsp; tanktag[5];&lt;br&gt;tanktag[0] = mytag;&lt;br&gt;tanktag[1]= tanktag[0]+1;&lt;br&gt;tanktag[2]= tanktag[1]+1;&lt;br&gt;tanktag[3]= tanktag[2]+1;&lt;br&gt;tanktag[4]= tanktag[3]+1; &lt;br&gt;tanktag[5]= tanktag[4]+1; &lt;br&gt;&lt;br&gt;&amp;nbsp; int nd = myCNDA.ndims ();&lt;br&gt;&amp;nbsp; int t_id = ov_complex_matrix;&lt;br&gt;// Declare here the octave_local_buffers&lt;br&gt;&amp;nbsp; OCTAVE_LOCAL_BUFFER(int,dimV,nd);&lt;br&gt;&amp;nbsp;for (octave_idx_type i=0; i&amp;lt;nd; i++)&lt;br&gt;&amp;nbsp;{&lt;br&gt;&amp;nbsp; dimV[i] = dv(i) ;&lt;br&gt;&amp;nbsp;}&lt;br&gt;&lt;br&gt;&amp;nbsp; // Now create the contiguos derived datatype&lt;br&gt;&amp;nbsp; MPI_Datatype dimvec;&lt;br&gt;&amp;nbsp; MPI_Type_contiguous(nd,MPI_INT, &amp;amp;dimvec);&lt;br&gt;&amp;nbsp; MPI_Type_commit(&amp;amp;dimvec); &lt;br&gt;&lt;br&gt;&amp;nbsp; NDArray rarray = real(myCNDA);&lt;br&gt;&amp;nbsp; NDArray imarray = imag(myCNDA);&lt;br&gt;&amp;nbsp; double *preal&amp;nbsp; = rarray.fortran_vec();&lt;br&gt;&amp;nbsp; double *pimag&amp;nbsp; = imarray.fortran_vec();&lt;br&gt;&lt;br&gt;// two fortran_vec one for the real part and other one for the
 complex part&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; OCTAVE_LOCAL_BUFFER(double,LBNDA,nitem);&lt;br&gt;&amp;nbsp; OCTAVE_LOCAL_BUFFER(double,CLBNDA,nitem);&lt;br&gt;&lt;br&gt;&amp;nbsp; for (octave_idx_type i=0; i&amp;lt;nitem; i++)&lt;br&gt;&amp;nbsp; {&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; LBNDA[i] = rarray(i) ;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; CLBNDA[i] = imarray(i) ;&lt;br&gt;&amp;nbsp; }&lt;br&gt;&lt;br&gt;&amp;nbsp; // Now create the contiguous derived datatype&lt;br&gt;&amp;nbsp; MPI_Datatype fortvec;&lt;br&gt;&amp;nbsp; MPI_Type_contiguous(nitem,MPI_DOUBLE, &amp;amp;fortvec);&lt;br&gt;&amp;nbsp; MPI_Type_commit(&amp;amp;fortvec); &lt;br&gt;&lt;br&gt;&amp;nbsp; for (octave_idx_type&amp;nbsp; i = 0; i&amp;lt; rankrec.nelem(); i++)&lt;br&gt;&amp;nbsp; { &lt;br&gt;// &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; t_id is the identifier of octave NDArray&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; printf(&quot;Sending block to %i \n&quot;,rankrec(i));&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; info = MPI_Send(&amp;amp;t_id, 1, MPI_INT, rankrec(i), tanktag[0], MPI_COMM_WORLD);&amp;nbsp; &lt;br&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; printf(&quot;I
 have sent&amp;nbsp; %i \n&quot;,t_id);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; if (info !=MPI_SUCCESS) return info;&lt;br&gt;// &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; nitem is the total number of elements&amp;nbsp; &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; info = MPI_Send(&amp;amp;nitem, 1, MPI_INT, rankrec(i), tanktag[1], MPI_COMM_WORLD);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; printf(&quot;I have sent&amp;nbsp; %i \n&quot;,nitem);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; if (info !=MPI_SUCCESS) return info;&lt;br&gt;//&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; ndims is number of dimensions &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; info = MPI_Send(&amp;amp;nd, 1, MPI_INT, rankrec(i), tanktag[2], MPI_COMM_WORLD);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; printf(&quot;I have sent&amp;nbsp; %i \n&quot;,nd);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; if (info !=MPI_SUCCESS) return info;&lt;br&gt;//&amp;nbsp;&amp;nbsp;&amp;nbsp; vector of dimensions sending&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; info = MPI_Send(dimV, 1, dimvec, rankrec(i),
 tanktag[3], MPI_COMM_WORLD);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; if (info !=MPI_SUCCESS) return info;&lt;br&gt;//&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; data matrix sending&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; info =&amp;nbsp; MPI_Send(LBNDA,1,fortvec,rankrec(i),tanktag[4],MPI_COMM_WORLD);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; if (info !=MPI_SUCCESS) return info;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; info =&amp;nbsp; MPI_Send(CLBNDA,1,fortvec,rankrec(i),tanktag[5],MPI_COMM_WORLD);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; if (info !=MPI_SUCCESS) return info;&lt;br&gt;&lt;br&gt;&amp;nbsp; }&lt;br&gt;//&amp;nbsp;&amp;nbsp;&amp;nbsp; printf(&quot;info for sending scalar matrix is = %i \n&quot;,info);&lt;br&gt;return(info);&lt;br&gt;}&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;int send_float_complex_matrix(FloatComplexNDArray myCNDA,ColumnVector rankrec, int mytag){&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br&gt;&amp;nbsp; int info;&lt;br&gt;&amp;nbsp; int nitem = myCNDA.nelem();&lt;br&gt;&amp;nbsp; dim_vector dv = myCNDA.dims();&lt;br&gt;&amp;nbsp; OCTAVE_LOCAL_BUFFER(int,tanktag,6);&lt;br&gt;//&amp;nbsp;&amp;nbsp; int&amp;nbsp; tanktag[5];&lt;br&gt;tanktag[0] =
 mytag;&lt;br&gt;tanktag[1]= tanktag[0]+1;&lt;br&gt;tanktag[2]= tanktag[1]+1;&lt;br&gt;tanktag[3]= tanktag[2]+1;&lt;br&gt;tanktag[4]= tanktag[3]+1; &lt;br&gt;tanktag[5]= tanktag[4]+1; &lt;br&gt;&lt;br&gt;&amp;nbsp; int nd = myCNDA.ndims ();&lt;br&gt;&amp;nbsp; int t_id = ov_float_complex_matrix;&lt;br&gt;// Declare here the octave_local_buffers&lt;br&gt;&amp;nbsp; OCTAVE_LOCAL_BUFFER(int,dimV,nd);&lt;br&gt;&amp;nbsp;for (octave_idx_type i=0; i&amp;lt;nd; i++)&lt;br&gt;&amp;nbsp;{&lt;br&gt;&amp;nbsp; dimV[i] = dv(i) ;&lt;br&gt;&amp;nbsp;}&lt;br&gt;&lt;br&gt;&amp;nbsp; // Now create the contiguos derived datatype&lt;br&gt;&amp;nbsp; MPI_Datatype dimvec;&lt;br&gt;&amp;nbsp; MPI_Type_contiguous(nd,MPI_INT, &amp;amp;dimvec);&lt;br&gt;&amp;nbsp; MPI_Type_commit(&amp;amp;dimvec); &lt;br&gt;&lt;br&gt;&amp;nbsp; FloatNDArray rarray = real(myCNDA);&lt;br&gt;&amp;nbsp; FloatNDArray imarray = imag(myCNDA);&lt;br&gt;&amp;nbsp; float *preal&amp;nbsp; = rarray.fortran_vec();&lt;br&gt;&amp;nbsp; float *pimag&amp;nbsp; = imarray.fortran_vec();&lt;br&gt;&lt;br&gt;// two fortran_vec one for the real part and other one for the complex part&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;
 OCTAVE_LOCAL_BUFFER(float,LBNDA,nitem);&lt;br&gt;&amp;nbsp; OCTAVE_LOCAL_BUFFER(float,CLBNDA,nitem);&lt;br&gt;&lt;br&gt;&amp;nbsp; for (octave_idx_type i=0; i&amp;lt;nitem; i++)&lt;br&gt;&amp;nbsp; {&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; LBNDA[i] = rarray(i) ;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; CLBNDA[i] = imarray(i) ;&lt;br&gt;&amp;nbsp; }&lt;br&gt;&lt;br&gt;&amp;nbsp; // Now create the contiguous derived datatype&lt;br&gt;&amp;nbsp; MPI_Datatype fortvec;&lt;br&gt;&amp;nbsp; MPI_Type_contiguous(nitem,MPI_FLOAT, &amp;amp;fortvec);&lt;br&gt;&amp;nbsp; MPI_Type_commit(&amp;amp;fortvec); &lt;br&gt;&lt;br&gt;&amp;nbsp; for (octave_idx_type&amp;nbsp; i = 0; i&amp;lt; rankrec.nelem(); i++)&lt;br&gt;&amp;nbsp; { &lt;br&gt;// &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; t_id is the identifier of octave NDArray&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; printf(&quot;Sending block to %i \n&quot;,rankrec(i));&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; info = MPI_Send(&amp;amp;t_id, 1, MPI_INT, rankrec(i), tanktag[0], MPI_COMM_WORLD);&amp;nbsp; &lt;br&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; printf(&quot;I have sent&amp;nbsp; %i
 \n&quot;,t_id);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; if (info !=MPI_SUCCESS) return info;&lt;br&gt;// &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; nitem is the total number of elements&amp;nbsp; &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; info = MPI_Send(&amp;amp;nitem, 1, MPI_INT, rankrec(i), tanktag[1], MPI_COMM_WORLD);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; printf(&quot;I have sent&amp;nbsp; %i \n&quot;,nitem);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; if (info !=MPI_SUCCESS) return info;&lt;br&gt;//&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; ndims is number of dimensions &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; info = MPI_Send(&amp;amp;nd, 1, MPI_INT, rankrec(i), tanktag[2], MPI_COMM_WORLD);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; printf(&quot;I have sent&amp;nbsp; %i \n&quot;,nd);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; if (info !=MPI_SUCCESS) return info;&lt;br&gt;//&amp;nbsp;&amp;nbsp;&amp;nbsp; vector of dimensions sending&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; info = MPI_Send(dimV, 1, dimvec, rankrec(i), tanktag[3],
 MPI_COMM_WORLD);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; if (info !=MPI_SUCCESS) return info;&lt;br&gt;//&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; data matrix sending&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; info =&amp;nbsp; MPI_Send(LBNDA,1,fortvec,rankrec(i),tanktag[4],MPI_COMM_WORLD);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; if (info !=MPI_SUCCESS) return info;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; info =&amp;nbsp; MPI_Send(CLBNDA,1,fortvec,rankrec(i),tanktag[5],MPI_COMM_WORLD);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; if (info !=MPI_SUCCESS) return info;&lt;br&gt;&lt;br&gt;&amp;nbsp; }&lt;br&gt;//&amp;nbsp;&amp;nbsp;&amp;nbsp; printf(&quot;info for sending scalar matrix is = %i \n&quot;,info);&lt;br&gt;return(info);&lt;br&gt;}&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;int send_range(Range range,ColumnVector rankrec, int mytag){&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; /* put base,limit,incr,nelem */&lt;br&gt;/*-------------------------------*/&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; /* just 3 doubles + 1 int */&lt;br&gt;// octave_range (double base, double limit, double inc)&lt;br&gt;&amp;nbsp;
 OCTAVE_LOCAL_BUFFER(double,d,3);&lt;br&gt;&amp;nbsp; d[0]= range.base();&lt;br&gt;&amp;nbsp; d[1]= range.limit();&lt;br&gt;&amp;nbsp; d[2]= range.inc();&lt;br&gt;&amp;nbsp; int info;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; for (octave_idx_type&amp;nbsp; i = 0; i&amp;lt; rankrec.nelem(); i++)&lt;br&gt;&amp;nbsp; { &lt;br&gt;&amp;nbsp; info = MPI_Send(d, 3, MPI_INT, rankrec(i), mytag, MPI_COMM_WORLD);&lt;br&gt;&amp;nbsp; }&lt;br&gt;&amp;nbsp;&amp;nbsp; if (info !=MPI_SUCCESS) return info; &lt;br&gt;return(MPI_SUCCESS);&lt;br&gt;}&lt;br&gt;&lt;br&gt;int send_matrix(NDArray myNDA,ColumnVector rankrec, int mytag){&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br&gt;&amp;nbsp; int info;&lt;br&gt;&amp;nbsp; int nitem = myNDA.nelem();&lt;br&gt;&amp;nbsp; dim_vector dv = myNDA.dims();&lt;br&gt;&amp;nbsp; OCTAVE_LOCAL_BUFFER(int,tanktag,5);&lt;br&gt;//&amp;nbsp;&amp;nbsp; int&amp;nbsp; tanktag[5];&lt;br&gt;tanktag[0] = mytag;&lt;br&gt;tanktag[1]= mytag+1;&lt;br&gt;tanktag[2]= mytag+2;&lt;br&gt;tanktag[3]= mytag+3;&lt;br&gt;tanktag[4]= mytag+4; &lt;br&gt;&lt;br&gt;&lt;br&gt;&amp;nbsp; int nd = myNDA.ndims ();&lt;br&gt;&amp;nbsp; int t_id = ov_matrix;&lt;br&gt;// Declare here the octave_local_buffers&lt;br&gt;&amp;nbsp;
 OCTAVE_LOCAL_BUFFER(int,dimV,nd);&lt;br&gt;&amp;nbsp;for (octave_idx_type i=0; i&amp;lt;nd; i++)&lt;br&gt;&amp;nbsp;{&lt;br&gt;&amp;nbsp; dimV[i] = dv(i) ;&lt;br&gt;&amp;nbsp;}&lt;br&gt;&lt;br&gt;&amp;nbsp; // Now create the contiguos derived datatype&lt;br&gt;&amp;nbsp; MPI_Datatype dimvec;&lt;br&gt;&amp;nbsp; MPI_Type_contiguous(nd,MPI_INT, &amp;amp;dimvec);&lt;br&gt;&amp;nbsp; MPI_Type_commit(&amp;amp;dimvec); &lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; OCTAVE_LOCAL_BUFFER(double,LBNDA,nitem);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; double *p&amp;nbsp; = myNDA.fortran_vec();&lt;br&gt;&lt;br&gt;&amp;nbsp; for (octave_idx_type i=0; i&amp;lt;nitem; i++)&lt;br&gt;&amp;nbsp; {&lt;br&gt;//&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; *LBNDA = *p;&lt;br&gt;//&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; LBNDA++;&lt;br&gt;//&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; p++;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; LBNDA[i] = myNDA(i) ;&lt;br&gt;&amp;nbsp; }&lt;br&gt;&lt;br&gt;&amp;nbsp; // Now create the contiguous derived datatype&lt;br&gt;&amp;nbsp; MPI_Datatype fortvec;&lt;br&gt;&amp;nbsp; MPI_Type_contiguous(nitem,MPI_DOUBLE, &amp;amp;fortvec);&lt;br&gt;&amp;nbsp; MPI_Type_commit(&amp;amp;fortvec); &lt;br&gt;&lt;br&gt;&amp;nbsp; for
 (octave_idx_type&amp;nbsp; i = 0; i&amp;lt; rankrec.nelem(); i++)&lt;br&gt;&amp;nbsp; { &lt;br&gt;// &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; t_id is the identifier of octave NDArray&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; printf(&quot;Sending block to %i \n&quot;,rankrec(i));&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; info = MPI_Send(&amp;amp;t_id, 1, MPI_INT, rankrec(i), tanktag[0], MPI_COMM_WORLD);&amp;nbsp; &lt;br&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; printf(&quot;I have sent&amp;nbsp; %i \n&quot;,t_id);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; if (info !=MPI_SUCCESS) return info;&lt;br&gt;// &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; nitem is the total number of elements&amp;nbsp; &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; info = MPI_Send(&amp;amp;nitem, 1, MPI_INT, rankrec(i), tanktag[1], MPI_COMM_WORLD);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; printf(&quot;I have sent&amp;nbsp; %i \n&quot;,nitem);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; if (info !=MPI_SUCCESS) return info;&lt;br&gt;//&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; ndims is number of dimensions
 &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; info = MPI_Send(&amp;amp;nd, 1, MPI_INT, rankrec(i), tanktag[2], MPI_COMM_WORLD);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; printf(&quot;I have sent&amp;nbsp; %i \n&quot;,nd);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; if (info !=MPI_SUCCESS) return info;&lt;br&gt;//&amp;nbsp;&amp;nbsp;&amp;nbsp; vector of dimensions sending&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; info = MPI_Send(dimV, 1, dimvec, rankrec(i), tanktag[3], MPI_COMM_WORLD);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; if (info !=MPI_SUCCESS) return info;&lt;br&gt;//&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; data matrix sending&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; info =&amp;nbsp; MPI_Send(LBNDA,1,fortvec,rankrec(i),tanktag[4],MPI_COMM_WORLD);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; if (info !=MPI_SUCCESS) return info;&lt;br&gt;&amp;nbsp; }&lt;br&gt;//&amp;nbsp;&amp;nbsp;&amp;nbsp; printf(&quot;info for sending scalar matrix is = %i \n&quot;,info);&lt;br&gt;return(info);&lt;br&gt;}&lt;br&gt;&lt;br&gt;// Here we have float_matrix&lt;br&gt;int send_float_matrix(FloatNDArray myNDA,ColumnVector rankrec,
 int mytag){&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br&gt;&amp;nbsp; int info;&lt;br&gt;&amp;nbsp; int nitem = myNDA.nelem();&lt;br&gt;&amp;nbsp; dim_vector dv = myNDA.dims();&lt;br&gt;&lt;br&gt;&amp;nbsp; int&amp;nbsp; tanktag[5];&lt;br&gt;tanktag[0] = mytag;&lt;br&gt;tanktag[1]= tanktag[0]+1;&lt;br&gt;tanktag[2]= tanktag[1]+1;&lt;br&gt;tanktag[3]= tanktag[2]+1;&lt;br&gt;tanktag[4]= tanktag[3]+1; &lt;br&gt;&lt;br&gt;&lt;br&gt;&amp;nbsp; int nd = myNDA.ndims ();&lt;br&gt;&amp;nbsp; int t_id = ov_float_matrix;&lt;br&gt;// Declare here the octave_local_buffers&lt;br&gt;&amp;nbsp; OCTAVE_LOCAL_BUFFER(int,dimV,nd);&lt;br&gt;&amp;nbsp;for (octave_idx_type i=0; i&amp;lt;nd; i++)&lt;br&gt;&amp;nbsp;{&lt;br&gt;&amp;nbsp; dimV[i] = dv(i) ;&lt;br&gt;&amp;nbsp;}&lt;br&gt;&lt;br&gt;&amp;nbsp; // Now create the contiguos derived datatype&lt;br&gt;&amp;nbsp; MPI_Datatype dimvec;&lt;br&gt;&amp;nbsp; MPI_Type_contiguous(nd,MPI_INT, &amp;amp;dimvec);&lt;br&gt;&amp;nbsp; MPI_Type_commit(&amp;amp;dimvec); &lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; OCTAVE_LOCAL_BUFFER(float,LBNDA,nitem);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; float *p&amp;nbsp; = myNDA.fortran_vec();&lt;br&gt;&lt;br&gt;&amp;nbsp; for (octave_idx_type i=0; i&amp;lt;nitem;
 i++)&lt;br&gt;&amp;nbsp; {&lt;br&gt;//&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; *LBNDA = *p;&lt;br&gt;//&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; LBNDA++;&lt;br&gt;//&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; p++;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; LBNDA[i] = myNDA(i) ;&lt;br&gt;&amp;nbsp; }&lt;br&gt;&lt;br&gt;&amp;nbsp; // Now create the contiguous derived datatype&lt;br&gt;&amp;nbsp; MPI_Datatype fortvec;&lt;br&gt;&amp;nbsp; MPI_Type_contiguous(nitem,MPI_FLOAT, &amp;amp;fortvec);&lt;br&gt;&amp;nbsp; MPI_Type_commit(&amp;amp;fortvec); &lt;br&gt;&lt;br&gt;&amp;nbsp; for (octave_idx_type&amp;nbsp; i = 0; i&amp;lt; rankrec.nelem(); i++)&lt;br&gt;&amp;nbsp; { &lt;br&gt;// &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; t_id is the identifier of octave NDArray&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; printf(&quot;Sending block to %i \n&quot;,rankrec(i));&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; info = MPI_Send(&amp;amp;t_id, 1, MPI_INT, rankrec(i), tanktag[0], MPI_COMM_WORLD);&amp;nbsp; &lt;br&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; printf(&quot;I have sent&amp;nbsp; %i \n&quot;,t_id);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; if (info !=MPI_SUCCESS)
 return info;&lt;br&gt;// &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; nitem is the total number of elements&amp;nbsp; &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; info = MPI_Send(&amp;amp;nitem, 1, MPI_INT, rankrec(i), tanktag[1], MPI_COMM_WORLD);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; printf(&quot;I have sent&amp;nbsp; %i \n&quot;,nitem);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; if (info !=MPI_SUCCESS) return info;&lt;br&gt;//&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; ndims is number of dimensions &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; info = MPI_Send(&amp;amp;nd, 1, MPI_INT, rankrec(i), tanktag[2], MPI_COMM_WORLD);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; printf(&quot;I have sent&amp;nbsp; %i \n&quot;,nd);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; if (info !=MPI_SUCCESS) return info;&lt;br&gt;//&amp;nbsp;&amp;nbsp;&amp;nbsp; vector of dimensions sending&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; info = MPI_Send(dimV, 1, dimvec, rankrec(i), tanktag[3], MPI_COMM_WORLD);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; if (info !=MPI_SUCCESS)
 return info;&lt;br&gt;//&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; data matrix sending&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; info =&amp;nbsp; MPI_Send(LBNDA,1,fortvec,rankrec(i),tanktag[4],MPI_COMM_WORLD);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; if (info !=MPI_SUCCESS) return info;&lt;br&gt;&amp;nbsp; }&lt;br&gt;//&amp;nbsp;&amp;nbsp;&amp;nbsp; printf(&quot;info for sending scalar matrix is = %i \n&quot;,info);&lt;br&gt;return(info);&lt;br&gt;}&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;int send_i8_mat(int8NDArray myNDA,ColumnVector rankrec, int mytag){&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br&gt;&amp;nbsp; int info;&lt;br&gt;&amp;nbsp; int nitem = myNDA.nelem();&lt;br&gt;&amp;nbsp; dim_vector dv = myNDA.dims();&lt;br&gt;&lt;br&gt;&amp;nbsp; int&amp;nbsp; tanktag[5];&lt;br&gt;tanktag[0] = mytag;&lt;br&gt;tanktag[1]= tanktag[0]+1;&lt;br&gt;tanktag[2]= tanktag[1]+1;&lt;br&gt;tanktag[3]= tanktag[2]+1;&lt;br&gt;tanktag[4]= tanktag[3]+1; &lt;br&gt;&lt;br&gt;&lt;br&gt;&amp;nbsp; int nd = myNDA.ndims ();&lt;br&gt;&amp;nbsp; int t_id = ov_int8_matrix;&lt;br&gt;// Declare here the octave_local_buffers&lt;br&gt;&amp;nbsp; OCTAVE_LOCAL_BUFFER(int,dimV,nd);&lt;br&gt;&amp;nbsp;for (octave_idx_type i=0; i&amp;lt;nd;
 i++)&lt;br&gt;&amp;nbsp;{&lt;br&gt;&amp;nbsp; dimV[i] = dv(i) ;&lt;br&gt;&amp;nbsp;}&lt;br&gt;&lt;br&gt;&amp;nbsp; // Now create the contiguos derived datatype&lt;br&gt;&amp;nbsp; MPI_Datatype dimvec;&lt;br&gt;&amp;nbsp; MPI_Type_contiguous(nd,MPI_INT, &amp;amp;dimvec);&lt;br&gt;&amp;nbsp; MPI_Type_commit(&amp;amp;dimvec); &lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; OCTAVE_LOCAL_BUFFER(octave_int8,LBNDA,nitem);&lt;br&gt;&lt;br&gt;&amp;nbsp; for (octave_idx_type i=0; i&amp;lt;nitem; i++)&lt;br&gt;&amp;nbsp; {&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; LBNDA[i] = myNDA(i) ;&lt;br&gt;&amp;nbsp; }&lt;br&gt;&lt;br&gt;&amp;nbsp; // Now create the contiguous derived datatype&lt;br&gt;&amp;nbsp; MPI_Datatype fortvec;&lt;br&gt;&amp;nbsp; MPI_Type_contiguous(nitem,MPI_BYTE, &amp;amp;fortvec);&lt;br&gt;&amp;nbsp; MPI_Type_commit(&amp;amp;fortvec); &lt;br&gt;&lt;br&gt;&amp;nbsp; for (octave_idx_type&amp;nbsp; i = 0; i&amp;lt; rankrec.nelem(); i++)&lt;br&gt;&amp;nbsp; { &lt;br&gt;// &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; t_id is the identifier of octave NDArray&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; printf(&quot;Sending block to %i \n&quot;,rankrec(i));&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; info =
 MPI_Send(&amp;amp;t_id, 1, MPI_INT, rankrec(i), tanktag[0], MPI_COMM_WORLD);&amp;nbsp; &lt;br&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; printf(&quot;I have sent&amp;nbsp; %i \n&quot;,t_id);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; if (info !=MPI_SUCCESS) return info;&lt;br&gt;// &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; nitem is the total number of elements&amp;nbsp; &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; info = MPI_Send(&amp;amp;nitem, 1, MPI_INT, rankrec(i), tanktag[1], MPI_COMM_WORLD);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; printf(&quot;I have sent&amp;nbsp; %i \n&quot;,nitem);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; if (info !=MPI_SUCCESS) return info;&lt;br&gt;//&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; ndims is number of dimensions &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; info = MPI_Send(&amp;amp;nd, 1, MPI_INT, rankrec(i), tanktag[2], MPI_COMM_WORLD);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; printf(&quot;I have sent&amp;nbsp; %i \n&quot;,nd);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; if (info !=MPI_SUCCESS) return info;&lt;br&gt;//&amp;nbsp;&amp;nbsp;&amp;nbsp; vector of
 dimensions sending&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; info = MPI_Send(dimV, 1, dimvec, rankrec(i), tanktag[3], MPI_COMM_WORLD);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; if (info !=MPI_SUCCESS) return info;&lt;br&gt;//&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; data matrix sending&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; info =&amp;nbsp; MPI_Send(LBNDA,1,fortvec,rankrec(i),tanktag[4],MPI_COMM_WORLD);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; if (info !=MPI_SUCCESS) return info;&lt;br&gt;&amp;nbsp; }&lt;br&gt;//&amp;nbsp;&amp;nbsp;&amp;nbsp; printf(&quot;info for sending scalar matrix is = %i \n&quot;,info);&lt;br&gt;return(info);&lt;br&gt;}&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;int send_i16_mat(int16NDArray myNDA,ColumnVector rankrec, int mytag){&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br&gt;&amp;nbsp; int info;&lt;br&gt;&amp;nbsp; int nitem = myNDA.nelem();&lt;br&gt;&amp;nbsp; dim_vector dv = myNDA.dims();&lt;br&gt;&lt;br&gt;&amp;nbsp; int&amp;nbsp; tanktag[5];&lt;br&gt;tanktag[0] = mytag;&lt;br&gt;tanktag[1]= tanktag[0]+1;&lt;br&gt;tanktag[2]= tanktag[1]+1;&lt;br&gt;tanktag[3]= tanktag[2]+1;&lt;br&gt;tanktag[4]= tanktag[3]+1;
 &lt;br&gt;&lt;br&gt;&lt;br&gt;&amp;nbsp; int nd = myNDA.ndims ();&lt;br&gt;&amp;nbsp; int t_id = ov_int16_matrix;&lt;br&gt;// Declare here the octave_local_buffers&lt;br&gt;&amp;nbsp; OCTAVE_LOCAL_BUFFER(int,dimV,nd);&lt;br&gt;&amp;nbsp;for (octave_idx_type i=0; i&amp;lt;nd; i++)&lt;br&gt;&amp;nbsp;{&lt;br&gt;&amp;nbsp; dimV[i] = dv(i) ;&lt;br&gt;&amp;nbsp;}&lt;br&gt;&lt;br&gt;&amp;nbsp; // Now create the contiguos derived datatype&lt;br&gt;&amp;nbsp; MPI_Datatype dimvec;&lt;br&gt;&amp;nbsp; MPI_Type_contiguous(nd,MPI_INT, &amp;amp;dimvec);&lt;br&gt;&amp;nbsp; MPI_Type_commit(&amp;amp;dimvec); &lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; OCTAVE_LOCAL_BUFFER(octave_int16,LBNDA,nitem);&lt;br&gt;&lt;br&gt;&amp;nbsp; for (octave_idx_type i=0; i&amp;lt;nitem; i++)&lt;br&gt;&amp;nbsp; {&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; LBNDA[i] = myNDA(i) ;&lt;br&gt;&amp;nbsp; }&lt;br&gt;&lt;br&gt;&amp;nbsp; // Now create the contiguous derived datatype&lt;br&gt;&amp;nbsp; MPI_Datatype fortvec;&lt;br&gt;&amp;nbsp; MPI_Type_contiguous(nitem,MPI_SHORT, &amp;amp;fortvec);&lt;br&gt;&amp;nbsp; MPI_Type_commit(&amp;amp;fortvec); &lt;br&gt;&lt;br&gt;&amp;nbsp; for (octave_idx_type&amp;nbsp; i = 0; i&amp;lt; rankrec.nelem(); i++)&lt;br&gt;&amp;nbsp; { &lt;br&gt;//
 &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; t_id is the identifier of octave NDArray&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; printf(&quot;Sending block to %i \n&quot;,rankrec(i));&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; info = MPI_Send(&amp;amp;t_id, 1, MPI_INT, rankrec(i), tanktag[0], MPI_COMM_WORLD);&amp;nbsp; &lt;br&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; printf(&quot;I have sent&amp;nbsp; %i \n&quot;,t_id);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; if (info !=MPI_SUCCESS) return info;&lt;br&gt;// &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; nitem is the total number of elements&amp;nbsp; &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; info = MPI_Send(&amp;amp;nitem, 1, MPI_INT, rankrec(i), tanktag[1], MPI_COMM_WORLD);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; printf(&quot;I have sent&amp;nbsp; %i \n&quot;,nitem);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; if (info !=MPI_SUCCESS) return info;&lt;br&gt;//&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; ndims is number of dimensions &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; info =
 MPI_Send(&amp;amp;nd, 1, MPI_INT, rankrec(i), tanktag[2], MPI_COMM_WORLD);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; printf(&quot;I have sent&amp;nbsp; %i \n&quot;,nd);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; if (info !=MPI_SUCCESS) return info;&lt;br&gt;//&amp;nbsp;&amp;nbsp;&amp;nbsp; vector of dimensions sending&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; info = MPI_Send(dimV, 1, dimvec, rankrec(i), tanktag[3], MPI_COMM_WORLD);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; if (info !=MPI_SUCCESS) return info;&lt;br&gt;//&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; data matrix sending&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; info =&amp;nbsp; MPI_Send(LBNDA,1,fortvec,rankrec(i),tanktag[4],MPI_COMM_WORLD);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; if (info !=MPI_SUCCESS) return info;&lt;br&gt;&amp;nbsp; }&lt;br&gt;//&amp;nbsp;&amp;nbsp;&amp;nbsp; printf(&quot;info for sending scalar matrix is = %i \n&quot;,info);&lt;br&gt;return(info);&lt;br&gt;}&lt;br&gt;&lt;br&gt;&lt;br&gt;int send_i32_mat(int32NDArray myNDA,ColumnVector rankrec, int mytag){&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br&gt;&amp;nbsp; int info;&lt;br&gt;&amp;nbsp; int nitem =
 myNDA.nelem();&lt;br&gt;&amp;nbsp; dim_vector dv = myNDA.dims();&lt;br&gt;&lt;br&gt;&amp;nbsp; int&amp;nbsp; tanktag[5];&lt;br&gt;tanktag[0] = mytag;&lt;br&gt;tanktag[1]= tanktag[0]+1;&lt;br&gt;tanktag[2]= tanktag[1]+1;&lt;br&gt;tanktag[3]= tanktag[2]+1;&lt;br&gt;tanktag[4]= tanktag[3]+1; &lt;br&gt;&lt;br&gt;&lt;br&gt;&amp;nbsp; int nd = myNDA.ndims ();&lt;br&gt;&amp;nbsp; int t_id = ov_int32_matrix;&lt;br&gt;// Declare here the octave_local_buffers&lt;br&gt;&amp;nbsp; OCTAVE_LOCAL_BUFFER(int,dimV,nd);&lt;br&gt;&amp;nbsp;for (octave_idx_type i=0; i&amp;lt;nd; i++)&lt;br&gt;&amp;nbsp;{&lt;br&gt;&amp;nbsp; dimV[i] = dv(i) ;&lt;br&gt;&amp;nbsp;}&lt;br&gt;&lt;br&gt;&amp;nbsp; // Now create the contiguos derived datatype&lt;br&gt;&amp;nbsp; MPI_Datatype dimvec;&lt;br&gt;&amp;nbsp; MPI_Type_contiguous(nd,MPI_INT, &amp;amp;dimvec);&lt;br&gt;&amp;nbsp; MPI_Type_commit(&amp;amp;dimvec); &lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; OCTAVE_LOCAL_BUFFER(octave_int32,LBNDA,nitem);&lt;br&gt;&lt;br&gt;&amp;nbsp; for (octave_idx_type i=0; i&amp;lt;nitem; i++)&lt;br&gt;&amp;nbsp; {&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; LBNDA[i] = myNDA(i) ;&lt;br&gt;&amp;nbsp; }&lt;br&gt;&lt;br&gt;&amp;nbsp; // Now create the contiguous derived datatype&lt;br&gt;&amp;nbsp;
 MPI_Datatype fortvec;&lt;br&gt;&amp;nbsp; MPI_Type_contiguous(nitem,MPI_INT, &amp;amp;fortvec);&lt;br&gt;&amp;nbsp; MPI_Type_commit(&amp;amp;fortvec); &lt;br&gt;&lt;br&gt;&amp;nbsp; for (octave_idx_type&amp;nbsp; i = 0; i&amp;lt; rankrec.nelem(); i++)&lt;br&gt;&amp;nbsp; { &lt;br&gt;// &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; t_id is the identifier of octave NDArray&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; printf(&quot;Sending block to %i \n&quot;,rankrec(i));&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; info = MPI_Send(&amp;amp;t_id, 1, MPI_INT, rankrec(i), tanktag[0], MPI_COMM_WORLD);&amp;nbsp; &lt;br&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; printf(&quot;I have sent&amp;nbsp; %i \n&quot;,t_id);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; if (info !=MPI_SUCCESS) return info;&lt;br&gt;// &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; nitem is the total number of elements&amp;nbsp; &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; info = MPI_Send(&amp;amp;nitem, 1, MPI_INT, rankrec(i), tanktag[1], MPI_COMM_WORLD);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; printf(&quot;I have sent&amp;nbsp;
 %i \n&quot;,nitem);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; if (info !=MPI_SUCCESS) return info;&lt;br&gt;//&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; ndims is number of dimensions &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; info = MPI_Send(&amp;amp;nd, 1, MPI_INT, rankrec(i), tanktag[2], MPI_COMM_WORLD);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; printf(&quot;I have sent&amp;nbsp; %i \n&quot;,nd);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; if (info !=MPI_SUCCESS) return info;&lt;br&gt;//&amp;nbsp;&amp;nbsp;&amp;nbsp; vector of dimensions sending&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; info = MPI_Send(dimV, 1, dimvec, rankrec(i), tanktag[3], MPI_COMM_WORLD);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; if (info !=MPI_SUCCESS) return info;&lt;br&gt;//&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; data matrix sending&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; info =&amp;nbsp; MPI_Send(LBNDA,1,fortvec,rankrec(i),tanktag[4],MPI_COMM_WORLD);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; if (info !=MPI_SUCCESS) return info;&lt;br&gt;&amp;nbsp; }&lt;br&gt;//&amp;nbsp;&amp;nbsp;&amp;nbsp; printf(&quot;info for sending scalar matrix
 is = %i \n&quot;,info);&lt;br&gt;return(info);&lt;br&gt;}&lt;br&gt;&lt;br&gt;int send_i64_mat(int64NDArray myNDA,ColumnVector rankrec, int mytag){&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br&gt;&amp;nbsp; int info;&lt;br&gt;&amp;nbsp; int nitem = myNDA.nelem();&lt;br&gt;&amp;nbsp; dim_vector dv = myNDA.dims();&lt;br&gt;&lt;br&gt;&amp;nbsp; int&amp;nbsp; tanktag[5];&lt;br&gt;tanktag[0] = mytag;&lt;br&gt;tanktag[1]= tanktag[0]+1;&lt;br&gt;tanktag[2]= tanktag[1]+1;&lt;br&gt;tanktag[3]= tanktag[2]+1;&lt;br&gt;tanktag[4]= tanktag[3]+1; &lt;br&gt;&lt;br&gt;&lt;br&gt;&amp;nbsp; int nd = myNDA.ndims ();&lt;br&gt;&amp;nbsp; int t_id = ov_int64_matrix;&lt;br&gt;// Declare here the octave_local_buffers&lt;br&gt;&amp;nbsp; OCTAVE_LOCAL_BUFFER(int,dimV,nd);&lt;br&gt;&amp;nbsp;for (octave_idx_type i=0; i&amp;lt;nd; i++)&lt;br&gt;&amp;nbsp;{&lt;br&gt;&amp;nbsp; dimV[i] = dv(i) ;&lt;br&gt;&amp;nbsp;}&lt;br&gt;&lt;br&gt;&amp;nbsp; // Now create the contiguos derived datatype&lt;br&gt;&amp;nbsp; MPI_Datatype dimvec;&lt;br&gt;&amp;nbsp; MPI_Type_contiguous(nd,MPI_INT, &amp;amp;dimvec);&lt;br&gt;&amp;nbsp; MPI_Type_commit(&amp;amp;dimvec); &lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;
 OCTAVE_LOCAL_BUFFER(octave_int64,LBNDA,nitem);&lt;br&gt;&lt;br&gt;&amp;nbsp; for (octave_idx_type i=0; i&amp;lt;nitem; i++)&lt;br&gt;&amp;nbsp; {&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; LBNDA[i] = myNDA(i) ;&lt;br&gt;&amp;nbsp; }&lt;br&gt;&lt;br&gt;&amp;nbsp; // Now create the contiguous derived datatype&lt;br&gt;&amp;nbsp; MPI_Datatype fortvec;&lt;br&gt;&amp;nbsp; MPI_Type_contiguous(nitem,MPI_LONG_LONG, &amp;amp;fortvec);&lt;br&gt;&amp;nbsp; MPI_Type_commit(&amp;amp;fortvec); &lt;br&gt;&lt;br&gt;&amp;nbsp; for (octave_idx_type&amp;nbsp; i = 0; i&amp;lt; rankrec.nelem(); i++)&lt;br&gt;&amp;nbsp; { &lt;br&gt;// &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; t_id is the identifier of octave NDArray&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; printf(&quot;Sending block to %i \n&quot;,rankrec(i));&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; info = MPI_Send(&amp;amp;t_id, 1, MPI_INT, rankrec(i), tanktag[0], MPI_COMM_WORLD);&amp;nbsp; &lt;br&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; printf(&quot;I have sent&amp;nbsp; %i \n&quot;,t_id);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; if (info !=MPI_SUCCESS) return info;&lt;br&gt;// &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; nitem is
 the total number of elements&amp;nbsp; &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; info = MPI_Send(&amp;amp;nitem, 1, MPI_INT, rankrec(i), tanktag[1], MPI_COMM_WORLD);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; printf(&quot;I have sent&amp;nbsp; %i \n&quot;,nitem);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; if (info !=MPI_SUCCESS) return info;&lt;br&gt;//&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; ndims is number of dimensions &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; info = MPI_Send(&amp;amp;nd, 1, MPI_INT, rankrec(i), tanktag[2], MPI_COMM_WORLD);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; printf(&quot;I have sent&amp;nbsp; %i \n&quot;,nd);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; if (info !=MPI_SUCCESS) return info;&lt;br&gt;//&amp;nbsp;&amp;nbsp;&amp;nbsp; vector of dimensions sending&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; info = MPI_Send(dimV, 1, dimvec, rankrec(i), tanktag[3], MPI_COMM_WORLD);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; if (info !=MPI_SUCCESS) return info;&lt;br&gt;//&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; data
 matrix sending&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; info =&amp;nbsp; MPI_Send(LBNDA,1,fortvec,rankrec(i),tanktag[4],MPI_COMM_WORLD);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; if (info !=MPI_SUCCESS) return info;&lt;br&gt;&amp;nbsp; }&lt;br&gt;//&amp;nbsp;&amp;nbsp;&amp;nbsp; printf(&quot;info for sending scalar matrix is = %i \n&quot;,info);&lt;br&gt;return(info);&lt;br&gt;}&lt;br&gt;int send_ui8_mat(uint8NDArray myNDA,ColumnVector rankrec, int mytag){&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br&gt;&amp;nbsp; int info;&lt;br&gt;&amp;nbsp; int nitem = myNDA.nelem();&lt;br&gt;&amp;nbsp; dim_vector dv = myNDA.dims();&lt;br&gt;&lt;br&gt;&amp;nbsp; int&amp;nbsp; tanktag[5];&lt;br&gt;tanktag[0] = mytag;&lt;br&gt;tanktag[1]= tanktag[0]+1;&lt;br&gt;tanktag[2]= tanktag[1]+1;&lt;br&gt;tanktag[3]= tanktag[2]+1;&lt;br&gt;tanktag[4]= tanktag[3]+1; &lt;br&gt;&lt;br&gt;&lt;br&gt;&amp;nbsp; int nd = myNDA.ndims ();&lt;br&gt;&amp;nbsp; int t_id = ov_uint8_matrix;&lt;br&gt;// Declare here the octave_local_buffers&lt;br&gt;&amp;nbsp; OCTAVE_LOCAL_BUFFER(int,dimV,nd);&lt;br&gt;&amp;nbsp;for (octave_idx_type i=0; i&amp;lt;nd; i++)&lt;br&gt;&amp;nbsp;{&lt;br&gt;&amp;nbsp; dimV[i] = dv(i)
 ;&lt;br&gt;&amp;nbsp;}&lt;br&gt;&lt;br&gt;&amp;nbsp; // Now create the contiguos derived datatype&lt;br&gt;&amp;nbsp; MPI_Datatype dimvec;&lt;br&gt;&amp;nbsp; MPI_Type_contiguous(nd,MPI_INT, &amp;amp;dimvec);&lt;br&gt;&amp;nbsp; MPI_Type_commit(&amp;amp;dimvec); &lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; OCTAVE_LOCAL_BUFFER(octave_uint8,LBNDA,nitem);&lt;br&gt;&lt;br&gt;&amp;nbsp; for (octave_idx_type i=0; i&amp;lt;nitem; i++)&lt;br&gt;&amp;nbsp; {&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; LBNDA[i] = myNDA(i) ;&lt;br&gt;&amp;nbsp; }&lt;br&gt;&lt;br&gt;&amp;nbsp; // Now create the contiguous derived datatype&lt;br&gt;&amp;nbsp; MPI_Datatype fortvec;&lt;br&gt;&amp;nbsp; MPI_Type_contiguous(nitem,MPI_UNSIGNED_CHAR, &amp;amp;fortvec);&lt;br&gt;&amp;nbsp; MPI_Type_commit(&amp;amp;fortvec); &lt;br&gt;&lt;br&gt;&amp;nbsp; for (octave_idx_type&amp;nbsp; i = 0; i&amp;lt; rankrec.nelem(); i++)&lt;br&gt;&amp;nbsp; { &lt;br&gt;// &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; t_id is the identifier of octave NDArray&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; printf(&quot;Sending block to %i \n&quot;,rankrec(i));&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; info = MPI_Send(&amp;amp;t_id, 1, MPI_INT,
 rankrec(i), tanktag[0], MPI_COMM_WORLD);&amp;nbsp; &lt;br&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; printf(&quot;I have sent&amp;nbsp; %i \n&quot;,t_id);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; if (info !=MPI_SUCCESS) return info;&lt;br&gt;// &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; nitem is the total number of elements&amp;nbsp; &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; info = MPI_Send(&amp;amp;nitem, 1, MPI_INT, rankrec(i), tanktag[1], MPI_COMM_WORLD);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; printf(&quot;I have sent&amp;nbsp; %i \n&quot;,nitem);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; if (info !=MPI_SUCCESS) return info;&lt;br&gt;//&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; ndims is number of dimensions &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; info = MPI_Send(&amp;amp;nd, 1, MPI_INT, rankrec(i), tanktag[2], MPI_COMM_WORLD);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; printf(&quot;I have sent&amp;nbsp; %i \n&quot;,nd);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; if (info !=MPI_SUCCESS) return info;&lt;br&gt;//&amp;nbsp;&amp;nbsp;&amp;nbsp; vector of dimensions
 sending&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; info = MPI_Send(dimV, 1, dimvec, rankrec(i), tanktag[3], MPI_COMM_WORLD);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; if (info !=MPI_SUCCESS) return info;&lt;br&gt;//&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; data matrix sending&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; info =&amp;nbsp; MPI_Send(LBNDA,1,fortvec,rankrec(i),tanktag[4],MPI_COMM_WORLD);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; if (info !=MPI_SUCCESS) return info;&lt;br&gt;&amp;nbsp; }&lt;br&gt;//&amp;nbsp;&amp;nbsp;&amp;nbsp; printf(&quot;info for sending scalar matrix is = %i \n&quot;,info);&lt;br&gt;return(info);&lt;br&gt;}&lt;br&gt;&lt;br&gt;int send_ui16_mat(uint16NDArray myNDA,ColumnVector rankrec, int mytag){&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br&gt;&amp;nbsp; int info;&lt;br&gt;&amp;nbsp; int nitem = myNDA.nelem();&lt;br&gt;&amp;nbsp; dim_vector dv = myNDA.dims();&lt;br&gt;&lt;br&gt;&amp;nbsp; int&amp;nbsp; tanktag[5];&lt;br&gt;tanktag[0] = mytag;&lt;br&gt;tanktag[1]= tanktag[0]+1;&lt;br&gt;tanktag[2]= tanktag[1]+1;&lt;br&gt;tanktag[3]= tanktag[2]+1;&lt;br&gt;tanktag[4]= tanktag[3]+1; &lt;br&gt;&lt;br&gt;&lt;br&gt;&amp;nbsp; int nd =
 myNDA.ndims ();&lt;br&gt;&amp;nbsp; int t_id = ov_uint16_matrix;&lt;br&gt;// Declare here the octave_local_buffers&lt;br&gt;&amp;nbsp; OCTAVE_LOCAL_BUFFER(int,dimV,nd);&lt;br&gt;&amp;nbsp;for (octave_idx_type i=0; i&amp;lt;nd; i++)&lt;br&gt;&amp;nbsp;{&lt;br&gt;&amp;nbsp; dimV[i] = dv(i) ;&lt;br&gt;&amp;nbsp;}&lt;br&gt;&lt;br&gt;&amp;nbsp; // Now create the contiguos derived datatype&lt;br&gt;&amp;nbsp; MPI_Datatype dimvec;&lt;br&gt;&amp;nbsp; MPI_Type_contiguous(nd,MPI_INT, &amp;amp;dimvec);&lt;br&gt;&amp;nbsp; MPI_Type_commit(&amp;amp;dimvec); &lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; OCTAVE_LOCAL_BUFFER(octave_uint16,LBNDA,nitem);&lt;br&gt;&lt;br&gt;&amp;nbsp; for (octave_idx_type i=0; i&amp;lt;nitem; i++)&lt;br&gt;&amp;nbsp; {&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; LBNDA[i] = myNDA(i) ;&lt;br&gt;&amp;nbsp; }&lt;br&gt;&lt;br&gt;&amp;nbsp; // Now create the contiguous derived datatype&lt;br&gt;&amp;nbsp; MPI_Datatype fortvec;&lt;br&gt;&amp;nbsp; MPI_Type_contiguous(nitem,MPI_UNSIGNED_SHORT, &amp;amp;fortvec);&lt;br&gt;&amp;nbsp; MPI_Type_commit(&amp;amp;fortvec); &lt;br&gt;&lt;br&gt;&amp;nbsp; for (octave_idx_type&amp;nbsp; i = 0; i&amp;lt; rankrec.nelem(); i++)&lt;br&gt;&amp;nbsp; { &lt;br&gt;// &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;
 t_id is the identifier of octave NDArray&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; printf(&quot;Sending block to %i \n&quot;,rankrec(i));&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; info = MPI_Send(&amp;amp;t_id, 1, MPI_INT, rankrec(i), tanktag[0], MPI_COMM_WORLD);&amp;nbsp; &lt;br&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; printf(&quot;I have sent&amp;nbsp; %i \n&quot;,t_id);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; if (info !=MPI_SUCCESS) return info;&lt;br&gt;// &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; nitem is the total number of elements&amp;nbsp; &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; info = MPI_Send(&amp;amp;nitem, 1, MPI_INT, rankrec(i), tanktag[1], MPI_COMM_WORLD);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; printf(&quot;I have sent&amp;nbsp; %i \n&quot;,nitem);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; if (info !=MPI_SUCCESS) return info;&lt;br&gt;//&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; ndims is number of dimensions &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; info = MPI_Send(&amp;amp;nd, 1, MPI_INT,
 rankrec(i), tanktag[2], MPI_COMM_WORLD);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; printf(&quot;I have sent&amp;nbsp; %i \n&quot;,nd);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; if (info !=MPI_SUCCESS) return info;&lt;br&gt;//&amp;nbsp;&amp;nbsp;&amp;nbsp; vector of dimensions sending&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; info = MPI_Send(dimV, 1, dimvec, rankrec(i), tanktag[3], MPI_COMM_WORLD);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; if (info !=MPI_SUCCESS) return info;&lt;br&gt;//&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; data matrix sending&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; info =&amp;nbsp; MPI_Send(LBNDA,1,fortvec,rankrec(i),tanktag[4],MPI_COMM_WORLD);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; if (info !=MPI_SUCCESS) return info;&lt;br&gt;&amp;nbsp; }&lt;br&gt;//&amp;nbsp;&amp;nbsp;&amp;nbsp; printf(&quot;info for sending scalar matrix is = %i \n&quot;,info);&lt;br&gt;return(info);&lt;br&gt;}&lt;br&gt;int send_ui32_mat(uint32NDArray myNDA,ColumnVector rankrec, int mytag){&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br&gt;&amp;nbsp; int info;&lt;br&gt;&amp;nbsp; int nitem = myNDA.nelem();&lt;br&gt;&amp;nbsp; dim_vector dv =
 myNDA.dims();&lt;br&gt;&lt;br&gt;&amp;nbsp; int&amp;nbsp; tanktag[5];&lt;br&gt;tanktag[0] = mytag;&lt;br&gt;tanktag[1]= tanktag[0]+1;&lt;br&gt;tanktag[2]= tanktag[1]+1;&lt;br&gt;tanktag[3]= tanktag[2]+1;&lt;br&gt;tanktag[4]= tanktag[3]+1; &lt;br&gt;&lt;br&gt;&lt;br&gt;&amp;nbsp; int nd = myNDA.ndims ();&lt;br&gt;&amp;nbsp; int t_id = ov_uint32_matrix;&lt;br&gt;// Declare here the octave_local_buffers&lt;br&gt;&amp;nbsp; OCTAVE_LOCAL_BUFFER(int,dimV,nd);&lt;br&gt;&amp;nbsp;for (octave_idx_type i=0; i&amp;lt;nd; i++)&lt;br&gt;&amp;nbsp;{&lt;br&gt;&amp;nbsp; dimV[i] = dv(i) ;&lt;br&gt;&amp;nbsp;}&lt;br&gt;&lt;br&gt;&amp;nbsp; // Now create the contiguos derived datatype&lt;br&gt;&amp;nbsp; MPI_Datatype dimvec;&lt;br&gt;&amp;nbsp; MPI_Type_contiguous(nd,MPI_INT, &amp;amp;dimvec);&lt;br&gt;&amp;nbsp; MPI_Type_commit(&amp;amp;dimvec); &lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; OCTAVE_LOCAL_BUFFER(octave_uint32,LBNDA,nitem);&lt;br&gt;&lt;br&gt;&amp;nbsp; for (octave_idx_type i=0; i&amp;lt;nitem; i++)&lt;br&gt;&amp;nbsp; {&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; LBNDA[i] = myNDA(i) ;&lt;br&gt;&amp;nbsp; }&lt;br&gt;&lt;br&gt;&amp;nbsp; // Now create the contiguous derived datatype&lt;br&gt;&amp;nbsp; MPI_Datatype fortvec;&lt;br&gt;&amp;nbsp;
 MPI_Type_contiguous(nitem,MPI_UNSIGNED, &amp;amp;fortvec);&lt;br&gt;&amp;nbsp; MPI_Type_commit(&amp;amp;fortvec); &lt;br&gt;&lt;br&gt;&amp;nbsp; for (octave_idx_type&amp;nbsp; i = 0; i&amp;lt; rankrec.nelem(); i++)&lt;br&gt;&amp;nbsp; { &lt;br&gt;// &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; t_id is the identifier of octave NDArray&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; printf(&quot;Sending block to %i \n&quot;,rankrec(i));&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; info = MPI_Send(&amp;amp;t_id, 1, MPI_INT, rankrec(i), tanktag[0], MPI_COMM_WORLD);&amp;nbsp; &lt;br&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; printf(&quot;I have sent&amp;nbsp; %i \n&quot;,t_id);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; if (info !=MPI_SUCCESS) return info;&lt;br&gt;// &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; nitem is the total number of elements&amp;nbsp; &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; info = MPI_Send(&amp;amp;nitem, 1, MPI_INT, rankrec(i), tanktag[1], MPI_COMM_WORLD);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; printf(&quot;I have sent&amp;nbsp; %i
 \n&quot;,nitem);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; if (info !=MPI_SUCCESS) return info;&lt;br&gt;//&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; ndims is number of dimensions &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; info = MPI_Send(&amp;amp;nd, 1, MPI_INT, rankrec(i), tanktag[2], MPI_COMM_WORLD);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; printf(&quot;I have sent&amp;nbsp; %i \n&quot;,nd);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; if (info !=MPI_SUCCESS) return info;&lt;br&gt;//&amp;nbsp;&amp;nbsp;&amp;nbsp; vector of dimensions sending&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; info = MPI_Send(dimV, 1, dimvec, rankrec(i), tanktag[3], MPI_COMM_WORLD);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; if (info !=MPI_SUCCESS) return info;&lt;br&gt;//&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; data matrix sending&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; info =&amp;nbsp; MPI_Send(LBNDA,1,fortvec,rankrec(i),tanktag[4],MPI_COMM_WORLD);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; if (info !=MPI_SUCCESS) return info;&lt;br&gt;&amp;nbsp; }&lt;br&gt;//&amp;nbsp;&amp;nbsp;&amp;nbsp; printf(&quot;info for sending scalar matrix is =
 %i \n&quot;,info);&lt;br&gt;return(info);&lt;br&gt;}&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;int send_ui64_mat(uint64NDArray myNDA,ColumnVector rankrec, int mytag){&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br&gt;&amp;nbsp; int info;&lt;br&gt;&amp;nbsp; int nitem = myNDA.nelem();&lt;br&gt;&amp;nbsp; dim_vector dv = myNDA.dims();&lt;br&gt;&lt;br&gt;&amp;nbsp; int&amp;nbsp; tanktag[5];&lt;br&gt;tanktag[0] = mytag;&lt;br&gt;tanktag[1]= tanktag[0]+1;&lt;br&gt;tanktag[2]= tanktag[1]+1;&lt;br&gt;tanktag[3]= tanktag[2]+1;&lt;br&gt;tanktag[4]= tanktag[3]+1; &lt;br&gt;&lt;br&gt;&lt;br&gt;&amp;nbsp; int nd = myNDA.ndims ();&lt;br&gt;&amp;nbsp; int t_id = ov_uint64_matrix;&lt;br&gt;// Declare here the octave_local_buffers&lt;br&gt;&amp;nbsp; OCTAVE_LOCAL_BUFFER(int,dimV,nd);&lt;br&gt;&amp;nbsp;for (octave_idx_type i=0; i&amp;lt;nd; i++)&lt;br&gt;&amp;nbsp;{&lt;br&gt;&amp;nbsp; dimV[i] = dv(i) ;&lt;br&gt;&amp;nbsp;}&lt;br&gt;&lt;br&gt;&amp;nbsp; // Now create the contiguos derived datatype&lt;br&gt;&amp;nbsp; MPI_Datatype dimvec;&lt;br&gt;&amp;nbsp; MPI_Type_contiguous(nd,MPI_INT, &amp;amp;dimvec);&lt;br&gt;&amp;nbsp; MPI_Type_commit(&amp;amp;dimvec); &lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;
 OCTAVE_LOCAL_BUFFER(octave_uint64,LBNDA,nitem);&lt;br&gt;&lt;br&gt;&amp;nbsp; for (octave_idx_type i=0; i&amp;lt;nitem; i++)&lt;br&gt;&amp;nbsp; {&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; LBNDA[i] = myNDA(i) ;&lt;br&gt;&amp;nbsp; }&lt;br&gt;&lt;br&gt;&amp;nbsp; // Now create the contiguous derived datatype&lt;br&gt;&amp;nbsp; MPI_Datatype fortvec;&lt;br&gt;&amp;nbsp; MPI_Type_contiguous(nitem,MPI_UNSIGNED_LONG_LONG, &amp;amp;fortvec);&lt;br&gt;&amp;nbsp; MPI_Type_commit(&amp;amp;fortvec); &lt;br&gt;&lt;br&gt;&amp;nbsp; for (octave_idx_type&amp;nbsp; i = 0; i&amp;lt; rankrec.nelem(); i++)&lt;br&gt;&amp;nbsp; { &lt;br&gt;// &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; t_id is the identifier of octave NDArray&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; printf(&quot;Sending block to %i \n&quot;,rankrec(i));&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; info = MPI_Send(&amp;amp;t_id, 1, MPI_INT, rankrec(i), tanktag[0], MPI_COMM_WORLD);&amp;nbsp; &lt;br&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; printf(&quot;I have sent&amp;nbsp; %i \n&quot;,t_id);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; if (info !=MPI_SUCCESS) return info;&lt;br&gt;// &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;
 nitem is the total number of elements&amp;nbsp; &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; info = MPI_Send(&amp;amp;nitem, 1, MPI_INT, rankrec(i), tanktag[1], MPI_COMM_WORLD);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; printf(&quot;I have sent&amp;nbsp; %i \n&quot;,nitem);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; if (info !=MPI_SUCCESS) return info;&lt;br&gt;//&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; ndims is number of dimensions &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; info = MPI_Send(&amp;amp;nd, 1, MPI_INT, rankrec(i), tanktag[2], MPI_COMM_WORLD);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; printf(&quot;I have sent&amp;nbsp; %i \n&quot;,nd);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; if (info !=MPI_SUCCESS) return info;&lt;br&gt;//&amp;nbsp;&amp;nbsp;&amp;nbsp; vector of dimensions sending&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; info = MPI_Send(dimV, 1, dimvec, rankrec(i), tanktag[3], MPI_COMM_WORLD);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; if (info !=MPI_SUCCESS) return info;&lt;br&gt;//&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
 data matrix sending&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; info =&amp;nbsp; MPI_Send(LBNDA,1,fortvec,rankrec(i),tanktag[4],MPI_COMM_WORLD);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; if (info !=MPI_SUCCESS) return info;&lt;br&gt;&amp;nbsp; }&lt;br&gt;//&amp;nbsp;&amp;nbsp;&amp;nbsp; printf(&quot;info for sending scalar matrix is = %i \n&quot;,info);&lt;br&gt;return(info);&lt;br&gt;}&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;int send_ch_mat(charNDArray myNDA,ColumnVector rankrec, int mytag){&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br&gt;&amp;nbsp; int info;&lt;br&gt;&amp;nbsp; int nitem = myNDA.nelem();&lt;br&gt;&amp;nbsp; dim_vector dv = myNDA.dims();&lt;br&gt;&amp;nbsp;&lt;br&gt;OCTAVE_LOCAL_BUFFER(int,tanktag,5);&lt;br&gt;//&amp;nbsp;&amp;nbsp; int&amp;nbsp; tanktag[5];&lt;br&gt;tanktag[0] = mytag;&lt;br&gt;tanktag[1]= tanktag[0]+1;&lt;br&gt;tanktag[2]= tanktag[1]+1;&lt;br&gt;tanktag[3]= tanktag[2]+1;&lt;br&gt;tanktag[4]= tanktag[3]+1; &lt;br&gt;&lt;br&gt;&lt;br&gt;&amp;nbsp; int nd = myNDA.ndims ();&lt;br&gt;&amp;nbsp; int t_id = ov_char_matrix;&lt;br&gt;// Declare here the octave_local_buffers&lt;br&gt;&amp;nbsp; OCTAVE_LOCAL_BUFFER(int,dimV,nd);&lt;br&gt;&amp;nbsp;for (octave_idx_type i=0;
 i&amp;lt;nd; i++)&lt;br&gt;&amp;nbsp;{&lt;br&gt;&amp;nbsp; dimV[i] = dv(i) ;&lt;br&gt;&amp;nbsp;}&lt;br&gt;&lt;br&gt;&amp;nbsp; // Now create the contiguos derived datatype&lt;br&gt;&amp;nbsp; MPI_Datatype dimvec;&lt;br&gt;&amp;nbsp; MPI_Type_contiguous(nd,MPI_INT, &amp;amp;dimvec);&lt;br&gt;&amp;nbsp; MPI_Type_commit(&amp;amp;dimvec); &lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; OCTAVE_LOCAL_BUFFER(char,LBNDA,nitem);&lt;br&gt;&lt;br&gt;&amp;nbsp; for (octave_idx_type i=0; i&amp;lt;nitem; i++)&lt;br&gt;&amp;nbsp; {&lt;br&gt;//&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; *LBNDA = *p;&lt;br&gt;//&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; LBNDA++;&lt;br&gt;//&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; p++;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; LBNDA[i] = myNDA(i) ;&lt;br&gt;&amp;nbsp; }&lt;br&gt;&lt;br&gt;&amp;nbsp; // Now create the contiguous derived datatype&lt;br&gt;&amp;nbsp; MPI_Datatype fortvec;&lt;br&gt;&amp;nbsp; MPI_Type_contiguous(nitem,MPI_CHAR, &amp;amp;fortvec);&lt;br&gt;&amp;nbsp; MPI_Type_commit(&amp;amp;fortvec); &lt;br&gt;&lt;br&gt;&amp;nbsp; for (octave_idx_type&amp;nbsp; i = 0; i&amp;lt; rankrec.nelem(); i++)&lt;br&gt;&amp;nbsp; { &lt;br&gt;// &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; t_id is the identifier of octave
 NDArray&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; printf(&quot;Sending block to %i \n&quot;,rankrec(i));&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; info = MPI_Send(&amp;amp;t_id, 1, MPI_INT, rankrec(i), tanktag[0], MPI_COMM_WORLD);&amp;nbsp; &lt;br&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; printf(&quot;I have sent&amp;nbsp; %i \n&quot;,t_id);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; if (info !=MPI_SUCCESS) return info;&lt;br&gt;// &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; nitem is the total number of elements&amp;nbsp; &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; info = MPI_Send(&amp;amp;nitem, 1, MPI_INT, rankrec(i), tanktag[1], MPI_COMM_WORLD);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; printf(&quot;I have sent&amp;nbsp; %i \n&quot;,nitem);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; if (info !=MPI_SUCCESS) return info;&lt;br&gt;//&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; ndims is number of dimensions &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; info = MPI_Send(&amp;amp;nd, 1, MPI_INT, rankrec(i), tanktag[2],
 MPI_COMM_WORLD);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; printf(&quot;I have sent&amp;nbsp; %i \n&quot;,nd);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; if (info !=MPI_SUCCESS) return info;&lt;br&gt;//&amp;nbsp;&amp;nbsp;&amp;nbsp; vector of dimensions sending&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; info = MPI_Send(dimV, 1, dimvec, rankrec(i), tanktag[3], MPI_COMM_WORLD);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; if (info !=MPI_SUCCESS) return info;&lt;br&gt;//&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; data matrix sending&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; info =&amp;nbsp; MPI_Send(LBNDA,1,fortvec,rankrec(i),tanktag[4],MPI_COMM_WORLD);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; if (info !=MPI_SUCCESS) return info;&lt;br&gt;&amp;nbsp; }&lt;br&gt;//&amp;nbsp;&amp;nbsp;&amp;nbsp; printf(&quot;info for sending scalar matrix is = %i \n&quot;,info);&lt;br&gt;return(info);&lt;br&gt;}&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;int send_bl_mat(boolNDArray myNDA,ColumnVector rankrec, int mytag){&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br&gt;&amp;nbsp; int info;&lt;br&gt;&amp;nbsp; int nitem = myNDA.nelem();&lt;br&gt;&amp;nbsp; dim_vector dv =
 myNDA.dims();&lt;br&gt;&lt;br&gt;&amp;nbsp; int&amp;nbsp; tanktag[5];&lt;br&gt;tanktag[0] = mytag;&lt;br&gt;tanktag[1]= tanktag[0]+1;&lt;br&gt;tanktag[2]= tanktag[1]+1;&lt;br&gt;tanktag[3]= tanktag[2]+1;&lt;br&gt;tanktag[4]= tanktag[3]+1; &lt;br&gt;&lt;br&gt;&lt;br&gt;&amp;nbsp; int nd = myNDA.ndims ();&lt;br&gt;&amp;nbsp; int t_id = ov_matrix;&lt;br&gt;// Declare here the octave_local_buffers&lt;br&gt;&amp;nbsp; OCTAVE_LOCAL_BUFFER(int,dimV,nd);&lt;br&gt;&amp;nbsp;for (octave_idx_type i=0; i&amp;lt;nd; i++)&lt;br&gt;&amp;nbsp;{&lt;br&gt;&amp;nbsp; dimV[i] = dv(i) ;&lt;br&gt;&amp;nbsp;}&lt;br&gt;&lt;br&gt;&amp;nbsp; // Now create the contiguos derived datatype&lt;br&gt;&amp;nbsp; MPI_Datatype dimvec;&lt;br&gt;&amp;nbsp; MPI_Type_contiguous(nd,MPI_INT, &amp;amp;dimvec);&lt;br&gt;&amp;nbsp; MPI_Type_commit(&amp;amp;dimvec); &lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; OCTAVE_LOCAL_BUFFER(int,LBNDA,nitem);&lt;br&gt;&lt;br&gt;&amp;nbsp; for (octave_idx_type i=0; i&amp;lt;nitem; i++)&lt;br&gt;&amp;nbsp; {&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; LBNDA[i] = myNDA(i) ;&lt;br&gt;&amp;nbsp; }&lt;br&gt;&lt;br&gt;&amp;nbsp; // Now create the contiguous derived datatype&lt;br&gt;&amp;nbsp; MPI_Datatype fortvec;&lt;br&gt;&amp;nbsp;
 MPI_Type_contiguous(nitem,MPI_INT, &amp;amp;fortvec);&lt;br&gt;&amp;nbsp; MPI_Type_commit(&amp;amp;fortvec); &lt;br&gt;&lt;br&gt;&amp;nbsp; for (octave_idx_type&amp;nbsp; i = 0; i&amp;lt; rankrec.nelem(); i++)&lt;br&gt;&amp;nbsp; { &lt;br&gt;// &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; t_id is the identifier of octave NDArray&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; printf(&quot;Sending block to %i \n&quot;,rankrec(i));&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; info = MPI_Send(&amp;amp;t_id, 1, MPI_INT, rankrec(i), tanktag[0], MPI_COMM_WORLD);&amp;nbsp; &lt;br&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; printf(&quot;I have sent&amp;nbsp; %i \n&quot;,t_id);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; if (info !=MPI_SUCCESS) return info;&lt;br&gt;// &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; nitem is the total number of elements&amp;nbsp; &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; info = MPI_Send(&amp;amp;nitem, 1, MPI_INT, rankrec(i), tanktag[1], MPI_COMM_WORLD);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; printf(&quot;I have sent&amp;nbsp; %i
 \n&quot;,nitem);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; if (info !=MPI_SUCCESS) return info;&lt;br&gt;//&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; ndims is number of dimensions &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; info = MPI_Send(&amp;amp;nd, 1, MPI_INT, rankrec(i), tanktag[2], MPI_COMM_WORLD);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; printf(&quot;I have sent&amp;nbsp; %i \n&quot;,nd);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; if (info !=MPI_SUCCESS) return info;&lt;br&gt;//&amp;nbsp;&amp;nbsp;&amp;nbsp; vector of dimensions sending&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; info = MPI_Send(dimV, 1, dimvec, rankrec(i), tanktag[3], MPI_COMM_WORLD);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; if (info !=MPI_SUCCESS) return info;&lt;br&gt;//&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; data matrix sending&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; info =&amp;nbsp; MPI_Send(LBNDA,1,fortvec,rankrec(i),tanktag[4],MPI_COMM_WORLD);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; if (info !=MPI_SUCCESS) return info;&lt;br&gt;&amp;nbsp; }&lt;br&gt;//&amp;nbsp;&amp;nbsp;&amp;nbsp; printf(&quot;info for sending scalar matrix is =
 %i \n&quot;,info);&lt;br&gt;return(info);&lt;br&gt;}&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;int send_class(octave_value ov, ColumnVector rankrec,int mytag){&amp;nbsp;&amp;nbsp;&amp;nbsp; /* varname-strlength 1st, dims[ndim] */&lt;br&gt;/*----------------------------------*/&amp;nbsp;&amp;nbsp;&amp;nbsp; /* and then appropriate specific info */&lt;br&gt;&amp;nbsp; int t_id = ov.type_id();&lt;br&gt;//&amp;nbsp;&amp;nbsp; printf(&quot;t_id =%i\n&quot;,t_id);&lt;br&gt;&lt;br&gt;&amp;nbsp; &lt;br&gt;// The T_id would be the tag&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&amp;nbsp; switch (t_id) {&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; case ov_cell:&amp;nbsp;&amp;nbsp;&amp;nbsp; return(send_cell&amp;nbsp;&amp;nbsp; (ov.cell_value&amp;nbsp;&amp;nbsp; (),rankrec,mytag));&lt;br&gt;&amp;nbsp; &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; case ov_scalar:&amp;nbsp;&amp;nbsp;&amp;nbsp; return(send_scalar (ov.scalar_value (),rankrec,mytag));&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; case ov_complex_scalar:&amp;nbsp;&amp;nbsp;&amp;nbsp; return(send_complex_scalar(ov.complex_value(),rankrec,mytag));&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; case ov_matrix:&amp;nbsp;&amp;nbsp;&amp;nbsp; return(send_matrix
 (ov.array_value&amp;nbsp; (),rankrec,mytag));&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; case ov_sparse_matrix:&amp;nbsp; return(send_sp_mat (ov.sparse_matrix_value (),rankrec,mytag));&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; case ov_complex_matrix:&amp;nbsp;&amp;nbsp;&amp;nbsp; return(send_complex_matrix(ov.complex_array_value(),rankrec,mytag));&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; case ov_sparse_complex_matrix:&amp;nbsp; return(send_sp_cx_mat(ov.sparse_complex_matrix_value (),rankrec,mytag));&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; case ov_float_scalar:&amp;nbsp;&amp;nbsp;&amp;nbsp; return(send_float_scalar (ov.float_scalar_value (),rankrec,mytag));&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; case ov_float_complex_scalar:&amp;nbsp;&amp;nbsp;&amp;nbsp; return(send_float_complex_scalar(ov.float_complex_value(),rankrec,mytag));&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; case ov_float_matrix:&amp;nbsp;&amp;nbsp;&amp;nbsp; return(send_float_matrix (ov.array_value&amp;nbsp; (),rankrec,mytag));&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; case
 ov_float_complex_matrix:&amp;nbsp;&amp;nbsp;&amp;nbsp; return(send_float_complex_matrix(ov.float_complex_array_value(),rankrec,mytag));&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; case ov_range:&amp;nbsp;&amp;nbsp;&amp;nbsp; return(send_range&amp;nbsp; (ov.range_value&amp;nbsp; (),rankrec,mytag));&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; case ov_bool:&amp;nbsp;&amp;nbsp;&amp;nbsp; return(send_bool&amp;nbsp;&amp;nbsp; (ov.bool_value&amp;nbsp;&amp;nbsp; (),rankrec,mytag));&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; case ov_bool_matrix:&amp;nbsp;&amp;nbsp;&amp;nbsp; return(send_bl_mat (ov.bool_array_value(),rankrec,mytag));&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; case ov_sparse_bool_matrix:&amp;nbsp; return(send_sp_bl_mat (ov.sparse_bool_matrix_value (),rankrec,mytag));&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; case ov_char_matrix:&amp;nbsp;&amp;nbsp;&amp;nbsp; return(send_ch_mat (ov.char_array_value(),rankrec,mytag));&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; case ov_string:&amp;nbsp;&amp;nbsp;&amp;nbsp; return(send_string (ov.string_value(),rankrec,mytag));&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; case ov_sq_string:&amp;nbsp;
 return(send_string (ov.string_value(),rankrec,mytag));&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; case ov_int8_scalar:&amp;nbsp;&amp;nbsp;&amp;nbsp; return(send_i8&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (ov.int8_scalar_value(),rankrec,mytag));&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; case ov_int16_scalar:&amp;nbsp;&amp;nbsp;&amp;nbsp; return(send_i16&amp;nbsp;&amp;nbsp;&amp;nbsp; (ov.int16_scalar_value(),rankrec,mytag));&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; case ov_int32_scalar:&amp;nbsp;&amp;nbsp;&amp;nbsp; return(send_i32&amp;nbsp;&amp;nbsp;&amp;nbsp; (ov.int32_scalar_value (),rankrec,mytag));&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; case ov_int64_scalar:&amp;nbsp;&amp;nbsp;&amp;nbsp; return(send_i64&amp;nbsp;&amp;nbsp;&amp;nbsp; (ov.int32_scalar_value (),rankrec,mytag));&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; case ov_uint8_scalar:&amp;nbsp;&amp;nbsp;&amp;nbsp; return(send_ui8&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (ov.uint8_scalar_value(),rankrec,mytag));&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; case ov_uint16_scalar:&amp;nbsp;&amp;nbsp;&amp;nbsp; return(send_ui16&amp;nbsp;&amp;nbsp;&amp;nbsp;
 (ov.uint16_scalar_value(),rankrec,mytag));&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; case ov_uint64_scalar:&amp;nbsp;&amp;nbsp;&amp;nbsp; return(send_ui64&amp;nbsp;&amp;nbsp;&amp;nbsp; (ov.uint32_scalar_value(),rankrec,mytag));&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; case ov_int8_matrix:&amp;nbsp;&amp;nbsp;&amp;nbsp; return(send_i8_mat (ov.int8_array_value(),rankrec,mytag));&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; case ov_int16_matrix:&amp;nbsp;&amp;nbsp;&amp;nbsp; return(send_i16_mat(ov.int16_array_value(),rankrec,mytag));&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; case ov_int32_matrix:&amp;nbsp;&amp;nbsp;&amp;nbsp; return(send_i32_mat(ov.int32_array_value(),rankrec,mytag));&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; case ov_int64_matrix:&amp;nbsp;&amp;nbsp;&amp;nbsp; return(send_i32_mat(ov.int64_array_value(),rankrec,mytag));&lt;br&gt;&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; case ov_uint8_matrix:&amp;nbsp;&amp;nbsp;&amp;nbsp; return(send_ui8_mat (ov.uint8_array_value(),rankrec,mytag));&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; case ov_uint16_matrix:&amp;nbsp;&amp;nbsp;&amp;nbsp; return(send_ui16_mat(ov.uint16_array_value(),rankrec,mytag));&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; case
 ov_uint32_matrix:&amp;nbsp;&amp;nbsp;&amp;nbsp; return(send_ui32_mat(ov.uint32_array_value(),rankrec,mytag));&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; case ov_uint64_matrix:&amp;nbsp;&amp;nbsp;&amp;nbsp; return(send_ui64_mat(ov.int64_array_value(),rankrec,mytag));&lt;br&gt;&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; case ov_struct:&amp;nbsp;&amp;nbsp;&amp;nbsp; return(send_struct (ov.map_value&amp;nbsp;&amp;nbsp;&amp;nbsp; (),rankrec,mytag));&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; case ov_unknown:&amp;nbsp;&amp;nbsp;&amp;nbsp; printf(&quot;MPI_Send: unknown class\n&quot;);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; return(MPI_ERR_UNKNOWN );&lt;br&gt;&lt;br&gt;case ov_class:&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br&gt;case ov_list:&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br&gt;case ov_cs_list:&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br&gt;case ov_magic_colon:&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br&gt;case ov_built_in_function:&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br&gt;case
 ov_user_defined_function:&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br&gt;case ov_dynamically_linked_function:&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br&gt;case ov_function_handle:&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br&gt;case ov_inline_function:&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br&gt;case ov_float_diagonal_matrix:&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br&gt;case ov_float_complex_diagonal_matrix:&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br&gt;case ov_diagonal_matrix:&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br&gt;case ov_complex_diagonal_matrix:&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br&gt;case ov_permutation_matrix:&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br&gt;case ov_null_matrix:&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br&gt;case ov_null_string:&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br&gt;case ov_null_sq_string:&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; default:&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; printf(&quot;MPI_Send: unsupported class
 %s\n&quot;,&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; ov.type_name().c_str());&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; return(MPI_ERR_UNKNOWN );&lt;br&gt;&amp;nbsp; }&lt;br&gt;}&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;DEFUN_DLD(MPI_Send,args,, &quot;MPI_Send sends almost any Octave datatypes into contiguous memory using openmpi library even over an hetherogeneous cluster i.e 32 bits CPUs and 64 bits CPU \n&quot;)&lt;br&gt;{&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; octave_value retval;&lt;br&gt;//&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Check if MPI environment is initialized&lt;br&gt;// first argument octave_value we want to send &lt;br&gt;// second argument columnv vector rank of the receivers&lt;br&gt;// for tag we use the type of octave_value ( see enum above )&lt;br&gt;// if alternative comunicator is provided select predefined MPI_COMM_WORLD&lt;br&gt;//&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Put the rank of the receiver into a columnvector &lt;br&gt;&amp;nbsp; int nargin = args.length ();&lt;br&gt;&amp;nbsp; if
 (nargin != 3)&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; error (&quot;expecting 3 input arguments&quot;);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return retval;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ColumnVector tankrank = args(1).column_vector_value();&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br&gt;&amp;nbsp; if (error_state)&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; error (&quot;expecting second argument to be a column vector&quot;);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return retval;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; int mytag = args(2).int_value();&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br&gt;&amp;nbsp; if (error_state)&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; error (&quot;expecting third vector argument to be an integer value&quot;);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return retval;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; int info = send_class (args(0), tankrank, mytag);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; retval=info;&lt;br&gt;// &amp;nbsp;&amp;nbsp;&amp;nbsp;
 retval(1) = tanktag;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return retval;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br&gt;}&lt;br&gt;MPI_Recv.cc&lt;br&gt;&lt;br&gt;// mkoctfile -lpthread -I/home/user/openmpi-1.3.3/include/ -L/home/user/openmpi-1.3.3/lib -lmpi_cxx -lmpi -lopen-rte -lopen-pal -ldl&amp;nbsp; -lnsl -lutil -lm -ldl MPI_Send.cc&lt;br&gt;// mkoctfile -lpthread -I/home/corradin/openmpi-1.3.3/include/ -L/home/corradin/openmpi-1.3.3/lib -lmpi_cxx -lmpi -lopen-rte -lopen-pal -ldl&amp;nbsp; -lnsl -lutil -lm -ldl MPI_Recv.cc&lt;br&gt;&lt;br&gt;&lt;br&gt;/*&lt;br&gt;&amp;nbsp;* Receives most Octave datatypes into contiguous memory&lt;br&gt;&amp;nbsp;* using derived datatypes&lt;br&gt;&amp;nbsp;* info = MPI_Send(var,rank)&lt;br&gt;&amp;nbsp;*/&lt;br&gt;#include &quot;mpi.h&quot;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br&gt;#include &amp;lt;octave/oct.h&amp;gt;&lt;br&gt;#include &amp;lt;ov-cell.h&amp;gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // avoid errmsg &quot;cell -- incomplete datatype&quot;&lt;br&gt;#include &amp;lt;oct-map.h&amp;gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // avoid errmsg &quot;Oct.map -- invalid use undef type&quot;&lt;br&gt;&lt;br&gt;// tested on Octave 3.2.3&lt;br&gt;// Octave 3.2.X&lt;br&gt;&lt;br&gt;enum
 ov_t_id&lt;br&gt;{&lt;br&gt;&lt;br&gt;ov_unknown=0,&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; // t_id=0&lt;br&gt;ov_cell,&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; // t_id=1&lt;br&gt;ov_scalar,&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; // t_id=2&lt;br&gt;ov_complex_scalar,&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; // t_id=3&lt;br&gt;ov_matrix,&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; // t_id=4&lt;br&gt;ov_diagonal_matrix,&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; // t_id=5&lt;br&gt;ov_complex_matrix,&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; // t_id=6&lt;br&gt;ov_complex_diagonal_matrix,&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; // t_id=7&lt;br&gt;ov_range,&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; // t_id=8&lt;br&gt;ov_bool,&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; //
 t_id=9&lt;br&gt;ov_bool_matrix,&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; // t_id=10&lt;br&gt;ov_char_matrix,&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; // t_id=11&lt;br&gt;ov_string,&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; // t_id=12&lt;br&gt;ov_sq_string,&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; // t_id=13&lt;br&gt;ov_int8_scalar,&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; // t_id=14&lt;br&gt;ov_int16_scalar,&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; // t_id=15&lt;br&gt;ov_int32_scalar,&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; // t_id=16&lt;br&gt;ov_int64_scalar,&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; // t_id=17&lt;br&gt;ov_uint8_scalar,&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; // t_id=18&lt;br&gt;ov_uint16_scalar,&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; //
 t_id=19&lt;br&gt;ov_uint32_scalar,&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; // t_id=20&lt;br&gt;ov_uint64_scalar,&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; // t_id=21&lt;br&gt;ov_int8_matrix,&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; // t_id=22&lt;br&gt;ov_int16_matrix,&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; // t_id=23&lt;br&gt;ov_int32_matrix,&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; // t_id=24&lt;br&gt;ov_int64_matrix,&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; // t_id=25&lt;br&gt;ov_uint8_matrix,&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; // t_id=26&lt;br&gt;ov_uint16_matrix,&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; // t_id=27&lt;br&gt;ov_uint32_matrix,&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; // t_id=28&lt;br&gt;ov_uint64_matrix,&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; //
 t_id=29&lt;br&gt;ov_sparse_bool_matrix,&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; // t_id=30&lt;br&gt;&lt;br&gt;ov_sparse_matrix,&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; // t_id=31&lt;br&gt;ov_sparse_complex_matrix,&lt;br&gt;ov_struct,&lt;br&gt;ov_class,&lt;br&gt;ov_list,&lt;br&gt;ov_cs_list,&lt;br&gt;ov_magic_colon,&lt;br&gt;ov_built_in_function,&lt;br&gt;ov_user_defined_function,&lt;br&gt;ov_dynamically_linked_function,&lt;br&gt;ov_function_handle,&lt;br&gt;ov_inline_function,&lt;br&gt;ov_float_scalar,&lt;br&gt;ov_float_complex_scalar,&lt;br&gt;ov_float_matrix,&lt;br&gt;ov_float_diagonal_matrix,&lt;br&gt;ov_float_complex_matrix,&lt;br&gt;ov_float_complex_diagonal_matrix,&lt;br&gt;ov_permutation_matrix,&lt;br&gt;ov_null_matrix,&lt;br&gt;ov_null_string,&lt;br&gt;ov_null_sq_string,&lt;br&gt;};&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;/*----------------------------------*/&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; /* forward declaration */&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;int recv_class( octave_value &amp;amp;ov,&amp;nbsp; int source, int mytag);&amp;nbsp;&amp;nbsp;&amp;nbsp;
 &amp;nbsp;&amp;nbsp;&amp;nbsp; /* along the datatype */&lt;br&gt;/*----------------------------------*/&amp;nbsp;&amp;nbsp;&amp;nbsp; /* to send any octave_value */&lt;br&gt;&lt;br&gt;&lt;br&gt;int recv_string( octave_value&amp;nbsp; &amp;amp;ov, int source, int mytag){&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; /* directly MPI_Send it, */&lt;br&gt;/*-----------------------------*/&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; /* it's just a double value */&lt;br&gt;&lt;br&gt;OCTAVE_LOCAL_BUFFER(int, tanktag, 2);&lt;br&gt;tanktag[0]=mytag;&lt;br&gt;tanktag[1]=mytag+1;&lt;br&gt;tanktag[2]=mytag+2;&lt;br&gt;&lt;br&gt;&amp;nbsp; int info,nitem;&lt;br&gt;&amp;nbsp; MPI_Status stat;&lt;br&gt;&amp;nbsp; info = MPI_Recv((&amp;amp;nitem), 1,MPI_INT, source, tanktag[1] , MPI_COMM_WORLD,&amp;amp;stat);&lt;br&gt;&amp;nbsp; printf(&quot;I have received number of elements&amp;nbsp; %i \n&quot;,nitem);&lt;br&gt;&amp;nbsp; OCTAVE_LOCAL_BUFFER(char,mess,nitem+1);&lt;br&gt;&amp;nbsp; if (info !=MPI_SUCCESS) return info; &lt;br&gt;&amp;nbsp; MPI_Datatype fortvec;&lt;br&gt;&amp;nbsp; MPI_Type_contiguous(nitem,MPI_CHAR, &amp;amp;fortvec);&lt;br&gt;&amp;nbsp;
 MPI_Type_commit(&amp;amp;fortvec);&lt;br&gt;&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp; info = MPI_Recv(mess, 1,fortvec, source, tanktag[2] , MPI_COMM_WORLD,&amp;amp;stat);&lt;br&gt;&amp;nbsp; printf(&quot;Flag for string received&amp;nbsp; %i \n&quot;,info);&lt;br&gt;&amp;nbsp;&amp;nbsp; std::string cpp_string;&lt;br&gt;&amp;nbsp;&amp;nbsp; cpp_string = mess;&lt;br&gt;&amp;nbsp;&amp;nbsp; ov = cpp_string;&lt;br&gt;&amp;nbsp;&amp;nbsp; if (info !=MPI_SUCCESS) return info; &lt;br&gt;&amp;nbsp;&amp;nbsp; return(MPI_SUCCESS);&lt;br&gt;}&lt;br&gt;&lt;br&gt;int recv_matrix(octave_value &amp;amp;ov,int source, int mytag){&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br&gt;&lt;br&gt;OCTAVE_LOCAL_BUFFER(int, tanktag, 5);&lt;br&gt;tanktag[0] = mytag;&lt;br&gt;tanktag[1] = mytag+1;&lt;br&gt;tanktag[2] = mytag+2;&lt;br&gt;tanktag[3] = mytag+3;&lt;br&gt;tanktag[4] = mytag+4;&lt;br&gt;&lt;br&gt;&amp;nbsp; int info;&lt;br&gt;&amp;nbsp; int nitem,nd;&lt;br&gt;&amp;nbsp; MPI_Status stat;&lt;br&gt;&amp;nbsp; dim_vector dv;&lt;br&gt;&amp;nbsp; &lt;br&gt;// &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; nitem is the total number of elements&amp;nbsp; &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; info = MPI_Recv((&amp;amp;nitem), 1,MPI_INT,
 source, tanktag[1] , MPI_COMM_WORLD,&amp;amp;stat);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; printf(&quot;I have received number of elements&amp;nbsp; %i \n&quot;,nitem);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; if (info !=MPI_SUCCESS) return info;&lt;br&gt;//&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; ndims is number of dimensions &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; info = MPI_Recv((&amp;amp;nd), 1,MPI_INT, source, tanktag[2] , MPI_COMM_WORLD,&amp;amp;stat);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; printf(&quot;I have received number of dimensions %i \n&quot;,nd);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; if (info !=MPI_SUCCESS) return info;&lt;br&gt;//&amp;nbsp; Now create contiguos datatype for dim vector&lt;br&gt;&amp;nbsp; dv.resize(nd);&lt;br&gt;&amp;nbsp; OCTAVE_LOCAL_BUFFER(int,dimV,nd);&lt;br&gt;&amp;nbsp; MPI_Datatype dimvec;&lt;br&gt;&amp;nbsp; MPI_Type_contiguous(nd,MPI_INT, &amp;amp;dimvec);&lt;br&gt;&amp;nbsp; MPI_Type_commit(&amp;amp;dimvec); &lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; info = MPI_Recv((dimV), 1,dimvec,
 source, tanktag[3] , MPI_COMM_WORLD,&amp;amp;stat);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; if (info !=MPI_SUCCESS) return info;&lt;br&gt;&lt;br&gt;// Now reverse the content of int vector into dim vector&lt;br&gt;&amp;nbsp;for (octave_idx_type i=0; i&amp;lt;nd; i++)&lt;br&gt;&amp;nbsp;{&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br&gt;&amp;nbsp;&amp;nbsp; dv(i) = dimV[i] ;&lt;br&gt;&amp;nbsp;&amp;nbsp; printf(&quot;I am printing dimvector&amp;nbsp; %i \n&quot;,dimV[i]);&lt;br&gt;&amp;nbsp;}&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; NDArray myNDA(dv);&lt;br&gt;//&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; double *p = myNDA.fortran_vec();&lt;br&gt;&amp;nbsp;&amp;nbsp; OCTAVE_LOCAL_BUFFER(double,LBNDA,nitem);&lt;br&gt;//&amp;nbsp;&amp;nbsp;&amp;nbsp; printf(&quot;BUFFER CREATED \n&quot;);&lt;br&gt;&amp;nbsp; // Now create the contiguous derived datatype&lt;br&gt;&amp;nbsp; MPI_Datatype fortvec;&lt;br&gt;&amp;nbsp; MPI_Type_contiguous(nitem,MPI_DOUBLE, &amp;amp;fortvec);&lt;br&gt;&amp;nbsp; MPI_Type_commit(&amp;amp;fortvec); &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; printf(&quot;I am printing dimvector&amp;nbsp; %i \n&quot;,tanktag[4]);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; info = MPI_Recv((LBNDA), 1,fortvec,
 source, tanktag[4] , MPI_COMM_WORLD,&amp;amp;stat);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; printf(&quot;info for receiving data is = %i \n&quot;,info);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; if (info !=MPI_SUCCESS) return info;&lt;br&gt;&amp;nbsp; for (octave_idx_type i=0; i&amp;lt;nitem; i++)&lt;br&gt;&amp;nbsp; {&lt;br&gt;//&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; *LBNDA = *p;&lt;br&gt;//&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; LBNDA++;&lt;br&gt;//&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; p++;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; myNDA(i)=LBNDA[i];&lt;br&gt;&amp;nbsp; }&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ov = myNDA;&lt;br&gt;//&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; printf(&quot;info for receiving scalar matrix is = %i \n&quot;,info);&lt;br&gt;&lt;br&gt;}&lt;br&gt;&lt;br&gt;int recv_float_matrix(octave_value &amp;amp;ov,int source, int mytag){&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br&gt;&lt;br&gt;OCTAVE_LOCAL_BUFFER(int, tanktag, 5);&lt;br&gt;tanktag[0] = mytag;&lt;br&gt;tanktag[1] = mytag+1;&lt;br&gt;tanktag[2] = mytag+2;&lt;br&gt;tanktag[3] = mytag+3;&lt;br&gt;tanktag[4] = mytag+4;&lt;br&gt;&amp;nbsp; int info;&lt;br&gt;&amp;nbsp; int
 nitem,nd;&lt;br&gt;&amp;nbsp; MPI_Status stat;&lt;br&gt;&amp;nbsp; dim_vector dv;&lt;br&gt;&amp;nbsp; &lt;br&gt;// &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; nitem is the total number of elements&amp;nbsp; &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; info = MPI_Recv((&amp;amp;nitem), 1,MPI_INT, source, tanktag[1] , MPI_COMM_WORLD,&amp;amp;stat);&lt;br&gt;// &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; printf(&quot;I have received number of elements&amp;nbsp; %i \n&quot;,nitem);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; if (info !=MPI_SUCCESS) return info;&lt;br&gt;//&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; ndims is number of dimensions &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; info = MPI_Recv((&amp;amp;nd), 1,MPI_INT, source, tanktag[2] , MPI_COMM_WORLD,&amp;amp;stat);&lt;br&gt;//&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; printf(&quot;I have received number of dimensions %i \n&quot;,nd);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; if (info !=MPI_SUCCESS) return info;&lt;br&gt;//&amp;nbsp; Now create contiguos datatype for dim vector&lt;br&gt;&amp;nbsp; dv.resize(nd);&lt;br&gt;&amp;nbsp;
 OCTAVE_LOCAL_BUFFER(int,dimV,nd);&lt;br&gt;&amp;nbsp; MPI_Datatype dimvec;&lt;br&gt;&amp;nbsp; MPI_Type_contiguous(nd,MPI_INT, &amp;amp;dimvec);&lt;br&gt;&amp;nbsp; MPI_Type_commit(&amp;amp;dimvec); &lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; info = MPI_Recv((dimV), 1,dimvec, source, tanktag[3] , MPI_COMM_WORLD,&amp;amp;stat);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; if (info !=MPI_SUCCESS) return info;&lt;br&gt;&lt;br&gt;// Now reverse the content of int vector into dim vector&lt;br&gt;&amp;nbsp;for (octave_idx_type i=0; i&amp;lt;nd; i++)&lt;br&gt;&amp;nbsp;{&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; printf(&quot;I am printing dimvector&amp;nbsp; %i \n&quot;,dimV[i]);&lt;br&gt;&amp;nbsp;&amp;nbsp; dv(i) = dimV[i] ;&lt;br&gt;&amp;nbsp;}&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; FloatNDArray myNDA(dv);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; float *p = myNDA.fortran_vec();&lt;br&gt;&amp;nbsp;&amp;nbsp; OCTAVE_LOCAL_BUFFER(float,LBNDA,nitem);&lt;br&gt;//&amp;nbsp;&amp;nbsp;&amp;nbsp; printf(&quot;BUFFER CREATED \n&quot;);&lt;br&gt;&amp;nbsp; // Now create the contiguous derived datatype&lt;br&gt;&amp;nbsp; MPI_Datatype fortvec;&lt;br&gt;&amp;nbsp; MPI_Type_contiguous(nitem,MPI_FLOAT,
 &amp;amp;fortvec);&lt;br&gt;&amp;nbsp; MPI_Type_commit(&amp;amp;fortvec); &lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; info = MPI_Recv((LBNDA), 1,fortvec, source, tanktag[4] , MPI_COMM_WORLD,&amp;amp;stat);&lt;br&gt;//&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; printf(&quot;info for receiving data is = %i \n&quot;,info);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; if (info !=MPI_SUCCESS) return info;&lt;br&gt;&amp;nbsp; for (octave_idx_type i=0; i&amp;lt;nitem; i++)&lt;br&gt;&amp;nbsp; {&lt;br&gt;//&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; *LBNDA = *p;&lt;br&gt;//&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; LBNDA++;&lt;br&gt;//&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; p++;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; myNDA(i)=LBNDA[i];&lt;br&gt;&amp;nbsp; }&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ov = myNDA;&lt;br&gt;//&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; printf(&quot;info for receiving scalar matrix is = %i \n&quot;,info);&lt;br&gt;&lt;br&gt;}&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;int recv_complex_matrix(octave_value &amp;amp;ov,int source, int mytag){&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br&gt;&lt;br&gt;OCTAVE_LOCAL_BUFFER(int, tanktag,
 6);&lt;br&gt;tanktag[0] = mytag;&lt;br&gt;tanktag[1] = mytag+1;&lt;br&gt;tanktag[2] = mytag+2;&lt;br&gt;tanktag[3] = mytag+3;&lt;br&gt;tanktag[4] = mytag+4;&lt;br&gt;tanktag[5] = mytag+5;&lt;br&gt;&lt;br&gt;&amp;nbsp; int info;&lt;br&gt;&amp;nbsp; int nitem,nd;&lt;br&gt;&amp;nbsp; MPI_Status stat;&lt;br&gt;&amp;nbsp; dim_vector dv;&lt;br&gt;&amp;nbsp; &lt;br&gt;// &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; nitem is the total number of elements&amp;nbsp; &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; info = MPI_Recv((&amp;amp;nitem), 1,MPI_INT, source, tanktag[1] , MPI_COMM_WORLD,&amp;amp;stat);&lt;br&gt;// &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; printf(&quot;I have received number of elements&amp;nbsp; %i \n&quot;,nitem);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; if (info !=MPI_SUCCESS) return info;&lt;br&gt;//&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; ndims is number of dimensions &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; info = MPI_Recv((&amp;amp;nd), 1,MPI_INT, source, tanktag[2] , MPI_COMM_WORLD,&amp;amp;stat);&lt;br&gt;//&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; printf(&quot;I have received number of
 dimensions %i \n&quot;,nd);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; if (info !=MPI_SUCCESS) return info;&lt;br&gt;//&amp;nbsp; Now create contiguos datatype for dim vector&lt;br&gt;&amp;nbsp; dv.resize(nd);&lt;br&gt;&amp;nbsp; OCTAVE_LOCAL_BUFFER(int,dimV,nd);&lt;br&gt;&amp;nbsp; MPI_Datatype dimvec;&lt;br&gt;&amp;nbsp; MPI_Type_contiguous(nd,MPI_INT, &amp;amp;dimvec);&lt;br&gt;&amp;nbsp; MPI_Type_commit(&amp;amp;dimvec); &lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; info = MPI_Recv((dimV), 1,dimvec, source, tanktag[3] , MPI_COMM_WORLD,&amp;amp;stat);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; if (info !=MPI_SUCCESS) return info;&lt;br&gt;&lt;br&gt;// Now reverse the content of int vector into dim vector&lt;br&gt;&amp;nbsp;for (octave_idx_type i=0; i&amp;lt;nd; i++)&lt;br&gt;&amp;nbsp;{&lt;br&gt;//&amp;nbsp;&amp;nbsp;&amp;nbsp; printf(&quot;I am printing dimvector&amp;nbsp; %i \n&quot;,i);&lt;br&gt;&amp;nbsp;&amp;nbsp; dv(i) = dimV[i] ;&lt;br&gt;&amp;nbsp;}&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; NDArray rmyNDA(dv);&amp;nbsp; // for the real part&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; NDArray imyNDA(dv);&amp;nbsp; // for the img part&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;
 ComplexNDArray&amp;nbsp;&amp;nbsp; oa (dv);&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; /* Create-&amp;gt;Delete on ret?!? */&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; double *p = rmyNDA.fortran_vec();&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; double *ip = imyNDA.fortran_vec();&lt;br&gt;&amp;nbsp;&amp;nbsp; OCTAVE_LOCAL_BUFFER(double,LBNDA,nitem);&lt;br&gt;&amp;nbsp;&amp;nbsp; OCTAVE_LOCAL_BUFFER(double,CLBNDA,nitem);&lt;br&gt;&lt;br&gt;//&amp;nbsp;&amp;nbsp;&amp;nbsp; printf(&quot;BUFFER CREATED \n&quot;);&lt;br&gt;&amp;nbsp; // Now create the contiguous derived datatype&lt;br&gt;&amp;nbsp; MPI_Datatype fortvec;&lt;br&gt;&amp;nbsp; MPI_Type_contiguous(nitem,MPI_DOUBLE, &amp;amp;fortvec);&lt;br&gt;&amp;nbsp; MPI_Type_commit(&amp;amp;fortvec); &lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; info = MPI_Recv((LBNDA), 1,fortvec, source, tanktag[4] , MPI_COMM_WORLD,&amp;amp;stat);&lt;br&gt;//&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; printf(&quot;info for receiving data is = %i \n&quot;,info);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; if (info !=MPI_SUCCESS) return
 info;&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; info = MPI_Recv((CLBNDA), 1,fortvec, source, tanktag[5] , MPI_COMM_WORLD,&amp;amp;stat);&lt;br&gt;//&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; printf(&quot;info for receiving data is = %i \n&quot;,info);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; if (info !=MPI_SUCCESS) return info;&lt;br&gt;&lt;br&gt;&lt;br&gt;&amp;nbsp; for (octave_idx_type i=0; i&amp;lt;nitem; i++)&lt;br&gt;&amp;nbsp; {&lt;br&gt;//&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; *LBNDA = *p;&lt;br&gt;//&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; LBNDA++;&lt;br&gt;//&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; p++;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; rmyNDA(i)=LBNDA[i];&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; imyNDA(i)=CLBNDA[i];&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; oa(i) = Complex (rmyNDA (i), imyNDA (i));&lt;br&gt;&amp;nbsp; }&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ov = oa;&lt;br&gt;&lt;br&gt;return(MPI_SUCCESS);&lt;br&gt;}&lt;br&gt;&lt;br&gt;&lt;br&gt;int recv_float_complex_matrix(octave_value &amp;amp;ov,int source, int mytag){&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;
 &lt;br&gt;&lt;br&gt;OCTAVE_LOCAL_BUFFER(int, tanktag, 6);&lt;br&gt;tanktag[0] = mytag;&lt;br&gt;tanktag[1] = mytag+1;&lt;br&gt;tanktag[2] = mytag+2;&lt;br&gt;tanktag[3] = mytag+3;&lt;br&gt;tanktag[4] = mytag+4;&lt;br&gt;tanktag[5] = mytag+5;&lt;br&gt;&lt;br&gt;&amp;nbsp; int info;&lt;br&gt;&amp;nbsp; int nitem,nd;&lt;br&gt;&amp;nbsp; MPI_Status stat;&lt;br&gt;&amp;nbsp; dim_vector dv;&lt;br&gt;&amp;nbsp; &lt;br&gt;// &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; nitem is the total number of elements&amp;nbsp; &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; info = MPI_Recv((&amp;amp;nitem), 1,MPI_INT, source, tanktag[1] , MPI_COMM_WORLD,&amp;amp;stat);&lt;br&gt;// &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; printf(&quot;I have received number of elements&amp;nbsp; %i \n&quot;,nitem);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; if (info !=MPI_SUCCESS) return info;&lt;br&gt;//&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; ndims is number of dimensions &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; info = MPI_Recv((&amp;amp;nd), 1,MPI_INT, source, tanktag[2] ,
 MPI_COMM_WORLD,&amp;amp;stat);&lt;br&gt;//&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; printf(&quot;I have received number of dimensions %i \n&quot;,nd);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; if (info !=MPI_SUCCESS) return info;&lt;br&gt;//&amp;nbsp; Now create contiguos datatype for dim vector&lt;br&gt;&amp;nbsp; dv.resize(nd);&lt;br&gt;&amp;nbsp; OCTAVE_LOCAL_BUFFER(int,dimV,nd);&lt;br&gt;&amp;nbsp; MPI_Datatype dimvec;&lt;br&gt;&amp;nbsp; MPI_Type_contiguous(nd,MPI_INT, &amp;amp;dimvec);&lt;br&gt;&amp;nbsp; MPI_Type_commit(&amp;amp;dimvec); &lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; info = MPI_Recv((dimV), 1,dimvec, source, tanktag[3] , MPI_COMM_WORLD,&amp;amp;stat);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; if (info !=MPI_SUCCESS) return info;&lt;br&gt;&lt;br&gt;// Now reverse the content of int vector into dim vector&lt;br&gt;&amp;nbsp;for (octave_idx_type i=0; i&amp;lt;nd; i++)&lt;br&gt;&amp;nbsp;{&lt;br&gt;//&amp;nbsp;&amp;nbsp;&amp;nbsp; printf(&quot;I am printing dimvector&amp;nbsp; %i \n&quot;,i);&lt;br&gt;&amp;nbsp;&amp;nbsp; dv(i) = dimV[i] ;&lt;br&gt;&amp;nbsp;}&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;
 FloatNDArray rmyNDA(dv);&amp;nbsp; // for the real part&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; FloatNDArray imyNDA(dv);&amp;nbsp; // for the img part&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp; FloatComplexNDArray&amp;nbsp;&amp;nbsp; oa (dv);&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; /* Create-&amp;gt;Delete on ret?!? */&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; float *p = rmyNDA.fortran_vec();&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; float *ip = imyNDA.fortran_vec();&lt;br&gt;&amp;nbsp;&amp;nbsp; OCTAVE_LOCAL_BUFFER(float,LBNDA,nitem);&lt;br&gt;&amp;nbsp;&amp;nbsp; OCTAVE_LOCAL_BUFFER(float,CLBNDA,nitem);&lt;br&gt;&lt;br&gt;//&amp;nbsp;&amp;nbsp;&amp;nbsp; printf(&quot;BUFFER CREATED \n&quot;);&lt;br&gt;&amp;nbsp; // Now create the contiguous derived datatype&lt;br&gt;&amp;nbsp; MPI_Datatype fortvec;&lt;br&gt;&amp;nbsp; MPI_Type_contiguous(nitem,MPI_DOUBLE, &amp;amp;fortvec);&lt;br&gt;&amp;nbsp; MPI_Type_commit(&amp;amp;fortvec); &lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; info = MPI_Recv((LBNDA), 1,fortvec, source, tanktag[4] ,
 MPI_COMM_WORLD,&amp;amp;stat);&lt;br&gt;//&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; printf(&quot;info for receiving data is = %i \n&quot;,info);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; if (info !=MPI_SUCCESS) return info;&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; info = MPI_Recv((CLBNDA), 1,fortvec, source, tanktag[5] , MPI_COMM_WORLD,&amp;amp;stat);&lt;br&gt;//&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; printf(&quot;info for receiving data is = %i \n&quot;,info);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; if (info !=MPI_SUCCESS) return info;&lt;br&gt;&lt;br&gt;&lt;br&gt;&amp;nbsp; for (octave_idx_type i=0; i&amp;lt;nitem; i++)&lt;br&gt;&amp;nbsp; {&lt;br&gt;//&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; *LBNDA = *p;&lt;br&gt;//&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; LBNDA++;&lt;br&gt;//&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; p++;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; rmyNDA(i)=LBNDA[i];&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; imyNDA(i)=CLBNDA[i];&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; std::complex&amp;lt;float&amp;gt;&amp;nbsp; c&amp;nbsp; =
 real(rmyNDA(i))+imag(imyNDA(i));&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; oa(i) = c;&lt;br&gt;&amp;nbsp; }&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ov = oa;&lt;br&gt;&lt;br&gt;return(MPI_SUCCESS);&lt;br&gt;}&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;int recv_sp_mat(octave_value &amp;amp;ov,int source, int mytag){&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br&gt;int info;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br&gt;/*&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;int nr = m.rows();&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;int nc = m.cols ();&amp;nbsp; &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;int nnzm = m.nzmax ();*/&lt;br&gt;// tag[0] ----&amp;gt; type of octave_value&lt;br&gt;// tag[1] ----&amp;gt; array of three elements 1) num of rows 2) number of columns 3) number of non zero elements&lt;br&gt;// tag[2] ----&amp;gt;&amp;nbsp; vector of rowindex&lt;br&gt;// tag[3] ----&amp;gt;&amp;nbsp; vector of columnindex&lt;br&gt;// tag[5] ----&amp;gt;&amp;nbsp; vector of number of non zero elements &lt;br&gt;OCTAVE_LOCAL_BUFFER(int, tanktag,6);&lt;br&gt;tanktag[0] = mytag;&lt;br&gt;tanktag[1] = mytag+1;&lt;br&gt;tanktag[2] = mytag+2;&lt;br&gt;tanktag[3] = mytag+3;&lt;br&gt;tanktag[4] = mytag+4;&lt;br&gt;tanktag[5] =
 mytag+5;&lt;br&gt;&lt;br&gt;MPI_Status stat;&lt;br&gt;&lt;br&gt;OCTAVE_LOCAL_BUFFER(int,s,3);&amp;nbsp;&amp;nbsp; &lt;br&gt;&lt;br&gt;// Create a contiguous derived datatype&lt;br&gt;MPI_Datatype sintsparse;&lt;br&gt;MPI_Type_contiguous(3,MPI_INT, &amp;amp;sintsparse);&lt;br&gt;MPI_Type_commit(&amp;amp;sintsparse);&lt;br&gt;&lt;br&gt;// receive the sintsparse vector named s&lt;br&gt;info = MPI_Recv(s, 1, sintsparse, source, tanktag[1], MPI_COMM_WORLD, &amp;amp;stat);&lt;br&gt;if (info !=MPI_SUCCESS) return info;&lt;br&gt;&lt;br&gt;// int appo1, appo2, appo3;&lt;br&gt;// appo1 = s[0];&lt;br&gt;// appo2 = s[1];&lt;br&gt;// appo3 = s[2];&lt;br&gt;// &lt;br&gt;// printf(&quot;appo 1 is %i \n&quot;,appo1);&lt;br&gt;// printf(&quot;appo 2 is %i \n&quot;,appo2);&lt;br&gt;// printf(&quot;appo 3 is %i \n&quot;,appo3);&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;SparseMatrix m(s[0],s[1],s[2]);&lt;br&gt;&lt;br&gt;// Create a contiguous derived datatype for row index&lt;br&gt;OCTAVE_LOCAL_BUFFER(int,sridx,s[2]);&amp;nbsp; &lt;br&gt;OCTAVE_LOCAL_BUFFER(double,sdata,s[2]); &lt;br&gt;// Create a contiguous derived datatype for column index&lt;br&gt;OCTAVE_LOCAL_BUFFER(int,scidx,s[1]+1);&amp;nbsp;&amp;nbsp;
 &lt;br&gt;MPI_Datatype rowindex;&lt;br&gt;MPI_Type_contiguous(s[2],MPI_INT, &amp;amp;rowindex);&lt;br&gt;MPI_Type_commit(&amp;amp;rowindex);&lt;br&gt;MPI_Datatype datavect;&lt;br&gt;MPI_Type_contiguous(s[2],MPI_DOUBLE, &amp;amp;datavect);&lt;br&gt;MPI_Type_commit(&amp;amp;datavect);&lt;br&gt;MPI_Datatype columnindex;&lt;br&gt;MPI_Type_contiguous(s[1]+1,MPI_INT, &amp;amp;columnindex);&lt;br&gt;MPI_Type_commit(&amp;amp;columnindex);&lt;br&gt;&lt;br&gt;// Now receive the two vectors&lt;br&gt;&lt;br&gt;// receive the vector with row indexes&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; info =&amp;nbsp; MPI_Recv(sridx,1,rowindex,source,tanktag[2],MPI_COMM_WORLD,&amp;amp;stat);&lt;br&gt;// &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; printf(&quot;Hope everything is fine here with ridx %i =\n&quot;,info); &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; if (info !=MPI_SUCCESS) return info;&lt;br&gt;&lt;br&gt;// receive the vector with column indexes&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; info =&amp;nbsp; MPI_Recv(scidx,1,columnindex,source,tanktag[3],MPI_COMM_WORLD, &amp;amp;stat);&lt;br&gt;// &amp;nbsp;&amp;nbsp;&amp;nbsp; printf(&quot;Hope everything is fine here with scidx %i
 =\n&quot;,info);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; if (info !=MPI_SUCCESS) return info;&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; info =&amp;nbsp; MPI_Recv(sdata,1,datavect,source,tanktag[4],MPI_COMM_WORLD,&amp;amp;stat);&lt;br&gt;// &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; printf(&quot;Hope everything is fine here with data vect %i =\n&quot;,info); &lt;br&gt;&lt;br&gt;// int appoc;&lt;br&gt;NDArray buf (dim_vector (m.capacity(), 1));&lt;br&gt;for (octave_idx_type i = 0; i &amp;lt; s[2]; i++)&lt;br&gt;{ &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; m.ridx(i) = sridx[i];&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; m.data(i) = sdata[i];&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; buf(i) = sdata[i];&lt;br&gt;// &amp;nbsp;&amp;nbsp;&amp;nbsp; appoc = m.ridx(i);&lt;br&gt;// &amp;nbsp;&amp;nbsp;&amp;nbsp; printf(&quot;apporow is %i \n&quot;,appoc); &lt;br&gt;// &amp;nbsp;&amp;nbsp;&amp;nbsp; printf(&quot;appodata is %d \n&quot;,sdata[i]); &lt;br&gt;}&lt;br&gt;for (octave_idx_type i = 0; i &amp;lt; s[1]+1; i++)&lt;br&gt;{ &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; m.cidx(i) = scidx[i];&lt;br&gt;// &amp;nbsp;&amp;nbsp;&amp;nbsp; appoc=m.cidx(i); &lt;br&gt;// &amp;nbsp;&amp;nbsp;&amp;nbsp; printf(&quot;appocol is %i \n&quot;,appoc);&lt;br&gt;}&lt;br&gt;&lt;br&gt;&lt;br&gt;ov =
 m;&lt;br&gt;return(info);&lt;br&gt;&lt;br&gt;&lt;br&gt;}&lt;br&gt;&lt;br&gt;&lt;br&gt;//here ! int matrixes&lt;br&gt;int recv_int8_matrix(octave_value &amp;amp;ov,int source, int mytag){&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br&gt;&lt;br&gt;OCTAVE_LOCAL_BUFFER(int, tanktag, 5);&lt;br&gt;tanktag[0] = mytag;&lt;br&gt;tanktag[1] = mytag+1;&lt;br&gt;tanktag[2] = mytag+2;&lt;br&gt;tanktag[3] = mytag+3;&lt;br&gt;tanktag[4] = mytag+4;&lt;br&gt;&amp;nbsp; int info;&lt;br&gt;&amp;nbsp; int nitem,nd;&lt;br&gt;&amp;nbsp; MPI_Status stat;&lt;br&gt;&amp;nbsp; dim_vector dv;&lt;br&gt;&amp;nbsp; &lt;br&gt;// &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; nitem is the total number of elements&amp;nbsp; &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; info = MPI_Recv((&amp;amp;nitem), 1,MPI_INT, source, tanktag[1] , MPI_COMM_WORLD,&amp;amp;stat);&lt;br&gt;// &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; printf(&quot;I have received number of elements&amp;nbsp; %i \n&quot;,nitem);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; if (info !=MPI_SUCCESS) return info;&lt;br&gt;//&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; ndims is number of dimensions &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; info =
 MPI_Recv((&amp;amp;nd), 1,MPI_INT, source, tanktag[2] , MPI_COMM_WORLD,&amp;amp;stat);&lt;br&gt;//&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; printf(&quot;I have received number of dimensions %i \n&quot;,nd);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; if (info !=MPI_SUCCESS) return info;&lt;br&gt;//&amp;nbsp; Now create contiguos datatype for dim vector&lt;br&gt;&amp;nbsp; dv.resize(nd);&lt;br&gt;&amp;nbsp; OCTAVE_LOCAL_BUFFER(int,dimV,nd);&lt;br&gt;&amp;nbsp; MPI_Datatype dimvec;&lt;br&gt;&amp;nbsp; MPI_Type_contiguous(nd,MPI_INT, &amp;amp;dimvec);&lt;br&gt;&amp;nbsp; MPI_Type_commit(&amp;amp;dimvec); &lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; info = MPI_Recv((dimV), 1,dimvec, source, tanktag[3] , MPI_COMM_WORLD,&amp;amp;stat);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; if (info !=MPI_SUCCESS) return info;&lt;br&gt;&lt;br&gt;// Now reverse the content of int vector into dim vector&lt;br&gt;&amp;nbsp;for (octave_idx_type i=0; i&amp;lt;nd; i++)&lt;br&gt;&amp;nbsp;{&lt;br&gt;//&amp;nbsp;&amp;nbsp;&amp;nbsp; printf(&quot;I am printing dimvector&amp;nbsp; %i \n&quot;,i);&lt;br&gt;&amp;nbsp;&amp;nbsp; dv(i) =
 dimV[i] ;&lt;br&gt;&amp;nbsp;}&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; int8NDArray myNDA(dv);&lt;br&gt;//&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; double *p = myNDA.fortran_vec();&lt;br&gt;&amp;nbsp;&amp;nbsp; OCTAVE_LOCAL_BUFFER(octave_int8,LBNDA,nitem);&lt;br&gt;//&amp;nbsp;&amp;nbsp;&amp;nbsp; printf(&quot;BUFFER CREATED \n&quot;);&lt;br&gt;&amp;nbsp; // Now create the contiguous derived datatype&lt;br&gt;&amp;nbsp; MPI_Datatype fortvec;&lt;br&gt;&amp;nbsp; MPI_Type_contiguous(nitem,MPI_BYTE, &amp;amp;fortvec);&lt;br&gt;&amp;nbsp; MPI_Type_commit(&amp;amp;fortvec); &lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; info = MPI_Recv((LBNDA), 1,fortvec, source, tanktag[4] , MPI_COMM_WORLD,&amp;amp;stat);&lt;br&gt;//&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; printf(&quot;info for receiving data is = %i \n&quot;,info);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; if (info !=MPI_SUCCESS) return info;&lt;br&gt;&amp;nbsp; for (octave_idx_type i=0; i&amp;lt;nitem; i++)&lt;br&gt;&amp;nbsp; {&lt;br&gt;//&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; *LBNDA = *p;&lt;br&gt;//&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
 LBNDA++;&lt;br&gt;//&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; p++;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; myNDA(i)=LBNDA[i];&lt;br&gt;&amp;nbsp; }&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ov = myNDA;&lt;br&gt;//&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; printf(&quot;info for receiving scalar matrix is = %i \n&quot;,info);&lt;br&gt;&lt;br&gt;}&lt;br&gt;&lt;br&gt;int recv_int16_matrix(octave_value &amp;amp;ov,int source, int mytag){&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br&gt;&lt;br&gt;OCTAVE_LOCAL_BUFFER(int, tanktag, 5);&lt;br&gt;tanktag[0] = mytag;&lt;br&gt;tanktag[1] = mytag+1;&lt;br&gt;tanktag[2] = mytag+2;&lt;br&gt;tanktag[3] = mytag+3;&lt;br&gt;tanktag[3] = mytag+4;&lt;br&gt;&amp;nbsp; int info;&lt;br&gt;&amp;nbsp; int nitem,nd;&lt;br&gt;&amp;nbsp; MPI_Status stat;&lt;br&gt;&amp;nbsp; dim_vector dv;&lt;br&gt;&amp;nbsp; &lt;br&gt;// &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; nitem is the total number of elements&amp;nbsp; &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; info = MPI_Recv((&amp;amp;nitem), 1,MPI_INT, source, tanktag[1] , MPI_COMM_WORLD,&amp;amp;stat);&lt;br&gt;// &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; printf(&quot;I have received number of elements&amp;nbsp; %i
 \n&quot;,nitem);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; if (info !=MPI_SUCCESS) return info;&lt;br&gt;//&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; ndims is number of dimensions &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; info = MPI_Recv((&amp;amp;nd), 1,MPI_INT, source, tanktag[2] , MPI_COMM_WORLD,&amp;amp;stat);&lt;br&gt;//&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; printf(&quot;I have received number of dimensions %i \n&quot;,nd);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; if (info !=MPI_SUCCESS) return info;&lt;br&gt;//&amp;nbsp; Now create contiguos datatype for dim vector&lt;br&gt;&amp;nbsp; dv.resize(nd);&lt;br&gt;&amp;nbsp; OCTAVE_LOCAL_BUFFER(int,dimV,nd);&lt;br&gt;&amp;nbsp; MPI_Datatype dimvec;&lt;br&gt;&amp;nbsp; MPI_Type_contiguous(nd,MPI_INT, &amp;amp;dimvec);&lt;br&gt;&amp;nbsp; MPI_Type_commit(&amp;amp;dimvec); &lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; info = MPI_Recv((dimV), 1,dimvec, source, tanktag[3] , MPI_COMM_WORLD,&amp;amp;stat);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; if (info !=MPI_SUCCESS) return info;&lt;br&gt;&lt;br&gt;// Now
 reverse the content of int vector into dim vector&lt;br&gt;&amp;nbsp;for (octave_idx_type i=0; i&amp;lt;nd; i++)&lt;br&gt;&amp;nbsp;{&lt;br&gt;//&amp;nbsp;&amp;nbsp;&amp;nbsp; printf(&quot;I am printing dimvector&amp;nbsp; %i \n&quot;,i);&lt;br&gt;&amp;nbsp;&amp;nbsp; dv(i) = dimV[i] ;&lt;br&gt;&amp;nbsp;}&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; int16NDArray myNDA(dv);&lt;br&gt;//&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; double *p = myNDA.fortran_vec();&lt;br&gt;&amp;nbsp;&amp;nbsp; OCTAVE_LOCAL_BUFFER(octave_int16,LBNDA,nitem);&lt;br&gt;//&amp;nbsp;&amp;nbsp;&amp;nbsp; printf(&quot;BUFFER CREATED \n&quot;);&lt;br&gt;&amp;nbsp; // Now create the contiguous derived datatype&lt;br&gt;&amp;nbsp; MPI_Datatype fortvec;&lt;br&gt;&amp;nbsp; MPI_Type_contiguous(nitem,MPI_SHORT, &amp;amp;fortvec);&lt;br&gt;&amp;nbsp; MPI_Type_commit(&amp;amp;fortvec); &lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; info = MPI_Recv((LBNDA), 1,fortvec, source, tanktag[4] , MPI_COMM_WORLD,&amp;amp;stat);&lt;br&gt;//&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; printf(&quot;info for receiving data is = %i \n&quot;,info);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; if (info !=MPI_SUCCESS) return
 info;&lt;br&gt;&amp;nbsp; for (octave_idx_type i=0; i&amp;lt;nitem; i++)&lt;br&gt;&amp;nbsp; {&lt;br&gt;//&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; *LBNDA = *p;&lt;br&gt;//&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; LBNDA++;&lt;br&gt;//&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; p++;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; myNDA(i)=LBNDA[i];&lt;br&gt;&amp;nbsp; }&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ov = myNDA;&lt;br&gt;//&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; printf(&quot;info for receiving scalar matrix is = %i \n&quot;,info);&lt;br&gt;&amp;nbsp;&amp;nbsp; return(info);&lt;br&gt;}&lt;br&gt;&lt;br&gt;&lt;br&gt;int recv_int32_matrix(octave_value &amp;amp;ov,int source, int mytag){&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br&gt;&lt;br&gt;OCTAVE_LOCAL_BUFFER(int, tanktag, 5);&lt;br&gt;tanktag[0] = mytag;&lt;br&gt;tanktag[1] = mytag+1;&lt;br&gt;tanktag[2] = mytag+2;&lt;br&gt;tanktag[3] = mytag+3;&lt;br&gt;tanktag[3] = mytag+4;&lt;br&gt;&lt;br&gt;&amp;nbsp; int info;&lt;br&gt;&amp;nbsp; int nitem,nd;&lt;br&gt;&amp;nbsp; MPI_Status stat;&lt;br&gt;&amp;nbsp; dim_vector dv;&lt;br&gt;&amp;nbsp; &lt;br&gt;// &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; nitem is the total number of elements&amp;nbsp;
 &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; info = MPI_Recv((&amp;amp;nitem), 1,MPI_INT, source, tanktag[1] , MPI_COMM_WORLD,&amp;amp;stat);&lt;br&gt;// &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; printf(&quot;I have received number of elements&amp;nbsp; %i \n&quot;,nitem);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; if (info !=MPI_SUCCESS) return info;&lt;br&gt;//&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; ndims is number of dimensions &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; info = MPI_Recv((&amp;amp;nd), 1,MPI_INT, source, tanktag[2] , MPI_COMM_WORLD,&amp;amp;stat);&lt;br&gt;//&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; printf(&quot;I have received number of dimensions %i \n&quot;,nd);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; if (info !=MPI_SUCCESS) return info;&lt;br&gt;//&amp;nbsp; Now create contiguos datatype for dim vector&lt;br&gt;&amp;nbsp; dv.resize(nd);&lt;br&gt;&amp;nbsp; OCTAVE_LOCAL_BUFFER(int,dimV,nd);&lt;br&gt;&amp;nbsp; MPI_Datatype dimvec;&lt;br&gt;&amp;nbsp; MPI_Type_contiguous(nd,MPI_INT, &amp;amp;dimvec);&lt;br&gt;&amp;nbsp;
 MPI_Type_commit(&amp;amp;dimvec); &lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; info = MPI_Recv((dimV), 1,dimvec, source, tanktag[3] , MPI_COMM_WORLD,&amp;amp;stat);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; if (info !=MPI_SUCCESS) return info;&lt;br&gt;&lt;br&gt;// Now reverse the content of int vector into dim vector&lt;br&gt;&amp;nbsp;for (octave_idx_type i=0; i&amp;lt;nd; i++)&lt;br&gt;&amp;nbsp;{&lt;br&gt;//&amp;nbsp;&amp;nbsp;&amp;nbsp; printf(&quot;I am printing dimvector&amp;nbsp; %i \n&quot;,i);&lt;br&gt;&amp;nbsp;&amp;nbsp; dv(i) = dimV[i] ;&lt;br&gt;&amp;nbsp;}&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; int32NDArray myNDA(dv);&lt;br&gt;//&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; double *p = myNDA.fortran_vec();&lt;br&gt;&amp;nbsp;&amp;nbsp; OCTAVE_LOCAL_BUFFER(octave_int32,LBNDA,nitem);&lt;br&gt;//&amp;nbsp;&amp;nbsp;&amp;nbsp; printf(&quot;BUFFER CREATED \n&quot;);&lt;br&gt;&amp;nbsp; // Now create the contiguous derived datatype&lt;br&gt;&amp;nbsp; MPI_Datatype fortvec;&lt;br&gt;&amp;nbsp; MPI_Type_contiguous(nitem,MPI_INT, &amp;amp;fortvec);&lt;br&gt;&amp;nbsp; MPI_Type_commit(&amp;amp;fortvec); &lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; info =
 MPI_Recv((LBNDA), 1,fortvec, source, tanktag[4] , MPI_COMM_WORLD,&amp;amp;stat);&lt;br&gt;//&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; printf(&quot;info for receiving data is = %i \n&quot;,info);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; if (info !=MPI_SUCCESS) return info;&lt;br&gt;&amp;nbsp; for (octave_idx_type i=0; i&amp;lt;nitem; i++)&lt;br&gt;&amp;nbsp; {&lt;br&gt;//&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; *LBNDA = *p;&lt;br&gt;//&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; LBNDA++;&lt;br&gt;//&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; p++;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; myNDA(i)=LBNDA[i];&lt;br&gt;&amp;nbsp; }&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ov = myNDA;&lt;br&gt;//&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; printf(&quot;info for receiving scalar matrix is = %i \n&quot;,info);&lt;br&gt;&amp;nbsp;&amp;nbsp; return(info);&lt;br&gt;}&lt;br&gt;&lt;br&gt;&lt;br&gt;int recv_int64_matrix(octave_value &amp;amp;ov,int source, int mytag){&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br&gt;&lt;br&gt;OCTAVE_LOCAL_BUFFER(int, tanktag, 5);&lt;br&gt;tanktag[0] = mytag;&lt;br&gt;tanktag[1] = mytag+1;&lt;br&gt;tanktag[2] = mytag+2;&lt;br&gt;tanktag[3] =
 mytag+3;&lt;br&gt;tanktag[3] = mytag+4;&lt;br&gt;&lt;br&gt;&amp;nbsp; int info;&lt;br&gt;&amp;nbsp; int nitem,nd;&lt;br&gt;&amp;nbsp; MPI_Status stat;&lt;br&gt;&amp;nbsp; dim_vector dv;&lt;br&gt;&amp;nbsp; &lt;br&gt;// &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; nitem is the total number of elements&amp;nbsp; &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; info = MPI_Recv((&amp;amp;nitem), 1,MPI_INT, source, tanktag[1] , MPI_COMM_WORLD,&amp;amp;stat);&lt;br&gt;// &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; printf(&quot;I have received number of elements&amp;nbsp; %i \n&quot;,nitem);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; if (info !=MPI_SUCCESS) return info;&lt;br&gt;//&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; ndims is number of dimensions &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; info = MPI_Recv((&amp;amp;nd), 1,MPI_INT, source, tanktag[2] , MPI_COMM_WORLD,&amp;amp;stat);&lt;br&gt;//&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; printf(&quot;I have received number of dimensions %i \n&quot;,nd);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; if (info !=MPI_SUCCESS) return info;&lt;br&gt;//&amp;nbsp; Now create
 contiguos datatype for dim vector&lt;br&gt;&amp;nbsp; dv.resize(nd);&lt;br&gt;&amp;nbsp; OCTAVE_LOCAL_BUFFER(int,dimV,nd);&lt;br&gt;&amp;nbsp; MPI_Datatype dimvec;&lt;br&gt;&amp;nbsp; MPI_Type_contiguous(nd,MPI_INT, &amp;amp;dimvec);&lt;br&gt;&amp;nbsp; MPI_Type_commit(&amp;amp;dimvec); &lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; info = MPI_Recv((dimV), 1,dimvec, source, tanktag[3] , MPI_COMM_WORLD,&amp;amp;stat);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; if (info !=MPI_SUCCESS) return info;&lt;br&gt;&lt;br&gt;// Now reverse the content of int vector into dim vector&lt;br&gt;&amp;nbsp;for (octave_idx_type i=0; i&amp;lt;nd; i++)&lt;br&gt;&amp;nbsp;{&lt;br&gt;//&amp;nbsp;&amp;nbsp;&amp;nbsp; printf(&quot;I am printing dimvector&amp;nbsp; %i \n&quot;,i);&lt;br&gt;&amp;nbsp;&amp;nbsp; dv(i) = dimV[i] ;&lt;br&gt;&amp;nbsp;}&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; int64NDArray myNDA(dv);&lt;br&gt;//&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; double *p = myNDA.fortran_vec();&lt;br&gt;&amp;nbsp;&amp;nbsp; OCTAVE_LOCAL_BUFFER(octave_int64,LBNDA,nitem);&lt;br&gt;//&amp;nbsp;&amp;nbsp;&amp;nbsp; printf(&quot;BUFFER CREATED \n&quot;);&lt;br&gt;&amp;nbsp; // Now create the contiguous derived
 datatype&lt;br&gt;&amp;nbsp; MPI_Datatype fortvec;&lt;br&gt;&amp;nbsp; MPI_Type_contiguous(nitem,MPI_INT, &amp;amp;fortvec);&lt;br&gt;&amp;nbsp; MPI_Type_commit(&amp;amp;fortvec); &lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; info = MPI_Recv((LBNDA), 1,fortvec, source, tanktag[4] , MPI_COMM_WORLD,&amp;amp;stat);&lt;br&gt;//&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; printf(&quot;info for receiving data is = %i \n&quot;,info);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; if (info !=MPI_SUCCESS) return info;&lt;br&gt;&amp;nbsp; for (octave_idx_type i=0; i&amp;lt;nitem; i++)&lt;br&gt;&amp;nbsp; {&lt;br&gt;//&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; *LBNDA = *p;&lt;br&gt;//&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; LBNDA++;&lt;br&gt;//&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; p++;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; myNDA(i)=LBNDA[i];&lt;br&gt;&amp;nbsp; }&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ov = myNDA;&lt;br&gt;//&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; printf(&quot;info for receiving scalar matrix is = %i \n&quot;,info);&lt;br&gt;&amp;nbsp;&amp;nbsp; return(info);&lt;br&gt;}&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;int recv_uint64_matrix(octave_value
 &amp;amp;ov,int source, int mytag){&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br&gt;&lt;br&gt;OCTAVE_LOCAL_BUFFER(int, tanktag, 5);&lt;br&gt;tanktag[0] = mytag;&lt;br&gt;tanktag[1] = mytag+1;&lt;br&gt;tanktag[2] = mytag+2;&lt;br&gt;tanktag[3] = mytag+3;&lt;br&gt;tanktag[3] = mytag+4;&lt;br&gt;&lt;br&gt;&amp;nbsp; int info;&lt;br&gt;&amp;nbsp; int nitem,nd;&lt;br&gt;&amp;nbsp; MPI_Status stat;&lt;br&gt;&amp;nbsp; dim_vector dv;&lt;br&gt;&amp;nbsp; &lt;br&gt;// &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; nitem is the total number of elements&amp;nbsp; &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; info = MPI_Recv((&amp;amp;nitem), 1,MPI_INT, source, tanktag[1] , MPI_COMM_WORLD,&amp;amp;stat);&lt;br&gt;// &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; printf(&quot;I have received number of elements&amp;nbsp; %i \n&quot;,nitem);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; if (info !=MPI_SUCCESS) return info;&lt;br&gt;//&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; ndims is number of dimensions &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; info = MPI_Recv((&amp;amp;nd), 1,MPI_INT, source, tanktag[2] ,
 MPI_COMM_WORLD,&amp;amp;stat);&lt;br&gt;//&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; printf(&quot;I have received number of dimensions %i \n&quot;,nd);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; if (info !=MPI_SUCCESS) return info;&lt;br&gt;//&amp;nbsp; Now create contiguos datatype for dim vector&lt;br&gt;&amp;nbsp; dv.resize(nd);&lt;br&gt;&amp;nbsp; OCTAVE_LOCAL_BUFFER(int,dimV,nd);&lt;br&gt;&amp;nbsp; MPI_Datatype dimvec;&lt;br&gt;&amp;nbsp; MPI_Type_contiguous(nd,MPI_INT, &amp;amp;dimvec);&lt;br&gt;&amp;nbsp; MPI_Type_commit(&amp;amp;dimvec); &lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; info = MPI_Recv((dimV), 1,dimvec, source, tanktag[3] , MPI_COMM_WORLD,&amp;amp;stat);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; if (info !=MPI_SUCCESS) return info;&lt;br&gt;&lt;br&gt;// Now reverse the content of int vector into dim vector&lt;br&gt;&amp;nbsp;for (octave_idx_type i=0; i&amp;lt;nd; i++)&lt;br&gt;&amp;nbsp;{&lt;br&gt;//&amp;nbsp;&amp;nbsp;&amp;nbsp; printf(&quot;I am printing dimvector&amp;nbsp; %i \n&quot;,i);&lt;br&gt;&amp;nbsp;&amp;nbsp; dv(i) = dimV[i] ;&lt;br&gt;&amp;nbsp;}&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;
 uint64NDArray myNDA(dv);&lt;br&gt;//&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; double *p = myNDA.fortran_vec();&lt;br&gt;&amp;nbsp;&amp;nbsp; OCTAVE_LOCAL_BUFFER(octave_uint64,LBNDA,nitem);&lt;br&gt;//&amp;nbsp;&amp;nbsp;&amp;nbsp; printf(&quot;BUFFER CREATED \n&quot;);&lt;br&gt;&amp;nbsp; // Now create the contiguous derived datatype&lt;br&gt;&amp;nbsp; MPI_Datatype fortvec;&lt;br&gt;&amp;nbsp; MPI_Type_contiguous(nitem,MPI_UNSIGNED_LONG_LONG, &amp;amp;fortvec);&lt;br&gt;&amp;nbsp; MPI_Type_commit(&amp;amp;fortvec); &lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; info = MPI_Recv((LBNDA), 1,fortvec, source, tanktag[4] , MPI_COMM_WORLD,&amp;amp;stat);&lt;br&gt;//&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; printf(&quot;info for receiving data is = %i \n&quot;,info);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; if (info !=MPI_SUCCESS) return info;&lt;br&gt;&amp;nbsp; for (octave_idx_type i=0; i&amp;lt;nitem; i++)&lt;br&gt;&amp;nbsp; {&lt;br&gt;//&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; *LBNDA = *p;&lt;br&gt;//&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; LBNDA++;&lt;br&gt;//&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
 p++;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; myNDA(i)=LBNDA[i];&lt;br&gt;&amp;nbsp; }&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ov = myNDA;&lt;br&gt;//&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; printf(&quot;info for receiving scalar matrix is = %i \n&quot;,info);&lt;br&gt;&amp;nbsp;&amp;nbsp; return(info);&lt;br&gt;}&lt;br&gt;&lt;br&gt;&lt;br&gt;int recv_uint8_matrix(octave_value &amp;amp;ov,int source, int mytag){&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br&gt;&lt;br&gt;OCTAVE_LOCAL_BUFFER(int, tanktag, 5);&lt;br&gt;tanktag[0] = mytag;&lt;br&gt;tanktag[1] = mytag+1;&lt;br&gt;tanktag[2] = mytag+2;&lt;br&gt;tanktag[3] = mytag+3;&lt;br&gt;tanktag[3] = mytag+4;&lt;br&gt;&lt;br&gt;&amp;nbsp; int info;&lt;br&gt;&amp;nbsp; int nitem,nd;&lt;br&gt;&amp;nbsp; MPI_Status stat;&lt;br&gt;&amp;nbsp; dim_vector dv;&lt;br&gt;&amp;nbsp; &lt;br&gt;// &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; nitem is the total number of elements&amp;nbsp; &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; info = MPI_Recv((&amp;amp;nitem), 1,MPI_INT, source, tanktag[1] , MPI_COMM_WORLD,&amp;amp;stat);&lt;br&gt;// &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; printf(&quot;I have received number of elements&amp;nbsp; %i \n&quot;,nitem);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;
 &amp;nbsp; if (info !=MPI_SUCCESS) return info;&lt;br&gt;//&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; ndims is number of dimensions &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; info = MPI_Recv((&amp;amp;nd), 1,MPI_INT, source, tanktag[2] , MPI_COMM_WORLD,&amp;amp;stat);&lt;br&gt;//&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; printf(&quot;I have received number of dimensions %i \n&quot;,nd);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; if (info !=MPI_SUCCESS) return info;&lt;br&gt;//&amp;nbsp; Now create contiguos datatype for dim vector&lt;br&gt;&amp;nbsp; dv.resize(nd);&lt;br&gt;&amp;nbsp; OCTAVE_LOCAL_BUFFER(int,dimV,nd);&lt;br&gt;&amp;nbsp; MPI_Datatype dimvec;&lt;br&gt;&amp;nbsp; MPI_Type_contiguous(nd,MPI_INT, &amp;amp;dimvec);&lt;br&gt;&amp;nbsp; MPI_Type_commit(&amp;amp;dimvec); &lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; info = MPI_Recv((dimV), 1,dimvec, source, tanktag[3] , MPI_COMM_WORLD,&amp;amp;stat);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; if (info !=MPI_SUCCESS) return info;&lt;br&gt;&lt;br&gt;// Now reverse the content of int vector into
 dim vector&lt;br&gt;&amp;nbsp;for (octave_idx_type i=0; i&amp;lt;nd; i++)&lt;br&gt;&amp;nbsp;{&lt;br&gt;//&amp;nbsp;&amp;nbsp;&amp;nbsp; printf(&quot;I am printing dimvector&amp;nbsp; %i \n&quot;,i);&lt;br&gt;&amp;nbsp;&amp;nbsp; dv(i) = dimV[i] ;&lt;br&gt;&amp;nbsp;}&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; uint8NDArray myNDA(dv);&lt;br&gt;//&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; double *p = myNDA.fortran_vec();&lt;br&gt;&amp;nbsp;&amp;nbsp; OCTAVE_LOCAL_BUFFER(octave_uint8,LBNDA,nitem);&lt;br&gt;//&amp;nbsp;&amp;nbsp;&amp;nbsp; printf(&quot;BUFFER CREATED \n&quot;);&lt;br&gt;&amp;nbsp; // Now create the contiguous derived datatype&lt;br&gt;&amp;nbsp; MPI_Datatype fortvec;&lt;br&gt;&amp;nbsp; MPI_Type_contiguous(nitem,MPI_UNSIGNED_CHAR, &amp;amp;fortvec);&lt;br&gt;&amp;nbsp; MPI_Type_commit(&amp;amp;fortvec); &lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; info = MPI_Recv((LBNDA), 1,fortvec, source, tanktag[4] , MPI_COMM_WORLD,&amp;amp;stat);&lt;br&gt;//&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; printf(&quot;info for receiving data is = %i \n&quot;,info);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; if (info !=MPI_SUCCESS) return info;&lt;br&gt;&amp;nbsp; for
 (octave_idx_type i=0; i&amp;lt;nitem; i++)&lt;br&gt;&amp;nbsp; {&lt;br&gt;//&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; *LBNDA = *p;&lt;br&gt;//&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; LBNDA++;&lt;br&gt;//&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; p++;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; myNDA(i)=LBNDA[i];&lt;br&gt;&amp;nbsp; }&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ov = myNDA;&lt;br&gt;//&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; printf(&quot;info for receiving scalar matrix is = %i \n&quot;,info);&lt;br&gt;&amp;nbsp;&amp;nbsp; return(info);&lt;br&gt;}&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;int recv_uint16_matrix(octave_value &amp;amp;ov,int source, int mytag){&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br&gt;&lt;br&gt;OCTAVE_LOCAL_BUFFER(int, tanktag, 5);&lt;br&gt;tanktag[0] = mytag;&lt;br&gt;tanktag[1] = mytag+1;&lt;br&gt;tanktag[2] = mytag+2;&lt;br&gt;tanktag[3] = mytag+3;&lt;br&gt;tanktag[3] = mytag+4;&lt;br&gt;&lt;br&gt;&amp;nbsp; int info;&lt;br&gt;&amp;nbsp; int nitem,nd;&lt;br&gt;&amp;nbsp; MPI_Status stat;&lt;br&gt;&amp;nbsp; dim_vector dv;&lt;br&gt;&amp;nbsp; &lt;br&gt;// &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; nitem is the total number of elements&amp;nbsp; &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; info
 = MPI_Recv((&amp;amp;nitem), 1,MPI_INT, source, tanktag[1] , MPI_COMM_WORLD,&amp;amp;stat);&lt;br&gt;// &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; printf(&quot;I have received number of elements&amp;nbsp; %i \n&quot;,nitem);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; if (info !=MPI_SUCCESS) return info;&lt;br&gt;//&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; ndims is number of dimensions &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; info = MPI_Recv((&amp;amp;nd), 1,MPI_INT, source, tanktag[2] , MPI_COMM_WORLD,&amp;amp;stat);&lt;br&gt;//&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; printf(&quot;I have received number of dimensions %i \n&quot;,nd);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; if (info !=MPI_SUCCESS) return info;&lt;br&gt;//&amp;nbsp; Now create contiguos datatype for dim vector&lt;br&gt;&amp;nbsp; dv.resize(nd);&lt;br&gt;&amp;nbsp; OCTAVE_LOCAL_BUFFER(int,dimV,nd);&lt;br&gt;&amp;nbsp; MPI_Datatype dimvec;&lt;br&gt;&amp;nbsp; MPI_Type_contiguous(nd,MPI_INT, &amp;amp;dimvec);&lt;br&gt;&amp;nbsp; MPI_Type_commit(&amp;amp;dimvec);
 &lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; info = MPI_Recv((dimV), 1,dimvec, source, tanktag[3] , MPI_COMM_WORLD,&amp;amp;stat);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; if (info !=MPI_SUCCESS) return info;&lt;br&gt;&lt;br&gt;// Now reverse the content of int vector into dim vector&lt;br&gt;&amp;nbsp;for (octave_idx_type i=0; i&amp;lt;nd; i++)&lt;br&gt;&amp;nbsp;{&lt;br&gt;//&amp;nbsp;&amp;nbsp;&amp;nbsp; printf(&quot;I am printing dimvector&amp;nbsp; %i \n&quot;,i);&lt;br&gt;&amp;nbsp;&amp;nbsp; dv(i) = dimV[i] ;&lt;br&gt;&amp;nbsp;}&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; uint16NDArray myNDA(dv);&lt;br&gt;//&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; double *p = myNDA.fortran_vec();&lt;br&gt;&amp;nbsp;&amp;nbsp; OCTAVE_LOCAL_BUFFER(octave_uint16,LBNDA,nitem);&lt;br&gt;//&amp;nbsp;&amp;nbsp;&amp;nbsp; printf(&quot;BUFFER CREATED \n&quot;);&lt;br&gt;&amp;nbsp; // Now create the contiguous derived datatype&lt;br&gt;&amp;nbsp; MPI_Datatype fortvec;&lt;br&gt;&amp;nbsp; MPI_Type_contiguous(nitem,MPI_UNSIGNED_SHORT, &amp;amp;fortvec);&lt;br&gt;&amp;nbsp; MPI_Type_commit(&amp;amp;fortvec); &lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; info = MPI_Recv((LBNDA),
 1,fortvec, source, tanktag[4] , MPI_COMM_WORLD,&amp;amp;stat);&lt;br&gt;//&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; printf(&quot;info for receiving data is = %i \n&quot;,info);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; if (info !=MPI_SUCCESS) return info;&lt;br&gt;&amp;nbsp; for (octave_idx_type i=0; i&amp;lt;nitem; i++)&lt;br&gt;&amp;nbsp; {&lt;br&gt;//&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; *LBNDA = *p;&lt;br&gt;//&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; LBNDA++;&lt;br&gt;//&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; p++;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; myNDA(i)=LBNDA[i];&lt;br&gt;&amp;nbsp; }&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ov = myNDA;&lt;br&gt;//&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; printf(&quot;info for receiving scalar matrix is = %i \n&quot;,info);&lt;br&gt;&amp;nbsp;&amp;nbsp; return(info);&lt;br&gt;}&lt;br&gt;&lt;br&gt;int recv_uint32_matrix(octave_value &amp;amp;ov,int source, int mytag){&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br&gt;&lt;br&gt;OCTAVE_LOCAL_BUFFER(int, tanktag, 5);&lt;br&gt;tanktag[0] = mytag;&lt;br&gt;tanktag[1] = mytag+1;&lt;br&gt;tanktag[2] = mytag+2;&lt;br&gt;tanktag[3] = mytag+3;&lt;br&gt;tanktag[3] =
 mytag+4;&lt;br&gt;&lt;br&gt;&amp;nbsp; int info;&lt;br&gt;&amp;nbsp; int nitem,nd;&lt;br&gt;&amp;nbsp; MPI_Status stat;&lt;br&gt;&amp;nbsp; dim_vector dv;&lt;br&gt;&amp;nbsp; &lt;br&gt;// &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; nitem is the total number of elements&amp;nbsp; &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; info = MPI_Recv((&amp;amp;nitem), 1,MPI_INT, source, tanktag[1] , MPI_COMM_WORLD,&amp;amp;stat);&lt;br&gt;// &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; printf(&quot;I have received number of elements&amp;nbsp; %i \n&quot;,nitem);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; if (info !=MPI_SUCCESS) return info;&lt;br&gt;//&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; ndims is number of dimensions &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; info = MPI_Recv((&amp;amp;nd), 1,MPI_INT, source, tanktag[2] , MPI_COMM_WORLD,&amp;amp;stat);&lt;br&gt;//&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; printf(&quot;I have received number of dimensions %i \n&quot;,nd);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; if (info !=MPI_SUCCESS) return info;&lt;br&gt;//&amp;nbsp; Now create contiguos datatype for dim
 vector&lt;br&gt;&amp;nbsp; dv.resize(nd);&lt;br&gt;&amp;nbsp; OCTAVE_LOCAL_BUFFER(int,dimV,nd);&lt;br&gt;&amp;nbsp; MPI_Datatype dimvec;&lt;br&gt;&amp;nbsp; MPI_Type_contiguous(nd,MPI_INT, &amp;amp;dimvec);&lt;br&gt;&amp;nbsp; MPI_Type_commit(&amp;amp;dimvec); &lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; info = MPI_Recv((dimV), 1,dimvec, source, tanktag[3] , MPI_COMM_WORLD,&amp;amp;stat);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; if (info !=MPI_SUCCESS) return info;&lt;br&gt;&lt;br&gt;// Now reverse the content of int vector into dim vector&lt;br&gt;&amp;nbsp;for (octave_idx_type i=0; i&amp;lt;nd; i++)&lt;br&gt;&amp;nbsp;{&lt;br&gt;//&amp;nbsp;&amp;nbsp;&amp;nbsp; printf(&quot;I am printing dimvector&amp;nbsp; %i \n&quot;,i);&lt;br&gt;&amp;nbsp;&amp;nbsp; dv(i) = dimV[i] ;&lt;br&gt;&amp;nbsp;}&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; uint32NDArray myNDA(dv);&lt;br&gt;//&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; double *p = myNDA.fortran_vec();&lt;br&gt;&amp;nbsp;&amp;nbsp; OCTAVE_LOCAL_BUFFER(octave_uint32,LBNDA,nitem);&lt;br&gt;//&amp;nbsp;&amp;nbsp;&amp;nbsp; printf(&quot;BUFFER CREATED \n&quot;);&lt;br&gt;&amp;nbsp; // Now create the contiguous derived datatype&lt;br&gt;&amp;nbsp; MPI_Datatype
 fortvec;&lt;br&gt;&amp;nbsp; MPI_Type_contiguous(nitem,MPI_UNSIGNED, &amp;amp;fortvec);&lt;br&gt;&amp;nbsp; MPI_Type_commit(&amp;amp;fortvec); &lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; info = MPI_Recv((LBNDA), 1,fortvec, source, tanktag[4] , MPI_COMM_WORLD,&amp;amp;stat);&lt;br&gt;//&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; printf(&quot;info for receiving data is = %i \n&quot;,info);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; if (info !=MPI_SUCCESS) return info;&lt;br&gt;&amp;nbsp; for (octave_idx_type i=0; i&amp;lt;nitem; i++)&lt;br&gt;&amp;nbsp; {&lt;br&gt;//&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; *LBNDA = *p;&lt;br&gt;//&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; LBNDA++;&lt;br&gt;//&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; p++;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; myNDA(i)=LBNDA[i];&lt;br&gt;&amp;nbsp; }&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ov = myNDA;&lt;br&gt;//&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; printf(&quot;info for receiving scalar matrix is = %i \n&quot;,info);&lt;br&gt;&amp;nbsp;&amp;nbsp; return(info);&lt;br&gt;}&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;int recv_complex_sp_mat(octave_value &amp;amp;ov,int source, int
 mytag){&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br&gt;int info;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br&gt;/*&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;int nr = m.rows();&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;int nc = m.cols ();&amp;nbsp; &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;int nnzm = m.nzmax ();*/&lt;br&gt;// tag[0] ----&amp;gt; type of octave_value&lt;br&gt;// tag[1] ----&amp;gt; array of three elements 1) num of rows 2) number of columns 3) number of non zero elements&lt;br&gt;// tag[2] ----&amp;gt;&amp;nbsp; vector of rowindex&lt;br&gt;// tag[3] ----&amp;gt;&amp;nbsp; vector of columnindex&lt;br&gt;// tag[5] ----&amp;gt;&amp;nbsp; vector of number of non zero elements &lt;br&gt;OCTAVE_LOCAL_BUFFER(int, tanktag,6);&lt;br&gt;tanktag[0] = mytag;&lt;br&gt;tanktag[1] = mytag+1;&lt;br&gt;tanktag[2] = mytag+2;&lt;br&gt;tanktag[3] = mytag+3;&lt;br&gt;tanktag[4] = mytag+4;&lt;br&gt;tanktag[5] = mytag+5;&lt;br&gt;&lt;br&gt;MPI_Status stat;&lt;br&gt;&lt;br&gt;OCTAVE_LOCAL_BUFFER(int,s,3);&amp;nbsp;&amp;nbsp; &lt;br&gt;&lt;br&gt;// Create a contiguous derived datatype&lt;br&gt;MPI_Datatype sintsparse;&lt;br&gt;MPI_Type_contiguous(3,MPI_INT,
 &amp;amp;sintsparse);&lt;br&gt;MPI_Type_commit(&amp;amp;sintsparse);&lt;br&gt;&lt;br&gt;// receive the sintsparse vector named s&lt;br&gt;info = MPI_Recv(s, 1, sintsparse, source, tanktag[1], MPI_COMM_WORLD, &amp;amp;stat);&lt;br&gt;if (info !=MPI_SUCCESS) return info;&lt;br&gt;&lt;br&gt;// int appo1, appo2, appo3;&lt;br&gt;// appo1 = s[0];&lt;br&gt;// appo2 = s[1];&lt;br&gt;// appo3 = s[2];&lt;br&gt;// &lt;br&gt;// printf(&quot;appo 1 is %i \n&quot;,appo1);&lt;br&gt;// printf(&quot;appo 2 is %i \n&quot;,appo2);&lt;br&gt;// printf(&quot;appo 3 is %i \n&quot;,appo3);&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;SparseMatrix m(s[0],s[1],s[2]);&lt;br&gt;&lt;br&gt;// Create a contiguous derived datatype for row index&lt;br&gt;OCTAVE_LOCAL_BUFFER(int,sridx,s[2]);&amp;nbsp; &lt;br&gt;OCTAVE_LOCAL_BUFFER(double,sdata,s[2]); &lt;br&gt;// Create a contiguous derived datatype for column index&lt;br&gt;OCTAVE_LOCAL_BUFFER(int,scidx,s[1]+1);&amp;nbsp;&amp;nbsp; &lt;br&gt;MPI_Datatype rowindex;&lt;br&gt;MPI_Type_contiguous(s[2],MPI_INT, &amp;amp;rowindex);&lt;br&gt;MPI_Type_commit(&amp;amp;rowindex);&lt;br&gt;MPI_Datatype datavect;&lt;br&gt;MPI_Type_contiguous(s[2],MPI_DOUBLE,
 &amp;amp;datavect);&lt;br&gt;MPI_Type_commit(&amp;amp;datavect);&lt;br&gt;MPI_Datatype columnindex;&lt;br&gt;MPI_Type_contiguous(s[1]+1,MPI_INT, &amp;amp;columnindex);&lt;br&gt;MPI_Type_commit(&amp;amp;columnindex);&lt;br&gt;&lt;br&gt;// Now receive the two vectors&lt;br&gt;&lt;br&gt;// receive the vector with row indexes&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; info =&amp;nbsp; MPI_Recv(sridx,1,rowindex,source,tanktag[2],MPI_COMM_WORLD,&amp;amp;stat);&lt;br&gt;// &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; printf(&quot;Hope everything is fine here with ridx %i =\n&quot;,info); &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; if (info !=MPI_SUCCESS) return info;&lt;br&gt;&lt;br&gt;// receive the vector with column indexes&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; info =&amp;nbsp; MPI_Recv(scidx,1,columnindex,source,tanktag[3],MPI_COMM_WORLD, &amp;amp;stat);&lt;br&gt;// &amp;nbsp;&amp;nbsp;&amp;nbsp; printf(&quot;Hope everything is fine here with scidx %i =\n&quot;,info);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; if (info !=MPI_SUCCESS) return info;&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; info =&amp;nbsp;
 MPI_Recv(sdata,1,datavect,source,tanktag[4],MPI_COMM_WORLD,&amp;amp;stat);&lt;br&gt;// &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; printf(&quot;Hope everything is fine here with data vect %i =\n&quot;,info); &lt;br&gt;&lt;br&gt;// int appoc;&lt;br&gt;NDArray buf (dim_vector (m.capacity(), 1));&lt;br&gt;for (octave_idx_type i = 0; i &amp;lt; s[2]; i++)&lt;br&gt;{ &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; m.ridx(i) = sridx[i];&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; m.data(i) = sdata[i];&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; buf(i) = sdata[i];&lt;br&gt;// &amp;nbsp;&amp;nbsp;&amp;nbsp; appoc = m.ridx(i);&lt;br&gt;// &amp;nbsp;&amp;nbsp;&amp;nbsp; printf(&quot;apporow is %i \n&quot;,appoc); &lt;br&gt;// &amp;nbsp;&amp;nbsp;&amp;nbsp; printf(&quot;appodata is %d \n&quot;,sdata[i]); &lt;br&gt;}&lt;br&gt;for (octave_idx_type i = 0; i &amp;lt; s[1]+1; i++)&lt;br&gt;{ &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; m.cidx(i) = scidx[i];&lt;br&gt;// &amp;nbsp;&amp;nbsp;&amp;nbsp; appoc=m.cidx(i); &lt;br&gt;// &amp;nbsp;&amp;nbsp;&amp;nbsp; printf(&quot;appocol is %i \n&quot;,appoc);&lt;br&gt;}&lt;br&gt;&lt;br&gt;&lt;br&gt;ov = m;&lt;br&gt;return(info);&lt;br&gt;&lt;br&gt;&lt;br&gt;}&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;int recv_scalar( octave_value &amp;amp;ov, int source, int
 mytag){&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; /* directly MPI_Recv it, */&lt;br&gt;/*-----------------------------*/&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; /* it's just a double value */&lt;br&gt;OCTAVE_LOCAL_BUFFER(int,tanktag,2);&lt;br&gt;&amp;nbsp; tanktag[0]=mytag;&lt;br&gt;&amp;nbsp; tanktag[1]=mytag+1;&lt;br&gt;&amp;nbsp; int info;&lt;br&gt;&amp;nbsp; MPI_Status stat;&lt;br&gt;&amp;nbsp; double d = ov.double_value();&lt;br&gt;&amp;nbsp; info = MPI_Recv((&amp;amp;d), 1,MPI_DOUBLE, source, tanktag[1] , MPI_COMM_WORLD,&amp;amp;stat);&lt;br&gt;&amp;nbsp; ov =d;&lt;br&gt;//&amp;nbsp;&amp;nbsp; printf(&quot;info for scalar is = %i \n&quot;,info);&lt;br&gt;&amp;nbsp; if (info !=MPI_SUCCESS) return info; &lt;br&gt;&amp;nbsp;&amp;nbsp; return(MPI_SUCCESS);&lt;br&gt;}&lt;br&gt;&lt;br&gt;int recv_int8_scalar( octave_value &amp;amp;ov, int source, int mytag){&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; /* directly MPI_Recv it, */&lt;br&gt;/*-----------------------------*/&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; /* it's just a double value */&lt;br&gt;OCTAVE_LOCAL_BUFFER(int,tanktag,2);&lt;br&gt;&amp;nbsp; tanktag[0]=mytag;&lt;br&gt;&amp;nbsp;
 tanktag[1]=mytag+1;&lt;br&gt;&amp;nbsp; int info;&lt;br&gt;&amp;nbsp; MPI_Status stat;&lt;br&gt;&amp;nbsp; octave_int8 d = ov.int8_scalar_value();&lt;br&gt;&amp;nbsp; info = MPI_Recv((&amp;amp;d), 1,MPI_BYTE, source, tanktag[1] , MPI_COMM_WORLD,&amp;amp;stat);&lt;br&gt;&amp;nbsp; ov =d;&lt;br&gt;//&amp;nbsp;&amp;nbsp; printf(&quot;info for scalar is = %i \n&quot;,info);&lt;br&gt;&amp;nbsp; if (info !=MPI_SUCCESS) return info; &lt;br&gt;&amp;nbsp;&amp;nbsp; return(MPI_SUCCESS);&lt;br&gt;}&lt;br&gt;&lt;br&gt;int recv_int16_scalar( octave_value &amp;amp;ov, int source, int mytag){&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; /* directly MPI_Recv it, */&lt;br&gt;/*-----------------------------*/&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; /* it's just a double value */&lt;br&gt;OCTAVE_LOCAL_BUFFER(int,tanktag,2);&lt;br&gt;&amp;nbsp; tanktag[0]=mytag;&lt;br&gt;&amp;nbsp; tanktag[1]=mytag+1;&lt;br&gt;&amp;nbsp; int info;&lt;br&gt;&amp;nbsp; MPI_Status stat;&lt;br&gt;&amp;nbsp; octave_int16 d = ov.int16_scalar_value();&lt;br&gt;&amp;nbsp; info = MPI_Recv((&amp;amp;d), 1,MPI_SHORT, source, tanktag[1] , MPI_COMM_WORLD,&amp;amp;stat);&lt;br&gt;&amp;nbsp; ov =d;&lt;br&gt;//&amp;nbsp;&amp;nbsp; printf(&quot;info
 for scalar is = %i \n&quot;,info);&lt;br&gt;&amp;nbsp; if (info !=MPI_SUCCESS) return info; &lt;br&gt;&amp;nbsp;&amp;nbsp; return(MPI_SUCCESS);&lt;br&gt;}&lt;br&gt;&lt;br&gt;int recv_int32_scalar( octave_value &amp;amp;ov, int source, int mytag){&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; /* directly MPI_Recv it, */&lt;br&gt;/*-----------------------------*/&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; /* it's just a double value */&lt;br&gt;OCTAVE_LOCAL_BUFFER(int,tanktag,2);&lt;br&gt;&amp;nbsp; tanktag[0]=mytag;&lt;br&gt;&amp;nbsp; tanktag[1]=mytag+1;&lt;br&gt;&amp;nbsp; int info;&lt;br&gt;&amp;nbsp; MPI_Status stat;&lt;br&gt;&amp;nbsp; octave_int32 d = ov.int32_scalar_value();&lt;br&gt;&amp;nbsp; info = MPI_Recv((&amp;amp;d), 1,MPI_INT, source, tanktag[1] , MPI_COMM_WORLD,&amp;amp;stat);&lt;br&gt;&amp;nbsp; ov =d;&lt;br&gt;//&amp;nbsp;&amp;nbsp; printf(&quot;info for scalar is = %i \n&quot;,info);&lt;br&gt;&amp;nbsp; if (info !=MPI_SUCCESS) return info; &lt;br&gt;&amp;nbsp;&amp;nbsp; return(MPI_SUCCESS);&lt;br&gt;}&lt;br&gt;&lt;br&gt;int recv_int64_scalar( octave_value &amp;amp;ov, int source, int mytag){&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; /* directly MPI_Recv it,
 */&lt;br&gt;/*-----------------------------*/&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; /* it's just a double value */&lt;br&gt;OCTAVE_LOCAL_BUFFER(int,tanktag,2);&lt;br&gt;&amp;nbsp; tanktag[0]=mytag;&lt;br&gt;&amp;nbsp; tanktag[1]=mytag+1;&lt;br&gt;&amp;nbsp; int info;&lt;br&gt;&amp;nbsp; MPI_Status stat;&lt;br&gt;&amp;nbsp; octave_int64 d = ov.int64_scalar_value();&lt;br&gt;&amp;nbsp; info = MPI_Recv((&amp;amp;d), 1,MPI_LONG_LONG, source, tanktag[1] , MPI_COMM_WORLD,&amp;amp;stat);&lt;br&gt;&amp;nbsp; ov =d;&lt;br&gt;//&amp;nbsp;&amp;nbsp; printf(&quot;info for scalar is = %i \n&quot;,info);&lt;br&gt;&amp;nbsp; if (info !=MPI_SUCCESS) return info; &lt;br&gt;&amp;nbsp;&amp;nbsp; return(MPI_SUCCESS);&lt;br&gt;}&lt;br&gt;&lt;br&gt;int recv_uint64_scalar( octave_value &amp;amp;ov, int source, int mytag){&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; /* directly MPI_Recv it, */&lt;br&gt;/*-----------------------------*/&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; /* it's just a double value */&lt;br&gt;OCTAVE_LOCAL_BUFFER(int,tanktag,2);&lt;br&gt;&amp;nbsp; tanktag[0]=mytag;&lt;br&gt;&amp;nbsp; tanktag[1]=mytag+1;&lt;br&gt;&amp;nbsp; int info;&lt;br&gt;&amp;nbsp; MPI_Status
 stat;&lt;br&gt;&amp;nbsp; octave_uint64 d = ov.uint64_scalar_value();&lt;br&gt;&amp;nbsp; info = MPI_Recv((&amp;amp;d), 1,MPI_UNSIGNED_LONG_LONG, source, tanktag[1] , MPI_COMM_WORLD,&amp;amp;stat);&lt;br&gt;&amp;nbsp; ov =d;&lt;br&gt;//&amp;nbsp;&amp;nbsp; printf(&quot;info for scalar is = %i \n&quot;,info);&lt;br&gt;&amp;nbsp; if (info !=MPI_SUCCESS) return info; &lt;br&gt;&amp;nbsp;&amp;nbsp; return(MPI_SUCCESS);&lt;br&gt;}&lt;br&gt;&lt;br&gt;int recv_uint32_scalar( octave_value &amp;amp;ov, int source, int mytag){&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; /* directly MPI_Recv it, */&lt;br&gt;/*-----------------------------*/&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; /* it's just a double value */&lt;br&gt;OCTAVE_LOCAL_BUFFER(int,tanktag,2);&lt;br&gt;&amp;nbsp; tanktag[0]=mytag;&lt;br&gt;&amp;nbsp; tanktag[1]=mytag+1;&lt;br&gt;&amp;nbsp; int info;&lt;br&gt;&amp;nbsp; MPI_Status stat;&lt;br&gt;&amp;nbsp; octave_uint32 d = ov.uint32_scalar_value();&lt;br&gt;&amp;nbsp; info = MPI_Recv((&amp;amp;d), 1,MPI_UNSIGNED, source, tanktag[1] , MPI_COMM_WORLD,&amp;amp;stat);&lt;br&gt;&amp;nbsp; ov =d;&lt;br&gt;//&amp;nbsp;&amp;nbsp; printf(&quot;info for scalar is = %i
 \n&quot;,info);&lt;br&gt;&amp;nbsp; if (info !=MPI_SUCCESS) return info; &lt;br&gt;&amp;nbsp;&amp;nbsp; return(MPI_SUCCESS);&lt;br&gt;}&lt;br&gt;&lt;br&gt;int recv_uint16_scalar( octave_value &amp;amp;ov, int source, int mytag){&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; /* directly MPI_Recv it, */&lt;br&gt;/*-----------------------------*/&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; /* it's just a double value */&lt;br&gt;OCTAVE_LOCAL_BUFFER(int,tanktag,2);&lt;br&gt;&amp;nbsp; tanktag[0]=mytag;&lt;br&gt;&amp;nbsp; tanktag[1]=mytag+1;&lt;br&gt;&amp;nbsp; int info;&lt;br&gt;&amp;nbsp; MPI_Status stat;&lt;br&gt;&amp;nbsp; octave_uint16 d = ov.uint16_scalar_value();&lt;br&gt;&amp;nbsp; info = MPI_Recv((&amp;amp;d), 1,MPI_UNSIGNED_SHORT, source, tanktag[1] , MPI_COMM_WORLD,&amp;amp;stat);&lt;br&gt;&amp;nbsp; ov =d;&lt;br&gt;//&amp;nbsp;&amp;nbsp; printf(&quot;info for scalar is = %i \n&quot;,info);&lt;br&gt;&amp;nbsp; if (info !=MPI_SUCCESS) return info; &lt;br&gt;&amp;nbsp;&amp;nbsp; return(MPI_SUCCESS);&lt;br&gt;}&lt;br&gt;&lt;br&gt;int recv_uint8_scalar( octave_value &amp;amp;ov, int source, int mytag){&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; /* directly MPI_Recv it,
 */&lt;br&gt;/*-----------------------------*/&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; /* it's just a double value */&lt;br&gt;OCTAVE_LOCAL_BUFFER(int,tanktag,2);&lt;br&gt;&amp;nbsp; tanktag[0]=mytag;&lt;br&gt;&amp;nbsp; tanktag[1]=mytag+1;&lt;br&gt;&amp;nbsp; int info;&lt;br&gt;&amp;nbsp; MPI_Status stat;&lt;br&gt;&amp;nbsp; octave_uint8 d = ov.uint8_scalar_value();&lt;br&gt;&amp;nbsp; info = MPI_Recv((&amp;amp;d), 1,MPI_UNSIGNED_CHAR, source, tanktag[1] , MPI_COMM_WORLD,&amp;amp;stat);&lt;br&gt;&amp;nbsp; ov =d;&lt;br&gt;//&amp;nbsp;&amp;nbsp; printf(&quot;info for scalar is = %i \n&quot;,info);&lt;br&gt;&amp;nbsp; if (info !=MPI_SUCCESS) return info; &lt;br&gt;&amp;nbsp;&amp;nbsp; return(MPI_SUCCESS);&lt;br&gt;}&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;int recv_complex_scalar( octave_value &amp;amp;ov, int source, int mytag){&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; /* directly MPI_Send it, */&lt;br&gt;/*-----------------------------*/&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; /* it's just a double value */&lt;br&gt;OCTAVE_LOCAL_BUFFER(int,tanktag,2);&lt;br&gt;&amp;nbsp; tanktag[0]=mytag;&lt;br&gt;&amp;nbsp; tanktag[1]=mytag+1;&lt;br&gt;&lt;br&gt;&amp;nbsp;
 OCTAVE_LOCAL_BUFFER(double,d,2);&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&amp;nbsp; int info;&lt;br&gt;&amp;nbsp; MPI_Status stat;&lt;br&gt;&amp;nbsp; info = MPI_Recv((&amp;amp;d), 2,MPI_DOUBLE, source, tanktag[1] , MPI_COMM_WORLD,&amp;amp;stat);&lt;br&gt;&lt;br&gt;&amp;nbsp; ov =Complex(d[0],d[1]);;&lt;br&gt;//&amp;nbsp;&amp;nbsp; printf(&quot;info for scalar is = %i \n&quot;,info);&lt;br&gt;&amp;nbsp; if (info !=MPI_SUCCESS) return info; &lt;br&gt;&amp;nbsp;&amp;nbsp; return(MPI_SUCCESS);&lt;br&gt;}&lt;br&gt;&lt;br&gt;int recv_complex_float_scalar( octave_value &amp;amp;ov, int source, int mytag){&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; /* directly MPI_Send it, */&lt;br&gt;/*-----------------------------*/&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; /* it's just a double value */&lt;br&gt;OCTAVE_LOCAL_BUFFER(int,tanktag,2);&lt;br&gt;&amp;nbsp; tanktag[0]=mytag;&lt;br&gt;&amp;nbsp; tanktag[1]=mytag+1;&lt;br&gt;&lt;br&gt;&amp;nbsp; OCTAVE_LOCAL_BUFFER(float,d,2);&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&amp;nbsp; int info;&lt;br&gt;&amp;nbsp; MPI_Status stat;&lt;br&gt;&amp;nbsp; info = MPI_Recv((&amp;amp;d), 2,MPI_FLOAT, source, tanktag[1] , MPI_COMM_WORLD,&amp;amp;stat);&lt;br&gt;&amp;nbsp;
 std::complex&amp;lt;float&amp;gt;&amp;nbsp; c = real(d[0])+imag(d[1]);&lt;br&gt;&amp;nbsp; ov =c;;&lt;br&gt;//&amp;nbsp;&amp;nbsp; printf(&quot;info for scalar is = %i \n&quot;,info);&lt;br&gt;&amp;nbsp; if (info !=MPI_SUCCESS) return info; &lt;br&gt;&amp;nbsp;&amp;nbsp; return(MPI_SUCCESS);&lt;br&gt;}&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;int recv_float_scalar( octave_value &amp;amp;ov, int source, int mytag){&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; /* directly MPI_Recv it, */&lt;br&gt;/*-----------------------------*/&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; /* it's just a Float value */&lt;br&gt;&lt;br&gt;OCTAVE_LOCAL_BUFFER(int,tanktag,2);&lt;br&gt;tanktag[0] = mytag;&lt;br&gt;tanktag[1] = mytag+1;&lt;br&gt;&lt;br&gt;&lt;br&gt;&amp;nbsp; int info;&lt;br&gt;&amp;nbsp; MPI_Status stat;&lt;br&gt;&amp;nbsp; float d = ov.float_value();&lt;br&gt;&amp;nbsp; info = MPI_Recv((&amp;amp;d), 1,MPI_FLOAT, source, tanktag[1] , MPI_COMM_WORLD,&amp;amp;stat);&lt;br&gt;&amp;nbsp; ov =d;&lt;br&gt;//&amp;nbsp;&amp;nbsp; printf(&quot;info for scalar is = %i \n&quot;,info);&lt;br&gt;&amp;nbsp; if (info !=MPI_SUCCESS) return info; &lt;br&gt;&amp;nbsp;&amp;nbsp; return(MPI_SUCCESS);&lt;br&gt;}&lt;br&gt;&lt;br&gt;int
 recv_class(octave_value &amp;amp;ov, int source, int mytag ){&amp;nbsp;&amp;nbsp;&amp;nbsp; /* varname-strlength 1st, dims[ndim] */&lt;br&gt;/*----------------------------------*/&amp;nbsp;&amp;nbsp;&amp;nbsp; /* and then appropriate specific info */&lt;br&gt;&amp;nbsp; int t_id,n; &lt;br&gt;//&amp;nbsp;&amp;nbsp; int mytag = cvtag(0);&lt;br&gt;&amp;nbsp; MPI_Status status;&lt;br&gt;&amp;nbsp; printf(&quot;1-&amp;gt; source =%i\n&quot;,source); &lt;br&gt;&amp;nbsp; printf(&quot;2-&amp;gt; tag for id =%i\n&quot;,mytag);&lt;br&gt;&amp;nbsp; int info = MPI_Recv(&amp;amp;t_id,1, MPI_INT, source,mytag,MPI_COMM_WORLD,&amp;amp;status);&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp; printf(&quot; I have received t_id =%i\n&quot;,t_id); &lt;br&gt;&lt;br&gt;&amp;nbsp; if (info !=MPI_SUCCESS) return info; &lt;br&gt;&lt;br&gt;&amp;nbsp; switch (t_id) {&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; case ov_scalar:&amp;nbsp;&amp;nbsp;&amp;nbsp; return(recv_scalar (ov,source,mytag));&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; case ov_int8_scalar:&amp;nbsp;&amp;nbsp;&amp;nbsp; return(recv_int8_scalar (ov,source,mytag));&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; case ov_int16_scalar:&amp;nbsp;&amp;nbsp;&amp;nbsp; return(recv_int16_scalar
 (ov,source,mytag));&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; case ov_int32_scalar:&amp;nbsp;&amp;nbsp;&amp;nbsp; return(recv_int32_scalar (ov,source,mytag));&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; case ov_int64_scalar:&amp;nbsp;&amp;nbsp;&amp;nbsp; return(recv_int64_scalar (ov,source,mytag));&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; case ov_uint8_scalar:&amp;nbsp;&amp;nbsp;&amp;nbsp; return(recv_uint8_scalar (ov,source,mytag));&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; case ov_uint16_scalar:&amp;nbsp;&amp;nbsp;&amp;nbsp; return(recv_uint16_scalar (ov,source,mytag));&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; case ov_uint32_scalar:&amp;nbsp;&amp;nbsp;&amp;nbsp; return(recv_uint32_scalar (ov,source,mytag));&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; case ov_uint64_scalar:&amp;nbsp;&amp;nbsp;&amp;nbsp; return(recv_uint64_scalar (ov,source,mytag));&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; case ov_float_scalar: return(recv_float_scalar(ov,source,mytag));&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; case ov_complex_scalar:&amp;nbsp;&amp;nbsp;&amp;nbsp; return(recv_complex_scalar (ov,source,mytag));&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; case ov_float_complex_scalar:
 return(recv_complex_float_scalar(ov,source,mytag));&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; case ov_string:&amp;nbsp;&amp;nbsp;&amp;nbsp; return(recv_string (ov,source,mytag));&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; case ov_matrix:&amp;nbsp;&amp;nbsp;&amp;nbsp; return(recv_matrix (ov,source,mytag));&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; case ov_complex_matrix:&amp;nbsp;&amp;nbsp;&amp;nbsp; return(recv_complex_matrix(ov,source,mytag));&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; case ov_int8_matrix:&amp;nbsp;&amp;nbsp;&amp;nbsp; return(recv_int8_matrix (ov,source,mytag));&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; case ov_int16_matrix:&amp;nbsp;&amp;nbsp;&amp;nbsp; return(recv_int16_matrix (ov,source,mytag));&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; case ov_int32_matrix:&amp;nbsp;&amp;nbsp;&amp;nbsp; return(recv_int32_matrix (ov,source,mytag));&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; case ov_int64_matrix:&amp;nbsp;&amp;nbsp;&amp;nbsp; return(recv_int64_matrix (ov,source,mytag));&lt;br&gt;&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; case ov_uint8_matrix:&amp;nbsp;&amp;nbsp;&amp;nbsp; return(recv_uint8_matrix (ov,source,mytag));&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; case ov_uint16_matrix:&amp;nbsp;&amp;nbsp;&amp;nbsp;
 return(recv_uint16_matrix (ov,source,mytag));&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; case ov_uint32_matrix:&amp;nbsp;&amp;nbsp;&amp;nbsp; return(recv_uint32_matrix (ov,source,mytag));&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; case ov_uint64_matrix:&amp;nbsp;&amp;nbsp;&amp;nbsp; return(recv_uint64_matrix (ov,source,mytag));&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; case ov_float_matrix:&amp;nbsp;&amp;nbsp;&amp;nbsp; return(recv_float_matrix (ov,source,mytag));&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; case ov_float_complex_matrix:&amp;nbsp;&amp;nbsp;&amp;nbsp; return(recv_float_complex_matrix (ov,source,mytag));&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; case ov_sparse_matrix:&amp;nbsp;&amp;nbsp;&amp;nbsp; return(recv_sp_mat(ov,source,mytag));&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; case ov_sparse_complex_matrix:&amp;nbsp;&amp;nbsp;&amp;nbsp; return(recv_complex_sp_mat(ov,source,mytag));&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; case ov_unknown:&amp;nbsp;&amp;nbsp;&amp;nbsp; printf(&quot;MPI_Recv: unknown class\n&quot;);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; return(MPI_ERR_UNKNOWN );&lt;br&gt;&lt;br&gt;case ov_class:&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;
 &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br&gt;case ov_list:&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br&gt;case ov_cs_list:&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br&gt;case ov_magic_colon:&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br&gt;case ov_built_in_function:&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br&gt;case ov_user_defined_function:&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br&gt;case ov_dynamically_linked_function:&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br&gt;case ov_function_handle:&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br&gt;case ov_inline_function:&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br&gt;case ov_float_diagonal_matrix:&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br&gt;case ov_float_complex_diagonal_matrix:&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br&gt;case ov_diagonal_matrix:&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br&gt;case ov_complex_diagonal_matrix:&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br&gt;case ov_permutation_matrix:&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br&gt;case ov_null_matrix:&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;
 &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br&gt;case ov_null_string:&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br&gt;case ov_null_sq_string:&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; default:&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; printf(&quot;MPI_Recv: unsupported class %s\n&quot;,&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; ov.type_name().c_str());&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; return(MPI_ERR_UNKNOWN );&lt;br&gt;&amp;nbsp; }&lt;br&gt;}&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;DEFUN_DLD(MPI_Recv,args,, &quot;MPI_Recv sends almost any Octave datatype into contiguous memory using openmpi library even over an hetherogeneous cluster i.e 32 bits CPUs and 64 bits CPU \n&quot;)&lt;br&gt;{&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; octave_value_list retval;&lt;br&gt;//&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Check if MPI environment is initialized&lt;br&gt;// first argument rank of the receiver&lt;br&gt;// for tag we use the type of
 octave_value ( see enum above )&lt;br&gt;// if alternative comunicator is provided select predefined MPI_COMM_WORLD&lt;br&gt;//&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Put the rank of the receiver into a columnvector &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; int source = args(0).int_value();&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br&gt;&amp;nbsp; if (error_state)&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; error (&quot;expecting first argument to be an integer&quot;);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return retval;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br&gt;&amp;nbsp;int mytag = args(1).int_value();&lt;br&gt;&amp;nbsp; if (error_state)&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; error (&quot;expecting second argument to be a column vector&quot;);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return retval;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }/*&lt;br&gt;&amp;nbsp; if (mytags.numel() &amp;lt; 3) &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; error (&quot;expecting second argument having&amp;nbsp; more than two elements&quot;);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return
 retval;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }*/&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; octave_value result;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; int info = recv_class (result,source, mytag );&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; retval(0)=info;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; retval(1)=result;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return retval;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br&gt;}&lt;br&gt;&lt;br&gt;&amp;nbsp;Now I may show you some simple helloworld octave scripts&lt;br&gt;if not(MPI_Initialized) &lt;br&gt;&amp;nbsp;&amp;nbsp; info = MPI_Init();&lt;br&gt;end&lt;br&gt;&lt;br&gt;&amp;nbsp; [info my_rank] = MPI_Comm_rank();&lt;br&gt;&amp;nbsp; [info p ] = MPI_Comm_size();&lt;br&gt;&amp;nbsp; mytag = 48;&lt;br&gt;&lt;br&gt;&lt;br&gt;&amp;nbsp; message=&quot;&quot;;&lt;br&gt;&amp;nbsp; if (my_rank != 0)&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; message = sprintf('Greetings from process: %d!',my_rank);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; dest = 0;&lt;br&gt;%&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; rankvect is the vector containing the list of rank&amp;nbsp; destination process &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; rankvect = 0;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [info] =
 MPI_Send(message,rankvect,mytag);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; info&lt;br&gt;&amp;nbsp; else&lt;br&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; for source = 1:p-1&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; disp(&quot;We are at rank 0 that is master etc..&quot;);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [info message] = MPI_Recv(source,mytag);&lt;br&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; printf('%s\n', message);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; endfor&lt;br&gt;&amp;nbsp; end&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br&gt;&lt;br&gt;&lt;br&gt;&amp;nbsp; if not(MPI_Finalized) &lt;br&gt;&amp;nbsp;&amp;nbsp; info = MPI_Finalize();&lt;br&gt;&amp;nbsp; end&lt;br&gt;&lt;br&gt;or &lt;br&gt;if not(MPI_Initialized) &lt;br&gt;&amp;nbsp;&amp;nbsp; info = MPI_Init();&lt;br&gt;end&lt;br&gt;&lt;br&gt;&amp;nbsp; [info my_rank] = MPI_Comm_rank();&lt;br&gt;&amp;nbsp; [info p ] = MPI_Comm_size();&lt;br&gt;&amp;nbsp; mytag = 48;&lt;br&gt;&lt;br&gt;&lt;br&gt;&amp;nbsp; &lt;br&gt;&amp;nbsp; if (my_rank != 0)&lt;br&gt;%&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Generate a random matrix&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
 message=rand(90,90);&lt;br&gt;%&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; load message&lt;br&gt;%&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; dest = 0;&lt;br&gt;%&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; rankvect is the vector containing the list of rank&amp;nbsp; destination process &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; rankvect = 0;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [info] = MPI_Send(message,rankvect,mytag);&lt;br&gt;&amp;nbsp; else&lt;br&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; for source = 1:p-1&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; disp(&quot;We are at rank 0 that is master etc..&quot;);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [info messager] = MPI_Recv(source,mytag);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; disp(&quot;Rank 0 is the master receiving ... :&quot;);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (info == true)&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; disp('OK!');&lt;br&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;
 endif&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; endfor&lt;br&gt;&amp;nbsp; end&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br&gt;&lt;br&gt;&lt;br&gt;&amp;nbsp; if not(MPI_Finalized) &lt;br&gt;&amp;nbsp;&amp;nbsp; info = MPI_Finalize();&lt;br&gt;&amp;nbsp; end&lt;br&gt;&lt;br&gt;&lt;br&gt;or with&amp;nbsp; a &lt;br&gt;sparse matrix&lt;br&gt;if not(MPI_Initialized) &lt;br&gt;&amp;nbsp;&amp;nbsp; info = MPI_Init();&lt;br&gt;end&lt;br&gt;&lt;br&gt;&amp;nbsp; [info my_rank] = MPI_Comm_rank();&lt;br&gt;&amp;nbsp; [info p ] = MPI_Comm_size();&lt;br&gt;%&amp;nbsp; // tag[0] ----&amp;gt; type of octave_value&lt;br&gt;%&amp;nbsp; // tag[1] ----&amp;gt; array of three elements 1) num of rows 2) number of columns 3) number of non zero elements&lt;br&gt;%&amp;nbsp; // tag[2] ----&amp;gt;&amp;nbsp; vector of rowindex&lt;br&gt;%&amp;nbsp; // tag[3] ----&amp;gt;&amp;nbsp; vector of columnindex&lt;br&gt;%&amp;nbsp; // tag[4] ----&amp;gt;&amp;nbsp; vector of&amp;nbsp; non zero elements &lt;br&gt;&lt;br&gt;&lt;br&gt;&amp;nbsp; mytag = 48;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&amp;nbsp; M=5;&lt;br&gt;&amp;nbsp; N=5;&lt;br&gt;&amp;nbsp; D=0.9;&lt;br&gt;%&amp;nbsp;&amp;nbsp;&amp;nbsp; message = sprand (M, N, D);&lt;br&gt;&amp;nbsp; load message&lt;br&gt;&amp;nbsp; &lt;br&gt;&lt;br&gt;&amp;nbsp; &lt;br&gt;&amp;nbsp; if
 (my_rank != 0)&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; dest = 0;&lt;br&gt;%&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; rankvect is the vector containing the list of rank&amp;nbsp; destination process &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; rankvect(1,1) = 0;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [info] = MPI_Send(message,rankvect,mytag);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; disp(&quot;This is flag for sending the message --&quot;)&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; info&lt;br&gt;&amp;nbsp; else&lt;br&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; for source = 1:p-1&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; messager='';&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; disp(&quot;We are at rank 0 that is master etc..&quot;);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [info messager] = MPI_Recv(source,mytag);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; disp(&quot;Rank 0 is the master receiving ... :&quot;);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if
 (messager/message)&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; disp('OK!');&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; endif&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; messager&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; endfor&lt;br&gt;&amp;nbsp; end&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br&gt;&lt;br&gt;&lt;br&gt;&amp;nbsp; if not(MPI_Finalized) &lt;br&gt;&amp;nbsp;&amp;nbsp; info = MPI_Finalize();&lt;br&gt;&amp;nbsp; end&lt;br&gt;&lt;br&gt;You could run the examples with mpirun -np 6 octave --eval testhello&lt;br&gt;&lt;br&gt;I would try to implement MPI_Probe MPI_Iprobe and MPI_ISend and MPI_IRecv using the same strategy implemented above.&lt;br&gt;Please let me know your opinion.&lt;br&gt;&lt;br&gt;Thanks a lot&lt;br&gt;Riccardo Corradini&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;--- &lt;b&gt;Mer 4/11/09, Søren Hauberg &lt;i&gt;&amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26198993&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;soren@...&lt;/a&gt;&amp;gt;&lt;/i&gt;&lt;/b&gt; ha scritto:&lt;br&gt;&lt;blockquote style=&quot;border-left: 2px solid rgb(16, 16, 255); margin-left: 5px; padding-left: 5px;&quot;&gt;&lt;br&gt;Da: Søren Hauberg &amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26198993&amp;i=2&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;soren@...&lt;/a&gt;&amp;gt;&lt;br&gt;Oggetto: Re: [OctDev]
 Contribution to Octave-forge with a simple Open-MPI Package&lt;br&gt;A: &quot;Riccardo Corradini&quot; &amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26198993&amp;i=3&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;riccardocorradini@...&lt;/a&gt;&amp;gt;&lt;br&gt;Cc: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26198993&amp;i=4&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;octave-dev@...&lt;/a&gt;&lt;br&gt;Data: Mercoledì 4 novembre 2009, 15:45&lt;br&gt;&lt;br&gt;&lt;div class=&quot;plainMail&quot;&gt;Hi,&lt;br&gt;&lt;br&gt;tir, 03 11 2009 kl. 12:25 +0000, skrev Riccardo Corradini:&lt;br&gt;&amp;gt; for my econometric computations I have built a simple package that&lt;br&gt;&amp;gt; uses the concept of MPI-Derived datatypes&lt;br&gt;&amp;gt; ( see &lt;a href=&quot;http://static.msi.umn.edu/tutorial/scicomp/general/MPI/content6.html&quot; target=&quot;_blank&quot; rel=&quot;nofollow&quot;&gt;http://static.msi.umn.edu/tutorial/scicomp/general/MPI/content6.html&lt;/a&gt; )&amp;nbsp; to spread octave_values objects over octave instances.&lt;br&gt;&amp;gt; This package gets a lot of ideas from MPI_TB for octave but is&lt;br&gt;&amp;gt; simpler, doesn't use MPI_PACK and MPI_UNPACK and is very easy to&lt;br&gt;&amp;gt; update with newer versions of Octave ( I tested it with octave 3.2.3 ,&lt;br&gt;&amp;gt; but I am sure it will work also with
 development-version).&lt;br&gt;&lt;br&gt;Cool! I'm currently not using Octave on a cluster, so I don't have any&lt;br&gt;MPI experience. Is your code general-purpose or is it designed for&lt;br&gt;econometrics?&lt;br&gt;&lt;br&gt;&amp;gt; Before doing that I would like to submit the functions to this list to&lt;br&gt;&amp;gt; know your opinions, warnings, improvements&amp;nbsp; and some hints on how to&lt;br&gt;&amp;gt; build an octave forge package with open-mpi bindings.&lt;br&gt;&lt;br&gt;As I said, I don't have any MPI experience, but feel free to send the&lt;br&gt;code to this list. I don't mind given it a quick look to see if I catch&lt;br&gt;anything, and perhaps others will provide their thoughts as well.&lt;br&gt;&lt;br&gt;Søren&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;/div&gt;&lt;/blockquote&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br&gt;



&lt;br /&gt;------------------------------------------------------------------------------
&lt;br&gt;Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day 
&lt;br&gt;trial. Simplify your report design, integration and deployment - and focus on 
&lt;br&gt;what you do best, core application coding. Discover what's new with
&lt;br&gt;Crystal Reports now. &amp;nbsp;&lt;a href=&quot;http://p.sf.net/sfu/bobj-july&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://p.sf.net/sfu/bobj-july&lt;/a&gt;&lt;br /&gt;_______________________________________________
&lt;br&gt;Octave-dev mailing list
&lt;br&gt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26198993&amp;i=5&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;Octave-dev@...&lt;/a&gt;
&lt;br&gt;&lt;a href=&quot;https://lists.sourceforge.net/lists/listinfo/octave-dev&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://lists.sourceforge.net/lists/listinfo/octave-dev&lt;/a&gt;&lt;br&gt;&lt;p&gt;From forum: &lt;a href=&quot;http://old.nabble.com/octave-dev-f4193.html&quot; embed=&quot;fixTarget[4193]&quot; target=&quot;_top&quot; &gt;octave-dev&lt;/a&gt;&lt;/p&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/Contribution-to-Octave-forge-with-a-simple-Open-MPI-Package-tp26180209p26198993.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26197537</id>
	<title>Re: Contribution to Octave-forge with a simple Open-MPI Package</title>
	<published>2009-11-04T06:45:29Z</published>
	<updated>2009-11-04T06:45:29Z</updated>
	<author>
		<name>Søren Hauberg</name>
	</author>
	<content type="html">Hi,
&lt;br&gt;&lt;br&gt;tir, 03 11 2009 kl. 12:25 +0000, skrev Riccardo Corradini:
&lt;br&gt;&amp;gt; for my econometric computations I have built a simple package that
&lt;br&gt;&amp;gt; uses the concept of MPI-Derived datatypes
&lt;br&gt;&amp;gt; ( see &lt;a href=&quot;http://static.msi.umn.edu/tutorial/scicomp/general/MPI/content6.html&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://static.msi.umn.edu/tutorial/scicomp/general/MPI/content6.html&lt;/a&gt;&amp;nbsp;) &amp;nbsp;to spread octave_values objects over octave instances.
&lt;br&gt;&amp;gt; This package gets a lot of ideas from MPI_TB for octave but is
&lt;br&gt;&amp;gt; simpler, doesn't use MPI_PACK and MPI_UNPACK and is very easy to
&lt;br&gt;&amp;gt; update with newer versions of Octave ( I tested it with octave 3.2.3 ,
&lt;br&gt;&amp;gt; but I am user it will work also with development-version).
&lt;br&gt;&lt;br&gt;Cool! I'm currently not using Octave on a cluster, so I don't have any
&lt;br&gt;MPI experience. Is your code general-purpose or is it designed for
&lt;br&gt;econometrics?
&lt;br&gt;&lt;br&gt;&amp;gt; Before doing that I would like to submit the functions to this list to
&lt;br&gt;&amp;gt; know your opinions, warnings, improvements &amp;nbsp;and some hints on how to
&lt;br&gt;&amp;gt; build an octave forge package with open-mpi bindings.
&lt;br&gt;&lt;br&gt;As I said, I don't have any MPI experience, but feel free to send the
&lt;br&gt;code to this list. I don't mind given it a quick look to see if I catch
&lt;br&gt;anything, and perhaps others will provide their thoughts as well.
&lt;br&gt;&lt;br&gt;Søren
&lt;br&gt;&lt;br&gt;&lt;br&gt;------------------------------------------------------------------------------
&lt;br&gt;Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day 
&lt;br&gt;trial. Simplify your report design, integration and deployment - and focus on 
&lt;br&gt;what you do best, core application coding. Discover what's new with
&lt;br&gt;Crystal Reports now. &amp;nbsp;&lt;a href=&quot;http://p.sf.net/sfu/bobj-july&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://p.sf.net/sfu/bobj-july&lt;/a&gt;&lt;br&gt;_______________________________________________
&lt;br&gt;Octave-dev mailing list
&lt;br&gt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26197537&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;Octave-dev@...&lt;/a&gt;
&lt;br&gt;&lt;a href=&quot;https://lists.sourceforge.net/lists/listinfo/octave-dev&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://lists.sourceforge.net/lists/listinfo/octave-dev&lt;/a&gt;&lt;br&gt;&lt;p&gt;From forum: &lt;a href=&quot;http://old.nabble.com/octave-dev-f4193.html&quot; embed=&quot;fixTarget[4193]&quot; target=&quot;_top&quot; &gt;octave-dev&lt;/a&gt;&lt;/p&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/Contribution-to-Octave-forge-with-a-simple-Open-MPI-Package-tp26180209p26197537.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26197452</id>
	<title>Re: Please update the link of &quot;Windows installer (Octave and Octave-Forge)&quot; http://octave.sourceforge.net/</title>
	<published>2009-11-04T06:39:56Z</published>
	<updated>2009-11-04T06:39:56Z</updated>
	<author>
		<name>Søren Hauberg</name>
	</author>
	<content type="html">fre, 30 10 2009 kl. 08:26 +0900, skrev Tatsuro MATSUOKA:
&lt;br&gt;&amp;gt; The link of &amp;quot;Windows installer (Octave and Octave-Forge)&amp;quot; &amp;nbsp;&lt;a href=&quot;http://octave.sourceforge.net/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://octave.sourceforge.net/&lt;/a&gt;&amp;nbsp;still points
&lt;br&gt;&amp;gt; to the previos version of octave 3.2.2 /mingw32.
&lt;br&gt;&lt;br&gt;Fixed.
&lt;br&gt;&lt;br&gt;Thanks and sorry for the slow reply
&lt;br&gt;&lt;br&gt;Søren
&lt;br&gt;&lt;br&gt;&lt;br&gt;------------------------------------------------------------------------------
&lt;br&gt;Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day 
&lt;br&gt;trial. Simplify your report design, integration and deployment - and focus on 
&lt;br&gt;what you do best, core application coding. Discover what's new with
&lt;br&gt;Crystal Reports now. &amp;nbsp;&lt;a href=&quot;http://p.sf.net/sfu/bobj-july&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://p.sf.net/sfu/bobj-july&lt;/a&gt;&lt;br&gt;_______________________________________________
&lt;br&gt;Octave-dev mailing list
&lt;br&gt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26197452&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;Octave-dev@...&lt;/a&gt;
&lt;br&gt;&lt;a href=&quot;https://lists.sourceforge.net/lists/listinfo/octave-dev&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://lists.sourceforge.net/lists/listinfo/octave-dev&lt;/a&gt;&lt;br&gt;&lt;p&gt;From forum: &lt;a href=&quot;http://old.nabble.com/octave-dev-f4193.html&quot; embed=&quot;fixTarget[4193]&quot; target=&quot;_top&quot; &gt;octave-dev&lt;/a&gt;&lt;/p&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/Please-update-the-link-of-%22Windows-installer-%28Octave-and-Octave-Forge%29%22-http%3A--octave.sourceforge.net--tp26122585p26197452.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26180212</id>
	<title>Re: Octave 3.2.3/mingw32 crashes on a simple complex operation</title>
	<published>2009-11-03T05:44:47Z</published>
	<updated>2009-11-03T05:44:47Z</updated>
	<author>
		<name>Nitzan Arazi</name>
	</author>
	<content type="html">&lt;div dir=&quot;ltr&quot;&gt;Hello Benjamin,&lt;br&gt;&lt;br&gt;When installed with SSE2 libs selected it does not crash.&lt;br&gt;The crash appears on an installation with SSE3 selected.&lt;br&gt;&lt;br&gt;Nitzan&lt;br&gt;&lt;br&gt;&lt;div class=&quot;gmail_quote&quot;&gt;On Mon, Nov 2, 2009 at 10:14 PM, Benjamin Lindner &lt;span dir=&quot;ltr&quot;&gt;&amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26180212&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;lindnerben@...&lt;/a&gt;&amp;gt;&lt;/span&gt; wrote:&lt;br&gt;

&lt;blockquote class=&quot;gmail_quote&quot; style=&quot;border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;&quot;&gt;&lt;div&gt;&lt;div&gt;&lt;/div&gt;&lt;div class=&quot;h5&quot;&gt;&lt;blockquote class=&quot;gmail_quote&quot; style=&quot;border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;&quot;&gt;


&lt;br&gt;
&lt;blockquote class=&quot;gmail_quote&quot; style=&quot;border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;&quot;&gt;
Jaroslav Hajek wrote:&lt;br&gt;
&lt;blockquote class=&quot;gmail_quote&quot; style=&quot;border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;&quot;&gt;
On Mon, Nov 2, 2009 at 1:30 PM, Benjamin Lindner &amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26180212&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;lindnerben@...&lt;/a&gt;&amp;gt; wrote:&lt;br&gt;
&lt;blockquote class=&quot;gmail_quote&quot; style=&quot;border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;&quot;&gt;&lt;blockquote class=&quot;gmail_quote&quot; style=&quot;border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;&quot;&gt;

&lt;blockquote class=&quot;gmail_quote&quot; style=&quot;border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;&quot;&gt;
On Mon, Nov 2, 2009 at 9:10 AM, Nit&lt;br&gt;
Nit&lt;br&gt;
wrote:&lt;br&gt;
&lt;blockquote class=&quot;gmail_quote&quot; style=&quot;border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;&quot;&gt;
Hello Benjamin, Tatsuro and other octave developers.&lt;br&gt;
&lt;br&gt;
Thanks for your work on Octave/mingw32.&lt;br&gt;
&lt;br&gt;
I have installed the binary with all octaveforge&lt;br&gt;
&lt;/blockquote&gt;
packages (problematic&lt;br&gt;
&lt;blockquote class=&quot;gmail_quote&quot; style=&quot;border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;&quot;&gt;
packages do not auto-loaded) on my XP SP3 machine and&lt;br&gt;
&lt;/blockquote&gt;
encountered a crash&lt;br&gt;
&lt;blockquote class=&quot;gmail_quote&quot; style=&quot;border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;&quot;&gt;
when performing the following simple operation:&lt;br&gt;
&lt;br&gt;
a=[1 2 3 4 5]+j*[5 4 3 2 1];&lt;br&gt;
c=a&amp;#39;*a;&lt;br&gt;
&lt;br&gt;
I do not know whether this is mingw32 only issue or&lt;br&gt;
&lt;/blockquote&gt;
not.&lt;br&gt;
I reckon it is. At least I don&amp;#39;t see this on linux.&lt;br&gt;
&lt;/blockquote&gt;
neither on cygwin&lt;br&gt;
&lt;/blockquote&gt;
Yeah, seems a mingw issue. I see it too.&lt;br&gt;
&lt;br&gt;
Interestingly, the following does not crash:&lt;br&gt;
&lt;br&gt;
 a=[1 2 3 4 5]+j*[5 4 3 2 1];&lt;br&gt;
 b=a&amp;#39;;&lt;br&gt;
 c=b*a;&lt;br&gt;
&lt;br&gt;
but shouldn&amp;#39;t it do so? I mean this is the same as&lt;br&gt;
&lt;br&gt;
 c=a&amp;#39;*a&lt;br&gt;
&lt;br&gt;
which crashes?&lt;br&gt;
&lt;br&gt;
&lt;/blockquote&gt;
It isn&amp;#39;t. The first one calls ZGEMM, the second one resolves to ZHERK.&lt;br&gt;
&lt;br&gt;
&lt;/blockquote&gt;
Does that mean it&amp;#39;s maybe a lapack problem? The one call crashing, the other not? But the lapack version did not change from octave/mingw 3.2.2 to 3.2.3. That would indeed be strange.&lt;br&gt;
&lt;br&gt;
benjamin&lt;br&gt;
&lt;br&gt;
&lt;/blockquote&gt;&lt;/blockquote&gt;&lt;/div&gt;&lt;/div&gt;
&amp;gt; Hello&lt;br&gt;
&amp;gt;&lt;br&gt;
&amp;gt; For my build of octave 3.2.3 on mingw by gcc-4.4.0 does not crash,&lt;div class=&quot;im&quot;&gt;&lt;br&gt;
&amp;gt;&lt;br&gt;
&amp;gt; a=[1 2 3 4 5]+j*[5 4 3 2 1];&lt;br&gt;&lt;/div&gt;
&amp;gt; c=a&amp;#39;*a;&lt;br&gt;
&amp;gt;&lt;br&gt;
&amp;gt;&lt;br&gt;
&amp;gt;&lt;br&gt;
&amp;gt; ***********&lt;br&gt;
&amp;gt; GNU Octave, version 3.2.3&lt;br&gt;
&amp;gt;  :&lt;br&gt;
&amp;gt; Octave was configured for &amp;quot;i686-pc-mingw32&amp;quot;.&lt;br&gt;
&amp;gt;  :&lt;br&gt;
&amp;gt; octave:1&amp;gt; a=[1 2 3 4 5]+j*[5 4 3 2 1];&lt;br&gt;
&amp;gt; octave:2&amp;gt; c=a&amp;#39;*a;&lt;br&gt;
&amp;gt; octave:3&amp;gt; c&lt;br&gt;
&amp;gt; c =&lt;br&gt;
&amp;gt;&lt;br&gt;
&amp;gt;    26 +  0i   22 -  6i   18 - 12i   14 - 18i   10 - 24i&lt;br&gt;
&amp;gt;    22 +  6i   20 +  0i   18 -  6i   16 - 12i   14 - 18i&lt;br&gt;
&amp;gt;    18 + 12i   18 +  6i   18 +  0i   18 -  6i   18 - 12i&lt;br&gt;
&amp;gt;    14 + 18i   16 + 12i   18 +  6i   20 +  0i   22 -  6i&lt;br&gt;
&amp;gt;    10 + 24i   14 + 18i   18 + 12i   22 +  6i   26 +  0i&lt;br&gt;
&amp;gt; *********************&lt;br&gt;
&amp;gt;&lt;br&gt;
&amp;gt; I am using the lapack 3.2.1 while the lapack 3.1.1 seem to be used in your build.&lt;br&gt;
&amp;gt; But I do not know whether the difference in lapack version is related to this issue.&lt;br&gt;
&amp;gt;&lt;br&gt;
&amp;gt; As far as I remember, you used the lapack 3.1.1 on octave 3.2.2 build.&lt;br&gt;
&amp;gt; On octave 3.2.2 built by you&lt;div class=&quot;im&quot;&gt;&lt;br&gt;
&amp;gt;&lt;br&gt;
&amp;gt; a=[1 2 3 4 5]+j*[5 4 3 2 1];&lt;br&gt;
&amp;gt; c=a&amp;#39;*a;&lt;br&gt;
&amp;gt;&lt;br&gt;&lt;/div&gt;
&amp;gt; does not cause crash.&lt;br&gt;
&amp;gt;&lt;br&gt;
&amp;gt; HMMM!&lt;br&gt;
&amp;gt;&lt;br&gt;
&amp;gt; This seem to be curios problem.&lt;br&gt;
&lt;br&gt;
On octave-3.2.3 with gcc-4.4.0 using reference blas/lapack it does not crash.&lt;br&gt;
Using an SSE3 atlas/blas/lapack library set (from the installer) it crashes.&lt;br&gt;
&lt;br&gt;
Nit, could you test, if your examples still crashes if you select the reference atlas libraries during install?&lt;br&gt;&lt;font color=&quot;#888888&quot;&gt;
&lt;br&gt;
benjamin&lt;br&gt;
&lt;/font&gt;&lt;/blockquote&gt;&lt;/div&gt;&lt;br&gt;&lt;/div&gt;
&lt;br /&gt;------------------------------------------------------------------------------
&lt;br&gt;Come build with us! The BlackBerry(R) Developer Conference in SF, CA
&lt;br&gt;is the only developer event you need to attend this year. Jumpstart your
&lt;br&gt;developing skills, take BlackBerry mobile applications to market and stay 
&lt;br&gt;ahead of the curve. Join us from November 9 - 12, 2009. Register now!
&lt;br&gt;&lt;a href=&quot;http://p.sf.net/sfu/devconference&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://p.sf.net/sfu/devconference&lt;/a&gt;&lt;br /&gt;_______________________________________________
&lt;br&gt;Octave-dev mailing list
&lt;br&gt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26180212&amp;i=2&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;Octave-dev@...&lt;/a&gt;
&lt;br&gt;&lt;a href=&quot;https://lists.sourceforge.net/lists/listinfo/octave-dev&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://lists.sourceforge.net/lists/listinfo/octave-dev&lt;/a&gt;&lt;br&gt;&lt;p&gt;From forum: &lt;a href=&quot;http://old.nabble.com/octave-dev-f4193.html&quot; embed=&quot;fixTarget[4193]&quot; target=&quot;_top&quot; &gt;octave-dev&lt;/a&gt;&lt;/p&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/Octave-3.2.3-mingw32-crashes-on-a-simple-complex-operation-tp26159558p26180212.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26180209</id>
	<title>Contribution to Octave-forge with a simple Open-MPI Package</title>
	<published>2009-11-03T04:25:32Z</published>
	<updated>2009-11-03T04:25:32Z</updated>
	<author>
		<name>Riccardo Corradini</name>
	</author>
	<content type="html">&lt;table cellspacing=&quot;0&quot; cellpadding=&quot;0&quot; border=&quot;0&quot;&gt;&lt;tr&gt;&lt;td valign=&quot;top&quot; style=&quot;font: inherit;&quot;&gt;&lt;DIV&gt;Dear Octave users,&lt;/DIV&gt;
&lt;DIV&gt;for my econometric computations I have built a simple package that uses the concept of MPI-Derived datatypes ( see&amp;nbsp;&lt;A href=&quot;http://static.msi.umn.edu/tutorial/scicomp/general/MPI/content6.html&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://static.msi.umn.edu/tutorial/scicomp/general/MPI/content6.html&lt;/A&gt;&amp;nbsp;)&amp;nbsp;&amp;nbsp;to spread octave_values objects over octave instances.&lt;/DIV&gt;
&lt;DIV&gt;This package gets a lot of ideas from MPI_TB for octave but is simpler, doesn't use MPI_PACK and MPI_UNPACK and is very easy to update with newer versions of Octave ( I tested it with octave 3.2.3 , but I am user it will work also with development-version).&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;Before doing that I would like to submit the functions to this list to know your opinions, warnings,&amp;nbsp;improvements&amp;nbsp;&amp;nbsp;and some hints on how to build an octave forge&amp;nbsp;package with open-mpi bindings.&lt;/DIV&gt;
&lt;DIV&gt;Thanks a lot for all your help and patience concerning this issue.&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;Respectfully&lt;/DIV&gt;
&lt;DIV&gt;Riccardo Corradini&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br&gt;



&lt;br /&gt;------------------------------------------------------------------------------
&lt;br&gt;Come build with us! The BlackBerry(R) Developer Conference in SF, CA
&lt;br&gt;is the only developer event you need to attend this year. Jumpstart your
&lt;br&gt;developing skills, take BlackBerry mobile applications to market and stay 
&lt;br&gt;ahead of the curve. Join us from November 9 - 12, 2009. Register now!
&lt;br&gt;&lt;a href=&quot;http://p.sf.net/sfu/devconference&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://p.sf.net/sfu/devconference&lt;/a&gt;&lt;br /&gt;_______________________________________________
&lt;br&gt;Octave-dev mailing list
&lt;br&gt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26180209&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;Octave-dev@...&lt;/a&gt;
&lt;br&gt;&lt;a href=&quot;https://lists.sourceforge.net/lists/listinfo/octave-dev&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://lists.sourceforge.net/lists/listinfo/octave-dev&lt;/a&gt;&lt;br&gt;&lt;p&gt;From forum: &lt;a href=&quot;http://old.nabble.com/octave-dev-f4193.html&quot; embed=&quot;fixTarget[4193]&quot; target=&quot;_top&quot; &gt;octave-dev&lt;/a&gt;&lt;/p&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/Contribution-to-Octave-forge-with-a-simple-Open-MPI-Package-tp26180209p26180209.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26170708</id>
	<title>Re: Octave 3.2.3/mingw32 crashes on a simple complex operation</title>
	<published>2009-11-02T13:04:20Z</published>
	<updated>2009-11-02T13:04:20Z</updated>
	<author>
		<name>Tatsuro MATSUOKA-2</name>
	</author>
	<content type="html">Hello Benjamin
&lt;br&gt;&lt;br&gt;In my home, the cpu of computer is celeron-M so that SSE2 version of ATLAS is selected.
&lt;br&gt;In that case, 
&lt;br&gt;&lt;br&gt;a=[1 2 3 4 5]+j*[5 4 3 2 1];
&lt;br&gt;c=a'*a;
&lt;br&gt;&lt;br&gt;does not cause crash on octave 3.2.3 / mingw32.
&lt;br&gt;&lt;br&gt;Thus the problem seems to rely on the ATLAS. 
&lt;br&gt;&lt;br&gt;Regards
&lt;br&gt;&lt;br&gt;Tatsuro
&lt;br&gt;&lt;br&gt;--- Benjamin Lindner wrote:
&lt;br&gt;&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt; &amp;gt; 
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; Jaroslav Hajek wrote:
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt; On Mon, Nov 2, 2009 at 1:30 PM, Benjamin Lindner &amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26170708&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;lindnerben@...&lt;/a&gt;&amp;gt; wrote:
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; On Mon, Nov 2, 2009 at 9:10 AM, Nit
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; Nit
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; wrote:
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; Hello Benjamin, Tatsuro and other octave developers.
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; Thanks for your work on Octave/mingw32.
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; I have installed the binary with all octaveforge
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; packages (problematic
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; packages do not auto-loaded) on my XP SP3 machine and
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; encountered a crash
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; when performing the following simple operation:
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; a=[1 2 3 4 5]+j*[5 4 3 2 1];
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; c=a'*a;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; I do not know whether this is mingw32 only issue or
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; not.
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; I reckon it is. At least I don't see this on linux.
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; neither on cygwin
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; Yeah, seems a mingw issue. I see it too.
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; Interestingly, the following does not crash:
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;nbsp;a=[1 2 3 4 5]+j*[5 4 3 2 1];
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;nbsp;b=a';
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;nbsp;c=b*a;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; but shouldn't it do so? I mean this is the same as
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;nbsp;c=a'*a
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; which crashes?
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt; It isn't. The first one calls ZGEMM, the second one resolves to ZHERK.
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; Does that mean it's maybe a lapack problem? The one call crashing, the 
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; other not? But the lapack version did not change from octave/mingw 3.2.2 
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; to 3.2.3. That would indeed be strange.
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; benjamin
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp;&amp;gt; Hello
&lt;br&gt;&amp;gt; &amp;nbsp;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp;&amp;gt; For my build of octave 3.2.3 on mingw by gcc-4.4.0 does not crash,
&lt;br&gt;&amp;gt; &amp;nbsp;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp;&amp;gt; a=[1 2 3 4 5]+j*[5 4 3 2 1];
&lt;br&gt;&amp;gt; &amp;nbsp;&amp;gt; c=a'*a;
&lt;br&gt;&amp;gt; &amp;nbsp;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp;&amp;gt; ***********
&lt;br&gt;&amp;gt; &amp;nbsp;&amp;gt; GNU Octave, version 3.2.3
&lt;br&gt;&amp;gt; &amp;nbsp;&amp;gt; &amp;nbsp;:
&lt;br&gt;&amp;gt; &amp;nbsp;&amp;gt; Octave was configured for &amp;quot;i686-pc-mingw32&amp;quot;.
&lt;br&gt;&amp;gt; &amp;nbsp;&amp;gt; &amp;nbsp;:
&lt;br&gt;&amp;gt; &amp;nbsp;&amp;gt; octave:1&amp;gt; a=[1 2 3 4 5]+j*[5 4 3 2 1];
&lt;br&gt;&amp;gt; &amp;nbsp;&amp;gt; octave:2&amp;gt; c=a'*a;
&lt;br&gt;&amp;gt; &amp;nbsp;&amp;gt; octave:3&amp;gt; c
&lt;br&gt;&amp;gt; &amp;nbsp;&amp;gt; c =
&lt;br&gt;&amp;gt; &amp;nbsp;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp;&amp;gt; &amp;nbsp; &amp;nbsp;26 + &amp;nbsp;0i &amp;nbsp; 22 - &amp;nbsp;6i &amp;nbsp; 18 - 12i &amp;nbsp; 14 - 18i &amp;nbsp; 10 - 24i
&lt;br&gt;&amp;gt; &amp;nbsp;&amp;gt; &amp;nbsp; &amp;nbsp;22 + &amp;nbsp;6i &amp;nbsp; 20 + &amp;nbsp;0i &amp;nbsp; 18 - &amp;nbsp;6i &amp;nbsp; 16 - 12i &amp;nbsp; 14 - 18i
&lt;br&gt;&amp;gt; &amp;nbsp;&amp;gt; &amp;nbsp; &amp;nbsp;18 + 12i &amp;nbsp; 18 + &amp;nbsp;6i &amp;nbsp; 18 + &amp;nbsp;0i &amp;nbsp; 18 - &amp;nbsp;6i &amp;nbsp; 18 - 12i
&lt;br&gt;&amp;gt; &amp;nbsp;&amp;gt; &amp;nbsp; &amp;nbsp;14 + 18i &amp;nbsp; 16 + 12i &amp;nbsp; 18 + &amp;nbsp;6i &amp;nbsp; 20 + &amp;nbsp;0i &amp;nbsp; 22 - &amp;nbsp;6i
&lt;br&gt;&amp;gt; &amp;nbsp;&amp;gt; &amp;nbsp; &amp;nbsp;10 + 24i &amp;nbsp; 14 + 18i &amp;nbsp; 18 + 12i &amp;nbsp; 22 + &amp;nbsp;6i &amp;nbsp; 26 + &amp;nbsp;0i
&lt;br&gt;&amp;gt; &amp;nbsp;&amp;gt; *********************
&lt;br&gt;&amp;gt; &amp;nbsp;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp;&amp;gt; I am using the lapack 3.2.1 while the lapack 3.1.1 seem to be used in 
&lt;br&gt;&amp;gt; your build.
&lt;br&gt;&amp;gt; &amp;nbsp;&amp;gt; But I do not know whether the difference in lapack version is related 
&lt;br&gt;&amp;gt; to this issue.
&lt;br&gt;&amp;gt; &amp;nbsp;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp;&amp;gt; As far as I remember, you used the lapack 3.1.1 on octave 3.2.2 build.
&lt;br&gt;&amp;gt; &amp;nbsp;&amp;gt; On octave 3.2.2 built by you
&lt;br&gt;&amp;gt; &amp;nbsp;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp;&amp;gt; a=[1 2 3 4 5]+j*[5 4 3 2 1];
&lt;br&gt;&amp;gt; &amp;nbsp;&amp;gt; c=a'*a;
&lt;br&gt;&amp;gt; &amp;nbsp;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp;&amp;gt; does not cause crash.
&lt;br&gt;&amp;gt; &amp;nbsp;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp;&amp;gt; HMMM!
&lt;br&gt;&amp;gt; &amp;nbsp;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp;&amp;gt; This seem to be curios problem.
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; On octave-3.2.3 with gcc-4.4.0 using reference blas/lapack it does not 
&lt;br&gt;&amp;gt; crash.
&lt;br&gt;&amp;gt; Using an SSE3 atlas/blas/lapack library set (from the installer) it crashes.
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; Nit, could you test, if your examples still crashes if you select the 
&lt;br&gt;&amp;gt; reference atlas libraries during install?
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; benjamin
&lt;br&gt;&amp;gt; 
&lt;/div&gt;&lt;br&gt;&lt;br&gt;--------------------------------------
&lt;br&gt;GyaO! - Anime, Dramas, Movies, and Music videos [FREE]
&lt;br&gt;&lt;a href=&quot;http://pr.mail.yahoo.co.jp/gyao/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://pr.mail.yahoo.co.jp/gyao/&lt;/a&gt;&lt;br&gt;&lt;br&gt;------------------------------------------------------------------------------
&lt;br&gt;Come build with us! The BlackBerry(R) Developer Conference in SF, CA
&lt;br&gt;is the only developer event you need to attend this year. Jumpstart your
&lt;br&gt;developing skills, take BlackBerry mobile applications to market and stay 
&lt;br&gt;ahead of the curve. Join us from November 9 - 12, 2009. Register now!
&lt;br&gt;&lt;a href=&quot;http://p.sf.net/sfu/devconference&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://p.sf.net/sfu/devconference&lt;/a&gt;&lt;br&gt;_______________________________________________
&lt;br&gt;Octave-dev mailing list
&lt;br&gt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26170708&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;Octave-dev@...&lt;/a&gt;
&lt;br&gt;&lt;a href=&quot;https://lists.sourceforge.net/lists/listinfo/octave-dev&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://lists.sourceforge.net/lists/listinfo/octave-dev&lt;/a&gt;&lt;br&gt;&lt;p&gt;From forum: &lt;a href=&quot;http://old.nabble.com/octave-dev-f4193.html&quot; embed=&quot;fixTarget[4193]&quot; target=&quot;_top&quot; &gt;octave-dev&lt;/a&gt;&lt;/p&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/Octave-3.2.3-mingw32-crashes-on-a-simple-complex-operation-tp26159558p26170708.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26170104</id>
	<title>Re: Octave 3.2.3/mingw32 crashes on a simple complex operation</title>
	<published>2009-11-02T12:23:16Z</published>
	<updated>2009-11-02T12:23:16Z</updated>
	<author>
		<name>Jaroslav Hajek-2</name>
	</author>
	<content type="html">On Mon, Nov 2, 2009 at 6:56 PM, Benjamin Lindner &amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26170104&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;lindnerben@...&lt;/a&gt;&amp;gt; wrote:
&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt; Jaroslav Hajek wrote:
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; On Mon, Nov 2, 2009 at 1:30 PM, Benjamin Lindner &amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26170104&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;lindnerben@...&lt;/a&gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; wrote:
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; On Mon, Nov 2, 2009 at 9:10 AM, Nit
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; Nit
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; wrote:
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; Hello Benjamin, Tatsuro and other octave developers.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; Thanks for your work on Octave/mingw32.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; I have installed the binary with all octaveforge
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; packages (problematic
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; packages do not auto-loaded) on my XP SP3 machine and
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; encountered a crash
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; when performing the following simple operation:
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; a=[1 2 3 4 5]+j*[5 4 3 2 1];
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; c=a'*a;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; I do not know whether this is mingw32 only issue or
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; not.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; I reckon it is. At least I don't see this on linux.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; neither on cygwin
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; Yeah, seems a mingw issue. I see it too.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; Interestingly, the following does not crash:
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;  a=[1 2 3 4 5]+j*[5 4 3 2 1];
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;  b=a';
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;  c=b*a;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; but shouldn't it do so? I mean this is the same as
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;  c=a'*a
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; which crashes?
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; It isn't. The first one calls ZGEMM, the second one resolves to ZHERK.
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Does that mean it's maybe a lapack problem? The one call crashing, the other
&lt;br&gt;&amp;gt; not? But the lapack version did not change from octave/mingw 3.2.2 to 3.2.3.
&lt;br&gt;&amp;gt; That would indeed be strange.
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; benjamin
&lt;br&gt;&amp;gt;
&lt;/div&gt;&lt;br&gt;xGEMM and xHERK are BLAS subprograms, so it's BLAS/ATLAS version that
&lt;br&gt;is relevant here.
&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;-- 
&lt;br&gt;RNDr. Jaroslav Hajek
&lt;br&gt;computing expert &amp; GNU Octave developer
&lt;br&gt;Aeronautical Research and Test Institute (VZLU)
&lt;br&gt;Prague, Czech Republic
&lt;br&gt;url: www.highegg.matfyz.cz
&lt;br&gt;&lt;br&gt;------------------------------------------------------------------------------
&lt;br&gt;Come build with us! The BlackBerry(R) Developer Conference in SF, CA
&lt;br&gt;is the only developer event you need to attend this year. Jumpstart your
&lt;br&gt;developing skills, take BlackBerry mobile applications to market and stay 
&lt;br&gt;ahead of the curve. Join us from November 9 - 12, 2009. Register now!
&lt;br&gt;&lt;a href=&quot;http://p.sf.net/sfu/devconference&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://p.sf.net/sfu/devconference&lt;/a&gt;&lt;br&gt;_______________________________________________
&lt;br&gt;Octave-dev mailing list
&lt;br&gt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26170104&amp;i=2&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;Octave-dev@...&lt;/a&gt;
&lt;br&gt;&lt;a href=&quot;https://lists.sourceforge.net/lists/listinfo/octave-dev&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://lists.sourceforge.net/lists/listinfo/octave-dev&lt;/a&gt;&lt;br&gt;&lt;p&gt;From forum: &lt;a href=&quot;http://old.nabble.com/octave-dev-f4193.html&quot; embed=&quot;fixTarget[4193]&quot; target=&quot;_top&quot; &gt;octave-dev&lt;/a&gt;&lt;/p&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/Octave-3.2.3-mingw32-crashes-on-a-simple-complex-operation-tp26159558p26170104.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26170000</id>
	<title>Re: Octave 3.2.3/mingw32 crashes on a simple complex operation</title>
	<published>2009-11-02T12:14:45Z</published>
	<updated>2009-11-02T12:14:45Z</updated>
	<author>
		<name>Benjamin Lindner</name>
	</author>
	<content type="html">&lt;div class='shrinkable-quote'&gt;&amp;gt; 
&lt;br&gt;&amp;gt;&amp;gt; Jaroslav Hajek wrote:
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; On Mon, Nov 2, 2009 at 1:30 PM, Benjamin Lindner &amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26170000&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;lindnerben@...&lt;/a&gt;&amp;gt; wrote:
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; On Mon, Nov 2, 2009 at 9:10 AM, Nit
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; Nit
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; wrote:
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; Hello Benjamin, Tatsuro and other octave developers.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; Thanks for your work on Octave/mingw32.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; I have installed the binary with all octaveforge
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; packages (problematic
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; packages do not auto-loaded) on my XP SP3 machine and
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; encountered a crash
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; when performing the following simple operation:
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; a=[1 2 3 4 5]+j*[5 4 3 2 1];
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; c=a'*a;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; I do not know whether this is mingw32 only issue or
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; not.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; I reckon it is. At least I don't see this on linux.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; neither on cygwin
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; Yeah, seems a mingw issue. I see it too.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; Interestingly, the following does not crash:
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;nbsp;a=[1 2 3 4 5]+j*[5 4 3 2 1];
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;nbsp;b=a';
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;nbsp;c=b*a;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; but shouldn't it do so? I mean this is the same as
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;nbsp;c=a'*a
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; which crashes?
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; It isn't. The first one calls ZGEMM, the second one resolves to ZHERK.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; Does that mean it's maybe a lapack problem? The one call crashing, the 
&lt;br&gt;&amp;gt;&amp;gt; other not? But the lapack version did not change from octave/mingw 3.2.2 
&lt;br&gt;&amp;gt;&amp;gt; to 3.2.3. That would indeed be strange.
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; benjamin
&lt;br&gt;&amp;gt;&amp;gt;
&lt;/div&gt;&amp;nbsp;&amp;gt; Hello
&lt;br&gt;&amp;nbsp;&amp;gt;
&lt;br&gt;&amp;nbsp;&amp;gt; For my build of octave 3.2.3 on mingw by gcc-4.4.0 does not crash,
&lt;br&gt;&amp;nbsp;&amp;gt;
&lt;br&gt;&amp;nbsp;&amp;gt; a=[1 2 3 4 5]+j*[5 4 3 2 1];
&lt;br&gt;&amp;nbsp;&amp;gt; c=a'*a;
&lt;br&gt;&amp;nbsp;&amp;gt;
&lt;br&gt;&amp;nbsp;&amp;gt;
&lt;br&gt;&amp;nbsp;&amp;gt;
&lt;br&gt;&amp;nbsp;&amp;gt; ***********
&lt;br&gt;&amp;nbsp;&amp;gt; GNU Octave, version 3.2.3
&lt;br&gt;&amp;nbsp;&amp;gt; &amp;nbsp;:
&lt;br&gt;&amp;nbsp;&amp;gt; Octave was configured for &amp;quot;i686-pc-mingw32&amp;quot;.
&lt;br&gt;&amp;nbsp;&amp;gt; &amp;nbsp;:
&lt;br&gt;&amp;nbsp;&amp;gt; octave:1&amp;gt; a=[1 2 3 4 5]+j*[5 4 3 2 1];
&lt;br&gt;&amp;nbsp;&amp;gt; octave:2&amp;gt; c=a'*a;
&lt;br&gt;&amp;nbsp;&amp;gt; octave:3&amp;gt; c
&lt;br&gt;&amp;nbsp;&amp;gt; c =
&lt;br&gt;&amp;nbsp;&amp;gt;
&lt;br&gt;&amp;nbsp;&amp;gt; &amp;nbsp; &amp;nbsp;26 + &amp;nbsp;0i &amp;nbsp; 22 - &amp;nbsp;6i &amp;nbsp; 18 - 12i &amp;nbsp; 14 - 18i &amp;nbsp; 10 - 24i
&lt;br&gt;&amp;nbsp;&amp;gt; &amp;nbsp; &amp;nbsp;22 + &amp;nbsp;6i &amp;nbsp; 20 + &amp;nbsp;0i &amp;nbsp; 18 - &amp;nbsp;6i &amp;nbsp; 16 - 12i &amp;nbsp; 14 - 18i
&lt;br&gt;&amp;nbsp;&amp;gt; &amp;nbsp; &amp;nbsp;18 + 12i &amp;nbsp; 18 + &amp;nbsp;6i &amp;nbsp; 18 + &amp;nbsp;0i &amp;nbsp; 18 - &amp;nbsp;6i &amp;nbsp; 18 - 12i
&lt;br&gt;&amp;nbsp;&amp;gt; &amp;nbsp; &amp;nbsp;14 + 18i &amp;nbsp; 16 + 12i &amp;nbsp; 18 + &amp;nbsp;6i &amp;nbsp; 20 + &amp;nbsp;0i &amp;nbsp; 22 - &amp;nbsp;6i
&lt;br&gt;&amp;nbsp;&amp;gt; &amp;nbsp; &amp;nbsp;10 + 24i &amp;nbsp; 14 + 18i &amp;nbsp; 18 + 12i &amp;nbsp; 22 + &amp;nbsp;6i &amp;nbsp; 26 + &amp;nbsp;0i
&lt;br&gt;&amp;nbsp;&amp;gt; *********************
&lt;br&gt;&amp;nbsp;&amp;gt;
&lt;br&gt;&amp;nbsp;&amp;gt; I am using the lapack 3.2.1 while the lapack 3.1.1 seem to be used in 
&lt;br&gt;your build.
&lt;br&gt;&amp;nbsp;&amp;gt; But I do not know whether the difference in lapack version is related 
&lt;br&gt;to this issue.
&lt;br&gt;&amp;nbsp;&amp;gt;
&lt;br&gt;&amp;nbsp;&amp;gt; As far as I remember, you used the lapack 3.1.1 on octave 3.2.2 build.
&lt;br&gt;&amp;nbsp;&amp;gt; On octave 3.2.2 built by you
&lt;br&gt;&amp;nbsp;&amp;gt;
&lt;br&gt;&amp;nbsp;&amp;gt; a=[1 2 3 4 5]+j*[5 4 3 2 1];
&lt;br&gt;&amp;nbsp;&amp;gt; c=a'*a;
&lt;br&gt;&amp;nbsp;&amp;gt;
&lt;br&gt;&amp;nbsp;&amp;gt; does not cause crash.
&lt;br&gt;&amp;nbsp;&amp;gt;
&lt;br&gt;&amp;nbsp;&amp;gt; HMMM!
&lt;br&gt;&amp;nbsp;&amp;gt;
&lt;br&gt;&amp;nbsp;&amp;gt; This seem to be curios problem.
&lt;br&gt;&lt;br&gt;On octave-3.2.3 with gcc-4.4.0 using reference blas/lapack it does not 
&lt;br&gt;crash.
&lt;br&gt;Using an SSE3 atlas/blas/lapack library set (from the installer) it crashes.
&lt;br&gt;&lt;br&gt;Nit, could you test, if your examples still crashes if you select the 
&lt;br&gt;reference atlas libraries during install?
&lt;br&gt;&lt;br&gt;benjamin
&lt;br&gt;&lt;br&gt;------------------------------------------------------------------------------
&lt;br&gt;Come build with us! The BlackBerry(R) Developer Conference in SF, CA
&lt;br&gt;is the only developer event you need to attend this year. Jumpstart your
&lt;br&gt;developing skills, take BlackBerry mobile applications to market and stay 
&lt;br&gt;ahead of the curve. Join us from November 9 - 12, 2009. Register now!
&lt;br&gt;&lt;a href=&quot;http://p.sf.net/sfu/devconference&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://p.sf.net/sfu/devconference&lt;/a&gt;&lt;br&gt;_______________________________________________
&lt;br&gt;Octave-dev mailing list
&lt;br&gt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26170000&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;Octave-dev@...&lt;/a&gt;
&lt;br&gt;&lt;a href=&quot;https://lists.sourceforge.net/lists/listinfo/octave-dev&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://lists.sourceforge.net/lists/listinfo/octave-dev&lt;/a&gt;&lt;br&gt;&lt;p&gt;From forum: &lt;a href=&quot;http://old.nabble.com/octave-dev-f4193.html&quot; embed=&quot;fixTarget[4193]&quot; target=&quot;_top&quot; &gt;octave-dev&lt;/a&gt;&lt;/p&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/Octave-3.2.3-mingw32-crashes-on-a-simple-complex-operation-tp26159558p26170000.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26169931</id>
	<title>Re: cannot imread of jpeg file octave-3.2.3/mingw32</title>
	<published>2009-11-02T12:10:43Z</published>
	<updated>2009-11-02T12:10:43Z</updated>
	<author>
		<name>Tatsuro MATSUOKA-2</name>
	</author>
	<content type="html">Hello
&lt;br&gt;&lt;br&gt;I have just seen the svn trees and found your fix of the jpeg-7.
&lt;br&gt;&lt;br&gt;The patch you did is similar to that I have done for the jpeg-7.
&lt;br&gt;&lt;br&gt;Anyway I am glad to hear you have kicked out the problem.
&lt;br&gt;&lt;br&gt;Regards
&lt;br&gt;&lt;br&gt;Tatsuro
&lt;br&gt;&lt;br&gt;--- Benjamin Lindner &amp;nbsp;wrote:
&lt;br&gt;&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt; Benjamin Lindner wrote:
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; Hello Benjamin
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; I have executed
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; img=imread('test.jpg')
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; on the octave-3.2.3/mingw32.
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; The result is
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; octave:2&amp;gt; img=imread('test.jpg');
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; error: imread: invalid image file: Magick++ exception: Magick: Corrupt
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; image
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; (C:\usr\tatsu\test\testOctave\test.jpg) rep
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; orted by
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; D:/build/octave32/3.2.x_gcc-4.4.0/forge/graphicsmagick/GraphicsMagick-1.3.7/coders/jpeg.c:1124
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; (ReadJPEGImage)
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; error: called from:
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; error: &amp;nbsp;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; C:\Programs\Octave\3.2.3_gcc4.4.0\share\octave\3.2.3\m\image\imread.m at line 74, column 7
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; octave:2&amp;gt; img=imread('test.png');
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; octave:3&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; The above tells that imread for png files is no problem.
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; I have tested on my own build octave-3.2.3 / mingw and octave 3.2.3 on
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; cygwin by Marco.
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; img=imread('test.jpg');
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; can be executed without errors.
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; I attached 'test.jpg' used for test to this post.
&lt;br&gt;&amp;gt; &amp;gt; 
&lt;br&gt;&amp;gt; &amp;gt; I see this too. Also jpgread() from the image toolbox fails.
&lt;br&gt;&amp;gt; &amp;gt; 
&lt;br&gt;&amp;gt; &amp;gt; I suspect that there is a problem with libjpeg v7, because jpegtran.exe fails to read your
&lt;br&gt;&amp;gt; picture when linked with v7, but succeeds when linked with v6b.
&lt;br&gt;&amp;gt; &amp;gt; 
&lt;br&gt;&amp;gt; &amp;gt; I'll try and rebuild graphicsmagick with jpeg v6b and see if this error is gone.
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; It's not, but I traced the error to my buggy patch of jpeg.
&lt;br&gt;&amp;gt; I don't really understand it, because it is actually the same, just 
&lt;br&gt;&amp;gt; expressed differently. whatever. It seems to work now.
&lt;br&gt;&amp;gt; It's fixed in svn.
&lt;br&gt;&amp;gt; I'll see if I can fix up an additional test in __magick_read__.cc for 
&lt;br&gt;&amp;gt; jpg reading (along the already present png one).
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; thanks for reporting it.
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; benjamin
&lt;br&gt;&amp;gt; 
&lt;/div&gt;&lt;br&gt;&lt;br&gt;--------------------------------------
&lt;br&gt;GyaO! - Anime, Dramas, Movies, and Music videos [FREE]
&lt;br&gt;&lt;a href=&quot;http://pr.mail.yahoo.co.jp/gyao/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://pr.mail.yahoo.co.jp/gyao/&lt;/a&gt;&lt;br&gt;&lt;br&gt;------------------------------------------------------------------------------
&lt;br&gt;Come build with us! The BlackBerry(R) Developer Conference in SF, CA
&lt;br&gt;is the only developer event you need to attend this year. Jumpstart your
&lt;br&gt;developing skills, take BlackBerry mobile applications to market and stay 
&lt;br&gt;ahead of the curve. Join us from November 9 - 12, 2009. Register now!
&lt;br&gt;&lt;a href=&quot;http://p.sf.net/sfu/devconference&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://p.sf.net/sfu/devconference&lt;/a&gt;&lt;br&gt;_______________________________________________
&lt;br&gt;Octave-dev mailing list
&lt;br&gt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26169931&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;Octave-dev@...&lt;/a&gt;
&lt;br&gt;&lt;a href=&quot;https://lists.sourceforge.net/lists/listinfo/octave-dev&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://lists.sourceforge.net/lists/listinfo/octave-dev&lt;/a&gt;&lt;br&gt;&lt;p&gt;From forum: &lt;a href=&quot;http://old.nabble.com/octave-dev-f4193.html&quot; embed=&quot;fixTarget[4193]&quot; target=&quot;_top&quot; &gt;octave-dev&lt;/a&gt;&lt;/p&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/cannot-imread-of-jpeg-file-octave-3.2.3-mingw32-tp26147607p26169931.html" />
</entry>

</feed>
