什么是还原变量? 任何人都可以给我一些例子吗?什么是还原变量?任何人都可以给我一些例子吗?
3
A
回答
5
下面是在计算阵列的总和的类C语言的简单示例:
int x = 0;
for (int i = 0; i < n; i++) {
x += a[i];
}
在这个例子中,
i
是归纳变量 - 在每个迭代它改变了一些常数。它可以是+1
(如上例)或*2
或/3
等,但关键是在所有的迭代中数字是相同的。换言之,在每次迭代中
i_new = i_old op constant
,其中op
是+
,*
等,并且迭代之间既不op
不constant
变化。x
是减少可变 - 它积累数据从一个迭代到下一个。它始终有一些初始化(在这种情况下为x = 0
),虽然每次迭代中累积的数据可能不同,但操作员保持不变。换句话说,在每次迭代中,
x_new = x_old op data
和op
在所有迭代中保持不变(尽管data
可能会改变)。
在许多语言中there's a special syntax for performing something like this - 通常被称为“折叠”或“减少”或“积聚”(以及它具有其他名称) - 但在LLVM IR的情况下,感应的变量将通过表示phi节点在循环内部的二进制操作和其之前的初始化值之间的循环中。
对于优化编译器而言,约化变量(如加法)中的交换*操作特别有趣,因为它们似乎在迭代之间显示出比实际更强的依赖关系;例如上面的例子可以被重写成一个矢量化的形式 - 每次添加4个数字,然后是一个小的循环,将最终的矢量求和成单个值。
*有更多的实际条件减小变量必须满足可应用这样的量化之前,但是这是真的在这里的范围之外
相关问题
- 1. 任何人都可以给两个LRU和LFU的例子吗?
- 2. 任何人都可以告诉我这是什么功能吗?
- 3. 任何人都可以给我一些关于crystalreport的信息吗?
- 4. 任何人都可以解释为什么size_t类型用于例子吗?
- 5. 任何人都可以讲的是一个例子
- 6. 任何人都可以告诉我这有什么问题吗?
- 7. 任何人都可以给我一个JSF2.0 + richfaces4.0的工作示例吗?
- 8. Lua任何人都可以解释这是什么吗?
- 9. 任何人都可以帮助我吗?
- 10. 任何人都可以告诉我Oracle Enterprise Repository是什么?
- 11. 任何人都可以解释我什么是项目[0] .qty
- 12. 在MySQL中,包含的目的是什么?任何人都可以给我它与例子的用法?
- 13. 任何人都可以给我实时的sqlite示例
- 14. 任何人都可以给我示例代码_dupenv_s?
- 15. 任何人都可以解释这个matlab代码给我吗?
- 16. 任何人都可以解释这个jQuery插件给我吗?
- 17. appium中getWrappedDriver方法的用途是什么?任何人都可以用一个例子来解释吗?
- 18. 什么是P2P和网格?任何人都可以帮助我吗?
- 19. 任何人都可以告诉我什么考卷是在这里要求吗?
- 20. 任何人都可以共享一个示例.lldbinit文件吗?
- 21. 我可以还原还原吗? SQL Server
- 22. 任何人都可以解释我这个快速排序的例子吗?
- 23. 任何人都可以向我解释HABTM原理的工作原理吗?
- 24. 任何人都可以给我一个在boost :: graph中使用smallest_last_vertex_ordering的例子吗?
- 25. 任何人都可以提供给我一个基于引用的链表的例子吗?
- 26. 任何人都可以给我一个显示SimpleDateFormat线程不安全的例子吗?
- 27. 任何人都可以给我一个使用Git的良好翻译工作流程的例子吗?
- 28. 任何人都可以解释一个Nullable类型的例子吗?
- 29. 任何人都可以展示一个使用BeautyTips的简单例子吗?
- 30. 任何人都可以告诉我我做错了什么吗? - 堆栈
感谢您的帮助,橡树〜 – ZZB 2013-02-20 11:43:35