rational
Rational Number Arithmetic
Functions
| Function | Description |
|---|---|
_rat_gcd | Internal: GCD (Euclidean algorithm). |
_rat_abs | Internal: absolute value. |
rat_new | Create rational number, auto-simplified. |
rat_add | Add: a/b + c/d = (ad + bc) / bd. |
rat_sub | Subtract: a/b - c/d = (ad - bc) / bd. |
rat_mul | Multiply: (a/b) * (c/d) = ac / bd. |
rat_div | Divide: (a/b) / (c/d) = ad / bc. |
rat_cmp | Compare: returns -1, 0, or 1. |
rat_eq | Equality check. |
rat_to_i64 | Truncated integer value (num / den). |
rat_num | Numerator. |
rat_den | Denominator. |
rat_is_integer | Check if integer (den == 1). |
rat_abs | Absolute value. |
rat_negate | Negate. |
_rat_write_int | Internal: write integer to buffer. |
rat_to_str | Format as “num/den” string. Returns length. |
Details
_rat_gcd
fn _rat_gcd(a: i64, b: i64) -> i64Internal: GCD (Euclidean algorithm).
_rat_abs
fn _rat_abs(x: i64) -> i64Internal: absolute value.
rat_new
fn rat_new(num: i64, den: i64) -> &i64Create rational number, auto-simplified.
rat_add
fn rat_add(a: &i64, b: &i64) -> &i64Add: a/b + c/d = (ad + bc) / bd.
rat_sub
fn rat_sub(a: &i64, b: &i64) -> &i64Subtract: a/b - c/d = (ad - bc) / bd.
rat_mul
fn rat_mul(a: &i64, b: &i64) -> &i64Multiply: (a/b) * (c/d) = ac / bd.
rat_div
fn rat_div(a: &i64, b: &i64) -> &i64Divide: (a/b) / (c/d) = ad / bc.
rat_cmp
fn rat_cmp(a: &i64, b: &i64) -> i64Compare: returns -1, 0, or 1.
rat_eq
fn rat_eq(a: &i64, b: &i64) -> i64Equality check.
rat_to_i64
fn rat_to_i64(a: &i64) -> i64Truncated integer value (num / den).
rat_num
fn rat_num(a: &i64) -> i64Numerator.
rat_den
fn rat_den(a: &i64) -> i64Denominator.
rat_is_integer
fn rat_is_integer(a: &i64) -> i64Check if integer (den == 1).
rat_abs
fn rat_abs(a: &i64) -> &i64Absolute value.
rat_negate
fn rat_negate(a: &i64) -> &i64Negate.
_rat_write_int
fn _rat_write_int(val: i64, out: &i8, off: i64) -> i64Internal: write integer to buffer.
rat_to_str
fn rat_to_str(a: &i64, out: &i8) -> i64Format as “num/den” string. Returns length.