CN108304174A - 一种基于numpy的高精度C语言算法验证方法 - Google Patents
一种基于numpy的高精度C语言算法验证方法 Download PDFInfo
- Publication number
- CN108304174A CN108304174A CN201710722157.9A CN201710722157A CN108304174A CN 108304174 A CN108304174 A CN 108304174A CN 201710722157 A CN201710722157 A CN 201710722157A CN 108304174 A CN108304174 A CN 108304174A
- Authority
- CN
- China
- Prior art keywords
- algorithm
- language
- numpy
- python
- precision
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/31—Programming languages or programming paradigms
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/43—Checking; Contextual analysis
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Stored Programmes (AREA)
Abstract
本发明公开了一种基于numpy的高精度C语言算法验证方法,包括:S1、根据分类,分别用基于numpy的python代码实现相应的算法仿真单元;S2、将Python仿真单元进行分类向量聚合;S3、通过向量加速技术对向量聚合后的算法进行仿真,生成C语言验证校验矩阵;S4、通过实际的使用平台对C语言算法进行相应覆盖度的仿真;S5、根据验证矩阵,验证C语言算法的准确性。有益效果:Numpy是基于目前精确度见长的Fortan科学计算库实现核心计算的软件模块,同时本身也是一个开源平台。通过给定的C语言算法实现基于numpy的算法执行效果验证,不仅能够实现C语言算法的校验,还能够在不同领域内互相借鉴验证成果,加速验证的进程,最终降低产品的成本并提升产品的算法可靠性。
Description
技术领域
本发明涉及控制软件领域,具体来说,涉及一种基于numpy的高精度C语言算法验证方法。
背景技术
代码验证方案设计参考对象很多,测试的手段也很多。而面对多种验证对象与验证方法,很多验证方法验证的过程缺少验证准确性。再加上C语言的行为表现很多时候可能会受到平台以及编译器的影响,因此高精度的可靠性测试成为需要考虑的一个条件。
目前常见的算法技术的实现,一是依赖于昂贵的测试软件,二是选择各种编译器,操作会造成一定的复杂化和不确定性。
针对相关技术中的问题,目前尚未提出有效的解决方案。
发明内容
针对相关技术中的上述技术问题,本发明提出一种基于numpy的高精度C语言算法验证方法,能够克服现有技术中的不足。
为实现上述技术目的,本发明的技术方案是这样实现的:
一种基于numpy的高精度C语言算法验证方法,包括:
S1根据分类,分别用基于numpy的python代码实现相应的算法仿真单元;
S2 将Python仿真单元进行分类向量聚合;
S3 通过向量加速技术对向量聚合后的算法进行仿真,生成C语言验证校验矩阵;
S4 通过实际的使用平台对C语言算法进行相应覆盖度的仿真;
S5 根据验证矩阵,验证C语言算法的准确性。
作为优选,步骤S1进一步包括:
S11 根据C语言算法提取相同的Python算法;
S12 根据算法是否为浮点运算,分为浮点算法分类或固定点算法分类;
S13 对于S12中的同类算法进行同类算法向量化。
本发明的有益效果:Numpy是基于目前精确度见长的Fortan科学计算库实现核心计算的软件模块,同时本身也是一个开源平台。通过根据给定的C语言算法实现基于numpy的算法执行效果验证,本发明不仅能够实现C语言算法的校验,还能够在不同领域内互相借鉴验证成果,加速验证的进程,最终降低产品的成本并提升产品的算法可靠性。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是根据本发明实施例所述的一种基于numpy的高精度C语言算法验证方法。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员所获得的所有其他实施例,都属于本发明保护的范围。
如图1所示,根据本发明实施例所述的一种基于numpy的高精度C语言算法验证方法,包括:
S1根据分类,分别用基于numpy的python代码实现相应的算法仿真单元;
S2 将Python仿真单元进行分类向量聚合;
S3 通过向量加速技术对向量聚合后的算法进行仿真,生成C语言验证校验矩阵;
S4 通过实际的使用平台对C语言算法进行相应覆盖度的仿真;
S5 根据验证矩阵,验证C语言算法的准确性。
作为优选,步骤S1进一步包括:
S11 根据C语言算法提取相同的Python算法;
S12 根据算法是否为浮点运算,分为浮点算法分类或固定点算法分类;
S13 对于S12中的同类算法进行同类算法向量化。
为了方便理解本发明的上述技术方案,以下通过具体使用方式上对本发明的上述技术方案进行详细说明。
在具体使用时,根据本发明所述的一种基于numpy的高精度C语言算法验证方法,以python代码的形式实现基于numpy的算法实现,通过向量加速模式,对算法的python实现进行分类加速仿真并生成相应的输入输出测试参考矩阵。
同时,以csv文件的方式进行参考矩阵的存储,不仅可以用于文本以及电子表格的处理,而且不受操作系统平台限制,加之丰富的成熟处理分析软件可用,通用性极强。
软件的运行只需要一台普通的PC机,可以在Windows、MAC、Linux以及各种UNIXlike的环境中运行。由于采用免费的脚本工具,可以省去标定工具以及商业标定软件,可以节省专业软件费用;同时,由于脚本工具的通用性,只需要简单的拷贝即可在具备先前操作系统的任意PC环境中使用,通用性极强。
综上所述,借助于本发明的上述技术方案,Numpy是基于目前精确度见长的Fortan科学计算库实现核心计算的软件模块,同时本身也是一个开源平台。通过根据给定的C语言算法实现基于numpy的算法执行效果验证,本发明不仅能够实现C语言算法的校验,还能够在不同领域内互相借鉴验证成果,加速验证的进程,最终降低产品的成本并提升产品的算法可靠性。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (2)
1.一种基于numpy的高精度C语言算法验证方法,其特征在于,包括:
S1根据分类,分别用基于numpy的python代码实现相应的算法仿真单元;
S2 将Python仿真单元进行分类向量聚合;
S3 通过向量加速技术对向量聚合后的算法进行仿真,生成C语言验证校验矩阵;
S4 通过实际的使用平台对C语言算法进行相应覆盖度的仿真;
S5 根据验证矩阵,验证C语言算法的准确性。
2.根据权利要求1所述的基于numpy的高精度C语言算法验证方法,其特征在于,步骤S1进一步包括:
S11 根据C语言算法提取相同的Python算法;
S12 根据算法是否为浮点运算,分为浮点算法分类或固定点算法分类;
S13 对于S12中的同类算法进行同类算法向量化。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710722157.9A CN108304174A (zh) | 2017-08-22 | 2017-08-22 | 一种基于numpy的高精度C语言算法验证方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710722157.9A CN108304174A (zh) | 2017-08-22 | 2017-08-22 | 一种基于numpy的高精度C语言算法验证方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN108304174A true CN108304174A (zh) | 2018-07-20 |
Family
ID=62869208
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710722157.9A Pending CN108304174A (zh) | 2017-08-22 | 2017-08-22 | 一种基于numpy的高精度C语言算法验证方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108304174A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110619215A (zh) * | 2019-08-23 | 2019-12-27 | 苏州浪潮智能科技有限公司 | 一种代码安全扫描方法及系统 |
CN113515365A (zh) * | 2021-01-18 | 2021-10-19 | 中山大学 | 一种利用MPI的NumPy优化方法及系统 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101487876A (zh) * | 2009-02-23 | 2009-07-22 | 中国科学院计算技术研究所 | 验证向量的优化方法及装置 |
CN101833499A (zh) * | 2010-04-07 | 2010-09-15 | 南京航空航天大学 | 一种基于可达树的软件测试验证方法 |
US8533166B1 (en) * | 2010-08-20 | 2013-09-10 | Brevity Ventures LLC | Methods and systems for encoding/decoding files and transmission thereof |
US20160092794A1 (en) * | 2013-06-29 | 2016-03-31 | Emc Corporation | General framework for cross-validation of machine learning algorithms using sql on distributed systems |
CN105893256A (zh) * | 2016-03-30 | 2016-08-24 | 西北工业大学 | 基于机器学习算法的软件故障定位方法 |
CN106095431A (zh) * | 2016-06-08 | 2016-11-09 | 中国科学院武汉岩土力学研究所 | 基于Python的3DGIS系统及其快速开发的方法 |
CN106202206A (zh) * | 2016-06-28 | 2016-12-07 | 哈尔滨工程大学 | 一种基于软件聚类的源码功能搜索方法 |
-
2017
- 2017-08-22 CN CN201710722157.9A patent/CN108304174A/zh active Pending
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101487876A (zh) * | 2009-02-23 | 2009-07-22 | 中国科学院计算技术研究所 | 验证向量的优化方法及装置 |
CN101833499A (zh) * | 2010-04-07 | 2010-09-15 | 南京航空航天大学 | 一种基于可达树的软件测试验证方法 |
US8533166B1 (en) * | 2010-08-20 | 2013-09-10 | Brevity Ventures LLC | Methods and systems for encoding/decoding files and transmission thereof |
US20160092794A1 (en) * | 2013-06-29 | 2016-03-31 | Emc Corporation | General framework for cross-validation of machine learning algorithms using sql on distributed systems |
CN105893256A (zh) * | 2016-03-30 | 2016-08-24 | 西北工业大学 | 基于机器学习算法的软件故障定位方法 |
CN106095431A (zh) * | 2016-06-08 | 2016-11-09 | 中国科学院武汉岩土力学研究所 | 基于Python的3DGIS系统及其快速开发的方法 |
CN106202206A (zh) * | 2016-06-28 | 2016-12-07 | 哈尔滨工程大学 | 一种基于软件聚类的源码功能搜索方法 |
Non-Patent Citations (3)
Title |
---|
STEFAN VAN DER WALT: "The NumPy Array: A Structure for Efficient Numerical Computation", 《COMPUTING IN SCIENCE & ENGINEERING》 * |
佚名: "【深度学习】想量化加速(1)", 《HTTPS://BLOG.CSDN.NET/LUOJIE140/ARTICLE/DETAILS/7869266》 * |
赵雪峰: "基于互联网企业的大数据分析系统研究", 《中国优秀硕士学位论文全文数据库 信息科技辑》 * |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110619215A (zh) * | 2019-08-23 | 2019-12-27 | 苏州浪潮智能科技有限公司 | 一种代码安全扫描方法及系统 |
CN110619215B (zh) * | 2019-08-23 | 2021-08-20 | 苏州浪潮智能科技有限公司 | 一种代码安全扫描方法及系统 |
CN113515365A (zh) * | 2021-01-18 | 2021-10-19 | 中山大学 | 一种利用MPI的NumPy优化方法及系统 |
CN113515365B (zh) * | 2021-01-18 | 2023-10-03 | 中山大学 | 一种利用MPI的NumPy优化方法及系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9020796B2 (en) | Model based verification using intelligent connectors | |
US10108531B2 (en) | Transferring application software from a physical to a virtual computer system | |
CN101253472A (zh) | 系统仿真 | |
CN104793983B (zh) | 用于模拟自动化工业设备的方法和模拟装置 | |
CN106445800A (zh) | 一种芯片验证的方法和装置 | |
CN113704043A (zh) | 芯片功能验证方法、装置、可读存储介质及电子设备 | |
CN108984403A (zh) | Fpga逻辑代码的验证方法及装置 | |
KR20140126194A (ko) | 프로세서 검증을 위한 테스트 케이스 생성 장치 및 방법과, 검증장치 | |
US9996450B2 (en) | Transferring application software between virtual machines | |
US20180039566A1 (en) | Method and computer system for compiling and testing a control program | |
JP7321839B2 (ja) | ハードウェア抽象化ソフトウェアレイヤを使用するシステムのための汎用仮想化プラットフォーム | |
CN108304174A (zh) | 一种基于numpy的高精度C语言算法验证方法 | |
US6862565B1 (en) | Method and apparatus for validating cross-architecture ISA emulation | |
CN104834591B (zh) | 测试autosar软件组件的测试方法及系统 | |
CN110716537B (zh) | 一种仿真测试方法和装置 | |
CN109543409B (zh) | 用于检测恶意应用及训练检测模型的方法、装置及设备 | |
CN105512372B (zh) | 模型化的星载数据处理仿真测试方法 | |
Hazott et al. | Verifying embedded graphics libraries leveraging virtual prototypes and metamorphic testing | |
US20160224456A1 (en) | Method for verifying generated software, and verifying device for carrying out such a method | |
CN115391168A (zh) | 沙盒测试方法、装置、设备及存储介质 | |
Lauber et al. | Virtual test method for complex and variant-rich automotive systems | |
Hocking et al. | Proving model equivalence in model based design | |
Ștefan et al. | Controlling hardware design behavior using Python based machine learning algorithms | |
CN103309715A (zh) | 在高性能集群系统中安装分子动力学类应用程序的方法 | |
WO2016135821A1 (ja) | 検査装置、検査方法、及び、プログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WD01 | Invention patent application deemed withdrawn after publication | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20180720 |