2026a
# 数学相关
# 数学运算符
| 函数名 | 简介 |
|---|---|
| + | 加法操作符,用于将两个数值或对象相加 |
| - | 减法操作符,用于从第一个数值中减去第二个数值 |
| * | 乘法操作符,用于将两个数值相乘 |
| / | 右除操作符,将 x 乘以 y 的逆(在右侧)。对于整数参数,返回浮点结果 |
| \ | 左除操作符,将 y 乘以 x 的逆(在左侧)。对于整数参数,返回浮点结果 |
| ^ | 指数操作符。如果 x 是一个矩阵,则计算矩阵的指数。对于数字,计算 x 的幂 |
| fma | fma(x, y, z)计算 x * y + z,在计算过程中不会对中间结果 x * y 进行舍入 |
| muladd | 组合乘加操作:muladd(x, y, z)计算 x * y + z,允许将乘法和加法与其他操作合并,以提高性能 |
| inv | 返回 x 的乘法逆元,使得 x * inv(x) 或 inv(x) * x 的结果接近乘法单位元素 one(x),可能会有舍入误差 |
| div | 欧几里得(整数)除法的商。通常等同于数学操作 x / y,但没有小数部分 |
| fld | 小于或等于 x / y 的最大整数。等同于 div(x, y, RoundDown) |
| cld | 大于或等于 x / y 的最小整数。等同于 div(x, y, RoundUp) |
| mod | 用于计算给定整数 x 在范围 r 中的模 |
| rem | 欧几里得除法的余数,返回一个与 x 具有相同符号且绝对值小于 y 的值 |
| rem2pi | 计算 x 除以 2π 后的余数,商根据舍入模式 r 四舍五入 |
| Base.Math.mod2pi | 计算 x 除以 2π 后的余数,返回结果范围在 [0, 2π) 之间 |
| divrem | 欧几里得除法的商和余数 |
| fldmod | 除法后的向下取整商和余数 |
| fld1 | 向下取整除法,返回与 mod1(x, y) 一致的值 |
| mod1 | 向下取整除法后计算余数,返回一个值 r,使得 mod(r, y) 等于 mod(x, y) |
| fldmod1 | 返回 (fld1(x, y), mod1(x, y)),其中 fld1(x, y) 是向下取整除法的商,mod1(x, y) 是向下取整除法后的余数 |
| // | 将两个整数或有理数相除,返回一个有理数结果 |
| rationalize | 将浮点数 x 近似为具有给定整数类型的有理数 |
| numerator | 返回 x 的有理数表示中的分子部分 |
| denominator | 返回 x 的有理数表示中的分母部分 |
| << | 左位移操作符 <<,表示将 x 向左移 n 位 |
| >> | 右位移操作符 >>,表示将 x 向右移 n 位 |
| >>> | 无符号右位移操作符 >>>,表示将 x 向右移 n 位 |
| bitrotate | 按位旋转操作。它返回将 x 的位向左旋转 k 次后的值。如果 k 为负值,则会向右旋转 |
| : | :expr 引用一个表达式 expr,返回该表达式的抽象语法树(AST) |
| range | 根据参数构造一个具有均匀间隔元素并优化存储的数组 |
| Base.OneTo | 定义一个 AbstractUnitRange,它的行为类似于 1:n,并且通过类型系统保证下限(起始值)始终为 1 |
| StepRangeLen | 定义一个范围 r,其中 r[i] 生成类型为 T 的值 |
| == | 实现通用的相等运算符 |
| != | 实现不等于比较运算符。它总是返回与 == 运算符相反的结果 |
| !== | 实现不等于比较运算符 !==,它总是返回与 === 运算符相反的结果 |
| < | 实现小于比较运算符 <,默认回退到 isless |
| <= | 实现小于或等于比较运算符 <=,默认回退到 (x < y) |
| > | 实现大于比较运算符 >,默认回退到 y < x |
| >= | 实现大于或等于比较运算符 >=,默认回退到 y <= x |
| cmp | 返回 -1、0 或 1,分别表示 x 小于、等于或大于 y。它使用由 isless 实现的全序关系 |
| ~ | 实现按位取反运算符 |
| & | 实现按位与运算符 |
| | | 实现按位或运算符 |
| xor | 实现按位异或运算符 |
| nand | 实现按位与非运算符 |
| nor | 实现按位或非运算符 |
| ! | 实现布尔取反运算符 |
| && | 实现短路布尔与运算符。当左侧操作数为 false 时,右侧操作数不会被求值 |
| || | 实现短路布尔或运算符。当左侧操作数为 true 时,右侧操作数不会被求值 |
# 数学函数
| 函数名 | 简介 |
|---|---|
| isapprox | 实现不精确相等比较运算符。当两个数字的相对距离或绝对距离在容忍范围内时,它们被认为相等 |
| sin | 计算 x 的正弦值,其中 x 为弧度 |
| cos | 计算 x 的余弦值,其中 x 为弧度 |
| sincos | 同时计算 x 的正弦和余弦值,其中 x 为弧度,并返回一个元组 (sine, cosine) |
| tan | 计算 x 的正切值,其中 x 为弧度 |
| Base.Math.sind | 计算 x 的正弦值,其中 x 为度数。如果 x 是矩阵,则 x 必须是一个方阵 |
| Base.Math.cosd | 计算 x 的余弦值,其中 x 为度数。如果 x 是矩阵,则 x 必须是一个方阵 |
| Base.Math.tand | 计算 x 的正切值,其中 x 为度数。如果 x 是矩阵,则 x 必须是一个方阵 |
| Base.Math.sincosd | 同时计算 x 的正弦和余弦值,其中 x 为度数 |
| Base.Math.sinpi | 计算 sin(π * x),比 sin(π * x) 更精确,尤其是对于较大的 x |
| Base.Math.cospi | 计算 cos(π * x),比 cos(π * x) 更精确,尤其是对于较大的 x |
| Base.Math.sincospi | 同时计算 sinpi(x) 和 cospi(x),其中 x 为弧度,并返回一个元组 (sine, cosine) |
| sinh | 计算 x 的双曲正弦值 |
| cosh | 计算 x 的双曲余弦值 |
| tanh | 计算 x 的双曲正切值 |
| asin | 计算 x 的反正弦值,输出结果为弧度 |
| acos | 计算 x 的反余弦值,输出结果为弧度 |
| atan | 计算 x 的反正切值,输出结果为弧度 |
| Base.Math.asind | 计算 x 的反正弦值,输出结果为度数 |
| Base.Math.acosd | 计算 x 的反余弦值,输出结果为度数 |
| Base.Math.atand | 计算 x 的反正切值,输出结果为度数 |
| Base.Math.sec | 计算 x 的正割值 |
| Base.Math.csc | 计算 x 的余割值 |
| Base.Math.cot | 计算 x 的余切值 |
| Base.Math.secd | 计算 x 的正割值,其中 x 为度数 |
| Base.Math.cscd | 计算 x 的余割值,其中 x 为度数 |
| Base.Math.cotd | 计算 x 的余切值,其中 x 为度数 |
| Base.Math.asec | 计算 x 的反正割值,输出结果为弧度 |
| Base.Math.acsc | 计算 x 的反余割值,输出结果为弧度 |
| Base.Math.acot | 计算 x 的反余切值,输出结果为弧度 |
| Base.Math.asecd | 计算 x 的反正割值,输出结果为度数 |
| Base.Math.acscd | 计算 x 的反余割值,输出结果为度数 |
| Base.Math.acotd | 计算 x 的反余切值,输出结果为度数 |
| Base.Math.sech | 计算 x 的双曲正割值 |
| Base.Math.csch | 计算 x 的双曲余割值 |
| Base.Math.coth | 计算 x 的双曲余切值 |
| asinh | 计算 x 的反双曲正弦值 |
| acosh | 计算 x 的反双曲余弦值 |
| atanh | 计算 x 的反双曲正切值 |
| Base.Math.asech | 计算 x 的反双曲正割值 |
| Base.Math.acsch | 计算 x 的反双曲余割值 |
| Base.Math.acoth | 计算 x 的反双曲余切值 |
| Base.Math.sinc | 当 x ≠ 0 时,计算 sin(πx) / (πx),若 x = 0 则返回 1 |
| Base.Math.cosc | 当 x ≠ 0 时,计算 cos(πx) / x - sin(πx) / (πx²),若 x = 0 则返回 0 |
| Base.Math.deg2rad | 将 x 从度数转换为弧度 |
| Base.Math.rad2deg | 将 x 从弧度转换为度数 |
| Base.Math.hypot | 计算两点间的距离,即 √(x² + y²),并避免溢出和下溢 |
| log | 计算 x 的自然对数 |
| log2 | 计算 x 的以 2 为底的对数 |
| log10 | 计算 x 的以 10 为底的对数 |
| log1p | 计算 1 + x 的自然对数 |
| Base.Math.frexp | 将一个浮点数分解成 (x, exp) |
| exp | 计算自然底数 e 的 x 次幂 |
| exp2 | 计算以 2 为底的指数 |
| exp10 | 计算以 10 为底的指数 |
| Base.Math.ldexp | 计算x × 2^n |
| Base.Math.modf | 返回一个元组 (fpart, ipart),分别表示数字的小数部分和整数部分,两部分符号与参数 x 相同 |
| expm1 | 精确计算 e^x - 1 |
| round | 返回与给定时间 dt 在指定精度 p 下最接近的日期或日期时间 |
| Base.Rounding.RoundingMode | 此类型用于控制浮点运算的舍入模式 |
| Base.Rounding.RoundNearest | 四舍五入到最接近的整数,当遇到“中间值”(即小数部分为 0.5)时,舍入到最接近的偶数整数 |
| Base.Rounding.RoundNearestTiesAway | 四舍五入到最接近的整数,当遇到“中间值”时,远离零进行舍入 |
| Base.Rounding.RoundNearestTiesUp | 四舍五入到最接近的整数,当遇到“中间值”时,向正无穷方向舍入 |
| Base.Rounding.RoundToZero | 这种舍入模式下的 round 是 trunc 函数的别名 |
| Base.Rounding.RoundFromZero | 远离零方向舍入 |
| Base.Rounding.RoundUp | 这种舍入模式下的 round 是 ceil 函数的别名 |
| Base.Rounding.RoundDown | 这种舍入模式下的 round 是 floor 函数的别名 |
| round | 返回与复数 z 最接近且类型相同的整数值 |
| ceil | 返回与 x 类型相同且大于或等于 x 的最接近整数 |
| floor | 返回与 x 类型相同且小于或等于 x 的最接近整数 |
| trunc | 返回与 x 类型相同且绝对值小于或等于 x 绝对值的最接近整数 |
| unsafe_trunc | 返回类型为 T 的最接近整数值,且其绝对值不大于 x 的绝对值 |
| min | 返回参数中的最小值 |
| max | 返回参数中的最大值 |
| minmax | 同时返回 (min(x, y), max(x, y)) |
| Base.Math.clamp | 如果 x 在区间 [lo, hi] 内,则返回 x;如果 x 大于 hi,则返回 hi;如果 x 小于 lo,则返回 lo |
| Base.Math.clamp! | 将数组中的值限制在指定范围内,直接在原数组上进行修改 |
| abs | 计算绝对值 |
| Base.Checked | 提供内置有符号和无符号整数类型的算术函数,当发生溢出时会抛出错误 |
| Base.Checked.checked_abs | 计算 abs(x),并在可能的情况下检查溢出错误 |
| Base.Checked.checked_neg | 计算 -x,并在可能的情况下检查溢出错误 |
| Base.Checked.checked_add | 计算 x + y,并在可能的情况下检查溢出错误 |
| Base.Checked.checked_sub | 计算 x - y,并在可能的情况下检查溢出错误 |
| Base.Checked.checked_mul | 计算 x * y,并在可能的情况下检查溢出错误 |
| Base.Checked.checked_div | 计算 div(x, y),并在可能的情况下检查溢出错误 |
| Base.Checked.checked_rem | 计算 x % y,并在可能的情况下检查溢出错误 |
| Base.Checked.checked_fld | 计算 fld(x, y),并在可能的情况下检查溢出错误 |
| Base.Checked.checked_mod | 计算 mod(x, y),并在可能的情况下检查溢出错误 |
| Base.Checked.checked_cld | 计算 cld(x, y),并在可能的情况下检查溢出错误 |
| Base.Checked.add_with_overflow | 计算 r = x + y,同时返回一个标志 f,指示是否发生了溢出 |
| Base.Checked.sub_with_overflow | 计算 r = x - y,同时返回一个标志 f,指示是否发生了溢出 |
| Base.Checked.mul_with_overflow | 计算 r = x * y,同时返回一个标志 f,指示是否发生了溢出 |
| abs2 | 计算平方绝对值 |
| copysign | 返回一个数 z,其大小(幅值)与 x 相同,符号与 y 相同 |
| sign | 返回数值的符号,零时返回零,非零时返回正负符号 |
| signbit | 判断数值符号是否为负,负数返回真,否则返回假 |
| flipsign | 根据另一个数的符号决定是否翻转当前数的符号 |
| sqrt | 返回平方根 |
| isqrt | 计算整数平方根,即不超过给定数的最大整数平方值的整数 |
| Base.Math.cbrt | 返回立方根 |
| Base.fourthroot | 计算数的四次方根 |
| real | 返回复数的实部 |
| imag | 返回复数的虚部 |
| reim | 返回复数的实部和虚部,组成一个元组 |
| conj | 计算复数的共轭复数 |
| angle | 计算复数的幅角(相位角),结果以弧度表示 |
| cis | 利用欧拉公式,更高效地计算复数指数函数 exp(im * x) |
| cispi | 提供一种更高精度的方法来计算 cis(π * x),尤其适用于较大的 x 值 |
| binomial | 计算二项式系数 |
| factorial | 计算整数的阶乘 |
| gcd | 计算多个数的最大公约数(正数) |
| lcm | 计算多个数的最小公倍数(正数) |
| gcdx | 计算两个数的最大公约数(正数)及其贝祖系数 |
| ispow2 | 判断给定数是否为二的整数次幂 |
| nextpow | 返回不小于给定值的最小 a^n |
| prevpow | 返回不大于给定值的最大 a^n |
| nextprod | 返回不小于给定整数的最小整数,该整数可以表示为多个给定因子的乘积形式 |
| invmod | 计算模 m 下的 n 的乘法逆元 y,满足 n * y ≡ 1 (mod m),且 div(y, m) = 0 |
| powermod | 计算 x^p 对模 m 的取余 |
| ndigits | 计算整数在指定进制下的位数 |
| Base.add_sum | 用于 sum 函数的归约操作符 |
| widemul | 将 x 和 y 相乘,结果以更大类型返回 |
| Base.Math.evalpoly | 计算一个多项式,形式是系数数组 p 中的元素依次乘以 x 的不同次幂并求和 |
| Base.Math.@evalpoly | 用于计算多项式,形式是系数数组 c 中的元素依次乘以复数 z 的不同次幂并求和 |
| Base.FastMath.@fastmath | 执行经过转换的表达式版本,该版本调用的函数可能不遵守严格的 IEEE 标准,从而实现尽可能快的运算速度,但结果未定义 |
# 自定义二元运算符
某些 unicode 字符可用于定义新的支持中缀表示法的二元运算符。
例如, ⊗(x,y) = kron(x,y) 定义 ⊗ (otimes) 为 Kronecker 积, 并且可以通过中缀语法将它作为一个二元运算符调用: C = A ⊗ B 也可以使用常用的前缀语法 C = ⊗(A,B)。
其他支持这种扩展的字符包括 \odot ⊙ 和 \oplus ⊕。
完整列表在解析器代码中。
像 * 一样解析的包括(按优先级排列) * / ÷ % & ⋅ ∘ × |\\| ∩ ∧ ⊗ ⊘ ⊙ ⊚ ⊛ ⊠ ⊡ ⊓ ∗ ∙ ∤ ⅋ ≀ ⊼ ⋄ ⋆ ⋇ ⋉ ⋊ ⋋ ⋌ ⋏ ⋒ ⟑ ⦸ ⦼ ⦾ ⦿ ⧶ ⧷ ⨇ ⨰ ⨱ ⨲ ⨳ ⨴ ⨵ ⨶ ⨷ ⨸ ⨻ ⨼ ⨽ ⩀ ⩃ ⩄ ⩋ ⩍ ⩎ ⩑ ⩓ ⩕ ⩘ ⩚ ⩜ ⩞ ⩟ ⩠ ⫛ ⊍ ▷ ⨝ ⟕ ⟖ ⟗ 像 + 一样解析的包括 + - |\|| ⊕ ⊖ ⊞ ⊟ |++|∪ ∨ ⊔ ± ∓ ∔ ∸ ≏ ⊎ ⊻ ⊽ ⋎ ⋓ ⟇ ⧺ ⧻ ⨈ ⨢ ⨣ ⨤ ⨥ ⨦ ⨧ ⨨ ⨩ ⨪ ⨫ ⨬ ⨭ ⨮ ⨹ ⨺ ⩁ ⩂ ⩅ ⩊ ⩌ ⩏ ⩐ ⩒ ⩔ ⩖ ⩗ ⩛ ⩝ ⩡ ⩢ ⩣ 还有许多其他的与箭头、比较和幂相关的符号。