跳轉到內容

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;
華夏公益教科書