In the beginning the SandMath was available in two flavors, the 8k version and the 12k version - with the latter just adding a Matrix/Polynomial section on top of the 8k version, and thus a real superset.
The 12k footprint has some obvious issues that made me reconsider that arrangement. Besides, more Matrix routines were competing for the same space, and there was no available room in the 12k version to accomodate for them. The straw that broke the camel's back was my new "Matrix Editor" mode, which required substantial room to code and would never fit in the 12k - so it was time for a new approach.
That's when I rolled the 8k version into the "SandMath-II", as a direct replacement, and when I released the ALGEBRA module. This one is a self-contained ROM, that does not have any dependencies on the SandMath-II - so they can be used independently.
So far so good, but there are a few side frills that make the story more interesting :-).
Shortly after this (or it may have been simultaneously, not sure anymore) I decided to put together a Matrix add-on to the SandMath-II. This is available as the MATRIX ROM, a 4k module that only works in combination with the SandMath-II. Its contents is basically the same as the matrix-related stuff in the ALGEBRA module - but of course it lacks everyting else. The 4k-MATRIX ROM is a subset of the ALGEBRA Module.
But wait, the plot thickens:- As both the 8k-ALGEBRA and the 4k-MATRIX rely on the ADVANTAGE Pack (all those wonderful MCODE Array functions from the CCD being there), it occurred to me that the ultimate MATRIX module should be a page-switched, 12-k construct occupying just 8k, with (at least) the same contents as the MATRIX rom plus all the Matrix functionality of the Advantage Pack.
And that's the ADVANCED_MATRIX Pac - which BTW also retains both SOLVE and INTEG just to make things more complicated :-) In truth, this was motivated by the page-switching design, and also due to the fact that one of the 4k blocks doesn't have a FAT (obviously). SOLVE and INTEG are monster routines, filling up 3/4th.s of a block, so they lend themselves splendidly to this usage.
In case you wonder, the ADVANCED-MATRIX Pack does not require the SandMath-II module either, so there's some inevitable redundancy but the dependencies are removed. However it does not have the Polynomial programs of the ALGEBRA ROM, so alas, it's not a superset of it.
The obvious missing piece in all this jigsaw puzzle would be a 4k-Polynomial ROM, to use on top of the ADVANCED_MATRIX Pac to come up with a real superset of the ALGEBRA Module with the Advantage Pack power into it. Are we lost yet? I am, somebody please draw a sketch! ... "-)
Which ones to use? Your choice, depends on what you're more likely to do or need at a given point.
PS. In case you got this, let me throw another couple of logs to the bonfire:- Another two modules that are very closely related to the ones described above are the "BESSEL ROM" and the "POLYNOMIAL_ROM", done in collaboration with Jean-Marc Baillard. Those two are also self-contained, and treat the subjects with a deeper/wider reach. Not for the faint of heart, but a wonder for the adventurous.
Hope this helps, and again thanks for your interest in all those roms.
Best,
ÁM