Magnitudefree Numbering Systems
10 posts
• Page 1 of 1
Magnitudefree Numbering Systems

TreisaranDozens Disciple
 Joined: Feb 14 2012, 01:00 PM
Most numberwork today is done in fixedpoint numbering; it may be represented by floatingpoint or logarithmic formats in computers, but such formats contain the information needed for converting that representation to fixed point upon display. Fixedpoint numbering gives a singleunit number throughout all exponents, such as 15.6[sub]z[/sub]. In floating point, the significand and the exponent are stored separately, giving something like 1.56e+1[sub]z[/sub]; and in a logarithmic number system, the mantissa of the number is joined with the characteristic in order to fix its magnitude, giving 1.19X453[sub]z[/sub] for the number (the characteristic of 1 has the same role that the exponent of 1 has in the floatingpoint example).
Historically, there are at least two examples of [i]magnitudefree numbering systems[/i]. The Babylonians used floatingpoint numbering without exponents, and from the invention of logarithms until the rise of the electronic calculator people used logarithms without a characteristic. The person doing the calculations had to supply the magnitude judiciously, determining it by the problem at hand. Babylonian sexagesimal 30 could mean 30[sub]d[/sub] or 1/2 or 1800[sub]d[/sub], and the logarithm table and slide rule would give a result such as 5 which could mean five or half or fifty.
Perhaps the facet of magnitudefree numbering I find most interesting is the limits of the representation. In magnitudebearing notations we know of the limits called [i]overflow[/i] and [i]underflow[/i], which are encountered when the magnitude of the number is too big or too small respectively. (Note that this is [i]absolute[/i] magnitude; too far on the negative numbers is overflow, not underflow; underflow is a fraction too small.) The IEEE 754 floatingpoint standard, now nearly universal, specifies âˆž (positive infinity) for positive overflow and âˆ’âˆž (negative infinity) for negative overflow, which also act as error conditions for division by zero, together with NaN (Not A Number) for such undefined computations as 0/0 (the [url=http://en.wikipedia.org/wiki/File:Hyperbola_one_over_x.svg]graph of the function 1/x[/url] should clarify why a positive or negative number divided by 0 gives one of the two infinities while 0/0 gives NaN). As for underflow, once a fraction is too small to represent, it can only be regarded as 0; IEEE 754 smoothes such situations by using subnormal (also called denormal) numbers, but even so, there is a limit (no pun intended).
The above elaboration might sound sophisticated, but any schoolchild playing with a calculator (like I did back in the day) would meet those limits sooner or later. Multiply 2 by itself enough times, running the binary powers, eventually you will get a nice little error message, or just the letter 'E' below the number; divide 2 by itself likewise, and the final result, after a steady accumulation of zeroes after the initial '0.', will be actually 0. Those limits are the facts of life under magnitudebearing numbering systems, the ones we use today.
When I came to know about magnitudefree numbering systems, through Donald Knuth's brief but intriguing summary of Babylonian sexagesimal in [i]The Art of Computer Programming[/i] and later by procuring a slide rule, I was fascinated by this unconventional way of representing numbers. Apart from the need to make judgement on every calculation result, itself an edifying practice, I marvelled about the different limits inherent in magnitudefree numbering. Let us explore those limits now. I shall use sexagesimal in the Babylonian way, encoded as sixonten (or simply put, 00 to 59 for every place / superdigit / twistaff), separated by a colon.
Using the modernisation of Babylonian sexagesimal, or a logarithm table or a slide rule, one feature jumps at us straight away: [b]there is no zero and there are no infinities[/b]. Numbers can be multiplied or divided indefinitely; as they have no magnitude of their own (only that which the human calculator supplies them, using his or her judgement), they cannot really grow or shrink. There is no infinity for them to grow to, nor zero to shrink to, and no division by zero possible.
The following table provides visualisation for the above. The powers of 2, from the positive to negative sixtyfourth, are given in magnitudefree sexagesimal, to a precision of nine digits:
As you can see, it is not magnitude but [i]precision[/i] that is limited in magnitudefree numbering. Precision could, in theory, be as good as you require it to be, but the limits of realworld or screen space, the size of the logarithm table and the legibility of ticks on a slide rule all dictate the need to stop somewhere. Beyond the chosen precision, the powers of 2 both positive and negative go on indefinitely but their precision tapers off into uselessness. (Think of being limited to 3 digits of precision and having to read 2â†‘32[sub]d[/sub] as 4.29[sub]d[/sub]. This is the reason why the slide rule became obsolete as soon as electronic calculators were affordable.) In a magnitudebearing system, there would be a growing train of trailing or leading zeroes (fixed point), or an increasing exponent (floating point) or characteristic (logarithmic number system). Here there are only significant digits, with no magnitude to go out of bounds.
It is almost as if magnitudefree numbering systems were immune to overflow and underflow conditions. But only almost. There is no overflow, and there is no [i]arithmetic[/i] underflow, but magnitudefree numbering systems do have a different kind of underflow: geometric (or exponential, or logarithmic) underflow. This too is something a child might well encounter playing with a calculator, provided the calculator has a square root key: input 2, then press the square root key repeatedly, and the number will decrease until it becomes actually 1; input 0.5[sub]d[/sub], then press the square root key repeatedly, and the number will [i]increase[/i] until it becomes 1.
In magnitudebearing numbering, this underflow is just another form of ordinary arithmetic underflow, not distinct from it in any way; the repeated square root of 2 eventually exhausts the negative exponent range, just like repeated division of 2 by itself, whereas the repeated square root of 1/2 brings the exponent higher and higher until there can only be a carry to the significand (hence, 0 + a fraction becomes 1). In a magnitudefree numbering system, these conditions are [i]the[/i] underflow conditions, the only way to hit those limits. Again I bring a table, with the square root operation performed repeatedly on 2:
The table above vividly shows how zeroes work in a magnitudefree numbering system: zeroes do exist, but only in medial positions. Likewise in a slide rule you could get 1.01 or 1.001, but never 0.1 or 10; a slide rule's arithmetic scales begin at 1 at the left and end at 1 at the right. In the above table you can see that once the precision is no longer sufficient to provide a significant digit after all the medial zeroes, we are left with a series of [i]trailing[/i] zeroes, and these, in a magnitudefree system, are fated to collapse into [i]literal[/i] nothingness, giving a plain '01'.
The same thing, to the opposite direction, happens when repeatedly extracting the square root of 1/2 (which, remember, is 30 in magnitudefree sexagesimal):
Once precision is exhausted, the series of 59's can only produce a carry; not a carry to the significand, which does not exist in magnitudefree numbering, but simply an odometerlike rollover. As with the previous table, once '01' has been reached it cannot change, for the simple reason that âˆš1 is 1.
The table above also shows one quirk of magnitudefree numbering: sometimes the magnitude pops up unexpectedly. Recall the first table, where the successive negative powers of 2 are the same as successive positive powers of 30; naturally so, as '02' and '30' are sexagesimal reciprocals. But the square root of 1/2, on the other hand, is not the same as the square root of 30! âˆš30 in magnitudefree sexagesimal to nine places is this:
05:28:38:00:43:27:09:36:37
which is quite different from the square root of 1/2 (the nexttolast entry on the above table). This is similar to the way a logarithm table or slide rule forces the user to take the magnitude into account when extracting the square root: if I want to find âˆš20[sub]z[/sub] (the square root of twozen) using a fiveplace dozenal logarithm table, I must not use the bare mantissa 34202[sub]z[/sub] given for the entry 2.000[sub]z[/sub], for that would yield âˆš2; instead, I must add the characteristic '1', giving 134202[sub]z[/sub], then divide [i]that[/i] by 2 and look the antilogarithm of the result. The magnitude has reared its head all of a sudden.
This numeric instance of leaky abstractions, plus the fact that people like to know right away how big or small the number is, explains why magnitudefree numbering has never caught on with the general public. Confined to a few Babylonian businessmen and astronomers, fine; confined to a bunch of geeks carrying their slide rules on holsters, also good; but the man in the street would be slightly inconvenienced (to put it mildly) if he had to apply 'judicious thought' regarding the correct magnitude of his salary, and argue it with the possibly different 'judicious thought' held by his boss. At the end of the day, the point must be fixed somewhere.

wendy.krieger
The thing about 'sumerian numbers', is that they are a form that modern notation does not have words for, and do not account for in the discussion on bases.
Sumerian numbers are a 'alternating division base', so that 1 and 1.00 are the same thing, and that 6.30 lies between 6 and 7. The most significant place is the units place, and this is alternatingly divided into 6 and 10. Only the use of zero belies that it is base 60, and that is a division base.
Firstly, we have records of numbers like 0,0,1 (ie 1/3600), but large numbers are effected by setting the tables into the required power of 60 (something that span centuries might be set in units of 60 years).
Moreover, by Neugebauer, we read that the number set as 3.12 of shocks, is elsewhere written as C I xxx ii (ie 100 + 60 (as a big '1'), + 30 + 2 = 192).
Zeros are not always given, because they were often implemented in blank columns.
On the comment of the sqrt(2), even though the tablet gives sqrt 30 as D2 B5 C5 against sqrt 2 of 1 B4 E1 C, the process of finding square roots from the reciprocal table will produce x and 1/x that x*x is the desired number, because the exact search is for x / (1/x) = x^2. I've done similar things in the twelfty form as well. (It's rather complex, because sqrt(2) falls in a hole in the table which requires many places to fill.
Given that the squareroot 2 was written on the edges and diagonals of a square, i can hardly imagine that 'sqrt 30' was ever envisaged, rather it's sqrt(0,30) that is given.
Sumerian numbers are a 'alternating division base', so that 1 and 1.00 are the same thing, and that 6.30 lies between 6 and 7. The most significant place is the units place, and this is alternatingly divided into 6 and 10. Only the use of zero belies that it is base 60, and that is a division base.
Firstly, we have records of numbers like 0,0,1 (ie 1/3600), but large numbers are effected by setting the tables into the required power of 60 (something that span centuries might be set in units of 60 years).
Moreover, by Neugebauer, we read that the number set as 3.12 of shocks, is elsewhere written as C I xxx ii (ie 100 + 60 (as a big '1'), + 30 + 2 = 192).
Zeros are not always given, because they were often implemented in blank columns.
On the comment of the sqrt(2), even though the tablet gives sqrt 30 as D2 B5 C5 against sqrt 2 of 1 B4 E1 C, the process of finding square roots from the reciprocal table will produce x and 1/x that x*x is the desired number, because the exact search is for x / (1/x) = x^2. I've done similar things in the twelfty form as well. (It's rather complex, because sqrt(2) falls in a hole in the table which requires many places to fill.
Given that the squareroot 2 was written on the edges and diagonals of a square, i can hardly imagine that 'sqrt 30' was ever envisaged, rather it's sqrt(0,30) that is given.

TreisaranDozens Disciple
 Joined: Feb 14 2012, 01:00 PM
How the choice of base influences a magnitudefree numbering system
We've done here on the DozensOnline board some extensive tours of number bases, naturally in conjunction with the ordinary way of numeration: magnitudebearing fixedpoint. Here follow my haphazard thoughts on bases in magnitudefree numeration.
Whether floatingpoint (loglinear) or logarithmic, magnitudefree numeration is sensitive to the choice. At the one extreme we have binary, which has such an influence on magnitudefree numeration that it becomes a world of its own, more akin to unary in ordinary arithmetic than binary is. Binary in magnitudebearing numeration is undoubtedly interesting, yet it is merely the smallest base  the smallest quantity, but otherwise not differing in quality from any other base. But magnitudefree binary has a qualitative difference: it's a base where all arithmetic gradations are restricted to the internal, fractional space.
Visually speaking, magnitudefree binary is invariably 1.something_{b}. Magnitudefree floatingpoint 1.1_{b} does duty for 1.6_{z}, 3, 6, 10_{z}, 20_{z} and so on; 1.01_{b} represents 1.3_{z}, 2.6_{z}, 5, X_{z}, 18_{z} and so forth. The view forced on the user of magnitudefree binary is that of numbers as points within fractional space. Indeed the initial '1' can be omitted, as it is omnipresent. (Computer floatingpoint representations, though they are magnitudebearing rather than magnitudefree, do take advantage of this to gain a bit: since the most significant bit of the significand is always 1, it is used instead for denoting the sign of the number.)
At the other extreme, a magnitudefree grand or supergrand base can be used without exceeding the first exponent (the '10' of the base). Taking a base such as FFF0_{x}, we can in certain contexts, with care, treat it as representing an integer from 1 to FFEF_{x} together with a fractional part, though 3FF8_{x} in magnitudefree notation would still usually mean 0.6_{z} rather than 9588_{z}, 16376_{d}.
The middle road includes not just the humanscale bases but also some greater auxiliaries, such as sexagesimal; this is because it takes quite a high base to avoid exceeding the first exponent in most of practical arithmetic. From magnitudefree ternary onwards, up to the highlands of bases (grands and supergrands), numeration fluctuates indiscriminately (to the human eye) between integers, fractions and mixtures of the two. It seems to me magnitudefree number systems, in contrast to the numeration we ordinarily use, are more interesting when the bases chosen for them are the extreme ones.
We've done here on the DozensOnline board some extensive tours of number bases, naturally in conjunction with the ordinary way of numeration: magnitudebearing fixedpoint. Here follow my haphazard thoughts on bases in magnitudefree numeration.
Whether floatingpoint (loglinear) or logarithmic, magnitudefree numeration is sensitive to the choice. At the one extreme we have binary, which has such an influence on magnitudefree numeration that it becomes a world of its own, more akin to unary in ordinary arithmetic than binary is. Binary in magnitudebearing numeration is undoubtedly interesting, yet it is merely the smallest base  the smallest quantity, but otherwise not differing in quality from any other base. But magnitudefree binary has a qualitative difference: it's a base where all arithmetic gradations are restricted to the internal, fractional space.
Visually speaking, magnitudefree binary is invariably 1.something_{b}. Magnitudefree floatingpoint 1.1_{b} does duty for 1.6_{z}, 3, 6, 10_{z}, 20_{z} and so on; 1.01_{b} represents 1.3_{z}, 2.6_{z}, 5, X_{z}, 18_{z} and so forth. The view forced on the user of magnitudefree binary is that of numbers as points within fractional space. Indeed the initial '1' can be omitted, as it is omnipresent. (Computer floatingpoint representations, though they are magnitudebearing rather than magnitudefree, do take advantage of this to gain a bit: since the most significant bit of the significand is always 1, it is used instead for denoting the sign of the number.)
At the other extreme, a magnitudefree grand or supergrand base can be used without exceeding the first exponent (the '10' of the base). Taking a base such as FFF0_{x}, we can in certain contexts, with care, treat it as representing an integer from 1 to FFEF_{x} together with a fractional part, though 3FF8_{x} in magnitudefree notation would still usually mean 0.6_{z} rather than 9588_{z}, 16376_{d}.
The middle road includes not just the humanscale bases but also some greater auxiliaries, such as sexagesimal; this is because it takes quite a high base to avoid exceeding the first exponent in most of practical arithmetic. From magnitudefree ternary onwards, up to the highlands of bases (grands and supergrands), numeration fluctuates indiscriminately (to the human eye) between integers, fractions and mixtures of the two. It seems to me magnitudefree number systems, in contrast to the numeration we ordinarily use, are more interesting when the bases chosen for them are the extreme ones.

jrusRegular
 Joined: Oct 23 2015, 12:31 AM
There arenâ€™t really any practical use cases for a number system which stores only the mantissa but doesnâ€™t include the exponent, as far as I can tell.
Itâ€™s fine for constructing a condensed table of arithmetic facts, where you plan to keep track of the exponent in your head or write it down separately, but throwing the exponent out entirely leaves you with a mathematical curiosity rather than an engineering tool, in my opinion. (Not that thereâ€™s anything wrong with that.)
Storing the exponent takes very little space. Double precision floating point covers pretty much any magnitude weâ€™re ever likely to care about (from eâˆ’308 to e308 base ten) using just 11 bits.
Itâ€™s fine for constructing a condensed table of arithmetic facts, where you plan to keep track of the exponent in your head or write it down separately, but throwing the exponent out entirely leaves you with a mathematical curiosity rather than an engineering tool, in my opinion. (Not that thereâ€™s anything wrong with that.)
Storing the exponent takes very little space. Double precision floating point covers pretty much any magnitude weâ€™re ever likely to care about (from eâˆ’308 to e308 base ten) using just 11 bits.

Double sharpDozens Demigod
 Joined: Sep 19 2015, 11:02 AM
To be honest, I tend to agree. Even with a slide rule, you still need to mentally keep track of the magnitude, don't you? And there is the amusing example from the end of the OP, about a boss and one of his employees disagreeing on the right order of magnitude their salary ought to be.jrus @ Nov 17 2015, 09:57 PM wrote: There arenâ€™t really any practical use cases for a number system which stores only the mantissa but doesnâ€™t include the exponent, as far as I can tell.
Itâ€™s fine for constructing a condensed table of arithmetic facts, where you plan to keep track of the exponent in your head or write it down separately, but throwing the exponent out entirely leaves you with a mathematical curiosity rather than an engineering tool, in my opinion. (Not that thereâ€™s anything wrong with that.)
Storing the exponent takes very little space. Double precision floating point covers pretty much any magnitude weâ€™re ever likely to care about (from eâˆ’308 to e308 base ten) using just 11 bits.

TreisaranDozens Disciple
 Joined: Feb 14 2012, 01:00 PM
Definitely true. I use it mainly as a research tool, which is what I'd call it rather than (or in addition to) 'mathematical curiosity'.jrus wrote: There aren't really any practical use cases for a number system which stores only the mantissa but doesn't include the exponent, as far as I can tell. [...] throwing the exponent out entirely leaves you with a mathematical curiosity rather than an engineering tool, in my opinion.
Magnitudefree notation serves my studies somewhat like the Riemann sphere: as one method of getting around the problem with zero, particularly the impossibility of dividing by it. Whereas the Riemann sphere incorporates n/0 by setting it at the north pole for unsigned âˆž (the point at infinity of a stereographic projection), magnitudefree notation simply avoids 0 altogether. The function 1/n has a sinusoidal appearance and no discontinuous points; the function n^(1/n) has two asymptotes, one at each limit at âˆž and âˆ’âˆž, tending towards the value y=1.
Here are the first 20_{z} numbers in magnitudefree binary: {1, 1, 1.1 (=3), 1, 1.01, 1.1 (=6), 1.11, 1, 1.001, 1.01, 1.011, 1.1 (=10_{z}), 1.101, 1.11, 1.111, 1 (=14_{z}), 1.0001, 1.001 (=16_{z}), 1.0011, 1.01, 1.0101, 1.011, 1.0111, 1.1 (=20_{z}}_{b}. The list can be made clearer with an unquadral (base14_{z}) representation, though one must remember this is unquadralcoded binary and not unquadralforitself: {1, 1, 1.8 (=3), 1, 1.4, 1.8 (=6), 1.C, 1, 1.2, 1.4, 1.6, 1.8 (=10_{z}), 1.A, 1.C, 1.E, 1 (=14_{z}), 1.1, 1.2 (=16_{z}, 1.3, 1.4, 1.5, 1.6, 1.7, 1.8 (=20_{z})}_{x}.

jrusRegular
 Joined: Oct 23 2015, 12:31 AM
Can you explain your research?Treisaran @ Nov 19 2015, 02:52 PM wrote: I use it mainly as a research tool, [...]
Magnitudefree notation serves my studies somewhat like the Riemann sphere: as one method of getting around the problem with zero
The Riemann sphere takes our existing complex number system and compactifies it by adding one point. All the previous operations we could do in the complex plane still apply just as before.
As far as I can tell the â€œsolutionâ€ of magnitudefree notation is to just make lots of our standard operations undefined and then avoid using them, or redefines them to mean something entirely different than the normal definition. Which is fine, but doesnâ€™t seem especially useful at first glance. Is there some concrete result you can compute with magnitudefree numbers that you couldnâ€™t compute before, or some result made much easier to compute?

TreisaranDozens Disciple
 Joined: Feb 14 2012, 01:00 PM
There's not much to explain. Just plugging the functions with this notation and looking at the resultant tables for interesting stuff. That's how I do most of my research; nothing rigorously scientific, as I'm not a scientist.jrus wrote:Can you explain your research?
Any new algebra will do that kind of thing. For example, 1 + 1 = 1 in Boolean algebra, which is different from the standard 1 + 1 = 2.jrus wrote:As far as I can tell the "solution" of magnitudefree notation is to just make lots of our standard operations undefined and then avoid using them, or redefines them to mean something entirely different than the normal definition.
No, it's geared towards being interesting. If I can glean something useful out of it later, so much the better.jrus wrote:Which is fine, but doesn't seem especially useful at first glance.
It means, as I said, function graphs assume a different shape than the ones we get from standard notation, and division by zero ceases to be a concern.jrus wrote:Is there some concrete result you can compute with magnitudefree numbers that you couldn't compute before, or some result made much easier to compute?

Double sharpDozens Demigod
 Joined: Sep 19 2015, 11:02 AM
If there's no zero, then what is 2 âˆ’ 2 in this notation?Treisaran @ Nov 20 2015, 12:47 PM wrote: ...and division by zero ceases to be a concern.

Piotr
Also, it's impossible to count without zero. In other hand, no number other than zero is required for counting, since zero alone indicates counting from the easiest number.Double sharp @ Nov 20 2015, 03:13 PM wrote:If there's no zero, then what is 2 âˆ’ 2 in this notation?Treisaran @ Nov 20 2015, 12:47 PM wrote: ...and division by zero ceases to be a concern.