Math Processor Unit Library

libmpu – library of arithmetic functions for integer, real, and complex numbers of increased digit capacity

16 Commits   0 Branches   2 Tags
author: kx <kx@radix-linux.su> 2025-01-05 15:42:39 +0300 committer: kx <kx@radix-linux.su> 2025-01-05 15:42:39 +0300 commit: 41c271dacd0d2e4eae1378b098448e3554ea657b parent: 662a29cbe51f565cb7e04345772b16795fbf4182
Commit Summary:
man: pages fot integer operations
Diffstat:
1 file changed, 64 insertions, 0 deletions
diff --git a/man/imul.3mpu b/man/imul.3mpu
new file mode 100644
index 0000000..803d3cc
--- /dev/null
+++ b/man/imul.3mpu
@@ -0,0 +1,64 @@
+.TH imul 3  "December 27, 2024" "libmpu" "LibMPU Programmer's Manual"
+.SH NAME
+\fBimul\fP \- unsigned integer multiplication
+.SH SYNOPSIS
+.nf
+.B #include <libmpu.h>
+.PP
+.BI "void imul( mpu_int *" prod ", mpu_int *" num ", mpu_int *" mul ", int " nb_prod ", int " nb_num " );
+.fi
+.SH DESCRIPTION
+The function \fBimul()\fP performs the unsigned multiplication operation of the variable located
+at the address \fBnum\fP by the variable located at the address \fBmul\fP. The result is placed
+at \fBprod\fP. The contents of the memory at addresses \fBnum\fP, \fBmul\fP are not changed, and
+the previous memory contents at address \fBprod\fP are lost. The \fBnb_prod\fP parameter determines
+the size of the operand (in bytes) located at address \fBprod\fP, and the \fBnb_num\fP parameter
+determines the size of operands (in bytes) located at addresses \fBnum\fP, \fBmul\fP.
+.PP
+The function affects the flags \fBA\fP, \fBC\fP, \fBO\fP, \fBP\fP, \fBS\fP, \fBZ\fP, \fBR\fP.
+.PP
+The \fBA\fP flag is reset to 0. The \fBP\fP flag is set only when the size of the \fBprod\fP
+operand is one or two bytes (\fBnb\fP == 1 || \fBnb\fP == 2). Flag \fBR\fP (major || remainder)
+is set in the case that the resulting product requires a larger size than defined by
+\fBnb_prod\fP parameter.
+.sp
+.SH SEE ALSO
+.BR iadd(3),
+.BR isub(3),
+.BR iadc(3),
+.BR isbb(3),
+.BR ishl(3),
+.BR ishr(3),
+.BR isal(3),
+.BR isar(3),
+.BR irol(3),
+.BR iror(3),
+.BR ircl(3),
+.BR ircr(3),
+.BR ishln(3),
+.BR ishrn(3),
+.BR isaln(3),
+.BR isarn(3),
+.BR iroln(3),
+.BR irorn(3),
+.BR ircln(3),
+.BR ircrn(3),
+.BR ineg(3),
+.BR inot(3),
+.BR iand(3),
+.BR itest(3),
+.BR icmp(3),
+.BR ior(3),
+.BR ixor(3),
+.BR iinc(3),
+.BR idec(3),
+.BR ixchg(3),
+.BR icpy(3),
+.BR icvt(3),
+.BR ismul(3),
+.BR idiv(3),
+.BR isdiv(3),
+.BR iatoi(3),
+.BR iatoui(3),
+.BR iitoa(3),
+.BR iuitoa(3).