This release update some bugs and how the converted code appears. Notable, no variable sizes have to be passed to the computational subroutine. Instead this is taken care of with assumed size arrays.
Release 1.1 is a maintenance release with some bug fixes. It is also to let you know that I have not forgotten matlab2fmex.
With TMW recent 6.5 release, matlab2fmex now has some competition for speed. My experience is that R13 does optimize some loops effectively, sometimes for order(s) of magnitude performance gains. While this is great news, matlab2fmex still usually beats native *.m code by a factor of at least 2-3, and much of the time by more than that.
This v1.00 release involved a major rewrite. For example, 1XN and MX1 matrices are now accounted for implicitly in many routines. Many more fortran intrinsics are called instead of slower routines. ... read more
The major news of this release is the support for most (all) of the various subscripting methods in matlab2fmex. Logical indexing is now supported as well as indexing a 2 dimensional variable with 1 subscript, etc. The trig functions were also redone as well as some other items. Feedback is always welcome.
Release 0.8 is a major advance for matlab2fmex. With the redisigned data passing methods, matlab2fmex should work with a much broader range of compilers.
The hints file now has a section for configuring your mexopts.sh file for three different systems: Linux - Intel fortran, Linux Nag fortran, and Tru64 Unix - Compaq fortran. This should allow easier configuration of matlab2fmex.
This release includes fairly significant streamlining of the resultant fmex code hopefully making the code easier to look at and a little faster. A couple of other minor bugs have been fixed as well.
I am planning a new release (.7). One major improvement has been the more intuitive variable sizing. Now, outputs and local variables' dimensions will be sized as any dimension of any input variable they match.
The other thing I want to do is to remove the requirement to split the real and imaginary parts of the input arguments after compiling. Having to do this has become so annoying. If anyone knows a better way to do this, please write me.... read more
There have been a few notable changes since 0.6. One being that matlab2fmex has been splintered into many *.m files instead of 1 massive one. A program to help save the workspace is included as matlab2fmex_save (see README). Some other bugs were fixed (such as a bad variable typeing problem). Another wish has been added to the wishlist as well ;)
As usual, send any feedback you have.
Release 0.6 adds some functionality (see changelog) inluding some new translated functions. The calling procedure is simpler as the default fields no longer have to be explicitly included. The size of the output variables is also searched for if not explicitly specified (although an error will occur if no input variable size matches the output variable's size). A few more hints were added as well as a large new example, vsph_pro, is available by running TESTING.m. ... read more
matlab2fmex v0.51 fixes many bugs and adds a suite of test functions. The test functions have been borrowed from a project at the UoIllinois with similar goals. These are included in the directory testsuite_m2f of the examples distribution. These tests can be run via the script TESTING_m2f.m. As usual, please report any bugs or feature requests through the sourceforge website.
I am currently working on a bug fix release 0.51. This fixes some problems with multiplying, adds a few functions, etc. I am also working on converting the same benchmarks used in the falcon project at UoIllinois to matlab2fmex. Most work with minimal modification. I will then post the results with the next release (perhaps not 0.51, though).
Some of you may be getting type mismatch errors when matlab2fmex tries to compile matlabcallback.f. This is normal. Using this feature is the only way I found to get the real data out of a pointer pointing to something like mxGetPr. The expectation is that the compiled mex file will still work properly.
Turning off mismatch error messages by a compiler option switch in your mexopts.sh seems to be the easiest way to avoid these messages.
Some people have reported an unknown function n2s when trying to compile. This is my oversight. n2s is a (shorter) exact replacement for num2str. Simply replace any instances of n2s with num2str to resolve.