| 查看: 1011 | 回复: 5 | ||
songjunann铜虫 (小有名气)
|
[求助]
帮忙看一下,这两个程序(关于点积的)讲的是什么,为什么要写的这么繁琐
|
|
dot.f程序: function dot (x,y,n) cc-begin c c----------------------------------------------------------------------- c c dot (x,y,n) c c c purpose c ------- c c dot calculates the dot product of the two n-vectors c x and y. c cc-doc c input arguments c --------------- c c x = vector of length n. c y = vector of length n. c n = dimension of x and y. c c output arguments c ---------------- c c dot = value of the function, i.e. dot product of x and y. c c notes c ----- c c 1. dot contains a test for n = 0. c c----------------------------------------------------------------------- cc-end c implicit real*8 (a-h,o-z) dimension x(*),y(*) c dot = 0. if (n .le. 0) return c do 100 i = 1,n c dot = dot + x(i)*y(i) c 100 continue dot = ddot(n,x,1,y,1) end %%%%%%%%%%%%%%%%%%%%%%%%% 其中ddot.f子程序为: DOUBLE PRECISION FUNCTION DDOT(N,DX,INCX,DY,INCY) * .. Scalar Arguments .. INTEGER INCX,INCY,N * .. * .. Array Arguments .. DOUBLE PRECISION DX(*),DY(*) * .. * * Purpose * ======= * * DDOT forms the dot product of two vectors. * uses unrolled loops for increments equal to one. * * Further Details * =============== * * jack dongarra, linpack, 3/11/78. * modified 12/3/93, array(1) declarations changed to array(*) * * ===================================================================== * * .. Local Scalars .. DOUBLE PRECISION DTEMP INTEGER I,IX,IY,M,MP1 * .. * .. Intrinsic Functions .. INTRINSIC MOD * .. DDOT = 0.0d0 DTEMP = 0.0d0 IF (N.LE.0) RETURN IF (INCX.EQ.1 .AND. INCY.EQ.1) THEN * * code for both increments equal to 1 * * * clean-up loop * M = MOD(N,5) IF (M.NE.0) THEN DO I = 1,M DTEMP = DTEMP + DX(I)*DY(I) END DO IF (N.LT.5) THEN DDOT=DTEMP RETURN END IF END IF MP1 = M + 1 DO I = MP1,N,5 DTEMP = DTEMP + DX(I)*DY(I) + DX(I+1)*DY(I+1) + $ DX(I+2)*DY(I+2) + DX(I+3)*DY(I+3) + DX(I+4)*DY(I+4) END DO ELSE * * code for unequal increments or equal increments * not equal to 1 * IX = 1 IY = 1 IF (INCX.LT.0) IX = (-N+1)*INCX + 1 IF (INCY.LT.0) IY = (-N+1)*INCY + 1 DO I = 1,N DTEMP = DTEMP + DX(IX)*DY(IY) IX = IX + INCX IY = IY + INCY END DO END IF DDOT = DTEMP RETURN END 个人感觉不就是两个向量的点积,为什么两个程序要写的这么复杂呢,有什么特别的地方吗,请大家多多指教,谢谢! |
» 猜你喜欢
职称评审没过,求安慰
已经有53人回复
毕业后当辅导员了,天天各种学生超烦
已经有5人回复
26申博自荐
已经有3人回复
A期刊撤稿
已经有4人回复
垃圾破二本职称评审标准
已经有17人回复
投稿Elsevier的Neoplasia杂志,到最后选publishing options时页面空白,不能完成投稿
已经有22人回复
EST投稿状态问题
已经有7人回复
» 本主题相关价值贴推荐,对您同样有帮助:
请帮忙看一下教授的回复是什么意思?
已经有5人回复
请问对于生产制剂的原料药产地变更的申请,其变更说明该怎么写
已经有8人回复
求高手帮忙鉴定一下植物
已经有14人回复
求助高斯脚本同时提交两个任务,一个结束,另一个也结束了
已经有8人回复
帮忙看一下这两个粒径分布图的区别
已经有3人回复
【急】请大家帮忙看一下这个offer是否合乎要求,新手散光所有金币求助~~
已经有12人回复
镁基复合材料的XRD图 高手帮忙看一下啊 急!!!
已经有12人回复
帮忙看一段程序
已经有3人回复
大家帮忙看一下 这个反应为什么不能进行
已经有6人回复
请大侠帮忙看一下这个包装和内含的是什么材料
已经有7人回复
有这方面经验的人帮忙给介绍一下吧
已经有6人回复
初写论文菜鸟,大家帮忙看一下这几张图是用什么软件画的或生成的?
已经有10人回复
文书写作经验交流月——分享几个PS写作指导网站
已经有8人回复
【求助/交流】大家帮忙看一下这是什么菌
已经有55人回复
snoopyzhao
至尊木虫 (职业作家)
- 程序强帖: 16
- 应助: 157 (高中生)
- 贵宾: 0.02
- 金币: 18844.7
- 红花: 29
- 帖子: 3803
- 在线: 1422.4小时
- 虫号: 183750
- 注册: 2006-02-13
- 专业: 污染生态化学
2楼2011-09-25 16:43:23
songjunann
铜虫 (小有名气)
- 应助: 0 (幼儿园)
- 金币: 16
- 散金: 4
- 帖子: 164
- 在线: 94.5小时
- 虫号: 1198651
- 注册: 2011-02-02
- 性别: MM
- 专业: 高分子物理与高分子物理化
3楼2011-09-25 23:09:13
snoopyzhao
至尊木虫 (职业作家)
- 程序强帖: 16
- 应助: 157 (高中生)
- 贵宾: 0.02
- 金币: 18844.7
- 红花: 29
- 帖子: 3803
- 在线: 1422.4小时
- 虫号: 183750
- 注册: 2006-02-13
- 专业: 污染生态化学
4楼2011-09-25 23:49:31
songjunann
铜虫 (小有名气)
- 应助: 0 (幼儿园)
- 金币: 16
- 散金: 4
- 帖子: 164
- 在线: 94.5小时
- 虫号: 1198651
- 注册: 2011-02-02
- 性别: MM
- 专业: 高分子物理与高分子物理化
5楼2011-09-27 01:01:29
snoopyzhao
至尊木虫 (职业作家)
- 程序强帖: 16
- 应助: 157 (高中生)
- 贵宾: 0.02
- 金币: 18844.7
- 红花: 29
- 帖子: 3803
- 在线: 1422.4小时
- 虫号: 183750
- 注册: 2006-02-13
- 专业: 污染生态化学
6楼2011-09-27 01:28:01













回复此楼