Skip to content

Commit d8ebf52

Browse files
authored
sub implementation improvement (#1)
1 parent 79f5f47 commit d8ebf52

File tree

3 files changed

+3
-27
lines changed

3 files changed

+3
-27
lines changed

sources/i128.move

Lines changed: 1 addition & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -85,15 +85,7 @@ module integer_library::i128 {
8585

8686
public fun sub(num1: I128, num2: I128): I128 {
8787
let diff = wrapping_sub(num1, num2);
88-
let overflow = if (sign(num1) != sign(num2)) {
89-
if (sign(num1) != sign(diff)) {
90-
true
91-
} else {
92-
false
93-
}
94-
} else {
95-
false
96-
};
88+
let overflow = sign(num1) != sign(num2) && sign(num1) != sign(diff);
9789
assert!(!overflow, EOverflow);
9890
diff
9991
}

sources/i32.move

Lines changed: 1 addition & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -75,15 +75,7 @@ module integer_library::i32 {
7575

7676
public fun sub(num1: I32, num2: I32): I32 {
7777
let diff = wrapping_sub(num1, num2);
78-
let overflow = if (sign(num1) != sign(num2)) {
79-
if (sign(num1) != sign(diff)) {
80-
true
81-
} else {
82-
false
83-
}
84-
} else {
85-
false
86-
};
78+
let overflow = sign(num1) != sign(num2) && sign(num1) != sign(diff);
8779
assert!(!overflow, EOverflow);
8880
diff
8981
}

sources/i64.move

Lines changed: 1 addition & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -76,15 +76,7 @@ module integer_library::i64 {
7676

7777
public fun sub(num1: I64, num2: I64): I64 {
7878
let diff = wrapping_sub(num1, num2);
79-
let overflow = if (sign(num1) != sign(num2)) {
80-
if (sign(num1) != sign(diff)) {
81-
true
82-
} else {
83-
false
84-
}
85-
} else {
86-
false
87-
};
79+
let overflow = sign(num1) != sign(num2) && sign(num1) != sign(diff);
8880
assert!(!overflow, EOverflow);
8981
diff
9082
}

0 commit comments

Comments
 (0)