Function mp_init_copy
(a
As mp_int
, b
As mp_int
) ' as mp_err Sub mp_clear
(a
As mp_int
) Sub mp_exch
(a
As mp_int
, b
As mp_int
) Sub mp_zero
(a
As mp_int
) Function mp_get_long_long~&&
(a
As mp_int
) ' as ulongint Function mp_get_mag_u32~&
(a
As mp_int
) ' as ulong Function mp_get_mag_u64~&&
(a
As mp_int
) ' as ulongint Function mp_get_mag_ull~&&
(a
As mp_int
) ' as ulongint Sub mp_clamp
(a
As mp_int
) Function mp_tc_xor&
(a
As mp_int
, b
As mp_int
, c
As mp_int
) ' as mp_err Function mp_tc_or&
(a
As mp_int
, b
As mp_int
, c
As mp_int
) ' as mp_err Function mp_tc_and&
(a
As mp_int
, b
As mp_int
, c
As mp_int
) ' as mp_err Function mp_complement&
(a
As mp_int
, b
As mp_int
) ' as mp_err Function mp_div&
(a
As mp_int
, b
As mp_int
, c
As mp_int
, d
As mp_int
) ' as mp_err Function mp_addmod&
(a
As mp_int
, b
As mp_int
, c
As mp_int
, d
As mp_int
) ' as mp_err Function mp_submod&
(a
As mp_int
, b
As mp_int
, c
As mp_int
, d
As mp_int
) ' as mp_err Function mp_mulmod&
(a
As mp_int
, b
As mp_int
, c
As mp_int
, d
As mp_int
) ' as mp_err Function mp_sqrmod&
(a
As mp_int
, b
As mp_int
, c
As mp_int
) ' as mp_err Function mp_invmod&
(a
As mp_int
, b
As mp_int
, c
As mp_int
) ' as mp_err Function mp_exteuclid&
(a
As mp_int
, b
As mp_int
, U1
As mp_int
, U2
As mp_int
, U3
As mp_int
) ' as mp_err Function mp_sqrt&
(arg
As mp_int
, ret
As mp_int
) ' as mp_err Function mp_sqrtmod_prime&
(n
As mp_int
, prime
As mp_int
, ret
As mp_int
) ' as mp_err Function mp_reduce_setup&
(a
As mp_int
, b
As mp_int
) ' as mp_err Function mp_reduce&
(x
As mp_int
, m
As mp_int
, mu
As mp_int
) ' as mp_err Function mp_montgomery_calc_normalization&
(a
As mp_int
, b
As mp_int
) ' as mp_err Function mp_dr_is_modulus&
(a
As mp_int
) ' as mp_bool Function mp_reduce_is_2k&
(a
As mp_int
) ' as mp_bool Function mp_reduce_is_2k_l&
(a
As mp_int
) ' as mp_bool Function mp_reduce_2k_setup_l&
(a
As mp_int
, d
As mp_int
) ' as mp_err Function mp_reduce_2k_l&
(a
As mp_int
, n
As mp_int
, d
As mp_int
) ' as mp_err Function mp_exptmod&
(G
As mp_int
, X
As mp_int
, P
As mp_int
, Y
As mp_int
) ' as mp_err Function mp_prime_strong_lucas_selfridge&
(a
As mp_int
, result
As Long) ' as mp_err Function mp_prime_frobenius_underwood&
(N
As mp_int
, result
As Long) ' as mp_err Function mp_unsigned_bin_size&
(a
As mp_int
) ' as long Function mp_signed_bin_size&
(a
As mp_int
) ' as long Function mp_ubin_size~&&
(a
As mp_int
) ' as uinteger Function mp_sbin_size~&&
(a
As mp_int
) ' as uinteger
'mp_val "2" + String$(100, "0"), n, 10
'ok = mp_n_root&(n, 2, r)
'Print mp_str(r, 10)
'ok = mp_sqrt&(n, m)
'Print mp_str(m, 10)
mp_set_i32 n, 2 '4784969
ok = mp_expt_u32(n, 1024, n)
'mp_set_i32 m, 10
'ok = mp_expt_u32(m, 1000000, m)
'fib_mod n, m, r
'mp_set_i32 m, 10
'ok = mp_expt_u32(m, 999960, m)
'ok = mp_div(r, m, q, r)
'Print mp_str(q, 10)
mp_set_i32 m, 10
ok = mp_expt_u32(m, 40, m)
fib_mod n, m, r
mp_clear r
mp_clear q
mp_clear m
mp_clear n
Sub fib_mod
(k
As mp_int
, m
As mp_int
, result
As mp_int
) Dim As mp_int x
, y
, xx
, temp
, tmp
Print "failed to initialize" Print "failed to initialize" Print "failed to initialize" Print "failed to initialize" Print "failed to initialize"
mp_set_i32 tmp, 1
Print "mp_cmp(k, tmp) <= 0" ok = mp_copy(k, result)
mp_set_i32 x, 1
mp_set_i32 y, 0
ok = mp_log_u32(k, 2, bit_length)
Print "bit_length="; bit_length
ok = mp_sqr(x, tmp)
ok = mp_mod(tmp, m, xx)
ok = mp_mul(x, y, tmp)
ok = mp_add(tmp, tmp, tmp)
ok = mp_add(xx, tmp, tmp)
ok = mp_mod(tmp, m, x)
ok = mp_sqr(y, tmp)
ok = mp_add(xx, tmp, tmp)
ok = mp_mod(tmp, m, y)
ok = mp_copy(x, temp)
ok = mp_add(x, y, tmp)
ok = mp_mod(tmp, m, x)
ok = mp_copy(temp, y)
ok = mp_copy(x, result)
mp_clear tmp
mp_clear temp
mp_clear xx
mp_clear y
mp_clear x
status = mp_radix_size&(n, radix, size)
status = mp_toradix_n(n, sresult, radix, size)
mp_str$ = "error in mp_toradix"
status = mp_read_radix(n, value, radix)