Download code/bugfind/bench/corpus/functions.json from viai957/align: direct link, hf CLI and curl.
- Browser
- Download file 5.59 kB
-
https://huggingface.co/viai957/align/resolve/main/code/bugfind/bench/corpus/functions.json
- Command line
-
hf download hf://viai957/align/code/bugfind/bench/corpus/functions.json
-
curl -L -o functions.json https://huggingface.co/viai957/align/resolve/main/code/bugfind/bench/corpus/functions.json
5.59 kB
| [ | |
| {"name":"avg_floor","args":["u32","u32"],"ret":"u32","doc":"floor((a+b)/2) without overflow", | |
| "src":"pub fn avg_floor(a: u32, b: u32) -> u32 {\n (a & b) + ((a ^ b) >> 1)\n}"}, | |
| {"name":"abs_diff_u32","args":["u32","u32"],"ret":"u32","doc":"|a-b|", | |
| "src":"pub fn abs_diff_u32(a: u32, b: u32) -> u32 {\n if a >= b { a - b } else { b - a }\n}"}, | |
| {"name":"gcd","args":["u32","u32"],"ret":"u32","doc":"Euclid gcd, gcd(0,0)=0", | |
| "src":"pub fn gcd(a: u32, b: u32) -> u32 {\n let mut x = a;\n let mut y = b;\n while y != 0 {\n let t = x % y;\n x = y;\n y = t;\n }\n x\n}"}, | |
| {"name":"isqrt","args":["u32"],"ret":"u32","doc":"floor(sqrt(n))", | |
| "src":"pub fn isqrt(n: u32) -> u32 {\n let mut lo: u64 = 0;\n let mut hi: u64 = 65536;\n let n64 = n as u64;\n while hi - lo > 1 {\n let mid = (lo + hi) / 2;\n if mid * mid <= n64 { lo = mid; } else { hi = mid; }\n }\n lo as u32\n}"}, | |
| {"name":"clamp_add","args":["u8","u8","u8"],"ret":"u8","doc":"min(a+b, cap) without overflow", | |
| "src":"pub fn clamp_add(a: u8, b: u8, cap: u8) -> u8 {\n let s = (a as u16) + (b as u16);\n if s > cap as u16 { cap } else { s as u8 }\n}"}, | |
| {"name":"round_up_div","args":["u32","u32"],"ret":"Option<u32>","doc":"ceil(a/b), None if b==0", | |
| "src":"pub fn round_up_div(a: u32, b: u32) -> Option<u32> {\n if b == 0 {\n None\n } else {\n Some(a / b + if a % b != 0 { 1 } else { 0 })\n }\n}"}, | |
| {"name":"next_multiple","args":["u32","u32"],"ret":"Option<u32>","doc":"smallest multiple of m that is >= a; None on m==0 or overflow", | |
| "src":"pub fn next_multiple(a: u32, m: u32) -> Option<u32> {\n if m == 0 {\n return None;\n }\n let r = a % m;\n if r == 0 {\n Some(a)\n } else {\n a.checked_add(m - r)\n }\n}"}, | |
| {"name":"digit_sum","args":["u32"],"ret":"u32","doc":"sum of decimal digits", | |
| "src":"pub fn digit_sum(n: u32) -> u32 {\n let mut s = 0;\n let mut x = n;\n while x > 0 {\n s += x % 10;\n x /= 10;\n }\n s\n}"}, | |
| {"name":"is_pow2","args":["u32"],"ret":"bool","doc":"n is a positive power of two", | |
| "src":"pub fn is_pow2(n: u32) -> bool {\n n != 0 && (n & (n - 1)) == 0\n}"}, | |
| {"name":"popcount","args":["u32"],"ret":"u32","doc":"number of set bits", | |
| "src":"pub fn popcount(n: u32) -> u32 {\n let mut c = 0;\n let mut x = n;\n while x != 0 {\n c += x & 1;\n x >>= 1;\n }\n c\n}"}, | |
| {"name":"ilog2_floor","args":["u32"],"ret":"Option<u32>","doc":"floor(log2 n), None for 0", | |
| "src":"pub fn ilog2_floor(n: u32) -> Option<u32> {\n if n == 0 {\n return None;\n }\n let mut k = 0;\n let mut x = n;\n while x > 1 {\n x >>= 1;\n k += 1;\n }\n Some(k)\n}"}, | |
| {"name":"triangular","args":["u32"],"ret":"u64","doc":"n(n+1)/2 in u64", | |
| "src":"pub fn triangular(n: u32) -> u64 {\n let m = n as u64;\n m * (m + 1) / 2\n}"}, | |
| {"name":"collatz_steps","args":["u16"],"ret":"u32","doc":"steps to reach 1 (0 for n<=1)", | |
| "src":"pub fn collatz_steps(n: u16) -> u32 {\n let mut x = n as u64;\n let mut s = 0;\n while x > 1 {\n x = if x % 2 == 0 { x / 2 } else { 3 * x + 1 };\n s += 1;\n }\n s\n}"}, | |
| {"name":"sat_sub_i32","args":["i32","i32"],"ret":"i32","doc":"saturating subtraction", | |
| "src":"pub fn sat_sub_i32(a: i32, b: i32) -> i32 {\n let d = (a as i64) - (b as i64);\n if d > i32::MAX as i64 {\n i32::MAX\n } else if d < i32::MIN as i64 {\n i32::MIN\n } else {\n d as i32\n }\n}"}, | |
| {"name":"sign3","args":["i32"],"ret":"i32","doc":"-1,0,1", | |
| "src":"pub fn sign3(x: i32) -> i32 {\n if x > 0 {\n 1\n } else if x < 0 {\n -1\n } else {\n 0\n }\n}"}, | |
| {"name":"pow_mod","args":["u32","u32","u32"],"ret":"u32","doc":"b^e mod m, m>0 (m==0 -> 0)", | |
| "src":"pub fn pow_mod(b: u32, e: u32, m: u32) -> u32 {\n if m == 0 {\n return 0;\n }\n let mm = m as u64;\n let mut base = (b as u64) % mm;\n let mut exp = e;\n let mut acc: u64 = 1 % mm;\n while exp > 0 {\n if exp & 1 == 1 {\n acc = (acc * base) % mm;\n }\n base = (base * base) % mm;\n exp >>= 1;\n }\n acc as u32\n}"}, | |
| {"name":"varint_len","args":["u64"],"ret":"u32","doc":"LEB128 byte length of n", | |
| "src":"pub fn varint_len(n: u64) -> u32 {\n let mut len = 1;\n let mut x = n;\n while x >= 128 {\n x >>= 7;\n len += 1;\n }\n len\n}"}, | |
| {"name":"zigzag_enc","args":["i32"],"ret":"u32","doc":"protobuf zigzag encode", | |
| "src":"pub fn zigzag_enc(n: i32) -> u32 {\n ((n << 1) ^ (n >> 31)) as u32\n}"}, | |
| {"name":"bit_reverse8","args":["u8"],"ret":"u8","doc":"reverse bits of a byte", | |
| "src":"pub fn bit_reverse8(b: u8) -> u8 {\n let mut r = 0u8;\n let mut x = b;\n let mut i = 0;\n while i < 8 {\n r = (r << 1) | (x & 1);\n x >>= 1;\n i += 1;\n }\n r\n}"}, | |
| {"name":"lcm_checked","args":["u32","u32"],"ret":"Option<u32>","doc":"lcm, None on overflow, lcm(_,0)=Some(0)", | |
| "src":"pub fn lcm_checked(a: u32, b: u32) -> Option<u32> {\n if a == 0 || b == 0 {\n return Some(0);\n }\n let mut x = a;\n let mut y = b;\n while y != 0 {\n let t = x % y;\n x = y;\n y = t;\n }\n (a / x).checked_mul(b)\n}"}, | |
| {"name":"midpoint_idx","args":["usize","usize"],"ret":"usize","doc":"lo + (hi-lo)/2 for lo<=hi, else lo", | |
| "src":"pub fn midpoint_idx(lo: usize, hi: usize) -> usize {\n if hi <= lo { lo } else { lo + (hi - lo) / 2 }\n}"} | |
| ] | |