如何使 Ada 数学函数使用双精度(长浮点数)变量?
How to make Ada math function use double precision (Long float)variables?
Ada 的标准数学函数如sin、cos、*、/ 等仅支持Float 类型变量作为输入和输出。是否可以使这些函数处理输入和输出变量的双精度或 long_float?
实际上(幸运的是)支持任何精度的数学函数。
with Ada.Numerics.Generic_Elementary_Functions;
...
type Real is digits 15;
package REF is new Ada.Numerics.Generic_Elementary_Functions (Real);
use REF;
你应该找到
Ada.Numerics.Long_Elementary_Functions
(对于Long_Float
)
Ada.Numerics.Short_Elementary_Functions
(对于Short_Float
)
以及
Ada.Numerics.Elementary_Functions
(对于 Float
)。
参见 ARM A.5.1(9)。
Ada 的标准数学函数如sin、cos、*、/ 等仅支持Float 类型变量作为输入和输出。是否可以使这些函数处理输入和输出变量的双精度或 long_float?
实际上(幸运的是)支持任何精度的数学函数。
with Ada.Numerics.Generic_Elementary_Functions;
...
type Real is digits 15;
package REF is new Ada.Numerics.Generic_Elementary_Functions (Real);
use REF;
你应该找到
Ada.Numerics.Long_Elementary_Functions
(对于Long_Float
)Ada.Numerics.Short_Elementary_Functions
(对于Short_Float
)
以及
Ada.Numerics.Elementary_Functions
(对于Float
)。
参见 ARM A.5.1(9)。