c++数学表达式解析求值库推荐

让程序支持自定义的数学计算器是常用功能,找了几个用来数学表达式解析求值的库,有几个看起来很不错。

各个数学表达式求值的综合对比

对比结果如下,ExprTK得分最高, TinyExpr得分最低,

GitHub - ArashPartow/math-parser-benchmark-project: C++ Mathematical Expression Parser Benchmark

1、TinyExpr

TinyExpr is a very small recursive descent parser and evaluation engine for math expressions. It's handy when you want to add the ability to evaluate math expressions at runtime without adding a bunch of cruft to your project.

In addition to the standard math operators and precedence, TinyExpr also supports the standard C math functions and runtime binding of variables.

https://github.com/codeplea/tinyexpr

2、Exprtk

C++数学表达式工具包库(ExprTk)是一个通用、易于使用、易于集成、运行时效率极高的数学表达式解析器和评估引擎。ExprTk支持多种形式的函数、逻辑和向量处理语义,并且非常容易扩展。

http://www.partow.net/programming/exprtk/

3、Muparser

许多应用程序需要解析数学表达式。muparser的主要目标是提供一种快速、简单和安全的方法来完成这一任务。muparser是一个用C++编写的可扩展的高性能数学表达式解析器库。它的工作原理是将数学表达式转换为字节码,并预先计算表达式的常量部分。为了获得最佳性能,muparser允许使用OpenMP并行计算表达式。使用OpenMP并行计算表达式。

该库在设计时考虑了可移植性,应该在每个标准兼容的C++编译器上编译。构建系统基于CMake。该代码在32位和64位架构上运行,并已使用Visual Studio 2019,CLANG和GCC进行了测试。提供代码示例是为了帮助您了解其用法。该库是开源的,并根据BSD -第2条“简化”许可证分发。最新稳定版本的源代码存档可在此处下载:

muparser库处于“生产”状态。代码更改保持在最低限度,几乎没有主动开发。主要的重点放在bug修复和保持归档与当前一代的C++编译器兼容。

https://beltoforion.de/en/muparser/

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/216556.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

新版画中画documentPictureInPicture API使用

关于该API,chrome dev有一篇比较好入门的文章,如果你没看过强烈推荐你先看这篇基础用法,该文章只针对API的特性和chrome dev文章进行扩展性说明。 提前说明,目前该API是非w3c草案功能,从chrome 116开始已经强推到stabl…

ASO优化之如何测试应用的屏幕截图

截取屏幕截图并上传到应用商店后,我们需要对其进行测试和优化,从而来获得更高的转化率,精美的图片有助于提高应用在商店的安装率。 1、定义目标受众。 战略性地决定测试哪些目标受众,可以通过年龄、性别、地点、兴趣等来定义我们…

超声波雪深传感器冬季里的科技魔法

在冬季的某个清晨,当你打开大门,被厚厚的积雪覆盖的大地映入眼帘,你是否曾想过,这片雪地的深度是多少?它又如何影响着我们的生活和环境?今天,我们将为你揭开这个谜团,介绍一款神秘的…

AHSATA模块之AHCI HBA卡开发,结合SPEC文档和项目实际底层FW开发总结(一)

目录 一、简介二、总体架构和常用术语总结2.1 总结介绍2.2 常用术语解析 三、详细流程3.1 总结3.2 物理层详解3.3 链路层、传输层详解3.4 命令层详解 四、FW开发4.1 pcie header配置4.2 PMCAP和MSICAP配置4.3 pcie capbility配置4.4 Generic Host Control配置4.5 Port Register…

EEG 脑电信号处理合集(2): 信号预处理

脑电信号在采集完以后,需要进行一系列的预处理操作,然后才能用于后续的科学研究和计算。预处理是脑电信号分析最基本且重要的一步。基于python环境MNE库。 1 使用带通滤波器,信号滤波,去噪,去工频干扰 data_path sam…

【计网 可靠数据传输RDT】 中科大笔记 (十 一)

目录 0 引言1 RDT的原理RDT的原理: 2 RDT的机制与作用2.1 重要协议停等协议(Stop-and-Wait):连续ARQ协议: 2.2 机制与作用实现机制:RDT的作用: 🙋‍♂️ 作者:海码007📜 专栏&#x…

【自主探索】基于 rrt_exploration 的单个机器人自主探索建图

文章目录 一、rrt_exploration 介绍1、原理2、主要思想3、拟解决的问题4、优缺点 二、安装环境三、安装与运行1、安装2、运行 四、配置自己的机器人1、Robots Network2、Robots frame names in tf3、Robots node and topic names4、Setting up the navigation stack on the rob…

CTA-GAN:基于生成对抗性网络的主动脉和颈动脉非集中CT血管造影 CT到增强CT的合成技术

Generative Adversarial Network–based Noncontrast CT Angiography for Aorta and Carotid Arteries 基于生成对抗性网络的主动脉和颈动脉非集中CT血管造影背景贡献实验方法损失函数Thinking 基于生成对抗性网络的主动脉和颈动脉非集中CT血管造影 https://github.com/ying-f…

Matplotlib图形配置与样式表_Python数据分析与可视化

Matplotlib图形配置与样式表 配置图形修改默认配置rcParams样式表 Matplotlib的默认图形设置经常被用户诟病。虽然2.0版本已经有了很大改善,但是掌握自定义配置的方法可以让我们打造自己的艺术风格。 配置图形 我们可以通过修个单个图形配置,使得最终图…

Python3.7 win7系统安装openCV方案

为了使用机房电脑处理数字图像问题,在win7系统安装了python opencv, 测试使用的是官网下载python3.7.7版本,如果官网安装,直接安装即可 pip install python-opencv 这样会自动安装对应版本的numpy 如果官网安装很慢,想使用镜像安…

Apache Superset数据分析平台如何实现公网实时远程访问数据【内网穿透】

文章目录 前言1. 使用Docker部署Apache Superset1.1 第一步安装docker 、docker compose1.2 克隆superset代码到本地并使用docker compose启动 2. 安装cpolar内网穿透,实现公网访问3. 设置固定连接公网地址 前言 Superset是一款由中国知名科技公司开源的“现代化的…

关于提示SLF4J: Class path contains multiple SLF4J bindings的问题解决

今天搭建hbase的时候启动hbase的时候shell面板输入了一大堆日志,如下: stopping hbase.....................SLF4J: Class path contains multiple SLF4J bindings.SLF4J: Found binding in [jar:file:/opt/software/hadoop-3.1.3/share/hadoop/common/l…