Richard J. Fateman

Richard J. Fateman

Professor Emeritus, Computer Science
University of California at Berkeley
(510) 847-2368
for email, click on the three dots following: fate
Click here to see earlier photo (1988)

Click here to see more recent informal photo (2008)

441 SODA HALL #1776
Computer Science Division, EECS
Univ. Calif at Berkeley
Berkeley CA 94720-1776

My interests include scientific programming environments; algebraic manipulation by computer (programs like Macsyma, Mathematica, Maple, Axiom, Reduce); distributed computing; analysis of algorithms; programming and measurement of large systems; design and implementation of programming languages; digital document analysis (optical character recognition).

Interested in applying to graduate school in EECS? You need not contact me, but should follow this link instead. Note that I am officially retired. While I am happy to discuss research topics with students, I cannot provide research stipends.

Since retiring, I've become an active volunteer in the American Red Cross, serving in a variety of roles within Disaster Cycle Services, including mass care and sheltering. I continue to serve as a government liaison, working in community partnerships, and teaching classes.

Computer Algebra

There is a public ftp repository of programs, papers, and reviews written by my students and myself. I've linked a subset of them here: Berkeley computer algebra papers. Some pointers to other work in symbolic mathematical computing can be found by visiting various project home pages. One for which I've contributed is the (now public version) of the Macsyma program, named Maxima. There is a mailing list associated with that program that is (sometimes) interesting. It has had millions of downloads from sourceforge over the last few releases.

We used to run a symbolic integral look-up service called TILU, but the chasing after various hosts for it has become tiresome. TILU has lasted through about 4 hosts.
You can also get a copy of 2171 integrals that TILU can do, and see if you can do them all, and if you can do them faster. This table combines many simple examples (for timing) and a few harder ones near the end (for challenges). This is a preliminary version, and doesn't include that much of the literature on integration yet. Here's the list of examples as of May 23, 1996. It is 163k bytes. We have a file with the answers too, naturally. Our answers may be more cautious than those that come out of a computer algebra system. For example, our answers will sometimes include variations that depend on constraints on the parameters in the integrand. If you wish to host TILU locally, the source code is available. A later project RUBI by Albert Rich, may be more worthy of your attention, if integral table lookup is interesting to you.

Past interests have included a very generic-arithmetic system to run in lisp, linking Lisp to GMP, fast polynomial arithmetic, a version of the "Chebfun" system to work in symbolic systems, integration of highly oscillatory functions using numerical and symbolic transformations, and how better pattern matching rules might make systems for computer algebra more intuitive (by some lights, merely nasty diatribes concerning a popular computer algebra system). A recent paper on decimal-float arithmetic in arbitrary precision mayb be of interest to people who complain about floats not encoding (say) 0.1 exactly. Discussions of these topics are in a directory of various papers where the recent ones tend to be unpublished drafts.

Computer algebra fans may also wish to see work done by my colleague John Canny and his students, which in the past has included applications of algebraic algorithms.

Other work at Berkeley by CS faculty in scientific computing can be found by following the links to their home pages: James Demmel, Jonathan Shewchuk, and William Kahan. There are a host of other faculty at Berkeley in other departments with related interests (math, engineering, astronomy), as well as nearby activities at Lawrence Berkeley Lab.

Some visitors to this page have been directed here because of an interest in a Common Lisp package and libraries called MockMMA. see the directory for a recent revision of this Mockmma. This version is more directed to being compatible with the source-forge program Maxima, even if Maxima is being run in GCL, a Lisp dialect lacking in full upper-lower case control. (This is a disadvantage because Mathematica uses many mixed-case identifiers). To the user, this somewhat resembles Mathematica (tm), but has the advantage of being totally open (full source code). One can manipulate polynomials in several variables over the integers, rational functions, and a variety of other mathematical objects. Manipulations include simplification, differentiation, integration, evaluation, pattern matching, etc.

While I'm pointing to old software, here's where you can get a free copy of the final (1982?) university release of Franz Lisp Opus 38.92 for VAX. I don't know why you would want this old stuff, but the university software distribution office has closed and they left a copy with me.

Optical Character Recognition

You might wish to visit Berkeley OCR/math papers for a collection of OCR and document structure analysis work we've done here. Of some interest to people looking for a "free" project, look at an ambitious senior project OCR program using C++, Tcl/TK, visit OCRchie.} Some of our work is specifically addressing mathematical formulas, so you might wish to see a few scanned equations to see what this is about. We also have a brief discussion on an OCR equation-recognition challenge .

A somewhat broader view of the problem of encoding scientific documents is given in the working paper More Versatile Scientific Documents. This is a text more-or-less related to the slides I used, at the ICDAR97 conference in Ulm, Germany. You might prefer to browse through the occasionally changing link page on this topic.

Even more generally, if you want to learn what we were doing in terms of digital library activities at Berkeley, see the links from the (former) digital library project home page. If you wish to understand something of the interesting problems and solutions in the area of "OCR" you might wish to look at the lectures for a course on Document Image Analysis taught in 2000 with Henry Baird. Browsing around there will get you assignments and related material.

More recently we've looked at dynamic entry of handwritten symbols, specifically for mathematics, using a tablet and stylus (or a Tablet PC), and/or speaking mathematics.

Yes, you can dictate math to a computer

and it is surprisingly easy to do, in some ways, compared to handwriting. Try getting a handwriting recognizer to understand "bold Greek theta". Yet you can speak it easily. See the current status of Math Speak and Write project and related papers, also on-line.

Scientific Computing/ Continuing Activities

In the past I've been fiddling with several projects, one of which is to find a neat way of evaluating Bessel functions (J_n) accurately to any desired precision rapidly, and providing good answers near their zeros. This is discussed in Comments on Unrestricted Algorithms for Bessel Functions in Computer Algebra: Arbitrary Precision, Backwards Recurrence, Taylor Series, Hermite Interpolation. Also, how I've thought about how the Chebfun Project ideas map into computer algebra systems and written some code described in Notes on Chebyshev Series and Computer Algebra.

I've also participated in the formulation of the (2015) IEEE-1788 standard for interval arithmetic. You can visit it at

Software Engineering

Although I don't write much about software engineering, I have written out some speculation on what could be done to make software more reliable in this paper: Software Fault Prevention by Language Choice: Why C is Not my Favorite Language.

Short Course on Floating-Point Arithmetic

On August 12-14, 1998, Prof. Israel Koren (Univ. of Mass. Amherst), Prof. W. Kahan (UCB), and I taught a short course on floating-point arithmetic. This covered issues of hardware circuit design, computer architecture, and (my part) compilers/languages. The online versions of my lecture slides are available in two forms: the LaTeX source forms are in this fp98 directory, and the html stuff in subdirectories.

Regular Courses

Effective July, 2007 my status has changed to Professor Emeritus. This means I've retired from teaching regularly scheduled graduate or undergraduate courses. The courses I've taught in the past have been mostly in data structures, programming language design and implementation, but also machine structures, software engineering, advanced AI programming, the undergraduate honors seminar, and various additional graduate courses including Pattern Recognition and Document Image Analysis.

Biographical Sketch:

Richard Fateman received a BS in Physics and Mathematics from Union College in 1966, and a Ph.D. in Applied Mathematics from Harvard University in 1971. His thesis work concerned the design and implementation of algorithms for the Macsyma computer algebra system. He taught in the Mathematics department at MIT from 1971 to 1974 and then joined the Berkeley Computer Science faculty. He was instrumental in originating the work on Berkeley's VAX UNIX system, and led the development of the original Franz Lisp at Berkeley. He served on the Common Lisp design committee and on the IEEE 754 binary floating-point arithmetic standards committee. He served as Berkeley's Computer Science Chair from 1987 to 1990.

He has been the principal investigator on grants from DOE, NSF, and SDF as well as many industrial firms including IBM, DEC, HP. He has authored more than 75 technical papers, mostly on issues related to computer algebra, programming languages and environments, scientific applications, and document image analysis.

In his spare time he travels, takes photos and grows bromeliads. Since retiring, he continues to write papers, consults on computing topics, and has served as an expert witness in patent and software intellectual property disputes (user interfaces, OCR). In 2012 he worked with Barnes and Noble in successfully defending the Nook against patent-infringement claims by Microsoft.

He volunteers as a disaster action team leader and is currently lead for the government liaison activity at the Alameda County (California) branch of the American Red Cross. KJ6BIH is his amateur radio (ham) call sign.

His daughter Johanna was a member of the punk electronica / riot-grrl band Le Tigre. To hear her interviewed by Terry Gross of National Public Radio, visit the Fresh Air archive site for September 5, 2000 . Fans may be interested in this DVD of their last tour, Who Took the Bomp. She is a contributing editor at ArtForum magazine and is a regular reviewer of art galleries and museums for The New Yorker magazine.

His daughter Abigail is the executive director of the East Contra Costa County Habitat Conservancy. She directed the production of the visually stunning Contra Costa County Watershed Atlas.

His wife Martha served as Director of Central Computing Services on the Berkeley campus before retiring in January, 2003. Martha is also a volunteer for the American Red Cross.