%表題   MATH1下位基本関数処理ライブラリリファレンスマニュアル
%
%履歴
%\Drireki{
%         90/03/22 塩谷雅人
%         91/09/05 林祥介
%         91/12/11 塩谷雅人
%         92/03/14 塩谷雅人
%         92/04/22 林祥介   (4.1版)
%         95/04/21 塩谷雅人
%        }
%
%  \Dchapter{RFALIB : 実数の欠損値処理付最大最小平均分散偏差など}
\Dchapterhead
\label{rfalib}


\section{概要}

  1つの実数型配列に対して, 1つの実数値が決まるような作用をもつ関数パッケージ.
  以下では総称名を示す.
  たとえば{\tt RMAX}に対しては, ほかに{\tt RMAX0}, {\tt RMAX1}
  という名前の関数も存在する.
  {\tt RMAX0}は欠損値処理をおこなわない;
  {\tt RMAX1}は欠損値処理をおこなう.
  {\tt RMAX}は内部変数{\tt 'LMISS'}が{\tt .TRUE.}なら欠損値処理をおこなう;
  {\tt .FALSE.}なら欠損値処理をおこなわない(初期値は{\tt .FALSE.}).
  また欠損値処理をおこなうときの欠損値は,
  内部変数{\tt 'RMISS'}で決まる(初期値は999.0).
  (詳しくは\ref{syslib.sub.glpget}節参照)

\section{関数のリスト}

  \begin{tabular}{lp{10cm}}
    {\tt RMAX(RX,N,JX)} & 最大値を求める. \\
    {\tt RMIN(RX,N,JX)} & 最小値を求める. \\
    {\tt RSUM(RX,N,JX)} & 総和を求める. \\
    {\tt RAVE(RX,N,JX)} & 平均を求める. \\
    {\tt RVAR(RX,N,JX)} & 分散を求める. \\
    {\tt RSTD(RX,N,JX)} & 標準偏差を求める. \\
    {\tt RRMS(RX,N,JX)} & root mean square
      ($ ((\Sigma {\tt RX}^{2})/{\tt N})^{1/2} $)
      を求める. \\
    {\tt RAMP(RX,N,JX)} & 大きさ
      ($ (\Sigma {\tt RX}^{2})^{1/2} $)
      を求める. \\
    {\tt VRMAX(RX,NS,NP,NQ,ND)} & 多次元配列の(一部分の)最大値を求める. \\
    {\tt VRMIN(RX,NS,NP,NQ,ND)} & 多次元配列の(一部分の)最小値を求める. \\
  \end{tabular}


\section{関数の説明}

  \subsection{RMAX/RMIN/RSUM/RAVE/RVAR/RSTD/RRMS/RAMP}
  \label{rfalib.sub.rmax}

    \begin{enumerate}
      \item 機能
        \begin{quote}
          最大値 / 最小値 / 総和 / 平均 / 分散 / 標準偏差 /
          root mean square ($ ((\Sigma {\tt RX}^{2})/{\tt N})^{1/2} $) /
          大きさ($ (\Sigma {\tt RX}^{2})^{1/2} $)
          をもとめる.
        \end{quote}
      \item 呼び出し方法
        \begin{quote}
          {\tt RMAX(RX,N,JX)}\\
          {\tt RMIN(RX,N,JX)}\\
          {\tt RSUM(RX,N,JX)}\\
          {\tt RAVE(RX,N,JX)}\\
          {\tt RVAR(RX,N,JX)}\\
          {\tt RSTD(RX,N,JX)}\\
          {\tt RRMS(RX,N,JX)}\\
          {\tt RAMP(RX,N,JX)}
        \end{quote}
      \item パラメーターの説明
        \begin{quote}
          \begin{tabular}{llp{10cm}}
            {\tt RX}  & {\tt (R(*))}  & 処理する実数型配列. \\
            {\tt N}   & {\tt (I)}     & 処理する配列要素の個数. \\
            {\tt JX}  & {\tt (I)}     & 処理する配列要素の間隔. \\
            {\tt RMAX}& {\tt (R)}     & 最大値を与える関数値. \\
            {\tt RMIN}& {\tt (R)}     & 最小値を与える関数値. \\
            {\tt RSUM}& {\tt (R)}     & 総和を与える関数値. \\
            {\tt RAVE}& {\tt (R)}     & 平均を与える関数値. \\
            {\tt RVAR}& {\tt (R)}     & 分散を与える関数値. \\
            {\tt RSTD}& {\tt (R)}     & 標準偏差を与える関数値. \\
            {\tt RRMS}& {\tt (R)}     & root mean square
                                   ($ ((\Sigma {\tt RX}^{2})/{\tt N})^{1/2} $)
                                        を与える関数値. \\
            {\tt RAMP}& {\tt (R)}     & 大きさ
                                        ($ (\Sigma {\tt RX}^{2})^{1/2} $)
                                        を与える関数値.
          \end{tabular}
        \end{quote}
      \item 備考
        \begin{enumerate}
          \item なし.
        \end{enumerate}
    \end{enumerate}

  \subsection{RVMAX/RVMIN}
  \label{rfalib.sub.rmax}

    \begin{enumerate}
      \item 機能
        \begin{quote}
          多次元配列の(一部分の)最大値 / 最小値をもとめる.
        \end{quote}
      \item 呼び出し方法
        \begin{quote}
          {\tt VRMAX(RX,NS,NP,NQ,ND)} \\
          {\tt VRMIN(RX,NS,NP,NQ,ND)}
        \end{quote}
      \item パラメーターの説明
        \begin{quote}
          \begin{tabular}{llp{10cm}}
            {\tt RX}   & {\tt (R(*))}  & 処理する実数型配列. \\
            {\tt NS}   & {\tt (I(*))}  & 配列の各次元の長さを与える
                                         整数型配列. \\
            {\tt NP}   & {\tt (I(*))}  & 各次元の処理をおこなう
                                         最初の位置を与える整数型配列. \\
            {\tt NQ}   & {\tt (I(*))}  & 各次元の処理をおこなう
                                         最後の位置を与える整数型配列. \\
            {\tt ND}   & {\tt (I)}     & 配列の次元数. \\
            {\tt RVMAX}& {\tt (R)}     & 最大値を与える関数値. \\
            {\tt RVMIN}& {\tt (R)}     & 最小値を与える関数値.
          \end{tabular}
        \end{quote}
      \item 備考
        \begin{enumerate}
          \item たとえば3次元配列{\tt X(10,20,30)}が宣言してあったとき,
            1次元目について [2, 9], 2次元目について [3, 12],
            3次元目について [5, 20] の添字が動く範囲の最大値を求めるた
            めには, {\tt NS(1)=10}, {\tt NS(2)=20}, {\tt NS(3)=30},
            {\tt NP(1)=2}, {\tt NP(2)=3}, {\tt NP(3)=5},
            {\tt NQ(1)=9}, {\tt NQ(2)=12}, {\tt NQ(3)=20},
            {\tt ND=3} として {\tt RVMAX} を呼んでやればよい. 
        \end{enumerate}
    \end{enumerate}
