Spec-Zone.ru › Ada 95
Справочник по Ada 95

3.5.6 Типы вещественных чисел

Типы вещественных чисел представляют приближения действительных чисел, с относительными границами ошибок для типов с плавающей точкой и с абсолютными границами для типов с фиксированной точкой.

Синтаксис

real_type_definition ::=
floating_point_definition | fixed_point_definition

Статическая семантика

Тип, определённый real_type_definition, неявно выводится из root_real, безымянного предопределенного (специфического) типа вещественного числа. Следовательно, все типы вещественных чисел, будь то с плавающей или фиксированной точкой, находятся в классе производных, укоренённом в root_real.
Вещественные литералы относятся к типу universal_real, универсальному типу (см. 3.4.1) для класса, укоренённого в root_real, что позволяет использовать их с операциями любого типа вещественного числа. Некоторые операторы умножения имеют тип результата universal_fixed (см. 4.5.5), универсальный тип для класса типов с фиксированной точкой, позволяя использовать результат умножения или деления там, где ожидается любой конкретный тип с фиксированной точкой.

Динамическая семантика

Выработка real_type_definition состоит из выработки floating_point_definition или fixed_point_definition.

Требования к реализации

Реализация должна выполнять вычисление в реальном времени использования предопределенного оператора root_real с точностью не ниже, чем любая тип с плавающей точкой, определяемый floating_point_definition.

Разрешения для реализации

При выполнении предопределённой операции над типом вещественного числа, реализация не должна генерировать ошибку Constraint_Error, если результат выходит за пределы базового диапазона типа, при условии, что правильный результат получен, или атрибут Machine_Overflows типа равен false (см. G.2).
Реализация может предоставить нестандартные типы вещественных чисел, потомки root_real, которые объявляются вне спецификации пакета Standard, которые не должны иметь всех стандартных характеристик типа, определённого real_type_definition. Например, нестандартный тип вещественного числа может иметь несимметричный или беззнаковый базовый диапазон, или его предопределённые операции могут обнуляться или «насыщаться» вместо переполнения (модулярная или насыщающая арифметика), или он может не соответствовать модели точности (см. G.2). Любой тип, полученный от нестандартного типа вещественного числа, также является нестандартным. Реализация может установить любые произвольные ограничения на использование таких типов; определено ли реализацией, что операторы, которые предопределены для «любого типа вещественного числа», определены для конкретного нестандартного типа вещественного числа, зависит от реализации. В любом случае, такие типы не допускаются в качестве explicit_generic_actual_parameter для формальных скалярных типов — см. 12.5.2.
ПРИМЕЧАНИЯ
32 Как указано, вещественные литералы относятся к безымянному предопределённому типу вещественного числа universal_real. Другие типы вещественных чисел не имеют литералов. Однако правила разрешения перегрузки (см. 8.6) позволяют использовать выражения типа universal_real, когда ожидается тип вещественного числа.


Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API