C++库研究笔记—— 对function类定义的修正
来源:互联网 发布:java当前时间加24小时 编辑:程序博客网 时间:2024/05/16 13:41
在写一个数值优化库tau, 这是一个很小的改动,却事关系全局,是一个有意义的改动
template <typename T>class function{public: //array1d<real> x0(2, 1.0f); //function(x0,g0), 检测不出 x0 与 eval中的dim 是否一致 T operator()(const array1d<T>& x, array1d<T>& g)const { size_t N=x.size(); g.resize(N); assert(g.data()); assert(x.data()); return eval(x.size(), x.data(), g.data()); } virtual T eval(size_t dim, const T *x, T *g) const =0;};
修正后:
template <typename T>class function{public: T operator()(const array1d<T>& x, array1d<T>& g)const { size_t N=x.size(); if(N!=dim()) throw tau::dimension_exception("dimensions mismatch!"); g.resize(N); assert(g.data()); assert(x.data()); return eval(x.data(), g.data()); } virtual size_t dim() const =0; virtual T eval(const T *x, T *g) const =0; virtual ::std::string functionName()const { return "f(x)"; } virtual ::std::string gradientName()const { return "f'(x)"; }};
- C++库研究笔记—— 对function类定义的修正
- 【C/C++】C++库研究笔记——函数名的宏定义
- C++库研究笔记——函数名的宏定义
- 对重定义错误的小小研究
- 对《C语言解析教程》中的正反面游戏的修正
- Ext研究(1)——关于Function类的一些新方法的使用
- C++ 库研究笔记——拷贝构造函数的一个错误范例
- C++ 库研究笔记——通过inline避免hpp 的mutiple definition 错误
- C++库研究笔记——#if #elif 的错误使用
- C++ 库研究笔记——通过inline避免hpp 的mutiple definition 异常
- ‘我们通过周围的人对我们行为的反应不停修正着对自己的定义
- javascript笔记:javascript里面不同function定义的区别
- javascript笔记:javascript里面不同function定义的区别
- 谈谈对多线程的看法——随着了解的加深而不断补充和修正
- 对倾斜的图像进行修正——基于opencv 透视变换
- c语言笔记——对缓冲区的理解
- 《MISRA-C 2004工业标准化的C编程规范》笔记——常量、声明与定义
- C++库研究笔记——赋值操作符operator=的正确重载方式(三个准则)
- Repeater的抽象分页控件
- [数据结构]程杰《大话数据结构》链栈代码
- poj 3168 Barn Expansion 排序
- 思想诗
- Factoring Large Numbers UVA10392
- C++库研究笔记—— 对function类定义的修正
- 工程是不能靠技术生
- OCP-1Z0-052-V8.02-35题
- 黑马程序员_java基础加强
- 利用多线程加速程序的小程序
- 中日律考时间表
- 单例设计模式
- Android 打包签名 从生成keystore到完成签名
- iOS开发之Xcode篇