acm-header
Sign In

Communications of the ACM

Blogroll


bg-corner

Science and Technology links (June 12th 2021)
From Daniel Lemire's Blog

Science and Technology links (June 12th 2021)

We completed the sequencing of the human genome. AstraZeneca’s drug Lynparza cut combined risk of recurrence of breast cancer or death by 42% among women in study...

Computing the number of digits of an integer even faster
From Daniel Lemire's Blog

Computing the number of digits of an integer even faster

I my previous blog post, I documented how one might proceed to compute the number of digits of an integer quickly. E.g., given the integer 999, you want 3 but given...

Computing the number of digits of an integer quickly
From Daniel Lemire's Blog

Computing the number of digits of an integer quickly

Suppose I give you an integer. How many decimal digits would you need to write it out? The number ‘100’ takes 3 digits whereas the number ’99’ requires only two...

All Models are Wrong
From Daniel Lemire's Blog

All Models are Wrong

All models are wrong, but some are useful is a common saying in statistics. It does not merely apply to statistics, however. It is general observation. Box (1976)...

Science and Technology links (May 22nd 2021)
From Daniel Lemire's Blog

Science and Technology links (May 22nd 2021)

Most computer chips today in flagship phones and computers use a process based on a 5 nm or larger resolution. Finer resolutions usually translate into lower energy...

Counting the number of matching characters in two ASCII strings
From Daniel Lemire's Blog

Counting the number of matching characters in two ASCII strings

Suppose that you give me two ASCII strings having the same number of characters. I wish to compute efficiently the number of matching characters (same position,...

Converting binary integers to ASCII characters: Apple M1 vs AMD Zen2
From Daniel Lemire's Blog

Converting binary integers to ASCII characters: Apple M1 vs AMD Zen2

Programmers often need to write integers as characters. Thus given the 32-bit value 1234, you might need a function that writes the characters 1234. We can useContinue...

Science and Technology links (May 15th 2021)
From Daniel Lemire's Blog

Science and Technology links (May 15th 2021)

There were rainforests near the south pole 90 million years ago. Though commercial exchanges are typically win-win for both the buyer and the seller, people tend...

Constructing arrays of Boolean values in Java
From Daniel Lemire's Blog

Constructing arrays of Boolean values in Java

It is not uncommon that we need to represent an array of Boolean (true or false) values. There are multiple ways to do it. The most natural way could be to construct...

The benefits of locality in random access
From Daniel Lemire's Blog

The benefits of locality in random access

Modern computers have several layers of memory, from fast cache (sometimes called L1) all the way to main memory (RAM). A lot of performance-critical code relies...

Science and Technology links (May 1st 2021)
From Daniel Lemire's Blog

Science and Technology links (May 1st 2021)

Growing your own food could lower your carbon footprint by 3-5%. In recent years, we have acquired the ability to measure biological age: your chronological age...

Ideal divisors: when a division compiles down to just a multiplication
From Daniel Lemire's Blog

Ideal divisors: when a division compiles down to just a multiplication

The division instruction is one of the most expensive instruction in your CPU. Thus optimizing compilers often compile divisions by known constants down to a multiplication...

Some useful regular expressions for programmers
From Daniel Lemire's Blog

Some useful regular expressions for programmers

In my blog post, My programming setup, I stressed how important regular expressions are to my programming activities. Regular expressions can look intimidatingContinue...

A trichotomy of intellectual activity
From Daniel Lemire's Blog

A trichotomy of intellectual activity

I like to separate intellectual work among three categories: Emulation: the reproduction or direct application of existing ideas. Most academic work and maybe most...

Science and Technology links (April 17th 2021)
From Daniel Lemire's Blog

Science and Technology links (April 17th 2021)

Moderna built their COVID 19 vaccine without having the virus on site. They viewed it as a software problem. Human and mice with red hair have elevated pain thresholds...

How fast can you sort arrays of integers in Java?
From Daniel Lemire's Blog

How fast can you sort arrays of integers in Java?

Programming languages come with sorting functions by default. We can often do much better. For example, Downs has showed that radix sort can greatly surpass default...

My programming setup
From Daniel Lemire's Blog

My programming setup

As my GitHub profile indicates, I program almost every single working day of the year. I program in C++, C, Go, Java, JavaScript, Python, R, Swift, Rust, C#; even...

Science and Technology links (March 27th 2021)
From Daniel Lemire's Blog

Science and Technology links (March 27th 2021)

Scientists, including climate-science researchers, often travel to faraway places for conferences. Attending a live conference is time consuming and expensive.Continue...

Counting cycles and instructions on the Apple M1 processor
From Daniel Lemire's Blog

Counting cycles and instructions on the Apple M1 processor

When benchmarking software, we often start by measuring the time elapsed. If you are benchmarking data bandwidth or latency, it is right measure. However, if you...

Apple’s M1 processor and the full 128-bit integer product
From Daniel Lemire's Blog

Apple’s M1 processor and the full 128-bit integer product

If I multiply two 64-bit integers (having values in [0, 264)), the product requires 128 bits. Intel and AMD processors (x64) can compute the full (128-bit) product...
Sign In for Full Access
» Forgot Password? » Create an ACM Web Account