2019-06-21 02:43:50 -07:00
|
|
|
//! @brief Solana Rust-based BPF program utility functions and types
|
|
|
|
|
2019-09-06 09:20:14 -07:00
|
|
|
extern crate solana_sdk;
|
2019-06-21 02:43:50 -07:00
|
|
|
|
2019-08-28 17:19:40 -07:00
|
|
|
pub fn uadd(x: u128, y: u128) -> u128 {
|
2019-06-21 02:43:50 -07:00
|
|
|
x + y
|
|
|
|
}
|
2019-08-28 17:19:40 -07:00
|
|
|
pub fn usubtract(x: u128, y: u128) -> u128 {
|
|
|
|
x - y
|
|
|
|
}
|
|
|
|
pub fn umultiply(x: u128, y: u128) -> u128 {
|
|
|
|
x * y
|
|
|
|
}
|
|
|
|
pub fn udivide(n: u128, d: u128) -> u128 {
|
|
|
|
n / d
|
|
|
|
}
|
|
|
|
pub fn umodulo(n: u128, d: u128) -> u128 {
|
|
|
|
n % d
|
|
|
|
}
|
2019-07-08 20:28:05 -08:00
|
|
|
|
2019-08-28 17:19:40 -07:00
|
|
|
pub fn add(x: i128, y: i128) -> i128 {
|
|
|
|
x + y
|
|
|
|
}
|
|
|
|
pub fn subtract(x: i128, y: i128) -> i128 {
|
|
|
|
x - y
|
|
|
|
}
|
|
|
|
pub fn multiply(x: i128, y: i128) -> i128 {
|
|
|
|
x * y
|
|
|
|
}
|
|
|
|
pub fn divide(n: i128, d: i128) -> i128 {
|
|
|
|
n / d
|
|
|
|
}
|
|
|
|
pub fn modulo(n: i128, d: i128) -> i128 {
|
|
|
|
n % d
|
2019-08-26 16:31:06 -04:00
|
|
|
}
|