小编Ver*_*ian的帖子

余弦在浮点

我试图在浮点中实现余弦和正弦函数(但我没有浮点硬件).

由于我的处理器没有浮点硬件,也没有指令,我已经实现了浮点乘法,除法,加法,减法和平方根的算法.所以这些是我可以用来实现余弦和正弦的工具.

我正在考虑在这个站点使用CORDIC方法 但是,我使用newton的方法实现了除法和平方根,所以我希望使用最有效的方法.

请不要告诉我只是去看一本书或"纸张存在",不要开玩笑.我正在寻找众所周知的快速有效算法的名称.

floating-point binary trigonometry

6
推荐指数
1
解决办法
1300
查看次数

浮点单元的测试向量

我在Verilog中设计了一个32位单精度浮点乘法器和一个单独的加/减单元.

我在MATLAB中编写了一个脚本,它生成了一堆随机浮点数,并在Verilog中生成了一个测试平台.

我比较从ncverilog模拟那些从MATLAB的结果,并证实了我的倍增器工作正常,我的加/减正常工作为好.

但是,我想知道一个测试用例的列表,它会对我的浮点单元进行压力测试.有这样的清单吗?我知道像Softfloat一些节目,但测试的计算机的浮点运算,而不是能够合并与一个Verilog的测试平台.

我还应该提到我的单元不支持溢出,下溢等异常,并且不支持非规范化值.舍入模式是舍入到最近的.

谢谢!

floating-point verification

6
推荐指数
1
解决办法
1657
查看次数

如何在Matlab中绘制好看的箭头?

我一直试图在Matlab中绘制箭头,但它们看起来都很糟糕.另外,我希望我的箭头是一个实心三角形,而不是V.

我尝试使用Matlab文件交换中提供的软件包:箭头,箭头,箭头3,可能至少还有一个.

我甚至尝试在Matlab图形编辑器中手动创建一个箭头,但是当我调整线宽时,箭头看起来像这样:

在此输入图像描述

我使用注释命令创建上面的箭头:

annotation(gcf,'arrow',[0.621875 0.457916666666667],...
                       [0.205421152030217 0.40755429650614],...
                       'HeadLength',4,'LineWidth',5);
Run Code Online (Sandbox Code Playgroud)

这是尝试使用此处可用箭头包的结果:Arrow.m(注意底部箭头不垂直于线:

在此输入图像描述

我甚至试过以下,这是下面的结果(注意可怕的箭头):

 figure
 plot(1:10, 1:10)
 annotation(gcf,'arrow',[0.621875 0.457916666666667],...
                        [0.205421152030217 0.40755429650614],...
                        'HeadLength',4,'LineWidth',5);
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

matlab drawing graph figures matlab-figure

6
推荐指数
1
解决办法
2万
查看次数

舍入到浮点数的最近整数

如何将浮点数舍入到最接近的整数?我正在寻找二进制的算法,因为我必须在汇编中实现代码.

math floating-point binary integer rounding

5
推荐指数
1
解决办法
2527
查看次数

如何将MATLAB图最大化到全屏?

我在MATLAB中创建了一些数字,我运行了一个命令,在创建数字后将它们转换为.eps.

但是,我希望数字在保存到.eps之前最大化.我正在寻找一个命令告诉MATLAB将数字调整为屏幕大小.然后我想运行我的功能,保存到.eps.

有这样的方式吗?

我听说有可能指定图的像素宽度.我忘记了那个命令,所以如果你知道它,那将会有所帮助.

maximize_figure()如果可能的话,我真正想要的是某种功能.

matlab figure

4
推荐指数
1
解决办法
3万
查看次数

单精度浮点除法的最佳精度

如果只使用单精度加/减和乘法硬件(无FMA),是否可以执行除法并获得IEEE-754单精度正确值?

具体而言,如果在单精度硬件上执行用于执行浮点除法的Newton-Raphson方法,是否可以实现IEEE-754正确的结果?

c math floating-point assembly verilog

3
推荐指数
1
解决办法
568
查看次数

如何将MATLAB中struct所有字段的数据类型转换为double?

我在 matlab 中有一个名为mystruct的结构

它具有以下字段和以下类:

Field    Class
a       single
b       single
c       double
Run Code Online (Sandbox Code Playgroud)

我想将mystruct 的所有字段转换为 class double,但是当我尝试时:

double(mystruct)
Run Code Online (Sandbox Code Playgroud)

我从 MATLAB 得到以下输出:

??? Error using ==> double
Conversion to double from struct is not possible.
Run Code Online (Sandbox Code Playgroud)

此外,我仅以 mystruct为例。我意识到我可以手动单独投射每个字段,因为在这个例子中只有 3 个字段。我想知道如何将此转换为具有许多字段和子字段的 matlab 中的任何结构的两倍

matlab

3
推荐指数
1
解决办法
1668
查看次数

如何在matlab中的整个可能范围内生成均匀分布的随机浮点数

我试图在MATLAB中以单精度生成一个均匀分布的浮点值数组.

我想生成+/-(2-2 ^ -23)*2 ^ 127范围内的所有数字,它表示基于IEEE-754标准的可能32位浮点数的范围.问题是只生成大量数字,我想要包括小幅度数字(接近和包括0).如果我们取所有生成的数字的绝对值然后找到最小的(我已经复制了代码下面的输出),就会看到这种情况.

到目前为止,我在MATLAB中有这个代码:

numtogenerate = 20000;

% Preallocate for speed
generatednumber(numtogenerate) = 0;

for i = 1:numtogenerate
   generatednumber(i) =  rand*(2-2^-23)*2^127*2 - 2^127*(2-2^-23); 
end

minimum = min(generatednumber)
smallest = min(abs(generatednumber))
maximum = max(generatednumber)

hist(generatednumber)
Run Code Online (Sandbox Code Playgroud)

这是输出:

minimum =

 -3.4026e+038


smallest =

  8.4046e+033


maximum =

  3.4027e+038
Run Code Online (Sandbox Code Playgroud)

random floating-point matlab numbers

2
推荐指数
1
解决办法
1571
查看次数

计算此平方根时,什么被接受为IEEE-754正确的结果?

我有一个Newton-Raphson平方根算法,我使用它计算输入值的单精度平方根.然而,使用我输入的测试平台,我发现某些输入值不会收敛到最接近实际平方根的答案.当我说实际平方根时,我的意思是你得到的结果比32位IEEE-754更精确.结果,我想知道在执行IEEE-754中的平方根时所获得的正确值是什么.这个论坛上的一些人告诉我,最接近的值不一定是最正确的,这就是我要问的原因.

当计算单精度IEEE-754 32位值0x3f7fffff的平方根时,什么被认为是正确的结果?为什么?

此外,在计算0x7F7FFFFF的平方根时,什么被认为是正确的结果?

c++ math floating-point matlab computer-science

2
推荐指数
1
解决办法
393
查看次数

MATLAB如何摆脱减去两个数组的循环

我试图在不同大小的MATLAB中减去两个数组,我目前正在使用for循环,这需要很长的时间.有没有办法让下面的代码更快?我想知道是否可以以某种方式在没有for循环的情况下快速创建一个117x489x489的数组.

第一个数组a的尺寸为1x117,第二个数组b的尺寸为489x489.结果矩阵的尺寸为117x489x489.

这是我如何减去两个数组:

for i = 1:length(a)
  result(i) = a(i) - b;
end
Run Code Online (Sandbox Code Playgroud)

arrays algorithm matlab vector vectorization

2
推荐指数
1
解决办法
115
查看次数