Lines Matching full:numeric
16 This section provides definitions of terms used in the Numeric Conversion library.
145 [section Numeric Types]
152 Within this library, the term ['number] refers to an abstract numeric value.
154 A type is [*numeric] if:
158 * Represents numeric abstract values (i.e. numbers).
165 A numeric type is [*signed] if the abstract values it represent include negative numbers.
167 A numeric type is [*unsigned] if the abstract values it represent exclude negative numbers.
169 A numeric type is [*modulo] if it has modulo-arithmetic (does not overflow).
171 A numeric type is [*integer] if the abstract values it represent are whole numbers.
173 A numeric type is [*floating] if the abstract values it represent are real numbers.
177 A [*numeric value] is the typed value of a numeric type
181 numeric types and values, but not vice versa, since user-defined numeric types are not
184 The following examples clarify the differences between arithmetic and numeric
188 // A numeric type which is not an arithmetic type (is user-defined)
189 // and which is intended to represent integer numbers (i.e., an 'integer' numeric type)
199 // A 'floating' numeric type (double) which is also an arithmetic type (built-in),
200 // with a float numeric value.
203 // A 'floating' numeric type with a whole numeric value.
204 // NOTE: numeric values are typed valued, hence, they are, for instance,
209 // An integer numeric type with an integer numeric value.
217 Given a number set `N`, some of its elements are representable in a numeric type `T`.
219 The set of representable values of type `T`, or numeric set of `T`, is a set of numeric
223 values of type `int`, i.e. the `int` numeric set, and corresponds to the representation
228 numeric set, which corresponds to the subset of the real numbers from `abt(-DBL_MAX)` to
233 Let [*`next(x)`] denote the lowest numeric value greater than x.
235 Let [*`prev(x)`] denote the highest numeric value lower then x.
237 Let [*`v=prev(next(V))`] and [*`v=next(prev(V))`] be identities that relate a numeric
240 An ordered pair of numeric values `x`,`y` s.t. `x<y` are [*consecutive] iff `next(x)==y`.
242 The abstract distance between consecutive numeric values is usually referred to as a
244 magnitude is relative to the numeric values it corresponds to: If the numeric set
246 numeric values varies along the set -as is the case with the floating-point types-,
247 the magnitude of 1ulp after the numeric value `x` might be (usually is) different
248 from the magnitude of a 1ulp after the numeric value y for `x!=y`.
250 Since numbers are inherently ordered, a [*numeric set] of type `T` is an ordered sequence
251 of numeric values (of type `T`) of the form:
260 A numeric set is discrete. It has a [*size] which is the number of numeric values in the set,
275 A range is a set of abstract values and not a set of numeric values. In other
277 for `numeric set`, that is, as the ordered sequence of numeric values from `l` to `h`.
279 numeric set.
281 For example, the sequence `[-DBL_MAX,DBL_MAX]` is the numeric set of the type
285 unlike its numeric set.
289 * [*(a)] The discrete set of numeric values is already given by the numeric set.
295 The width of a numeric set, as defined, is exactly equivalent to the width of a range.
299 The [*precision] of a type is given by the width or density of the numeric set.
303 The higher the number of bits the bigger the size of the numeric set, the wider the
330 Notice that a numeric type, such as a C++ unsigned type, can define that any `V` does
338 to the representation operation and not to the numeric value itself
339 (i.e. numeric values do not have any error themselves)
352 In particular, C++ requires numeric conversions (described below) and the result of
355 rounded, that is, the numeric value `r` which is the computed result is neither of
363 * A numeric type `Int` representing integer numbers with a
364 ['numeric set]: `{-2,-1,0,1,2}` and
366 * A numeric type `Cardinal` representing integer numbers with a
367 ['numeric set]: `{0,1,2,3,4,5,6,7,8,9}` and
369 * A numeric type `Real` representing real numbers with a
370 ['numeric set]: `{-2.0,-1.5,-1.0,-0.5,-0.0,+0.0,+0.5,+1.0,+1.5,+2.0}` and
372 * A numeric type `Whole` representing real numbers with a
373 ['numeric set]: `{-2.0,-1.0,0.0,+1.0,+2.0}` and
393 [section Standard (numeric) Conversions]
471 Given the following numeric types all representing real numbers:
473 * `X` with numeric set `{-2.0,-1.0,0.0,+1.0,+2.0}` and range `[-2.0,+2.0]`
474 * `Y` with numeric set `{-2.0,-1.5,-1.0,-0.5,0.0,+0.5,+1.0,+1.5,+2.0}` and range `[-2.0,+2.0]`
475 * `Z` with numeric set `{-1.0,0.0,+1.0}` and range `[-1.0,+1.0]`