Dyalog APL: Difference between revisions

Jump to navigation Jump to search
744 bytes added ,  10:08, 22 November 2019
(→‎Instruction set usage: Version numbers for x86 extension first usage)
Line 287: Line 287:
* 8-byte [[wikipedia:IEEE 754|double]]
* 8-byte [[wikipedia:IEEE 754|double]]
* 16-byte [[complex]] (one double for each component)
* 16-byte [[complex]] (one double for each component)
* 16-byte decimal float ([[wikipedia:Binary integer decimal|BID]] or [[wikipedia:Densely packed decimal|DPD]])
* 16-byte decimal float "decf" ([[wikipedia:Binary integer decimal|BID]] or [[wikipedia:Densely packed decimal|DPD]])


Character encodings differ for classic and unicode interpreters: classic interpreters use a custom 1-byte encoding for all characters, and are limited to a 256-character set, while unicode characters are 1-, 2-, or 4-byte unsigned [[wikipedia:code point|code point]] values.
[[Character]] encodings differ for classic and unicode interpreters: classic interpreters use a custom 1-byte encoding for all characters, and are limited to a 256-character set, while characters in unicode interpreters are 1-, 2-, or 4-byte unsigned unicode [[wikipedia:code point|code point]] values.
 
[[Nested]] and [[mixed array]]s (that is, [[pointer array]]s) are always stored as arrays of pointers, while [[simple array|simple]] numeric or character arrays are always stored using one of the above types. For both numbers and characters, an array may be represented using any type that can contain all the values. The interpreter may reduce the type of an array to the minimum possible ("squeeze" the array) during execution.
 
Because there is no [[complex]] representation using decimal floats for the components, arrays containing both decimal floats and complex numbers have no common representation. Dyalog converts such arrays to complex numbers, resulting in a loss of precision for decf elements.


=== Instruction set usage ===
=== Instruction set usage ===

Navigation menu