C 里头呼叫了F77 里头的函数做矩阵相乘,出现了一个很大的数是怎么回事?
本帖最后由 orionsnow 于 2014-3-6 15:56 编辑同事写了一段代码
两个矩阵都设置的是1 或者 0
然后使用fortran77 的函数
F77_NAME(dgemm)
进行计算
结果出现了
2.072302e-3169.881313e-3242.641320e-3166.904706e-3101.259867e-321
-5.486124e+3034.940656e-324 0.000000e+00 1.000000e+011.213625e+132
第6个是很大的一个负数, 还有第10个也是。
计数错位造成的么?
看看谁有在C 里头调用fortran 函数的经验,来指点下。
没调过fortran,我猜可能你调用的时候type不匹配,你定义的dgemm是short long int float?调用的F77_NAME函数指定哪个type? gonk 发表于 2014-3-6 19:52
没调过fortran,我猜可能你调用的时候type不匹配,你定义的dgemm是short long int float?调用的F77_NAME函 ...
我也觉得是这个问题,可能c 和 fortran 里头对0 和最大数的约定不一置。 我奇怪的是,为什么有的数正确,有的不正确。 回熊猫羊,小家伙挺好。闺女也不错吧? orionsnow 发表于 2014-3-7 09:14
我也觉得是这个问题,可能c 和 fortran 里头对0 和最大数的约定不一置。 我奇怪的是,为什么有的数正确, ...
有的数据正确可能没溢出吧
页:
[1]