Sign In

Communications of the ACM

Blogroll



Science and Technology links (July 11th 2020)
From Daniel Lemire's Blog

Science and Technology links (July 11th 2020)

Some upcoming Mercedes cars will have augmented reality head-up displays. Intel’s new standard for high-speed cables (thunderbolt) supports 3 GB/s bandwidth. (This...

GNU GCC does not round floating-point divisions to the nearest value
From Daniel Lemire's Blog

GNU GCC does not round floating-point divisions to the nearest value

I know that floating-point arithmetic is a bit crazy on modern computers. For example, floating-point numbers are not associative: 0.1+(0.2+0.3) == 0.599999999999999978...

Science and Technology links (June 20th 2020)
From Daniel Lemire's Blog

Science and Technology links (June 20th 2020)

UCLA researchers have achieved widespread rejuvenation in old mice through blood plasma diluation, a relatively simple process. (…) these results establish broad...

Computational overhead due to Docker under macOS
From Daniel Lemire's Blog

Computational overhead due to Docker under macOS

For my programming work, I tend to assume that I have a Linux environnement. That is true whether I am under Windows, under macOS or under a genuine Linux. HowContinue...

Reusing a thread in C++ for better performance
From Daniel Lemire's Blog

Reusing a thread in C++ for better performance

In a previous post, I measured the time necessary to start a thread, execute a small job and return. auto mythread = std::thread([] { counter++; }); mythread.join...

Science and Technology links (June 6th 2020)
From Daniel Lemire's Blog

Science and Technology links (June 6th 2020)

A small number of people are responsible for a disproportionate number of inventions and innovations. Why are these people different? Using neuroimaging techniques...

How Innovation Works (book review)
From Daniel Lemire's Blog

How Innovation Works (book review)

I read How Innovation Works by Matt Ridley in a few hours. It is a delicious book. Ridley distinguishes invention from innovation. The inventor creates something...

The Go compiler needs to be smarter
From Daniel Lemire's Blog

The Go compiler needs to be smarter

One of my favorite languages is the Go language. I love its simplicity. It is popular and useful in a cloud setting. Many popular tools are written in Go, and for...

Science and Technology links (May 30th 2020)
From Daniel Lemire's Blog

Science and Technology links (May 30th 2020)

We might soon be able to buy memory cards with speeds nearing 4 GB/s. For comparison, an expensive and recent macBook currently has a disk with a 2 GB/s bandwidth...

Mapping an interval of integers to the whole 64-bit range, fairly?
From Daniel Lemire's Blog

Mapping an interval of integers to the whole 64-bit range, fairly?

In my blog post A fast alternative to the modulo reduction, I described how one might map 64-bit values to an interval of integers (say from 0 to N) with minimal...

Programming inside in a container
From Daniel Lemire's Blog

Programming inside in a container

I have a small collection of servers, laptops and desktops. My servers were purchased and configured at different times. By design, they have different hardware...

Science and Technology links (May 16th 2020)
From Daniel Lemire's Blog

Science and Technology links (May 16th 2020)

Most of our processors, whether in our PCs or mobile phones, are 64-bit processors. In the case of your PC, it has been so for a couple of decades. Unfortunately...

Encoding binary in ASCII very fast
From Daniel Lemire's Blog

Encoding binary in ASCII very fast

In software, we typically work with binary values. That is, we have arbitrary streams of bytes. To encode these arbitrary stream of bytes in standard formats like...

Science and Technology links (May 2nd 2020)
From Daniel Lemire's Blog

Science and Technology links (May 2nd 2020)

As we age, we tend to produce less of NAD+, an essential chemical compound for our bodies. We can restore youthful levels of NAD+ by using freely available supplements...

For case-insensitive string comparisons, avoid char-by-char functions
From Daniel Lemire's Blog

For case-insensitive string comparisons, avoid char-by-char functions

Sometimes wew need to compare strings in a case-insensitive manner. For example, you might want ‘abc’ and ‘ABC’ to be considered. It is a well-defined problem for...

Sampling efficiently from groups
From Daniel Lemire's Blog

Sampling efficiently from groups

Suppose that you have to sample a student at random in a school. However, you cannot go into a classroom and just pick a student. All you are allowed to do is to...

Science and Technology links (April 25th 2020)
From Daniel Lemire's Blog

Science and Technology links (April 25th 2020)

People’s muscles tends to become weaker with age, a process called sarcopenia. It appears that eating more fruits and vegetables is associated with far lower risks...

Rounding integers to even, efficiently
From Daniel Lemire's Blog

Rounding integers to even, efficiently

When dividing a numerator n by a divisor d, most programming languages round “down”. It means that 1/2 is 0. Mathematicians will insist that 1/2 and claim thatContinue...

Science and Technology links (April 11th 2020)
From Daniel Lemire's Blog

Science and Technology links (April 11th 2020)

Greenland sharks reach their sexual maturity when they are 150 years old and they live hundreds of years. Some living sharks today were born in the 16th century...

Multiplying backward for profit
From Daniel Lemire's Blog

Multiplying backward for profit

Most programming languages have integer types with arithmetic operations like multiplications, additions and so forth. Our main processors support 64-bit integers...
Sign In for Full Access
» Forgot Password? » Create an ACM Web Account