Post Reply 
RCL-57
05-23-2022, 07:39 AM
Post: #29
RE: RCL-57
(05-20-2022 01:06 PM)pauln Wrote:  Interesting. Did you use a different algorithm or did you optimize the implementation?

Both ;-)
- all routines use a single dot product routine at their core. the LU-decomp of the Master Lib uses a very badly written and slow axpy (y:=y+a*x) routine.
- pivotation vector is stored in a single register
- inversion is done solving U*X*L = I (so X= inv(A) ), making max. use of the innermost dot product routine. The Master Lib calculates the inverse as inv(U)*inv(L), in three separate steps, spending quite a bit more time in loop setup and control.
- only 640 steps (I simplified the interface a little bit as well). I do use some HIR registers (2 or 3), and of course the Opcodes to add or subtract 1 from a reg, which are not used in Pgm 02.

(05-21-2022 02:13 PM)pauln Wrote:  Paradoxically, in a real device or emulator it could be a tie between your program and the one in the Master Library.

Indeed the same program will run faster if run from a module than from regular memory. I think it is because module programs are guaranteed, if coded correctly, to never run in an infinite loop, so there is no need to check for user input ("R/S") while they are running.

Seeing that there's a factor 3 difference in LU factorisation, I'm hoping to be left with some speed improvement ;-)
But, on an emulator, I would not have both 100 registers and 960 program steps, I'm afraid, and so I would only be able to test small matrices (up to 5x5 I think), where the speed difference would not be so pronounced. Unless you can 'tweak' it a little.

Cheers, Werner

41CV†,42S,48GX,49G,DM42,DM41X,17BII,15CE,DM15L,12C,16CE
Find all posts by this user
Quote this message in a reply
Post Reply 


Messages In This Thread
RCL-57 - pauln - 05-11-2022, 03:35 AM
RE: RCL-57 - Jlouis - 05-11-2022, 07:54 PM
RE: RCL-57 - pauln - 05-11-2022, 09:22 PM
RE: RCL-57 - rkf - 05-13-2022, 06:41 AM
RE: RCL-57 - pauln - 05-13-2022, 12:58 PM
RE: RCL-57 - pauln - 05-11-2022, 09:49 PM
RE: RCL-57 - Matt Agajanian - 05-12-2022, 04:28 AM
RE: RCL-57 - pauln - 05-12-2022, 04:37 PM
RE: RCL-57 - Matt Agajanian - 05-12-2022, 06:31 PM
RE: RCL-57 - Didier Lachieze - 05-13-2022, 11:11 AM
RE: RCL-57 - pauln - 05-13-2022, 12:49 PM
RE: RCL-57 - Matt Agajanian - 05-13-2022, 05:52 PM
RE: RCL-57 - pauln - 05-15-2022, 08:52 PM
RE: RCL-57 - Nigel (UK) - 05-16-2022, 08:45 AM
RE: RCL-57 - pauln - 05-16-2022, 03:58 PM
RE: RCL-57 - Werner - 05-20-2022, 07:36 AM
RE: RCL-57 - pauln - 05-20-2022, 01:06 PM
RE: RCL-57 - Werner - 05-23-2022 07:39 AM
RE: RCL-57 - pauln - 05-24-2022, 03:06 AM
RE: RCL-57 - pauln - 05-21-2022, 02:13 PM
RE: RCL-57 - Didier Lachieze - 05-21-2022, 03:37 PM
RE: RCL-57 - pauln - 05-24-2022, 02:29 AM
RE: RCL-57 - Matt Agajanian - 05-20-2022, 09:58 PM
RE: RCL-57 - Dave Britten - 05-16-2022, 05:14 PM
RE: RCL-57 - DrewNicholson - 05-18-2022, 04:45 AM
RE: RCL-57 - Ren - 05-20-2022, 12:00 AM
RE: RCL-57 - pauln - 05-20-2022, 12:12 AM
RE: RCL-57 - Ren - 05-20-2022, 05:16 PM
RE: RCL-57 - Gene - 05-21-2022, 03:46 PM
RE: RCL-57 - pauln - 05-21-2022, 03:58 PM
RE: RCL-57 - Gene - 05-21-2022, 04:25 PM
RE: RCL-57 - Gene - 05-24-2022, 11:31 AM
RE: RCL-57 - pauln - 05-24-2022, 03:27 PM
RE: RCL-57 - Matt Agajanian - 05-25-2022, 05:42 PM
RE: RCL-57 - pauln - 06-04-2022, 03:02 AM
RE: RCL-57 - Matt Agajanian - 06-04-2022, 05:48 AM
RE: RCL-57 - pauln - 06-04-2022, 05:56 AM
RE: RCL-57 - Matt Agajanian - 06-04-2022, 10:54 PM
RE: RCL-57 - pauln - 06-12-2022, 06:48 AM
RE: RCL-57 - Thomas Klemm - 06-12-2022, 10:05 AM
RE: RCL-57 - pauln - 06-12-2022, 02:35 PM
RE: RCL-57 - pauln - 07-30-2022, 03:54 PM
RE: RCL-57 - pauln - 07-30-2022, 04:48 PM



User(s) browsing this thread: 2 Guest(s)