linear-algebra - 优雅的下溢

标签 linear-algebra scientific-computing underflow

我一直在寻找这个问题,但我无法理解这个问题的含义。

问题:

Write a program in any language to determine how your computer handles graceful 
underflow.

我知道溢出条件是这样的:
如果整数可以存储 x 的最大值 如果我们分配一个值 x+1 ,值 x+1 将转换为整数可以容纳的最小值。我知道下溢正好相反。

从高性能科学计算/线性代数的角度来看,它如何?

我读过这篇 link ,但我认为它与我上面提到的下溢/溢出内容相同。优雅的下溢代表什么?

最佳答案

好的,根据@StoneBird 在 this link 中发布的链接特别有帮助。在这里,我在 c 中创建了一个演示相同的程序。

#include <stdio.h>
#include <math.h>

int main(int argc, char **argv)
{
    unsigned int s,e,m;
    unsigned int* ptr;
    float a,temp=0;
    a=1;
    float min=pow(2,-129);
    while(a>min){
        temp=a;
        a=a/2;
    }
    printf("Value=%e\n",temp);
    ptr=(unsigned int*)&temp;
    s = *ptr >> 31;
    e = *ptr & 0x7f800000;
    e >>= 23;
    m = *ptr & 0x07fffff;
    printf("sign = %x\n",s);
    printf("exponent = %x\n",e);
    printf("mantissa = %x\n",m);
    return 0;
}

这里分钟 变量用于更改最终数字...我使用 min=pow(2,-129)、pow(2,-128) 和 pow(2,-130) 来查看结果,然后看到了 Denormal数字出现。这个维基页面解释了这一切。

关于linear-algebra - 优雅的下溢,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26727611/

相关文章:

python - 创建一个 Numpy 矩阵,存储输入 ndarray 的打乱版本

open-source - 在哪里可以找到有助于科学的编程项目?

MySQL 错误代码 : 1264 Out of range value for column 'count' at row 1

c++ - 在C++中找到对称矩阵的正交基

machine-learning - 神经网络激活函数的选择

c - GSL 线性代数示例失败

python - 基于概率的真假输出

algorithm - HMM 正向算法中的下溢

r - 在 R 中处理非常小的数字

vector - 在 clojure 中,通过内核对向量进行卷积的有效方法是什么?