tiny-matrix
轻量级矩阵类
 
载入中...
搜索中...
未找到
Matrix.h 文件参考

矩阵类声明 更多...

#include <stdlib.h>
#include <string.h>
#include <iostream>
#include <iomanip>
#include <initializer_list>

浏览源代码.

class  Matrix
 本类用于进行矩阵的基本计算 更多...
 

类型定义

typedef std::initializer_list< double > MatIniLst
 

详细描述

矩阵类声明

作者
Zerol Acqua<zerol.nosp@m.acqu.nosp@m.a@out.nosp@m.look.nosp@m..com>
版本
V1.4.1
日期
2022/01/21

本文件存储矩阵类的各声明与基本信息

Version Auther Date Describe
V1.0.0 Zerol Acqua 2021/03/22 Create Files
V1.1.0 Zerol Acqua 2021/10/02 Add Functions
V1.2.0 Zerol Acqua 2021/10/09 Add Functions
V1.3.0 Zerol Acqua 2021/10/11 Add Functions
V1.3.1 Zerol Acqua 2022/01/17 Small Patches
V1.4.0 Zerol Acqua 2022/01/21 Add Functions
V1.4.1 Zerol Acqua 2022/11/30 Small Patches

V1.0.0

本类用于进行矩阵的基本计算

  • 矩阵加法,矩阵数乘,矩阵乘法
  • 矩阵广播,矩阵合并,矩阵判等
  • 高斯消元法,求秩
  • 计算行列式,矩阵求逆,求伴随矩阵

V1.1.0

  • 整理注释,修改变量名称
  • 优化修改了部分的构造函数和静态函数
    • eye 函数

ones 函数

  • zeros 函数

修正了移动构造函数和移动赋值函数实现

  • 重载了<<运算运算符实现流输出
  • 无参构造函数和错误返回的矩阵均改为0*0的空矩阵,并修改了 部分函数内检查矩阵形状的代码(主要是空矩阵的判断)
  • 修改了大部分成员函数:变为非成员函数并作为友元函数, 参数设置为常量引用,左值和右值现在均可绑定。
    • 成员函数 =rvalue =lvalue
    • 友元函数 Matrix+Matrix Matrix-Matrix
    • 友元函数 Matrix*Matrix
    • 友元函数 factor*Matrix Matrix*factor

TODO:

  • 矩阵广播,
    • 复合赋值 +=-=
    • 前后置自增 ++ 与自减--
    • 单元运算符 +/-
    • 矩阵除法 /

V1.2.0

  • 矩阵广播(只做了与数字的)
  • 复合赋值 +=-=
  • 单元运算符 +/-

V1.3.0

  • 前后置自增"++"自减"--",
  • 矩阵除法 "/"
  • 修改了部分辅助函数,加上 const 关键字,使其不能修改成员变量
  • TODO:
    • 关于数值是否要转化为矩阵的问题
    • 做完运算符重载后,关于一些辅助函数的重构问题
    • 分块矩阵
    • 精度和打印相关的参数

V1.3.1

  • 整理添加了部分辅助函数的注释,并进行很小的改动
  • TODO:
    • 计算矩阵的特征值(QR 算法)
    • 矩阵的幂,矩阵多项式计算
    • 分块矩阵
    • 精度和打印相关的参数
    • reshape 函数相关代码

V1.4.0

  • 修改了浮点数判等的逻辑
  • 添加了矩阵形状检测的相关辅助函数
  • 添加 diag 函数
  • 添加了 eigen 函数,以及相关的 hessenberg 函数、qrDecom4Hessenberg 函数 目前求矩阵的特征值只能计算实特征值,如果存在复特征值,就没办法计算了
  • 添加了 randMatrix 函数,用于生成 0~1 伪随机元素组成的矩阵
  • TODO:
    • 想写一下异常抛出相关的东西,不然以后 debug 太累了,这大概又是一个不小的工程

V1.4.1

  • 修复 noexcept ,在成员函数的实现中补上了 noexcept
  • 优化了 rowExchange 函数的实现逻辑
注意
本文件还在开发中

类型定义说明

◆ MatIniLst

typedef std::initializer_list<double> MatIniLst