acm-header
Sign In

Communications of the ACM

Blogroll


bg-corner

Science and Technology links (April 7th, 2018)
From Daniel Lemire's Blog

Science and Technology links (April 7th, 2018)

Mammals have a neocortex, some kind of upper layer on top of our ancestral brain. It is believed to be the key evolutionary trick that makes mammals smarts. Yet...

Caching hash values for speed (Swift-language edition)
From Daniel Lemire's Blog

Caching hash values for speed (Swift-language edition)

In my posts Should you cache hash values even for trivial classes? and When accessing hash tables, how much time is spent computing the hash functions?, I showed...

Science and Technology links (March 30th, 2018)
From Daniel Lemire's Blog

Science and Technology links (March 30th, 2018)

People who score higher on intelligence tests tend to have larger brains. Twin studies suggest the same genetic factors influence both brain size and intelligence...

Should you cache hash values even for trivial classes?
From Daniel Lemire's Blog

Should you cache hash values even for trivial classes?

Hash tables are a fundamental data structure in computing, used to implement maps and sets. In software, we use hash values to determine where objects are located...

When accessing hash tables, how much time is spent computing the hash functions?
From Daniel Lemire's Blog

When accessing hash tables, how much time is spent computing the hash functions?

Suppose that you create a large set of objects that you store in a hash table. Let us take 10 millions objects. It is large enough that it probably will not fit...

When shuffling large arrays, how much time can be attributed to random number generation?
From Daniel Lemire's Blog

When shuffling large arrays, how much time can be attributed to random number generation?

It is well known that contemporary computers don’t like to randomly access data in an unpredictible manner in memory. However, not all forms of random accessesContinue...

Science and Technology links (March 23rd, 2018)
From Daniel Lemire's Blog

Science and Technology links (March 23rd, 2018)

Sending your kids to highly selective schools is maybe less useful than you think: “However, once we controlled for factors involved in pupil selection, (…) the...

Science and Technology links (March 16th, 2018)
From Daniel Lemire's Blog

Science and Technology links (March 16th, 2018)

From the beginning of the 20th century to 2010, the life expectancy at birth for females in the United States increased by more than 32 years. The 3 major causes...

Iterating over hash sets quickly in Java
From Daniel Lemire's Blog

Iterating over hash sets quickly in Java

There are many ways in software to represent a set. The most common approach is to use a hash table. We define a “hash function” that takes as an input our elements...

Science and Technology links (March 9th, 2018)
From Daniel Lemire's Blog

Science and Technology links (March 9th, 2018)

The Audi A8, which goes on sale this year, will be the first car to offer Level 3 autonomy, which means that as a driver, you are expected to be able to relinquish...

Iterating over set bits quickly (SIMD edition)
From Daniel Lemire's Blog

Iterating over set bits quickly (SIMD edition)

Suppose that you have a long sequence of bits 10101011100000… you want to visit all the bits set to 1. That is, given 10101011100000, you would like to get theContinue...

Science and Technology links (March 2nd, 2018)
From Daniel Lemire's Blog

Science and Technology links (March 2nd, 2018)

Flashing lights might cure Alzheimer’s, according to Nature. There is no paradox: being obese is definitively bad for you. Class attendance predicts success inContinue...

Vectorized shifts: are immediates faster?
From Daniel Lemire's Blog

Vectorized shifts: are immediates faster?

Our processors are all equipped with vector instructions also called SIMD (single instruction multiple data). One common instruction is the “shift”. Roughly speaking...

Science and Technology links (February 24th, 2018)
From Daniel Lemire's Blog

Science and Technology links (February 24th, 2018)

Samsung is manufacturing and will sell 30TB hard drives. That’s huge. It is enough to record everything you see and hear for three years. Of the cases of early-onset...

Iterating over set bits quickly
From Daniel Lemire's Blog

Iterating over set bits quickly

A common problem in my line of work is to iterate over the set bits (bits having value 1) in a large array. My standard approach involves a “counting trailing zeroes...

Science and Technology links (February 16th, 2018)
From Daniel Lemire's Blog

Science and Technology links (February 16th, 2018)

In all countries, in all years–without exception–girls did better than boys in academic performance (PISA) tests. Vinod Khosla said: There are, perhaps, a few hundred...

Science and Technology links (February 9th, 2018)
From Daniel Lemire's Blog

Science and Technology links (February 9th, 2018)

We shed 50 million skin cells every day. A mutant crayfish reproduces by cloning. To my knowledge, this might be the largest animal to reproduce by cloning. Before...

Don’t underestimate the nerds
From Daniel Lemire's Blog

Don’t underestimate the nerds

I’m a little nerdy. According to my wife, I even look like a nerd. I am not very big. I have a long resume posted online, and I’ll proudly post my follower count...

Science and Technology links (February 2nd, 2018)
From Daniel Lemire's Blog

Science and Technology links (February 2nd, 2018)

Most mammals, including human beings, age according to a Gompertz curve. It is a fancy way of saying that your risk of death goes up exponential with age. Naked...

Picking distinct numbers at random: benchmarking a brilliant algorithm (JavaScript edition)
From Daniel Lemire's Blog

Picking distinct numbers at random: benchmarking a brilliant algorithm (JavaScript edition)

Suppose you want to choose m distinct integers at random within some interval ([0,n)). How would you do it quickly? I have a blog post on this topic dating back...
Sign In for Full Access
» Forgot Password? » Create an ACM Web Account