Linux下SuiteSparse的下载与编译

前言

SuiteSparse 是一个用于稀疏矩阵计算的开源库,它提供了一系列高效的算法和工具,用于解决线性代数和优化问题中的稀疏矩阵操作。

SuiteSparse Matrix Collection 是由 Tim Davis 创建和维护的一个稀疏矩阵集合,其中包含了各种各样的真实世界和人工生成的稀疏矩阵。网址为[https://sparse.tamu.edu/]。(https://sparse.tamu.edu/)

下面介绍一下在Linux环境下下载编译SuiteSparse库。

下载编译

  1. 安装必要的编译软件CMake
sudo apt-get update
sudo apt-get install build-essential cmake

可以通过下面命令来查看一下CMake的版本。

cmake --version

我使用上述命令安装的cmake是3.16版本的,后面编译时报错说需要3.22以上的CMake。所以我需要手动下载CMake。版本满足要求的小伙伴可以忽略下面步骤:

#卸载旧版本的 CMake
sudo apt-get remove cmake
#使用wget下载3.25版的CMake,然后把它安装到/opt/cmake目录里
wget https://github.com/Kitware/CMake/releases/download/v3.25.3/cmake-3.25.3-linux-x86_64.sh
sudo mkdir /opt/cmake
sudo sh cmake-3.25.3-linux-x86_64.sh --prefix=/opt/cmake --skip-license
#为了让系统识别新的 CMake,需要更新 PATH 环境变量
echo 'export PATH=/opt/cmake/bin:$PATH' >> ~/.bashrc
source ~/.bashrc
#查看是否正确安装新版本的CMake
cmake --version
  1. 下载依赖包
    SuiteSparse本身要依赖很多包,所以要提前把这些包下载好后面编译才不会报错。
    我们不用去特定把这些包装在suiteSparse目录下,apt-get会帮我们自动管理的。
sudo apt-get install libopenblas-dev
sudo apt-get install libgmp-dev
sudo apt-get install libmpfr-dev

下面是对依赖的包的解释:

BLAS 是一组用于执行常见线性代数运算的库,通常由底层优化的线性代数库(如 OpenBLAS、Intel MKL 或 ATLAS)提供。
GMP 是一个用于高精度计算的库,SuiteSparse 的一部分需要使用它。
MPFR 是 SuiteSparse 的一个依赖项,用于处理高精度浮点数计算。

  1. 下载suiteSparse并编译安装
    获取suiteSparse源码:
git clone https://github.com/DrTimothyAldenDavis/SuiteSparse.git

切换到 SuiteSparse 源代码所在的目录,并创建目录:

cd SuiteSparse
mkdir build
cd build

运行 CMake 配置

cmake ..

编译 SuiteSparse。这个编译需要花很长时间,耐心等待吧

make

将 SuiteSparse 安装到系统目录中

sudo make install

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

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

相关文章

Java学习:电影查询简单系统

1.创建一个movice的对象来存放电影 里面设置构造器(有参和无参) package com.movie;public class movice {//创建一个movice的对象存放电影private int id;private String name;private double price;private double score;private String diector;pri…

PyCharm面板ctrl+鼠标滚轮放大缩小代码

1.【File】➡【Settings】 2.点击【Keymap】,在右边搜索框中搜incre,双击出现的【Increase Font Size】 3.在弹出的提示框中选择【Add Mouse Shortcut】 4.弹出下面的提示框后,键盘按住【ctrl】,并且上滑鼠标滚轮。然后点击【O…

高等数学导学

高数内容线 1.极限2.导数3.积分一元函数多元函数: 说明 高等数学主要讲这三个东西,上下两册内容:上册主要讲一元,下册讲多元 但是一元是多元的基础,必须得掌握好,下册的多元函数才能学的好 七八章讲微分和解…

ResizeObserver loop completed with undelivered notifications.

报错信息 ResizeObserver loop completed with undelivered notifications. 来源 在用vue3 element-plus写项目的时候报的错,经过排查法,发现是element-plus的el-table组件引起的错误。 经过初步排查,这个错误并不是vue以及element-plus…

【前端每日基础】day24——DOM操作

DOM 操作 获取元素 要对网页中的元素进行操作,首先需要获取这些元素。常用的方法有: document.getElementById(id): 获取具有指定id的元素。 document.getElementsByClassName(className): 获取具有指定类名的所有元素,返回HTMLCollection。…

Redis数据类型(上篇)

前提:(key代表键) Redis常用的命令 命令作用keys *查看当前库所有的keyexists key判断某个key是否存在type key查看key是什么类型del key 删除指定的keyunlink key非阻塞删除,仅仅将keys从keyspace元数据中删除,真正的…

vueRouter路由总结

https://blog.csdn.net/qq_24767091/article/details/119326884

中国电子节能技术协会数据安全专业委员会筹备会暨标准征集启动会即将开幕

导读:“以高效、安全、绿色数据底座铸就美好未来”为主题的2024数据安全与绿色发展研讨会,中国电子节能技术协会数据安全专业委员会筹备会暨标准征集启动会即将开幕。 绿色发展是高质量发展的底座,绿色化是新一轮科技革命和产业变革的重要趋势…

力扣hot 100:49. 字母异位词分组(python C++)

目录 题目描述:题解(python):(方法一:排序)代码解析代码运行解析 题解(C):(方法一:排序)代码解析&运行解析 原题目链接…

机器学习笔记——K近邻算法、手写数字识别

KNN算法 “物以类聚,人以群分”相似的数据往往拥有相同的类别 其大概原理就是一个样本归到哪一类,当前样本需要归到频次最高的哪个类去 也就是说有一个待分类的样本,然后跟他周围的k个样本来看,k中哪一个类最多,待分类…

Oracle数据库Day01-SELECT语句

一、SQL语句 1. 环境配置与准备 linux端oracle用户打开监听//查看监听状态与开始监听 lsnrctl status lsnrctl start开启数据库sqlplus / as sysdba startup;解锁hr用户样例数据库,给hr用户设置密码并且连接alter user hr account unlock; alter user hr identifie…

2024爆款神器!会声会影2024旗舰版,让你的视频制作技能暴涨,不学真的亏大了!

在数字内容创作的时代,视频编辑已经成为连接创意与现实的重要桥梁。无论是个人Vlog制作、在线教育课程、企业宣传还是专业影视制作,高效而强大的视频编辑软件成为了必不可少的工具。会声会影2024旗舰版,作为一款集先进技术与用户友好界面设计…

常用API(正则表达式、爬取、捕获分组和非捕获分组 )

1、正则表达式 练习——先爽一下正则表达式 正则表达式可以校验字符串是否满足一定的规则,并用来校验数据格式的合法性。 需求:假如现在要求校验一个qq号码是否正确。 规则:6位及20位之内,0不能在开头,必须全部是数字…

30.哀家要长脑子了!---栈与队列

1.388. 文件的最长绝对路径 - 力扣(LeetCode) 其实看懂了就还好 用一个栈来保存所遍历过最大的文件的绝对路径的长度,栈顶元素是文件的长度,栈中元素的个数是该文件目录的深度,非栈顶元素就是当时目录的长度 检查此…

Qt 5前后调色板差异变化

Qt 5之前: QPalette palette;//调色板 设置背景颜色 palette.setColor(QPalette::Backgound, color...);Qt 5之后: 由原有的 Background 模式 更新为 Window 模式 QPalette palette;//调色板 设置背景颜色 palette.setColor(QPalette::Window, color..…

10.SpringBoot 统一处理功能

文章目录 1.拦截器1.1在代码中的应用1.1.1定义拦截器1.1.2注册配置拦截器 1.2拦截器的作用1.3拦截器的实现 2.统一数据返回格式2.1 为什么需要统⼀数据返回格式?2.2 统⼀数据返回格式的实现 3.统一异常处理4.SpringBoot专业版创建项目无Java8版本怎么办?…

nodejs安装配置

nodejs安装 打开nodejs官网(https://nodejs.org/en/download/package-manager),参考安装步骤操作。 更新镜像源 输入以下命令,将npm的镜像源设置为淘宝镜像。网上资料中,淘宝镜像地址多为https://registry.npm.taobao.org,这个…

【MATLAB源码-第67期】基于麻雀搜索算法(SSA)的无人机三维地图路径规划,输出最短路径和适应度曲线。

操作环境: MATLAB 2022a 1、算法描述 麻雀搜索算法(Sparrow Search Algorithm, SSA)是一种新颖的元启发式优化算法,它受到麻雀社会行为的启发。这种算法通过模拟麻雀的食物搜索行为和逃避天敌的策略来解决优化问题。SSA通过模拟…

【C++】:vector容器的基本使用

目录 🍒1,vector的介绍🍒2,vector的使用🐯2.1 vector的构造🦁2.2 vector iterator 的使用🌽2.3 vector 空间增长问题🍓2.4 vector 增删查改🐯2.5 vector 访问及遍历&…

雷军-2022.8小米创业思考-9-爆品模式:产品力超群,具有一流口碑,最终实现海量长销的产品。人人都向往;做减法;重组创新;小白模式

第九章 爆品模式 小米方法论的第三个关键词,就是一切以产品为出发点,打造爆品模式。 大多数人对“爆品”的着眼点仅在于“爆”,也就是产品卖得好。希望产品大卖这没有错,但是“爆”是“品”的结果,爆品是打造出来的&…