diff options
Diffstat (limited to 'man/man3/muldiv.3')
-rw-r--r-- | man/man3/muldiv.3 | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/man/man3/muldiv.3 b/man/man3/muldiv.3 new file mode 100644 index 00000000..3bc6dda9 --- /dev/null +++ b/man/man3/muldiv.3 @@ -0,0 +1,31 @@ +.TH MULDIV 3 +.SH NAME +muldiv, umuldiv \- high-precision multiplication and division +.SH SYNOPSIS +.B #include <u.h> +.br +.B #include <libc.h> +.PP +.B +long muldiv(long a, long b, long c) +.PP +.B +ulong umuldiv(ulong a, ulong b, ulong c) +.SH DESCRIPTION +.I Muldiv +returns +.BR a*b/c , +using a +.B vlong +to hold the intermediate result. +.I Umuldiv +is the equivalent for unsigned integers. +They can be used to scale integer values without worry about +overflowing the intermediate result. +.PP +On some architectures, these routines can generate a trap if the +final result does not fit in a +.B long +or +.BR ulong ; +on others they will silently truncate. |