# NodeCalcTest **Repository Path**: hailoong/node-calc-test ## Basic Information - **Project Name**: NodeCalcTest - **Description**: node.js 高性能原生计算插件测试 - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-11-21 - **Last Updated**: 2025-11-21 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Node.js 高性能原生计算插件 这是一个基于 Node.js 的原生 C++ 插件,提供高性能的数学计算功能,包括矩阵运算和微积分计算。 ## 功能特性 ### 基础计算功能 - ✅ 数组求和 (`calculateSum`) - ✅ 数组乘积 (`calculateProduct`) - ✅ 阶乘计算 (`calculateFactorial`) - ✅ JSON 对象字段差值计算 (`calculateDelta`) ### 高性能计算功能 - ✅ **矩阵乘法** (`matrixMultiply`) - 优化的缓存友好算法 - ✅ **矩阵转置** (`matrixTranspose`) - 高效转置运算 - ✅ **矩阵求逆** (`matrixInverse`) - 支持 2×2 和 3×3 矩阵 - ✅ **数值积分** (`numericalIntegration`) - 辛普森法则 - ✅ **数值微分** (`numericalDerivative`) - 中心差分法 ## 性能优化 - **编译优化**: 使用 `-O3`、`-march=native`、`-ffast-math` 等优化标志 - **算法优化**: 缓存友好的矩阵乘法实现 - **内存优化**: 高效的内存管理和数据结构设计 - **SIMD 支持**: 启用现代 CPU 的向量指令集 ## 快速开始 ### 1. 安装依赖 ```bash npm install npm run install-deps # 安装第三方依赖 ``` ### 2. 编译插件 ```bash npm run build # 开发构建 npm run build:release # 发布构建(优化) ``` ### 3. 运行测试 ```bash npm test # 基础功能测试 npm run test:advanced # 高级功能测试 npm run benchmark # 性能基准测试 ``` ## 使用示例 ### 矩阵运算 ```javascript const { matrixMultiply, matrixTranspose, matrixInverse } = require('./build/Release/addon.node'); // 矩阵乘法 const A = [[1, 2], [3, 4]]; const B = [[5, 6], [7, 8]]; const C = matrixMultiply(A, B); console.log(C); // [[19, 22], [43, 50]] // 矩阵转置 const D = [[1, 2, 3], [4, 5, 6]]; const Dt = matrixTranspose(D); console.log(Dt); // [[1, 4], [2, 5], [3, 6]] // 矩阵求逆 const E = [[4, 7], [2, 6]]; const E_inv = matrixInverse(E); console.log(E_inv); // [[0.6, -0.7], [-0.2, 0.4]] ``` ### 微积分计算 ```javascript const { numericalIntegration, numericalDerivative } = require('./build/Release/addon.node'); // 数值积分:计算 sin(x) 在 [0, π] 上的积分 const sinValues = []; const n = 101; for (let i = 0; i < n; i++) { const x = (i * Math.PI) / (n - 1); sinValues.push(Math.sin(x)); } const integral = numericalIntegration(sinValues, 0, Math.PI); console.log(integral); // ≈ 2.0000 // 数值微分:计算 sin(x) 在 x=0 处的导数 const sinFunc = []; const h = 0.01; const center = 50; for (let i = 0; i < 101; i++) { const x = (i - center) * h; sinFunc.push(Math.sin(x)); } const derivative = numericalDerivative(sinFunc, center, h); console.log(derivative); // ≈ 1.0000 (cos(0)) ``` ## 性能基准 运行性能测试: ```bash npm run benchmark ``` 典型性能指标(取决于硬件): - 100×100 矩阵乘法:< 50ms - 10001 个点的数值积分:< 1ms - 10001 个点的数值微分:< 1ms ## 错误处理 所有函数都包含完整的参数验证和错误处理: ```javascript try { matrixMultiply([[1, 2]], [[3, 4, 5]]); // 维度不匹配 } catch (e) { console.log('错误:', e.message); // "矩阵维度不匹配" } try { matrixInverse([[1, 2], [2, 4]]); // 奇异矩阵 } catch (e) { console.log('错误:', e.message); // "矩阵不可逆" } ``` ## 系统要求 - Node.js ≥ 14.0.0 - Python ≥ 3.6(用于 node-gyp) - C++ 编译器(GCC ≥ 7.0 或 Clang ≥ 5.0 或 MSVC ≥ 2017) - 支持 C++11 的现代编译器 ## 支持的矩阵运算 ### 矩阵乘法 - 支持任意维度的矩阵乘法 - 优化的缓存友好算法 - 自动维度验证 ### 矩阵转置 - 高效的转置算法 - 支持任意维度矩阵 ### 矩阵求逆 - 支持 2×2 和 3×3 矩阵 - 使用伴随矩阵法 - 自动奇异矩阵检测 ## 支持的微积分运算 ### 数值积分 - 辛普森法则 - 需要奇数个点 - 高精度数值计算 ### 数值微分 - 中心差分法 - 二阶精度 - 边界条件处理 ## 编译选项 插件使用以下优化标志编译: - `-O3`: 最高级别优化 - `-march=native`: 针对本地 CPU 架构优化 - `-ffast-math`: 浮点运算优化 - `-funroll-loops`: 循环展开优化 ## 贡献 欢迎提交 Issue 和 Pull Request 来改进这个插件。 ## 许可证 ISC License