James Anderson (computer scientist)

From Wikipedia, the free encyclopedia
Jump to: navigation, search
For other people of the same name, see James Anderson (disambiguation).

James Anderson is an academic staff member in the School of Systems Engineering at the University of Reading, England. He is currently teaching compilers, algorithms, and computer algebra, and in the past he has taught programming and computer graphics.[1]

Anderson quickly gained publicity in December 2006 in the United Kingdom when the regional BBC South Today reported his claim of "having solved a 1200 year old problem", namely that of division by zero. However, commentators quickly responded that his ideas are just a variation of the standard IEEE 754 concept of NaN (Not a Number), which has been commonly employed on computers in floating point arithmetic for many years.[2] Dr Anderson defended against the criticism of his claims on BBC Berkshire on 12 December 2006, saying, "If anyone doubts me I can hit them over the head with a computer that does it."[3]

Research and background[edit]

Anderson is a member of the British Computer Society, the British Machine Vision Association, Eurographics, and the British Society for the Philosophy of Science.[4] He is also a teacher in the Computer Science department (School of Systems Engineering) at the University of Reading.[1] He was a psychology graduate who worked in the Electrical and Electronic Engineering departments at the University of Sussex and Plymouth Polytechnic (now the University of Plymouth). His doctorate is from the University of Reading for (in Anderson's words) "developing a canonical description of the perspective transformations in whole numbered dimensions".

He has written two papers on division by zero[5][6] and has invented what he calls the "Perspex machine".

Anderson claims that "mathematical arithmetic is sociologically invalid" and that IEEE floating-point arithmetic, with NaN, is also faulty.[7]

Transreal arithmetic[edit]

Zero divided by zero
In mathematical analysis, the following limits can be found:
 \lim_{x \to 0}\frac 0 x = 0
 \lim_{x \to 0^{+}}\frac 1 x = +\infty
 \lim_{x \to 0^{-}}\frac 1 x = -\infty
 \lim_{x \to 0}\frac{\sin x}{x} = 1
 \lim_{x \to 0}\frac{1 - \cos x}{x} = 0

0^0 is also an indeterminate form. See exponentiation.

In IEEE floating-point arithmetic:
 \frac{0}{0} = NaN
by definition

In several computer programming languages, including C's pow function, 0^0 is defined to be 1, as that is the most convenient value for numerical analysis programs, since it makes f(x) = x^0 (and many other functions) continuous at zero, with the notable exception of f(x) = 0^x.[8]

In transreal arithmetic:
 \frac{0}{0} = \Phi
by definition
 0^0 = \Phi \,
by Anderson's proof, reported on by the BBC, that:
 0^0 = \frac{0}{0}

Anderson's transreal numbers were first mentioned in a 1997 publication,[9] and made well-known on the Internet in 2006, but not accepted as useful by the mathematics community. These numbers are used in his concept of transreal arithmetic and the Perspex machine. According to Anderson, transreal numbers include all of the real numbers, plus three others: infinity (\infty), negative infinity (-\infty) and "nullity" (\Phi), a numerical representation of a non-number that lies outside of the affinely extended real number line. (Nullity, confusingly, has an existing mathematical meaning.)

Anderson intends the axioms of transreal arithmetic to complement the axioms of standard arithmetic; they are supposed to produce the same result as standard arithmetic for all calculations where standard arithmetic defines a result. In addition, they are intended to define a consistent numeric result for the calculations which are undefined in standard arithmetic, such as division by zero.[10]

Transreal arithmetic and other arithmetics[edit]

"Transreal arithmetic" closely resembles IEEE floating point arithmetic, a floating point arithmetic commonly used on computers. IEEE floating point arithmetic, like transreal arithmetic, uses affine infinity (two separate infinities, one positive and one negative) rather than projective infinity (a single unsigned infinity, turning the number line into a loop). Division of any non-zero finite number by zero results in either positive or negative infinity.

However, in IEEE arithmetic, division of zero by zero is still considered indeterminate. The reason for this is simple: A statement about the quotient of two numbers is understood in mathematics as another statement about multiplication. Specifically, if

a \div b = c

this is understood as simply another way of saying that

a = b \times c

Thus, if for some number c

0 \div 0 = c

then this is just another way of saying that

0 = 0 \times c

But in fact this is true for all real numbers c. And that is precisely the reason that mathematicians do not assign a single value to 0 \div 0 but rather label it "indeterminate". Assigning a value to 0 \div 0, even a newly fabricated "number", misses the point entirely.

In IEEE arithmetic, the value of 0 \div 0 is therefore represented by the symbol Not a Number (NaN) (Not a Number). NaN is not meant to be a number, but rather an error message conveying the fact that the arithmetical operation the computer just attempted cannot be assigned a single number as an answer – even if +\infty and -\infty are considered numbers. Because NaN is an error message and not a number, it is not considered equal to anything, even itself. That is, the comparison NaN = NaN evaluates to false.

Here are some identities in transreal arithmetic with the IEEE equivalents:

Transreal arithmetic IEEE standard floating point arithmetic
0 \div 0 = \Phi 0 \div 0 = NaN
\infty \times 0 = \Phi \infty \times 0 = NaN
\infty - \infty = \Phi \infty - \infty = NaN
\Phi + a = \Phi \ NaN + a = NaN
\Phi \times a = \Phi NaN \times a = NaN
-\Phi = \Phi \ -NaN = NaN (i.e. applying unary negation to NaN yields NaN)
+1 \div 0 = +\infty 1 \div +0 = +\infty
-1 \div 0 = -\infty 1 \div -0 = -\infty
\Phi = \Phi \Rightarrow True \ NaN = NaN \Rightarrow False

The main difference between transreal arithmetic and IEEE floating-point arithmetic is thus that nullity compares equal to nullity, whereas NaN does not compare equal to NaN.

Anderson's analysis of the properties of transreal algebra is given in his paper on "perspex machines".[11]

Due to the more expansive definition of numbers in transreal arithmetic, several identities and theorems which apply to all numbers in standard arithmetic are not universal in transreal arithmetic. For instance, in transreal arithmetic, a-a=0 is not true for all a, since \Phi-\Phi=\Phi. That problem is addressed in ref.[11] pg. 7. Similarly, it is not always the case in transreal arithmetic that a number can be cancelled with its reciprocal to yield 1. Cancelling zero with its reciprocal in fact yields nullity.

Examining the axioms provided by Anderson,[10] it is easy to see that any term which contains an occurrence of the constant \Phi is provably equivalent to \Phi. Formally, let t be any term with a sub-term \Phi, then t=\Phi is a theorem of the theory proposed by Anderson.

Media coverage[edit]

Anderson's transreal arithmetic, and concept of "nullity" in particular, were introduced to the public by the BBC with its report in December 2006[5] where Anderson was featured on a BBC television segment teaching schoolchildren about his concept of "nullity". The report implied that Anderson had discovered the solution to division by zero, rather than simply attempting to formalize it. The report also suggested that Anderson was the first to solve this problem, when in fact the result of zero divided by zero has been expressed formally in a number of different ways (for example, NaN).

The BBC was criticized for irresponsible journalism, but the producers of the segment defended the BBC, stating that the report was a light-hearted look at a mathematical problem aimed at a mainstream, regional audience for BBC South Today rather than at a global audience of mathematicians. The BBC later posted a follow-up giving Anderson's response to many claims that the theory is flawed.[3]


Anderson has been trying to market his ideas for transreal arithmetic and "Perspex machines" to investors. He claims that his work can produce computers which run "orders of magnitude faster than today's computers".[7][12] He has also claimed that it can help solve such problems as quantum gravity,[7] the mind-body connection,[13] consciousness[13] and free will.[13]

See also[edit]


  1. ^ a b "Computer Science at Reading - Dr. James Anderson". University of Reading. Retrieved 28 February 2011. 
  2. ^ Mark C. Chu-Carroll (7 December 2006). "Nullity: The Nonsense Number". Good Math, Bad Math. Retrieved 7 December 2006. 
  3. ^ a b "'Nullity is a number, and that makes a difference'". BBC News. 12 December 2006. Retrieved 12 December 2006. 
  4. ^ "About the Ambient & Pervasive Intelligence Research Group". University of Reading. Retrieved 16 January 2007. 
  5. ^ a b Ben Moore; Ollie Williams (7 December 2006). "1200-year-old problem "easy"". BBC News. "Schoolchildren from Caversham have become the first to learn a brand new theory that dividing by zero is possible using a new number—"nullity". But the suggestion has left many mathematicians cold." .
  6. ^ "Professor Comes Up With a Way to Divide by Zero". Slashdot. Retrieved 7 December 2006. 
  7. ^ a b c Dr James A.D.W. Anderson. "Transreal Computing Research and Portfolio — Company Showcase" (PDF). Retrieved 11 December 2006. 
  8. ^ John Benito (April 2003). Rationale for International Standard — Programming Languages — C. Revision 5.10. p. 182. 
  9. ^ "Representing Geometrical Knowledge". 
  10. ^ a b J A D W Anderson (2006). "Perspex Machine VIII: Axioms of Transreal Arithmetic" (PDF). In Longin Jan Latecki, David M. Mount, and Angela Y. Wu. Vision Geometry XV: Proceedings of SPIE 6499. 
  11. ^ a b J A D W Anderson (2006). "Perspex Machine IX: Transreal Analysis" (PDF). In Longin Jan Latecki, David M. Mount, and Angela Y. Wu. Vision Geometry XV: Proceedings of SPIE 6499. 
  12. ^ "Transreal Computing Ltd.". Retrieved 12 December 2006. 
  13. ^ a b c http://www.bookofparagon.com/

Further reading[edit]

External links[edit]