MathGroup Archive 1999

[Date Index] [Thread Index] [Author Index]

Search the Archive

Re: Mathlink connection to Spyglass/Fortner Transform

  • To: mathgroup at
  • Subject: [mg20940] Re: Mathlink connection to Spyglass/Fortner Transform
  • From: John Chapman <johncha at>
  • Date: Wed, 1 Dec 1999 01:50:08 -0500 (EST)
  • Organization: Motorola
  • References: <81a0ef$>
  • Sender: owner-wri-mathgroup at

The latest version Transform (v3.4 included with the Noesys 2.0 suite) does
not work with Mathematica 4. I still have a copy of Mathematica 3 installed
for the occasional failure like this. I don't know how to fix this and
haven't contacted Research Systems about it. Research Systems is now
handling support for the Noesys suite.

IDL is able to access HDF files directly. I've just started to use it after
discovering that Mathematica's HDF support is very weak. It is able to plot
large datasets better than Mathematica which is another area where
Mathematica is very weak. I'm too inexperienced with IDL to comment in
detail regarding its merits versus Mathematica or Transform.

John Tanner wrote:
> 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 at
>   mantra - curse Microsoft, curse...   work -  john.tanner at
> I hate this 'orrible computer,  I really ought to sell it:
> It never does what I want,      but only what I tell it.

John Chapman
johncha at

  • Prev by Date: Re: What kind of math problem is this?
  • Next by Date: Re: Q: smooth 3Dplot with big mesh
  • Previous by thread: Re: Re: What kind of math problem is this?
  • Next by thread: Re: Q: smooth 3Dplot with big mesh