16#include "../../../include/lammp/impl/inlines.h"
17#include "../../../include/lammp/impl/longlong.h"
18#include "../../../include/lammp/impl/log2_exp2.h"
19#include "../../../include/lammp/numth.h"
20#include "../../../include/lammp/lmmpn.h"
29 dst[2] =
t[1] + (
dst[1] <
t[0] ? 1 : 0);
141 }
else if (
n < 128) {
144 dst[1] = (
x[1] >> (64 -
n)) |
t;
145 dst[0] = (
x[1] <<
n) | (
x[0] >> (64 -
n));
162 r[1] =
ret[1] + (r[0] == 0 ? 1 : 0);
168 }
else if (tn >
na) {
171 }
else if (tn ==
na) {
mp_limb_t lmmp_cbrt_3_(mp_limb_t a0, mp_limb_t a1, mp_limb_t a2)
计算算数立方根 floor(cbrt(a0+a1*B+a2*B^2))
static mp_size_t lmmp_cube_(mp_ptr restrict dst, mp_srcptr restrict numa, mp_size_t na, mp_ptr restrict tp)
计算 [numa, na] 的立方
void lmmp_cbrtapprox_6_(mp_ptr dst, mp_srcptr numa, mp_size_t na)
计算近似立方根 floor(cbrt([numa,na]))-[0|1]
void lmmp_cbrt_6_(mp_ptr dst, mp_srcptr numa, mp_size_t na)
计算算数立方根 floor(cbrt([numa,na]))
mp_limb_t lmmp_cbrtapprox_3_(mp_limb_t a0, mp_limb_t a1, mp_limb_t a2)
计算近似立方根 floor(cbrt(a0+a1*B+a2*B^2))-[0|1]
static void lmmp_cube_3_(mp_ptr restrict dst, mp_limb_t a)
Copyright (C) 2026 HJimmyK(Jericho Knox)
#define lmmp_debug_assert(x)
const mp_limb_t * mp_srcptr
#define lmmp_param_assert(x)
mp_limb_t lmmp_div_1_(mp_ptr dstq, mp_srcptr numa, mp_size_t na, mp_limb_t x)
单精度数除法
static int lmmp_cmp_(mp_srcptr numa, mp_srcptr numb, mp_size_t n)
大数比较函数(内联)
#define lmmp_inc(p)
大数加1宏(预期无进位)
void lmmp_mul_(mp_ptr dst, mp_srcptr numa, mp_size_t na, mp_srcptr numb, mp_size_t nb)
不等长大数乘法操作 [dst,na+nb] = [numa,na] * [numb,nb]
void exp2_fixed_128(uint64_t *dst, uint64_t high, uint64_t low)
floor(exp2(x/B)*B-B), B=2^128
void log2_fixed_128(uint64_t *dst, uint64_t high, uint64_t low)
floor(log2(1+x/B)*B), B=2^128
uint64_t exp2_fixed_64(uint64_t x)
floor(exp2(x/B)*B-B), B=2^64
uint64_t log2_fixed_64(uint64_t x)
Copyright (C) 2026 HJimmyK(Jericho Knox)