GSL 您所在的位置:网站首页 gsl数字货币 GSL

GSL

2023-10-09 22:21| 来源: 网络整理| 查看: 265

GSL¶ 简介¶

GSL(GNU Scientific Library)是专门为应用数学和科学技术领域的数值计算提供支持的软件库。GSL使用C语言编写,同时也为其他语言做了相应的封装。GSL在GNU通用公共许可下是免费的。该函数库提供了广泛的数学算法的实现函数,包括随机数生成器,特殊函数和最小二乘拟合等等。目前该函数库提供有超过1000个函数,这些函数包含的范围有:复数计算、多项式求根、特殊函数、向量和矩阵运算、排列、组合、排序、线性代数、特征值和特征向量、快速傅里叶变换(FFT)、数值积分、随机数生成、随机数分布、统计、蒙特卡洛积分、模拟退火、常微分方程组、插值、数值微分、方程求根、最小二乘拟合、小波变换等。

GSL使用说明¶ 思源一号上的GSL¶

创建gsltest目录并进入该目录:

mkdir gsltest cd gsltest

在该目录下编写如下mygsl.c文件:

#include #include int main() { double a_data[] = {1.0, 0.6, 0.0, 0.0, 1.5, 1.0, 0.0, 1.0, 1.0}; double inva[9]; int s, i, j; gsl_matrix_view m = gsl_matrix_view_array(a_data, 3, 3); gsl_matrix_view inv = gsl_matrix_view_array(inva, 3, 3); gsl_permutation *p = gsl_permutation_alloc(3); printf("The matrix is\n"); for (i = 0; i < 3; ++i) { for (j = 0; j < 3; ++j) { printf(j == 2 ? "%6.3f\n" : "%6.3f ", gsl_matrix_get(&m.matrix, i, j)); } } gsl_linalg_LU_decomp(&m.matrix, p, &s); gsl_linalg_LU_invert(&m.matrix, p, &inv.matrix); printf("The inverse is\n"); for (i = 0; i < 3; ++i) { for (j = 0; j < 3; ++j) { printf(j == 2 ? "%6.3f\n" : "%6.3f ", gsl_matrix_get(&inv.matrix, i, j)); } } gsl_permutation_free(p); return 0; }

在该目录下编写如下gsltest.slurm脚本:

#!/bin/bash #SBATCH --job-name=gsltest #SBATCH --partition=64c512g #SBATCH --ntasks-per-node=1 #SBATCH -n 1 #SBATCH --output=%j.out #SBATCH --error=%j.err ulimit -s unlimited ulimit -l unlimited module load gcc/9.3.0 module load gsl/2.7-gcc-9.3.0 gcc mygsl.c -o mygsl -lgsl -lgslcblas -lm ./mygsl

使用如下命令提交作业:

sbatch gsltest.slurm

作业完成后在.out文件中可看到如下结果:

The matrix is 1.000 0.600 0.000 0.000 1.500 1.000 0.000 1.000 1.000 The inverse is 1.000 -1.200 1.200 0.000 2.000 -2.000 0.000 -2.000 3.000 pi2.0上的GSL¶

此步骤和上文完全相同;

此步骤和上文完全相同;

在该目录下编写如下gsltest.slurm脚本:

#!/bin/bash #SBATCH --job-name=gsltest #SBATCH --partition=small #SBATCH --ntasks-per-node=1 #SBATCH -n 1 #SBATCH --output=%j.out #SBATCH --error=%j.err ulimit -s unlimited ulimit -l unlimited module load gcc/9.2.0 module load gsl/2.5-gcc-9.2.0 gcc mygsl.c -o mygsl -lgsl -lgslcblas -lm ./mygsl

使用如下命令提交作业:

sbatch gsltest.slurm

作业完成后在.out文件中可看到如下结果:

The matrix is 1.000 0.600 0.000 0.000 1.500 1.000 0.000 1.000 1.000 The inverse is 1.000 -1.200 1.200 0.000 2.000 -2.000 0.000 -2.000 3.000 参考资料¶

GSL官方文档



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有