Numeric Precision

Numeric precision is an important topic. By default, all Scenome databases use 64-bit double precision floating point coordinates. You can also elect to choose 32-bit single precision floating point coordinates, but be aware: changing from 64-bit to 32-bit is a hard change that you cannot undo. Furthermore, such changes are likely to produce visual changes in your database.

Single Precision [32-bit, Float]

A single-precision (float) coordinate can store between six and seven values. This allows for coordinate ranges into the ten-thousands and sub-precision into the hundredths on the decimal side. Databases generally require no less than hundredths on the decimal side, so a single-precision database only provides high-precision for databases less than two miles.

9999.999 represents integral precision up to 9999 ft and decimal precision to the thousandths. This is very precise for small-scale databases (less than two miles.) When database coordinates pass ten-thousand units, as in 11,120.99, integral precision increases to 99,999 while decimal precision is limited to the hundredths because one of the decimal values must be dropped (by rounding) in order for integral precision to increase from a maximum of 9999 to 99,999. Decimal precision to the hundredths place is acceptable, as this still contains enough precision for single-precision databases of less than 19 miles.

As soon as database coordinates pass one-hundred-thousand units, as in 125000.9, integral precision increases to 999,999 while decimal precision is limited to the tenths because one of the decimal values is dropped as integral precision increases from a maximum of 99999 to 999,999. Decimal precision to the tenths is not acceptable if there will be close examination of ground-based structures. It is probably okay for flight simulations. You can certainly create enormous databases with single-precision coordinates, but there will always be a visual trade-off as coordinate range increases.

Sample single-precision coordinates:

Double Precision [64-bit, Double]

By default, all Scenome databases are stored with double-precision (64-bit) database coordinates. This makes the databases slightly larger on the hard disk, but does not really create a performance problem since all Pentium® chips [586 or higher] can natively perform double-precision math. Game consoles have different limitations, which are discussed later.

A double-precision (double) coordinate can store between 15 and 16 values. This allows for coordinate ranges into the hundred-billions and sub-precision into the hundred-thousandths on the decimal side. Double-precision coordinates are sufficient for all databases.

999,999,999.99999 represents integral precision up to almost one billion feet and decimal precision to the hundred-thousandths. Extremely precise for enormous databases, and there are still one or two numbers left for either side. It is unlikely that anyone would ever use these coordinate ranges on databases that are not "inter-planetary" in scale. Double precision has the potential to store a nine-hundred-billion number with decimal precision to the millionths place.

It is unwise to convert a database from double-precision to single precision unless you need to do so. Switching to lower mathematic precisions can introduce visual changes to the database such as shimmering or imprecise vertex positions. Set a database to single-precision before creating any geometry if for some reason you need to work with low-precision coordinates. Switching from single-precision to double-precision may introduce some rounding errors, but those are generally not noticeable when there is an increase in precision.

Sample double-precision coordinates: