Blog

A 63-bit floating-point type for 64-bit OCaml
Pascal Cuoq on 9 May 2013

The OCaml runtime The OCaml runtime allows polymorphism through the uniform representation of types. Every OCaml value is represented as a single word, so that it is possible to have a single implementation for, say, “list of things”, with functions to access (e.g. List.length) and build (e.g. List.map) these lists...

Read More

Definition of FLT_EPSILON
Pascal Cuoq on 9 May 2013

Correct and wrong definitions for the constant FLT_EPSILON If I google “FLT_EPSILON”, the topmost result is this page with this definition: FLT_EPSILON the minimum positive number such that 1.0 + FLT_EPSILON != 1.0. No no no no no. I don't know where this definition originates from but it is obviously...

Read More

Rounding float to nearest integer, part 3
Pascal Cuoq on 4 May 2013

Two earlier posts showed two different approaches in order to round a float to the nearest integer. The first was to truncate to integer after having added the right quantity (either 0.5 if the programmer is willing to take care of a few dangerous inputs beforehand or the predecessor of...

Read More

Rounding float to nearest integer, part 2
Pascal Cuoq on 3 May 2013

The previous post offered to round a positive float to the nearest integer represented as a float through a conversion back and forth to 32-bit unsigned int. There was also the promise of at least another method. Thanks to reader feedback there will be two. What was intended to be...

Read More

Harder than it looks: rounding float to nearest integer, part 1
Pascal Cuoq on 2 May 2013

This post is the first in a series on the difficult task of rounding a floating-point number to an integer. Laugh not! The easiest-looking questions can hide unforeseen difficulties, and the most widely accepted solutions can be wrong. Problem Consider the task of rounding a float to the nearest integer....

Read More