Division by zero



Hi all,

I have a theory to work with division by zero, and it might have some
use in computer science.

I got inspired by Dr. Anderson's 'nullity' number:
http://www.bookofparagon.com/News/News_00012.htm. But as far as I know
it doesn't solve any real problem. At the best he proves that by
allowing a nullity number off the real number line, 0^0 = 0 / 0, in
other words NaN = NaN unlike IEEE 754. I don't think that really helps
us. My proposal does solve actual division by zero problems.

Though it might sound crazy to even -want- be able to work with divsion
by zero, remember that we've been working with square roots of negative
numbers for quite a while...

But let me start with an intuitive example. Suppose we want to compute
a * b, but we only get a / x, x, and b. So we have to compute (a / x) *
(b * x). This works for every x except zero. But to avoid division by
zero we can keep a and set a field that indicates division by zero. To
be able to compute a * b, we also have to keep the value of b after
multiplying with zero, and set a field that indicates multiplication by
zero. When computing (a / x) * (b * x), we multiply the values of a and
b, and the division by zero and multiplication by zero fields cancel
each other.

Mathematically, we can introduce a number Q defined as 1 * 0 = Q. This
makes it possible to write 1 / 0 = Q^-1, much in the same way that i^2
= -1. With this we can solve the above division by zero as: (a * Q^-1)
* (b * Q) = (a * b) * (Q^-1 * Q) = a * b. When x is not zero, the
division can return a/x * Q^0 and the multiplication b*x * Q^0. Also,
when dividing by zero twice we get Q^-2, and multiplying by zero twice
gives Q^2. The most important axioms are:

a = a * Q^0
a * b =
a * b * Q^0 {a != 0, b != 0}
a * Q^1 {b = 0}
b * Q^1 {a = 0}
1 * Q^2 {a = 0, b = 0}
a / b =
a / b * Q^0 {a != 0, b != 0}
a * Q^-1 {b = 0}
0 * Q^0 {a = 0}
0 * Q^-1 {a = 0, b = 0}

Note that for a computer implementation, two bits suffice to represent
Q^-2, Q^-1, Q^0 and Q^1, enough to cover the most common issues with
division by zero. Basically it converts (a / x) * (b * x) to a * b for
us. I don't really know a situation where we -want- a division by zero
exception for this (we can still test x = 0 for aborting computations).
Arguable it's the programmer's responsability to compute a * b directly
and avoid all chance for division by zero. But the same reasoning can
be used for complex numbers...

One problem is that addition of numbers with different Q exponent can't
be defined in a useful way. Powers and roots are definable, but then
the Q exponents are no longer integers. For example the square root of
-4 / 0 is 2*i*Q^-0.5. This illustrates that i and Q are orthogonal,
thus defining a three-dimensional space. In this space 0^0 is still
undefined though.

Any thoughts about this?

Nicolas Capens

.



Relevant Pages

  • Re: Interpolation And Low-Pass filtering
    ... >>4) Lowpass filter by multiplying in frequency. ... > This causes no problem because we are padding zero. ... >>frequency domain affect is to convolve the spectrum>with a sinc. ...
    (comp.dsp)
  • Re: How many mathematicians ...
    ... be divided by 7 before multiplying by 6. ... Who is trying to divide h by 7? ... No division by zero. ... gets to zero even if Bonehead wishes it so. ...
    (sci.physics.relativity)
  • fundamental question about alternate "differential" style calculus
    ... is discarded, giving rules such as ... These rules can be derived by just multiplying the "d/dx" ... (which can then be set to zero, ... combined in the given form y-ax, and that there should be some ...
    (sci.math)
  • Re: How many mathematicians ...
    ... be divided by 7 before multiplying by 6. ... Who is trying to divide h by 7? ... No division by zero. ... gets to zero even if Bonehead wishes it so. ...
    (sci.physics.relativity)
  • Re: Division by zero
    ... Jesper Carlstrom noticed an error in one of the axioms. ... My proposal does solve actual division by zero problems. ... remember that we've been working with square roots of negative ... multiplying with zero, and set a field that indicates multiplication by ...
    (comp.theory)