Changes between Version 91 and Version 92 of IR
- Timestamp:
- 11/29/15 20:24:30 (10 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
IR
v91 v92 112 112 * `HerbrandInt` : Herbrand integers. Values are unsimplified symbolic expressions. 113 113 * `Real` : the mathematical real numbers 114 * `Float[e,f]`, `e`, `f` are concrete integers, each at least 1. 115 * IEEE754 floating point numbers 114 * `Float[e,f]`, `e`, `f` are concrete integers, each at least 1. 115 * IEEE754 floating point numbers. This type includes NaNs, negative 0s, infinities, etc. 116 116 * `HerbrandReal` : Herbrand real numbers. Values are unsimplified symbolic expressions. 117 117 * `Tuple[<T0, T1, ...>]`: a tuple type, the Cartesian product of `T0`, `T1`, ... … … 193 193 * `neg(e)` : negative. Argument may have any numeric type; result has same type. 194 194 * `lt(e1,e2)`, `lte(e1,e2)`: less than/less than or equal to. Arguments must have same numeric type. 195 * `round(e)`: given a real or floating number, returns the nearest `Integer`. The argument may be any real or floating type. n+1/2 is rounded to ?. (Could add a rounding mode.) 196 * `floor(e)`: given a real or floating number, returns the greatest `Integer` less that or equal to it. 197 * `ceil(e)` 195 * `round(e,t)`: returns value in numerical type `t` that is "closest" to the given value `e` 196 * add argument for rounding mode? 197 * exception if out of range? 198 * `floor(e)` : given a real or floating number, returns the greatest `Integer` less than or equal to it. 199 * `ceil(e)` : given a real or floating number, returns the least `Integer` greater than or equal to it. 198 200 * `abs(e)`: given any numeric expression e, returns the absolute value; result is same type as `e`. 199 201 * `pow(e,n)`: given any numeric expression e and expression `n` of any integral type, returns e to the n-th power. `n` must evaluate to a nonnegative integer. 200 202 * `herbrand(e)`: given a Real or Float value, returns the value as a `HerbrandReal`. Given an `Integer` or `Int` value, returns the value as a `HerbrandInt`. 201 * functions for conversation floats to reals and back. 203 * `real(e)`: given any numerical value e, returns it as a real number 204 * functions for converting floats to reals and back. 202 205 * functions for converting between Ints and Integers -- or is there a subtype relation? If so, it must respect all operations. 203 206 … … 217 220 * `seq_append(a1,a2)` : array obtained by concatenating two arrays. Original array not modified. 218 221 * `seq_remove(a,i)` : array obtained by removing element at position i from a. Original array a not modified. 222 * `seq_insert(a,i,x)` : array obtained by inserting an element x at position i in a. 223 * `seq_length(a)` : returns length of array a (an `Integer`) 219 224 * `bit_and(e1, e2)`, `bit_or(e1, e2)`, `bit_xor(e1, e2)`, `bit_comp(e1)` : bit-wise operations: arguments are arrays of booleans of equal length. 220 225
