%表題   MATH1下位基本数学処理ライブラリリファレンスマニュアル
%
%履歴
%\Drireki{
%         90/03/22 塩谷雅人
%         91/09/05 林祥介
%         91/12/11 塩谷雅人
%         92/01/31 塩谷雅人
%         92/03/14 塩谷雅人
%         92/04/22 林祥介   (4.1版)
%         94/04/04 塩谷雅人
%        }
%
%\Dchapter{FNCLIB : 基本関数(最大整数, 剰余など)}
\Dchapterhead
\label{fnclib}

\section{概要}

  基本的な関数パッケージ.

\section{関数のリスト}

  \begin{tabular}{lp{10cm}}
    {\tt IGUS(RX)} & {\tt RX}を越えない最大の整数 ($[ {\tt RX} ]$) を返す. \\
    {\tt IMOD(IX,ID)} & 数学的な剰余 (${\tt IX} \bmod {\tt ID}$) を求める. \\
    {\tt RMOD(RX,RD)} & 数学的な剰余 (${\tt RX} \bmod {\tt RD}$) を求める. \\
    {\tt REXP(RX,IB,IE)} & ${\tt RX} \times {\tt IB}^{\tt IE}$ を求める. \\
    {\tt RFPI()} & 円周率 $\pi$ を返す. \\
    {\tt RD2R(X)} & 角度の変換(度からラジアン)をおこなう. \\
    {\tt RR2D(X)} & 角度の変換(ラジアンから度)をおこなう. \\
  \end{tabular}

\section{関数の説明}

  \subsection{IGUS}

    \label{fnclib.sub.igus}
    \begin{enumerate}
      \item 機能
        \begin{quote}
           与えた実数を越えない最大の整数を求める.
        \end{quote}
      \item 呼び出し方法
        \begin{quote}
          {\tt IGUS(RX)}
        \end{quote}
      \item パラメーターの説明
        \begin{quote}
          \begin{tabular}{llp{10cm}}
            {\tt RX}   & {\tt (R)} & 調べる実数値. \\
            {\tt IGUS} & {\tt (I)} & 最大の整数 $[ {\tt RX} ]$ 関数値.
          \end{tabular}
        \end{quote}
      \item 備考
        \begin{enumerate}
          \item FORTRANの組込み関数{\tt INT(X)}は,
            {\tt X}の値の小数点以下を切り捨てた値,
            つまり$| {\tt X} | \geq 1$ならば
            $| {\tt X} |$以下の最大の整数に{\tt X}と同じ符号をつけた値,
            $| {\tt X} | < 1$ならばゼロを返す.
            たとえば{\tt INT(4.5)=4}, {\tt INT(-4.5)=-4} である.
            いっぽう{\tt IGUS}は,
            たとえば{\tt IGUS(4.5)=4}, {\tt IGUS(-4.5)=-5}となる.
        \end{enumerate}
    \end{enumerate}

  \subsection{IMOD/RMOD}

    \label{fnclib.sub.imod}
    \begin{enumerate}
      \item 機能
        \begin{quote}
           数学的な剰余を求める. {\tt IMOD} は整数用
           (${\tt IX} \bmod {\tt ID}$),
           {\tt RMOD} は実数用 (${\tt RX} \bmod {\tt RD}$) である.
        \end{quote}
      \item 呼び出し方法
        \begin{quote}
          {\tt IMOD(IX,ID)} \\
          {\tt RMOD(RX,RD)}
        \end{quote}
      \item パラメーターの説明
        \begin{quote}
          \begin{tabular}{llp{10cm}}
            {\tt IX}   & {\tt (I)} & 調べる整数値. \\
            {\tt ID}   & {\tt (I)} & 除数. \\
            {\tt IMOD} & {\tt (I)} & 剰余関数値. \\
            {\tt RX}   & {\tt (R)} & 調べる実数値. \\
            {\tt RD}   & {\tt (R)} & 除数. \\
            {\tt RMOD} & {\tt (R)} & 剰余関数値.
          \end{tabular}
        \end{quote}
      \item 備考
        \begin{enumerate}
          \item FORTRANの組込み関数{\tt MOD(X,Y)}は,
            {\tt X-INT(X/Y)*Y}を返す.
            たとえば{\tt MOD(4,3)=1}, {\tt MOD(-4,3)=-1}である.
            いっぽう{\tt IMOD}は, たとえば{\tt IMOD(4,3)=1},
            {\tt IMOD(-4,3)=2}となる.
            また{\tt RMOD}は, たとえば{\tt RMOD(4.0,3.0)=1.0},
            {\tt RMOD(-4.0,3.0)=2.0}となる.
          \item {\tt ID}$\neq$0, {\tt RD}$\neq$0でなければならない.
        \end{enumerate}
    \end{enumerate}

  \subsection{REXP}

    \label{fnclib.sub.rexp}
    \begin{enumerate}
      \item 機能
        \begin{quote}
           ${\tt RX} \times {\tt IB}^{\tt IE}$ を求める.
        \end{quote}
      \item 呼び出し方法
        \begin{quote}
          {\tt REXP(RX,IB,IE)}
        \end{quote}
      \item パラメーターの説明
        \begin{quote}
          \begin{tabular}{llp{10cm}}
            {\tt RX}   & {\tt (R)} & 機能欄参照. \\
            {\tt IB}   & {\tt (I)} & 機能欄参照. \\
            {\tt IE}   & {\tt (I)} & 機能欄参照. \\
            {\tt REXP} & {\tt (R)} & 求める関数値.
          \end{tabular}
        \end{quote}
      \item 備考
        \begin{enumerate}
          \item FORTRANの指数計算は, 機種によってかなり精度の
             悪いものがあるのでこのルーチンは作成された.
             実際, {\tt REXP}は{\tt RX*IB**REAL(IE)}と
             書くのに比べて一般的にけた落ちが少ないが,
             もっとも高速で精度の高い計算をするためには
             倍精度で指数計算をおこなうのがよい.
          \item {\tt IB}$\neq$0でなければならない.
        \end{enumerate}
    \end{enumerate}

  \subsection{RFPI}

    \label{fnclib.sub.rfpi}
    \begin{enumerate}
      \item 機能
        \begin{quote}
           円周率 $\pi$ を返す.
        \end{quote}
      \item 呼び出し方法
        \begin{quote}
          {\tt RFPI()}
        \end{quote}
      \item パラメーターの説明
        \begin{quote}
          \begin{tabular}{llp{10cm}}
            {\tt RFPI} & {\tt (R)} & 円周率 $\pi$ を返す実数関数値.
          \end{tabular}
        \end{quote}
      \item 備考
        \begin{enumerate}
          \item なし.
        \end{enumerate}
    \end{enumerate}

  \subsection{RD2R/RR2D}

    \label{fnclib.sub.rd2r}
    \begin{enumerate}
      \item 機能
        \begin{quote}
           角度の変換をおこなう.
        \end{quote}
      \item 呼び出し方法
        \begin{quote}
          {\tt RD2R(X)} \\
          {\tt RR2D(X)}
        \end{quote}
      \item パラメーターの説明
        \begin{quote}
          \begin{tabular}{llp{10cm}}
            {\tt X} & {\tt (R)} &
              {\tt RD2R} に対しては「度」, {\tt RR2D} に対しては
              「ラジアン」を単位とする実数値. \\
            {\tt RD2R} & {\tt (R)} &
              「ラジアン」を単位とした値を返す実数関数値. \\
            {\tt RR2D} & {\tt (R)} &
              「度」を単位とした値を返す実数関数値.
          \end{tabular}
        \end{quote}
      \item 備考
        \begin{enumerate}
          \item なし.
        \end{enumerate}
    \end{enumerate}
