[C++] C++生成随机数

摘要: 一、简介 在C语言中常使用srand()+random()的方式生成随机数,该方式并不是一个很好的随据说生成方法,一方面是因为其生成的随机数质量较低,另一方面其随机数范围也有所限制。在C++11中推荐使用随机数引擎的方式生成随机数。 如何高效得生成高质量得随机数(甚至需要满足指定分布)是一个复杂的问 阅读全文
posted @ 2024-03-17 10:12 刘好念 阅读(230) 评论(0) 推荐(0) 编辑

[vscode]使用cmake时将命令行参数传递给调试目标

摘要: 一、简介 本文介绍了在vscode中使用cmake工具时,如何传递参数给编译目标的方法。 前提:使用vscode+cmake编译C/C++程序。 二、方法 在.vscode/目录下新建settings.json文件,并将待传底的参数写在 cmake.debugConfig里。 下面介绍了一个示例,将 阅读全文
posted @ 2024-03-17 10:10 刘好念 阅读(1005) 评论(0) 推荐(1) 编辑

[Linux]设置脚本运行错误立即退出

摘要: 一、简介 工作中常需要在linux环境下使用shell脚本自动化运行多条命令,在顺序执行多条命令时,需要在前一条命令运行失败时立刻结束脚本,停止运行接下来的其他命令。 本文介绍了三种实现该目标的方法,分别是:使用&&命令执行控制符,使用set -e设置shell options和使用trap 'do 阅读全文
posted @ 2024-03-17 10:07 刘好念 阅读(615) 评论(0) 推荐(0) 编辑

[CUDA] 使用thrust::sort()函数排序

摘要: 一、简介 本文介绍了如何使用thrust::sort()函数对device_vector<int>容器,或者int*指针表示的内存(显存)处的数据进行排序。 二、示例代码 1. 排序 device_vector<int>中的数据 main.cu文件内容: #include <iostream> #i 阅读全文
posted @ 2024-03-11 10:23 刘好念 阅读(218) 评论(0) 推荐(0) 编辑

[C++]根据Debug或者Release编译类型执行不同的代码

摘要: 一、简介 本文介绍了如何在C++中,根据编译类型的不同(Debug或者Release)规定代码执行不同的行为,使用 NDEBUG宏实现该目标。 二、代码示例 main.cpp文件代码: #include <iostream> #if NDEBUG void fun() { std::cout << 阅读全文
posted @ 2024-03-04 20:33 刘好念 阅读(52) 评论(0) 推荐(0) 编辑

[CUDA] 同一个函数根据运行设备选择不同的运行方式

摘要: 一、简介 有时我们需要在host和device端实现同样的一个函数。 一个简单的方法是分别在host和device端上实现两个同名函数,例如fun_host()和fun_device(),在host和device上分别使用不同的函数。 另一种方法只使用一个函数fun(),在编译时根据运行目标的不同选 阅读全文
posted @ 2024-03-04 16:38 刘好念 阅读(7) 评论(0) 推荐(0) 编辑

[C++] 统计程序耗时

摘要: 一、简介 本文介绍了两种在C++代码中统计耗时的方法,第一种使用<time.h>头文件中的clock()函数记录时间戳,统计程序耗时。第二种使用<chrono>头文件中的std::chrono::high_resolution_clock()::now()函数,后者可以方便地统计不同时间单位下的程序 阅读全文
posted @ 2024-03-01 16:07 刘好念 阅读(812) 评论(0) 推荐(0) 编辑

[Pyplot]使用curve_fit函数根据数据点拟合曲面

摘要: 一、背景 使用python+matplotlib实现根据数据点拟合3D曲面。实现效果如图1所示: 二、代码 #!/usr/bin/env python3 import numpy as np from scipy.optimize import curve_fit from mpl_toolkits 阅读全文
posted @ 2023-11-29 11:14 刘好念 阅读(201) 评论(0) 推荐(0) 编辑

[CUDA]去除Eigen库中的warning

摘要: 一、问题提出 假如使用nvcc对cuda代码进行编译时,如果代码中使用了Eigen库(头文件),编译时可能会显示很多warning information,如下图红框中所示: 这些warning信息虽然不会影响代码的实际运行,但会令编译提示很乱,不便于按照编译器给出的信息进行debug。 本文将介绍 阅读全文
posted @ 2023-11-19 11:27 刘好念 阅读(88) 评论(0) 推荐(0) 编辑

[GAMES101]透视投影变换矩阵中为什么需要改变z值

摘要: 一、问题提出 在GAMES101-Lecture4 Transformation Matrices 一节中,闫老师介绍了正交投影和透视投影。 在讲透视投影变换矩阵 M p e r s p → o r t h o M_{persp→ortho} Mpersp→ortho​时,同学们对矩阵中的z分量是变 阅读全文
posted @ 2023-10-11 22:31 刘好念 阅读(52) 评论(0) 推荐(0) 编辑