First, thanks John, Joe & Valentín for your inputs - cheating perhaps, but definitely worth it ;-) Obviously there's no color in comparing a PC emulator speed with a real machine - but I agree the emulators that mimic the real speed fall short of delivering what they should...

Now let's come back to the snail-world for a while, should we.

(05-11-2018 08:41 PM)Gene Wrote: [ -> ]Gene: My mind went to the Y-registers applications rom right away (rom ID 21). The PPC matrix functions and the JMB are in there in FOCAL. Will love to see what the YRRM program does at 50X on this. MUCH slower than Valentin's solution though. :-)

And your mind is going to the right place - I guessed you'd make the connection, eagle-eyed as you are ;-)

Here's the detailed description of the solution.

1. We need the CL-Expanded Memory and the Y-REGS Apps ROMS plugged in the CL. Their mnemonics are

XPMM and

YRGA, just use the function PLUG to configure the MMU. Each of these two is a 4k ROM, thus two pages will be used.

2. Unless you feel like entering the 900 elements by hand (ouch!), we also need a short data entry routine to build the test matrix. The code snippets below take care of it, and I've also thrown in another short one to create an identity matrix (the opposite to our test case, i.e. an Anti-AntiIdentity ;=O

The two routines we'll use are

YONE - to create a matrix with all ones, and

YZDG, to Zero the diagonal elements of a matrix. They can be chained so just press R/S after YONE to complete the task - or use them individually if you prefer).

3. With the routines loaded in RAM we can execute the order:

Remembering that the matrix control words are of the form

bbb.eeerr, we type:

1.90030, XEQ "YONE", R/S, CF 00, 30, XROM "YDET" => -28.999999977

That's all there's to it - at least the command line here is comparable in size with those in the ultra-powerful universes shown by Valentín, John and Joe,

I'd love to hear other options you have in mind - specially faster ones - perhaps using other DETerminant programs as I hinted at in a previous post.

Code:

`1 LBL "YONE"`

2 ENTER^

3 FIX 3

4 RND

5 E

6 XEQ 00

7 RTN

8 RCL Z

9 LBL "YZDG"

10 E-5

11 +

12 0

13 LBL 00

14 YSTO IND Y(3)

15 ISG Y(3)

16 GTO 00

17 END

Code:

`1 LBL "YIDN"`

2 ENTER^

3 FIX 3

4 RND

5 CLYRGX

6 X<>Y

7 E-5

8 +

9 E

10 LBL 02

11 YSTO IND Y(3)

12 ISG Y(3)

13 GTO 02

Best,

ÁM