首页 > 编程语言 >C++ 算法库(一)

C++ 算法库(一)

时间:2025-01-04 15:24:00浏览次数:1  
标签:GNU 数据类型 开源 C++ 算法 点云 3D

1. OSQP

‌OSQP(Operator Splitting Quadratic Programming)是一个用于求解凸二次规划(Convex Quadratic Programming)问题的求解器‌。它基于“算子分裂”的优化方法,将二次规划问题分解为一系列小的子问题,并通过迭代的方式逐步求解。osqp-eigen是对OSQP库的Eigen接口封装,方便矩阵和向量的操作‌。‌

abc


2. SCIP

SCIP是混合整数编程和非线性编程的快速非商业解器,支持多种平台和编程语言接口。可以解决线性、混合整数和非线性规划问题。


3. sciplot

sciplot 是一个现代的 C++ 科学绘图库,它利用 gnuplot 作为后端来生成高质量的图形。该项目的主要编程语言是 C++,并且它是一个头文件库。sciplot 需要一个支持 C++17 的编译器,但它没有外部编译依赖,唯一的运行时依赖是 gnuplot 可执行文件和 gnuplot-palettes 提供的颜色调色板。


4. GLPK

GLPK (GNU Linear Programming Kit,GNU线性编程工具)是GNU下的一个项目,用于建立大规模线性规划LP和混合型整数规划MIP问题,并对模型进行最优化求解。


5. Ceres Solver

Ceres Solver是专门用于求解非线性最小二乘问题的C++开源库,研究SLAM方向不过滤波和优化两个技术路线,因此常用Ceres库解决实际项目中的优化问题,当然还有g2o同样可用,但就说明文档而言,Ceres对新用户更友好


6. RS3 (Real Solutions)

RS3 is devoted to the study of the real roots of polynomial systems with a finite number of complex roots (including univariate polynomials).


7. GMP (GNU Multiple Precision Arithmetic)



8. MPFR (GNU Multiple Precision Floating-Point Reliably)



9. MPFI (Multiple Precision Floating-point Interval)

MPFI provides arbitrary precision interval arithmetic with intervals represented using MPFR reliable floating-point numbers. It is based on the libraries GMP and MPFR.


10. NTL

NTL库是一个高性能、可移植的 C++ 库,为任意长度的整数提供数据结构和算法;用于整数和有限域上的向量、矩阵和多项式;以及任意精度的浮点运算。


11. ESBTL (Easy Structural Biology Template Library)

The ESBTL  is a library that allows the handling of PDB data.


12. LASlib

libLAS 是一个用于读取和写入广泛使用的 LAS LiDAR 格式的 C/C++ 库。libLAS 已被 PDAL 取代,libLAS 不支持 LAS 或 LAZ 1.4 版本,而 PDAL 支持。


13. PointMatcher

libpointmatcher是一个开源C++库,专长于高精度点云配准,适用于3D视觉和自动驾驶等领域。它提供预处理、特征提取、匹配和优化等功能,具有模块化、高效和易集成的特点,适用于SLAM、三维重建和自动驾驶等应用。


14. OpenGR

OpenGR 是一个用于 3D 全局配准的 C++ 库。它是 Super4PCS 库的一个分支,旨在提供几种最先进的 3D 数据全局配准算法。该项目由 STORM-IRIT 团队维护,与 Super4PCS 库的原始作者相同。



15. PCL (Point Cloud Library)
PCL 是一个广泛使用的点云处理库,与 OpenGR 结合使用,可以实现更复杂的点云处理任务。


16. MeshLab
MeshLab 是一个开源的 3D 模型处理软件,支持点云数据的导入和处理,与 OpenGR 结合使用,可以实现点云数据的可视化和编辑。


17. Open3D
Open3D 是一个开源的 3D 数据处理库,支持多种 3D 数据格式和处理算法,与 OpenGR 结合使用,可以实现高效的 3D 数据处理和分析。


18. LEDA

LEDA的是用C++语言写的关于数据类型和算法经典的开源库

包含了如下数据类型:
• 简单数据类型
• 数值和线性代数
• 基本数据类型
• 字典
• 优先级队列
• 图及其数据类型
• 基本二维几何数据类型
• 高级二维几何数据类型
• 基本三维几何数据类型
• Windows图形数据类型
• 杂类



19. CImg

是一个开源、轻量级且高度可定制的C++库,专门用于图像处理和可视化。CImg的核心特性在于其面向对象的设计。它将每个图像表示为一个类实例,允许通过成员函数直接对图像进行操作,如调整大小、旋转、滤波等。

标签:GNU,数据类型,开源,C++,算法,点云,3D
From: https://www.cnblogs.com/gispathfinder/p/18651916

相关文章

  • BUGAWAY算法小抄-差分数组
    BUGAWAY算法小抄-差分数组什么是差分数组?差分数组的思想是通过对原始数组进行处理,得到一个新的数组(差分数组),利用该数组来高效地进行区间更新操作。具体来说,差分数组记录的是相邻元素之间的差值,而不是原始数组的元素本身。差分数组的原理1.差分数组的构造:假设有一个数组A=......
  • 二分查找 - 相关基础算法总结
    问题1:寻找target位置,没有返回-1问题2:从右往左,寻找<target的第一个位置问题3:从左往右,寻找>target的第一个位置问题4:从右往左,寻找<=target的第一个位置问题5:从左往右,寻找>=target的第一个位置以上问题是求很多解力扣算法题的基础,需要好好的掌握: 问题1:寻找......
  • 索引压缩算法 New PForDelta 简介以及使用 SIMD 技术的优化
     1.背景:搜索引擎与索引压缩 在搜索引擎或类似需要对海量文档进行检索的系统中,通常会构建倒排索引(InvertedIndex)。为降低存储成本、减少I/O并提升检索速度,对倒排索引所包含的大量整数序列进行压缩是一种行之有效的手段。•目标:在确保解压速度的同时,尽量获得更好的压缩......
  • 爬山算法与模拟退火算法的全方面比较
    一、基本概念与原理1.爬山算法        爬山算法是一种基于启发式的局部搜索算法,通过不断地向当前解的邻域中搜索更优解来逼近全局最优解。它的核心思想是,从当前解出发,在邻域内找到一个使目标函数值更大(或更小)的解作为新的当前解,直到找不到更优的解为止。2.模拟退火......
  • c++第14课(入门结束)
    1.打擂台新年第二篇!!!打擂台,就是比大小,如:a=0   //你输入了4   4     a=4转化成如下代码:inta=0,b;cin>>b;a=b;cout<<a;但,如是100个呢?那就得用for循环#include<bits/stdc++.h>usingnamespacestd;inta[1000];intmain(){intmax=0;/......
  • gesp(C++四级)(1)洛谷:B3939:[GESP样题 四级] 绝对素
    gesp(C++四级)(1)洛谷:B3939:[GESP样题四级]绝对素数题目描述如果一个两位数是素数,且它的数字位置经过对换后仍为素数,则称为绝对素数,例如131313。给定两个正整数......
  • gesp(C++四级)(2)洛谷:B3940:[GESP样题 四级] 填幻方
    gesp(C++四级)(2)洛谷:B3940:[GESP样题四级]填幻方题目描述在一个N×NN\timesNN×N的正方形网格中,每个格......
  • 打卡信奥刷题(540)用C++信奥P7060[普及组/提高]P7060 [NWRRC2014] Alarm Clock
    [NWRRC2014]AlarmClock题面翻译Alice梦见了一个时间,但她只记得了这个时间在电子钟上显现出来的段数,现在给出这个段数,让你反推Alice梦见的时间(若有多个答案,输出任意一个均可)段数:想必大家都听说过用火柴拼数字的游戏,比如1要用两个火柴,2要用5根火柴,8要用7根火柴等等(如题目......
  • 计算机网络•自顶向下方法:网络安全、RSA算法
    网络安全网络安全的通用定义:网络安全是指网络系统的硬件、软件及其系统中的数据受到保护,不受偶然的或者恶意的原因而遭到破坏、更改、泄露,系统连续可靠地运行,网络服务不中断。网络中的通信安全机密性:报文内容的机密性:仅发送方和希望的接收方能够理解报文的内容通信......
  • C++中值传递和引用传递的区别
    C++中值传递和引用传递的区别值传递:在函数调用时,传递的是实际参数的副本,因此函数内对参数的修改不会影响到实际参数。引用传递:在函数调用时,传递的是实际参数的引用,因此函数内对参数的修改会影响到实际参数。值传递示例代码:classA{public:A(){std::cout<<......