Changes between Version 140 and Version 141 of IR
- Timestamp:
- 01/11/16 19:28:17 (10 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
IR
v140 v141 109 109 * `Domain[n]`, n is an integer at least 1; subtype of `Domain` in which all tuples have arity n. 110 110 * `Enum` types. 111 * **different from integers or like C?**111 * different from integers or like C 112 112 * The **numeric types** 113 113 * The **integral types** … … 116 116 * `lo`, `hi` are concrete (?) integers, `wrap` is boolean 117 117 * finite interval of integers `[lo,hi]`. If `wrap` is true then all operations "wrap", otherwise, any operation resulting in a value outside of the interval results in an exception being thrown. 118 * **Do we want to allow `lo` and `hi` to be any values of type `Integer`, which means they are dynamic types, like complete array types?**118 * `lo` and `hi` can be any values of type `Integer`, so they are dynamic types, like complete array types 119 119 * The **real types** 120 120 * `Real` : the mathematical real numbers 121 121 * `Float[e,f]`, `e`, `f` are concrete integers, each at least 1. 122 * IEEE754 floating point numbers. This type includes NaNs, negative 0s, infinities, etc.122 * IEEE754 floating point numbers. This type includes `NaNs`, negative 0s, infinities, etc. 123 123 * Herbrand[T], for a non-Herbrand numeric type `T` 124 124 * the values of this type are (unsimplified) symbolic expressions. Each numeric operator is treated as an uninterpreted function. The leaf nodes in an expression are values of type `T`. Two values are equal iff the two symbolic expressions are identical (using equality in `T` on the leaf nodes). A value of Herbrand type may therefore be thought of as representing an expression in `T` but where all the numerical operations have been "delayed".
