ULP : Java Glossary

go to home page U words local find full screen, hide local find menu Google search web for more information on this topic jump to foot of page translate this page with Babelfish punctuation 0-9 A B C D E F G H I J K L M N O P Q R S T U V W X Y Z (all) ©1996-2009 Roedy Green, Canadian Mind Products
ULP
Unit in the Last Place is the smallest possible increment or decrement that can be made using the machine’s floating point arithmetic. In Java’s IEEE format, floating point numbers are stored as finite binary fractions. An 0.5 ulp maximum error is the best you could hope for, since this corresponds to always rounding to the nearest representable floating-point number. In Java, results are usually guaranteed to be accurate to within 1 or 2 ulps. Math.sqrt is guaranteed to be bang on for perfect integral squares where the values can be perfectly represented.

Prof. Kahan came up with the notion of an ulp. An ulp of a real number value is the distance between the floating-point numbers which bracket the real value. Of course since the only reals we can represent happen to be floating-point numbers, this corresponds to the distance between adjacent floating-point values. To avoid ambiguities at powers of two (where the distance between numbers changes), we can define an ulp of a floating-point value to be the distance to the next floating-point value larger in magnitude.

In Java, all the arithmetic operations {+, -, *, /, sqrt} have error of less than 1/2 ulp assuming their inputs are exact; i.e. assuming you want to take the square root of the floating-point number closest to 0.1 not 0.1 exactly. Much of the math library must be accurate to 1 ulp although a few functions only require 2 ulps. Of course even with correct rounding at each step, the final answer could be widely inaccurate due to accumulated and amplified round-off errors.

Learning More

Sun’s Javadoc on ulp package : available:

CMP homejump to top You can get the freshest copy of this page from: or possibly from your local J: drive (Java virtual drive/mindprod.com website mirror)
http://mindprod.com/jgloss/ulp.html J:\mindprod\jgloss\ulp.html
CMP logofeedback Please email your feedback for publication, errors, omissions, typos, formatting errors, ambiguities, unclear wording, broken/redirected link reports, suggestions to improve this page or comments to Roedy Green : feedback email
mindprod.com IP:[65.110.21.43]
view BlogYour face IP:[38.107.191.105]
You are visitor number 12,757.