Antkillerfarm Hacking V8.0

language » Matlab, C++ Test framework

2022-11-09 :: 4790 Words

Matlab

在MATLAB软件诞生之前,大约1965年,计算机只能生成和输出二维图像,对于L-型膜结构(L-Shaped Membrane)只能生成下图左侧的二维平面效果。直到1990年,MATLAB 3.5发布,3.5版本利用了隐藏线算法(Hidden Line Algorithm),可以实现黑白网格的三维立体图像的生成。1993年,MATLAB 4进一步实现了彩色化。1995年,MATLAB 4.2利用了网格光滑化算法(Crude Shaping Algorithm)将L型网格进一步光滑处理。1995年,MATLAB 5实现了生成完全光滑和打光效果。

而Mathworks公司也将他们引以为傲的进步作为了MATLAB软件的图标!这个图标反映的正是Mathworks技术的不断迭代升级。

至于为啥是L-Shaped Membrane而不是其他呢?因为这是Mathworks创始人之一Moler的博士课题

https://www.zhihu.com/answer/1294927798

如果中国重新开发像MATLAB、solidworks这样的软件大概需要多久?


https://mp.weixin.qq.com/s/0SNlsZUO-i-wzzfSXqLF_g

Mathemetica35周年!从天才物理学家到“自大狂”,创始人Wolfram的传奇经历

参考

https://zhuanlan.zhihu.com/p/30905298

XML和MATLAB交互的基本操作

https://mp.weixin.qq.com/s/QkICCbTp53lWOyeZx63-sw

后MATLAB时代的七种开源替代,一种堪称完美!

https://mp.weixin.qq.com/s/vV8kFF7e1uxjMR48_uRcSw

MATLAB动画没有密秘

https://mp.weixin.qq.com/s/L6GP0LiCQX0Z2lps3Y0ekQ

Matlab简史

https://www.zhihu.com/answer/1513267624

1994年,Matlab发现著名的Intel CPU浮点运算bug

GNU Octave

GNU Octave是Matlab的一个开源实现。它拥有和后者兼容的语法,类似的IDE,并实现了大部分的基础库。

官网:

https://gnu.org/software/octave/

安装方法:

sudo apt install octave

spyder

spyder是一个Python的IDE,提供了和Matlab类似的数据可视化界面。

安装:

sudo apt install spyder

GeoGebra

GeoGebra是一个结合“几何”、“代数”与“微积分”的动态数学软件,由佛罗里达州亚特兰大学的数学教授Markus Hohenwarter所设计。

官网:

https://www.geogebra.org/

GeoGebra官网包含了很多网友分享的几何绘图,所以常用图形就不要自己画了,找个现成的改改更合适。

安装包下载:

https://download.geogebra.org/installers/6.0

Maxima

微积分的数值解很多软件都能计算,但解析解就不行了。Maxima就是这样一款Computer Algebra System的软件。

官网:

http://maxima.sourceforge.net/

C++ Test framework

boost.test

boost.test是一个C++的单元测试框架。

代码示例:

https://github.com/antkillerfarm/antkillerfarm_crazy/tree/master/cpp/boost_test

要点:

  • 测试代码无须main函数。

  • 编译:-DBOOST_TEST_DYN_LINK

  • 链接:-lboost_unit_test_framework

打印所有的log:

unit_test --log_level=all

参考:

https://www.ibm.com/developerworks/cn/aix/library/au-ctools1_boost/

了解Boost单元测试框架

https://www.ibm.com/developerworks/cn/aix/library/au-ctools2_cppunit/index.html

了解CppUnit

https://www.ibm.com/developerworks/cn/aix/library/au-ctools3_ccptest/

了解CppTest。上面这3篇算是比较权威的C++单元测试工具的教程了,作者都是Arpan Sen。

https://my.oschina.net/vaero/blog/227528

C++单元测试:boost.test

https://remonstrate.wordpress.com/2011/07/06/boost-%e7%9a%84-unit-test/

boost的unit test

googletest

安装:

sudo apt install libgtest-dev

代码:

https://github.com/google/googletest

gtest_filter是一个很有用的选项。

示例:

./foo_test --gtest_filter=FooTest*.*-FooTest.Bar:FooTest2.Bar

运行所有“测试案例名称(testcase_name)”为FooTest的案例,但是除了FooTest.Bar和FooTest2.Bar。

-表示去除,:表示并列。

TEST(FooTest, DISABLED_DoesAbc) { ... }

去除测试用例。

参考:

https://www.ibm.com/developerworks/cn/aix/library/au-googletestingframework.html

Google C++ Testing Framework简介

https://www.cnblogs.com/coderzh/archive/2009/04/06/1426755.html

玩转Google开源C++单元测试框架Google Test系列(gtest)

gmock

gmock是google公司推出的一款开源的白盒测试工具。

测试一个模块的时候,可能涉及到和其他模块交互,可以将模块之间的接口mock起来,模拟交互过程。

比如要测试A模块,必过A模块需要调用B模块的函数。如果B模块还没有实现,此时,就可以用gmock将B模块的某些接口打桩。这样就可以让A模块的测试继续进行下去。

gmock目前是googletest的一部分,一般也与后者配合使用。

https://zhuanlan.zhihu.com/p/101906555

googletest-gmock使用示例

CTest

CTest是CMake集成的一个测试工具。

参考:

https://www.cnblogs.com/457220157-FTD/p/4139149.html

CTest

doctest

官网:

https://github.com/onqtam/doctest

Latex+

mathcha

mathcha是一个可视化的Latex编辑器,和其他同类产品相比,它主要聚焦公式和图表功能,其中后者基于tikz。

官网:

https://www.mathcha.io/

安装:

sudo snap install math-notebook

参考

https://zhuanlan.zhihu.com/p/508559139

Latex简明速查手册

https://www.zhihu.com/question/40763253

如何在Word和PowerPoint中优雅地插入Latex公式?

https://mp.weixin.qq.com/s/3RtKAT3WE8P2YIZRA2dZ3A

LaTeX的历史:图灵奖得主1977年开启的计划,引发学术圈重大变革

https://mp.weixin.qq.com/s/KMWhz5_EXWoxgmHUek6zBA

不会用latex写公式?看看这个python转latex的库(python2latex)

https://www.zhihu.com/question/65508676

怎么在LaTeX中排版Python代码?

https://mp.weixin.qq.com/s/LumDQL9VKTHWK3RkOhKFcg

1行代码搞定Latex公式编写,这个4.6M的Python小插件,堪称论文必备神器(handcalcs)

https://zhuanlan.zhihu.com/p/268332132

知乎公式编辑器的高级“玩法”

https://mp.weixin.qq.com/s/E4EECj0QQ90ElfPqOL80eg

Python编辑公式竟可以如此简单(latexify_py)

https://zhuanlan.zhihu.com/p/38178015

使用VSCode编写LaTeX

https://zhuanlan.zhihu.com/p/194831235

Knuth-Plass换行算法

https://mp.weixin.qq.com/s/kGVLsqstajyrZ_cfkFegrA

Latex数学排版简洁指南

并行 & 框架 & 优化参考资源+

https://mp.weixin.qq.com/s/LjdHBEyQhJq3ptMj8XVT-w

TensorFlow在推荐系统中的分布式训练优化实践

https://mp.weixin.qq.com/s/rEHhf32L09KXGJ9bbB2LEA

TensorFlow在美团外卖推荐场景的GPU训练优化实践

https://zhuanlan.zhihu.com/p/522759214

手把手推导分布式矩阵乘的最优并行策略

https://mp.weixin.qq.com/s/_o7fzCOeuZE6qFc5gHb26g

美团视觉GPU推理服务部署架构优化实践

https://mp.weixin.qq.com/s/X7XG51yohLnEZ_Jg6XK9oQ

Caffe作者贾扬清教你怎样打造更加优秀的深度学习架构

https://zhuanlan.zhihu.com/p/529388795

训练千亿参数大模型,离不开四种GPU并行策略

https://mp.weixin.qq.com/s/_mrYI7McMBUx0lEh4rNiYQ

百度开源移动端深度学习框架MDL,手机部署CNN支持iOS GPU

https://mp.weixin.qq.com/s/ZCNSq5FC2REoVTKAK2mJQg

分布式深度学习原理、算法详细介绍

https://mp.weixin.qq.com/s/Ewiil56vMkzhO2xDWgo-Wg

苹果发布Turi Create机器学习框架,5行代码开发图像识别

Fork me on GitHub