X-Git-Url: https://git.m6w6.name/?p=m6w6%2Fext-psi;a=blobdiff_plain;f=psi.d%2Fstdlib.psi;h=6cf8e82b8da0bddfe36d31fc1c473593784786cd;hp=6044d41251802e971cc5b8f36ac318c15fb08394;hb=7df12c88a4e14611a2585d6e7c994c59e8d7485a;hpb=6bdeeb7b332a272617814a4358d51bb07c872407 diff --git a/psi.d/stdlib.psi b/psi.d/stdlib.psi index 6044d41..6cf8e82 100644 --- a/psi.d/stdlib.psi +++ b/psi.d/stdlib.psi @@ -1,2 +1,36 @@ +function psi\abs(int $i) : int { + let n = intval($i); + return to_int(abs); +} -extern void free(void *ptr); +function psi\div(int $numerator, int $denominator) : array { + let numerator = intval($numerator); + let denominator = intval($denominator); + return to_array(div, to_int(quot), to_int(rem)); +} + +function psi\ldiv(int $numerator, int $denominator) : array { + let numerator = intval($numerator); + let denominator = intval($denominator); + return to_array(ldiv, to_int(quot), to_int(rem)); +} + +function psi\lldiv(int $numerator, int $denominator) : array { + let numerator = intval($numerator); + let denominator = intval($denominator); + return to_array(lldiv, to_int(quot), to_int(rem)); +} + +function psi\strtold(string $str, string &$end = null) : float { + let nptr = strval($str); + let endptr = &NULL; + return to_float(strtold); + set $end = to_string(*endptr); +} + +extern double pow(double x, double y); +function psi\pow2() : float { + let x = 1 | 2; + let y = 1 << 1; + return to_float(pow); +} \ No newline at end of file