跳转到内容

Ada 编程/库/System.Fat Gen

来自维基教科书,开放的书籍,为开放的世界

这个泛型包提供了一个与目标无关的浮点属性实现,这些属性表示函数。这里的实现是可移植的,但速度非常慢。运行时包含此包针对所有预定义浮点类型的实例化,这些实例化应尽可能地被更高效的汇编语言代码替换。

 subtype UI is Integer;

出于本包的目的,通用整数的运行时表示为整数。扩展器为实际使用的类型生成转换。对于返回通用整数的函数,不存在问题,因为结果始终在整数范围内。对于输入参数,扩展器必须执行一些特殊情况处理,以处理超出范围值的(非常令人讨厌的!)情况。如果我们使用 Long_Long_Integer 来表示通用整数,那么将不会出现问题,但由此产生的效率低下将令人讨厌。

 function Adjacent          (X, Towards : T)              return T;
 function Ceiling           (X : T)                       return T;
 function Compose           (Fraction : T; Exponent : UI) return T;
 function Copy_Sign         (Value, Sign : T)             return T;
 function Exponent          (X : T)                       return UI;
 function Floor             (X : T)                       return T;
 function Fraction          (X : T)                       return T;
 function Leading_Part      (X : T; Radix_Digits : UI)    return T;
 function Machine           (X : T)                       return T;
 function Model             (X : T)                       return T;
 function Pred              (X : T)                       return T;
 function Remainder         (X, Y : T)                    return T;
 function Rounding          (X : T)                       return T;
 function Scaling           (X : T; Adjustment : UI)      return T;
 function Succ              (X : T)                       return T;
 function Truncation        (X : T)                       return T;
 function Unbiased_Rounding (X : T)                       return T;
华夏公益教科书