Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ mp(3X) — NEWS-os 3.3

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

dc(1)

bc(1)

MP(3X)  —  UNIX Programmer’s Manual

名称

madd,msub,mult,mdiv,pow,gcd,invert,rpow,msqrt, mcmp,move,min,omin,fmin,m_in,mout,omout,fmout, m_out,sdiv,itom − 倍精度整数演算

形式

#include <mp.h>
#include <stdio.h>

typedef struct mint { int len; short ∗val; } MINT;

madd(a, b, c)
msub(a, b, c)
mult(a, b, c)
mdiv(a, b, q, r)
pow(a, b, m, c)
gcd(a, b, c)
invert(a, b, c)
rpow(a, n, c)
msqrt(a, b, r)
mcmp(a, b)
move(a, b)
min(a)
omin(a)
fmin(a, f)
m_in(a, n, f)
mout(a)
omout(a)
fmout(a, f)
m_out(a, n, f)
MINT ∗a, ∗b, ∗c, ∗m, ∗q, ∗r;
FILE ∗f;
int n;

sdiv(a, n, q, r)
MINT ∗a, ∗q;
short n;
short ∗r;

MINT ∗itom(n)

解説

これらのルーチンは、 任意桁数の整数値演算を 行います。 整数値は、 あらかじめ定義される型 MINT で格納されます。 MINT を指すポインタは、 値 n に初期値をセットする関数 itom で初期化することができます。 その後、 空間はルーチンによって自動的に管理されます。

madd、 msub、 および mult は a と b の和、差、積をそれぞれ c に返します。 mdiv は、 a を b で除算して得られる商と剰余を、 q と r に返します。 sdiv は、 除数 n がショートタイプの整数であることと、 剰余がアドレス r で指し示すショートタイプの整数に入力されることを 除いて、 mdiv と同じです。 msqrt は、 a の整数型平方根を b に、 残りを r に返します。 rpow は、 a を (“普通”の整数値の) n 乗した値を c に返します。 一方、 pow は、 これを倍精度のべき指数 b で計算し、 結果を m に返します。 gcd は、 a と b の最大公約数を c に返し、 また、 invert は a と b が互いに素数の時、 a∗c mod b=1 になるように計算し、 その結果を c に返します。 mcmp は、 a が b より小さいか、 等しいか、 それとも大きいかによって、 それぞれ負値、 ゼロ、 または正値を a に返します。 move は、 a を b にコピーします。 min と mout は、 10進数の入出力を 行い、 また、 omin と omout は、 8進数の入出力を行います。 より一般的には、 fmin と fmout で、 ファイル f を使用した10進数の入出力を行い、 m_in と m_out で、 任意の基数 n で入出力を行います。 入力では、 レコードを改行で終わる数字文字列の形式にしてください。 出力も、 レコードを同じ形式になります。

倍精度演算ライブラリを使うプログラムは、 ローダのフラグを −lmp にして、 ロードしなければなりません。

関連ファイル

/usr/include/mp.hインクルードファイル
/usr/lib/libmp.aオブジェクトコードライブラリ

関連事項

dc(1), bc(1)

診断

イリーガルオペレーションやメモリーの不足を起こすと、 エラーメッセージとコアイメージを出力します。

バグ

入出力時の基数は、 10以下にしてください。

dc(1) と bc(1) は、 このライブラリを使用していません。

この入出力ルーチンは、 役に立ちません。

pow は、 標準数学ライブラリの中にも同名のものがあります。

NEWS-OSRelease 3.3

Typewritten Software • bear@typewritten.org • Edmonds, WA 98026