<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-1121014144859230685</id><updated>2011-07-07T13:10:22.409-07:00</updated><category term='BLAS'/><category term='bugfix'/><category term='announcement'/><category term='cmake'/><category term='llvm'/><category term='graphics'/><category term='status'/><category term='3.6'/><category term='4.0'/><category term='c++'/><category term='TODO'/><category term='jit'/><category term='lessons learned'/><title type='text'>FreeMat Blog</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://freemat-blog.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1121014144859230685/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://freemat-blog.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Demetrios</name><uri>http://www.blogger.com/profile/06305976623803819238</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>9</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-1121014144859230685.post-7376037789279141207</id><published>2009-10-14T00:10:00.000-07:00</published><updated>2009-10-24T16:30:07.992-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='announcement'/><category scheme='http://www.blogger.com/atom/ns#' term='4.0'/><title type='text'>FreeMat 4.0 Release</title><content type='html'>&lt;p&gt;We are pleased to announce the release of &lt;strong&gt;FreeMat 4.0&lt;/strong&gt; . This version brings major feature improvements and also changes to the internals of FreeMat. Here is a  list of changes:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Improved Editor with integrated debugger&lt;/li&gt;&lt;li&gt;Improved Main Application UI with dockable workspace browser and command history: &lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_4svD8y0r9TI/StV_IttS5zI/AAAAAAAAAAw/s1txxhB8YJU/s1600-h/FreeMat4_UI.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 290px;" src="http://4.bp.blogspot.com/_4svD8y0r9TI/StV_IttS5zI/AAAAAAAAAAw/s1txxhB8YJU/s400/FreeMat4_UI.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5392355916531296050" /&gt;&lt;/a&gt;&lt;/li&gt;&lt;li&gt;Just In Time compiler (enabled by default)&lt;/li&gt;&lt;li&gt;Greatly improved compatibility with Matlab (over 366 compatibility tests pass)&lt;/li&gt;&lt;li&gt;Dynamic linking with BLAS (users can use custom optimized BLAS libraries)&lt;/li&gt;&lt;li&gt;Vectorized fprintf, sprintf, fscanf, sscanf functions&lt;/li&gt;&lt;li&gt;Added patch handle graphics object&lt;/li&gt;&lt;li&gt;Much faster figure drawing&lt;/li&gt;&lt;li&gt;Ability to handle huge arrays (more than 2GB) when compiled under 64 bit OS&lt;/li&gt;&lt;li&gt;Code profiler&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;Internal changes:&lt;br /&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;New array class implementation&lt;/li&gt;&lt;li&gt;Compatible type handling&lt;/li&gt;&lt;li&gt;JIT compiler. See an &lt;a href="http://freemat-blog.blogspot.com/2008/02/why-jit-how-to-jit.html"&gt;older post&lt;/a&gt; for details.&lt;/li&gt;&lt;li&gt;CMake build system&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;You can download the new 4.0 release as usual from our &lt;a href="http://sourceforge.net/projects/freemat/files/"&gt;Sourceforge.net Download&lt;/a&gt; page.&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1121014144859230685-7376037789279141207?l=freemat-blog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1121014144859230685/posts/default/7376037789279141207'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1121014144859230685/posts/default/7376037789279141207'/><link rel='alternate' type='text/html' href='http://freemat-blog.blogspot.com/2009/10/freemat-40-release.html' title='FreeMat 4.0 Release'/><author><name>Demetrios</name><uri>http://www.blogger.com/profile/06305976623803819238</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_4svD8y0r9TI/StV_IttS5zI/AAAAAAAAAAw/s1txxhB8YJU/s72-c/FreeMat4_UI.png' height='72' width='72'/></entry><entry><id>tag:blogger.com,1999:blog-1121014144859230685.post-245870300875944934</id><published>2008-08-21T00:01:00.000-07:00</published><updated>2008-08-21T00:07:42.112-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='c++'/><category scheme='http://www.blogger.com/atom/ns#' term='lessons learned'/><title type='text'>Lessons Learned part 1.</title><content type='html'>I thought I would share some lessons learned while coding freemat. The first lesson is due to Samit.&lt;br /&gt;&lt;pre wrap=""&gt;#include &lt;iostream&gt;&lt;br /&gt;&lt;br /&gt;class A {&lt;br /&gt; int m_data;&lt;br /&gt;public:&lt;br /&gt; A(int m) : m_data(m) {std::cout &lt;&lt; "Construct A: " &lt;&lt; m_data &lt;&lt; "\n";}&lt;br /&gt; const int &amp;amp; value() const { return m_data;}&lt;br /&gt; const A doubled() const {return A(2*m_data);}&lt;br /&gt; ~A() {std::cout &lt;&lt; "Destruct A: " &lt;&lt; m_data &lt;&lt; "\n";}&lt;br /&gt;};&lt;br /&gt;&lt;br /&gt;int main() {&lt;br /&gt; A x(5);&lt;br /&gt; const int &amp;amp;y(x.doubled().doubled().value());&lt;br /&gt; std::cout &lt;&lt; "y = " &lt;&lt; y &lt;&lt; "\n";&lt;br /&gt; return 0;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;The result:&lt;br /&gt;&lt;br /&gt;$ ./temp&lt;br /&gt;Construct A: 5&lt;br /&gt;Construct A: 10&lt;br /&gt;Construct A: 20&lt;br /&gt;Destruct A: 20&lt;br /&gt;Destruct A: 10&lt;br /&gt;y = 20&lt;br /&gt;Destruct A: 5&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(204, 0, 0);"&gt;Note that the temporary object "A" is destructed &lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(204, 0, 0);" class="moz-txt-underscore"&gt;&lt;span class="moz-txt-tag"&gt;_&lt;/span&gt;before&lt;span class="moz-txt-tag"&gt;_&lt;/span&gt;&lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(204, 0, 0);"&gt; the const&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(204, 0, 0);"&gt;ref to it's internals is used. So...&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;int main() {&lt;br /&gt; A x(5);&lt;br /&gt; const A &amp;amp;t(x.doubled().doubled());&lt;br /&gt; const int &amp;amp;y(t.value());&lt;br /&gt; std::cout &lt;&lt; "y = " &lt;&lt; y &lt;&lt; "\n";&lt;br /&gt; return 0;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;yields:&lt;br /&gt;&lt;br /&gt;$ g++ -o temp temp.cpp&lt;br /&gt;$ ./temp&lt;br /&gt;Construct A: 5&lt;br /&gt;Construct A: 10&lt;br /&gt;Construct A: 20&lt;br /&gt;Destruct A: 10&lt;br /&gt;y = 20&lt;br /&gt;Destruct A: 20&lt;br /&gt;Destruct A: 5&lt;br /&gt;&lt;br /&gt;Yikes.&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1121014144859230685-245870300875944934?l=freemat-blog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://freemat-blog.blogspot.com/feeds/245870300875944934/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1121014144859230685&amp;postID=245870300875944934' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1121014144859230685/posts/default/245870300875944934'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1121014144859230685/posts/default/245870300875944934'/><link rel='alternate' type='text/html' href='http://freemat-blog.blogspot.com/2008/08/lessons-learned-part-1.html' title='Lessons Learned part 1.'/><author><name>Eugene</name><uri>http://www.blogger.com/profile/11701476239862715231</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1121014144859230685.post-8026404608502485574</id><published>2008-08-09T14:15:00.000-07:00</published><updated>2008-08-09T14:19:47.984-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='TODO'/><title type='text'>Progress update</title><content type='html'>Eugene's list:&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;(Done) &lt;/span&gt;1. Finish "patch" command implementation.&lt;br /&gt;&lt;span style="color: rgb(255, 102, 102);"&gt;(Done)&lt;/span&gt; 2. Implement "hist".&lt;br /&gt;3. Try porting statistics and imaging toolbox from octave-forge (by request).&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;(Half-way done) &lt;/span&gt;4. Re-enable OpenGL rendering. Add command to switch between Qt and OpenGL rendering. Debug an issue that was reported earlier - slowdown with OpenGL rendering.&lt;br /&gt;5. Look at upgrading to LLVM 2.3 (or 2.4 if it is released by then.)&lt;br /&gt;&lt;br /&gt;Samit is also making good progress on the new array class, and new type system implementation. He says that many of the unit test pass.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1121014144859230685-8026404608502485574?l=freemat-blog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://freemat-blog.blogspot.com/feeds/8026404608502485574/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1121014144859230685&amp;postID=8026404608502485574' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1121014144859230685/posts/default/8026404608502485574'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1121014144859230685/posts/default/8026404608502485574'/><link rel='alternate' type='text/html' href='http://freemat-blog.blogspot.com/2008/08/progress-update.html' title='Progress update'/><author><name>Eugene</name><uri>http://www.blogger.com/profile/11701476239862715231</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1121014144859230685.post-379804379426358928</id><published>2008-07-20T16:21:00.000-07:00</published><updated>2008-07-20T16:28:17.107-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='TODO'/><category scheme='http://www.blogger.com/atom/ns#' term='graphics'/><category scheme='http://www.blogger.com/atom/ns#' term='llvm'/><title type='text'>TODO:</title><content type='html'>I thought I should publish our current ToDo list:&lt;br /&gt;&lt;br /&gt;Samit is finishing new array class migration. He says he should be done in a month or so.&lt;br /&gt;&lt;br /&gt;Eugene's list:&lt;br /&gt;1. Finish "patch" command implementation.&lt;br /&gt;2. Implement "hist".&lt;br /&gt;3. Try porting statistics and imaging toolbox from octave-forge (by request).&lt;br /&gt;4. Re-enable OpenGL rendering. Add command to switch between Qt and OpenGL rendering. Debug an issue that was reported earlier - slowdown with OpenGL rendering.&lt;br /&gt;5. Look at upgrading to LLVM 2.3 (or 2.4 if it is released by then.)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1121014144859230685-379804379426358928?l=freemat-blog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://freemat-blog.blogspot.com/feeds/379804379426358928/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1121014144859230685&amp;postID=379804379426358928' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1121014144859230685/posts/default/379804379426358928'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1121014144859230685/posts/default/379804379426358928'/><link rel='alternate' type='text/html' href='http://freemat-blog.blogspot.com/2008/07/todo.html' title='TODO:'/><author><name>Eugene</name><uri>http://www.blogger.com/profile/11701476239862715231</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1121014144859230685.post-4618927882558709228</id><published>2008-04-14T14:25:00.000-07:00</published><updated>2008-04-14T15:09:09.211-07:00</updated><title type='text'>Rant</title><content type='html'>Sometimes, Matlab language drives me nuts. It appears that software engineers just went for the most illogical and incorrect design decisions. Here's an example:&lt;br /&gt;&lt;br /&gt;int16(100000000) returns 32767 (So, in Matlab integers are not a group. Why not go for modular arithmetic?)&lt;br /&gt;&lt;br /&gt;int16(1)+0.4 returns an answer of class int16 (So, Matlab demotes(!) types in arithmetic expressions.)&lt;br /&gt;&lt;br /&gt;(int16(1)+0.4)+0.4 returns 1, but&lt;br /&gt;int16(1)+(0.4+0.4) returns 2 (So, in Matlab addition is not associative!)&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Why? Oh, Why?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1121014144859230685-4618927882558709228?l=freemat-blog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://freemat-blog.blogspot.com/feeds/4618927882558709228/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1121014144859230685&amp;postID=4618927882558709228' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1121014144859230685/posts/default/4618927882558709228'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1121014144859230685/posts/default/4618927882558709228'/><link rel='alternate' type='text/html' href='http://freemat-blog.blogspot.com/2008/04/rant.html' title='Rant'/><author><name>Eugene</name><uri>http://www.blogger.com/profile/11701476239862715231</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1121014144859230685.post-157529664566744577</id><published>2008-04-03T20:50:00.000-07:00</published><updated>2009-12-12T01:45:34.239-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='status'/><title type='text'>What we are working on...</title><content type='html'>I thought I would post an update:&lt;br /&gt;&lt;br /&gt;Samit is finishing up new array class. The new arrays will simplify writing matlab functions and improve performance.&lt;br /&gt;&lt;br /&gt;I've been trying to fix a very annoying bug - zooming on a image has unpredictable results. In the process I'm cleaning up some handle graphics code. I think I'm going to cleanup more code in libgraphics.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1121014144859230685-157529664566744577?l=freemat-blog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://freemat-blog.blogspot.com/feeds/157529664566744577/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1121014144859230685&amp;postID=157529664566744577' title='7 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1121014144859230685/posts/default/157529664566744577'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1121014144859230685/posts/default/157529664566744577'/><link rel='alternate' type='text/html' href='http://freemat-blog.blogspot.com/2008/04/what-are-we-working-on.html' title='What we are working on...'/><author><name>Eugene</name><uri>http://www.blogger.com/profile/11701476239862715231</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>7</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1121014144859230685.post-7887793960226029505</id><published>2008-02-29T14:03:00.000-08:00</published><updated>2008-04-03T21:01:48.014-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='llvm'/><category scheme='http://www.blogger.com/atom/ns#' term='jit'/><title type='text'>Why JIT? How to JIT?</title><content type='html'>I started using Matlab circa version 4 and I still cringe every time I have to write a loop in Matlab. The main reason is that I got conditioned (like the generations of matlab users) that loops are really slow because they have to be interpreted. Matrix or index operations on the other hand turn into internal function calls and are fast. The old view - almost always using clever indexing one can avoid loops. However, this is 21st century and we have better ways...&lt;br /&gt;&lt;br /&gt;The goal for using JIT (just-in-time compilation) is to speed up interpreted code by compiling it in run time. This is very tricky for dynamic languages such as Matlab (also Python, Perl, etc. ). The main reason is that the variable types are determined at runtime. For example:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;for j=1:10&lt;br /&gt;  if j &gt; 5&lt;br /&gt;      a = int8(j);&lt;br /&gt;  else&lt;br /&gt;      a = float(j);&lt;br /&gt;  end&lt;br /&gt;end&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;What's the type of a? Compiler has to know the variable size and type to emit correct code. One can imagine using an object to represent variables (the object would carry a type and pointer to memory where data is stored) and assignement operator which would assign both value and type. However, such implementation results in code that is not much faster than interpreted code.&lt;br /&gt;&lt;br /&gt;However, code like the snippet above is rare. In most cases variables have well defined type at runtime. For such a code we can generate very fast machine code.&lt;br /&gt;&lt;br /&gt;Here's the current approach that FreeMat takes is:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Compile code that would most benefit from speedup (loops, functions)&lt;/li&gt;&lt;li&gt;If code cannot be compiled fall back to using the interpreter (slow, but at least you always get an answer).&lt;/li&gt;&lt;li&gt;Check for variable type changes between running JIT compiled code.&lt;/li&gt;&lt;li&gt;JIT compiled code works on the same data structures as the interpreter.&lt;/li&gt;&lt;/ul&gt;Samit and I looked at three jit compilers: Java JIT, Mono JIT, and &lt;a href="http://www.llvm.org/"&gt;LLVM&lt;/a&gt;. Java JIT seemed better suited for Java language. Mono JIT isn't mature.&lt;br /&gt;&lt;br /&gt;LLVM was our choice. It is not perfect - the library is really huge and quite hard to compile and use. However, you can generate and optimize code on the fly and get near optimal performance (the only thing you can't do with JIT code is interprocedural optimizations).&lt;br /&gt;&lt;br /&gt;We plan to have functional JIT compiler in Freemat 4.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1121014144859230685-7887793960226029505?l=freemat-blog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://freemat-blog.blogspot.com/feeds/7887793960226029505/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1121014144859230685&amp;postID=7887793960226029505' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1121014144859230685/posts/default/7887793960226029505'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1121014144859230685/posts/default/7887793960226029505'/><link rel='alternate' type='text/html' href='http://freemat-blog.blogspot.com/2008/02/why-jit-how-to-jit.html' title='Why JIT? How to JIT?'/><author><name>Eugene</name><uri>http://www.blogger.com/profile/11701476239862715231</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1121014144859230685.post-4812850974242405211</id><published>2008-02-26T22:49:00.000-08:00</published><updated>2008-02-26T23:09:49.972-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='cmake'/><category scheme='http://www.blogger.com/atom/ns#' term='jit'/><category scheme='http://www.blogger.com/atom/ns#' term='BLAS'/><title type='text'>What's coming in version 4.</title><content type='html'>&lt;span style="font-size:100%;"&gt;I just wanted to update on the current Freemat developments. We are planning some major changes for version 4:&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;ul&gt;&lt;li&gt;Just-In-Time compiler.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Type system compatible with Matlab.&lt;/li&gt;&lt;li&gt;New build system using cmake (native build using Visual Studio Express under Windows).&lt;/li&gt;&lt;li&gt;Dynamic linking with BLAS libraries.&lt;/li&gt;&lt;/ul&gt;The development is happening in two branches FreeMat4 and array_rework. Check it out!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1121014144859230685-4812850974242405211?l=freemat-blog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://freemat-blog.blogspot.com/feeds/4812850974242405211/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1121014144859230685&amp;postID=4812850974242405211' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1121014144859230685/posts/default/4812850974242405211'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1121014144859230685/posts/default/4812850974242405211'/><link rel='alternate' type='text/html' href='http://freemat-blog.blogspot.com/2008/02/whats-coming-in-version-4.html' title='What&apos;s coming in version 4.'/><author><name>Eugene</name><uri>http://www.blogger.com/profile/11701476239862715231</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1121014144859230685.post-2610136575802490110</id><published>2008-02-25T14:19:00.000-08:00</published><updated>2008-02-26T23:10:32.615-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='3.6'/><category scheme='http://www.blogger.com/atom/ns#' term='bugfix'/><title type='text'>Freemat 3.6 on the horizon</title><content type='html'>Freemat team is working on the 3.6 release. This is planned as a bugfix release. Well, a few compatibility changes will thrown in too.&lt;br /&gt;&lt;br /&gt;The release is planned for early March. Stay tuned....&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1121014144859230685-2610136575802490110?l=freemat-blog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://freemat-blog.blogspot.com/feeds/2610136575802490110/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1121014144859230685&amp;postID=2610136575802490110' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1121014144859230685/posts/default/2610136575802490110'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1121014144859230685/posts/default/2610136575802490110'/><link rel='alternate' type='text/html' href='http://freemat-blog.blogspot.com/2008/02/freemat-36-on-horizon.html' title='Freemat 3.6 on the horizon'/><author><name>Eugene</name><uri>http://www.blogger.com/profile/11701476239862715231</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry></feed>
