Rocksolid Light

Welcome to novaBBS (click a section below)

mail  files  register  newsreader  groups  login

Message-ID:  

The best way to accelerate a Macintoy is at 9.8 meters per second per second.


devel / comp.os.cpm / MATLAB

SubjectAuthor
* MATLABfridtjof.ma...@gmail.com
`* Re: MATLABRock Brentwood
 +- Re: MATLABRock Brentwood
 `- Re: MATLABRock Brentwood

1
MATLAB

<34743cf6-69af-4864-84e0-0face233dea3n@googlegroups.com>

  copy mid

https://www.novabbs.com/devel/article-flat.php?id=3282&group=comp.os.cpm#3282

  copy link   Newsgroups: comp.os.cpm
X-Received: by 2002:a05:6214:27e6:b0:443:f201:a974 with SMTP id jt6-20020a05621427e600b00443f201a974mr21676508qvb.82.1649624641375;
Sun, 10 Apr 2022 14:04:01 -0700 (PDT)
X-Received: by 2002:aca:1308:0:b0:2ec:c488:18e1 with SMTP id
e8-20020aca1308000000b002ecc48818e1mr3780192oii.120.1649624641158; Sun, 10
Apr 2022 14:04:01 -0700 (PDT)
Path: i2pn2.org!i2pn.org!weretis.net!feeder6.news.weretis.net!1.us.feeder.erje.net!feeder.erje.net!border1.nntp.dca1.giganews.com!nntp.giganews.com!news-out.google.com!nntp.google.com!postnews.google.com!google-groups.googlegroups.com!not-for-mail
Newsgroups: comp.os.cpm
Date: Sun, 10 Apr 2022 14:04:00 -0700 (PDT)
Injection-Info: google-groups.googlegroups.com; posting-host=2607:f2c0:9492:e900:9329:70c1:61dc:a0;
posting-account=KOfC_woAAAC0YBGf-3r2aV5g2Aifd9jO
NNTP-Posting-Host: 2607:f2c0:9492:e900:9329:70c1:61dc:a0
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <34743cf6-69af-4864-84e0-0face233dea3n@googlegroups.com>
Subject: MATLAB
From: fridtjof...@gmail.com (fridtjof.ma...@gmail.com)
Injection-Date: Sun, 10 Apr 2022 21:04:01 +0000
Content-Type: text/plain; charset="UTF-8"
Lines: 5
 by: fridtjof.ma...@gmail - Sun, 10 Apr 2022 21:04 UTC

I am attempting putting MATLAB (1982 version) on the Altair-Duino.

Has anyone ever seen a CP/M-80 version of MATLAB?

Thanks
FredW

Re: MATLAB

<22a9bcca-798e-4763-b70d-fecba086ad4cn@googlegroups.com>

  copy mid

https://www.novabbs.com/devel/article-flat.php?id=3471&group=comp.os.cpm#3471

  copy link   Newsgroups: comp.os.cpm
X-Received: by 2002:a05:620a:600a:b0:6a6:c6ac:c5e5 with SMTP id dw10-20020a05620a600a00b006a6c6acc5e5mr20725686qkb.286.1654978127384;
Sat, 11 Jun 2022 13:08:47 -0700 (PDT)
X-Received: by 2002:a05:6870:4348:b0:f1:ec31:10e7 with SMTP id
x8-20020a056870434800b000f1ec3110e7mr3334272oah.156.1654978126978; Sat, 11
Jun 2022 13:08:46 -0700 (PDT)
Path: i2pn2.org!rocksolid2!i2pn.org!usenet.blueworldhosting.com!feed1.usenet.blueworldhosting.com!peer01.iad!feed-me.highwinds-media.com!news.highwinds-media.com!news-out.google.com!nntp.google.com!postnews.google.com!google-groups.googlegroups.com!not-for-mail
Newsgroups: comp.os.cpm
Date: Sat, 11 Jun 2022 13:08:46 -0700 (PDT)
In-Reply-To: <34743cf6-69af-4864-84e0-0face233dea3n@googlegroups.com>
Injection-Info: google-groups.googlegroups.com; posting-host=2603:6000:aa00:747b:0:0:0:193b;
posting-account=1h3-5goAAAAdA6i_RGllc5SiOWXuN9EM
NNTP-Posting-Host: 2603:6000:aa00:747b:0:0:0:193b
References: <34743cf6-69af-4864-84e0-0face233dea3n@googlegroups.com>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <22a9bcca-798e-4763-b70d-fecba086ad4cn@googlegroups.com>
Subject: Re: MATLAB
From: rockbren...@gmail.com (Rock Brentwood)
Injection-Date: Sat, 11 Jun 2022 20:08:47 +0000
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
X-Received-Bytes: 4382
 by: Rock Brentwood - Sat, 11 Jun 2022 20:08 UTC

From fridtjof, Sunday, April 10, 2022:
> I am attempting putting MATLAB (1982 version) on the Altair-Duino.
>
> Has anyone ever seen a CP/M-80 version of MATLAB?
>
> Thanks
> FredW

In addition to the matlab80 project on GitHub for CP/M-80 (you?), matlab is included under /cmd/matlab in at least one distribution of version 10 UNIX that's still out there (on Paul McJones' historical archives page), and the Fortran sources are dated 1983. It has implementation of the system-dependent functions for CDC 6600, IBM CMS, DEC 10 & 20, PRIME 400, IBM TSO, VMS in system-dependent files (the CMS has machine-language code in it, too), as well as a generic UNIX implementation of the functions. It is mostly Fortran. There is a VAX file and a few C files and headers. Most (or, now: all?) the system dependencies pertain to things that are now in the standard libraries for Fortran (or C). It has a script file to turn double precision into single precision, and to turn that 50005 magic number into 5005. The routines FILES, SAVLOD, FORMZ, FLOP, XCHAR, USER, PROMPT, PLOT, EDIT and MAIN are system-dependent; most are now handled by standard library functions; others (like PLOT, PROMPT, USER) now abstract out and generalize to interface-dependent modules (i.e. to different terminal and GUI interfaces).

There are 3 file name changes ({comand,factor,round}m.f versus {comand,factor,round}.f), the CP/M 80 version segregated initializations to init.f and declarations to {common,funcs,matlab}.h, while the UNIX version has the low-level files for {ofault,onbrk,setjmp,sgset} - used in the driver routine, and helper (for the help function). The CP/M 80 version balked on any the driver routine and just runs the MATLAB function. The CP/M 80 version avoids the duplicating of single and double precision, which the UNIX version does, by using conditional definitions in an include file.

They should have waited a few years before doing the translation, and they jumped the gun a bit, since they would have eventually seen that translation to C++ would be better because (1) the large number of reference parameters in the Fortran functions, (2) matrix operations can be more transparently rendered with operator[] and even operator(), (3) equivalences can be better-handled with reference types, (4) the common blocks can be more directly rendered as namespaces, (5) templates to directly translate both single and double precision into a single code base, and (6) the complex arithmetic might be better-handled by the compiler and standard library functions, if the code is put back into complex form ... the same applies to the Fortran version, as well, and even the Fortran source should be lifted back to complex. There's a large amount of code bloating that occurred because of the decimation of complex to component reals (not just variables and parameters, but even whole routines, got real-imaginary part split).

At some point, maybe recently, MathWorks lifted the user interface part of their version of the code to Qt ... which works best with C++.

Re: MATLAB

<52c1c591-c3a1-4647-943b-fdfcd4428d74n@googlegroups.com>

  copy mid

https://www.novabbs.com/devel/article-flat.php?id=3472&group=comp.os.cpm#3472

  copy link   Newsgroups: comp.os.cpm
X-Received: by 2002:a05:622a:1009:b0:304:c115:907e with SMTP id d9-20020a05622a100900b00304c115907emr42178227qte.550.1654992720868;
Sat, 11 Jun 2022 17:12:00 -0700 (PDT)
X-Received: by 2002:aca:5dd7:0:b0:326:b511:b2ea with SMTP id
r206-20020aca5dd7000000b00326b511b2eamr3475660oib.232.1654992720556; Sat, 11
Jun 2022 17:12:00 -0700 (PDT)
Path: i2pn2.org!i2pn.org!usenet.blueworldhosting.com!feed1.usenet.blueworldhosting.com!peer02.iad!feed-me.highwinds-media.com!news.highwinds-media.com!news-out.google.com!nntp.google.com!postnews.google.com!google-groups.googlegroups.com!not-for-mail
Newsgroups: comp.os.cpm
Date: Sat, 11 Jun 2022 17:12:00 -0700 (PDT)
In-Reply-To: <22a9bcca-798e-4763-b70d-fecba086ad4cn@googlegroups.com>
Injection-Info: google-groups.googlegroups.com; posting-host=2603:6000:aa00:747b:0:0:0:193b;
posting-account=1h3-5goAAAAdA6i_RGllc5SiOWXuN9EM
NNTP-Posting-Host: 2603:6000:aa00:747b:0:0:0:193b
References: <34743cf6-69af-4864-84e0-0face233dea3n@googlegroups.com> <22a9bcca-798e-4763-b70d-fecba086ad4cn@googlegroups.com>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <52c1c591-c3a1-4647-943b-fdfcd4428d74n@googlegroups.com>
Subject: Re: MATLAB
From: rockbren...@gmail.com (Rock Brentwood)
Injection-Date: Sun, 12 Jun 2022 00:12:00 +0000
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
X-Received-Bytes: 3300
 by: Rock Brentwood - Sun, 12 Jun 2022 00:12 UTC

On Saturday, June 11, 2022 at 3:08:48 PM UTC-5, Rock Brentwood wrote:
> From fridtjof, Sunday, April 10, 2022:
> > I am attempting putting MATLAB (1982 version) on the Altair-Duino.
> > Has anyone ever seen a CP/M-80 version of MATLAB?
> In addition to the matlab80 project on GitHub for CP/M-80 (you?), matlab is included under /cmd/matlab in at least one distribution of version 10 UNIX that's still out there (on Paul McJones' historical archives page), and the Fortran sources are dated 1983.

Some additional notes: the MATLAB projected started off as a small project by a professor over in New Mexico, Cleve Moler. His name is in several places under the larger functions in the Fortran source. It was actually his students who took it and ran with it. Both he and others involved in the projects are with MathWorks -- even now at the time of writing. This is note from 2018 on the history of MATLAB from Moler, himself:

https://blogs.mathworks.com/cleve/2018/02/05/the-historic-matlab-users-guide/

and it lists 1981 as the beginning.

He's still around - his most recent blog is from yesterday. He worked with EISPACK and LINPACK, which also has close entanglements with LAPACK, though he does not seem to have any connection with that. LAPACK is back in full maintenance on GitHub. MATLAB is essentially a front end for the older Fortran packages (which is also why it has that klunky 1960's look and feel.)

Given what he said in the historical note, if this were to be done today, it would actually be done simply as an extensible C++ source-code library, since part of the aim was to have code-extensibility - so that means you want a source code library. I highly suspect that this may have led another package: ALGLIB. It has routines for matrix operations, FFT, neural net routines, optimization, differentiation, integration and other code, but is compiled in as source code (in any of several languages), not as a library. But it has no run-time front-end.

Re: MATLAB

<9809a60f-b0ca-494d-9328-3a62f07d9c41n@googlegroups.com>

  copy mid

https://www.novabbs.com/devel/article-flat.php?id=3473&group=comp.os.cpm#3473

  copy link   Newsgroups: comp.os.cpm
X-Received: by 2002:a05:620a:4007:b0:6a6:d0ec:94a9 with SMTP id h7-20020a05620a400700b006a6d0ec94a9mr20893216qko.179.1654993439381;
Sat, 11 Jun 2022 17:23:59 -0700 (PDT)
X-Received: by 2002:a05:6870:f599:b0:100:ed2e:bb1d with SMTP id
eh25-20020a056870f59900b00100ed2ebb1dmr3761114oab.205.1654993438985; Sat, 11
Jun 2022 17:23:58 -0700 (PDT)
Path: i2pn2.org!i2pn.org!usenet.blueworldhosting.com!feed1.usenet.blueworldhosting.com!peer02.iad!feed-me.highwinds-media.com!news.highwinds-media.com!news-out.google.com!nntp.google.com!postnews.google.com!google-groups.googlegroups.com!not-for-mail
Newsgroups: comp.os.cpm
Date: Sat, 11 Jun 2022 17:23:58 -0700 (PDT)
In-Reply-To: <22a9bcca-798e-4763-b70d-fecba086ad4cn@googlegroups.com>
Injection-Info: google-groups.googlegroups.com; posting-host=2603:6000:aa00:747b:0:0:0:193b;
posting-account=1h3-5goAAAAdA6i_RGllc5SiOWXuN9EM
NNTP-Posting-Host: 2603:6000:aa00:747b:0:0:0:193b
References: <34743cf6-69af-4864-84e0-0face233dea3n@googlegroups.com> <22a9bcca-798e-4763-b70d-fecba086ad4cn@googlegroups.com>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <9809a60f-b0ca-494d-9328-3a62f07d9c41n@googlegroups.com>
Subject: Re: MATLAB
From: rockbren...@gmail.com (Rock Brentwood)
Injection-Date: Sun, 12 Jun 2022 00:23:59 +0000
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
X-Received-Bytes: 2755
 by: Rock Brentwood - Sun, 12 Jun 2022 00:23 UTC

On Saturday, June 11, 2022 at 3:08:48 PM UTC-5, Rock Brentwood wrote:
> They should have waited a few years before doing the translation, and they jumped the gun a bit, since they would have eventually seen that translation to C++ would be better because
[reasons (1) to (6)]

.... but - as another note - one of the main reasons for translation to C++ instead of to C is that (7) the Fortran source is seriously mucked up with all sorts of calls to a routine "FLOP" threaded everywhere in it; and this reduced the transparency and simplicity of the code to the limit of easy maintainability into virtually becoming legacy-code. By the documentation's own admission FLOP is really just a sloppy FLOP counter - in part because of its haphazard threading throughout the code. What the author is really trying to do is put up a continuous monitor on all the floating point operations.

This is best done, either outside the application, in a current thread, or by appropriating and encapsulating all the floating point routines in a class that does the relevant operator counts. The latter cases makes it possible to do more comprehensive stats, while at the same time removing all the threading from the source - if it's done in C++. I don't know if the Fortran source, itself, can be lifted to a class-based version (what's needed are classes and user-definable arithmetic operators, in Fortran, like C++'s "operator+()"). But, it can't be done in C.

1
server_pubkey.txt

rocksolid light 0.9.8
clearnet tor