- 博客(200)
- 资源 (16)
- 收藏
- 关注
转载 矩阵分解 (乘法篇)
这也很容易去解释,为什么LU分解可以写成对角线全1的三角矩阵, 因为可以提取出一个对角矩阵, 然后乘到左边下三角矩阵或者右边上三角矩阵去。但是这个上三角矩阵, 是最左边的下三角矩阵的转置, 所以依然是最左边的下三角矩阵。如果一个矩阵和它的转置矩阵的乘积为单位矩阵, 那么这个矩阵就是正交矩阵。既然有了LDU分解, 那么LDL分解的字面上的意思就比较明确了, 就是下三角形L乘以对角矩阵, 再乘以下三角矩阵。LU分解, 故名思议就是, 把矩阵分成下三角矩阵(Lower)和上三角矩阵(Upper)的一种分解。...
2022-08-16 10:10:13
1321
转载 矩阵分解 (加法篇)
下次, 我们分析矩阵分解乘法的策略,常见的有LU, LDL, QR, SVD分解。那么这些分解, 类比的来说为什么容易计算的同时, 还可以方便对矩阵的认识呢?类比的看, 我们知道整数的分解可以利用乘法也可以利用加法。而这种分解,重要的是对数本身理解上的便利性。然后,可以通过不动点理论, 要求曲线的斜率绝对值不大于1, 这样直观去理解可收敛性。分解的思想其实并不古老, 而且大家都熟悉的,把复杂的分而治之,然后再组合起来。这样的分解, 利用内在的等式应有的平衡性和不动点收敛理论, 可以快速迭代。...
2022-08-16 10:05:35
653
转载 数值型模板参数
本篇文章学习记录:数值型模板参数实现C++数组类模板1、模板中的数值型参数模板参数可以是数值型参数。也就是非类型参数。如下图所示:我们可以像上面定义一个局部数组,但是却不能这样定义:int n=10;func<double,n>();上面这种写法就是错的!!!实际上,不光是类型参数不能为数值型模板参数,下面几种情况也不能作为模板参数浮点数不能作为模板参数变量不能作为模板参数(上面的int n)类对象不能作为模板参数实际上,数值型模板参数是必须在编译阶段被处理
2022-03-25 17:08:38
655
转载 C++中拷贝构造函数的调用及返回值优化问题
1、C++中返回值优化问题返回值优化(Return Value Optimization,简称RVO),是这么一种优化机制:当函数需要返回一个对象的时候,如果自己创建一个临时对象用户返回,那么这个临时对象会消 耗一个构造函数(Constructor)的调用、一个复制构造函数的调用(Copy Constructor)以及一个析构函数(Destructor)的调用的代价。而如果稍微做一点优化,就可以将成本降低到一个构造函数的代价。详细说明:C++中临时对象及返回值优化2、拷贝构造函数的调用原文链接:
2022-03-16 22:58:16
1731
原创 gdb调试
Ubuntu gdb 调试 过程 jin@ubuntu:~/jin/gdb$ gdb -vGNU gdb (Ubuntu/Linaro 7.4-2012.02-0ubuntu2) 7.4-2012.02Copyright (C) 2012 Free Software Foundation, Inc.License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>This is free soft
2022-03-03 00:34:50
510
原创 【无标题】
参看资料 Building GDB and GDBserver for cross debugginggdbguigdb源码下载:http://ftp.gnu.org/gnu/gdb/gdb调试coredump(使用篇) 编译过程 gdb源码下载:http://ftp.gnu.org/gnu/gdb/ 选择7.11//gdb-7.1 oktar zxvf gdb-7.11.tar.gz./configure --targ...
2022-03-02 18:08:45
154
转载 C 语言中模板的几种实现方式
简单宏定义实现简单宏定义 - 方式一这种方式将主要实现部分放在一个宏定义中,利用字符替换的方式实现不同 type 的运算,详细思路见代码:simple_macro_1.c#include <stdint.h>#define INT8 8#define INT16 16#define INT32 32#define DO_MAIN(type) do { \ int i;
2022-02-16 11:22:33
3420
转载 STL的erase()陷阱-迭代器失效总结
阅读目录(Content)1.list,set,map容器 1.1 正确写法1 1.2 正确写法2 1.3 错误写法1 1.4 错误写法2 1.5 分析 2. vector,deque容器 2.1 正确写法 2.2 注意 3.迭代器失效的情况 3.1 vector 3.2 deque 3.3 list 3.4 slist 3.5 stack 3.6 queue 3.7 priority_queue 3.8 set 3.9 multi
2022-01-13 16:05:57
2128
1
原创 C++ STL迭代器原理和实现
1. 迭代器简介为了提高C++编程的效率,STL(Standard Template Library)中提供了许多容器,包括vector、list、map、set等。然而有些容器(vector)可以通过下标索引的方式访问容器里面的数据,但是大部分的容器(list、map、set)不能使用这种方式访问容器中的元素。为了统一访问不同容器时的访问方式,STL为每种容器在实现的时候设计了一个内嵌的iterator类,不同的容器有自己专属的迭代器(专属迭代器负责实现对应容器访问元素的具体细节),使用迭代器来访问容
2022-01-13 15:13:22
791
1
转载 C和C++标准的API在线文献及学习资源
文章目录C/C++标准库的参考标准及在线APIc++CC/C++第三方图形库C/C++标准库的参考标准及在线APIc++onlineMSDN-微软IBM“libc++” C++ Standard LibraryThe GNU C++ Library Homecppreferencecplusplushttp://c.biancheng.net/cplus/书籍C++ Primer Plus第6版中文版-201207《Effective STL 50条有效使用STL.
2022-01-13 09:40:27
242
转载 GPS经纬度和距离计算 Calculate distance, bearing and more between Latitude/Longitude points
Calculate distance, bearing and more between Latitude/Longitude pointsThis page presents a variety of calculations for latitude/longitude points, with the formulas and code fragments for implementing them.All these formulas are for calculations on
2022-01-11 11:50:33
2697
转载 Getting Data from a GPS Moduleand calculating distance and bearing to a waypoint
Getting Data from a GPS Moduleand calculating distance and bearing to a waypointCopyright: Copyright 2007 Dean Hall. All rights reserved. Author: Dean Hall Revision: 2 Date: 2007/11/25 PurposeThis page describes an early stage of
2022-01-11 11:42:19
220
转载 GPS - NMEA sentence information
GPS - NMEA sentence informationContents19 Interpreted sentences 6 Garmin proprietary sentences with 4 interpreted All $GPxxx sentence codes and short descriptions Format of latitudes and longitudes References[Top] [Glenn's GPS Contents Pag...
2022-01-11 11:32:22
723
转载 GPS数据包解析
节,海里每小时1节等于每小时1海里,也就是每小时行驶1.852千米(公里)。CSDNGPS数据包解析很多朋友都不知道GPS数据包怎么解析,给大家分享一下,GPS上电后,每隔一定的时间就会返回一定格式的数据,数据格式为:$信息类型,x,x,x,x,x,x,x,x,x,x,x,x,x每行开头的字符都是‘$’,接着是信息类型,后面是数据,以逗号分隔开。一行完整的数据如下: $GPRMC,080655.00,A,4546.40891,N,12639.65641,E,1.04...
2021-12-17 10:26:08
3961
转载 Linux kernel的调试技术
内核中的调试支持内核开发者在内核中建立了很多调试功能。但是这些调试功能会造成额外的输出,并且导致性能下降,因此发行版厂商通常会禁止发行版内核中的这些功能。但是作为一名内核开发者,调试需求具有更高优先级,从而乐意接受额外的调试支持而带来的性能损失。这里列出内核开发的几个配置选项,除特殊指出,所有这些选项均出现在“kernel hacking”菜单。并非所有体系架构都支持其中的某些选线。更多的调试功可能查看lib/Kconfig.debug文件,或者在menuconfig中搜索关键字debug。CO
2021-12-02 14:55:09
1171
原创 Qt经典—线程、事件与Qobject
介绍You’re doing it wrong. — Bradley T. Hughes线程是qt channel里最流行的讨论话题之一。许多人加入了讨论并询问如何解决他们在运行跨线程编程时所遇到的问题。快速检阅一下他们的代码,在发现的问题当中,十之八九遇到得最大问题是他们在某个地方使用了线程,而随后又坠入了并行编程的陷阱。Qt中创建、运行线程的“易用”性、缺乏相关编程尤其是异步网络编程知识或是养成的使用其它工具集的习惯、这些因素和Qt的信号槽架构混合在一起,便经常使得人们自己把自己射倒在了
2021-10-20 23:50:20
728
转载 Qt_Reentrancy and Thread-Safety-关于Qt的线程安全和重进入
通过这个文档,可以了解重进入和线程安全的类以及这些函数是如何在多线程的应用程序中被使用的线程安全可以称之为是多线程并发操作,即很多线程在访问同一个共享的数据,因为所有的在共享数据中的操作是序列化的 一个重进入的函数可以被称为这个函数同事被多个线程所调用,但是他们其中只有一个线程可以拥有这个函数所拥有的数据 因此,一个线程安全的函数通常是可重入函数,但是一个可重入函数通常不是线程安全的 补充一下,如果一个类的成员函数可以被多个线程安全的调用,只要每个线程都在用同一个类的不同的实例,我们就可以称这个函
2021-10-20 23:15:57
213
转载 Qt 线程安全类,可重入类,不可重入类,线程安全函数,可重入函数
Qt 线程安全类,可重入类,不可重入类,线程安全函数,可重入函数我们首先对类进行说明,可以看成是递进关系,参考C++ GUI Qt 4 Programming。1、线程安全类:不同线程对同一个类的对象进行操作,例如在不同线程调用同一个对象的类成员函数,是安全的,互不妨碍的,则说明该类是线程安全的,Qt中线程安全的类有QMutex、QMutexLocker、QReadWriteLock、QReadLocker、QWriteLocker、QSemaphore、QThreadStorage<T>
2021-10-20 22:47:37
665
转载 SQLite 接口API (C/C++)
SQLite -C/C++安装在 C/C++ 程序中使用 SQLite 之前,我们需要确保机器上已经有 SQLite 库。可以查看 SQLite 安装章节了解安装过程。C/C++ 接口 API以下是重要的 C&C++ / SQLite 接口程序,可以满足您在 C/C++ 程序中使用 SQLite 数据库的需求。如果您需要了解更多细节,请查看 SQLite 官方文档。序号 API & 描述 1 sqlite3_open(const char *filena.
2021-10-12 16:35:23
570
转载 Google Breakpad: 实战crash
C/C++程序最棘手的时候就是一个字“挂”,总是经常和不经常的挂掉,尤其是那些线上的不经常挂的情况,光看日志定位问题真的很难。为解决C挂挂的问题,有必要提供一个跨平台的crash处理系统,目前已知的支持平台有windows 、Linux、 OS X 、android、等待。下面就来看看Google自己用的系统:Breakpad最好的介绍莫过于谷歌自己的:谷歌的介绍:http://code.google.com/p/google-breakpad/wiki/GettingStartedWith
2021-10-12 11:12:38
770
转载 Google Breakpad:脱离符号的调试工具
这其实是原始文档的一点中文摘录。本文来源:https://jackwish.net/2015/introduction-of-google-breakpad.htmlBreakpad 是一套用于抓取应用崩溃数据的工具。Breakpad 可以在移除编译器调试信息后,抓取、压缩 minidump 信息,将其发送回你的服务器,然后为 C/C++ 生成调用栈。尽管 Google Breakpad 将自己定位成一个崩溃报告工具, 但实际上它更像一个调试辅助工具。Breakpad 的特点主要在于崩溃报告
2021-10-12 10:47:37
263
原创 gdb调试器等级
在默认情况下,gcc在编译时不会把调试符号插入到最终生成的二进制代码(机器代码)中,因为这样会急剧增加可执行程序的大小。如果需要在编译时生成调试符号的信息,则可以采用-g或-ggdb参数。-g默认指-g2。gcc在产生调试信息时,同样采用了分级的思路(-g1,-g2,-g3),默认的级别是-g2,此时产生的调试信息包括扩展的符号表、行号、局部或外部变量信息。级别-g3包含级别-g2的信息,另外还有源代码中定义的宏。级别-g1不包含局部变量和与行号有关的调试信息,只能用来回溯跟踪和堆栈转储。回溯跟踪指的是
2021-10-11 16:38:44
467
转载 gcc 编译 选项
常用编译选项GCc and g++分别是gnu的c & c++编译器 GCc/g++在执行编译工作的时候,总共需要4步1.预处理,生成.i的文件[预处理器cpp]2.将预处理后的文件不转换成汇编语言,生成文件.s[编译器eGCs]3.有汇编变为目标代码(机器代码)生成.o的文件[汇编器as]4.连接目标代码,生成可执行程序[链接器ld]GCc 命令的常用选项选项 解释-ansi 只支持 ANSI 标准的 C 语法。这一选项将禁止 GNU C 的某些特色,例如 asm 或 t
2021-10-11 16:11:45
1649
转载 GCC编译优化和调试选项
在开启编译优化的开关时,GCC编译器的目的是:优化程序的性能和减少代码的大小,尽管会以牺牲编译时间和程序的可调试能力为代价。 对于不同的优化级别开启的对应优化开关可以通过gcc -Q -O2 --help=optimizers来查看对应的开启优化列表。1. GCC优化选项-O0 默认的优化选项,减少编译时间和生成完整的调试信息。 -O/-O1 这两个都是开启level 1的编译优化。开启编译优化会导致更长的编译时间,对于大函数还会消耗更多的内存空间。level1的编译优化下,编译器会尝试减少代
2021-10-11 15:17:23
7784
转载 c编译器救星,搞懂GCC c编译器
对c编译器关注较多的朋友,都知道目前市场上主要流通3大c编译器。本文中,主要介绍GCC c编译器,讲解内容为该c编译器的入门必备知识。如果你对GCC的入门知识不够了解,那本文无疑是你的救星!!!在为Linux开发应用程序时,绝大多数情况下使用的都是C语言,因此几乎每一位Linux程序员面临的首要问题都是如何灵活运用C编译器。目前 Linux下最常用的C语言编译器是GCC(GNU Compiler Collection),它是GNU项目中符合ANSI C标准的编译系统,能够编译用C、C++和Objec
2021-10-11 14:29:47
222
原创 动态规划-找零钱问题
#include <iostream>#define MAX 20int c[MAX];//存储所有币值int F[MAX];//存放1到n的各个值所需的币数int min(int x,int y) //取较小值函数{ return (x<y)?x:y;}int changeMaking(int D[],int m,int n) //m为D的len,n为金额 { int i; F[0]=0; printf("star...
2021-09-03 10:46:19
1179
原创 TortoiseGit GitHub 配置
1.打开TortoiseGit下的PuttyGen,在打开的窗口中点击Generate按钮,会出现绿色进度条,等下生成,生成过程中可以多晃晃鼠标增加随机性。2.生成之后复制生成的全部内容,窗口先留着不关闭。3.登录到github,点击右上方的设置图表,进去设置页面之后选择左边选项中的SSH key之后点击Add SSH key在出现的界面中填写SSH key的名称,随便填写自己喜欢的即可,然后将刚刚复制的内容粘贴到key里面再点击add key就可以了。返回到第二
2021-07-23 22:01:43
601
2
原创 如何查看进程使用的线程数量?
如何查看当前进程有多少个存活线程呢?方法1)pstree -p 4761(进程ID)。如下截图所示:方法2)cat /proc/4761(进程ID)/status。如下图所示:方法3)top -p 4761(进程ID),然后按H。如下图所示:脚本解释:比如某台服务器的CPU使用率飙升,通过top命令查看是gitlab程序占用的cpu比较大,"ps -ef|grep gitlab"发现有很多个gitlab程序,现在需要查询gitlab各个进程下的线程数...
2020-12-10 13:28:49
8902
原创 linux /proc/pid/smaps各字段含义
smaps文件内容格式是:7f4913d8f000-7f4913ddd000 r-xp 00000000 fd:00 791940 /usr/local/boost149/lib/libboost_python.so.1.49.0Size: 312 kBRss: 20 kBPss: 2 kBShared_Clean: 20 kBShar
2020-12-10 13:23:43
1997
转载 linux 内存查看方法:meminfo\maps\smaps\status 文件解析
linux 下面查看内存有多种渠道,比如通过命令 ps ,top,free 等,比如通过/proc系统,一般需要比较详细和精确地知道整机内存/某个进程内存的使用情况,最好通过/proc 系统,下面介绍/proc系统下内存相关的几个文件单个进程的内存查看 cat /proc/[pid] 下面有几个文件: maps , smaps, statusmaps 文件可以查看某个进程的代码段、栈区、堆区、动态库、内核区对应的虚拟地址,如果你还不了解linux进程的内存空间,可以参考这里。下图是...
2020-11-13 11:50:01
1334
1
原创 free 命令的一些说明
free命令用了很久了,但是知其然有些不知其所以然。今天为了追查一个内存泄漏问题,特意去仔细研究了一下。一般来说,该命令输出如下: total used free shared buffers cachedMem: 2059500 2042852 16648 0 26708 303484-/+ buffers/cache: 1712660 3.
2020-11-13 09:48:37
153
转载 struct timespec 和 struct timeval
struct timespec 和 struct timevaltime()提供了秒级的精确度 .1、头文件 <time.h>2、函数原型time_t time(time_t * timer)函数返回从TC1970-1-1 0:0:0开始到现在的秒数用time()函数结合其他函数(如:localtime、gmtime、asctime、ctime)可以获得当前系统时间或...
2020-04-16 10:32:10
539
原创 hid资料收集
从零开始学USB(二十三、USB接口HID类设备(五)_报表描述符总结)https://blog.csdn.net/qq_16777851/article/details/86482646HT66FB5x0 实现 2D Joystick 的程序范例(C 语言)https://www.docin.com/p-1016928771.html...
2020-04-01 11:11:40
176
转载 Arm-linux-gcc交叉编译器下载与安装
1.arm-none-linux-gnueabi-gcc下载http://www.veryarm.com/arm-none-linux-gnueabi-gccarm-none-linux-gnueabi-gcc是 Codesourcery 公司(目前已经被Mentor收购)基于GCC推出的的ARM交叉编译工具。可用于交叉编译ARM系统中所有环节的代码,包括裸机程序、u-boot、Linu...
2020-03-25 09:10:52
11184
转载 编译hostapd时,出现错误:/usr/bin/ld: cannot find -lnl
book@ubuntu:/work/project/wifi/04.hostapd/hostapd-2.0/hostapd$ make/usr/bin/ld: cannot find -lnlcollect2: ld returned 1 exit statusmake: *** [hostapd] Error 1问题原因是,没有找到 nl 库 !然后我搜索 这个 n...
2020-03-19 15:07:31
1281
1
原创 交叉编译openssl1.1.1a
交叉编译openssl1.1.1a 交叉编译openssl1.1.1a的时候遇到的问题,记录一下,方便下次查找一、下载源码1.打开openssl官网,下载openssl-1.1.1.tar.gz源码包。2.执行下面的命令解压源码包: $ tar xvzf openssl-1.1.1.tar.gz二、配置openssl1.执行下面的命令配置工程 $...
2020-03-19 11:30:21
602
转载 wpa_supplicant-2.6源码交叉编译
源码下载官网:https://w1.fi/releases/libnl-1.1.4交叉编译:./configure CC=xx-gcc \--prefix=/home/xx/openspurce/wpa_s_2_6/opensrc/release \--sysconfdir=/home/xxx/openspurce/wpa_s_2_6/opensrc/release --host...
2020-03-19 09:25:56
945
转载 Linux线程的实现 & LinuxThread vs. NPTL & 用户级内核级线程 & 线程与信号处理
Linux线程的实现 & LinuxThread vs. NPTL & 用户级内核级线程 & 线程与信号处理另,线程的资源占用可见:http://www.cnblogs.com/charlesblc/p/6242111.html进程 & 线程的很多知识可以看这里:http://www.cnblogs.com/charlesblc/p/6135666.html...
2019-10-11 17:17:10
274
转载 Linux调试工具
1. 使用printf调试#ifdef DEBUGPrintf(“valriable x has value = %d\n”, x)#endif然后在编译选项中加入-DDEBUG更复杂的调试应用如:#define BASIC_DEBUG 1#define EXTRA_DEBUG 2#define SUPER_DEBUG 4#if (DEBUG &EXTR...
2019-10-11 10:11:55
1081
NMEA data.pdf
2022-01-12
Head Unit Integration Guide - Auto Help.pdf
2021-11-04
STM32F10x_StdPeriph_Examples
2017-07-05
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人