71 & 75 Math ROMs, Series 80 Matrix ROM
05-21-2018, 04:08 PM
Post: #1
 J-F Garnier Senior Member Posts: 456 Joined: Dec 2013
71 & 75 Math ROMs, Series 80 Matrix ROM
This is a continuation of a previous discussion started in another thread.

(05-20-2018 11:01 PM)Valentin Albillo Wrote:  I'd love to have a look at [the HP-75 Math ROM] Owner's Handbook to ascertain what it does and what it doesn't do.
The handbook and QRG are available on the HP75 group (access to files for registered users only), together with the HP75 Math ROM source file!

Quote:For what it does, matrices, I wonder if the HP-75 16 Kb ROM had even a fraction of its functionality. I don't remember that it did, and that's why I'd love to see its manual. The HP-71B Math ROM is also quite inferior in that regard, having much less functionality in its matrix capabilities as compared to the HP80 series ROM.
I didn't remember that the Series 80 Matrix ROM had such more functionalities. Maybe it's time for me to re-start my old HP85...

Quote:Matter of fact, the [HP-75] complex number support isn't integrated at all. The HP-75 mainframe has no provision whatsoever for complex number support (unlike the HP-71B, which does) and so there's no way to integrate it, nicely or not. I did try those capabilities at the time and found them severely lacking and awkward to use.
Sure. Complex numbers are managed as 2-element arrays and, for instance, to add two complex numbers you must do something like:
But at least it exists, if you need complex numbers, you don't have to write your own routines as you have to in the Series 80.

Quote:I seriously doubt it because the HP-71B's is a 32Kb ROM and the HP-75C's is a 16 Kb one. I don't think that Capricorn assembly language is 2 times more space-efficient than Saturn assembly language so I don't think that it could fit in 16 Kb what it takes 32 Kb in the HP-71B.
This is surprising for me too. Even if the 71 Math LEX is only 27 kB long (the rest of the ROM is filled with 0), it makes a big difference of code size.
I intent to compare the features of the 71 and 75 Math ROM more in details. But it will be the subject of another thread.

Quote:Back at the time I had an HP-87XM fitted with the Assembler ROM (among many others) ad 192 Kb RAM and I did tons of Capricorn assembly language BIN files, including a very large one implementing all kinds of matrix functionality (even SORTing), printing utilities to speed raster graphics, CRT manipulation, the works, and I don't think the instruction set was 200% more efficient space-wise.
If you still have some material of that time, we at the HP Series 80 group would love to see it, and preserve it if you permit.

J-F
05-21-2018, 11:00 PM
Post: #2
 Valentin Albillo Senior Member Posts: 612 Joined: Feb 2015
RE: 71 & 75 Math ROMs, Series 80 Matrix ROM
.
Hi, J-F:

Thanks a lot for creating this thread (and giving it a more correct Subject than the one I suggested). Let's see:

(05-21-2018 04:08 PM)J-F Garnier Wrote:  The handbook and QRG are available on the HP75 group (access to files for registered users only), together with the HP75 Math ROM source file!

Very tempting but I'm not registering just to download a file or two, since right now I'm not interested in taking part in a Series 80 group, too many more urgent things to do and too little free time. A pity that the group includes the HP-75C/D but not the HP-71B which is a far superior machine in many respects. Thanks anyway.

Quote:I didn't remember that the Series 80 Matrix ROM had such more functionalities. Maybe it's time for me to re-start my old HP85...

Not being able to have a look at the Owner's Handbook for the 75C Math ROM I can't compare its matrix functionalities to the ones of the HP85 Matrix ROM but I do own the physical OH of this one, used the Matrix ROM extensively at the time, and frankly the HP71B Math ROM matrix functionalities are very severely lacking in comparison.

Quote:Sure. Complex numbers are managed as 2-element arrays and, for instance, to add two complex numbers you must do something like:
But at least it exists, if you need complex numbers, you don't have to write your own routines as you have to in the Series 80.

Yes, I knew that they're handled using a 2x2 matrix convention but I would'nt call that "nicely integrated" or even "integrated". As you pretty well know, the HP-71B integrated complex numbers right from the start, in the mainframe, with the support for their syntax, adequate polls for a future ROM to handle them, etc, etc. You can type in 10 A=(2,3) with no Math ROM attached and it will pass muster syntactically speaking. Nothing of the sort exists in the HP-75C System ROMs.

Quote:This is surprising for me too. Even if the 71 Math LEX is only 27 kB long (the rest of the ROM is filled with 0), it makes a big difference of code size.

I knew about the 5 Kb of filler but didn't remember it right now. Yet another tick in the abominable things that were done to the HP-71B system by some #\$&%! individuals in charge of the project.

To think that they utterly wasted 5 Kb which could have been put to extremely good use implementing the functionalities of the Series 80 Matrix ROM which were ultimately left behind, or to implement the complex case for the inverse hyperbolic functions (you can do SINH(Z) but not ASINH(Z), etc), or the determinant of a complex matrix (even the 42S does it !), or such new, valuable functionalities as a MAT SORT statement, say, and so on and so forth, ... yet instead they chose to fill up 5,000+ bytes with 0's !!!

Unforgivable.

Quote:I intent to compare the features of the 71 and 75 Math ROM more in details. But it will be the subject of another thread.

Please do. I'd love to help but without the 75C Math ROM's OH I can't so I'll simply read whatever you write on the subject.

Quote:If you still have some material of that time, we at the HP Series 80 group would love to see it, and preserve it if you permit.

It's problematic. The last time I saw these materials they were in the form of dot-matrix paper listings (many DIN A4 pages) and 5.25" floppy disks (or perhaps 3.5" floppies, not sure). Both listings and floppies must be stored in some big plastic containers somewhere in my house, untouched and unseen for the last 35+ years or so, and regrettably I have scores of plastic containers like those, so searching for them would be a gruesome, very time-consuming, dust-ridden task. Not likely to happen anytime soon but if I eventually find some or all of it, I'll let you know.

I also had assembly language listings for HP-85 BIN files which I created with some *software* assembler which was provided to me (stored in a tape together with the source code for most HP-created BIN files, extremely instructive) by some friends of mine who worked for HP. Later I got the Assembler ROM for the HP 80 series (same provider) and many other ROMs, most of them in fact. Regrettably I didn't keep any when I began working with other models (HP-9816/26/36, HP-150, Vectras, etc. ...)

Very interesting and exciting times then.

Best regards.
V.
.

Find All My HP-related Materials here:  Valentin Albillo's HP Collection

05-22-2018, 12:53 AM
Post: #3
 rprosperi Senior Member Posts: 4,397 Joined: Dec 2013
RE: 71 & 75 Math ROMs, Series 80 Matrix ROM
(05-21-2018 11:00 PM)Valentin Albillo Wrote:  Very tempting but I'm not registering just to download a file or two, since right now I'm not interested in taking part in a Series 80 group, too many more urgent things to do and too little free time. A pity that the group includes the HP-75C/D but not the HP-71B which is a far superior machine in many respects.

You've got mail...

--Bob Prosperi
05-25-2018, 06:53 AM (This post was last modified: 06-02-2018 01:17 PM by J-F Garnier.)
Post: #4
 J-F Garnier Senior Member Posts: 456 Joined: Dec 2013
RE: 71 & 75 Math ROMs, Series 80 Matrix ROM
Well, it took me more time than expected to compare the features of the 71 and 75 Math ROMs.

I was planning to put the comparison in this message, but it became too complicate and not very nicely presented, so I created a file instead.
It is for now a draft with only a comparison of the matrix features with the series 80 as a reference. I will add the comparison of the other features later.

The comparison of the matrix features already gave me some surprises.
Well, it was not surprising that Valentin was right :-) and that the series 80 has the most powerful feature set, but the 75 is not so bad too, and the 71 is the (relatively) least powerful machine.

[Attachment edited 06-02-2018 with full comparison]

J-F

Attached File(s)
05-26-2018, 12:08 AM
Post: #5
 Valentin Albillo Senior Member Posts: 612 Joined: Feb 2015
RE: 71 & 75 Math ROMs, Series 80 Matrix ROM
.
Hi, J-F:

(05-25-2018 06:53 AM)J-F Garnier Wrote:  Well, it took me more time than expected to compare the features of the 71 and 75 Math ROMs.

I was planning to put the comparison in this message, but it became too complicate and not very nicely presented, so I created a file instead.

Thanks a lot for sharing it, J-F. I've downloaded it, will carefully read and study it this next weekend and will post in this thread my comments on it, if you don't mind.

Meanwhile, have a nice weekend.
Regards.
V.

PS: Have you abandoned Emu71/DOS development for good ? If not, there's a couple of very simple requests I'd love to submit to your attention. Very simple, I promise.
.

Find All My HP-related Materials here:  Valentin Albillo's HP Collection

05-28-2018, 02:04 PM
Post: #6
 J-F Garnier Senior Member Posts: 456 Joined: Dec 2013
RE: 71 & 75 Math ROMs, Series 80 Matrix ROM
(05-21-2018 04:08 PM)J-F Garnier Wrote:
Quote:... the HP-71B's is a 32Kb ROM and the HP-75C's is a 16 Kb one. I don't think that Capricorn assembly language is 2 times more space-efficient than Saturn assembly language so I don't think that it could fit in 16 Kb what it takes 32 Kb in the HP-71B.
This is surprising for me too. Even if the 71 Math LEX is only 27 kB long (the rest of the ROM is filled with 0), it makes a big difference of code size.

I found a possible explanation on the reason of the much bigger size of the 71 Math ROM, compared to the 75 version, in the article about the 71 Math ROM in the HP Journal, July 1984:
"One major improvement in the matrix operations of the
Math Pac over its BASIC language predecessors is in the
area of speed. This improvement was made possible
through the use of direct pointer manipulation into arrays,
rather than accessing array elements by their indexes.
...
This speed improvement came at the expense of more ROM space.
However, this was not a major constraint, as was the case in the
HP-85 Matrix ROM and HP-75 Math Pac."

So the 71 team considered that 32 kB was plenty of room, they used it to optimize the code for speed but didn't try to fill all the available space completely.

J-F
05-28-2018, 02:21 PM
Post: #7
 rprosperi Senior Member Posts: 4,397 Joined: Dec 2013
RE: 71 & 75 Math ROMs, Series 80 Matrix ROM
(05-28-2018 02:04 PM)J-F Garnier Wrote:
(05-21-2018 04:08 PM)J-F Garnier Wrote:  This is surprising for me too. Even if the 71 Math LEX is only 27 kB long (the rest of the ROM is filled with 0), it makes a big difference of code size.

I found a possible explanation on the reason of the much bigger size of the 71 Math ROM, compared to the 75 version, in the article about the 71 Math ROM in the HP Journal, July 1984:
"One major improvement in the matrix operations of the
Math Pac over its BASIC language predecessors is in the
area of speed. This improvement was made possible
through the use of direct pointer manipulation into arrays,
rather than accessing array elements by their indexes.
...
This speed improvement came at the expense of more ROM space.
However, this was not a major constraint, as was the case in the
HP-85 Matrix ROM and HP-75 Math Pac."

So the 71 team considered that 32 kB was plenty of room, they used it to optimize the code for speed but didn't try to fill all the available space completely.

J-F

Nice find J-F, thanks for sharing this. It explains the mystery of why so much space was left empty... the 71B MATH ROM is really is a 16KB ROM that grew to 27KB as a result of Saturn code optimization for speed, rather than a 32KB ROM that they chose not to fill.

I also recall reading (somewhere...?) that much of the Math ROM was initially proposed to be included in the system ROM, but was later moved to an accessory module when the proverbial ROM 'was full'. Given how much ROM space is required for these functions, this seems unlikely and I suppose could just be speculation, that was repeated over an over, and eventually became historical lore over the years.

--Bob Prosperi
05-28-2018, 02:55 PM (This post was last modified: 05-29-2018 06:56 AM by J-F Garnier.)
Post: #8
 J-F Garnier Senior Member Posts: 456 Joined: Dec 2013
RE: 71 & 75 Math ROMs, Series 80 Matrix ROM
(05-28-2018 02:21 PM)rprosperi Wrote:  I also recall reading (somewhere...?) that much of the Math ROM was initially proposed to be included in the system ROM, but was later moved to an accessory module when the proverbial ROM 'was full'. Given how much ROM space is required for these functions, this seems unlikely and I suppose could just be speculation, that was repeated over an over, and eventually became historical lore over the years.

What is sure is that the Math ROM was planned very early in the 71 development, especially in the parsing/decompiling routines, but also in the form of handlers for math extensions, to integrate the complex numbers nicely.

The only evidence of math functions removed from the mainframe is a comment in the AB&FCN module (Functions) source, line 1692:
"COT, CSC & SEC removed from mainframe - 3/31/83 S.B."

These functions, however, are not in the Math ROM either.

[edit for additional note: the COT, CSC & SEC functions are included in the series 80 and the 75]

J-F
05-28-2018, 08:28 PM
Post: #9
 Valentin Albillo Senior Member Posts: 612 Joined: Feb 2015
RE: 71 & 75 Math ROMs, Series 80 Matrix ROM
.
Hi, J-F:

Quote:This document compares the features of the HP-71B and HP-75C Math modules. The HP-75C Math pac is a 16 kB ROM module whereas the HP-71B pac is a 32 kB ROM module, from which only 27 kB are actually used.

This actually makes me see red. More below.

Also, the title of this document and your very first sentence states that this document compares the features of the HP-71B and HP-75C Math modules. I understand that this is only the first draft of it, because you've left out anything other than matrix-related functionality, and there are many (and big) differences re the rest of the function set. Waiting for a second draft or the finished document proper.

Quote:A quick look at the specifications of both modules shows quite similar features, which may be surprising since the HP-71B code is about 70% bigger.

Your explanation about the development team using direct pointer manipulations to access elements instead of indexing for speed at the expense of ROM space would explain the extra size in part but not entirely, I doubt that such a change would require anything near 11 additional Kb, i.e. almost 70% extra over the original 16 Kb ROM.

Quote:MAT A(..)=B(..) subarray copy [...] Note: The series 80 allows you to copy subarrays, such as: MAT B(3,1:3) = A(1,2:4) or MAT B(3,)=D. None of the 71 or 75 can do it.

This is a seriously needed feature criminally left out of the 71B Math ROM. Without it, you need to issue one or two (nested) FOR-NEXT loops to perform the copy/assignment, which is terribly inefficient and two orders of magnitue slower.

In the case of the 71B this is particularly noticeable because it's 5 times slower that the 75C to begin with, and it's CPU and OS are optimized for number crunching, not for branching or looping. The need for subarray handling arises very frequently and without that functionality you're left with RAM-wasting, time-wasting nested loops which run 100 times slower or more.

Also, you don't include as an important feature that the Series 80 Matrix ROM allows for the creation and handling of matrices having 0 rows and/or 0 columns without giving any errors. This allows for straightforward generalizations in many sophisticated algorithms without having to consider and code especial cases. Neither the 71B nor the 75C Math ROMs implement this.

Finally, MAT A=CON, =IDN and =ZER do admit redimensioning subscripts (i.e.: MAT A=CON(3,3)).

Quote:MAT A=B.C, MAT A=B/C, MAT A=(X)+B, MAT A=(X)-B, MAT A=(X)/B, MAT A=(X)*B+(Y)*C, MAT A=CROSS(B,C), MAT A=CSUM(B), MAT A=RSUM(B), CNORMCOL, RNORMROW, AMIN(A), AMINCOL, AMINROW, AMAX(A), AMAXCOL, AMAXROW, MINAB(A), MAXAB(A), MAXABCOL, MAXABROW, SUM(A), ABSUM(A)

That all those operations were left out of the 71B Math ROM while having no less than 5 Kb available which went to waste is unforgivable.

Most of these operations would take only a few extra bytes to implement (AMINROW, AMAXCOL, RNORMROW,...), and would be incredibly useful (SUM, MAT A=(X)*B+(Y)*C, ...) and would not only fit in the 5 Kb available, with room to spare, but any development team worth their salt could implement all of them in a few days, a week at most, with ample time to check and document them.

They were probably prevented from doing it for whatever marketing reasons. Meanwhile they were ordered to waste lots of time and effort in that useless abomination called CALC MODE, utterly wasting 5 Kb of the System ROM on it only because some <hard expletive> higher up decided that the 71B "had" to have some calculator mode, like the SHARPs and other much simpler calculators did.

Quote:Finally, the 71 only implements a basic matrix operation set.

How true and how sad. They could have implemented most of the fuller set using those 5 Kb left to waste (filled up with 0's !! can you believe it !!??)

Thanks and best regards.
V.
.

Find All My HP-related Materials here:  Valentin Albillo's HP Collection

05-30-2018, 01:51 AM
Post: #10
 brickviking Senior Member Posts: 334 Joined: Dec 2014
RE: 71 & 75 Math ROMs, Series 80 Matrix ROM
(05-28-2018 08:28 PM)Valentin Albillo Wrote:  [...gigantic snip, sorry Valentin...]
They were probably prevented from doing it for whatever marketing reasons. Meanwhile they were ordered to waste lots of time and effort in that useless abomination called CALC MODE, utterly wasting 5 Kb of the System ROM on it only because some <hard expletive> higher up decided that the 71B "had" to have some calculator mode, like the SHARPs and other much simpler calculators did.

I was one of the people who used one of the "simpler" calculators, I very much appreciated that this PC-1247 could also be a calculator, as I was doing a bit of that at the time. Yes, I had to spell everything out, and yes, the 71B wasn't aimed at me, being quite a bit more expensive than the aforementioned PC-1247 that I could barely afford second-hand. If I'd been able to afford the 71B, what would my primary use for it be? At this stage, I'm not sure what I could have got out of a one-line 22-character screen given that all my previous experience had been on the Apple IIe and PCs.
(05-28-2018 08:28 PM)Valentin Albillo Wrote:
Quote:Finally, the 71 only implements a basic matrix operation set.

How true and how sad. They could have implemented most of the fuller set using those 5 Kb left to waste (filled up with 0's !! can you believe it !!??)

Thanks and best regards.
V.
.

Has that Math ROM been reworked since? Was a new Math ROM created from scratch with the expanded functionality? As you can probably tell, I don't know much about this machine.

(Post 235)

Regards, BrickViking
HP-50g |Casio fx-9750G+ |Casio fx-9750GII (SH4a)
05-30-2018, 07:20 AM
Post: #11
 J-F Garnier Senior Member Posts: 456 Joined: Dec 2013
RE: 71 & 75 Math ROMs, Series 80 Matrix ROM
(05-28-2018 08:28 PM)Valentin Albillo Wrote:  I understand that this is only the first draft of it, because you've left out anything other than matrix-related functionality, and there are many (and big) differences re the rest of the function set.
Yes it is.

Quote:In the case of the 71B this is particularly noticeable because it's 5 times slower that the 75C to begin with, and it's CPU and OS are optimized for number crunching, not for branching or looping.
We can argue on the speed difference (it is not always that much, see here).
And I would not say that the 71's CPU (Saturn) is not optimized for branching or looping. There is no major difference here.
The biggest difference is related to the memory access. The 75's Capricorn CPU has many addressing modes (indexed, indirect or a combination, pre/post pointer increment, multiple stacks) and every register pair can be used as a pointer to the memory.
On the other side the 71's Saturn CPU has only two memory pointers (DAT0 and DAT1) and no other addressing mode than basic reading/writing to the pointed memory (à la HP41). And doing arithmetic on the pointers is tedious, requiring the use of a register and so a lot of operations. It's a big limitation.

Quote:Also, you don't include as an important feature that the Series 80 Matrix ROM allows for the creation and handling of matrices having 0 rows and/or 0 columns without giving any errors. This allows for straightforward generalizations in many sophisticated algorithms without having to consider and code especial cases. Neither the 71B nor the 75C Math ROMs implement this.
Thanks for pointing that feature, I didn't know it. It is indeed described on pages 46/47 of the Matrix ROM manual. Reading the example makes me think that this feature can produce quite obscure code sequences, so I'm not sure to regret it was not kept in the 71 & 75 :-).

Quote:
Quote:Finally, the 71 only implements a basic matrix operation set.
How true and how sad. They could have implemented most of the fuller set using those 5 Kb left to waste [etc...]
Well, at the light of the information I found above, I revised my judgement: yes the 71 matrix functions are limited to the basic, most useful set but benefit of a good implementation (speed optimisation).
Rather than the unused 5kB space, what I regretted at the time was that the Math ROM has not been used in certain application ROMs such as the Circuit Analysis pac that coded the matrix solving operations ... in Basic !

J-F
05-30-2018, 10:36 PM
Post: #12
 Valentin Albillo Senior Member Posts: 612 Joined: Feb 2015
RE: 71 & 75 Math ROMs, Series 80 Matrix ROM
.
Hi, brickviking :

(05-30-2018 01:51 AM)brickviking Wrote:  If I'd been able to afford the 71B, what would my primary use for it be?

Only you could answer that. In my case, my primary use for it was for professional engineering computations, plus advanced numerical analysis and hobbies (I wrote a chess mate-in-N problems solver for it).

Quote:At this stage, I'm not sure what I could have got out of a one-line 22-character screen given that all my previous experience had been on the Apple IIe and PCs.

You could use a full-screen monitor with the HP-71B plus an external keyboard and even a printer and either a tape drive or a disk drive, all of them connected via HP-IL. That way you could almost exactly mimic the experience of using a typical personal computer such as the Apple ][ or the IBM PC, with the advantage over them of being able to use very powerful ROMs (for example the Math ROM for anything having to do with advanced transcendental functions, complex numbers, matrices, integration up to 5-level deep, finding all roots of polynomials, solving arbitrary equations or systems of up to 5 non-linear equations, and Fourier transforms, among many other things, at machine-code speeds).

This was a whole lot of computation muscle that neither the Apple ][ nor the IBM PC could even approach. Plus you could fit the HP-71B system with up to 512 Kb of RAM (no "RAM disks" or anything like that, just normal RAM).

Quote: Has that Math ROM been reworked since? Was a new Math ROM created from scratch with the expanded functionality?

No and no. I could probably add some of the missing functionality myself if I had the Math ROM IDS (fully documented [and commented] assembler listings) but they don't seem to exist anymore or are completely unavailable.

It's a wonderful machine, that's why it is my favorite one, head and shoulders over the many HP models I've fully known and used in the past (nearly all the non-financial classics plus the 41Cxx, 42S, 35s and even the 75C).

If you want to have a look at it and run some software on it, you can either get a physical one (quite cheap on TAS [The-Auctions-Site ]) or use J-F Garnier's Emu71 emulator which I believe is completely free. There are other excellent emulators as well, even one which runs on an RPL model.

Regards.
V.
.

Find All My HP-related Materials here:  Valentin Albillo's HP Collection

06-02-2018, 01:27 PM
Post: #13
 J-F Garnier Senior Member Posts: 456 Joined: Dec 2013
RE: 71 & 75 Math ROMs, Series 80 Matrix ROM
Updated document with full comparison of all the features of the 71 and 75 Math ROMs :
hp71_75.pdf

The Matrix features are still the most interesting part for comparison.
The complex functions are implemented too differently on the two machines for a fair comparison (the 71 is clearly much better), but still this highlights the missing features on each machine.
The FNROOT/INTEGRAL functions are very close on the two machine, the 71 benefits of an improved implementation.

J-F
06-02-2018, 11:19 PM
Post: #14
 Valentin Albillo Senior Member Posts: 612 Joined: Feb 2015
RE: 71 & 75 Math ROMs, Series 80 Matrix ROM
.
Hi, J-F:

(06-02-2018 01:27 PM)J-F Garnier Wrote:  Updated document with full comparison of all the features of the 71 and 75 Math ROMs :
hp71_75.pdf

Thanks for this second draft, which surely is quickly approaching v1.0. A few comments in an eminently constructive mood, please don´t take any of it as criticism or patronizing on my part or anything such.

1) As far as I remember, you could also specify zero rows and or zero columns whole matrices, not just subarrays. You could even matrix-multiply, say, a 5x0 matrix and a 0x3 matrix, in that order, and you'd get a 5x3 matrix as a result (all its elements "created out of nowhere" would be assigned the value 0).

2) The HP-71B Math ROM can't compute the determinant of a complex matrix. For example:

1 DESTROY ALL @ OPTION BASE 1 @ COMPLEX A(3,3) @ MAT A=IDN @ MAT DISP A;
2 DISP DET(A)

>RUN

(1,0) (0,0) (0,0)
(0,0) (1,0) (0,0)
(0,0) (0,0) (1,0)

ERR L2:Data Type

Yet another useful, expected feature missing for unfathomable reasons (remember those 5K of ROM unforgivably left to waste ?).

3) The ease of use of complex functionalities in the HP-71B is an order of magnitude over the ones in the HP-75C, which are clumsy, time-wasting and RAM-wasting in the extreme. With the 75C Math ROM , computing any non-trivial expression involving complex values becomes an extreme chore which eats tons of RAM if programmed (think evaluating the Mach number's formula featured in many classic Owner's Handbooks using complex values).

Besides, the functions left out in the 75C's, namely SIGN and ABS aren't as trivial as those for the real case. For instance, for real numbers, ABS(X) is just X if positive, -X if negative, but for the complex case ABS(Z) = SQR(REPT(Z)^2+IMPT(Z)^2), which is significantly harder to evaluate and thus more useful if available as a keyword. Same with SIGN for the complex case as compared to the real case. There's also the point of IMAGE with complex specifiers, which the 71B has but not the 75C, further complicating the essential output of complex scalars, vectors and matrices.

4) The implementation of FNROOT and INTEGRAL in the HP-71B Math ROM is not just "better" than the one for the HP-75C, it's dramatically better, actually on a completely different league, considering that:

- 75C: you can't use them right from the keyboard, you must create a program with at least one or more lines to define your function and at least an additional line including the FNROOT/INTEGRAL call.

- 71C: you can do that, of course, but you can also use the FNROOT/INTEGRAL right from the keyboard with no need to create any program or UDF whatsoever. For instance, to find a root of x$$^3$$-6*x-2 = 0, simply execute this from the command line:

>FNROOT(0,3,FVAR^3-6*FVAR-2)

2.60167913189

As seen in my latest challenge, S&SMC#23, the length of the expression being solved/integrated is limited only by available memory, with no program or user-defined function needed.

- 75C: you can't nest FNROOT with other FNROOT or INTEGRAL with other INTEGRAL, which means you can solve just a single equation in a single variable or compute a simple integral, not a double, triple, etc. integral. Further, you can call FNROOT from INTEGRAL and vice versa, but you must write a program and create at least two User-defined functions.

- 71B: you can nest FNROOT up to 5 levels, which allows you to solve a non-linear system of up to 5 equations in 5 unknows, and you can nest INTEGRAL up to 5 levels as well, which allows computing double, triple, up to quintuple integrals. For instance, you can compute this double integral from the command line:

>INTEGRAL(0,1,0,SIN(IVAR^2*INTEGRAL(0,IVAR,0,EXP(IVAR^2))))

.280631692621

This is too much of an improvement over the 75C's, not only in ease of use but essentially in capabilities, to label it simply as "better" and so its importance ought to be pointed out.

Finally, I feel that there are probably many other significant differences in functionality in both the functions already considered and the ones left untouched, for instance in how FOUR works with real and complex data, if the tricks available in the 71B also work in the 75C, how MAT A=PROOT exactly works, and how matrix conjugate transposes work in the 75C, but without having either a 75C (real or emulated) at hand or studying the 75C Math ROM in depth I can't say for sure.

Thanks again for your effort in producing this excellent document, which will surely become a worthwhile reference.

Regards and have a nice weekend.
V.
.

Find All My HP-related Materials here:  Valentin Albillo's HP Collection

06-03-2018, 03:42 PM
Post: #15
 J-F Garnier Senior Member Posts: 456 Joined: Dec 2013
RE: 71 & 75 Math ROMs, Series 80 Matrix ROM

Quote:2) The HP-71B Math ROM can't compute the determinant of a complex matrix.
Thanks for pointing this mistake in my document. The 71 Math ROM manual indeed specifies that DET is applicable to a real matrix only.

Quote:3) The ease of use of complex functionalities in the HP-71B is an order of magnitude over the ones in the HP-75C, which are clumsy, time-wasting and RAM-wasting in the extreme.
Sure. However, the complex functions of the 75 Math ROM has been implemented years after the initial 75 design and introduction. The 71 has (apparently) been designed with the complex support in mind right from the beginning.

Quote: ... Besides, the functions left out in the 75C's, namely SIGN and ABS aren't as trivial as those for the real case.
ABS and ARG can be easily obtained from the rectangular to polar conversion. Then SIGN can be calculated using the ABS value. Of course, this requires several operations, but is much less difficult than implementing the missing 71's inverse trigonometric and hyperbolic functions in the complex domain :-)
I didn't want to include workarounds for the missing functions, it was not my goal (that was to compare the features). The 75 Math ROM manual provides procedures to implement additional features, such as multiplying a complex matrix by a real scalar, or creating the complex form of a real matrix, things that the 71 Math ROM can do in one operation but not the 75.

Quote:4) The implementation of FNROOT and INTEGRAL in the HP-71B Math ROM is not just "better" than the one for the HP-75C, it's dramatically better, ...
I tend to agree with you. The implementation is better regarding the more flexible way to define the function, and is more powerful because it can solve more complicate problems thanks to the nested calls.

J-F
 « Next Oldest | Next Newest »

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