TI 中 acos()函数 存在 bug
来源:互联网 发布:沈颢事件知乎 编辑:程序博客网 时间:2024/04/28 10:29
编写 DSP 程序时(TMS320F28335),如果直接调用系统自带的 acos 函数,有时会出现莫名其妙的错误 (如同步坐标系中的电流在稳态情况下本来是直流,但可能出现尖峰)。这是因为 acos() 函数存在 Bug 。理论上
由于只有这一个点有错误,所以可以很容易将该 Bug 排除。
图 1:不同角度下的正弦和余弦值
图 1 给出了不同角度下的正弦和余弦值。显然,发生 Bug 的区域位于图中蓝色区域内。如果计算正确的话,下列几个式子无法同时成立。
其中,
上述三个式子中的前两个条件将角度限制在了图 1 中的蓝色区域内,而第三个条件又表示角度在 0 附近。因此,如果这几个条件同时满足,说明进入到了 Bug 中,这时候只需要将得到的数值强制变为
因此,如果横坐标为
r = sqrt(a*a + b*b);theta = acos(a/r);// acos:0-PIif (b < 0) //PI-2*PI{ theta = 2*PI - theta;}if ( (a/r<0.95) && ( (b/r<0.05) && (b/r>-0.05) ) && ( (theta<0.3) || ((2*PI - theta)<0.3) ) )//由于 theta 已限制在0-2pi,所以第三个表达式可简化{ theta = PI;}
经过排除 Bug 后的运行结果正常。
实际上,已经有人在 TI 的论坛上反馈过这个错误了,详情请点击链接。
0 0
- TI 中 acos()函数 存在 bug
- acos ()函数
- acos 函数
- hive函数 -- acos
- ACOS
- acos
- acos
- acos数学函数应用实例
- Math 函数--> cos()和acos()
- 浏览器中可能存在的bug
- c++中acos,asin,atan的范围
- c++中acos,asin,atan的范围
- 上述博客中的程序均存在bug,尤其是链表类的程序中,需要在其中添加排序函数!
- matlab2c使用c++实现matlab函数系列教程-acos函数
- cos和acos--余弦和反余弦函数
- long double atan2函数 Pi=acos(-1)
- 如何更多的找出软件中存在的有效BUG
- vc6.0 中stl存在的问题 bug
- UWP-ListView中ItemClick不执行的原因
- Android绘制之Canvas
- hbase shell基础和常用命令详解
- java浮点数研究
- HDU 1395 2^x mod n = 1
- TI 中 acos()函数 存在 bug
- cocoapods升级到1.0.1后,podfile文件里的变更
- HBase 使用场景和成功案例
- eclipse的编辑代码自动提示功能
- 推荐系统基础知识储备
- 删除存储过程和函数
- centos将用户添加到sudo用户组的方法
- zookeeper系列之通信模型
- 【Linux】进程的创建执行和优先级