symja_functions.dart 9.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150
  1. // 由 Ijs 的 SymjaEngine.java 抽取(那是步骤①里特意保留下来的资产)。
  2. // 用于计算器的「函数面板」检索。
  3. const List<String> kSymjaFunctions = <String>[
  4. 'Abs', 'Sign', 'Max', 'Min', 'Sqrt', 'Power',
  5. 'Exp', 'Log', 'Log10', 'Log2', 'Sin', 'Cos',
  6. 'Tan', 'Cot', 'Sec', 'Csc', 'ArcSin', 'ArcCos',
  7. 'ArcTan', 'ArcCot', 'ArcSec', 'ArcCsc', 'Sinh', 'Cosh',
  8. 'Tanh', 'Coth', 'Sech', 'Csch', 'ArcSinh', 'ArcCosh',
  9. 'ArcTanh', 'ArcCoth', 'ArcSech', 'ArcCsch', 'TrigExpand', 'TrigReduce',
  10. 'TrigToExp', 'ExpToTrig', 'D', 'Derivative', 'Integrate', 'Limit',
  11. 'Sum', 'Product', 'Series', 'DSolve', 'Expand', 'Factor',
  12. 'Simplify', 'FullSimplify', 'Together', 'Apart', 'Cancel', 'ExpandAll',
  13. 'Collect', 'Coefficient', 'Numerator', 'Denominator', 'Solve', 'NSolve',
  14. 'Reduce', 'FindRoot', 'Eliminate', 'Roots', 'Det', 'Inverse',
  15. 'Transpose', 'Eigenvalues', 'Eigenvectors', 'MatrixPower', 'MatrixRank', 'Trace',
  16. 'Norm', 'IdentityMatrix', 'DiagonalMatrix', 'RowReduce', 'Dot', 'Cross',
  17. 'LinearSolve', 'LeastSquares', 'QRDecomposition', 'LUDecomposition', 'CholeskyDecomposition', 'SingularValueDecomposition',
  18. 'PolynomialQ', 'PolynomialQuotient', 'PolynomialRemainder', 'PolynomialGCD', 'PolynomialLCM', 'CoefficientList',
  19. 'Exponent', 'Variables', 'Prime', 'PrimeQ', 'NextPrime', 'PrimePi',
  20. 'FactorInteger', 'GCD', 'LCM', 'Mod', 'Divisors', 'EulerPhi',
  21. 'MoebiusMu', 'DivisorSigma', 'JacobiSymbol', 'Factorial', 'Binomial', 'Multinomial',
  22. 'Permutations', 'Fibonacci', 'LucasL', 'BernoulliB', 'StirlingS1', 'StirlingS2',
  23. 'CatalanNumber', 'PartitionsP', 'Gamma', 'Beta', 'Erf', 'Erfc',
  24. 'BesselJ', 'BesselY', 'BesselI', 'BesselK', 'HermiteH', 'LaguerreL',
  25. 'LegendreP', 'ChebyshevT', 'ChebyshevU', 'Zeta', 'PolyGamma', 'HarmonicNumber',
  26. 'Mean', 'Median', 'Variance', 'StandardDeviation', 'Covariance', 'Correlation',
  27. 'Quantile', 'Quartiles', 'Table', 'Range', 'Length', 'First',
  28. 'Last', 'Rest', 'Most', 'Take', 'Drop', 'Join',
  29. 'Append', 'Prepend', 'Insert', 'Delete', 'Select', 'Map',
  30. 'Apply', 'Sort', 'Reverse', 'Flatten', 'Partition', 'Riffle',
  31. 'Split', 'Union', 'Intersection', 'Complement', 'And', 'Or',
  32. 'Not', 'Xor', 'Implies', 'Equivalent', 'Equal', 'Unequal',
  33. 'Less', 'Greater', 'LessEqual', 'GreaterEqual', 'If', 'Which',
  34. 'N', 'Round', 'Floor', 'Ceiling', 'Rationalize', 'RealDigits',
  35. 'Precision', 'Accuracy', 'Chop', 'Re', 'Im', 'Conjugate',
  36. 'Arg', 'ComplexExpand', 'Random', 'RandomInteger', 'RandomReal', 'RandomComplex',
  37. 'SeedRandom', 'RandomChoice', 'RandomSample', 'LaplaceTransform', 'InverseLaplaceTransform', 'ZTransform',
  38. 'InverseZTransform', 'Minimize', 'Maximize', 'FindMinimum', 'FindMaximum', 'NMinimize',
  39. 'NMaximize', 'Fit', 'LinearModelFit', 'FindFit', 'Subsets', 'MemberQ',
  40. 'Total', 'Accumulate',
  41. ];
  42. const List<String> kSymjaConstants = <String>[
  43. 'Pi', 'E', 'I', 'Infinity', 'ComplexInfinity', 'True', 'False', 'Null',
  44. ];
  45. /// 每个函数/常量的一句中文说明。函数面板里挂在名字后面。
  46. const Map<String, String> kSymjaFunctionHelp = <String, String>{
  47. // 基本数学
  48. 'Abs': '绝对值', 'Sign': '符号(正负零)', 'Max': '最大值', 'Min': '最小值',
  49. 'Sqrt': '平方根', 'Power': '幂', 'Exp': 'e 的幂', 'Log': '自然对数',
  50. 'Log10': '常用对数', 'Log2': '以 2 为底对数',
  51. // 三角
  52. 'Sin': '正弦', 'Cos': '余弦', 'Tan': '正切', 'Cot': '余切', 'Sec': '正割', 'Csc': '余割',
  53. 'ArcSin': '反正弦', 'ArcCos': '反余弦', 'ArcTan': '反正切', 'ArcCot': '反余切',
  54. 'ArcSec': '反正割', 'ArcCsc': '反余割',
  55. // 双曲
  56. 'Sinh': '双曲正弦', 'Cosh': '双曲余弦', 'Tanh': '双曲正切', 'Coth': '双曲余切',
  57. 'Sech': '双曲正割', 'Csch': '双曲余割',
  58. 'ArcSinh': '反双曲正弦', 'ArcCosh': '反双曲余弦', 'ArcTanh': '反双曲正切',
  59. 'ArcCoth': '反双曲余切', 'ArcSech': '反双曲正割', 'ArcCsch': '反双曲余割',
  60. 'TrigExpand': '三角展开', 'TrigReduce': '三角降幂', 'TrigToExp': '三角化为指数',
  61. 'ExpToTrig': '指数化为三角',
  62. // 微积分
  63. 'D': '求导', 'Derivative': '导数算子', 'Integrate': '积分', 'Limit': '极限',
  64. 'Sum': '求和', 'Product': '连乘', 'Series': '级数展开', 'DSolve': '解微分方程',
  65. // 代数
  66. 'Expand': '展开括号', 'Factor': '因式分解', 'Simplify': '化简',
  67. 'FullSimplify': '尽力化简', 'Together': '通分', 'Apart': '拆成部分分式',
  68. 'Cancel': '约分', 'ExpandAll': '全部展开', 'Collect': '按某变量合并',
  69. 'Coefficient': '取某项系数', 'Numerator': '分子', 'Denominator': '分母',
  70. // 方程
  71. 'Solve': '解方程(符号解)', 'NSolve': '解方程(数值解)', 'Reduce': '化简方程组',
  72. 'FindRoot': '数值求根', 'Eliminate': '消元', 'Roots': '求全部根',
  73. // 线性代数
  74. 'Det': '行列式', 'Inverse': '逆矩阵', 'Transpose': '转置',
  75. 'Eigenvalues': '特征值', 'Eigenvectors': '特征向量', 'MatrixPower': '矩阵的幂',
  76. 'MatrixRank': '矩阵的秩', 'Trace': '迹', 'Norm': '范数',
  77. 'IdentityMatrix': '单位矩阵', 'DiagonalMatrix': '对角矩阵',
  78. 'RowReduce': '化成行最简形', 'Dot': '点积', 'Cross': '叉积',
  79. 'LinearSolve': '解线性方程组', 'LeastSquares': '最小二乘解',
  80. 'QRDecomposition': 'QR 分解', 'LUDecomposition': 'LU 分解',
  81. 'CholeskyDecomposition': 'Cholesky 分解', 'SingularValueDecomposition': '奇异值分解',
  82. // 多项式
  83. 'PolynomialQ': '是否为多项式', 'PolynomialQuotient': '多项式除法的商',
  84. 'PolynomialRemainder': '多项式除法的余式', 'PolynomialGCD': '多项式最大公因式',
  85. 'PolynomialLCM': '多项式最小公倍式', 'CoefficientList': '各项系数表',
  86. 'Exponent': '最高次数', 'Variables': '含哪些变量',
  87. // 数论组合
  88. 'Prime': '第 n 个素数', 'PrimeQ': '是否为素数', 'NextPrime': '下一个素数',
  89. 'PrimePi': '不超过 n 的素数个数', 'FactorInteger': '素因数分解',
  90. 'GCD': '最大公因数', 'LCM': '最小公倍数', 'Mod': '取余', 'Divisors': '因数列表',
  91. 'EulerPhi': '欧拉函数 φ', 'MoebiusMu': '莫比乌斯函数 μ', 'DivisorSigma': '因数之和/个数',
  92. 'JacobiSymbol': '雅可比符号', 'Factorial': '阶乘', 'Binomial': '二项式系数',
  93. 'Multinomial': '多项式系数', 'Permutations': '全排列', 'Fibonacci': '斐波那契数',
  94. 'LucasL': '卢卡斯数', 'BernoulliB': '伯努利数', 'StirlingS1': '第一类斯特林数',
  95. 'StirlingS2': '第二类斯特林数', 'CatalanNumber': '卡特兰数', 'PartitionsP': '整数拆分数',
  96. // 特殊函数
  97. 'Gamma': '伽玛函数 Γ', 'Beta': '贝塔函数 Β', 'Erf': '误差函数',
  98. 'Erfc': '互补误差函数', 'BesselJ': '第一类贝塞尔函数', 'BesselY': '第二类贝塞尔函数',
  99. 'BesselI': '第一类修正贝塞尔', 'BesselK': '第二类修正贝塞尔',
  100. 'HermiteH': '埃尔米特多项式', 'LaguerreL': '拉盖尔多项式',
  101. 'LegendreP': '勒让德多项式', 'ChebyshevT': '第一类切比雪夫多项式',
  102. 'ChebyshevU': '第二类切比雪夫多项式', 'Zeta': '黎曼 ζ 函数',
  103. 'PolyGamma': '多伽玛函数', 'HarmonicNumber': '调和数',
  104. // 统计
  105. 'Mean': '均值', 'Median': '中位数', 'Variance': '方差',
  106. 'StandardDeviation': '标准差', 'Covariance': '协方差', 'Correlation': '相关系数',
  107. 'Quantile': '分位数', 'Quartiles': '四分位数',
  108. // 列表
  109. 'Table': '生成表', 'Range': '等差数列', 'Length': '长度', 'First': '第一个',
  110. 'Last': '最后一个', 'Rest': '去掉第一个', 'Most': '去掉最后一个', 'Take': '取前 n 个',
  111. 'Drop': '去掉前 n 个', 'Join': '拼接', 'Append': '尾部追加', 'Prepend': '头部插入',
  112. 'Insert': '指定位置插入', 'Delete': '删除某位置', 'Select': '按条件筛选',
  113. 'Map': '对每个元素作用', 'Apply': '替换表达式头', 'Sort': '排序', 'Reverse': '反转',
  114. 'Flatten': '展平嵌套', 'Partition': '按长度分组', 'Riffle': '交错插入',
  115. 'Split': '按相邻相同分组', 'Union': '并集', 'Intersection': '交集',
  116. 'Complement': '差集', 'Subsets': '所有子集', 'MemberQ': '是否属于',
  117. // 逻辑
  118. 'And': '与', 'Or': '或', 'Not': '非', 'Xor': '异或', 'Implies': '蕴含',
  119. 'Equivalent': '等价', 'Equal': '相等', 'Unequal': '不相等', 'Less': '小于',
  120. 'Greater': '大于', 'LessEqual': '小于等于', 'GreaterEqual': '大于等于',
  121. // 数值与控制
  122. 'If': '条件分支', 'Which': '多路分支',
  123. 'N': '取近似值', 'Round': '四舍五入', 'Floor': '向下取整', 'Ceiling': '向上取整',
  124. 'Rationalize': '化为有理数', 'RealDigits': '各位数字', 'Precision': '精度',
  125. 'Accuracy': '准确度', 'Chop': '把极小量归零',
  126. // 复数
  127. 'Re': '实部', 'Im': '虚部', 'Conjugate': '共轭', 'Arg': '辐角',
  128. 'ComplexExpand': '复数展开',
  129. // 随机
  130. 'Random': '随机数', 'RandomInteger': '随机整数', 'RandomReal': '随机实数',
  131. 'RandomComplex': '随机复数', 'SeedRandom': '设定随机种子',
  132. 'RandomChoice': '随机取元素', 'RandomSample': '随机抽样',
  133. // 变换与优化
  134. 'LaplaceTransform': '拉普拉斯变换', 'InverseLaplaceTransform': '逆拉普拉斯变换',
  135. 'ZTransform': 'Z 变换', 'InverseZTransform': '逆 Z 变换',
  136. 'Minimize': '符号求最小值', 'Maximize': '符号求最大值',
  137. 'FindMinimum': '数值最小化', 'FindMaximum': '数值最大化',
  138. 'NMinimize': '数值最小化', 'NMaximize': '数值最大化',
  139. 'Fit': '曲线拟合', 'LinearModelFit': '线性回归拟合', 'FindFit': '一般拟合',
  140. // 日期
  141. // 替换与函数
  142. // 杂项
  143. 'Total': '全部相加', 'Accumulate': '前缀和',
  144. // 常量
  145. 'Pi': '圆周率 π', 'E': '自然常数 e', 'I': '虚数单位 i', 'Infinity': '正无穷 ∞',
  146. 'ComplexInfinity': '复无穷', 'True': '真', 'False': '假', 'Null': '空',
  147. };