C&C++   发布时间:2022-04-03  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了C表达式模板大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我目前使用C进行数值计算.我听说使用C Expression Templates更适合科学计算.什么是C表达模板简单来说?

>是否有书籍使用C表达模板讨论数值方法/计算?
>以何种方式,C表达模板比使用纯C更好?

解决方法

Expression templates是C模板元编程的一类,它延迟子表达式的评估,直到已知完整表达式,从而可以应用优化(尤其是消除临时).

我相信ET是由Todd Veldhuizen发明的,他在15年前发表了一篇论文. (似乎很多旧链接到现在已经死了,但目前here是它的一个版本.)有关它的一些材料是David Vandevoorde和Nicolai Josuttis’C++ Templates: The Complete Guide.

它们允许您以富有表现力的高级方式编写代码而不会降低性能.例如,

void f(const my_array<double> a1,const my_array<double> a2) 
{ 
  my_array<double> a3 = 1.2 * a1 + a1 * a2; 
  // ..
}

可以一直优化到

for( my_array<double>::size_type idx=0; idx<a1.size(); ++idx ) 
  a3[idx] = 1.2*a1[idx] + a1[idx]*a2[idx];

哪个更快,但更难理解.

大佬总结

以上是大佬教程为你收集整理的C表达式模板全部内容,希望文章能够帮你解决C表达式模板所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。