[go: up one dir, main page]

Hacker's Delight is a software algorithm book by Henry S. Warren, Jr. first published in 2002. It presents fast bit-level and low-level arithmetic algorithms for common tasks such as counting bits or improving speed of division by using multiplication.

Hacker's Delight
Hacker's Delight
Hacker's Delight First edition (2002)
AuthorHenry S. Warren, Jr.
LanguageEnglish
PublisherAddison-Wesley Professional
Publication date
2002
Publication placeUnited States
Pages306 (first edition), 494 (second edition)
ISBN0201914654 (Second edition 0321842685)
LC ClassQA76.6.W375

Background

edit

The author, an IBM researcher working on systems ranging from the IBM 704 to the PowerPC,[1] collected what he called "programming tricks" over the course of his career. These tricks concern efficient low-level manipulation of bit strings and numbers. According to the book's foreword by Guy L. Steele, the target audience includes compiler writers and people writing high-performance code.

Summary

edit

Programming examples are written in C and assembler for a RISC architecture similar, but not identical to PowerPC. Algorithms are given as formulas for any number of bits, the examples usually for 32 bits.

Apart from the introduction, chapters are independent of each other, each focusing on a particular subject. Many algorithms in the book depend on two's complement integer numbers.

The subject matter of the second edition of the book[1] includes algorithms for

  • Basic algorithms for manipulating individual bits, formulas for identities, inequalities, overflow detection for arithmetic operations and shifts
  • Rounding up and down to a multiple of a known power of 2, the next power of 2 and for detecting if an operation crossed a power-of-2 boundary
  • Checking bounds
  • Counting total, leading and trailing zeros
  • Searching for bit strings
  • Permutations of bits and bytes in a word
  • Software algorithms for multiplication
  • Integer division
  • Efficient integer division and calculating of the remainder when the divisor is known
  • Integer square and cube roots
  • Unusual number systems, including base -2
  • Transfer of values between floating point and integer
  • Cyclic redundancy checks, error-correcting codes and Gray codes
  • Hilbert curves including a discussion of applications

Style

edit

The style is that of an informal mathematical textbook. Formulas are used extensively. Mathematical proofs are given for some non-obvious algorithms, but are not the focus of the book.

Reception

edit

Overall reception has been generally positive.[2][3]

Publication history

edit

The book was published by Addison-Wesley Professional. The first edition was released in 2002[4] and the second in 2013.[1] Japanese language edition of this book was published by SIBaccess Co. Ltd., in 2004.

See also

edit

References

edit
  1. ^ a b c Warren Jr., Henry S. (2013). Hacker's Delight (2 ed.). Addison Wesley - Pearson Education, Inc. ISBN 978-0-321-84268-8.
  2. ^ Baxter, Michael (2003-04-01). "Hacker's Delight". Reviews. Linux Journal. Archived from the original on 2020-09-27. Retrieved 2021-08-28.
  3. ^ Maxfield, Clive "Max" (2012-04-05). "Book Review: Engineer's Bookshelf - Hacker's Delight by Henry S. Warren, Jr". EE Times. Archived from the original on 2017-04-02. Retrieved 2017-04-02.
  4. ^ Warren Jr., Henry S. (2002). Hacker's Delight (1 ed.). Addison Wesley. ISBN 978-0-201-91465-8.

Further reading

edit
edit