Drexel dragonThe Math ForumDonate to the Math Forum



Search All of the Math Forum:

Views expressed in these public forums are not endorsed by Drexel University or The Math Forum.


Math Forum » Discussions » Software » comp.soft-sys.math.mathematica

Topic: Mathlink connection to Spyglass/Fortner Transform
Replies: 1   Last Post: Dec 12, 1999 10:29 PM

Advanced Search

Back to Topic List Back to Topic List Jump to Tree View Jump to Tree View   Messages: [ Previous | Next ]
John Tanner

Posts: 10
Registered: 12/7/04
Mathlink connection to Spyglass/Fortner Transform
Posted: Nov 21, 1999 6:49 PM
  Click to see the message monospaced in plain text Plain Text   Click to reply to this topic Reply

I have an old copy of Spyglass Transform (version 3.0 for NT, 1994).
This product is now available only as part of Fortner Noesys (see
[mg18812]), and my copy is so old that Fortner Software (the successor
to Spyglass) will not support it or provide assistance with technical
queries. Transform is an image / matrix data processing package with
an impressive turn of speed, excellent interactive facilities, a good
easy-to-use macro language and a direct Mathlink connection to
Mathematica. The Mathlink connection for passing data for image
processing worked well with Mathematica 2.2.3 and Mathematica 3.0 under NT4.0 with my
version of Transform, despite this obviously having been developed under
the very first NT version of the Mathlink Developers Kit (there are some
warnings in the documentation....).

Unfortunately when using Mathematica 4.0 a large number of the commands supplied
(including "TransformPutArray" and "TransformGetArray") fail, killing
the link, with a message box (from Transform) saying
"Mathlink Error: 3 -- MLGet out of sequence.
Closing connection".
This seems to be caused by Transform not being able to perform
operations correctly as requested, and it is not obvious how to work
around this. Changing the "ml32i1.dll" file used by Transform between
v3 and v4 versions in the .INI file has no effect (and the v4 version
works quite happily when used with Mathematica 3.0). Changing link protocol has
no effect.

Transfer of data is still possible using files etc. but the lack of a
Mathlink connection is a bit unfortunate - that was why I bought
Transform in the first place.


Can the group recommend a way forward?

1) is there a way of modifying the Mathlink commands in Mathematica to
get round this problem when using the old Transform software - e.g. what
is MessagePacket doing here?

2) does the version of Transform now supplied with Noesys (Adept
Scientific has Noesys version 1.3 for the UK, Fortner sells version 2.0
in the US only) have this problem with Mathematica4.0?

3) is there any other matrix & image processing software which performs
similar tasks, preferably with Mathlink connection, for *large* matrix
data sets? Mathematica itself is still too slow & unreliable for large
image, contour plots etc. despite its ever increasing ability to
generate the data for them.
[mg16786] suggests OMATRIX, and I am now struggling with the demo
version [I haven't yet found how to make image plots, or do 2-way named
data transfers] - are there any alternatives?


----------------------------------------------------------------------

Appendix: sequence of commands which all work on Mathematica3.0,
but most fail on Mathematica4.0.

Functions are extracted/modified from "trnsfrm3.m" for clarity

In[1]:=
(TransformLinkName = LinkConnect[ "3000", LinkMode->Listen];
LinkRead[TransformLinkName])

In[2]:=
(* manually perform the connection from Transform *)


In[3]:=
m83file = FileNames["m83.hdf", "d:\\appsnt", 10][[1]];

In[4]:=
(LinkWrite[ TransformLinkName,
MessagePacket["call open( \"" <> m83file <> "\" )"]];
LinkRead[TransformLinkName])

(* this fails for Mathematica4.0 : instead, manually open the file *)


In[5]:=
(LinkWrite[TransformLinkName, MessagePacket["$putlink Radio_Map"]];
m83data = LinkRead[TransformLinkName];
LinkRead[TransformLinkName])

(* from function TransformGetArray : this fails for Mathematica4.0 *)

In[6]:=
(LinkWrite[TransformLinkName, MessagePacket["call
contour(\"Radio_Map\")"]];
LinkRead[TransformLinkName])

(* this works correctly for Mathematica4.0 (!!!) *)

In[7]:=
(testdata = Table[i*j, {i, 1, 5}, {j, 1, 5}];
LinkWrite[ TransformLinkName,
MessagePacket["$getlink test1"]];
LinkWrite[ TransformLinkName, N[testdata] ];
LinkRead[TransformLinkName])

(* from function TransformPutArray : this fails for Mathematica4.0 *)

In[8]:=
LinkClose[TransformLinkName]
--
from - John Tanner home - john@janacek.demon.co.uk
mantra - curse Microsoft, curse... work - john.tanner@gecm.com
I hate this 'orrible computer, I really ought to sell it:
It never does what I want, but only what I tell it.






Point your RSS reader here for a feed of the latest messages in this topic.

[Privacy Policy] [Terms of Use]

© Drexel University 1994-2014. All Rights Reserved.
The Math Forum is a research and educational enterprise of the Drexel University School of Education.