summaryrefslogtreecommitdiff
path: root/static/plan9-4e/man2/muldiv.2
diff options
context:
space:
mode:
authorJacob McDonnell <jacob@jacobmcdonnell.com>2026-04-26 16:38:00 -0400
committerJacob McDonnell <jacob@jacobmcdonnell.com>2026-04-26 16:38:00 -0400
commit97d5c458cfa039d857301e1ca7d5af3beb37131d (patch)
treeb460cd850d0537eb71806ba30358840377b27688 /static/plan9-4e/man2/muldiv.2
parentb89dc2331a50c63f8b33272a5c4c61ab98abdaa3 (diff)
build: Better Build System
Diffstat (limited to 'static/plan9-4e/man2/muldiv.2')
-rw-r--r--static/plan9-4e/man2/muldiv.231
1 files changed, 31 insertions, 0 deletions
diff --git a/static/plan9-4e/man2/muldiv.2 b/static/plan9-4e/man2/muldiv.2
new file mode 100644
index 00000000..93444bd5
--- /dev/null
+++ b/static/plan9-4e/man2/muldiv.2
@@ -0,0 +1,31 @@
+.TH MULDIV 2
+.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.