mirror of
https://github.com/vlang/v.git
synced 2023-08-10 21:13:21 +03:00
math.big: remove import math
dependency (math.big only uses min/max/abs)
This commit is contained in:
@ -1,13 +1,10 @@
|
||||
module big
|
||||
|
||||
import math
|
||||
import math.bits
|
||||
import strings
|
||||
import strconv
|
||||
|
||||
const (
|
||||
digit_array = '0123456789abcdefghijklmnopqrstuvwxyz'.bytes()
|
||||
)
|
||||
const digit_array = '0123456789abcdefghijklmnopqrstuvwxyz'.bytes()
|
||||
|
||||
// big.Integer
|
||||
// -----------
|
||||
@ -55,7 +52,7 @@ pub fn integer_from_int(value int) Integer {
|
||||
return zero_int
|
||||
}
|
||||
return Integer{
|
||||
digits: [u32(math.abs(value))]
|
||||
digits: [u32(iabs(value))]
|
||||
signum: int_signum(value)
|
||||
}
|
||||
}
|
||||
@ -327,7 +324,7 @@ pub fn (integer Integer) - (subtrahend Integer) Integer {
|
||||
fn (integer Integer) add(addend Integer) Integer {
|
||||
a := integer.digits
|
||||
b := addend.digits
|
||||
mut storage := []u32{len: math.max(a.len, b.len) + 1}
|
||||
mut storage := []u32{len: imax(a.len, b.len) + 1}
|
||||
add_digit_array(a, b, mut storage)
|
||||
return Integer{
|
||||
signum: integer.signum
|
||||
@ -585,7 +582,7 @@ pub fn (mut a Integer) set_bit(i u32, value bool) {
|
||||
pub fn (a Integer) bitwise_or(b Integer) Integer {
|
||||
check_sign(a)
|
||||
check_sign(b)
|
||||
mut result := []u32{len: math.max(a.digits.len, b.digits.len)}
|
||||
mut result := []u32{len: imax(a.digits.len, b.digits.len)}
|
||||
bitwise_or_digit_array(a.digits, b.digits, mut result)
|
||||
return Integer{
|
||||
digits: result
|
||||
@ -597,7 +594,7 @@ pub fn (a Integer) bitwise_or(b Integer) Integer {
|
||||
pub fn (a Integer) bitwise_and(b Integer) Integer {
|
||||
check_sign(a)
|
||||
check_sign(b)
|
||||
mut result := []u32{len: math.max(a.digits.len, b.digits.len)}
|
||||
mut result := []u32{len: imax(a.digits.len, b.digits.len)}
|
||||
bitwise_and_digit_array(a.digits, b.digits, mut result)
|
||||
return Integer{
|
||||
digits: result
|
||||
@ -620,7 +617,7 @@ pub fn (a Integer) bitwise_not() Integer {
|
||||
pub fn (a Integer) bitwise_xor(b Integer) Integer {
|
||||
check_sign(a)
|
||||
check_sign(b)
|
||||
mut result := []u32{len: math.max(a.digits.len, b.digits.len)}
|
||||
mut result := []u32{len: imax(a.digits.len, b.digits.len)}
|
||||
bitwise_xor_digit_array(a.digits, b.digits, mut result)
|
||||
return Integer{
|
||||
digits: result
|
||||
@ -941,7 +938,7 @@ fn gcd_binary(x Integer, y Integer) Integer {
|
||||
|
||||
mut az := a.msb()
|
||||
bz := b.msb()
|
||||
shift := math.min(az, bz)
|
||||
shift := umin(az, bz)
|
||||
b = b.rshift(bz)
|
||||
|
||||
for a.signum != 0 {
|
||||
|
Reference in New Issue
Block a user