我正在尝试在C ++中创建一个基于模板的任意精度浮点库,它支持变量Exponents和变量Mantissa,可以指定为模板参数。我已经开发了一个基于模板的Fixed Point库。我想要的实现类型是:
template<int EXPONENT_BITS, int MANTISSA_BITS>
struct fp_float
{
<some_data_type_to_store_exponent_and_mantissa_values>;
};
我无法找到合适的数据类型来存储指数,因此我不会使用比代码所需更多的位。我考虑过将intn_t
用于n = {8, 16, 32, 64}
,但如果我声明fp_float<3,11>
,它将使用8
位用于EXPONENT
和16
位{ {1}}。
因此,它使整个库无用,因为它使用的资源超过了它应该达到的指定精度。
我想知道是否有任何其他任意精度数据类型符合我的目的。
我确实遇到了一些任意精度库,但这些库有一些代码结构无法使用高级综合合成到硬件描述中(这就是我制作这个库的原因)。
答案 0 :(得分:1)
这是一个有效的解决方案吗? base_int_t是一种特征类型,它为您提供在后续位域定义中使用的基本类型。以下代码缺少N&gt;的特化。 2
<!DOCTYPE html>
<html>
<head>
<link rel="stylesheet" href="style.css">
</head>
<body ng-app="test">
<h1>Hello Plunker!</h1>
<input type="text" ng-model="ftr">
<ul ng-controller="TestController">
<li ng-repeat="item in list | filter : {name : ftr}">
<button class="item" ng-click='getEvent()'>{{ item.name }}</button>
</li>
</ul>
<script src="https://code.jquery.com/jquery-2.1.4.min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.4.2/angular.min.js"></script>
<script src="app.js"></script>
</body>
</html>
答案 1 :(得分:1)
您可以使用Mentor Graphics的ac_datatypes中的ac_int。
https://www.mentor.com/hls-lp/downloads/ac-datatypes
它在模拟和HLS中也是免费的和可用的。