acm-header
Sign In

Communications of the ACM

Blogroll


Refine your search:
datePast Month
authorDaniel Lemire
bg-corner

Science and Technology links (November 26 2022)
From Daniel Lemire's Blog

Science and Technology links (November 26 2022)

Molière’s famous play, Tartuffe, the main characters is outwardly pious but fundamentally deceitful. Are people who insist on broadcasting their high virtue better...

Making all your integers positive with zigzag encoding
From Daniel Lemire's Blog

Making all your integers positive with zigzag encoding

You sometimes feel the need to make all of your integers positive, without losing any information. That is, you want to map all of your integers from ‘signed’ integers...

What is the size of a byte[] array in Java?
From Daniel Lemire's Blog

What is the size of a byte[] array in Java?

Java allows you to create an array just big enough to contain 4 bytes, like so: byte[] array = new byte[4]; How much memory does this array take? If you have answered...

Rounding modes: std::from_chars versus strtod/strtof
From Daniel Lemire's Blog

Rounding modes: std::from_chars versus strtod/strtof

A recent C++ standard (C++17) introduced new functions to parse floating-point numbers std::from_chars, from strings (e.g., ASCII text) to binary numbers. How should...

A fast function to check your floating-point rounding mode
From Daniel Lemire's Blog

A fast function to check your floating-point rounding mode

For speed, we use finite-precision number types in software. When doing floating-point computations in software, the results are usually not exact. For example,...

Measuring the memory usage of your C++ program
From Daniel Lemire's Blog

Measuring the memory usage of your C++ program

In C++, we might implement dynamic lists using the vector template. The int-valued constructor of the vector template allocates at least enough memory to storeContinue...

Modern vector programming with masked loads and stores
From Daniel Lemire's Blog

Modern vector programming with masked loads and stores

When you start a program, it creates a ‘process’ which own its memory. Memory is allocated to a software process in blocks called ‘pages’. These pages might span...
Sign In for Full Access
» Forgot Password? » Create an ACM Web Account