Skip to content

更新日志 changelog

ka__er edited this page Dec 31, 2024 · 2 revisions

卡儿的数学库 v.1.13:

 

2024.6.23

新模块:等角螺线 (对数螺线)

粒子圆新增功能“把圆染色成色环”

 

2024.7.6

从小豆的数学库中搬运来了世界坐标与局部坐标的互转的两种新算法

 

2024.7.7

新模块:整数约分

小小的优化了一下浮点加减法的性能

新模块:整型数字开方 - 一条命令开方(非/function)

新模块:浮点数比大小

 

2024.7.8

新模块:整数转二进制

移除了模块:整型数字开方 - 一条命令开方(非/function) (原因:性能不高因此只能用于娱乐,而且战利品表文件过大)

 

2024.7.9

新模块:实体球

新模块:直线

 

2024.7.12

新模块:LambertW函数

 

2024.7.14

新模块:逆伽玛函数 - F.K.Amenyou公式

 

2024.7.18

新模块:粒子正多边形

 

2024.7.20

修复了因少打了个字符导致的浮点除法的运算错误

#float_int0 in → #float_int0 int

int打错成了in

小小的优化了一下数组除以整数的性能

移除了模块:实心球 (原因:性能消耗过大,高消耗却给不出高效率,因此舍弃)

 

2024.7.21

新模块:执行朝向转单位向量

新模块:横滚角转四元数

新模块:double转int - 记分板格式,精度为8位有效数字

算法重命名。把 "double转int数组" 重命名为 "double转int - 数组格式,精度为16位有效数字"

浮点乘法新增算法2,浮点转化为记分板格式后取前八位进行大数乘法

阶乘算法更改:区间[0,12]的自然数的阶乘以int型输出,区间[0,19]的自然数的双阶乘以int型输出

 

2024.7.25

新模块:表达式求值 - 正整数的四则运算

 

2024.7.26

表达式分析已支持全double形式,包括负数、小数、科学记数法,所以算法重命名:"表达式求值 - 正整数的四则运算"重命名为"表达式求值 - 四则运算"

 

2024.7.28

回退了2024.7.7关于"浮点加减法"的更改

 

 

卡儿的数学库 v.1.14:

 

2024.7.28

新模块:三角函数法快速测距

 

2024.7.29

小小的优化了一下展示实体法大数除法

 

2024.7.30

三维空间任意方向的五角星新增摆线法绘制算法,摆线法有新的粒子密度算法。

 

2024.7.31

新模块:Sigmoid函数 - 线性近似

 

2024.8.4

新模块:对浮点数向下取整

新模块:Digamma函数

新模块:表达式求值 - 科学计算

数学库有logo了:https://s21.ax1x.com/2024/08/04/pkjXmcQ.png

来源于[小丑]和[new]两个emoji的融合

 

2024.8.7

新增常数:欧拉常数 γ

新模块:高精度自然对数 (全double)

此前此模块一直作为内置算法,因为那时的高精度自然对数算法只能算是延长了尾数长度,精度依然是四位小数,没什么利用价值。现在有了新算法,因此此模块正式加入。同时因为新算法不需要查表了,所以移除了ln[1,2]的数据库。

“表达式求值 - 科学计算”里面的ln和log运算都更换为高精度算法

“任意正数的幂”和“伽玛函数 - 斯特林公式”的精度也随之提高

 

2024.8.9

重构了“double转int - 数组格式,精度为16位有效数字”的算法,移除了原有的四个子算法,只保留了新算法。

原有的输出格式读数算法太繁琐了,因此重整为了十进制浮点数格式。所谓的小数点位置信息和前导0数量信息最终都是要转化为指数信息的,因此这三个信息直接在算法内合并了。

重构了“double型开方 (高精度浮点数开方)”,新算法性能得到了优化。移除了原来的两个子算法,只保留了新算法。

“快速浮点数开方”的函数路径由“new_double_ope/double_sqrt_sci”更改为“new_double_ope/double_sqrt”

“快速浮点数开方”的输出路径由“storage large_number:math double_sqrt.output.double_sci”更改为“storage large_number:math double_sqrt.output”

重构了“高精度浮点乘法”,新算法略去了许多冗余的读数的步骤,性能得到了优化。

新模块:高精度浮点数平方

基于重构的高精度浮点乘法,优化了“高精度自然对数 (全double)”的性能

“double型开方 (高精度浮点数开方)”新增“12~13位有效数字”的子算法,用24位数组开根法取出了double开根号的12位有效数字

因此此模块现有精度和消耗均不同的两个子算法

 

2024.8.11

新增常数:黄金比例 φ

新模块:行列式,包含三个子算法

1.判断输入值是否为行列式 2.基础行列式求值 3.整数列表的逆序数

 

2024.8.12

使用代数余子式展开法优化了高阶行列式求值的运算

 

2024.8.14

双参数反正切新增子算法:数据来自nbt。原来的算法归于子算法:数据来自记分板。

新模块:定积分

新模块:反正切

 

2024.8.15

定积分新增子算法:[0,1]区间的积分

 

2024.8.17

优化了"整数转二进制"模块,命令数从65条改良到34条

新模块:浮点数的整数次幂 - 快速幂

快速幂算法性能稳定,无论多大的指数,都最多使用30次浮点乘法和30次浮点平方,全面优于递归相乘法。

把其他模块调用的"浮点数的整数次幂"算法全都换成了快速幂。

改良了"指数函数"模块,现在对整数指数和非整数指数有不同的处理方式。输入整数指数会自动调用快速幂算法。

由此更改了e^x前置库的数据存储方式,使用新版此算法需重新载入一次前置库

README内容排版优化:把函数路径补全了命名空间,部分数学公式使用LaTex输入

改良了"任意正数的幂"算法,新算法是:把指数拆为整数部分和小数部分,整数部分用快速幂,小数部分套公式,a^b = e^(b*ln(a))。

新模块:对浮点数进行10进制位移

"伽玛函数"模块新增(-1,0.2216)区间的近似算法,使此算法支持的输入值区间从[0.1,170.6271]扩大到了(-1,170.6271]

 

2024.8.18

"逆伽玛函数"模块新增(𝜆, 1.13)区间的近似算法,使此算法支持的输入值区间从x≥1扩大到了x≥𝜆,𝜆≈0.8856031944109。

"整数除法"新增子算法:4位有效数字

新模块:曲线长度 - 一元函数在[a,b]内的图像长度

 

2024.8.19

稍微优化了一下"伽玛函数-斯特林公式"的运算性能

新模块:整数的进制转换

 

2024.8.21

算法重命名:"对浮点数向下取整"重命名为"对浮点数取整"

"对浮点数取整"新增功能:向0取整,默认不开启。

 

2024.8.22

新模块:数值导数

 

 

卡儿的数学库 v.1.15:

 

2024.8.24

优化了一些宏命令

 

2024.8.25

"表达式求值-科学计算"模块增加了四个逻辑运算函数

 

2024.8.28

"double转int - 记分板格式,精度为8位有效数字"模块增加了子算法:四分树取数法。原来的算法叫"宏命令取数法"。

 

2024.9.2

新模块:组合数

 

2024.9.6

算法重命名:"概率模拟"更名为"随机数生成",以更好的描述算法内容

新模块:N阶贝塞尔曲线

 

2024.9.7

深度优化了"获取当前日期和时间"模块,同时更改了前置库的部分数据的存储类型,因此需要重新载入一次前置库。同时也稍微更改了"Unix时间戳解析 (32位)"的算法以优化性能。

 

2024.9.8

新模块:高精度浮点数立方。此算法比快速幂算立方快。

再次优化了"浮点乘法"相关的运算。

 

2024.9.9

指数函数新增子算法:开n次方。比"任意正数的幂"快。

小小的优化了"任意正数的幂"的性能。

 

2024.9.10

数学库新增唯一标识符,新增协议版本可供检测

小小的优化了一下色轮的性能

移除了模块:生成总和为n的a个随机数

新模块:生成一个[0,1]区间的随机数 (PCG算法)

 

 

卡儿的数学库 v.1.16:

 

2024.9.12

把数学库适应的MC版本升级到了1.21.1

移除了"带连字符的16进制UUID转为数组"模块的子算法"实体属性法",原因是1.21.1版本不适用

优化了"带连字符的16进制UUID转为数组"的性能,执行的命令数比之前减少了约70条

 

2024.9.13

根据新版的物品修饰器,把"随机数生成 - 二项分布"模块的测试2算法换成了新的算法。新算法是直接使用数值提供器的二项分布函数。

"生成一个[0,1]区间的随机数"模块新增子算法"LCG算法",把原来的算法归为子算法"PCG算法"并更改了函数路径。

"表达式求值-科学计算"模块已支持开n次方函数。

给数学库换了个新logo,新logo的图案是对数螺线。

 

2024.9.14

优化了部分数据操作相关的命令

优化了浮点除法的性能

修复了"伽玛函数 - 斯特林公式"里的因打错了字导致的错误

在函数"large_number:gamma_function/stirling/mul_with_const_2"里的第275行:

"remove #float_mul.high_precision.input1.expon int 19"改为"remove #float_mul.high_precision.input1.expon int 20"

优化了"浮点乘法"的算法2

"double转int - 记分板格式,精度为8位有效数字"模块的"四叉树取数法"已支持比1E-301还小的数字,至此此模块已支持全double的转换。

修复了2024.8.24优化宏命令时导致的"随机数生成-超几何分布"算法的错误。

"对浮点数取倒数"模块新增子算法:8位小数。原来的算法归为子算法:12位小数。

因浮点精度导致有时候多算的4位小数也都是无效的,所以把部分12位小数的取倒数算法换成8位小数的算法。

修复了数学库中的单词错误:"dicimal"应为"decimal"

再次优化了部分操作storage的命令

此次优化影响较大的有:高精度浮点乘法、进制转换、获取日期和时间(解码base64的部分)

 

2024.9.21

新模块:发射抛射物使其命中目标点

此算法来源于小豆的专栏

"抛物线"模块重命名为"二次函数(抛物线)图像"  

2024.9.26

优化了浮点数取绝对值、浮点数取相反数、浮点加减法的性能

重构了"对浮点数取整"模块,进行了大幅优化

新模块:双曲函数。包含三个子算法:双曲正弦、双曲余弦、双曲正切。

"Sigmoid函数 - 线性近似"模块重命名为"Sigmoid函数"

"Sigmoid函数"模块新增子算法:直接计算法。原来的算法归为"线性近似法"。

 

2024.9.28

"任意整型数字相乘"模块新增子算法:函数宏乘法。原来的算法归为子算法:数组相乘法。

"24位数字显示"重命名为"数位显示(千位分隔)",移除了原有的两个子算法,加入了新的子算法:int数位显示。

采用了全新算法,使数位显示性能大大提升。新算法是以字符串的方法分隔数,而不是以数组的方法分隔数。

 

2024.9.29

新模块:列表算法 - 排序。包含四个子算法:整数的正序和逆序,double的正序和逆序,都是冒泡排序法。

 

2024.9.30

新模块:模拟闪电

 

2024.10.3

"获取当前日期和时间"模块新功能:可输出时间戳,并可调整输出模式。

 

2024.10.4

调整了"指数函数"中"任意正数幂"的算法,增加了算法选择功能,把"2024.8.17"中的更改视为新算法。

优化了"三维空间任意方向的椭圆"的性能,改良了横滚角的算法。

 

2024.10.5

修复了"高精度自然对数"对小于1的数值的计算错误

新模块:星形线。包含两个子算法:"第一类:P范数定义"和"第二类:四圆拼接定义"

 

2024.10.6

新模块:随机数生成 - 几何分布

 

2024.10.7

修复了"玩家经验公式"中打错字导致的错误

新模块:玩家经验公式 - 扣除玩家前N级经验

 

2024.10.8

新模块:随机数生成 - 帕斯卡分布

 

 

卡儿的数学库 v.1.17:

 

2024.10.9

修复了"快速幂"模块的一个对于-1指数的计算错误

"表达式求值 - 科学计算"已支持双曲函数

 

2024.10.10

"定积分"模块新增子算法:蒙特卡洛积分法。

 

2024.10.13

新模块:列表算法 - 平均数

新模块:列表算法 - 总和

 

2024.10.14

提升了LambertW函数的精度,增算了一项渐进展开式

 

2024.10.18

新模块:圆锥选区

"列表算法 - 排序"重命名为"列表算法 - 数值排序"

新模块:列表算法 - 字符串排序。目前包含一个子算法。

 

2024.10.19

新模块:随机数生成 - 标准正态分布

新模块:随机数生成 - 指数分布

新模块:随机数生成 - 伽玛分布

新模块:随机数生成 - 偏匀分布

 

2024.10.21

新模块:扇形选区

 

2024.10.29

把数学库适应的MC版本升级到了1.21.3

基于新版本特性,修复与改进了部分粒子图形的算法

 

2024.10.30

浮点加减法新增子算法:记分板算法。原来的算法归为子算法:实体坐标法。

新模块:迭代法无穷位大数除法

改进了心形线的算法。出于计算arccos会损失一些精度导致图像断开,因此改进的算法是用y值的cos来逆推出x值,新算法的性能也更好了。

同时也不需要为了修复图像断开带来的额外的参数和算法了。

优化了粒子球的算法。

回退了2024.8.17中对"任意正数幂"的调整,现在整数指数就是快速幂,非整数指数就代公式,无额外操作

 

2024.10.31

新模块:快速取中点——三维两点的粗略中点

优化了"数组除以五位整数 (保留四位小数)"模块,现在它只允许除数为正数、被除数为非负数,命令数减少至16条。

新模块:圆柱选区

重命名了随机数生成系列算法以更好的描述(分为连续随机数和离散随机数)

 

2024.11.1

重新检验了"数组除以五位整数 (保留四位小数)"模块的算法逻辑,发现其精确的可允许除数的上限为214748,并把算法重命名为"数组除以一~六位整数 (保留四位小数)"。

基于优化竖式除法的思路优化了"整型数字开方 - 牛顿迭代法(保留四位小数)",把命令数从42条减少至31条,把此算法合并至"整型数字开方"里

新模块:快速视线追踪

 

2024.11.2

出于1.21.3的Rotation的角度具有不稳定的特性,给atan2d和arctan函数加上了角度修正算法,atan2d、arcsin和arccos的输出也更换为#atan2d int。

不稳定的特性是指:比如让一个实体旋转45度然后获取它的角度,有时候是45度,有时候是-315度,虽然在朝向上他们是等价的,但是拿它来做数学运算却是天差地别。

"迭代法无穷位大数除法"新增子算法"无穷位数组整除一~六位整数"。原来的算法归为"递归相减法",

 

2024.11.3

新模块:计算圆周率π

我们mcf也有自己的计算圆周率的算法了。

 

2024.11.6

把用盔甲架暂存物品的算法机制都换成了用唱片机暂存物品,以此优化了相关算法。

 

2024.11.7

"计算圆周率π"模块新增子算法:分步计算法。可计算一万位π!

 

2024.11.8

新模块:解浮点系数一元二次方程(全double)

新模块:对double开立方根

 

2024.11.9

新模块:一元三次方程计算器

 

2024.11.11

新模块:高精度正弦与余弦

提升了一元三次方程、表达式求值-科学计算里的正弦与余弦的精度。

 

2024.11.13

调整了"double转int - 记分板格式,精度为8位有效数字"模块中"四叉树取数法"算法,输出的最小值现在是1E-308,以适配相关的算法需求。

调整了atan2相关算法的输出,把-180度的输出修正为180度,以适配相关的反三角函数计算需求。

新模块:标准正态分布的临界值

新模块:根据概率、误差和置信水平估计试验次数

 

 

卡儿的数学库 v.1.18:

 

2024.12.1

修复了色环计算色相立方时的使用记分板路径错误的问题

问题描述:输出的是#color_wheel.output.R/G/B int,但使用的是 #color_cube.start.R/G/B int,接口不一致

新模块:HSL转RGB

把"把圆染色成色环"从圆的模块介绍中分离出来,以方便用户查找

 

2024.12.5

改良了"伽玛函数 - 斯特林公式"的算法,若输入值为整数会自动调用"自然数的阶乘"算法,以使结果更准确。

修复了"double的三维范数 - 单位向量法"的一个计算错误:

问题描述:在函数"large_number:double_norm/macro2/2"里含有错误的命令:"$execute positioned .0 ~$(temp2) .0 run run function large_number:double_norm/macro2/3 with storage large_number:math"。多打了一个run。

2024.12.6

"自然数的阶乘"新增子算法"输出为万进制数组格式",原来的算法归为子算法"输出为int/double型格式"。

 

2024.12.7

新模块:伽玛函数 - Robert H. Windschitl 方法。在大多数情况下此算法比斯特林公式更准确。

把"表达式求值 - 科学计算"里的伽玛函数算法更换为此算法。

新模块:一元函数在[a,b]内的图像

 

2024.12.8

"计算圆周率 π"模块新增万进制数组格式的输出。

 

2024.12.9

移除了"整数开根 - 连分数迭代法"的约分设置项。理由:感觉没有设置这个的必要,默认是约分的。

 

2024.12.10

新模块:二元函数在矩形区域内的图像

 

2024.12.13

对"表达式求值 - 科学计算"模块里的"nroot"函数作了修改,修改后的功能为:

αnrootβ = 对β开α次根,若α取值为3则自动调用立方根算法。

修复了"表达式求值 - 科学计算"模块里"取绝对值"函数的计算错误。

问题描述:对于为正数的输入值没有作正确的输出。

 

2024.12.19

"一元函数在[a,b]内的图像" 模块新增子算法 "每tick绘制若干个点"。原来的算法归为子算法 "单tick一次性画完"。

用于把单tick的计算压力分配给多个tick以优化性能。

 

2024.12.20

"二元函数在矩形区域内的图像" 模块新增子算法:"每tick绘制一条切面上的一元函数" 和 "每tick绘制若干个点"。原来的算法归为子算法 "单tick一次性画完"。

用于把单tick的计算压力分配给多个tick以优化性能。

"定积分" 模块新增子算法 "黎曼积分法 - 每tick计算n个小矩形"。

 

2024.12.24

"表达式求值 - 科学计算" 模块新增常数符号 "τ",表示二倍的圆周率。同时移除了此符号表示变量的功能。

引入此常数的原因:我发现我在计算傅里叶级数的时候需要频繁使用表达式来计算2π,所以我干脆也直接定义了τ来简化计算。

新增常数:二倍的圆周率 τ,double的最小值,double的最大值,double的绝对值的最小值。

把数据包内所有可翻译的JSON文本都更改为 "可用资源包翻译的键名 + 默认文本"的形式。

高精度正弦与余弦新增记分板int型输出 (1000000000倍)。

新模块:高精度正切

"表达式求值 - 科学计算" 模块已支持tan函数。

 

2024.12.28

新模块:[傅里叶分析] 一元实函数的傅里叶级数展开

包含三个子算法:1.函数展开为傅里叶级数;2.计算展开后的傅里叶级数值;3.傅里叶级数在[a,b]区间的图像 - 多tick绘制法

 

2024.12.29

"[粒子图形] N阶贝塞尔曲线" 模块新增子算法:多tick绘制法。原来的算法归为子算法:单tick绘制法。

新模块:[线性代数] 单位四元数乘法

 

2024.12.30

扩展了 "[三角函数] 高精度正弦与余弦" 模块和 "[三角函数] 高精度正切" 模块的输入值范围,现在允许输入[-2147483647,2147483647]范围的float值。

同时"[科学计算] 表达式求值 - 科学计算" 模块里的sin、cos、tan函数的输入范围也扩展为 [-37480660.2728, 37480660.2728]。

由于记分板里-2147483648 *= -1 会得到-2147483648,因此对每一个能接受全int的参数都写了一条特殊处理,以修复可能存在(虽然几乎不会出现)的问题。

新模块:[微积分] 级数求和 - 数值方法

优化了所有算法里的浮点加法的性能