%表題   MATH1下位数学基本処理ライブラリリファレンスマニュアル
%
%履歴
%\Drireki{
%         90/03/22 塩谷雅人
%         91/09/05 林祥介
%         91/12/11 塩谷雅人
%         92/03/14 塩谷雅人
%         92/04/22 林祥介   (4.1版)
%        }
%
%  \Dchapter{VRALIB : 1つの実数型配列への作用素}
\Dchapterhead
\label{vralib}

\section{概要}

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

\section{サブルーチンのリスト}

  \begin{tabular}{lp{10cm}}
    {\tt VRFNA(RX,RY,N,JX,JY,RFNA)} &
      {\tt RX}に{\tt RFNA}を作用させて{\tt RY}に代入する. \\
    {\tt VRINC(RX,RY,N,JX,JY,RR)} &
      {\tt RX}に{\tt RR}を加えて{\tt RY}に代入する. \\
    {\tt VRFCT(RX,RY,N,JX,JY,RR)} &
      {\tt RX}に{\tt RR}を掛けて{\tt RY}に代入する. \\
    {\tt VRCON(RX,RY,N,JX,JY,RR)} &
      {\tt RR}を{\tt RY}に代入する. \\
    {\tt VRSET(RX,RY,N,JX,JY)} &
      {\tt RX}を{\tt RY}に代入する.
  \end{tabular}

  \vspace{1em}
  これらの簡易版として次のようなサブルーチンがある.

  \vspace{1em}
  \begin{tabular}{lp{10cm}}
    {\tt RADD(RX,N,JX,RR)} & {\tt RX}に{\tt RR}を加える. \\
    {\tt RMLT(RX,N,JX,RR)} & {\tt RX}に{\tt RR}を掛ける. \\
    {\tt RSET(RX,N,JX,RR)} & {\tt RX}に{\tt RR}を代入する.
  \end{tabular}

\section{サブルーチンの説明}

  \subsection{VRFNA}
  \label{vralib.sub.vrfna}

    \begin{enumerate}
      \item 機能
        \begin{quote}
          実数型配列{\tt RX}に実数型関数{\tt RFNA}を作用させて
          実数型配列{\tt RY}に代入する.
        \end{quote}
      \item 呼び出し方法
        \begin{quote}
          {\tt CALL VRFNA(RX,RY,N,JX,JY,RFNA)}
        \end{quote}
      \item パラメーターの説明
        \begin{quote}
          \begin{tabular}{llp{10cm}}
            {\tt RX}, {\tt RY} & {\tt (R(*))} & 処理する実数型配列. \\
            {\tt N}            & {\tt (I)}    & 処理する配列要素の個数. \\
            {\tt JX}, {\tt JY} & {\tt (I)}    &
               配列{\tt RX}, {\tt RY}において, 処理する配列要素の間隔. \\
            {\tt RFNA}         & {\tt 関数名} &
               引数が1個である実数型関数名.
          \end{tabular}
        \end{quote}
      \item 備考
        \begin{enumerate}
          \item 関数名は, それが外部関数ならEXTERNAL文で,
            組込み関数ならINTRINSIC文で宣言しておかなければならない.
        \end{enumerate}
    \end{enumerate}

  \subsection{VRINC/VRFCT}
  \label{vralib.sub.vrinc}

    \begin{enumerate}
      \item 機能
        \begin{quote}
          実数型配列{\tt RX}に実数値{\tt RR}を加えて/掛けて
          実数型配列{\tt RY}に代入する.
        \end{quote}
      \item 呼び出し方法
        \begin{quote}
          {\tt CALL VRINC(RX,RY,N,JX,JY,RR)}\\
          {\tt CALL VRFCT(RX,RY,N,JX,JY,RR)}
        \end{quote}
      \item パラメーターの説明
        \begin{quote}
          \begin{tabular}{llp{10cm}}
            {\tt RX}, {\tt RY} & {\tt (R(*))} & 処理する実数型配列. \\
            {\tt N}            & {\tt (I)}    & 処理する配列要素の個数. \\
            {\tt JX}, {\tt JY} & {\tt (I)}    &
               配列{\tt RX}, {\tt RY}において, 処理する配列要素の間隔. \\
            {\tt RR}           & {\tt (R)}    & 加える/掛ける実数値.
          \end{tabular}
        \end{quote}
      \item 備考
        \begin{enumerate}
          \item なし.
        \end{enumerate}
    \end{enumerate}

  \subsection{VRCON}
  \label{vralib.sub.vrcon}

    \begin{enumerate}
      \item 機能
        \begin{quote}
          実数値{\tt RR}を実数型配列{\tt RY}に代入する.
        \end{quote}
      \item 呼び出し方法
        \begin{quote}
          {\tt CALL VRCON(RX,RY,N,JX,JY,RR)}
        \end{quote}
      \item パラメーターの説明
        \begin{quote}
          \begin{tabular}{llp{10cm}}
            {\tt RX}, {\tt RY} & {\tt (R(*))} & 処理する実数型配列. \\
            {\tt N}            & {\tt (I)}    & 処理する配列要素の個数. \\
            {\tt JX}, {\tt JY} & {\tt (I)}    &
               配列{\tt RX}, {\tt RY}において, 処理する配列要素の間隔. \\
            {\tt RR}           & {\tt (R)}    & 代入する実数値.
          \end{tabular}
        \end{quote}
      \item 備考
        \begin{enumerate}
          \item {\tt RX}は欠損値処理をおこなうかどうかの判断に用いる.
            つまり欠損値処理をおこなうような設定のとき,
            {\tt RX}の配列要素が欠損値なら,
            代入する実数値は欠損値となる.
        \end{enumerate}
    \end{enumerate}

  \subsection{VRSET}
  \label{vralib.sub.vrset}

    \begin{enumerate}
      \item 機能
        \begin{quote}
          実数型配列{\tt RX}を実数型配列{\tt RY}に代入する.
        \end{quote}
      \item 呼び出し方法
        \begin{quote}
          {\tt CALL VRSET(RX,RY,N,JX,JY)}
        \end{quote}
      \item パラメーターの説明
        \begin{quote}
          \begin{tabular}{llp{10cm}}
            {\tt RX}, {\tt RY} & {\tt (R(*))} & 処理する実数型配列. \\
            {\tt N}            & {\tt (I)}    & 処理する配列要素の個数. \\
            {\tt JX}, {\tt JY} & {\tt (I)}    &
               配列{\tt RX}, {\tt RY}において, 処理する配列要素の間隔. \\
          \end{tabular}
        \end{quote}
      \item 備考
        \begin{enumerate}
          \item なし.
        \end{enumerate}
    \end{enumerate}

  \subsection{RADD/RMLT}
  \label{vralib.sub.radd}

    \begin{enumerate}
      \item 機能
        \begin{quote}
          {\tt VRINC}/{\tt VRFCT}の簡易版サブルーチン.
        \end{quote}
      \item 呼び出し方法
        \begin{quote}
          {\tt CALL RADD(RX,N,JX,RR)}\\
          {\tt CALL RMLT(RX,N,JX,RR)}
        \end{quote}
      \item パラメーターの説明
        \begin{quote}
          \begin{tabular}{llp{10cm}}
            {\tt RX}           & {\tt (R(*))} & 処理する実数型配列. \\
            {\tt N}            & {\tt (I)}    & 処理する配列要素の個数. \\
            {\tt JX}, {\tt JY} & {\tt (I)}    &
               配列{\tt RX}, {\tt RY}において, 処理する配列要素の間隔. \\
            {\tt RR}           & {\tt (R)}    & 加える/掛ける実数値.
          \end{tabular}
        \end{quote}
      \item 備考
        \begin{enumerate}
          \item なし.
        \end{enumerate}
    \end{enumerate}

  \subsection{RSET}
  \label{vralib.sub.rset}

    \begin{enumerate}
      \item 機能
        \begin{quote}
          {\tt VRCON}の簡易版サブルーチン.
        \end{quote}
      \item 呼び出し方法
        \begin{quote}
          {\tt CALL RSET(RX,N,JX,RR)}
        \end{quote}
      \item パラメーターの説明
        \begin{quote}
          \begin{tabular}{llp{10cm}}
            {\tt RX}           & {\tt (R(*))} & 処理する実数型配列. \\
            {\tt N}            & {\tt (I)}    & 処理する配列要素の個数. \\
            {\tt JX}, {\tt JY} & {\tt (I)}    &
               配列{\tt RX}, {\tt RY}において, 処理する配列要素の間隔. \\
            {\tt RR}           & {\tt (R)}    & 代入する実数値.
          \end{tabular}
        \end{quote}
      \item 備考
        \begin{enumerate}
          \item なし.
        \end{enumerate}
    \end{enumerate}
