acm-header
Sign In

Communications of the ACM

Blogroll


bg-corner

Converting integers to decimal strings faster with AVX-512
From Daniel Lemire's Blog

Converting integers to decimal strings faster with AVX-512

In most systems, integers are stored using a fixed binary representation. It is common to store integers using 32-bit or 64-bit words. You sometimes need to convert...

Writing out large arrays in Go: binary.Write is inefficient for large arrays
From Daniel Lemire's Blog

Writing out large arrays in Go: binary.Write is inefficient for large arrays

Programmers often need to write data structures to disk or to networks. The data structure then needs to be interpreted as a sequence of bytes. Regarding integer...

Enforcement by software
From Daniel Lemire's Blog

Enforcement by software

At my university, one of our internal software systems allows a professor to submit a revision to a course. The professor might change the content or the objectives...

The Canadian Common CV and the captured academy
From Daniel Lemire's Blog

The Canadian Common CV and the captured academy

Most Canadian academics have to write their resumes using a government online tool called the Common CV. When it was first introduced, it was described as a time...

How many digits in a product?
From Daniel Lemire's Blog

How many digits in a product?

We often represent integers with digits. E.g., the integer 1234 has 4 digits. By extension, we use ‘binary’ digits, called bits, within computers. Thus the integer...

The end of the monopolistic web era?
From Daniel Lemire's Blog

The end of the monopolistic web era?

Except maybe in totalitarian states, you cannot ever have a single publisher. Most large cities had multiple independent newspapers. In recent years, we saw a surge...

SWAR explained: parsing eight digits
From Daniel Lemire's Blog

SWAR explained: parsing eight digits

It is common to want to parse long strings of digits into integer values. Because it is a common task, we want to optimize it as much as possible. In the blog post...

What is the ‘range’ of a number type?
From Daniel Lemire's Blog

What is the ‘range’ of a number type?

In programming, we often represent numbers using types that have specific ranges. For example, 64-bit signed integer types can represent all integers between -9223372036854775808...

How programmers make sure that their software is correct
From Daniel Lemire's Blog

How programmers make sure that their software is correct

Our most important goal in writing software is that it be correct. The software must do what the programmer wants it to do. It must meet the needs of the user.Continue...

Science and Technology links (December 19th 2021)
From Daniel Lemire's Blog

Science and Technology links (December 19th 2021)

Becoming a physician increases the use of antidepressants, opioids, anxiolytics, and sedatives, especially for female physicians. When trying to reproduce results...

Science and Technology links (December 4th 2021)
From Daniel Lemire's Blog

Science and Technology links (December 4th 2021)

It used to be that all the exciting new processors came from Intel and AMD, and they were meant for your PC. The mobile revolution changed that: it lead to theContinue...

Can you safely parse a double when you need a float?
From Daniel Lemire's Blog

Can you safely parse a double when you need a float?

In C as well as many other programming languages, we have 32-bit and 64-bit floating-point numbers. They are often referred to as float and double. Most of systems...

Science and Technology links (Novembre 28th 2021)
From Daniel Lemire's Blog

Science and Technology links (Novembre 28th 2021)

Government-funded research is getting more political and less diverse: The frequency of documents containing highly politicized terms has been increasing consistently...

Are tenured professors more likely to speak freely?
From Daniel Lemire's Blog

Are tenured professors more likely to speak freely?

University professors often have robust job security after a time: they receive tenure. It means that they usually do not have to worry about applying for a new...

Converting integers to fix-digit representations quickly
From Daniel Lemire's Blog

Converting integers to fix-digit representations quickly

It is tricky to convert integers into strings because the number of characters can vary according to the amplitude of the integer. The integer ‘1’ requires a single...

Science and Technology links (Novembre 13rd 2021)
From Daniel Lemire's Blog

Science and Technology links (Novembre 13rd 2021)

Pacific rougheye rockfish can live hundreds of years while other rockfish barely live past ten years. Female condors can reproduce without males. The phenomenon...

Checking simple equations or inequalities with z3
From Daniel Lemire's Blog

Checking simple equations or inequalities with z3

When programming, you sometimes need to make sure that a given formula is correct. Of course, you can rely on your mastery of high-school mathematics, but human...

Stop spending so much time being trolled by billionaire corporations!
From Daniel Lemire's Blog

Stop spending so much time being trolled by billionaire corporations!

As a kid, my parents would open the television set, and we would get to watch whatever the state television decided we would watch. It was a push model. Some experts...

Science and Technology (October 31st 2021)
From Daniel Lemire's Blog

Science and Technology (October 31st 2021)

Though exoskeletons are exciting and they allow some of us to carry one with physical activities despite handicaps, they appear to require quite a bit of brainContinue...

In C, how do you know if the dynamic allocation succeeded?
From Daniel Lemire's Blog

In C, how do you know if the dynamic allocation succeeded?

In the C programming language, we allocate memory dynamically (on the heap) using the malloc function. You pass malloc a size parameter corresponding to the number...
Sign In for Full Access
» Forgot Password? » Create an ACM Web Account