# **Data model**

*expression fast calculations: Data model*

## datamodel

- MemoryArray based processing (as with R and IDL). Computers are fast in calculating with arrays in internal memory. The GeoDMS uses this strentgh by calculating in this manner.
- Memory Mapped Files utilizes the paging mechanism to have data outside the working set standby without occupying Virtual Address Space.
- SubByte value types are supported. This means that in one DWORD, 32 booleans, 16 Uint2 values (of 2 bits each) or 8 Uint4 values (of 4 bits each) can be stored.
- Arrays of sequences (such as text strings, or polygons) are implemented as dual arrays (one index array and one element value array) to avoid heap memory allocations per object.
- Geometric data elements can also be configured with single precision (32 bit) floating point coordinates and 32 and 16 bits integer coordinates (both signed and unsigned) (most GIS software only support double precision coordinates.
- Tiling (also known as Segmentation for non rasterdata) limits the use of the Virtual Address Space (VAS) and divides calculations into smaller tasks. Large arrays are split up in multiple smaller arrays.
- For most operations, type specific variants have been compiled that specialize operations for values with SubByte types, SequenceArrays, and the 6 point types for geometric values.