由买买提看人间百态

topics

全部话题 - 话题: 浮点数
首页 上页 1 2 3 4 5 6 7 8 下页 末页 (共8页)
t****t
发帖数: 6806
1
建议先学浮点数是怎么用二进制表示的
k****f
发帖数: 3794
2
来自主题: Programming版 - 这种数值的问题怎么办呢
做laplace逆变换
中间结果是一堆浮点数求和:有大有小,有正有负
大的能够到10^40,小的能小到10^(-40),
求和结果是应该在10^(-40)附近。
现在程序写出来,可是不稳定。。
经常变成负的(应该是正的结果)。
有谁给推荐一个数值稳定的laplace变换软件包
不能用bignum,速度实在是太慢了。
s****u
发帖数: 118
3
来自主题: Programming版 - What is the exponential operator for C++?
底数是e,用exp(double)
指数是整数,直接乘
指数是浮点数,用pow(double, double)
t****t
发帖数: 6806
4
来自主题: Programming版 - sscanf problem in MSVC 7
没听说过直接比较两个浮点数相等的
p***o
发帖数: 1252
5
来自主题: Programming版 - 请问这是什么错误呀

据说是因为浮点数的内部表示问题,标准14.1直接说不行。
只在class内部可见,无所谓public/private/protected了。
k****f
发帖数: 3794
6
来自主题: Programming版 - a C++ interview question..........
浮点数表示总有有误差的。。。
c*****a
发帖数: 55
7
来自主题: Programming版 - 浮点数对比
real x;
if (x!=600) ...
对比的时候是把x 变成整型后再比么?怎么能保成不改变x的情况下进行对比阿?
谢谢。
l*****c
发帖数: 1153
8
来自主题: Programming版 - 浮点数对比
600.0
x****u
发帖数: 44466
9
来自主题: Programming版 - double转换int的问题
显然小的很啊,你搜搜汇编语言里面说的浮点数的含义,就明白了。
X****r
发帖数: 3557
10
来自主题: Programming版 - 问一个小程序python得
既然z = y + w ,那输出z 自然就是把y 和w 重新输出一遍,不然呢?
如果你要执行数学运算,先把字符串转换成整数或者浮点数,调用int或float即可。
y****e
发帖数: 23939
11
来自主题: Programming版 - 问一个for循环的问题
为什么要用浮点数作循环变量呢?
S******n
发帖数: 489
12
来自主题: Programming版 - 问一个for循环的问题
因为做simulation, i是一个traffic的参数,看参数不断增加的结果和理论结果是否相
同。本来我以为最后一个会是9.9,结果10也输出了,虽然不太影响,不过就是不知道为
什么,莫非9.9 + 0.1后是一个稍小于10的浮点数?
t****t
发帖数: 6806
13
来自主题: Programming版 - 问一个for循环的问题
>> 9+0.1+0.1+0.1+0.1+0.1+0.1+0.1+0.1+0.1+0.1-10
ans =
-3.5527e-015
浮点数比较, 要留有余地. ==基本上是不能用的.

道为
t****t
发帖数: 6806
14
来自主题: Programming版 - 问一个for循环的问题
第二个其实虽然不好, 但还是对的
浮点数在(32位)整数范围内还是精确的

not
O*******d
发帖数: 20343
15
来自主题: Programming版 - 问一个for循环的问题
用浮点数作累积的结果是不可预测的。加一百次0.1的结果和加10次1的结果是不一样的
t****t
发帖数: 6806
16
来自主题: Programming版 - fortran 中数值精度怎么保证的?
双精度尾数是52位, 单精度是23位. intel的80位浮点数, 尾数是63位.
我看LZ这结果, 好象中间变成单精度过.

)
b****j
发帖数: 78
17
来自主题: Programming版 - 浮点数运算等于0的问题
应该没有问题,a - a应该是0
除非你b和a的类型不一致,或者中间又做了其他运算
z****e
发帖数: 2024
18
来自主题: Programming版 - 浮点数运算等于0的问题
if( abs(a-b) < numeric_limits::epsilon() );
or
if( abs(a-b) < c*numeric_limits::epsilon() );//c=2,5,10.etc,....
a******d
发帖数: 191
19
来自主题: Programming版 - 浮点数运算等于0的问题
assuming fn is the min of f[0-m], then fn-fn=0, and others fi - fn >= 0. I
don't see why the n'th subtraction isn't 0.
paste your code to investigage
o**o
发帖数: 3964
20
来自主题: Programming版 - 浮点数运算等于0的问题
a - a 应该是等于 0 的。前面有位说的对,中间有其他过程。
M***0
发帖数: 1180
21
来自主题: Programming版 - 浮点数运算等于0的问题
刚做了实验,明明是0
s*****k
发帖数: 604
22
来自主题: Programming版 - 浮点数运算等于0的问题
代码其实挺复杂的,
我只是把问题抽象出来说了。
其实我自己另外写了一段简单的代码,
减完后的a[]里最小值是等于0.0的
我原来的代码其实结果总是合理的,
只是我觉得可能隐藏着错误

I
s*****k
发帖数: 604
23
来自主题: Programming版 - 浮点数运算等于0的问题
还有一个奇怪的地方是如果在一些地方加些
printf,那么最小的a[i]就是0.0
和优化选项没关系了

2.
O*******d
发帖数: 20343
24
来自主题: Programming版 - 浮点数运算等于0的问题
你不知道优化做了什么东西。 我以前做过aeronics 的软件,飞机上用的软件不允许
compiler优化。 compiler甚至不能有优化的选项,也不能有优化的能力。 理由
就是优化会引进未知因素。 一切优化必须人工在source code水平上来做,并且
要通过无数的验证。 优化是一个非常费时费力的过程,所以每一个优化都要经过
一个悠长的技术,财务,人力资源上的讨论批准。
s*****k
发帖数: 604
25
来自主题: Programming版 - 浮点数运算等于0的问题
第24页给了个例子,
说了加不加优化选项可能使
运算结果相差很大
s*****k
发帖数: 604
26
来自主题: Programming版 - 浮点数运算等于0的问题
哥们你说一下原因吧。
我以前对这个的理解就是rounding error。
事实上 abs(a)<10e-20也不一定对啊
我得到的x-x 常常是 1e-16这个量级的

10e-
O*******d
发帖数: 20343
27
来自主题: Programming版 - 浮点数运算等于0的问题
很有帮助。
s*****k
发帖数: 604
28
来自主题: Programming版 - 浮点数运算等于0的问题
google 的 group里面问了,
下面这个人的答案我觉得不错
That article is very relevant, and well-worth reading thoroughly if
you have time!
It's difficult to improve on what's in the article. But in short, the
number one cause of problems like the one you mention (assuming that
you're already happy with the basics of floating-point) is that
arithmetic calculations can legally be carried out in greater
precision that you expect, and that it can be hard to predict when
this is going to happen: a single expression might
a****l
发帖数: 8211
29
来自主题: Programming版 - 浮点数运算等于0的问题
which google group? can you give a link?
z*****a
发帖数: 3809
w***g
发帖数: 5958
31
来自主题: Programming版 - 请教个排序的题目
256 byte有用。如果你把所有的浮点数取出来放到一个8M的数组中排序,cache命中率
会有显著提高。事实上为了提高cache命中率和平衡的任务分配,我觉得最好的做法是
把所有数据平均分成8*N块进行归并排序(每一块用一个CPU做快速排序),N根据cache大
小决定。

quickly.
Please mark
array
w***g
发帖数: 5958
32
来自主题: Programming版 - 请教一道c面试题:在线等
用来判断x是不是一个正常浮点数。如果x是无穷大或者NaN,函数会返回false。
w***g
发帖数: 5958
33
来自主题: Programming版 - java的内存管理真是气死我了
我用了4000! int[]不能动态长的!等下把16G内存全都用上试试。
我的问题其实很简单。最多500,000个128维浮点数特征向量,两两比较距离,算每个
特征向量的100个最近点。我估算了一下实际用到的内存也就1G都不到:
特征向量: 500,000 * 128 * 4 = 256M
100个最近点: 500,000 * 100 * (4 + 8) = 600M (每个点保存8位id和4位距离)。
我就不知道怎么用java编出来overhead能那么大。
y***d
发帖数: 2330
34
来自主题: Programming版 - 多线程优化求助! (转载)
如果只是 histogram 的话,这个 result[i,j] 还是不要存储了,直接扔给 histogram
吧... 否则,如果是浮点数的话,8T,太大了...
把 j 分成 100 段,就可以分到 100 个进程来算了,最后把 histogram merge 了就成
O*******d
发帖数: 20343
35
来自主题: Programming版 - 我最近写的一个屏保程序
说一下我怎么做的antialiase。 先把图形计算好,比最后的图像多出宽三列高三行。
图形是一个浮点数的点阵。 两个相邻的点之间的距离是一个单位。 然后用三次方程插
值。每个插值要用图形中4X4的值来计算。 在四个点组成的方格中均匀插入5X5=25个点
(单核机)或7X7=49个点(多核机),给每个插值赋予颜色,最后把一个方格中所有的
颜色平均,就是一个像素的颜色。
由于一组插值用的是同一套三次方程系数,所以写了一个class来做。 其实是一个
template。 做插值时,有两个套着的循环,分别在X方向移动和Y方向移动。 内循环是
在Y方向从上往下移动,这样每次移动一步,只需要计算最后一列的三次方程系数。下
边是我写的Cubic Interpolator. 是一个recursive template。For bicubic
interpolation, N = 2. 所有的重复计算都尽可能的避免了。 这个templete的计算
速度,在N==2时,是单独bicubic interpolation的速度的三倍。
template
class Cu... 阅读全帖
a***y
发帖数: 2803
36
来自主题: Programming版 - c++ pointer conversion question
懂了.
浮点数1.0,二进制表示是
0 01111111 00000000000000000000000
就是十进制的 1065353216
w********o
发帖数: 10088
37
来自主题: Programming版 - 请问一个正则表达式的问题
如果想匹配一个整数或者一个浮点数,都是正的,前面都没有负号,也没有+号,正则
应该怎么写
比如 variable temp=300.5;
这里300.5有时候也会变成300
我想匹配以后,可以统一改成400
试了\d+$|\d+\.\d+不好使,求指教
m*********t
发帖数: 527
38
来自主题: Programming版 - openmp并行计算疑问
你需要问自己的是,这个精度到底多少 make sense。比如,你用来模拟的输入参数测
量精度是多少位有效数字?你的 model 本身用了多少 assumption ? 单纯的追求浮点
数舍入误差我个人觉得没啥太大意义。

怕就
y**b
发帖数: 10166
39
matlab专门搞数值的,这方面一般而言比较强。
可是你要特别高精度计算的话,matlab也未必能满足要求,
而C++有很多高精度库可以调用,这方面C++还是很强。
有很多,quad-precision是其中之一。自然这些库一般
都比较慢,毕竟是用软件去模拟硬件精度。
你的代码里面fact返回类型显然不能用int,而要用long。
另外浮点数一般不要用long double而要用double,
long double除了存储字节更多(我测试过这导致速度比double慢一倍),
而精度没有任何提高。唯一的好处是表示范围大了,能超过E+308/E-308很多。
b***i
发帖数: 3043
40
提前算好,就是利用编译器把运算结果放进数组,这样当然不用重新做板子,只是一个
代码的改变而以。象你这种就20个不同浮点数,放到数组里就是最好的方法。
b***i
发帖数: 3043
41
来自主题: Programming版 - C的fscanf的问题
不就是读入直到|,然后读入|到一个char里面,然后读入一个浮点数吗
int main(){
char line[]={"GOODG|256.5"};
char name[10];
float x;
char c;
sscanf(line, "%[^|]%c%f", name, &c, &x);
printf("%s\n", name);
printf("%f", x);
return 0;
}
f****p
发帖数: 18483
42
来自主题: Programming版 - C的fscanf的问题
fscanf需要地址作为参数,那个ticker本来就是字符串地址,所以没事,588.88应该直
接定义一个浮点数变量,然后用&取变量地址。fscanf自动进行转换。
b***i
发帖数: 3043
43
来自主题: Programming版 - 【包子求助】20M*20M的loop怎么搞?
A 的范围互斥吗?
浮点数?还是整数,范围?
t****t
发帖数: 6806
44
不懂openmp, 但是浮点数支持atomic吗? I actually don't think so...
a**e
发帖数: 64
45
这个差别可以理解。之前没有想到这一点。
既然是浮点数的话这个差别一般也不用担心了。
c*******h
发帖数: 1096
46
程序里面有很多除法运算,在考虑要不要转换成乘法
如果差得不多就算了,如果差好几倍或者几十倍的话做个转换就很有必要了
t****t
发帖数: 6806
47
正常的除法和乘法确实差十倍以上.
X****r
发帖数: 3557
48
不针对你的问题,不过在做任何优化之前,搞清楚瓶颈在哪里。
b***i
发帖数: 3043
49
你是说除法是除以常数吗?
按说,CPU算除法比乘法慢。乘法可以很快。是C/C++语言吗?
首页 上页 1 2 3 4 5 6 7 8 下页 末页 (共8页)