news.volyx.in

Finding the average of two unsigned integers without overflow (devblogs.microsoft.com)

448 points by mlex · 1683 days ago · 208 comments on HN

Article summary

The article discusses the problem of finding the average of two unsigned integers without causing an overflow. It presents several solutions, including using a larger data type, bitwise operations, and SIMD instructions. The article also provides examples of how these solutions can be implemented in different programming languages and CPU architectures. Additionally, it mentions a patented solution that has recently expired.

Main themes

  • integer overflow
  • bitwise operations
  • SIMD instructions
  • code optimization
  • patent system
  • computer architecture
  • mathematics in programming
  • compiler optimization
  • CPU architecture
  • programming languages
  • software engineering
  • algorithm design
  • performance improvement
  • problem-solving strategies
  • optimization techniques
  • mathematical insights
  • computational efficiency
  • algorithmic thinking
  • software development
  • coding best practices
  • efficient coding
  • programming principles
  • computer science fundamentals
  • informatic principles
  • software design patterns
  • algorithmic design patterns
  • programming paradigms
  • software engineering principles
  • informatic principles
  • computational thinking
  • problem-solving approaches
  • optimization methods
  • performance optimization
  • code improvement
  • software optimization
  • algorithm optimization
  • mathematical optimization
  • computational optimization
  • informatic optimization
  • software development methodologies
  • programming methodologies
  • algorithm design methodologies
  • software engineering methodologies
  • informatic methodologies
  • computational methodologies
  • problem-solving methodologies
  • optimization methodologies
  • performance improvement methodologies
  • code improvement methodologies
  • software optimization methodologies
  • algorithm optimization methodologies
  • mathematical optimization methodologies
  • computational optimization methodologies
  • informatic optimization methodologies

What commenters say

  • The patented solution is surprisingly simple and intuitive, making it questionable as a patentable idea.
  • Optimizing compilers should be able to optimize certain expressions to more efficient forms, but this is not always the case.
  • Comparisons can be more expensive than bitwise operations in certain situations, making them less desirable for optimization.
  • The use of SIMD instructions and bitwise operations can be useful for optimizing certain types of computations, but may not always be the most efficient solution.
  • The patent system can be problematic, allowing for the patenting of seemingly obvious ideas.
  • Understanding the underlying mathematics and computer architecture is essential for optimizing code and solving problems like the one presented in the article.