Dear Mark, thanks a lot for the advise. Things like 1.0 istead of 1 were just my ignorance of the language.On the other hand I thought that the syntax a[i][j] instead of the more readable a[i,j] was imposed by the language. Cheers Piero
2009/8/27 Mark Smith <li...@futilism.com> > I saw this over on the forum (the diagonalisation takes about twenty > seconds on my MacBookPro with rev enterprise), and two things occur to me. > > 'Arrays' in revolution are actually hash tables, so are very nice for > random access to elements, but will not be as efficient for sequential > access as more traditional, fixed width arrays in other languages. > I suspect that this is the main speed issue with your eigen function. > > Secondly, I understand that all numbers in revolution (which is an un-typed > language) are floats - though there may be conversions to and from integers > going on in the engine. I doubt that this will have any effect on the speed > of your functions, but it's probably unneccessary to write '1.0' or '1.' - > simply '1' will do, I think. > > I think that using the a[i][j] approach instead of a[i,j] might get you > maybe 10% more speed, but then you'd have to convert to a[i,j] anyway in > order to use the built in matrixmultiply and transpose functions (this > should be updated, I'd have thought). > > My maths is nowhere near good enough to suggest mathematical optimisations > (which you might not want for educational purposes, anyway) and I can't see > any obvious optimisations to make in the code you've written. > > Hopefully, someone here will be able to be more helpful, but this may be > one of those things that revolution simply isn't best suited for :( > > Best, > > Mark Smith > > > > On 27 Aug 2009, at 08:16, Piero Ugliengo wrote: > > I am completely new to Revolution. I have downloaded the RevMedia alpha >> version and played a bit with it. I was impressed by how fast I was able >> to >> port a little VB6 code to RevMedia. This code diagonalizes a symmetric >> matrix using the Jacobi algorithm. I checked against the VB6 code and I >> got >> exactly the same results in the same number of iterations so that numerics >> is the same. However the RevMedia code is at least one order of magnitude >> slower than the VB6 one. For instance a 50x50 matrix is diagonalized in a >> couple of seconds in VB6 and it tooks more than a minute on RevMedia. I >> know >> that RevMedia is not meant for numerical intensive calculations; however, >> I >> would like to use it in a scientific teaching context so some power is >> needed. I wonder if anybody much expert than me can try the code using the >> most powerful Revolution Studio and if there is a clever way to deal with >> matrix algebra. >> The link to download the rev script is here: >> http://sites.google.com/site/pierougliengo/download-1/test.rev >> ?attredirects=0 >> >> <http://sites.google.com/site/pierougliengo/download-1/test.rev >> ?attredirects=0>One >> can set the size of the matrix in the onmouse routine. >> Thanks a lot >> _________________ >> Piero Ugliengo >> >> -- >> Prof. Piero Ugliengo >> University of Torino >> Dip. Chimica IFM, Via P. Giuria, 7 I-10125 Torino >> ITALY >> Phone: +39-011-670.4596 >> FAX: +39-011-236.4596 >> E-mail: piero.uglie...@unito.it >> Home page: >> http://web086.unito.it/cgi-bin/chimifm/persone.pl/Show >> ?_id=ugliengo&sort=DEFAULT&search=&hits=70 >> MOLDRAW: http://www.moldraw.unito.it >> _______________________________________________ >> use-revolution mailing list >> use-revolution@lists.runrev.com >> Please visit this url to subscribe, unsubscribe and manage your >> subscription preferences: >> http://lists.runrev.com/mailman/listinfo/use-revolution >> > > _______________________________________________ > use-revolution mailing list > use-revolution@lists.runrev.com > Please visit this url to subscribe, unsubscribe and manage your > subscription preferences: > http://lists.runrev.com/mailman/listinfo/use-revolution > -- Prof. Piero Ugliengo University of Torino Dip. Chimica IFM, Via P. Giuria, 7 I-10125 Torino ITALY Phone: +39-011-670.4596 FAX: +39-011-236.4596 E-mail: piero.uglie...@unito.it Home page: http://web086.unito.it/cgi-bin/chimifm/persone.pl/Show?_id=ugliengo&sort=DEFAULT&search=&hits=70 MOLDRAW: http://www.moldraw.unito.it _______________________________________________ use-revolution mailing list use-revolution@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-revolution