見出し画像

解説クラスCopyClear(9)

解説クラスCopyClear(9)


2024年3月6初講(初稿)

この講義は解説『解説クラスCopyClear(8)』
続きです!

    int     copy_even(                              // 転送:同単位
                TypeArray   *ps,                    // S配列
                TypeArray   *pd );                  // D配列
    int     copy_diff(                              // 転送:異単位
                TypeArray   *ps,                    // S配列
                TypeArray   *pd );                  // D配列
    void    copy_h(                                 // 周囲転送用:水平線コピー
                TypeArray   *ps,                    // S配列
                TypeArray   *pd,                    // D配列
                int         y );                    // y座標
    void    copy_v(                                 // 周囲転送用:垂直線コピー
                TypeArray   *ps,                    // S配列
                TypeArray   *pd,                    // D配列
                int         x );                    // x座標

    void    copyFieldFrameBase(                     // フィールドからフレーム画像への基本コピー
                long*       ps,                     // S:long単位ポインタ
                long*       pd,                     // D:long単位ポインタ
                int         h,                      // 水平幅:long単位
                int         v,                      // 垂直幅:S画像
                int         incS,                   // S:増加幅:long単位
                int         incD );                 // S:増加幅:long単位

    int     repair0Image(                           // 欠陥画素修復:モード0:前詰め
                TypeArray*  pa,                     //  配列
                int         tbl[],                  //  欠陥場所テーブル
                int         n );                    //  欠陥個数
    int     repair1Image(                           // 欠陥画素修復:モード1:補間
                TypeArray*  pa,                     //  配列
                int         tbl[],                  //  欠陥場所テーブル
                int         n );                    //  欠陥個数
    void    repair1ImageByte(                       // 欠陥画素修復:補間:BYTE
                TypeArray*  pa,                     //  配列
                int         x,                      //  欠陥場所
                int         x0 );                   //  欠陥場所の隣
    void    repair1ImageShort(                      // 欠陥画素修復:補間:2BYTE
                TypeArray*  pa,                     //  配列
                int         x,                      //  欠陥場所
                int         x0 );                   //  欠陥場所の隣

    void    convert_b_b_x(                          // LUT変換:BYTE→BYTE:水平
                BYTE    *ps,                        // S配列実Ptr
                BYTE    *pd,                        // D配列実Ptr
                BYTE    lut[],                      // LUT
                int     h                           // 水平幅
            );
    void    convert_b_b_y(                          // LUT変換:BYTE→BYTE:垂直
                TypeArray   *ps,                    // S配列
                TypeArray   *pd,                    // D配列
                BYTE        lut[]                   // LUT
            );
    int     convert_b_b(                            // LUT変換:BYTE→BYTE:基本
                TypeArray   *ps,                    // S配列
                TypeArray   *pd,                    // D配列
                TypeArray   *lut                    // LUT
            );
    void    convert_b_s_x(                          // LUT変換:BYTE→short:水平
                BYTE    *ps,                        // S配列実Ptr
                short   *pd,                        // D配列実Ptr
                short   lut[],                      // LUT
                int     h                           // 水平幅
            );
    void    convert_b_s_y(                          // LUT変換:BYTE→short:垂直
                TypeArray   *ps,                    // S配列
                TypeArray   *pd,                    // D配列
                short       lut[]                   // LUT
            );
    int     convert_b_s(                            // LUT変換:BYTE→short:基本
                TypeArray   *ps,                    // S配列
                TypeArray   *pd,                    // D配列
                TypeArray   *lut                    // LUT
            );
    void    convert_b_l_x(                          // LUT変換:BYTE→long:水平
                BYTE    *ps,                        // S配列実Ptr
                long    *pd,                        // D配列実Ptr
                long    lut[],                      // LUT
                int     h                           // 水平幅
            );
    void    convert_b_l_y(                          // LUT変換:BYTE→long:垂直
                TypeArray   *ps,                    // S配列
                TypeArray   *pd,                    // D配列
                long        lut[]                   // LUT
            );
    int     convert_b_l(                            // LUT変換:BYTE→long:基本
                TypeArray   *ps,                    // S配列
                TypeArray   *pd,                    // D配列
                TypeArray   *lut                    // LUT
            );
    void    convert_b_f_x(                          // LUT変換:BYTE→float:水平
                BYTE    *ps,                        // S配列実Ptr
                float   *pd,                        // D配列実Ptr
                float   lut[],                      // LUT
                int     h                           // 水平幅
            );
    void    convert_b_f_y(                          // LUT変換:BYTE→float:垂直
                TypeArray   *ps,                    // S配列
                TypeArray   *pd,                    // D配列
                float       lut[]                   // LUT
            );
    int     convert_b_f(                            // LUT変換:BYTE→float:基本
                TypeArray   *ps,                    // S配列
                TypeArray   *pd,                    // D配列
                TypeArray   *lut                    // LUT
            );
    void    convert_b_d_x(                          // LUT変換:BYTE→double:水平
                BYTE    *ps,                        // S配列実Ptr
                double  *pd,                        // D配列実Ptr
                double  lut[],                      // LUT
                int     h                           // 水平幅
            );
    void    convert_b_d_y(                          // LUT変換:BYTE→double:垂直
                TypeArray   *ps,                    // S配列
                TypeArray   *pd,                    // D配列
                double      lut[]                   // LUT
            );
    int     convert_b_d(                            // LUT変換:BYTE→double:基本
                TypeArray   *ps,                    // S配列
                TypeArray   *pd,                    // D配列
                TypeArray   *lut                    // LUT
            );
    int     convert_b(                              // LUT変換:BYTE→汎用
                TypeArray   *ps,                    // S配列
                TypeArray   *pd,                    // D配列
                TypeArray   *lut                    // LUT配列
            );
    void    convert_w_b_x(                          // LUT変換:UWORD→BYTE:水平
                UWORD   *ps,                        // S配列実Ptr
                BYTE    *pd,                        // D配列実Ptr
                BYTE    lut[],                      // LUT
                int     h                           // 水平幅
            );
    void    convert_w_b_y(                          // LUT変換:UWORD→BYTE:垂直
                TypeArray   *ps,                    // S配列
                TypeArray   *pd,                    // D配列
                BYTE        lut[]                   // LUT
            );
    int     convert_w_b(                            // LUT変換:UWORD→BYTE:基本
                TypeArray   *ps,                    // S配列
                TypeArray   *pd,                    // D配列
                TypeArray   *lut                    // LUT
            );
    void    convert_w_s_x(                          // LUT変換:UWORD→short:水平
                UWORD   *ps,                        // S配列実Ptr
                short   *pd,                        // D配列実Ptr
                short   lut[],                      // LUT
                int     h                           // 水平幅
            );
    void    convert_w_s_y(                          // LUT変換:UWORD→short:垂直
                TypeArray   *ps,                    // S配列
                TypeArray   *pd,                    // D配列
                short       lut[]                   // LUT
            );
    int     convert_w_s(                            // LUT変換:UWORD→short:基本
                TypeArray   *ps,                    // S配列
                TypeArray   *pd,                    // D配列
                TypeArray   *lut                    // LUT
            );
    void    convert_w_l_x(                          // LUT変換:UWORD→long:水平
                UWORD   *ps,                        // S配列実Ptr
                long    *pd,                        // D配列実Ptr
                long    lut[],                      // LUT
                int     h                           // 水平幅
            );
    void    convert_w_l_y(                          // LUT変換:UWORD→long:垂直
                TypeArray   *ps,                    // S配列
                TypeArray   *pd,                    // D配列
                long        lut[]                   // LUT
            );
    int     convert_w_l(                            // LUT変換:UWORD→long:基本
                TypeArray   *ps,                    // S配列
                TypeArray   *pd,                    // D配列
                TypeArray   *lut                    // LUT
            );
    void    convert_w_f_x(                          // LUT変換:UWORD→float:水平
                UWORD   *ps,                        // S配列実Ptr
                float   *pd,                        // D配列実Ptr
                float   lut[],                      // LUT
                int     h                           // 水平幅
            );
    void    convert_w_f_y(                          // LUT変換:UWORD→float:垂直
                TypeArray   *ps,                    // S配列
                TypeArray   *pd,                    // D配列
                float       lut[]                   // LUT
            );
    int     convert_w_f(                            // LUT変換:UWORD→float:基本
                TypeArray   *ps,                    // S配列
                TypeArray   *pd,                    // D配列
                TypeArray   *lut                    // LUT
            );
    void    convert_w_d_x(                          // LUT変換:UWORD→double:水平
                UWORD   *ps,                        // S配列実Ptr
                double  *pd,                        // D配列実Ptr
                double  lut[],                      // LUT
                int     h                           // 水平幅
            );
    void    convert_w_d_y(                          // LUT変換:UWORD→double:垂直
                TypeArray   *ps,                    // S配列
                TypeArray   *pd,                    // D配列
                double      lut[]                   // LUT
            );
    int     convert_w_d(                            // LUT変換:UWORD→double:基本
                TypeArray   *ps,                    // S配列
                TypeArray   *pd,                    // D配列
                TypeArray   *lut                    // LUT
            );
    int     convert_w(                              // LUT変換:UWORD→汎用
                TypeArray   *ps,                    // S配列
                TypeArray   *pd,                    // D配列
                TypeArray   *lut                    // LUT配列
            );
    int     cvt_byte_b(                             // LUT変換:S=BYTE,LUT=BYTE
                TypeArray   *ps,                    // S配列
                TypeArray   *pd,                    // D配列
                BYTE        *lut                    // LUTポインタ
            );
    int     cvt_byte_w(                             // LUT変換:S=UWORD,LUT=BYTE
                TypeArray   *ps,                    // S配列
                TypeArray   *pd,                    // D配列
                BYTE        *lut                    // LUTポインタ
            );
    int     cvt_word_b(                             // LUT変換:S=BYTE,LUT=short
                TypeArray   *ps,                    // S配列
                TypeArray   *pd,                    // D配列
                short       *lut                    // LUTポインタ
            );
    int     cvt_word_w(                             // LUT変換:S=UWORD,LUT=short
                TypeArray   *ps,                    // S配列
                TypeArray   *pd,                    // D配列
                short       *lut                    // LUTポインタ
            );
    void    convertLineX(                           // 水平方向輝度変換
                TypeArray*  ps,                     //  S配列
                TypeArray*  pd,                     //  D配列
                BYTE        lut[]                   //  LUT(256×水平幅)
            );
    void    convertLineY(                           // 垂直方向輝度変換
                TypeArray*  ps,                     //  S配列
                TypeArray*  pd,                     //  D配列
                BYTE        lut[]                   //  LUT(256×垂直幅)
            );
    void    makeCvtLineLUTSingle(                   // LUT作成:輝度補正用
                BYTE        lut[],                  // LUTポインタ
                int         maxData                 // 最大値 1..1023
            );
    int     makeCvtLineLUT(                         // LUT作成:輝度補正用
                BYTE        lut[],                  // LUT(256×水平/垂直幅)
                BYTE        tbl[],                  // 割合テーブル「0..255」
                int         len                     // 水平/垂直幅
            );
    int     makeCvtLineLUT(                         // LUT作成:輝度補正用
                BYTE        lut[],                  // LUT(256×水平/垂直幅)
                UWORD       tbl[],                  // 割合テーブル「0..1023」
                int         len                     // 水平/垂直幅
            );
    void    BinarizationMyselfBase(                 // 自身2値化:水平方向:BYTE
                BYTE        *p,                     // 画像ポインタ
                int         h,                      // 水平幅
                int         data                    // 出力値:≠0時
            );
    void    BinarizationNonZeoBase(                 // 2値化:水平方向:BYTE
                BYTE        *ps,                    // S画像ポインタ
                BYTE        *pd,                    // D画像ポインタ
                int         h,                      // 水平幅
                int         data                    // 出力値:≠0時
            );
    void    BinarizationXYBase(                     // 2値化:水平方向:BYTE:部分
                BYTE        *ps,                    // S画像ポインタ
                BYTE        *pd,                    // D画像ポインタ
                int         h,                      // 水平幅
                int         t,                      // しきい値 0..255
                int         data = 255,             // 出力値:高位
                int         low = 0                 // 出力値:低位
            );
    void    ConvertRgbToMonoBase(                   // カラー変換(RGB→輝度):水平方向
                BYTE*       pr,                     //  ポインタ:赤
                BYTE*       pg,                     //  ポインタ:緑
                BYTE*       pb,                     //  ポインタ:青
                BYTE*       pd,                     //  ポインタ:結果
                int         h );                    //  画像の水平サイズ
    void    ConvertRgbToDiffBase(                   // カラー変換(RGB→色差):水平方向
                BYTE*       pr,                     //  ポインタ:赤
                BYTE*       pg,                     //  ポインタ:緑
                BYTE*       pb,                     //  ポインタ:青
                BYTE*       pY,                     //  ポインタ:結果:輝度
                char*       pRY,                    //  ポインタ:結果:R-Y
                char*       pBY,                    //  ポインタ:結果:B-Y
                int         h );                    //  画像の水平サイズ
    void    ConvertDiffToRgbBase(                   // カラー変換(色差→RGB):水平方向
                BYTE*       pY,                     //  ポインタ:輝度
                char*       pRY,                    //  ポインタ:R-Y
                char*       pBY,                    //  ポインタ:B-Y
                BYTE*       pr,                     //  ポインタ:結果:赤
                BYTE*       pg,                     //  ポインタ:結果:緑
                BYTE*       pb,                     //  ポインタ:結果:青
                int         h );                    //  画像の水平サイズ
    void    ConvertBmpToMonoBase(                   // カラー変換(BmpBGR→輝度):水平方向
                BYTE*       pbgr,                   //  ポインタ:青緑赤
                BYTE*       pd,                     //  ポインタ:結果
                int         h );                    //  画像の水平サイズ
    void    ConvertBmpToSingleBase(                 // カラー変換(BmpBGR→(単独の赤,緑,青)):水平方向
                BYTE*       pbgr,                   //  ポインタ:青緑赤
                BYTE*       pd,                     //  ポインタ:単独の赤,緑,青
                int         sel,                    //  0:赤,1:緑,2:青
                int         h );                    //  画像の水平サイズ

    void    EraseMinusImageBase(                    // 負画像消去:水平方向
                char        *p,                     //  画像ポインタ
                int         h );                    //  画像の水平サイズ

    int     make_lut_3_xy(                          // LUT作成:座標間直線用座標取出
                BYTE        lut[],                  // 作成するLUT
                int         *ptx,                   // x座標TablePtr
                int         *pty,                   // y座標TablePtr
                int         l,                      // 上記の組の数
                int         size                    // LUTの大きさ
            );
    int     make_lut_4_xy(                          // LUT作成:座標間曲線用座標取出
                BYTE        lut[],                  // 作成するLUT
                int         tblx[],                 // x座標Table
                int         tbly[],                 // y座標Table
                int         l                       // 上記の組の数
            );
    void    curve_lut(                              // LUT作成:任意曲線:基本部
                BYTE        lut[],                  // LUT
                int         tblx[],                 // x座標Table
                int         tbly[],                 // y座標Table
                int         sw                      // -1:前、0:中、1:後
            );
    int     make_lut_xy(                            // LUT作成:直線/曲線座標取出
                BYTE        lut[],                  // 作成するLUT
                int         k,                      // 3:直線/4:曲線
                int         *ptr_arg,               // 引数Ptr
                int         l,                      // 上記の引数の数
                int         size                    // LUTの大きさ
            );
    void    set_lut(                                // LUT作成:コピー/反転コピー
                const BYTE  *pat,                   // 元パターンのポインタ
                BYTE        lut[],                  // 反転するLUT
                int         sw                      // 反転sw(0:無/1:反転)
            );
    void    lut_6_0(                                // LUT作成:疑似カラー:8色
                BYTE        *lut,                   // 作成するLUTへのPtr
                int         col                     // 色選択子 0:R,1:G,2:B
            );
    void    lut_6_1(                                // LUT作成:疑似カラー:16色
                BYTE        *lut,                   // 作成するLUTへのPtr
                int         col                     // 色選択子 0:R,1:G,2:B
            );
    void    lut_6_23_base(                          // LUT:疑似Color寒暖/色相傾斜
                BYTE        lut[],                  // 作成するLUT
                const short *pt                     // 傾斜PatternTablePtr
            );
    void    lut_6_2(                                // LUT作成:疑似:寒色→暖色
                BYTE        *lut,                   // 作成するLUTへのPtr
                int         col                     // 色選択子 0:R,1:G,2:B
            );
    void    lut_6_3(                                // LUT作成:色相、赤→黄→青→紫
                BYTE        *lut,                   // 作成するLUTへのPtr
                int         col                     // 色選択子 0:R,1:G,2:B
            );
    void    lut_6_4(                                // LUT作成:疑似:パターンの圧縮
                BYTE        lut[],                  // 作成するLUT
                int         n                       // 色圧縮 0: 32,1: 64
            );                                      //        2:128,3:256
    void    lut_6_10_11_base(                       // LUT作成:色抽出表示用:基本
                BYTE        lut[],                  // 作成するLUT
                const BYTE  *pt                     // 8色パターンテーブル
            );
    void    lut_6_10(                               // LUT作成:色抽出表示用:RGB
                BYTE        lut[],                  // 作成するLUT
                int         col                     // 色選択子 0:R,1:G,2:B
            );
    void    lut_6_11(                               // LUT作成:色抽出表示用:色差
                BYTE        lut[],                  // 作成するLUT
                int         col                     // 色選択子 0:輝度
                                                    //          1:RY
            );                                      //          2:BY
private:

    void    sort_key(                               // キー付き昇順ソート
                TypeSort        *pl,                // データの左側Ptr
                TypeSort        *pr                 // データの右側Ptr
            );
    void    sort_key_rev(                           // キー付き降順ソート
                TypeSort        *pl,                // データの左側Ptr
                TypeSort        *pr                 // データの右側Ptr
            );
    void    hist_byte(                              // HistSort用ヒストグラム:BYTE
                int             hist[],             // ヒストグラム配列
                BYTE            *p,                 // データ配列のPtr
                int             l                   // 配列のサイズ
            );
    void    sort_byte_hist(                         // HistSort:BYTE
                int             sw,                 // 0:昇順、1:降順
                BYTE            *p,                 // データ配列のPtr
                int             l                   // 配列のサイズ
            );
    void    sort_byte_0(                            // 昇順ソート:BYTE
                BYTE            *pl,                // データの左側Ptr
                BYTE            *pr                 // データの右側Ptr
            );
    void    sort_byte_1(                            // 降順ソート:BYTE
                BYTE            *pl,                // データの左側Ptr
                BYTE            *pr                 // データの右側Ptr
            );
    void    sort_short_0(                           // 昇順ソート:short
                short           *pl,                // データの左側Ptr
                short           *pr                 // データの右側Ptr
            );
    void    sort_short_1(                           // 降順ソート:short
                short           *pl,                // データの左側Ptr
                short           *pr                 // データの右側Ptr
            );
    void    sort_long_0(                            // 昇順ソート:long
                long            *pl,                // データの左側Ptr
                long            *pr                 // データの右側Ptr
            );
    void    sort_long_1(                            // 降順ソート:long
                long            *pl,                // データの左側Ptr
                long            *pr                 // データの右側Ptr
            );
    void    sort_long_0_key(                        // 昇順KeySort:Key=long,ix=short
                long            *pl,                // KeyDataの左側Ptr
                long            *pr,                // KeyDataの右側Ptr
                short           *plx,               // 添字Data左側Ptr
                short           *prx                // 添字Data右側Ptr
            );
    void    sort_long_1_key(                        // 降順KeySort:Key=long,ix=short
                long            *pl,                // KeyDataの左側Ptr
                long            *pr,                // KeyDataの右側Ptr
                short           *plx,               // 添字Data左側Ptr
                short           *prx                // 添字Data右側Ptr
            );
    void    sort_float_0(                           // 昇順ソート:float
                float           *pl,                // データの左側Ptr
                float           *pr                 // データの右側Ptr
            );
    void    sort_float_1(                           // 降順ソート:float
                float           *pl,                // データの左側Ptr
                float           *pr                 // データの右側Ptr
            );
    void    sort_float_0_key(                       // 昇順KeySort:Key=float,ix=short
                float           *pl,                // KeyDataの左側Ptr
                float           *pr,                // KeyDataの右側Ptr
                short           *plx,               // 添字Data左側Ptr
                short           *prx                // 添字Data右側Ptr
            );
    void    sort_float_1_key(                       // 降順KeySort:Key=float,ix=short
                float           *pl,                // KeyDataの左側Ptr
                float           *pr,                // KeyDataの右側Ptr
                short           *plx,               // 添字Data左側Ptr
                short           *prx                // 添字Data右側Ptr
            );
    void    sort_double_0(                          // 昇順ソート:double
                double          *pl,                // データの左側Ptr
                double          *pr                 // データの右側Ptr
            );
    void    sort_double_1(                          // 降順ソート:double
                double          *pl,                // データの左側Ptr
                double          *pr                 // データの右側Ptr
            );
    void    sort_double_0_key(                      // 昇順KeySort:Key=double,ix=short
                double          *pl,                // KeyDataの左側Ptr
                double          *pr,                // KeyDataの右側Ptr
                short           *plx,               // 添字Data左側Ptr
                short           *prx                // 添字Data右側Ptr
            );
    void    sort_double_1_key(                      // 降順KeySort:Key=double,ix=short
                double          *pl,                // KeyDataの左側Ptr
                double          *pr,                // KeyDataの右側Ptr
                short           *plx,               // 添字Data左側Ptr
                short           *prx                // 添字Data右側Ptr
            );
    void    sort_int64_0(                           // 昇順ソート:64Bit整数
                __int64         *pl,                // データの左側Ptr
                __int64         *pr                 // データの右側Ptr
            );
    void    sort_int64_1(                           // 降順ソート:64Bit整数
                __int64         *pl,                // データの左側Ptr
                __int64         *pr                 // データの右側Ptr
            );
    void    sort_int64_0_key(                       // 昇順KeySort:Key=64Bit整数,ix=short
                __int64         *pl,                // KeyDataの左側Ptr
                __int64         *pr,                // KeyDataの右側Ptr
                short           *plx,               // 添字Data左側Ptr
                short           *prx                // 添字Data右側Ptr
            );
    void    sort_int64_1_key(                       // 降順KeySort:Key=64Bit整数,ix=short
                __int64         *pl,                // KeyDataの左側Ptr
                __int64         *pr,                // KeyDataの右側Ptr
                short           *plx,               // 添字Data左側Ptr
                short           *prx                // 添字Data右側Ptr
            );
    void    sortTypeCorr0(                          // 昇順ソート:TypeCorr
                TypeCorr        *pl,                // データの左側Ptr
                TypeCorr        *pr                 // データの右側Ptr
            );
    void    sortTypeCorr1(                          // 降順ソート:TypeCorr
                TypeCorr        *pl,                // データの左側Ptr
                TypeCorr        *pr                 // データの右側Ptr
            );
    void    sortTypeCorrIX0(                        // 昇順ソート:TypeCorrIX
                TypeCorrIX      *pl,                // データの左側Ptr
                TypeCorrIX      *pr                 // データの右側Ptr
            );
    void    sortTypeCorrIX1(                        // 降順ソート:TypeCorrIX
                TypeCorrIX      *pl,                // データの左側Ptr
                TypeCorrIX      *pr                 // データの右側Ptr
            );
    void    sortXTypeXY0(                           // 昇順ソート:TypeXY:X座標
                TypeXY          *pl,                // データの左側Ptr
                TypeXY          *pr                 // データの右側Ptr
            );
    void    sortXTypeXY1(                           // 降順ソート:TypeXY:X座標
                TypeXY          *pl,                // データの左側Ptr
                TypeXY          *pr                 // データの右側Ptr
            );
    void    sortYTypeXY0(                           // 昇順ソート:TypeXY:Y座標
                TypeXY          *pl,                // データの左側Ptr
                TypeXY          *pr                 // データの右側Ptr
            );
    void    sortYTypeXY1(                           // 降順ソート:TypeXY:Y座標
                TypeXY          *pl,                // データの左側Ptr
                TypeXY          *pr                 // データの右側Ptr
            );
    void    sortXTypeXYF0(                          // 昇順ソート:TypeXYF:X座標
                TypeXYF         *pl,                // データの左側Ptr
                TypeXYF         *pr                 // データの右側Ptr
            );
    void    sortXTypeXYF1(                          // 降順ソート:TypeXYF:X座標
                TypeXYF         *pl,                // データの左側Ptr
                TypeXYF         *pr                 // データの右側Ptr
            );
    void    sortYTypeXYF0(                          // 昇順ソート:TypeXYF:Y座標
                TypeXYF         *pl,                // データの左側Ptr
                TypeXYF         *pr                 // データの右側Ptr
            );
    void    sortYTypeXYF1(                          // 降順ソート:TypeXYF:Y座標
                TypeXYF         *pl,                // データの左側Ptr
                TypeXYF         *pr                 // データの右側Ptr
            );
    void    sortXTypeXYD0(                          // 昇順ソート:TypeXYD:X座標
                TypeXYD         *pl,                // データの左側Ptr
                TypeXYD         *pr                 // データの右側Ptr
            );
    void    sortXTypeXYD1(                          // 降順ソート:TypeXYD:X座標
                TypeXYD         *pl,                // データの左側Ptr
                TypeXYD         *pr                 // データの右側Ptr
            );
    void    sortYTypeXYD0(                          // 昇順ソート:TypeXYD:Y座標
                TypeXYD         *pl,                // データの左側Ptr
                TypeXYD         *pr                 // データの右側Ptr
            );
    void    sortYTypeXYD1(                          // 降順ソート:TypeXYD:Y座標
                TypeXYD         *pl,                // データの左側Ptr
                TypeXYD         *pr                 // データの右側Ptr
            );
    void    sortXTypeXYHV0(                         // 昇順ソート:TypeXYHV:X座標
                TypeXYHV        *pl,                // データの左側Ptr
                TypeXYHV        *pr                 // データの右側Ptr
            );
    void    sortXTypeXYHV1(                         // 降順ソート:TypeXYHV:X座標
                TypeXYHV        *pl,                // データの左側Ptr
                TypeXYHV        *pr                 // データの右側Ptr
            );
    void    sortYTypeXYHV0(                         // 昇順ソート:TypeXYHV:Y座標
                TypeXYHV        *pl,                // データの左側Ptr
                TypeXYHV        *pr                 // データの右側Ptr
            );
    void    sortYTypeXYHV1(                         // 降順ソート:TypeXYHV:Y座標
                TypeXYHV        *pl,                // データの左側Ptr
                TypeXYHV        *pr                 // データの右側Ptr
            );
    void    sortXTypeXYHVIX0(                       // 昇順ソート:TypeXYHVIX:X座標
                TypeXYHVIX      *pl,                // データの左側Ptr
                TypeXYHVIX      *pr                 // データの右側Ptr
            );
    void    sortXTypeXYHVIX1(                       // 降順ソート:TypeXYHVIX:X座標
                TypeXYHVIX      *pl,                // データの左側Ptr
                TypeXYHVIX      *pr                 // データの右側Ptr
            );
    void    sortYTypeXYHVIX0(                       // 昇順ソート:TypeXYHVIX:Y座標
                TypeXYHVIX      *pl,                // データの左側Ptr
                TypeXYHVIX      *pr                 // データの右側Ptr
            );
    void    sortYTypeXYHVIX1(                       // 降順ソート:TypeXYHVIX:Y座標
                TypeXYHVIX      *pl,                // データの左側Ptr
                TypeXYHVIX      *pr                 // データの右側Ptr
            );
    void    sortAreaTypeSf0(                        // 昇順ソート:TypeSf:面積
                TypeSf          *pl,                // データの左側Ptr
                TypeSf          *pr                 // データの右側Ptr
            );
    void    sortAreaTypeSf1(                        // 降順ソート:TypeSf:面積
                TypeSf          *pl,                // データの左側Ptr
                TypeSf          *pr                 // データの右側Ptr
            );
    void    sortAreaTypeMB0(                        // 昇順ソート:TypeMB:面積
                TypeMB          *pl,                // データの左側Ptr
                TypeMB          *pr                 // データの右側Ptr
            );
    void    sortAreaTypeMB1(                        // 降順ソート:TypeMB:面積
                TypeMB          *pl,                // データの左側Ptr
                TypeMB          *pr                 // データの右側Ptr
            );
    void    sort_single(                            // 配列1個:ソート
                int             sw,                 // 0:昇順、1:降順
                TypeArray       *pa,                // 配列情報
                int             l                   // 配列のサイズ
            );

    int     eq_sort_byte(                           // MultSort用同一Data数算出:BYTE
                BYTE        *p,                     // ポインタ
                int         l                       // サイズ
            );
    int     eq_sort_short(                          // MultSort用同一Data数算出:short
                short       *p,                     // ポインタ
                int         l                       // サイズ
            );
    int     eq_sort_long(                           // MultSort用同一Data数算出:long
                long        *p,                     // ポインタ
                int         l                       // サイズ
            );
    int     eq_sort_float(                          // MultSort用同一Data数算出:float
                float       *p,                     // ポインタ
                int         l                       // サイズ
            );
    int     eq_sort_double(                         // MultSort用同一Data数算出:double
                double      *p,                     // ポインタ
                int         l                       // サイズ
            );
    int     eq_sort(                                // MultSort用同一データ数算出
                TypeArray   *pa,                    // 配列情報
                int         offset,                 // 先頭からのOffset
                int         l                       // 配列のサイズ
            );
    int     mult_sort(                              // マルチSORT
                BYTE        *ptrsw,                 // 0:昇順、1:降順
                TypeArray   *pa,                    // 配列1~100の情報
                int         n,                      // 配列の個数 1..100
                int         offset,                 // 先頭からのOffset
                int         l                       // 配列のサイズ
            );

            // 先頭配列をキーとして以降をそれに従って変更する場合のマルチソート
    int     sort_mult_short(                        // short配列群:内部添字=short
                int         sw,                     // 0:昇順、1:降順
                short       *pkey,                  // 配列情報:キー
                short       **pa,                   // 配列情報:従属
                int         n,                      // 配列個数 1..100
                int         offset,                 // 先頭からのOffset
                int         l                       // 配列のサイズ
            );
    int     sort_mult_short_ext(                    // short配列群:内部添字=short
                int         sw,                     // 0:昇順、1:降順
                short       *pkey,                  // 配列情報:キー
                short       **pa,                   // 配列情報:従属
                int         n,                      // 配列個数 1..100
                int         offset,                 // 先頭からのOffset
                int         l                       // 配列のサイズ
            );
    int     mult_sort_short(                        // マルチソートshort配列群用
                BYTE        *ptrsw,                 // 0:昇順、1:降順
                short       **pa,                   // 配列1~100の情報
                int         n,                      // 配列の個数 1..100
                int         offset,                 // 先頭からのOffset
                int         l                       // 配列のサイズ
            );

    void    sort_byte_0_key_ext(                    // 昇順KeySort:Key=BYTE,ix=int
                BYTE        *pl,                    // KeyDataの左側Ptr
                BYTE        *pr,                    // KeyDataの右側Ptr
                int         *plx,                   // 添字Data左側Ptr
                int         *prx                    // 添字Data右側Ptr
            );
    void    sort_byte_1_key_ext(                    // 降順KeySort:Key=BYTE,ix=int
                BYTE        *pl,                    // KeyDataの左側Ptr
                BYTE        *pr,                    // KeyDataの右側Ptr
                int         *plx,                   // 添字Data左側Ptr
                int         *prx                    // 添字Data右側Ptr
            );
    void    sort_short_0_key_ext(                   // 昇順KeySort:Key=short,ix=int
                short       *pl,                    // KeyDataの左側Ptr
                short       *pr,                    // KeyDataの右側Ptr
                int         *plx,                   // 添字Data左側Ptr
                int         *prx                    // 添字Data右側Ptr
            );
    void    sort_short_1_key_ext(                   // 降順KeySort:Key=short,ix=int
                short       *pl,                    // KeyDataの左側Ptr
                short       *pr,                    // KeyDataの右側Ptr
                int         *plx,                   // 添字Data左側Ptr
                int         *prx                    // 添字Data右側Ptr
            );
    void    sort_long_0_key_ext(                    // 昇順KeySort:Key=long,ix=int
                long        *pl,                    // KeyDataの左側Ptr
                long        *pr,                    // KeyDataの右側Ptr
                int         *plx,                   // 添字Data左側Ptr
                int         *prx                    // 添字Data右側Ptr
            );
    void    sort_long_1_key_ext(                    // 降順KeySort:Key=long,ix=int
                long        *pl,                    // KeyDataの左側Ptr
                long        *pr,                    // KeyDataの右側Ptr
                int         *plx,                   // 添字Data左側Ptr
                int         *prx                    // 添字Data右側Ptr
            );
    void    sort_float_0_key_ext(                   // 昇順KeySort:Key=float,ix=int
                float       *pl,                    // KeyDataの左側Ptr
                float       *pr,                    // KeyDataの右側Ptr
                int         *plx,                   // 添字Data左側Ptr
                int         *prx                    // 添字Data右側Ptr
            );
    void    sort_float_1_key_ext(                   // 降順KeySort:Key=float,ix=int
                float       *pl,                    // KeyDataの左側Ptr
                float       *pr,                    // KeyDataの右側Ptr
                int         *plx,                   // 添字Data左側Ptr
                int         *prx                    // 添字Data右側Ptr
            );
    void    sort_double_0_key_ext(                  // 昇順KeySort:Key=double,ix=int
                double      *pl,                    // KeyDataの左側Ptr
                double      *pr,                    // KeyDataの右側Ptr
                int         *plx,                   // 添字Data左側Ptr
                int         *prx                    // 添字Data右側Ptr
            );
    void    sort_double_1_key_ext(                  // 降順KeySort:Key=double,ix=int
                double      *pl,                    // KeyDataの左側Ptr
                double      *pr,                    // KeyDataの右側Ptr
                int         *plx,                   // 添字Data左側Ptr
                int         *prx                    // 添字Data右側Ptr
            );
    void    sort_int64_0_key_ext(                   // 昇順KeySort:Key=64Bit整数,ix=int
                __int64     *pl,                    // KeyDataの左側Ptr
                __int64     *pr,                    // KeyDataの右側Ptr
                int         *plx,                   // 添字Data左側Ptr
                int         *prx                    // 添字Data右側Ptr
            );
    void    sort_int64_1_key_ext(                   // 降順KeySort:Key=64Bit整数,ix=int
                __int64     *pl,                    // KeyDataの左側Ptr
                __int64     *pr,                    // KeyDataの右側Ptr
                int         *plx,                   // 添字Data左側Ptr
                int         *prx                    // 添字Data右側Ptr
            );
private:
    void            make_134_pattern_8(             //
        TypeArray   *pd,                            // D配列
        int         init_data,                      // 初期値データ
        int         init_inc );                     // 初期値増加値
    void            make_134_pattern_16(            //
        TypeArray   *pd,                            // D配列
        int         init_data,                      // 初期値データ
        int         init_inc );                     // 初期値増加値
    void            make_134_pattern_32(            //
        TypeArray   *pd,                            // D配列
        int         init_data,                      // 初期値データ
        int         init_inc );                     // 初期値増加値
    int             make_134_pattern(               //
        TypeArray   *pd,                            // D配列
        int         data,                           // データ
        int         inc );                          // 増加値
    int             make2pattern(                   //
        TypeArray   *pd,                            // D配列
        int         data );                         // 初期値データ
    void            make_56_pattern(                //
        TypeArray   *pd,                            // D配列
        int         x,                              // x座標始点
        int         y,                              // y座標始点
        int         h,                              // 水平幅
        int         v,                              // 垂直幅
        int         d );                            // 書き込みデータ
    int             make5pattern(                   //
        TypeArray   *pd,                            // D配列
        int         color );                        // 色の選択子
    int             make6pattern(                   //
        TypeArray   *pd,                            // D配列
        int         color );                        // 色の選択子
private:            // 拡大・縮小
    void            magnifyX1(                      //
        int         zh,                             // 水平拡大率 1..10
        BYTE        *ps,                            // S配列実Ptr
        BYTE        *pd,                            // D配列実Ptr
        int         sh,                             // S配列水平幅
        int         dh );                           // D配列水平幅
    void            magnifyX2(                      //
        int         zh,                             // 水平拡大率 1..10
        BYTE        *ps,                            // S配列実Ptr
        BYTE        *pd,                            // D配列実Ptr
        int         sh,                             // S配列水平幅
        int         dh,                             // D配列水平幅
        int         dl );                           // 増加幅:D
    void            magnifyX3(                      //
        int         zh,                             // 水平拡大率 1..10
        BYTE        *ps,                            // S配列実Ptr
        BYTE        *pd,                            // D配列実Ptr
        int         sh,                             // S配列水平幅
        int         dh,                             // D配列水平幅
        int         dl );                           // 増加幅:D
    void            magnifyXX(                      //
        int         zh,                             // 水平拡大率 1..10
        int         zv,                             // 垂直拡大率 4..10
        BYTE        *ps,                            // S配列実Ptr
        BYTE        *pd,                            // D配列実Ptr
        int         sh,                             // S配列水平幅
        int         dh,                             // D配列水平幅
        int         dl );                           // 増加幅:D
    void            magnifyX(                       //
        int         zh,                             // 水平拡大率 1..10
        int         zv,                             // 垂直拡大率 1..10
        BYTE        *ps,                            // S配列実Ptr
        BYTE        *pd,                            // D配列実Ptr
        int         sh,                             // S配列水平幅
        int         dh,                             // D配列水平幅
        int         dl );                           // 増加幅:D
    void            magnifyXExt(                    // X方向拡大:拡張版
        BYTE        *buf,                           // 作業用バッファー
        int         zh,                             // 水平拡大率 1..10
        int         zv,                             // 垂直拡大率 1..10
        BYTE        *ps,                            // S配列実Ptr
        BYTE        *pd,                            // D配列実Ptr
        int         sh,                             // S配列水平幅
        int         dh,                             // D配列水平幅
        int         dl,                             // 増加幅:D
        int         dataSize );                     // 画素サイズ(1,2,3...)
    void            magnifyXExtColor(               // X方向拡大:カラー拡張版
        BYTE        *buf,                           // 作業用バッファー
        int         zh,                             // 水平拡大率 1..10
        int         zv,                             // 垂直拡大率 1..10
        BYTE        *ps,                            // S配列実Ptr
        BYTE        *pd,                            // D配列実Ptr
        int         sh,                             // S配列水平幅
        int         dh,                             // D配列水平幅
        int         dl );                           // 増加幅:D
    void            makeMagnifyFX(                  // 拡大/縮小X座標テーブル作成
        short       *ptbl,                          // x座標TablePtr
        double      zh,                             // 水平拡大率
        int         h,                              // 水平幅
        int         dataSize );                     // 画素サイズ(1,2,3...)
    void            magnifyFX8(                     // 拡大/縮小:8bit
        short       *ptbl,                          // x座標TablePtr
        BYTE        *ps,                            // S配列実Ptr
        BYTE        *pd,                            // D配列実Ptr
        int         h );                            // 水平幅
    void            magnifyFX16(                    // 拡大/縮小:16bit
        short       *ptbl,                          // x座標TablePtr
        short       *ps,                            // S配列実Ptr
        short       *pd,                            // D配列実Ptr
        int         h );                            // 水平幅
    void            magnifyFX32(                    // 拡大/縮小:32bit
        short       *ptbl,                          // x座標TablePtr
        long        *ps,                            // S配列実Ptr
        long        *pd,                            // D配列実Ptr
        int         h );                            // 水平幅
    void            makeMagnifyInterpolate(         // 拡大/縮小X座標テーブル作成
        short       tbl[],                          // 座標TablePtr
        float       tblR[],                         // 座標存在率TablePtr
        double      z,                              // 拡大縮小率
        int         len,                            // テーブル長
        int         lenOrg,                         // 拡大縮小前の長さ
        double      offset,                         // 微少座標オフセット
        int         dataSize );                     // 画素サイズ(1,2,3...)
    int             makeMagnifyInterpolate(         // 拡大/縮小X座標テーブル作成
        short       tbl[],                          // 座標TablePtr
        int         tblR[],                         // 座標存在率×2048TablePtr
        double      z,                              // 拡大縮小率
        int         len,                            // テーブル長
        int         lenOrg,                         // 拡大縮小前の長さ
        double      offset,                         // 微少座標オフセット
        int         dataSize );                     // 画素サイズ(1,2,3...)
    void            magnifyZoomInterpolateByte(     // 拡大・縮小:補間:BYTE
        TypeArray   *ps,                            // S配列
        TypeArray   *pd,                            // D配列
        int         h,                              // 水平幅
        int         v,                              // 垂直幅
        int         zhOffset,                       // 拡大縮尺時オフセット水平方向
        int         zvOffset,                       // 拡大縮尺時オフセット垂直方向
        short       tblX[],                         // X座標TablePtr
        short       tblY[],                         // Y座標TablePtr
        int         tblRX[],                        // X座標存在率×2048TablePtr
        int         tblRY[],                        // Y座標存在率×2048TablePtr
        int         dataSize );                     // 画素サイズ
    void            magnifyZoomInterpolateShort(    // 拡大・縮小:補間:Short
        TypeArray   *ps,                            // S配列
        TypeArray   *pd,                            // D配列
        int         h,                              // 水平幅
        int         v,                              // 垂直幅
        int         zhOffset,                       // 拡大縮尺時オフセット水平方向
        int         zvOffset,                       // 拡大縮尺時オフセット垂直方向
        short       tblX[],                         // X座標TablePtr
        short       tblY[],                         // Y座標TablePtr
        float       tblRX[],                        // X座標存在率TablePtr
        float       tblRY[],                        // Y座標存在率TablePtr
        int         dataSize );                     // 画素サイズ
    void            magnifyZoomInterpolateLong(     // 拡大・縮小:補間:Long
        TypeArray   *ps,                            // S配列
        TypeArray   *pd,                            // D配列
        int         h,                              // 水平幅
        int         v,                              // 垂直幅
        int         zhOffset,                       // 拡大縮尺時オフセット水平方向
        int         zvOffset,                       // 拡大縮尺時オフセット垂直方向
        short       tblX[],                         // X座標TablePtr
        short       tblY[],                         // Y座標TablePtr
        float       tblRX[],                        // X座標存在率TablePtr
        float       tblRY[],                        // Y座標存在率TablePtr
        int         dataSize );                     // 画素サイズ
    void            magnifyZoomInterpolateFloat(    // 拡大・縮小:補間:単精度
        TypeArray   *ps,                            // S配列
        TypeArray   *pd,                            // D配列
        int         h,                              // 水平幅
        int         v,                              // 垂直幅
        int         zhOffset,                       // 拡大縮尺時オフセット水平方向
        int         zvOffset,                       // 拡大縮尺時オフセット垂直方向
        short       tblX[],                         // X座標TablePtr
        short       tblY[],                         // Y座標TablePtr
        float       tblRX[],                        // X座標存在率TablePtr
        float       tblRY[],                        // Y座標存在率TablePtr
        int         dataSize );                     // 画素サイズ
    void            magnifyAverageX(                // 縮小:平均化:水平方向縮小
        TypeArray   *ps,                            // S配列
        TypeArray   *pd,                            // D配列
        int         zh,                             // 水平縮小率 1,2,3,4
        int         sw );                           // sw=偽→平均、真→合計
    void            magnifyAverageY(                // 縮小:平均化:垂直方向縮小
        TypeArray   *ps,                            // S配列
        TypeArray   *pd,                            // D配列
        int         zv,                             // 垂直縮小率 1,2,3,4
        int         sw );                           // sw=偽→平均、真→合計

private:            // 鏡像
    void            mirrorByte_1(                   // 鏡像BYTE:左右
        BYTE        *ps,                            // S配列実Adr
        BYTE        *pd,                            // D配列実Adr
        int         h,                              // 水平幅
        int         v,                              // 垂直幅
        int         sl,                             // Sの増加幅
        int         dl );                           // Dの増加幅
    void            mirrorByte_2(                   // 鏡像BYTE:上下
        BYTE        *ps,                            // S配列実Adr
        BYTE        *pd,                            // D配列実Adr
        int         h,                              // 水平幅
        int         v,                              // 垂直幅
        int         sl,                             // Sの増加幅
        int         dl );                           // Dの増加幅
    void            mirrorByteColor_1(              // 鏡像BYTE:左右
        BYTE        *ps,                            // S配列実Adr
        BYTE        *pd,                            // D配列実Adr
        int         h,                              // 水平幅
        int         v,                              // 垂直幅
        int         sl,                             // Sの増加幅
        int         dl );                           // Dの増加幅
    void            mirrorByteExt_1(                // 鏡像BYTE:左右
        BYTE        *ps,                            // S配列実Adr
        BYTE        *pd,                            // D配列実Adr
        int         h,                              // 水平幅
        int         v,                              // 垂直幅
        int         sl,                             // Sの増加幅
        int         dl,                             // Dの増加幅
        int         dataSize );                     // 画素サイズ
    void            mirrorByte(                     // 鏡像BYTE単位
        BYTE        *ps,                            // S配列の実Adr
        BYTE        *pd,                            // D配列の実Adr
        int         h,                              // 水平幅
        int         v,                              // 垂直幅
        int         sl,                             // Sの増加幅
        int         dl,                             // Dの増加幅
        int         k,                              // 1:左右反転
                                                    // 2:上下反転
                                                    // 3:上下左右反転
        int         dataSize );                     // 画素サイズ
    void            mirrorShort_1(                  // 鏡像:Short左右
        short       *ps,                            // S配列実Adr
        short       *pd,                            // D配列実Adr
        int         h,                              // 水平幅
        int         v,                              // 垂直幅
        int         sl,                             // Sの増加幅
        int         dl );                           // Dの増加幅
    void            mirrorShort_2(                  // 鏡像:Short上下
        short       *ps,                            // S配列実Adr
        short       *pd,                            // D配列実Adr
        int         h,                              // 水平幅
        int         v,                              // 垂直幅
        int         sl,                             // Sの増加幅
        int         dl );                           // Dの増加幅
    void            mirrorShortColor_1(             // 鏡像:Short左右
        short       *ps,                            // S配列実Adr
        short       *pd,                            // D配列実Adr
        int         h,                              // 水平幅
        int         v,                              // 垂直幅
        int         sl,                             // Sの増加幅
        int         dl );                           // Dの増加幅
    void            mirrorShortExt_1(               // 鏡像:Short左右
        short       *ps,                            // S配列実Adr
        short       *pd,                            // D配列実Adr
        int         h,                              // 水平幅
        int         v,                              // 垂直幅
        int         sl,                             // Sの増加幅
        int         dl,                             // Dの増加幅
        int         dataSize );                     // 画素サイズ
    void            mirrorShort(                    // 鏡像:Short単位
        short       *ps,                            // S配列の実Adr
        short       *pd,                            // D配列の実Adr
        int         h,                              // 水平幅
        int         v,                              // 垂直幅
        int         sl,                             // Sの増加幅
        int         dl,                             // Dの増加幅
        int         k,                              // 1:左右反転
                                                    // 2:上下反転
                                                    // 3:上下左右反転
        int         dataSize );                     // 画素サイズ
    void            mirrorLong_1(                   // 鏡像:Long左右
        long        *ps,                            // S配列実Adr
        long        *pd,                            // D配列実Adr
        int         h,                              // 水平幅
        int         v,                              // 垂直幅
        int         sl,                             // Sの増加幅
        int         dl );                           // Dの増加幅
    void            mirrorLong_2(                   // 鏡像:Long上下
        long        *ps,                            // S配列実Adr
        long        *pd,                            // D配列実Adr
        int         h,                              // 水平幅
        int         v,                              // 垂直幅
        int         sl,                             // Sの増加幅
        int         dl );                           // Dの増加幅
    void            mirrorLongColor_1(              // 鏡像:Long左右
        long        *ps,                            // S配列実Adr
        long        *pd,                            // D配列実Adr
        int         h,                              // 水平幅
        int         v,                              // 垂直幅
        int         sl,                             // Sの増加幅
        int         dl );                           // Dの増加幅
    void            mirrorLongExt_1(                // 鏡像:Long左右
        long        *ps,                            // S配列実Adr
        long        *pd,                            // D配列実Adr
        int         h,                              // 水平幅
        int         v,                              // 垂直幅
        int         sl,                             // Sの増加幅
        int         dl,                             // Dの増加幅
        int         dataSize );                     // 画素サイズ
    void            mirrorLong(                     // 鏡像:Long単位
        long        *ps,                            // S配列の実Adr
        long        *pd,                            // D配列の実Adr
        int         h,                              // 水平幅
        int         v,                              // 垂直幅
        int         sl,                             // Sの増加幅
        int         dl,                             // Dの増加幅
        int         k,                              // 1:左右反転
                                                    // 2:上下反転
                                                    // 3:上下左右反転
        int         dataSize );                     // 画素サイズ

(4-12-42)関数「int copy_even(
TypeArray* ps,TypeArray* pd);」

    int     copy_even(                              // 転送:同単位
                TypeArray   *ps,                    // S配列
                TypeArray   *pd );                  // D配列

「even」は、英単語「even」カタカナ語でイーブン、
ここでは、対等とかの意味を採用し元画像の
仮引数「TypeArray* ps,」と結果画像の
仮引数「TypeArray* pd」のバイトサイズ&整数・
実数型が同じ場合のコピー(転送)です!
★詳細★は、後で説明:【ファイル「CopyClear020.cpp」が
対象】します!

(4-12-43)関数「int copy_diff(
TypeArray* ps,TypeArray* pd);」

    int     copy_diff(                              // 転送:異単位
                TypeArray   *ps,                    // S配列
                TypeArray   *pd );                  // D配列

「diff」は、英単語「difference」の省略で「違い」を
意味!ここでは、元画像の仮引数「TypeArray* ps,」と
結果画像の仮引数「TypeArray* pd」のバイトサイズ&
整数・実数型が異なる場合のコピー(転送)です!
★詳細★は、後で説明:【ファイル「CopyClear020.cpp」が
対象】します!

(4-12-44)関数「void copy_h(
TypeArray* ps,TypeArray* pd,int y);」

    void    copy_h(                                 // 周囲転送用:水平線コピー
                TypeArray   *ps,                    // S配列
                TypeArray   *pd,                    // D配列
                int         y );                    // y座標

関数「CopyRoundImage()」のサブルーチンです!
「_h」は、水平線を示します!詰り、周囲コピーの水平線
部分です!
★詳細★は、後で説明:【ファイル「CopyClear020.cpp」が
対象】します!

(4-12-45)関数「void copy_v(
TypeArray* ps,TypeArray* pd,int x);」

    void    copy_v(                                 // 周囲転送用:垂直線コピー
                TypeArray   *ps,                    // S配列
                TypeArray   *pd,                    // D配列
                int         x );                    // x座標

関数「CopyRoundImage()」のサブルーチンです!
「_v」は、垂直線を示します!詰り、周囲コピーの垂直線
部分です!
★詳細★は、後で説明:【ファイル「CopyClear020.cpp」が
対象】します!

(4-12-46)関数「void copyFieldFrameBase(
long *ps,long *pd,int h,int v,int incS,int incD);」

    void    copyFieldFrameBase(                     // フィールドからフレーム画像への基本コピー
                long*       ps,                     // S:long単位ポインタ
                long*       pd,                     // D:long単位ポインタ
                int         h,                      // 水平幅:long単位
                int         v,                      // 垂直幅:S画像
                int         incS,                   // S:増加幅:long単位
                int         incD );                 // S:増加幅:long単位

関数「CopyFieldFrame()」のサブルーチンです!
★注意★仮引数「long *ps,long *pd,」と成って居る
のは、4バイト(32ビット)単位≪1バイト画素が4個≫
が使える条件下での高速処理用です!
★詳細★は、後で説明:【ファイル「CopyClear020.cpp」が
対象】します!

(4-12-47)関数「int repair0Image(
TypeArray* pa,int tbl[],int n);」

    int     repair0Image(                           // 欠陥画素修復:モード0:前詰め
                TypeArray*  pa,                     //  配列
                int         tbl[],                  //  欠陥場所テーブル
                int         n );                    //  欠陥個数

関数「RepairImage()」のサブルーチンです!
この「モード0」は、欠陥画素を前詰めで補正する方式です
★注意★特殊なラインセンサーCCD用に開発した特殊用途
です!
★詳細★は、後で説明:【ファイル「CopyClear020.cpp」が
対象】します!

(4-12-48)関数「int repair1Image(
TypeArray* pa,int tbl[],int n);」

    int     repair1Image(                           // 欠陥画素修復:モード1:補間
                TypeArray*  pa,                     //  配列
                int         tbl[],                  //  欠陥場所テーブル
                int         n );                    //  欠陥個数

関数「RepairImage()」のサブルーチンです!
この「モード1」は、欠陥画素を平均値で補正する方式です
★注意★特殊なラインセンサーCCD用に開発した特殊用途
です!
★詳細★は、後で説明:【ファイル「CopyClear020.cpp」が
対象】します!

(4-12-49)関数「void repair1Imagebyte(
TypeArray* pa,int x,int x0);」

    void    repair1ImageByte(                       // 欠陥画素修復:補間:BYTE
                TypeArray*  pa,                     //  配列
                int         x,                      //  欠陥場所
                int         x0 );                   //  欠陥場所の隣

関数「repair1Image()」のサブルーチンです!
この「BYTE 」は、画素が1バイト単位の場合の処理です!
★注意★特殊なラインセンサーCCD用に開発した特殊用途
です!
★詳細★は、後で説明:【ファイル「CopyClear020.cpp」が
対象】します!

(4-12-50)関数「void repair1ImageShort (TypeArray* pa,int x,int x0);」

    void    repair1ImageShort(                      // 欠陥画素修復:補間:2BYTE
                TypeArray*  pa,                     //  配列
                int         x,                      //  欠陥場所
                int         x0 );                   //  欠陥場所の隣

関数「repair1Image()」のサブルーチンです!
この「short 」は、画素が2バイト単位の場合の処理です!
★注意★特殊なラインセンサーCCD用に開発した特殊用途
です!
★詳細★は、後で説明:【ファイル「CopyClear020.cpp」が
対象】します!

(4-12-51)関数「void convert_b_b_x(
BYTE *ps,BYTE *pd,BYTE lut[],int h);」

    void    convert_b_b_x(                          // LUT変換:BYTE→BYTE:水平
                BYTE    *ps,                        // S配列実Ptr
                BYTE    *pd,                        // D配列実Ptr
                BYTE    lut[],                      // LUT
                int     h                           // 水平幅
            );

関数「int Convert()」のサブルーチンです!
「_b_b_x」は、画素単位で「BYTE型」から「BYTE型」へ
変換し、X座標(水平方向)に処理するサブルーチンです!
★詳細★は、後で説明:【ファイル「CopyClear030.cpp」が
対象】します!

(4-12-52)関数「void convert_b_b_y(
TypeArray* ps,TypeArray* pd,BYTE lut[]);」

    void    convert_b_b_y(                          // LUT変換:BYTE→BYTE:垂直
                TypeArray   *ps,                    // S配列
                TypeArray   *pd,                    // D配列
                BYTE        lut[]                   // LUT
            );

関数「int Convert()」のサブルーチンです!
「_b_b_y」は、画素単位で「BYTE型」から「BYTE型」へ
変換しますが、Y座標(垂直方向)に処理するサブルーチン
で無く関数「convert_b_b_x()」を内部で呼び出し全体とし
て画像単位で処理するサブルーチンです!
★詳細★は、後で説明:【ファイル「CopyClear030.cpp」が
対象】します!

(4-12-53)関数「int convert_b_b(
TypeArray* ps,TypeArray* pd,TypeArray* lut);」

    int     convert_b_b(                            // LUT変換:BYTE→BYTE:基本
                TypeArray   *ps,                    // S配列
                TypeArray   *pd,                    // D配列
                TypeArray   *lut                    // LUT
            );

関数「int Convert()」のサブルーチンです!
「_b_b」は、画素単位で「BYTE型」から「BYTE型」へ
変換するサブルーチンです!
★詳細★は、後で説明:【ファイル「CopyClear030.cpp」が
対象】します!

(4-12-54)関数「void convert_b_s_x(
BYTE *ps,short *pd,short lut[],int h);」

    void    convert_b_s_x(                          // LUT変換:BYTE→short:水平
                BYTE    *ps,                        // S配列実Ptr
                short   *pd,                        // D配列実Ptr
                short   lut[],                      // LUT
                int     h                           // 水平幅
            );

関数「int Convert()」のサブルーチンです!
「_b_s_x」は、画素単位で「BYTE型」から「short型」へ
変換し、X座標(水平方向)に処理するサブルーチンです!
★詳細★は、後で説明:【ファイル「CopyClear030.cpp」が
対象】します!

(4-12-55)関数「void convert_b_s_y(
TypeArray* ps,TypeArray* pd,short lut[]);」

    void    convert_b_s_y(                          // LUT変換:BYTE→short:垂直
                TypeArray   *ps,                    // S配列
                TypeArray   *pd,                    // D配列
                short       lut[]                   // LUT
            );

関数「int Convert()」のサブルーチンです!
「_b_s_y」は、画素単位で「BYTE型」から「short型」へ
変換しますが、Y座標(垂直方向)に処理するサブルーチン
で無く関数「convert_b_s_x()」を内部で呼び出し全体
として画像単位で処理するサブルーチンです!
★詳細★は、後で説明:【ファイル「CopyClear030.cpp」が
対象】します!

(4-12-56)関数「int convert_b_s(
TypeArray* ps,TypeArray* pd,TypeArray* lut);」

    int     convert_b_s(                            // LUT変換:BYTE→short:基本
                TypeArray   *ps,                    // S配列
                TypeArray   *pd,                    // D配列
                TypeArray   *lut                    // LUT
            );

関数「int Convert()」のサブルーチンです!
「_b_s」は、画素単位で「BYTE型」から「short型」へ
変換するサブルーチンです!
★詳細★は、後で説明:【ファイル「CopyClear030.cpp」が
対象】します!

(4-12-57)関数「convert_b_l_x(
BYTE *ps,long *pd,long lut[],int h);」

    void    convert_b_l_x(                          // LUT変換:BYTE→long:水平
                BYTE    *ps,                        // S配列実Ptr
                long    *pd,                        // D配列実Ptr
                long    lut[],                      // LUT
                int     h                           // 水平幅
            );

関数「int Convert()」のサブルーチンです!
「_b_l_x」は、画素単位で「BYTE型」から「long型」へ
変換し、X座標(水平方向)に処理するサブルーチンです!
★詳細★は、後で説明:【ファイル「CopyClear030.cpp」が
対象】します!

(4-12-58)関数「void convert_b_l_y(
TypeArray* ps,TypeArray* pd,long lut[]);」

    void    convert_b_l_y(                          // LUT変換:BYTE→long:垂直
                TypeArray   *ps,                    // S配列
                TypeArray   *pd,                    // D配列
                long        lut[]                   // LUT
            );

関数「int Convert()」のサブルーチンです!
「_b_l_y」は、画素単位で「BYTE型」から「long型」へ
変換しますが、Y座標(垂直方向)に処理するサブルーチン
で無く関数「convert_b_l_x()」を内部で呼び出し全体
として画像単位で処理するサブルーチンです!
★詳細★は、後で説明:【ファイル「CopyClear030.cpp」が
対象】します!

(4-12-59)関数「int convert_b_l(
TypeArray* ps,TypeArray* pd,TypeArray* lut);」

    int     convert_b_l(                            // LUT変換:BYTE→long:基本
                TypeArray   *ps,                    // S配列
                TypeArray   *pd,                    // D配列
                TypeArray   *lut                    // LUT
            );

関数「int Convert()」のサブルーチンです!
「_b_l」は、画素単位で「BYTE型」から「long型」へ
変換するサブルーチンです!
★詳細★は、後で説明:【ファイル「CopyClear030.cpp」が
対象】します!

(4-12-60)関数「convert_b_f_x(
BYTE ps,floatpd,floatlut[],int h);」

    void    convert_b_f_x(                          // LUT変換:BYTE→float:水平
                BYTE    *ps,                        // S配列実Ptr
                float   *pd,                        // D配列実Ptr
                float   lut[],                      // LUT
                int     h                           // 水平幅
            );

関数「int Convert()」のサブルーチンです!
「_b_f_x」は、画素単位で「BYTE型」から「float型」へ
変換し、X座標(水平方向)に処理するサブルーチンです!
★詳細★は、後で説明:【ファイル「CopyClear030.cpp」が
対象】します!

(4-12-61)関数「void convert_b_f_y(
TypeArray* ps,TypeArray* pd,floatlut[]);」

    void    convert_b_f_y(                          // LUT変換:BYTE→float:垂直
                TypeArray   *ps,                    // S配列
                TypeArray   *pd,                    // D配列
                float       lut[]                   // LUT
            );

関数「int Convert()」のサブルーチンです!
「_b_f_y」は、画素単位で「BYTE型」から「float型」へ
変換しますが、Y座標(垂直方向)に処理するサブルーチン
で無く関数「convert_b_f_x()」を内部で呼び出し全体
として画像単位で処理するサブルーチンです!
★詳細★は、後で説明:【ファイル「CopyClear030.cpp」が
対象】します!

(4-12-62)関数「int convert_b_f(
TypeArray* ps,TypeArray* pd,TypeArray* lut);」

    int     convert_b_f(                            // LUT変換:BYTE→float:基本
                TypeArray   *ps,                    // S配列
                TypeArray   *pd,                    // D配列
                TypeArray   *lut                    // LUT
            );

関数「int Convert()」のサブルーチンです!
「_b_f」は、画素単位で「BYTE型」から「float型」へ
変換するサブルーチンです!
★詳細★は、後で説明:【ファイル「CopyClear030.cpp」が
対象】します!

(4-12-63)関数「convert_b_d_x(
BYTE ps,floatpd,double lut[],int h);」

    void    convert_b_d_x(                          // LUT変換:BYTE→double:水平
                BYTE    *ps,                        // S配列実Ptr
                double  *pd,                        // D配列実Ptr
                double  lut[],                      // LUT
                int     h                           // 水平幅
            );

関数「int Convert()」のサブルーチンです!
「_b_d_x」は、画素単位で「BYTE型」から「double型」へ
変換し、X座標(水平方向)に処理するサブルーチンです!
★詳細★は、後で説明:【ファイル「CopyClear030.cpp」が
対象】します!

(4-12-64)関数「void convert_b_d_y(
TypeArray* ps,TypeArray* pd,double lut[]);」

    void    convert_b_d_y(                          // LUT変換:BYTE→double:垂直
                TypeArray   *ps,                    // S配列
                TypeArray   *pd,                    // D配列
                double      lut[]                   // LUT
            );

関数「int Convert()」のサブルーチンです!
「_b_d_y」は、画素単位で「BYTE型」から「double型」へ
変換しますが、Y座標(垂直方向)に処理するサブルーチン
で無く関数「convert_b_d_x()」を内部で呼び出し全
体として画像単位で処理するサブルーチンです!
★詳細★は、後で説明:【ファイル「CopyClear030.cpp」が
対象】します!

(4-12-65)関数「int convert_b_d(
TypeArray* ps,TypeArray* pd,TypeArray* lut);」

    int     convert_b_d(                            // LUT変換:BYTE→double:基本
                TypeArray   *ps,                    // S配列
                TypeArray   *pd,                    // D配列
                TypeArray   *lut                    // LUT
            );

関数「int Convert()」のサブルーチンです!
「_b_d」は、画素単位で「BYTE型」から「double型」へ
変換するサブルーチンです!
★詳細★は、後で説明:【ファイル「CopyClear030.cpp」が
対象】します!

(4-12-66)関数「int convert_b(
TypeArray* ps,TypeArray* pd,TypeArray* lut);」

    int     convert_b(                              // LUT変換:BYTE→汎用
                TypeArray   *ps,                    // S配列
                TypeArray   *pd,                    // D配列
                TypeArray   *lut                    // LUT配列
            );

関数「int Convert()」のサブルーチンです!
「_b」は、画素単位で「BYTE型」から「その他の型」へ
変換するサブルーチンです!
★詳細★は、後で説明:【ファイル「CopyClear030.cpp」が
対象】します!

(4-12-67)関数「void convert_w_b_x(
UWORD*ps,BYTE *pd,BYTE lut[],int h);」

    void    convert_w_b_x(                          // LUT変換:UWORD→BYTE:水平
                UWORD   *ps,                        // S配列実Ptr
                BYTE    *pd,                        // D配列実Ptr
                BYTE    lut[],                      // LUT
                int     h                           // 水平幅
            );

関数「int Convert()」のサブルーチンです!
「_w_b_x」は、画素単位で「UWORD型」から「BYTE型」へ
変換し、X座標(水平方向)に処理するサブルーチンです!
★詳細★は、後で説明:【ファイル「CopyClear030.cpp」が
対象】します!

(4-12-68)関数「void convert_w_b_y(
TypeArray* ps,TypeArray* pd,BYTE lut[],int h);」

    void    convert_w_b_y(                          // LUT変換:UWORD→BYTE:垂直
                TypeArray   *ps,                    // S配列
                TypeArray   *pd,                    // D配列
                BYTE        lut[]                   // LUT
            );

関数「int Convert()」のサブルーチンです!
「_w_b_y」は、画素単位で「UWORD型」から「BYTE型」へ
変換しますが、Y座標(垂直方向)に処理するサブルーチン
で無く関数「convert_w_b_x()」を内部で呼び出し全体と
して画像単位で処理するサブルーチンです!
★詳細★は、後で説明:【ファイル「CopyClear030.cpp」が
対象】します!

(4-12-69)関数「int convert_w_b(
TypeArray* ps,TypeArray* pd,TypeArray* lut);」

    int     convert_w_b(                            // LUT変換:UWORD→BYTE:基本
                TypeArray   *ps,                    // S配列
                TypeArray   *pd,                    // D配列
                TypeArray   *lut                    // LUT
            );

関数「int Convert()」のサブルーチンです!
「_w_b」は、画素単位で「UWORD型」から「BYTE型」へ
変換するサブルーチンです!
★詳細★は、後で説明:【ファイル「CopyClear030.cpp」が
対象】します!

(4-12-70)関数「void convert_w_s_x(
UWORD*ps,short *pd,short lut[],int h);」

    void    convert_w_s_x(                          // LUT変換:UWORD→short:水平
                UWORD   *ps,                        // S配列実Ptr
                short   *pd,                        // D配列実Ptr
                short   lut[],                      // LUT
                int     h                           // 水平幅
            );

関数「int Convert()」のサブルーチンです!
「_w_s_x」は、画素単位で「UWORD型」から「short型」へ
変換し、X座標(水平方向)に処理するサブルーチンです!
★詳細★は、後で説明:【ファイル「CopyClear030.cpp」が
対象】します!

(4-12-71)関数「void convert_w_s_y(
TypeArray* ps,TypeArray* pd,short lut[],int h);」

    void    convert_w_s_y(                          // LUT変換:UWORD→short:垂直
                TypeArray   *ps,                    // S配列
                TypeArray   *pd,                    // D配列
                short       lut[]                   // LUT
            );

関数「int Convert()」のサブルーチンです!
「_w_s_y」は、画素単位で「UWORD型」から「short型」へ
変換しますが、Y座標(垂直方向)に処理するサブルーチン
で無く関数「convert_w_s_x()」を内部で呼び出し全体
として画像単位で処理するサブルーチンです!
★詳細★は、後で説明:【ファイル「CopyClear030.cpp」が
対象】します!

(4-12-72)関数「int convert_w_s(
TypeArray* ps,TypeArray* pd,TypeArray* lut);」

    int     convert_w_s(                            // LUT変換:UWORD→short:基本
                TypeArray   *ps,                    // S配列
                TypeArray   *pd,                    // D配列
                TypeArray   *lut                    // LUT
            );

関数「int Convert()」のサブルーチンです!
「_w_s」は、画素単位で「UWORD型」から「short型」へ
変換するサブルーチンです!
★詳細★は、後で説明:【ファイル「CopyClear030.cpp」が
対象】します!

(4-12-73)関数「void convert_w_l_x(
UWORD*ps,long *pd,long lut[],int h);」

    void    convert_w_l_x(                          // LUT変換:UWORD→long:水平
                UWORD   *ps,                        // S配列実Ptr
                long    *pd,                        // D配列実Ptr
                long    lut[],                      // LUT
                int     h                           // 水平幅
            );

関数「int Convert()」のサブルーチンです!
「_w_l_x」は、画素単位で「UWORD型」から「long型」へ
変換し、X座標(水平方向)に処理するサブルーチンです!
★詳細★は、後で説明:【ファイル「CopyClear030.cpp」が
対象】します!

(4-12-74)関数「void convert_w_l_y(
TypeArray* ps,TypeArray* pd,long lut[],int h);」

    void    convert_w_l_y(                          // LUT変換:UWORD→long:垂直
                TypeArray   *ps,                    // S配列
                TypeArray   *pd,                    // D配列
                long        lut[]                   // LUT
            );

関数「int Convert()」のサブルーチンです!
「_w_l_y」は、画素単位で「UWORD型」から「long型」へ
変換しますが、Y座標(垂直方向)に処理するサブルーチン
で無く関数「convert_w_l_x()」を内部で呼び出し全体
として画像単位で処理するサブルーチンです!
★詳細★は、後で説明:【ファイル「CopyClear030.cpp」が
対象】します!

(4-12-75)関数「int convert_w_l(
TypeArray* ps,TypeArray* pd,TypeArray* lut);」

    int     convert_w_l(                            // LUT変換:UWORD→long:基本
                TypeArray   *ps,                    // S配列
                TypeArray   *pd,                    // D配列
                TypeArray   *lut                    // LUT
            );

関数「int Convert()」のサブルーチンです!
「_w_l」は、画素単位で「UWORD型」から「long型」へ
変換するサブルーチンです!
★詳細★は、後で説明:【ファイル「CopyClear030.cpp」が
対象】します!

(4-12-76)関数「void convert_w_f_x(
UWORD*ps,float*pd,float lut[],int h);」

    void    convert_w_f_x(                          // LUT変換:UWORD→float:水平
                UWORD   *ps,                        // S配列実Ptr
                float   *pd,                        // D配列実Ptr
                float   lut[],                      // LUT
                int     h                           // 水平幅
            );

関数「int Convert()」のサブルーチンです!
「_w_f_x」は、画素単位で「UWORD型」から「float型」へ
変換し、X座標(水平方向)に処理するサブルーチンです!
★詳細★は、後で説明:【ファイル「CopyClear030.cpp」が
対象】します!

(4-12-77)関数「void convert_w_f_y(
TypeArray* ps,TypeArray* pd,float lut[],int h);」

    void    convert_w_f_y(                          // LUT変換:UWORD→float:垂直
                TypeArray   *ps,                    // S配列
                TypeArray   *pd,                    // D配列
                float       lut[]                   // LUT
            );

関数「int Convert()」のサブルーチンです!
「_w_f_y」は、画素単位で「UWORD型」から「float型」へ
変換しますが、Y座標(垂直方向)に処理するサブルーチン
で無く関数「convert_w_f_x()」を内部で呼び出し全体
として画像単位で処理するサブルーチンです!
★詳細★は、後で説明:【ファイル「CopyClear030.cpp」が
対象】します!

(4-12-78)関数「int convert_w_f(
TypeArray* ps,TypeArray* pd,TypeArray* lut);」

    int     convert_w_f(                            // LUT変換:UWORD→float:基本
                TypeArray   *ps,                    // S配列
                TypeArray   *pd,                    // D配列
                TypeArray   *lut                    // LUT
            );

関数「int Convert()」のサブルーチンです!
「_w_f」は、画素単位で「UWORD型」から「float型」へ
変換するサブルーチンです!
★詳細★は、後で説明:【ファイル「CopyClear030.cpp」が
対象】します!

(4-12-79)関数「void convert_w_d_x(
UWORD*ps,double *pd,double lut[],int h);」

    void    convert_w_d_x(                          // LUT変換:UWORD→double:水平
                UWORD   *ps,                        // S配列実Ptr
                double  *pd,                        // D配列実Ptr
                double  lut[],                      // LUT
                int     h                           // 水平幅
            );

関数「int Convert()」のサブルーチンです!
「_w_d_x」は、画素単位で「UWORD型」から「double型」へ
変換し、X座標(水平方向)に処理するサブルーチンです!
★詳細★は、後で説明:【ファイル「CopyClear030.cpp」が
対象】します!

(4-12-80)関数「void convert_w_d_y(
TypeArray* ps,TypeArray* pd,double lut[]);」

    void    convert_w_d_y(                          // LUT変換:UWORD→double:垂直
                TypeArray   *ps,                    // S配列
                TypeArray   *pd,                    // D配列
                double      lut[]                   // LUT
            );

関数「int Convert()」のサブルーチンです!
「_w_d_y」は、画素単位で「UWORD型」から「double型」へ
変換しますが、Y座標(垂直方向)に処理するサブルーチン
で無く関数「convert_w_d_x()」を内部で呼び出し全体
として画像単位で処理するサブルーチンです!
★詳細★は、後で説明:【ファイル「CopyClear030.cpp」が
対象】します!

(4-12-81)関数「int convert_w_d(
TypeArray* ps,TypeArray* pd,TypeArray* lut);」

    int     convert_w_d(                            // LUT変換:UWORD→double:基本
                TypeArray   *ps,                    // S配列
                TypeArray   *pd,                    // D配列
                TypeArray   *lut                    // LUT
            );

関数「int Convert()」のサブルーチンです!
「_w_l」は、画素単位で「UWORD型」から「double型」へ
変換するサブルーチンです!
★詳細★は、後で説明:【ファイル「CopyClear030.cpp」が
対象】します!

(4-12-82)関数「int convert_w(
TypeArray* ps,TypeArray* pd,TypeArray* lut);」

    int     convert_w(                              // LUT変換:UWORD→汎用
                TypeArray   *ps,                    // S配列
                TypeArray   *pd,                    // D配列
                TypeArray   *lut                    // LUT配列
            );

関数「int Convert()」のサブルーチンです!
「_w」は、画素単位で「UWORD型」から「その他の型」へ
変換するサブルーチンです!
★詳細★は、後で説明:【ファイル「CopyClear030.cpp」が
対象】します!

(4-12-83)関数「int cvt_byte_b(
TypeArray* ps,TypeArray* pd,BYTE *lut);」

    int     cvt_byte_b(                             // LUT変換:S=BYTE,LUT=BYTE
                TypeArray   *ps,                    // S配列
                TypeArray   *pd,                    // D配列
                BYTE        *lut                    // LUTポインタ
            );

「cvt」は、「Convert」の省略で
「byte_b」は、元画像「TypeArray* ps,」と
「BYTE型」で変換するLUTも「BYTE型」に成る
関数「int Convert()」のサブルーチンです!
★詳細★は、後で説明:【ファイル「CopyClear030.cpp」が
対象】します!

(4-12-84)関数「int cvt_byte_w(
TypeArray* ps,TypeArray* pd,BYTE *lut);」

    int     cvt_byte_w(                             // LUT変換:S=UWORD,LUT=BYTE
                TypeArray   *ps,                    // S配列
                TypeArray   *pd,                    // D配列
                BYTE        *lut                    // LUTポインタ
            );

「cvt」は、「Convert」の省略で
「byte_w」は、元画像「TypeArray* ps,」と
「UWORD型」で変換するLUTが「BYTE型」に成る
関数「int Convert()」のサブルーチンです!
★詳細★は、後で説明:【ファイル「CopyClear030.cpp」が
対象】します!

(4-12-85)関数「int cvt_word_b(
TypeArray* ps,TypeArray* pd,short *lut);」

    int     cvt_word_b(                             // LUT変換:S=BYTE,LUT=short
                TypeArray   *ps,                    // S配列
                TypeArray   *pd,                    // D配列
                short       *lut                    // LUTポインタ
            );

「cvt」は、「Convert」の省略で
「word_b」は、元画像「TypeArray* ps,」が
「BYTE型」で変換するLUTが「short型と言う依り
UWORD型と2バイト単位」に成る
関数「int Convert()」のサブルーチンです!
★詳細★は、後で説明:【ファイル「CopyClear030.cpp」が
対象】します!

(4-12-86)関数「int cvt_word_w(
TypeArray* ps,TypeArray* pd,short lut);」

    int     cvt_word_w(                             // LUT変換:S=UWORD,LUT=short
                TypeArray   *ps,                    // S配列
                TypeArray   *pd,                    // D配列
                short       *lut                    // LUTポインタ
            );

「cvt」は、「Convert」の省略で
「word_b」は、元画像「TypeArray ps,」が
「UWORD型」で変換するLUTが「short型と言う依り
UWORD型と2バイト単位」に成る
関数「int Convert()」のサブルーチンです!
★詳細★は、後で説明:【ファイル「CopyClear030.cpp」が
対象】します!

(4-12-87)関数「void convertLineX(
TypeArray* ps,TypeArray* pd,BYTE lut[]);」

    void    convertLineX(                           // 水平方向輝度変換
                TypeArray*  ps,                     //  S配列
                TypeArray*  pd,                     //  D配列
                BYTE        lut[]                   //  LUT(256×水平幅)
            );

関数「int ConvertLine()」のサブルーチンです!
★注意★ここで「Line」名称は、「一次元配列」の意味
ではありません?!
特殊用途で「Lineライン=線分(縦方向・横方向)」の
意味です!
★詳細★は、後で説明:【ファイル「CopyClear030.cpp」が
対象】します!

(4-12-88)関数「void convertLineY(
TypeArray* ps,TypeArray* pd,BYTE lut[]);」

    void    convertLineY(                           // 垂直方向輝度変換
                TypeArray*  ps,                     //  S配列
                TypeArray*  pd,                     //  D配列
                BYTE        lut[]                   //  LUT(256×垂直幅)
            );

関数「int ConvertLine()」のサブルーチンです!
★注意★ここで「Line」名称は、「一次元配列」の意味
ではありません?!
特殊用途で「Lineライン=線分(縦方向・横方向)」の
意味です!
★詳細★は、後で説明:【ファイル「CopyClear030.cpp」が
対象】します!

(4-12-89)関数「void makeCvtLineLUTSingle(
BYTE lut[],int maxData);」

    void    makeCvtLineLUTSingle(                   // LUT作成:輝度補正用
                BYTE        lut[],                  // LUTポインタ
                int         maxData                 // 最大値 1..1023
            );

関数「int ConvertLine()」のサブルーチンです!
上記の関数用のLUTパターン発生用です!
★注意★ここで「Line」名称は、「一次元配列」の意味
ではありません?!
特殊用途で「Lineライン=線分(縦方向・横方向)」の
意味です!
★詳細★は、後で説明:【ファイル「CopyClear030.cpp」が
対象】します!

(4-12-90)関数「int makeCvtLineLUT(
BYTE lut[],BYTE tbl[],int len);」

    int     makeCvtLineLUT(                         // LUT作成:輝度補正用
                BYTE        lut[],                  // LUT(256×水平/垂直幅)
                BYTE        tbl[],                  // 割合テーブル「0..255」
                int         len                     // 水平/垂直幅
            );

関数「int ConvertLine()」のサブルーチンです!
上記の関数用のLUTパターン発生用です!
そして関数「void makeCvtLineLUTSingle()」を
サブルーチンとして使用します!
★注意★ここで「Line」名称は、「一次元配列」の意味
ではありません?!
特殊用途で「Lineライン=線分(縦方向・横方向)」の
意味です!
★備考★引数の型が異なるオーバーロード(多重定義)関数
が存在します!
★詳細★は、後で説明:【ファイル「CopyClear030.cpp」が
対象】します!

(4-12-91)関数「int makeCvtLineLUT(
BYTE lut[],UWORDtbl[],int len);」

    int     makeCvtLineLUT(                         // LUT作成:輝度補正用
                BYTE        lut[],                  // LUT(256×水平/垂直幅)
                UWORD       tbl[],                  // 割合テーブル「0..1023」
                int         len                     // 水平/垂直幅
            );

関数「int ConvertLine()」のサブルーチンです!
上記の関数用のLUTパターン発生用です!
そして関数「void makeCvtLineLUTSingle()」を
サブルーチンとして使用します!
★注意★ここで「Line」名称は、「一次元配列」の意味
ではありません?!
特殊用途で「Lineライン=線分(縦方向・横方向)」の
意味です!
★備考★引数の型が異なるオーバーロード(多重定義)関数
が存在します!
★詳細★は、後で説明:【ファイル「CopyClear030.cpp」が
対象】します!

(4-12-92)関数「void BinarizationMyselfBase(
BYTE *p,int h,int data);」

    void    BinarizationMyselfBase(                 // 自身2値化:水平方向:BYTE
                BYTE        *p,                     // 画像ポインタ
                int         h,                      // 水平幅
                int         data                    // 出力値:≠0時
            );

関数「BinarizationMyself()」のサブルーチンです!
2値化系のサブルーチンです!
★詳細★は、後で説明:【ファイル「CopyClear030.cpp」が
対象】します!

(4-12-93)関数「void BinarizationNonZeoBase(
BYTE *ps,BYTE *pd,int h,int data);」

    void    BinarizationNonZeoBase(                 // 2値化:水平方向:BYTE
                BYTE        *ps,                    // S画像ポインタ
                BYTE        *pd,                    // D画像ポインタ
                int         h,                      // 水平幅
                int         data                    // 出力値:≠0時
            );

関数「BinarizationNonZeo()」のサブルーチンです!
2値化系のサブルーチンです!
★詳細★は、後で説明:【ファイル「CopyClear030.cpp」が
対象】します!

(4-12-94)関数「void BinarizationXYBase(
BYTE *ps,BYTE *pd,
int h,int t,int data=255,int low=0);」

    void    BinarizationXYBase(                     // 2値化:水平方向:BYTE:部分
                BYTE        *ps,                    // S画像ポインタ
                BYTE        *pd,                    // D画像ポインタ
                int         h,                      // 水平幅
                int         t,                      // しきい値 0..255
                int         data = 255,             // 出力値:高位
                int         low = 0                 // 出力値:低位
            );

関数「BinarizationXY()」のサブルーチンです!
2値化系のサブルーチンです!
★詳細★は、後で説明:【ファイル「CopyClear030.cpp」が
対象】します!

(4-12-95)関数「void ConvertRgbToMonoBase(
BYTE *pr,BYTE *pg,BYTE *pb,BYTE *pd,int h);」

    void    ConvertRgbToMonoBase(                   // カラー変換(RGB→輝度):水平方向
                BYTE*       pr,                     //  ポインタ:赤
                BYTE*       pg,                     //  ポインタ:緑
                BYTE*       pb,                     //  ポインタ:青
                BYTE*       pd,                     //  ポインタ:結果
                int         h );                    //  画像の水平サイズ

関数「ConvertRgbToMono()」のサブルーチンです!
RGB3画像画素から輝度結果「BYTE *pd,」変換用の
基本関数です!
★詳細★は、後で説明:【ファイル「CopyClear030.cpp」が
対象】します!

(4-12-96)関数「void ConvertRgbToDiffBase(
BYTE *pr,BYTE *pg,BYTE pb,
BYTE pY,char*pRY,char*pBY,
int h);」

    void    ConvertRgbToDiffBase(                   // カラー変換(RGB→色差):水平方向
                BYTE*       pr,                     //  ポインタ:赤
                BYTE*       pg,                     //  ポインタ:緑
                BYTE*       pb,                     //  ポインタ:青
                BYTE*       pY,                     //  ポインタ:結果:輝度
                char*       pRY,                    //  ポインタ:結果:R-Y
                char*       pBY,                    //  ポインタ:結果:B-Y
                int         h );                    //  画像の水平サイズ

関数「ConvertRgbToDiff()」のサブルーチンです!
RGB3画像画素から色差画像画素結果
「BYTE *pY,char*pRY,char*pBY,」変換用の
基本関数です!
★注意★色差の「char*pRY,char*pBY,」と型が、
「char型」と符号有り(-128から127範囲)に成るのが
特徴です!
★詳細★は、後で説明:【ファイル「CopyClear030.cpp」が
対象】します!

(4-12-97)関数「void ConvertDiffToRgbBase(
BYTE *pY,char*pRY,char*pBY,
BYTE *pr,BYTE *pg,BYTE *pb,
int h);」

    void    ConvertDiffToRgbBase(                   // カラー変換(色差→RGB):水平方向
                BYTE*       pY,                     //  ポインタ:輝度
                char*       pRY,                    //  ポインタ:R-Y
                char*       pBY,                    //  ポインタ:B-Y
                BYTE*       pr,                     //  ポインタ:結果:赤
                BYTE*       pg,                     //  ポインタ:結果:緑
                BYTE*       pb,                     //  ポインタ:結果:青
                int         h );                    //  画像の水平サイズ

関数「ConvertDiffToRgb()」のサブルーチンです!
色差画像画素から結果RGB3画像画素
「BYTE *pr,BYTE *pg,BYTE *pb,」変換用の
基本関数です!
★注意★色差の「char*pRY,char*pBY,」と型が、
「char型」と符号有り(-128から127範囲)に成るのが
特徴です!
★詳細★は、後で説明:【ファイル「CopyClear030.cpp」が
対象】します!

(4-12-98)関数「void ConvertBmpToMonoBase(
BYTE *pbgr,BYTE *pd,int h);」

    void    ConvertBmpToMonoBase(                   // カラー変換(BmpBGR→輝度):水平方向
                BYTE*       pbgr,                   //  ポインタ:青緑赤
                BYTE*       pd,                     //  ポインタ:結果
                int         h );                    //  画像の水平サイズ

関数「ConvertBmpToMono()」のサブルーチンです!
BMP形式画像画素から結果モノクロ画像画素
「BYTE *pd,」変換用の基本関数です!
★詳細★は、後で説明:【ファイル「CopyClear030.cpp」が
対象】します!

(4-12-99)関数「void ConvertBmpToSingleBase(
BYTE *pbgr,BYTE *pd,int sel,int h);」

    void    ConvertBmpToSingleBase(                 // カラー変換(BmpBGR→(単独の赤,緑,青)):水平方向
                BYTE*       pbgr,                   //  ポインタ:青緑赤
                BYTE*       pd,                     //  ポインタ:単独の赤,緑,青
                int         sel,                    //  0:赤,1:緑,2:青
                int         h );                    //  画像の水平サイズ

関数「ConvertBmpToSingle()」のサブルーチンです!
BMP形式画像画素から結果モノクロ画像画素
「BYTE *pd,」変換用の基本関数です!
★注意★仮引数「int sel,」で変換するRGB3原色を
選択出来るのが特徴です!
★詳細★は、後で説明:【ファイル「CopyClear030.cpp」が
対象】します!

(4-12-89)関数「void EraseMinusImageBase(char*p,int h);」

    void    EraseMinusImageBase(                    // 負画像消去:水平方向
                char        *p,                     //  画像ポインタ
                int         h );                    //  画像の水平サイズ

関数「EraseMinusImage()」のサブルーチンです!
画素の負の値(-128から-1)画素を「0」に変換する
関数です!
★詳細★は、後で説明:【ファイル「CopyClear030.cpp」が
対象】します!

(4-12-101)関数「int make_lut_3_xy(
BYTE lut[],int *ptx,int *pty,int l,int size);」

    int     make_lut_3_xy(                          // LUT作成:座標間直線用座標取出
                BYTE        lut[],                  // 作成するLUT
                int         *ptx,                   // x座標TablePtr
                int         *pty,                   // y座標TablePtr
                int         l,                      // 上記の組の数
                int         size                    // LUTの大きさ
            );

関数「Make3Lut()」のサブルーチンです!
傾きを持ったLUTパターン作成用です!
★詳細★は、後で説明:【ファイル「CopyClear040.cpp」が
対象】します!

(4-12-102)関数「int make_lut_4_xy(
BYTE lut[],int tblx[],int tbly[],int l);」

    int     make_lut_4_xy(                          // LUT作成:座標間曲線用座標取出
                BYTE        lut[],                  // 作成するLUT
                int         tblx[],                 // x座標Table
                int         tbly[],                 // y座標Table
                int         l                       // 上記の組の数
            );

関数「Make4Lut()」のサブルーチンです!
傾きを持ったLUTパターン作成用です!
★注意★曲線的に考えた物ですが??
★詳細★は、後で説明:【ファイル「CopyClear040.cpp」が
対象】します!

(4-12-103)関数「void curve_lut(
BYTE lut[],int tblx[],int tbly[],int sw);」

    void    curve_lut(                              // LUT作成:任意曲線:基本部
                BYTE        lut[],                  // LUT
                int         tblx[],                 // x座標Table
                int         tbly[],                 // y座標Table
                int         sw                      // -1:前、0:中、1:後
            );

関数「make_lut_4_xy()」のサブルーチンです!
曲線的LUTパターン作成用です!
★注意★曲線的に考えた物ですが??詳細で残念な事を
説明する事に成るのかな??
★詳細★は、後で説明:【ファイル「CopyClear040.cpp」が
対象】します!

(4-12-104)関数「int make_lut_xy(
BYTE lut[],int k,int *ptr_arg,int l,int size);」

    int     make_lut_xy(                            // LUT作成:直線/曲線座標取出
                BYTE        lut[],                  // 作成するLUT
                int         k,                      // 3:直線/4:曲線
                int         *ptr_arg,               // 引数Ptr
                int         l,                      // 上記の引数の数
                int         size                    // LUTの大きさ
            );

関数「MakeLut()」のサブルーチンです!
傾きを持ったLUTパターン作成用です!
★詳細★は、後で説明:【ファイル「CopyClear040.cpp」が
対象】します!

(4-12-105)関数「void set_lut(
const BYTE *pat,BYTE lut[],int sw);」

    void    set_lut(                                // LUT作成:コピー/反転コピー
                const BYTE  *pat,                   // 元パターンのポインタ
                BYTE        lut[],                  // 反転するLUT
                int         sw                      // 反転sw(0:無/1:反転)
            );

関数「Make5Lut()」のサブルーチンです!
関数「Make8Lut()」のサブルーチンです!
パターンを上下逆さまにするルーチンです!
★注意★曲線的に考えた物ですが??
★詳細★は、後で説明:【ファイル「CopyClear040.cpp」が
対象】します!

(4-12-106)関数「void lut_6_0(
BYTE *lut,int col);」

    void    lut_6_0(                                // LUT作成:疑似カラー:8色
                BYTE        *lut,                   // 作成するLUTへのPtr
                int         col                     // 色選択子 0:R,1:G,2:B
            );

関数「Make6Lut()」のサブルーチンです!
★詳細★は、後で説明:【ファイル「CopyClear040.cpp」が
対象】します!

(4-12-107)関数「void lut_6_1(
BYTE *lut,int col);」

    void    lut_6_1(                                // LUT作成:疑似カラー:16色
                BYTE        *lut,                   // 作成するLUTへのPtr
                int         col                     // 色選択子 0:R,1:G,2:B
            );

関数「Make6Lut()」のサブルーチンです!
★詳細★は、後で説明:【ファイル「CopyClear040.cpp」が
対象】します!

(4-12-108)関数「void lut_6_23_base(
BYTE lut[],constshort *pt);」

    void    lut_6_23_base(                          // LUT:疑似Color寒暖/色相傾斜
                BYTE        lut[],                  // 作成するLUT
                const short *pt                     // 傾斜PatternTablePtr
            );

関数「Make6Lut()」のサブルーチンです!
★詳細★は、後で説明:【ファイル「CopyClear040.cpp」が
対象】します!

(4-12-109)関数「void lut_6_2(
BYTE *lut,int col);」

    void    lut_6_2(                                // LUT作成:疑似:寒色→暖色
                BYTE        *lut,                   // 作成するLUTへのPtr
                int         col                     // 色選択子 0:R,1:G,2:B
            );

関数「Make6Lut()」のサブルーチンです!
★詳細★は、後で説明:【ファイル「CopyClear040.cpp」が
対象】します!

(4-12-110)関数「void lut_6_3(
BYTE *lut,int col);」

    void    lut_6_3(                                // LUT作成:色相、赤→黄→青→紫
                BYTE        *lut,                   // 作成するLUTへのPtr
                int         col                     // 色選択子 0:R,1:G,2:B
            );

関数「Make6Lut()」のサブルーチンです!
★詳細★は、後で説明:【ファイル「CopyClear040.cpp」が
対象】します!

(4-12-111)関数「void lut_6_4(
BYTE lut[],int n);」

    void    lut_6_4(                                // LUT作成:疑似:パターンの圧縮
                BYTE        lut[],                  // 作成するLUT
                int         n                       // 色圧縮 0: 32,1: 64
            );                                      //        2:128,3:256

関数「Make6Lut()」のサブルーチンです!
★詳細★は、後で説明:【ファイル「CopyClear040.cpp」が
対象】します!

(4-12-112)関数「void lut_6_10_11_base(
BYTE lut[],constBYTE *pt);」

    void    lut_6_10_11_base(                       // LUT作成:色抽出表示用:基本
                BYTE        lut[],                  // 作成するLUT
                const BYTE  *pt                     // 8色パターンテーブル
            );

関数「Make6Lut()」のサブルーチンです!
★詳細★は、後で説明:【ファイル「CopyClear040.cpp」が
対象】します!

(4-12-113)関数「void lut_6_10(
BYTE lut[],int col);」

    void    lut_6_10(                               // LUT作成:色抽出表示用:RGB
                BYTE        lut[],                  // 作成するLUT
                int         col                     // 色選択子 0:R,1:G,2:B
            );

関数「Make6Lut()」のサブルーチンです!
★詳細★は、後で説明:【ファイル「CopyClear040.cpp」が
対象】します!

(4-12-114)関数「void lut_6_11(
BYTE lut[],int col);」

    void    lut_6_11(                               // LUT作成:色抽出表示用:色差
                BYTE        lut[],                  // 作成するLUT
                int         col                     // 色選択子 0:輝度
                                                    //          1:RY
            );                                      //          2:BY

関数「Make6Lut()」のサブルーチンです!
★詳細★は、後で説明:【ファイル「CopyClear040.cpp」が
対象】します!

(4-12-115)関数「void sort_key(
TypeSort* pl,TypeSort* pr);」

    void    sort_key(                               // キー付き昇順ソート
                TypeSort        *pl,                // データの左側Ptr
                TypeSort        *pr                 // データの右側Ptr
            );

関数「SortIndex()」のサブルーチンです!
★注意★「C言語」を良くお使いの人にはお馴染みの
アルゴリズム「再帰呼び出し」として自分自身を再帰定義の
記述方式で呼び出す「クイックソート」を使用して居ます!
再帰定義に馴染みが無い人は専門書で確認して下さい!
★詳細★は、後で説明:【ファイル「CopyClear100.cpp」が
対象】します!

(4-12-116)関数「void sort_key_rev(
TypeSort *pl,TypeSort *pr);」

    void    sort_key_rev(                           // キー付き降順ソート
                TypeSort        *pl,                // データの左側Ptr
                TypeSort        *pr                 // データの右側Ptr
            );

関数「SortIndex()」のサブルーチンです!
★注意★「C言語」を良くお使いの人にはお馴染みの
アルゴリズム「再帰呼び出し」として自分自身を再帰定義の
記述方式で呼び出す「クイックソート」を使用して居ます!
再帰定義に馴染みが無い人は専門書で確認して下さい!
★詳細★は、後で説明:【ファイル「CopyClear100.cpp」が
対象】します!

(4-12-117)関数「void hist_byte(
int hist[],BYTE *p,int l);」

    void    hist_byte(                              // HistSort用ヒストグラム:BYTE
                int             hist[],             // ヒストグラム配列
                BYTE            *p,                 // データ配列のPtr
                int             l                   // 配列のサイズ
            );

関数「sort_byte_hist()」のサブルーチンです!
上記は、関数「sort_single()」のサブルーチンです!
上記は、関数「Sort()」のサブルーチンです!
★注意★「ソートアルゴリズム」に詳しい方も余り、
お馴染みで無いアルゴリズムと思いますが、限定した使用
場所では、極めて高速に動作する方法です!
★詳細★は、後で説明:【ファイル「CopyClear100.cpp」が
対象】します!

(4-12-118)関数「void sort_byte_hist(
int sw, BYTE *p,int l);」

    void    sort_byte_hist(                         // HistSort:BYTE
                int             sw,                 // 0:昇順、1:降順
                BYTE            *p,                 // データ配列のPtr
                int             l                   // 配列のサイズ
            );

関数「sort_single()」のサブルーチンです!
★注意★「ソートアルゴリズム」に詳しい方も余り、
お馴染みで無いアルゴリズムと思いますが、限定した使用
場所では、極めて高速に動作する方法です!
★詳細★は、後で説明:【ファイル「CopyClear100.cpp」が
対象】します!

(4-12-119)関数「void sort_byte_0(
BYTE *pl,BYTE *pr);」

    void    sort_byte_0(                            // 昇順ソート:BYTE
                BYTE            *pl,                // データの左側Ptr
                BYTE            *pr                 // データの右側Ptr
            );

関数「Sort()」のサブルーチンです!
ここで「_0」は、関数「Sort()」での最初の仮引数「
int sw」で「0:昇順、1:降順」での「0:昇順」を意味します
★注意★「C言語」を良くお使いの人にはお馴染みの
アルゴリズム「再帰呼び出し」として自分自身を再帰定義の
記述方式で呼び出す「クイックソート」を使用して居ます!
再帰定義に馴染みが無い人は専門書で確認して下さい!
★詳細★は、後で説明:【ファイル「CopyClear100.cpp」が
対象】します!

(4-12-120)関数「void sort_byte_1(
BYTE *pl,BYTE *pr);」

    void    sort_byte_1(                            // 降順ソート:BYTE
                BYTE            *pl,                // データの左側Ptr
                BYTE            *pr                 // データの右側Ptr
            );

関数「Sort()」のサブルーチンです!
ここで「_1」は、関数「Sort()」での最初の仮引数「
int sw」で「0:昇順、1:降順」での「1:降順」を意味します
★注意★「C言語」を良くお使いの人にはお馴染みの
アルゴリズム「再帰呼び出し」として自分自身を再帰定義の
記述方式で呼び出す「クイックソート」を使用して居ます!
再帰定義に馴染みが無い人は専門書で確認して下さい!
★詳細★は、後で説明:【ファイル「CopyClear100.cpp」が
対象】します!

(4-12-121)関数「void sort_short_0(
short *pl,short *pr);」

    void    sort_short_0(                           // 昇順ソート:short
                short           *pl,                // データの左側Ptr
                short           *pr                 // データの右側Ptr
            );

関数「Sort()」のサブルーチンです!
ここで「_0」は、関数「Sort()」での最初の仮引数「
int sw」で「0:昇順、1:降順」での「0:昇順」を意味します
★注意★「C言語」を良くお使いの人にはお馴染みの
アルゴリズム「再帰呼び出し」として自分自身を再帰定義の
記述方式で呼び出す「クイックソート」を使用して居ます!
再帰定義に馴染みが無い人は専門書で確認して下さい!
★詳細★は、後で説明:【ファイル「CopyClear100.cpp」が
対象】します!

(4-12-122)関数「void sort_short_1(
short *pl,short *pr);」

    void    sort_short_1(                           // 降順ソート:short
                short           *pl,                // データの左側Ptr
                short           *pr                 // データの右側Ptr
            );

関数「Sort()」のサブルーチンです!
ここで「_1」は、関数「Sort()」での最初の仮引数「
int sw」で「0:昇順、1:降順」での「1:降順」を意味します
★注意★「C言語」を良くお使いの人にはお馴染みの
アルゴリズム「再帰呼び出し」として自分自身を再帰定義の
記述方式で呼び出す「クイックソート」を使用して居ます!
再帰定義に馴染みが無い人は専門書で確認して下さい!
★詳細★は、後で説明:【ファイル「CopyClear100.cpp」が
対象】します!

(4-12-123)関数「void sort_long _0(
long *pl,long *pr);」

    void    sort_long_0(                            // 昇順ソート:long
                long            *pl,                // データの左側Ptr
                long            *pr                 // データの右側Ptr
            );

関数「Sort()」のサブルーチンです!
ここで「_0」は、関数「Sort()」での最初の仮引数「
int sw」で「0:昇順、1:降順」での「0:昇順」を意味します
★注意★「C言語」を良くお使いの人にはお馴染みの
アルゴリズム「再帰呼び出し」として自分自身を再帰定義の
記述方式で呼び出す「クイックソート」を使用して居ます!
再帰定義に馴染みが無い人は専門書で確認して下さい!
★詳細★は、後で説明:【ファイル「CopyClear100.cpp」が
対象】します!

(4-12-124)関数「void sort_long _1(
long *pl,long *pr);」

    void    sort_long_1(                            // 降順ソート:long
                long            *pl,                // データの左側Ptr
                long            *pr                 // データの右側Ptr
            );

関数「Sort()」のサブルーチンです!
ここで「_1」は、関数「Sort()」での最初の仮引数「
int sw」で「0:昇順、1:降順」での「1:降順」を意味します
★注意★「C言語」を良くお使いの人にはお馴染みの
アルゴリズム「再帰呼び出し」として自分自身を再帰定義の
記述方式で呼び出す「クイックソート」を使用して居ます!
再帰定義に馴染みが無い人は専門書で確認して下さい!
★詳細★は、後で説明:【ファイル「CopyClear100.cpp」が
対象】します!

(4-12-125)関数「void sort_long _0_key(
long *pl,long *pr,short *plx,short *prx);」

    void    sort_long_0_key(                        // 昇順KeySort:Key=long,ix=short
                long            *pl,                // KeyDataの左側Ptr
                long            *pr,                // KeyDataの右側Ptr
                short           *plx,               // 添字Data左側Ptr
                short           *prx                // 添字Data右側Ptr
            );

関数「SortIndex()」のサブルーチンです!
ここで「_0」は、関数「SortIndex()」での最初の仮引数「
int sw」で「0:昇順、1:降順」での「0:昇順」を意味します
★注意★「C言語」を良くお使いの人にはお馴染みの
アルゴリズム「再帰呼び出し」として自分自身を再帰定義の
記述方式で呼び出す「クイックソート」を使用して居ます!
再帰定義に馴染みが無い人は専門書で確認して下さい!
★詳細★は、後で説明:【ファイル「CopyClear100.cpp」が
対象】します!

(4-12-126)関数「void sort_long _1_key(
long *pl,long *pr,short *plx,short *prx);」

    void    sort_long_1_key(                        // 降順KeySort:Key=long,ix=short
                long            *pl,                // KeyDataの左側Ptr
                long            *pr,                // KeyDataの右側Ptr
                short           *plx,               // 添字Data左側Ptr
                short           *prx                // 添字Data右側Ptr
            );

関数「SortIndex()」のサブルーチンです!
ここで「_1」は、関数「SortIndex()」での最初の仮引数「
int sw」で「0:昇順、1:降順」での「1:降順」を意味します
★注意★「C言語」を良くお使いの人にはお馴染みの
アルゴリズム「再帰呼び出し」として自分自身を再帰定義の
記述方式で呼び出す「クイックソート」を使用して居ます!
再帰定義に馴染みが無い人は専門書で確認して下さい!
★詳細★は、後で説明:【ファイル「CopyClear100.cpp」が
対象】します!

(4-12-127)関数「void sort_float_0(
float*pl,float*pr);」

    void    sort_float_0(                           // 昇順ソート:float
                float           *pl,                // データの左側Ptr
                float           *pr                 // データの右側Ptr
            );

関数「Sort()」のサブルーチンです!
ここで「_0」は、関数「Sort()」での最初の仮引数「
int sw」で「0:昇順、1:降順」での「0:昇順」を意味します
★注意★「C言語」を良くお使いの人にはお馴染みの
アルゴリズム「再帰呼び出し」として自分自身を再帰定義の
記述方式で呼び出す「クイックソート」を使用して居ます!
再帰定義に馴染みが無い人は専門書で確認して下さい!
★詳細★は、後で説明:【ファイル「CopyClear100.cpp」が
対象】します!

(4-12-128)関数「void sort_float_1(
float*pl,float*pr);」

    void    sort_float_1(                           // 降順ソート:float
                float           *pl,                // データの左側Ptr
                float           *pr                 // データの右側Ptr
            );

関数「Sort()」のサブルーチンです!
ここで「_1」は、関数「Sort()」での最初の仮引数「
int sw」で「0:昇順、1:降順」での「1:降順」を意味します
★注意★「C言語」を良くお使いの人にはお馴染みの
アルゴリズム「再帰呼び出し」として自分自身を再帰定義の
記述方式で呼び出す「クイックソート」を使用して居ます!
再帰定義に馴染みが無い人は専門書で確認して下さい!
★詳細★は、後で説明:【ファイル「CopyClear100.cpp」が
対象】します!

(4-12-129)関数「void sort_float_0_key(
float*pl,float*pr,short *plx,short *prx);」

    void    sort_float_0_key(                       // 昇順KeySort:Key=float,ix=short
                float           *pl,                // KeyDataの左側Ptr
                float           *pr,                // KeyDataの右側Ptr
                short           *plx,               // 添字Data左側Ptr
                short           *prx                // 添字Data右側Ptr
            );

関数「SortIndex()」のサブルーチンです!
ここで「_0」は、関数「Sort()」での最初の仮引数「
int sw」で「0:昇順、1:降順」での「0:昇順」を意味します
★注意★「C言語」を良くお使いの人にはお馴染みの
アルゴリズム「再帰呼び出し」として自分自身を再帰定義の
記述方式で呼び出す「クイックソート」を使用して居ます!
再帰定義に馴染みが無い人は専門書で確認して下さい!
★詳細★は、後で説明:【ファイル「CopyClear100.cpp」が
対象】します!

(4-12-130)関数「void sort_float_1_key(
float*pl,float*pr,short *plx,short *prx);」

    void    sort_float_1_key(                       // 降順KeySort:Key=float,ix=short
                float           *pl,                // KeyDataの左側Ptr
                float           *pr,                // KeyDataの右側Ptr
                short           *plx,               // 添字Data左側Ptr
                short           *prx                // 添字Data右側Ptr
            );

関数「SortIndex()」のサブルーチンです!
ここで「_1」は、関数「SortIndex()」での最初の仮引数「
int sw」で「0:昇順、1:降順」での「1:降順」を意味します
★注意★「C言語」を良くお使いの人にはお馴染みの
アルゴリズム「再帰呼び出し」として自分自身を再帰定義の
記述方式で呼び出す「クイックソート」を使用して居ます!
再帰定義に馴染みが無い人は専門書で確認して下さい!
★詳細★は、後で説明:【ファイル「CopyClear100.cpp」が
対象】します!

(4-12-131)関数「void sort_double_0(
double *pl,double *pr);」

    void    sort_double_0(                          // 昇順ソート:double
                double          *pl,                // データの左側Ptr
                double          *pr                 // データの右側Ptr
            );

関数「Sort()」のサブルーチンです!
ここで「_0」は、関数「Sort()」での最初の仮引数「
int sw」で「0:昇順、1:降順」での「0:昇順」を意味します
★注意★「C言語」を良くお使いの人にはお馴染みの
アルゴリズム「再帰呼び出し」として自分自身を再帰定義の
記述方式で呼び出す「クイックソート」を使用して居ます!
再帰定義に馴染みが無い人は専門書で確認して下さい!
★詳細★は、後で説明:【ファイル「CopyClear100.cpp」が
対象】します!

(4-12-132)関数「void sort_double_1(
double *pl,double *pr);」

    void    sort_double_1(                          // 降順ソート:double
                double          *pl,                // データの左側Ptr
                double          *pr                 // データの右側Ptr
            );

関数「Sort()」のサブルーチンです!
ここで「_1」は、関数「Sort()」での最初の仮引数「
int sw」で「0:昇順、1:降順」での「1:降順」を意味します
★注意★「C言語」を良くお使いの人にはお馴染みの
アルゴリズム「再帰呼び出し」として自分自身を再帰定義の
記述方式で呼び出す「クイックソート」を使用して居ます!
再帰定義に馴染みが無い人は専門書で確認して下さい!
★詳細★は、後で説明:【ファイル「CopyClear100.cpp」が
対象】します!

(4-12-133)関数「void sort_double_0_key(
double *pl,double *pr,short *plx,short *prx);」

    void    sort_double_0_key(                      // 昇順KeySort:Key=double,ix=short
                double          *pl,                // KeyDataの左側Ptr
                double          *pr,                // KeyDataの右側Ptr
                short           *plx,               // 添字Data左側Ptr
                short           *prx                // 添字Data右側Ptr
            );

関数「SortIndex()」のサブルーチンです!
ここで「_0」は、関数「SortIndex()」での最初の仮引数「
int sw」で「0:昇順、1:降順」での「0:昇順」を意味します
★注意★「C言語」を良くお使いの人にはお馴染みの
アルゴリズム「再帰呼び出し」として自分自身を再帰定義の
記述方式で呼び出す「クイックソート」を使用して居ます!
再帰定義に馴染みが無い人は専門書で確認して下さい!
★詳細★は、後で説明:【ファイル「CopyClear100.cpp」が
対象】します!

(4-12-134)関数「void sort_double_1_key(
double *pl,double *pr,short *plx,short *prx);」

    void    sort_double_1_key(                      // 降順KeySort:Key=double,ix=short
                double          *pl,                // KeyDataの左側Ptr
                double          *pr,                // KeyDataの右側Ptr
                short           *plx,               // 添字Data左側Ptr
                short           *prx                // 添字Data右側Ptr
            );

関数「SortIndex()」のサブルーチンです!
ここで「_1」は、関数「SortIndex()」での最初の仮引数「
int sw」で「0:昇順、1:降順」での「1:降順」を意味します
★注意★「C言語」を良くお使いの人にはお馴染みの
アルゴリズム「再帰呼び出し」として自分自身を再帰定義の
記述方式で呼び出す「クイックソート」を使用して居ます!
再帰定義に馴染みが無い人は専門書で確認して下さい!
★詳細★は、後で説明:【ファイル「CopyClear100.cpp」が
対象】します!

(4-12-135)関数「void sort_int64_0(
__int64* pl,__int64* pr);」

    void    sort_int64_0(                           // 昇順ソート:64Bit整数
                __int64         *pl,                // データの左側Ptr
                __int64         *pr                 // データの右側Ptr
            );

関数「Sort()」のサブルーチンです!
ここで「_0」は、関数「Sort()」での最初の仮引数「
int sw」で「0:昇順、1:降順」での「0:昇順」を意味します
★注意★「C言語」を良くお使いの人にはお馴染みの
アルゴリズム「再帰呼び出し」として自分自身を再帰定義の
記述方式で呼び出す「クイックソート」を使用して居ます!
再帰定義に馴染みが無い人は専門書で確認して下さい!
★詳細★は、後で説明:【ファイル「CopyClear100.cpp」が
対象】します!

(4-12-136)関数「void sort_int64_1(
__int64* pl,__int64* pr);」

    void    sort_int64_1(                           // 降順ソート:64Bit整数
                __int64         *pl,                // データの左側Ptr
                __int64         *pr                 // データの右側Ptr
            );

関数「Sort()」のサブルーチンです!
ここで「_1」は、関数「Sort()」での最初の仮引数「
int sw」で「0:昇順、1:降順」での「1:降順」を意味します
★注意★「C言語」を良くお使いの人にはお馴染みの
アルゴリズム「再帰呼び出し」として自分自身を再帰定義の
記述方式で呼び出す「クイックソート」を使用して居ます!
再帰定義に馴染みが無い人は専門書で確認して下さい!
★詳細★は、後で説明:【ファイル「CopyClear100.cpp」が
対象】します!

(4-12-137)関数「void sort_int64_0_key(
__int64* pl,__int64* pr,short *plx,short *prx);」

    void    sort_int64_0_key(                       // 昇順KeySort:Key=64Bit整数,ix=short
                __int64         *pl,                // KeyDataの左側Ptr
                __int64         *pr,                // KeyDataの右側Ptr
                short           *plx,               // 添字Data左側Ptr
                short           *prx                // 添字Data右側Ptr
            );

関数「SortIndex()」のサブルーチンです!
ここで「_0」は、関数「Sort()」での最初の仮引数「
int sw」で「0:昇順、1:降順」での「0:昇順」を意味します
★注意★「C言語」を良くお使いの人にはお馴染みの
アルゴリズム「再帰呼び出し」として自分自身を再帰定義の
記述方式で呼び出す「クイックソート」を使用して居ます!
再帰定義に馴染みが無い人は専門書で確認して下さい!
★詳細★は、後で説明:【ファイル「CopyClear100.cpp」が
対象】します!

(4-12-138)関数「void sort_int64_1_key(
__int64* pl,__int64* pr,short *plx,short *prx);」

    void    sort_int64_1_key(                       // 降順KeySort:Key=64Bit整数,ix=short
                __int64         *pl,                // KeyDataの左側Ptr
                __int64         *pr,                // KeyDataの右側Ptr
                short           *plx,               // 添字Data左側Ptr
                short           *prx                // 添字Data右側Ptr
            );

関数「SortIndex()」のサブルーチンです!
ここで「_1」は、関数「SortIndex()」での最初の仮引数「
int sw」で「0:昇順、1:降順」での「1:降順」を意味します
★注意★「C言語」を良くお使いの人にはお馴染みの
アルゴリズム「再帰呼び出し」として自分自身を再帰定義の
記述方式で呼び出す「クイックソート」を使用して居ます!
再帰定義に馴染みが無い人は専門書で確認して下さい!
★詳細★は、後で説明:【ファイル「CopyClear100.cpp」が
対象】します!

(4-12-139)関数「void sortTypeCorr0(
TypeCorr* pl,TypeCorr* pr);」

    void    sortTypeCorr0(                          // 昇順ソート:TypeCorr
                TypeCorr        *pl,                // データの左側Ptr
                TypeCorr        *pr                 // データの右側Ptr
            );

関数「Sort()」のサブルーチンです!
ここで「0」は、関数「Sort()」での最初の仮引数「
int sw」で「0:昇順、1:降順」での「0:昇順」を意味します
★注意★「C言語」を良くお使いの人にはお馴染みの
アルゴリズム「再帰呼び出し」として自分自身を再帰定義の
記述方式で呼び出す「クイックソート」を使用して居ます!
再帰定義に馴染みが無い人は専門書で確認して下さい!
★詳細★は、後で説明:【ファイル「CopyClear100.cpp」が
対象】します!

(4-12-140)関数「void sortTypeCorr1(
TypeCorr* pl,TypeCorr* pr);」

    void    sortTypeCorr1(                          // 降順ソート:TypeCorr
                TypeCorr        *pl,                // データの左側Ptr
                TypeCorr        *pr                 // データの右側Ptr
            );

関数「Sort()」のサブルーチンです!
ここで「_1」は、関数「Sort()」での最初の仮引数「
int sw」で「0:昇順、1:降順」での「1:降順」を意味します
★注意★「C言語」を良くお使いの人にはお馴染みの
アルゴリズム「再帰呼び出し」として自分自身を再帰定義の
記述方式で呼び出す「クイックソート」を使用して居ます!
再帰定義に馴染みが無い人は専門書で確認して下さい!
★詳細★は、後で説明:【ファイル「CopyClear100.cpp」が
対象】します!

(4-12-141)関数「void sortTypeCorrIX0(
TypeCorrIX* pl,TypeCorrIX*pr);」

    void    sortTypeCorrIX0(                        // 昇順ソート:TypeCorrIX
                TypeCorrIX      *pl,                // データの左側Ptr
                TypeCorrIX      *pr                 // データの右側Ptr
            );

関数「Sort()」のサブルーチンです!
ここで「0」は、関数「Sort()」での最初の仮引数「
int sw」で「0:昇順、1:降順」での「0:昇順」を意味します
★注意★「C言語」を良くお使いの人にはお馴染みの
アルゴリズム「再帰呼び出し」として自分自身を再帰定義の
記述方式で呼び出す「クイックソート」を使用して居ます!
再帰定義に馴染みが無い人は専門書で確認して下さい!
★詳細★は、後で説明:【ファイル「CopyClear100.cpp」が
対象】します!

(4-12-142)関数「void sortTypeCorrIX1(
TypeCorrIX* pl,TypeCorrIX* pr);」

    void    sortTypeCorrIX1(                        // 降順ソート:TypeCorrIX
                TypeCorrIX      *pl,                // データの左側Ptr
                TypeCorrIX      *pr                 // データの右側Ptr
            );

関数「Sort()」のサブルーチンです!
ここで「1」は、関数「Sort()」での最初の仮引数「
int sw」で「0:昇順、1:降順」での「1:降順」を意味します
★注意★「C言語」を良くお使いの人にはお馴染みの
アルゴリズム「再帰呼び出し」として自分自身を再帰定義の
記述方式で呼び出す「クイックソート」を使用して居ます!
再帰定義に馴染みが無い人は専門書で確認して下さい!
★詳細★は、後で説明:【ファイル「CopyClear100.cpp」が
対象】します!

(4-12-143)関数「void sortXTypeXY0(
TypeXY *pl,TypeXY *pr);」

    void    sortXTypeXY0(                           // 昇順ソート:TypeXY:X座標
                TypeXY          *pl,                // データの左側Ptr
                TypeXY          *pr                 // データの右側Ptr
            );

関数「SortX()」のサブルーチンです!
ここで「0」は、関数「SortX()」での最初の仮引数「
int sw」で「0:昇順、1:降順」での「0:昇順」を意味します
★注意★「C言語」を良くお使いの人にはお馴染みの
アルゴリズム「再帰呼び出し」として自分自身を再帰定義の
記述方式で呼び出す「クイックソート」を使用して居ます!
再帰定義に馴染みが無い人は専門書で確認して下さい!
★詳細★は、後で説明:【ファイル「CopyClear100.cpp」が
対象】します!

(4-12-144)関数「void sortXTypeXY1(
TypeXY *pl,TypeXY *pr);」

    void    sortXTypeXY1(                           // 降順ソート:TypeXY:X座標
                TypeXY          *pl,                // データの左側Ptr
                TypeXY          *pr                 // データの右側Ptr
            );

関数「SortX()」のサブルーチンです!
ここで「1」は、関数「SortX()」での最初の仮引数「
int sw」で「0:昇順、1:降順」での「1:降順」を意味します
★注意★「C言語」を良くお使いの人にはお馴染みの
アルゴリズム「再帰呼び出し」として自分自身を再帰定義の
記述方式で呼び出す「クイックソート」を使用して居ます!
再帰定義に馴染みが無い人は専門書で確認して下さい!
★詳細★は、後で説明:【ファイル「CopyClear100.cpp」が
対象】します!

(4-12-145)関数「void sortYTypeXY0(
TypeXY *pl,TypeXY *pr);」

    void    sortYTypeXY0(                           // 昇順ソート:TypeXY:Y座標
                TypeXY          *pl,                // データの左側Ptr
                TypeXY          *pr                 // データの右側Ptr
            );

関数「SortY()」のサブルーチンです!
ここで「0」は、関数「SortY()」での最初の仮引数「
int sw」で「0:昇順、1:降順」での「0:昇順」を意味します
★注意★「C言語」を良くお使いの人にはお馴染みの
アルゴリズム「再帰呼び出し」として自分自身を再帰定義の
記述方式で呼び出す「クイックソート」を使用して居ます!
再帰定義に馴染みが無い人は専門書で確認して下さい!
★詳細★は、後で説明:【ファイル「CopyClear100.cpp」が
対象】します!

(4-12-146)関数「void sortYTypeXY1(
TypeXY *pl,TypeXY *pr);」

    void    sortYTypeXY1(                           // 降順ソート:TypeXY:Y座標
                TypeXY          *pl,                // データの左側Ptr
                TypeXY          *pr                 // データの右側Ptr
            );

関数「SortY()」のサブルーチンです!
ここで「1」は、関数「SortY()」での最初の仮引数「
int sw」で「0:昇順、1:降順」での「1:降順」を意味します
★注意★「C言語」を良くお使いの人にはお馴染みの
アルゴリズム「再帰呼び出し」として自分自身を再帰定義の
記述方式で呼び出す「クイックソート」を使用して居ます!
再帰定義に馴染みが無い人は専門書で確認して下さい!
★詳細★は、後で説明:【ファイル「CopyClear100.cpp」が
対象】します!

(4-12-147)関数「void sortXTypeXYF0(
TypeXYF* pl,TypeXYF* pr);」

    void    sortXTypeXYF0(                          // 昇順ソート:TypeXYF:X座標
                TypeXYF         *pl,                // データの左側Ptr
                TypeXYF         *pr                 // データの右側Ptr
            );

関数「SortX()」のサブルーチンです!
ここで「0」は、関数「SortX()」での最初の仮引数「
int sw」で「0:昇順、1:降順」での「0:昇順」を意味します
★注意★「C言語」を良くお使いの人にはお馴染みの
アルゴリズム「再帰呼び出し」として自分自身を再帰定義の
記述方式で呼び出す「クイックソート」を使用して居ます!
再帰定義に馴染みが無い人は専門書で確認して下さい!
★詳細★は、後で説明:【ファイル「CopyClear100.cpp」が
対象】します!

(4-12-148)関数「void sortXTypeXYF1(
TypeXYF* pl,TypeXYF* pr);」

    void    sortXTypeXYF1(                          // 降順ソート:TypeXYF:X座標
                TypeXYF         *pl,                // データの左側Ptr
                TypeXYF         *pr                 // データの右側Ptr
            );

関数「SortX()」のサブルーチンです!
ここで「1」は、関数「SortX()」での最初の仮引数「
int sw」で「0:昇順、1:降順」での「1:降順」を意味します
★注意★「C言語」を良くお使いの人にはお馴染みの
アルゴリズム「再帰呼び出し」として自分自身を再帰定義の
記述方式で呼び出す「クイックソート」を使用して居ます!
再帰定義に馴染みが無い人は専門書で確認して下さい!
★詳細★は、後で説明:【ファイル「CopyClear100.cpp」が
対象】します!

(4-12-149)関数「void sortYTypeXYF0(
TypeXYF* pl,TypeXYF *pr);」

    void    sortYTypeXYF0(                          // 昇順ソート:TypeXYF:Y座標
                TypeXYF         *pl,                // データの左側Ptr
                TypeXYF         *pr                 // データの右側Ptr
            );

関数「SortY()」のサブルーチンです!
ここで「0」は、関数「SortY()」での最初の仮引数「
int sw」で「0:昇順、1:降順」での「0:昇順」を意味します
★注意★「C言語」を良くお使いの人にはお馴染みの
アルゴリズム「再帰呼び出し」として自分自身を再帰定義の
記述方式で呼び出す「クイックソート」を使用して居ます!
再帰定義に馴染みが無い人は専門書で確認して下さい!
★詳細★は、後で説明:【ファイル「CopyClear100.cpp」が
対象】します!

(4-12-150)関数「void sortYTypeXYF1(
TypeXYF* pl,TypeXYF* pr);」

    void    sortYTypeXYF1(                          // 降順ソート:TypeXYF:Y座標
                TypeXYF         *pl,                // データの左側Ptr
                TypeXYF         *pr                 // データの右側Ptr
            );

関数「SortY()」のサブルーチンです!
ここで「1」は、関数「SortY()」での最初の仮引数「
int sw」で「0:昇順、1:降順」での「1:降順」を意味します
★注意★「C言語」を良くお使いの人にはお馴染みの
アルゴリズム「再帰呼び出し」として自分自身を再帰定義の
記述方式で呼び出す「クイックソート」を使用して居ます!
再帰定義に馴染みが無い人は専門書で確認して下さい!
★詳細★は、後で説明:【ファイル「CopyClear100.cpp」が
対象】します!

(4-12-151)関数「void sortXTypeXYD0(
TypeXYD* pl,TypeXYD* pr);」

    void    sortXTypeXYD0(                          // 昇順ソート:TypeXYD:X座標
                TypeXYD         *pl,                // データの左側Ptr
                TypeXYD         *pr                 // データの右側Ptr
            );

関数「SortX()」のサブルーチンです!
ここで「0」は、関数「SortX()」での最初の仮引数「
int sw」で「0:昇順、1:降順」での「0:昇順」を意味します
★注意★「C言語」を良くお使いの人にはお馴染みの
アルゴリズム「再帰呼び出し」として自分自身を再帰定義の
記述方式で呼び出す「クイックソート」を使用して居ます!
再帰定義に馴染みが無い人は専門書で確認して下さい!
★詳細★は、後で説明:【ファイル「CopyClear100.cpp」が
対象】します!

(4-12-152)関数「void sortXTypeXYD1(
TypeXYD* pl,TypeXYD* pr);」

    void    sortXTypeXYD1(                          // 降順ソート:TypeXYD:X座標
                TypeXYD         *pl,                // データの左側Ptr
                TypeXYD         *pr                 // データの右側Ptr
            );

関数「SortX()」のサブルーチンです!
ここで「1」は、関数「SortX()」での最初の仮引数「
int sw」で「0:昇順、1:降順」での「1:降順」を意味します
★注意★「C言語」を良くお使いの人にはお馴染みの
アルゴリズム「再帰呼び出し」として自分自身を再帰定義の
記述方式で呼び出す「クイックソート」を使用して居ます!
再帰定義に馴染みが無い人は専門書で確認して下さい!
★詳細★は、後で説明:【ファイル「CopyClear100.cpp」が
対象】します!

(4-12-153)関数「void sortYTypeXYD0(
TypeXYD* pl,TypeXYD* pr);」

    void    sortYTypeXYD0(                          // 昇順ソート:TypeXYD:Y座標
                TypeXYD         *pl,                // データの左側Ptr
                TypeXYD         *pr                 // データの右側Ptr
            );

関数「sortY()」のサブルーチンです!
ここで「0」は、関数「SortY()」での最初の仮引数「
int sw」で「0:昇順、1:降順」での「0:昇順」を意味します
★注意★「C言語」を良くお使いの人にはお馴染みの
アルゴリズム「再帰呼び出し」として自分自身を再帰定義の
記述方式で呼び出す「クイックソート」を使用して居ます!
再帰定義に馴染みが無い人は専門書で確認して下さい!
★詳細★は、後で説明:【ファイル「CopyClear100.cpp」が
対象】します!

(4-12-154)関数「void sortYTypeXYD1(
TypeXYD* pl,TypeXYD* pr);」

    void    sortYTypeXYD1(                          // 降順ソート:TypeXYD:Y座標
                TypeXYD         *pl,                // データの左側Ptr
                TypeXYD         *pr                 // データの右側Ptr
            );

関数「sortY()」のサブルーチンです!
ここで「1」は、関数「SortY()」での最初の仮引数「
int sw」で「0:昇順、1:降順」での「1:降順」を意味します
★注意★「C言語」を良くお使いの人にはお馴染みの
アルゴリズム「再帰呼び出し」として自分自身を再帰定義の
記述方式で呼び出す「クイックソート」を使用して居ます!
再帰定義に馴染みが無い人は専門書で確認して下さい!
★詳細★は、後で説明:【ファイル「CopyClear100.cpp」が
対象】します!

(4-12-155)関数「void sortXTypeXYHV0(
TypeXYHV* pl,TypeXYHV* pr);」

    void    sortXTypeXYHV0(                         // 昇順ソート:TypeXYHV:X座標
                TypeXYHV        *pl,                // データの左側Ptr
                TypeXYHV        *pr                 // データの右側Ptr
            );

関数「SortX()」のサブルーチンです!
ここで「0」は、関数「SortX()」での最初の仮引数「
int sw」で「0:昇順、1:降順」での「0:昇順」を意味します
★注意★「C言語」を良くお使いの人にはお馴染みの
アルゴリズム「再帰呼び出し」として自分自身を再帰定義の
記述方式で呼び出す「クイックソート」を使用して居ます!
再帰定義に馴染みが無い人は専門書で確認して下さい!
★詳細★は、後で説明:【ファイル「CopyClear100.cpp」が
対象】します!

(4-12-156)関数「void sortXTypeXYHV1(
TypeXYHV* pl,TypeXYHV*pr);」

    void    sortXTypeXYHV1(                         // 降順ソート:TypeXYHV:X座標
                TypeXYHV        *pl,                // データの左側Ptr
                TypeXYHV        *pr                 // データの右側Ptr
            );

関数「SortX()」のサブルーチンです!
ここで「1」は、関数「SortX()」での最初の仮引数「
int sw」で「0:昇順、1:降順」での「1:降順」を意味します
★注意★「C言語」を良くお使いの人にはお馴染みの
アルゴリズム「再帰呼び出し」として自分自身を再帰定義の
記述方式で呼び出す「クイックソート」を使用して居ます!
再帰定義に馴染みが無い人は専門書で確認して下さい!
★詳細★は、後で説明:【ファイル「CopyClear100.cpp」が
対象】します!

(4-12-157)関数「void sortYTypeXYHV0(
TypeXYHV* pl,TypeXYHV* pr);」

    void    sortYTypeXYHV0(                         // 昇順ソート:TypeXYHV:Y座標
                TypeXYHV        *pl,                // データの左側Ptr
                TypeXYHV        *pr                 // データの右側Ptr
            );

関数「SortY()」のサブルーチンです!
ここで「0」は、関数「SortY()」での最初の仮引数「
int sw」で「0:昇順、1:降順」での「0:昇順」を意味します
★注意★「C言語」を良くお使いの人にはお馴染みの
アルゴリズム「再帰呼び出し」として自分自身を再帰定義の
記述方式で呼び出す「クイックソート」を使用して居ます!
再帰定義に馴染みが無い人は専門書で確認して下さい!
★詳細★は、後で説明:【ファイル「CopyClear100.cpp」が
対象】します!

(4-12-158)関数「void sortYTypeX HV1(
TypeXYHV* pl,TypeXYHV* pr);」

    void    sortYTypeXYHV1(                         // 降順ソート:TypeXYHV:Y座標
                TypeXYHV        *pl,                // データの左側Ptr
                TypeXYHV        *pr                 // データの右側Ptr
            );

関数「SortY()」のサブルーチンです!
ここで「1」は、関数「SortY()」での最初の仮引数「
int sw」で「0:昇順、1:降順」での「1:降順」を意味します
★注意★「C言語」を良くお使いの人にはお馴染みの
アルゴリズム「再帰呼び出し」として自分自身を再帰定義の
記述方式で呼び出す「クイックソート」を使用して居ます!
再帰定義に馴染みが無い人は専門書で確認して下さい!
★詳細★は、後で説明:【ファイル「CopyClear100.cpp」が
対象】します!

(4-12-159)関数「void sortXTypeXYHVIX0(
TypeXYHVIX* pl,TypeXYHVIX* pr);」

    void    sortXTypeXYHVIX0(                       // 昇順ソート:TypeXYHVIX:X座標
                TypeXYHVIX      *pl,                // データの左側Ptr
                TypeXYHVIX      *pr                 // データの右側Ptr
            );

関数「SortX()」のサブルーチンです!
ここで「0」は、関数「SortX()」での最初の仮引数「
int sw」で「0:昇順、1:降順」での「0:昇順」を意味します
★注意★「C言語」を良くお使いの人にはお馴染みの
アルゴリズム「再帰呼び出し」として自分自身を再帰定義の
記述方式で呼び出す「クイックソート」を使用して居ます!
再帰定義に馴染みが無い人は専門書で確認して下さい!
★詳細★は、後で説明:【ファイル「CopyClear100.cpp」が
対象】します!

(4-12-160)関数「void
sortXTypeXY HVIX1(
TypeXYHVIX* pl,TypeXYHVIX* pr);」

    void    sortXTypeXYHVIX1(                       // 降順ソート:TypeXYHVIX:X座標
                TypeXYHVIX      *pl,                // データの左側Ptr
                TypeXYHVIX      *pr                 // データの右側Ptr
            );

関数「SortX()」のサブルーチンです!
ここで「1」は、関数「SortX()」での最初の仮引数「
int sw」で「0:昇順、1:降順」での「1:降順」を意味します
★注意★「C言語」を良くお使いの人にはお馴染みの
アルゴリズム「再帰呼び出し」として自分自身を再帰定義の
記述方式で呼び出す「クイックソート」を使用して居ます!
再帰定義に馴染みが無い人は専門書で確認して下さい!
★詳細★は、後で説明:【ファイル「CopyClear100.cpp」が
対象】します!

(4-12-161)関数「void sortYTypeXYHVIX0(
TypeXYHVIX* pl,TypeXYHVIX* pr);」

    void    sortYTypeXYHVIX0(                       // 昇順ソート:TypeXYHVIX:Y座標
                TypeXYHVIX      *pl,                // データの左側Ptr
                TypeXYHVIX      *pr                 // データの右側Ptr
            );

関数「SortY()」のサブルーチンです!
ここで「0」は、関数「SortY()」での最初の仮引数「
int sw」で「0:昇順、1:降順」での「0:昇順」を意味します
★注意★「C言語」を良くお使いの人にはお馴染みの
アルゴリズム「再帰呼び出し」として自分自身を再帰定義の
記述方式で呼び出す「クイックソート」を使用して居ます!
再帰定義に馴染みが無い人は専門書で確認して下さい!
★詳細★は、後で説明:【ファイル「CopyClear100.cpp」が
対象】します!

(4-12-162)関数「void
sortYTypeXY HVIX1(
TypeXYHVIX* pl,TypeXYHVIX* pr);」

    void    sortYTypeXYHVIX1(                       // 降順ソート:TypeXYHVIX:Y座標
                TypeXYHVIX      *pl,                // データの左側Ptr
                TypeXYHVIX      *pr                 // データの右側Ptr
            );

関数「SortY()」のサブルーチンです!
ここで「1」は、関数「SortY()」での最初の仮引数「
int sw」で「0:昇順、1:降順」での「1:降順」を意味します
★注意★「C言語」を良くお使いの人にはお馴染みの
アルゴリズム「再帰呼び出し」として自分自身を再帰定義の
記述方式で呼び出す「クイックソート」を使用して居ます!
再帰定義に馴染みが無い人は専門書で確認して下さい!
★詳細★は、後で説明:【ファイル「CopyClear100.cpp」が
対象】します!

(4-12-163)関数「void sortAreaTypeSf0(
TypeSf* pl,TypeSf* pr);」

    void    sortAreaTypeSf0(                        // 昇順ソート:TypeSf:面積
                TypeSf          *pl,                // データの左側Ptr
                TypeSf          *pr                 // データの右側Ptr
            );

関数「SortArea()」のサブルーチンです!
ここで「0」は、関数「SortArea()」での最初の仮引数「
int sw」で「0:昇順、1:降順」での「0:昇順」を意味します
★注意★「C言語」を良くお使いの人にはお馴染みの
アルゴリズム「再帰呼び出し」として自分自身を再帰定義の
記述方式で呼び出す「クイックソート」を使用して居ます!
再帰定義に馴染みが無い人は専門書で確認して下さい!
★詳細★は、後で説明:【ファイル「CopyClear100.cpp」が
対象】します!

(4-12-164)関数「void sortAreaTypeSf1(
TypeSf* pl,TypeSf* pr);」

    void    sortAreaTypeSf1(                        // 降順ソート:TypeSf:面積
                TypeSf          *pl,                // データの左側Ptr
                TypeSf          *pr                 // データの右側Ptr
            );

関数「SortArea()」のサブルーチンです!
ここで「1」は、関数「SortArea()」での最初の仮引数「
int sw」で「0:昇順、1:降順」での「1:降順」を意味します
★注意★「C言語」を良くお使いの人にはお馴染みの
アルゴリズム「再帰呼び出し」として自分自身を再帰定義の
記述方式で呼び出す「クイックソート」を使用して居ます!
再帰定義に馴染みが無い人は専門書で確認して下さい!
★詳細★は、後で説明:【ファイル「CopyClear100.cpp」が
対象】します!

(4-12-165)関数「void sortAreaTypeMB0(
TypeMB* pl,TypeMB* pr);」

    void    sortAreaTypeMB0(                        // 昇順ソート:TypeMB:面積
                TypeMB          *pl,                // データの左側Ptr
                TypeMB          *pr                 // データの右側Ptr
            );

関数「SortArea()」のサブルーチンです!
ここで「0」は、関数「SortArea()」での最初の仮引数「
int sw」で「0:昇順、1:降順」での「0:昇順」を意味します
★注意★「C言語」を良くお使いの人にはお馴染みの
アルゴリズム「再帰呼び出し」として自分自身を再帰定義の
記述方式で呼び出す「クイックソート」を使用して居ます!
再帰定義に馴染みが無い人は専門書で確認して下さい!
★詳細★は、後で説明:【ファイル「CopyClear100.cpp」が
対象】します!

(4-12-166)関数「void sortAreaTypeMB1(
TypeMB* pl,TypeMB* pr);」

    void    sortAreaTypeMB1(                        // 降順ソート:TypeMB:面積
                TypeMB          *pl,                // データの左側Ptr
                TypeMB          *pr                 // データの右側Ptr
            );

関数「SortArea()」のサブルーチンです!
ここで「1」は、関数「SortArea()」での最初の仮引数「
int sw」で「0:昇順、1:降順」での「1:降順」を意味します
★注意★「C言語」を良くお使いの人にはお馴染みの
アルゴリズム「再帰呼び出し」として自分自身を再帰定義の
記述方式で呼び出す「クイックソート」を使用して居ます!
再帰定義に馴染みが無い人は専門書で確認して下さい!
★詳細★は、後で説明:【ファイル「CopyClear100.cpp」が
対象】します!

(4-12-167)関数「void sort_single(
int sw,TypeArray* pa,int l);」

    void    sort_single(                            // 配列1個:ソート
                int             sw,                 // 0:昇順、1:降順
                TypeArray       *pa,                // 配列情報
                int             l                   // 配列のサイズ
            );

関数「Sort()」のサブルーチンです!
★詳細★は、後で説明:【ファイル「CopyClear100.cpp」が
対象】します!

(4-12-168)関数「int eq_sort_byte(
BYTE *p,int l);」

    int     eq_sort_byte(                           // MultSort用同一Data数算出:BYTE
                BYTE        *p,                     // ポインタ
                int         l                       // サイズ
            );

関数「eq_sort()」のサブルーチンです!
関数「mult_sort()」のサブルーチンです!
関数「MultSorting()」のサブルーチンです!
★詳細★は、後で説明:【ファイル「CopyClear110.cpp」が
対象】します!

(4-12-169)関数「int eq_sort_short (
short *p,int l);」

    int     eq_sort_short(                          // MultSort用同一Data数算出:short
                short       *p,                     // ポインタ
                int         l                       // サイズ
            );

関数「eq_sort()」のサブルーチンです!
関数「mult_sort()」のサブルーチンです!
関数「MultSorting()」のサブルーチンです!
★詳細★は、後で説明:【ファイル「CopyClear110.cpp」が
対象】します!

(4-12-170)関数「int eq_sort_long (
long *p,int l);」

    int     eq_sort_long(                           // MultSort用同一Data数算出:long
                long        *p,                     // ポインタ
                int         l                       // サイズ
            );

関数「eq_sort()」のサブルーチンです!
関数「mult_sort()」のサブルーチンです!
関数「MultSorting()」のサブルーチンです!
★詳細★は、後で説明:【ファイル「CopyClear110.cpp」が
対象】します!

(4-12-171)関数「int eq_sort_float(
float* p,int l);」

    int     eq_sort_float(                          // MultSort用同一Data数算出:float
                float       *p,                     // ポインタ
                int         l                       // サイズ
            );

関数「eq_sort()」のサブルーチンです!
関数「mult_sort()」のサブルーチンです!
関数「MultSorting()」のサブルーチンです!
★詳細★は、後で説明:【ファイル「CopyClear110.cpp」が
対象】します!

(4-12-172)関数「int eq_sort_double(
double *p,int l);」

    int     eq_sort_double(                         // MultSort用同一Data数算出:double
                double      *p,                     // ポインタ
                int         l                       // サイズ
            );

関数「eq_sort()」のサブルーチンです!
関数「mult_sort()」のサブルーチンです!
関数「MultSorting()」のサブルーチンです!
★詳細★は、後で説明:【ファイル「CopyClear110.cpp」が
対象】します!

(4-12-173)関数「int eq_sort(
TypeArray* pa,int offset,int l);」

    int     eq_sort(                                // MultSort用同一データ数算出
                TypeArray   *pa,                    // 配列情報
                int         offset,                 // 先頭からのOffset
                int         l                       // 配列のサイズ
            );

関数「mult_sort()」のサブルーチンです!
関数「MultSorting()」のサブルーチンです!
★詳細★は、後で説明:【ファイル「CopyClear110.cpp」が
対象】します!

(4-12-174)関数「int mult_sort(
BYTE* ptrsw,TypeArray* pa,
int n,int offset,int l);」

    int     mult_sort(                              // マルチSORT
                BYTE        *ptrsw,                 // 0:昇順、1:降順
                TypeArray   *pa,                    // 配列1~100の情報
                int         n,                      // 配列の個数 1..100
                int         offset,                 // 先頭からのOffset
                int         l                       // 配列のサイズ
            );

関数「MultSorting()」のサブルーチンです!
★詳細★は、後で説明:【ファイル「CopyClear110.cpp」が
対象】します!

(4-12-175)関数「int sort_mult_short (
int sw,short *pkey,short **pa,
int n,int offset,int l);」

    int     sort_mult_short(                        // short配列群:内部添字=short
                int         sw,                     // 0:昇順、1:降順
                short       *pkey,                  // 配列情報:キー
                short       **pa,                   // 配列情報:従属
                int         n,                      // 配列個数 1..100
                int         offset,                 // 先頭からのOffset
                int         l                       // 配列のサイズ
            );

関数「mult_sort_short ()」のサブルーチンです!
関数「MultSortingshort ()」のサブルーチンです!
★詳細★は、後で説明:【ファイル「CopyClear110.cpp」が
対象】します!

(4-12-176)関数「int sort_mult_short_ext(
int sw,short *pkey,short **pa,
int n,int offset,int l);」

    int     sort_mult_short_ext(                    // short配列群:内部添字=short
                int         sw,                     // 0:昇順、1:降順
                short       *pkey,                  // 配列情報:キー
                short       **pa,                   // 配列情報:従属
                int         n,                      // 配列個数 1..100
                int         offset,                 // 先頭からのOffset
                int         l                       // 配列のサイズ
            );

関数「mult_sort_short ()」のサブルーチンです!
関数「MultSortingshort ()」のサブルーチンです!
★詳細★は、後で説明:【ファイル「CopyClear110.cpp」が
対象】します!

(4-12-177)関数「int mult_sort_short (
BYTE *ptrsw,short **pa,
int n,int offset,int l);」

    int     mult_sort_short(                        // マルチソートshort配列群用
                BYTE        *ptrsw,                 // 0:昇順、1:降順
                short       **pa,                   // 配列1~100の情報
                int         n,                      // 配列の個数 1..100
                int         offset,                 // 先頭からのOffset
                int         l                       // 配列のサイズ
            );

関数「MultSortingshort ()」のサブルーチンです!
★詳細★は、後で説明:【ファイル「CopyClear110.cpp」が
対象】します!

(4-12-178)関数「void sort_byte_0_key_ext(
BYTE *pl,BYTE *pr,int *plx,int *prx);」

    void    sort_byte_0_key_ext(                    // 昇順KeySort:Key=BYTE,ix=int
                BYTE        *pl,                    // KeyDataの左側Ptr
                BYTE        *pr,                    // KeyDataの右側Ptr
                int         *plx,                   // 添字Data左側Ptr
                int         *prx                    // 添字Data右側Ptr
            );

関数「SortIndex()」のサブルーチンです!
ここで「_0」は、関数「SortIndex()」での最初の仮引数「
int sw」で「0:昇順、1:降順」での「0:昇順」を意味します
★詳細★は、後で説明:【ファイル「CopyClear120.cpp」が
対象】します!

(4-12-179)関数「void sort_byte_1_key_ext(
BYTE *pl,BYTE *pr,int *plx,int *prx);」

    void    sort_byte_1_key_ext(                    // 降順KeySort:Key=BYTE,ix=int
                BYTE        *pl,                    // KeyDataの左側Ptr
                BYTE        *pr,                    // KeyDataの右側Ptr
                int         *plx,                   // 添字Data左側Ptr
                int         *prx                    // 添字Data右側Ptr
            );

関数「SortIndex()」のサブルーチンです!
ここで「_1」は、関数「SortIndex()」での最初の仮引数「
int sw」で「0:昇順、1:降順」での「1:降順」を意味します
★詳細★は、後で説明:【ファイル「CopyClear120.cpp」が
対象】します!

(4-12-180)関数「void sort_short_0_key_ext(
short *pl,short *pr,int *plx,int *prx);」

    void    sort_short_0_key_ext(                   // 昇順KeySort:Key=short,ix=int
                short       *pl,                    // KeyDataの左側Ptr
                short       *pr,                    // KeyDataの右側Ptr
                int         *plx,                   // 添字Data左側Ptr
                int         *prx                    // 添字Data右側Ptr
            );

関数「SortIndex()」のサブルーチンです!
ここで「_0」は、関数「SortIndex()」での最初の仮引数「
int sw」で「0:昇順、1:降順」での「0:昇順」を意味します
★詳細★は、後で説明:【ファイル「CopyClear120.cpp」が
対象】します!

(4-12-181)関数「void sort_short_1_key_ext(
short *pl,short *pr,int *plx,int *prx);」

    void    sort_short_1_key_ext(                   // 降順KeySort:Key=short,ix=int
                short       *pl,                    // KeyDataの左側Ptr
                short       *pr,                    // KeyDataの右側Ptr
                int         *plx,                   // 添字Data左側Ptr
                int         *prx                    // 添字Data右側Ptr
            );

関数「SortIndex()」のサブルーチンです!
ここで「_1」は、関数「SortIndex()」での最初の仮引数「
int sw」で「0:昇順、1:降順」での「1:降順」を意味します
★詳細★は、後で説明:【ファイル「CopyClear120.cpp」が
対象】します!

(4-12-182)関数「void
sort_long _0_key_ext(
long *pl,long *pr,int *plx,int *prx);」

    void    sort_long_0_key_ext(                    // 昇順KeySort:Key=long,ix=int
                long        *pl,                    // KeyDataの左側Ptr
                long        *pr,                    // KeyDataの右側Ptr
                int         *plx,                   // 添字Data左側Ptr
                int         *prx                    // 添字Data右側Ptr
            );

関数「SortIndex()」のサブルーチンです!
ここで「_0」は、関数「SortIndex()」での最初の仮引数「
int sw」で「0:昇順、1:降順」での「0:昇順」を意味します
★詳細★は、後で説明:【ファイル「CopyClear120.cpp」が
対象】します!

(4-12-183)関数「void
sort_long _1_key_ext(
long *pl,long *pr,int *plx,int *prx);」

    void    sort_long_1_key_ext(                    // 降順KeySort:Key=long,ix=int
                long        *pl,                    // KeyDataの左側Ptr
                long        *pr,                    // KeyDataの右側Ptr
                int         *plx,                   // 添字Data左側Ptr
                int         *prx                    // 添字Data右側Ptr
            );

関数「SortIndex()」のサブルーチンです!
ここで「_1」は、関数「SortIndex()」での最初の仮引数「
int sw」で「0:昇順、1:降順」での「1:降順」を意味します
★詳細★は、後で説明:【ファイル「CopyClear120.cpp」が
対象】します!

(4-12-184)関数「void sort_float_0_key_ext(
float* pl,float* pr,int *plx,int *prx);」

    void    sort_float_0_key_ext(                   // 昇順KeySort:Key=float,ix=int
                float       *pl,                    // KeyDataの左側Ptr
                float       *pr,                    // KeyDataの右側Ptr
                int         *plx,                   // 添字Data左側Ptr
                int         *prx                    // 添字Data右側Ptr
            );

関数「SortIndex()」のサブルーチンです!
ここで「_0」は、関数「SortIndex()」での最初の仮引数「
int sw」で「0:昇順、1:降順」での「0:昇順」を意味します
★詳細★は、後で説明:【ファイル「CopyClear120.cpp」が
対象】します!

(4-12-185)関数「void sort_float_1_key_ext(
float* pl,float* pr,int *plx,int *prx);」

    void    sort_float_1_key_ext(                   // 降順KeySort:Key=float,ix=int
                float       *pl,                    // KeyDataの左側Ptr
                float       *pr,                    // KeyDataの右側Ptr
                int         *plx,                   // 添字Data左側Ptr
                int         *prx                    // 添字Data右側Ptr
            );

関数「SortIndex()」のサブルーチンです!
ここで「_1」は、関数「SortIndex()」での最初の仮引数「
int sw」で「0:昇順、1:降順」での「1:降順」を意味します
★詳細★は、後で説明:【ファイル「CopyClear120.cpp」が
対象】します!

(4-12-186)関数「void sort_double_0_key_ext(
double *pl,double *pr,int *plx,int *prx);」

    void    sort_double_0_key_ext(                  // 昇順KeySort:Key=double,ix=int
                double      *pl,                    // KeyDataの左側Ptr
                double      *pr,                    // KeyDataの右側Ptr
                int         *plx,                   // 添字Data左側Ptr
                int         *prx                    // 添字Data右側Ptr
            );

関数「SortIndex()」のサブルーチンです!
ここで「_0」は、関数「SortIndex()」での最初の仮引数「
int sw」で「0:昇順、1:降順」での「0:昇順」を意味します
★詳細★は、後で説明:【ファイル「CopyClear120.cpp」が
対象】します!

(4-12-187)関数「void sort_double_1_key_ext(
double *pl,double *pr,int *plx,int *prx);」

    void    sort_double_1_key_ext(                  // 降順KeySort:Key=double,ix=int
                double      *pl,                    // KeyDataの左側Ptr
                double      *pr,                    // KeyDataの右側Ptr
                int         *plx,                   // 添字Data左側Ptr
                int         *prx                    // 添字Data右側Ptr
            );

関数「SortIndex()」のサブルーチンです!
ここで「_1」は、関数「SortIndex()」での最初の仮引数「
int sw」で「0:昇順、1:降順」での「1:降順」を意味します
★詳細★は、後で説明:【ファイル「CopyClear120.cpp」が
対象】します!

(4-12-188)関数「void
sort_int 64_0_key_ext(
__int64* pl,__int64* pr,int *plx,int *prx);」

    void    sort_int64_0_key_ext(                   // 昇順KeySort:Key=64Bit整数,ix=int
                __int64     *pl,                    // KeyDataの左側Ptr
                __int64     *pr,                    // KeyDataの右側Ptr
                int         *plx,                   // 添字Data左側Ptr
                int         *prx                    // 添字Data右側Ptr
            );

関数「SortIndex()」のサブルーチンです!
ここで「_0」は、関数「SortIndex()」での最初の仮引数「
int sw」で「0:昇順、1:降順」での「0:昇順」を意味します
★詳細★は、後で説明:【ファイル「CopyClear120.cpp」が
対象】します!

(4-12-189)関数「void sort_int 64_1_key_ext(
__int64* pl,__int64* pr,int *plx,int *prx);」

    void    sort_int64_1_key_ext(                   // 降順KeySort:Key=64Bit整数,ix=int
                __int64     *pl,                    // KeyDataの左側Ptr
                __int64     *pr,                    // KeyDataの右側Ptr
                int         *plx,                   // 添字Data左側Ptr
                int         *prx                    // 添字Data右側Ptr
            );

関数「SortIndex()」のサブルーチンです!
ここで「_1」は、関数「SortIndex()」での最初の仮引数「
int sw」で「0:昇順、1:降順」での「1:降順」を意味します
★詳細★は、後で説明:【ファイル「CopyClear120.cpp」が
対象】します!

(4-12-190)関数「void make_134_pattern_8(
TypeArray* pd,int init_data,int init_inc);」

    void            make_134_pattern_8(             //
        TypeArray   *pd,                            // D配列
        int         init_data,                      // 初期値データ
        int         init_inc );                     // 初期値増加値

関数「make_134_pattern()」のサブルーチンです!
関数「MakePattern()」のサブルーチンです!
★詳細★は、後で説明:【ファイル「CopyClear200.cpp」が
対象】します!

(4-12-191)関数「void make_134_pattern_16(
TypeArray* pd,int init_data,int init_inc);」

    void            make_134_pattern_16(            //
        TypeArray   *pd,                            // D配列
        int         init_data,                      // 初期値データ
        int         init_inc );                     // 初期値増加値

関数「make_134_pattern()」のサブルーチンです!
関数「MakePattern()」のサブルーチンです!
★詳細★は、後で説明:【ファイル「CopyClear200.cpp」が
対象】します!

(4-12-192)関数「void make_134_pattern_32(
TypeArray* pd,int init_data,int init_inc);」

    void            make_134_pattern_32(            //
        TypeArray   *pd,                            // D配列
        int         init_data,                      // 初期値データ
        int         init_inc );                     // 初期値増加値

関数「make_134_pattern()」のサブルーチンです!
関数「MakePattern()」のサブルーチンです!
★詳細★は、後で説明:【ファイル「CopyClear200.cpp」が
対象】します!

(4-12-193)関数「int make_134_pattern(
TypeArray* pd,int data,int inc);」

    int             make_134_pattern(               //
        TypeArray   *pd,                            // D配列
        int         data,                           // データ
        int         inc );                          // 増加値

関数「MakePattern()」のサブルーチンです!
★詳細★は、後で説明:【ファイル「CopyClear200.cpp」が
対象】します!

(4-12-194)関数「int make2pattern(
TypeArray* pd,int data);」

    int             make2pattern(                   //
        TypeArray   *pd,                            // D配列
        int         data );                         // 初期値データ

関数「MakePattern()」のサブルーチンです!
★詳細★は、後で説明:【ファイル「CopyClear200.cpp」が
対象】します!

(4-12-195)関数「void make_56_pattern(
TypeArray* pd,
int x,int y,int h,int v,int d);」

    void            make_56_pattern(                //
        TypeArray   *pd,                            // D配列
        int         x,                              // x座標始点
        int         y,                              // y座標始点
        int         h,                              // 水平幅
        int         v,                              // 垂直幅
        int         d );                            // 書き込みデータ

関数「make_5_pattern()」のサブルーチンです!
関数「make_6_pattern()」のサブルーチンです!
関数「MakePattern()」のサブルーチンです!
★詳細★は、後で説明:【ファイル「CopyClear200.cpp」が
対象】します!

(4-12-196)関数「int make5pattern(
TypeArray* pd,int color);」

    int             make5pattern(                   //
        TypeArray   *pd,                            // D配列
        int         color );                        // 色の選択子

関数「MakePattern()」のサブルーチンです!
★詳細★は、後で説明:【ファイル「CopyClear200.cpp」が
対象】します!

(4-12-197)関数「int make6pattern(
TypeArray* pd,int color);」

    int             make6pattern(                   //
        TypeArray   *pd,                            // D配列
        int         color );                        // 色の選択子

関数「MakePattern()」のサブルーチンです!
★詳細★は、後で説明:【ファイル「CopyClear200.cpp」が
対象】します!

(4-12-198)関数「void magnifyX1(
int zh,BYTE *ps,BYTE *pd,int sh,int dh);」

    void            magnifyX1(                      //
        int         zh,                             // 水平拡大率 1..10
        BYTE        *ps,                            // S配列実Ptr
        BYTE        *pd,                            // D配列実Ptr
        int         sh,                             // S配列水平幅
        int         dh );                           // D配列水平幅

関数「MagnifyZoomint()」のサブルーチンです!
関数「magnifyX()」のサブルーチンです!
関数「MakePattern()」のサブルーチンです!
★詳細★は、後で説明:【ファイル「CopyClear300.cpp」が
対象】します!

(4-12-199)関数「void magnifyX2(
int zh,BYTE *ps,BYTE *pd,int sh,int dh,int dl);」

    void            magnifyX2(                      //
        int         zh,                             // 水平拡大率 1..10
        BYTE        *ps,                            // S配列実Ptr
        BYTE        *pd,                            // D配列実Ptr
        int         sh,                             // S配列水平幅
        int         dh,                             // D配列水平幅
        int         dl );                           // 増加幅:D

関数「MagnifyZoomint()」のサブルーチンです!
関数「magnifyX()」のサブルーチンです!
関数「MakePattern()」のサブルーチンです!
★詳細★は、後で説明:【ファイル「CopyClear300.cpp」が
対象】します!

(4-12-200)関数「void magnifyX3(
int zh,BYTE *ps,BYTE *pd,int sh,int dh,int dl);」

    void            magnifyX3(                      //
        int         zh,                             // 水平拡大率 1..10
        BYTE        *ps,                            // S配列実Ptr
        BYTE        *pd,                            // D配列実Ptr
        int         sh,                             // S配列水平幅
        int         dh,                             // D配列水平幅
        int         dl );                           // 増加幅:D

関数「MagnifyZoomint()」のサブルーチンです!
関数「magnifyX()」のサブルーチンです!
★詳細★は、後で説明:【ファイル「CopyClear300.cpp」が
対象】します!

(4-12-201)関数「void magnifyXX(
int zh,int zv,BYTE *ps,BYTE *pd,
int sh,int dh,int dl);」

    void            magnifyXX(                      //
        int         zh,                             // 水平拡大率 1..10
        int         zv,                             // 垂直拡大率 4..10
        BYTE        *ps,                            // S配列実Ptr
        BYTE        *pd,                            // D配列実Ptr
        int         sh,                             // S配列水平幅
        int         dh,                             // D配列水平幅
        int         dl );                           // 増加幅:D

関数「MagnifyZoomint()」のサブルーチンです!
関数「magnifyX()」のサブルーチンです!
★詳細★は、後で説明:【ファイル「CopyClear300.cpp」が
対象】します!

(4-12-202)関数「void magnifyX(
int zh,int zv,BYTE *ps,BYTE *pd,
int sh,int dh,int dl);」

    void            magnifyX(                       //
        int         zh,                             // 水平拡大率 1..10
        int         zv,                             // 垂直拡大率 1..10
        BYTE        *ps,                            // S配列実Ptr
        BYTE        *pd,                            // D配列実Ptr
        int         sh,                             // S配列水平幅
        int         dh,                             // D配列水平幅
        int         dl );                           // 増加幅:D

関数「MagnifyZoomint()」のサブルーチンです!
★詳細★は、後で説明:【ファイル「CopyClear300.cpp」が
対象】します!

(4-12-203)関数「void magnifyXExt(
BYTE *buf,int zh,int zv,
BYTE *ps,BYTE *pd,int sh,int dh,
int dl,int dataSize);」

    void            magnifyXExt(                    // X方向拡大:拡張版
        BYTE        *buf,                           // 作業用バッファー
        int         zh,                             // 水平拡大率 1..10
        int         zv,                             // 垂直拡大率 1..10
        BYTE        *ps,                            // S配列実Ptr
        BYTE        *pd,                            // D配列実Ptr
        int         sh,                             // S配列水平幅
        int         dh,                             // D配列水平幅
        int         dl,                             // 増加幅:D
        int         dataSize );                     // 画素サイズ(1,2,3...)

関数「MagnifyZoomint()」のサブルーチンです!
★詳細★は、後で説明:【ファイル「CopyClear300.cpp」が
対象】します!

(4-12-204)関数「void magnifyXExtColor(
BYTE *buf,int zh,int zv,
BYTE *ps,BYTE *pd,int sh,int dh,int dl);」

    void            magnifyXExtColor(               // X方向拡大:カラー拡張版
        BYTE        *buf,                           // 作業用バッファー
        int         zh,                             // 水平拡大率 1..10
        int         zv,                             // 垂直拡大率 1..10
        BYTE        *ps,                            // S配列実Ptr
        BYTE        *pd,                            // D配列実Ptr
        int         sh,                             // S配列水平幅
        int         dh,                             // D配列水平幅
        int         dl );                           // 増加幅:D

関数「MagnifyZoomint()」のサブルーチンです!
★詳細★は、後で説明:【ファイル「CopyClear300.cpp」が
対象】します!

(4-12-205)関数「void makeMagnifyFX(
short *ptbl,double zh,int h,int dataSize);」

    void            makeMagnifyFX(                  // 拡大/縮小X座標テーブル作成
        short       *ptbl,                          // x座標TablePtr
        double      zh,                             // 水平拡大率
        int         h,                              // 水平幅
        int         dataSize );                     // 画素サイズ(1,2,3...)

関数「MagnifyZoom()」のサブルーチンです!
★詳細★は、後で説明:【ファイル「CopyClear300.cpp」が
対象】します!

(4-12-206)関数「void magnifyFX8(
short *ptbl,BYTE *ps,BYTE *pd,int h);」

    void            magnifyFX8(                     // 拡大/縮小:8bit
        short       *ptbl,                          // x座標TablePtr
        BYTE        *ps,                            // S配列実Ptr
        BYTE        *pd,                            // D配列実Ptr
        int         h );                            // 水平幅

関数「MagnifyZoom()」のサブルーチンです!
★詳細★は、後で説明:【ファイル「CopyClear300.cpp」が
対象】します!
ここで「8」は、画素単位が8ビット、1バイト画素を意味
します!

(4-12-207)関数「void magnifyFX16(
short *ptbl,short *ps,short *pd,int h);」

    void            magnifyFX16(                    // 拡大/縮小:16bit
        short       *ptbl,                          // x座標TablePtr
        short       *ps,                            // S配列実Ptr
        short       *pd,                            // D配列実Ptr
        int         h );                            // 水平幅

関数「MagnifyZoom()」のサブルーチンです!
ここで「16」は、画素単位が16ビット、2バイト画素を
意味します!
★詳細★は、後で説明:【ファイル「CopyClear300.cpp」が
対象】します!

(4-12-208)関数「void magnifyFX32(
short *ptbl,long *ps,long *pd,int h);」

    void            magnifyFX32(                    // 拡大/縮小:32bit
        short       *ptbl,                          // x座標TablePtr
        long        *ps,                            // S配列実Ptr
        long        *pd,                            // D配列実Ptr
        int         h );                            // 水平幅

関数「MagnifyZoom()」のサブルーチンです!
ここで「32」は、画素単位が32ビット、4バイト画素を
意味します!
★詳細★は、後で説明:【ファイル「CopyClear300.cpp」が
対象】します!

(4-12-209)関数「void makeMagnifyInterpolate(
short tbl[],floattblR[],double z,
int len,int lenOrg,double offset,int dataSize);」

    void            makeMagnifyInterpolate(         // 拡大/縮小X座標テーブル作成
        short       tbl[],                          // 座標TablePtr
        float       tblR[],                         // 座標存在率TablePtr
        double      z,                              // 拡大縮小率
        int         len,                            // テーブル長
        int         lenOrg,                         // 拡大縮小前の長さ
        double      offset,                         // 微少座標オフセット
        int         dataSize );                     // 画素サイズ(1,2,3...)

関数「MagnifyZoomInterpolateByte()」のサブルーチン
です!
★備考★引数の型が異なるオーバーロード(多重定義)関数
が存在します!
★詳細★は、後で説明:【ファイル「CopyClear300.cpp」が
対象】します!

(4-12-210)関数「int makeMagnifyInterpolate(
short tbl[],int tblR[],double z,
int len,int lenOrg,double offset,int dataSize);」

    int             makeMagnifyInterpolate(         // 拡大/縮小X座標テーブル作成
        short       tbl[],                          // 座標TablePtr
        int         tblR[],                         // 座標存在率×2048TablePtr
        double      z,                              // 拡大縮小率
        int         len,                            // テーブル長
        int         lenOrg,                         // 拡大縮小前の長さ
        double      offset,                         // 微少座標オフセット
        int         dataSize );                     // 画素サイズ(1,2,3...)

関数「MagnifyZoomInterpolateBYTE ()」のサブルーチン
です!
★備考★引数の型が異なるオーバーロード(多重定義)関数
が存在します!
★詳細★は、後で説明:【ファイル「CopyClear300.cpp」が
対象】します!

(4-12-211)関数「void
magnifyZoomInterpolateBYTE (
TypeArray* ps,TypeArray* pd,int h,int v,
int zhOffset,int zvOffset,
short tblX[],short tblY[],int tblRX[],int tblRY[],
int dataSize);」

    void            magnifyZoomInterpolateByte(     // 拡大・縮小:補間:BYTE
        TypeArray   *ps,                            // S配列
        TypeArray   *pd,                            // D配列
        int         h,                              // 水平幅
        int         v,                              // 垂直幅
        int         zhOffset,                       // 拡大縮尺時オフセット水平方向
        int         zvOffset,                       // 拡大縮尺時オフセット垂直方向
        short       tblX[],                         // X座標TablePtr
        short       tblY[],                         // Y座標TablePtr
        int         tblRX[],                        // X座標存在率×2048TablePtr
        int         tblRY[],                        // Y座標存在率×2048TablePtr
        int         dataSize );                     // 画素サイズ

関数「MagnifyZoomInterpolateBYTE ()」のサブルーチン
です!
関数「MagnifyZoomInterpolate()」のサブルーチンです!
★詳細★は、後で説明:【ファイル「CopyClear300.cpp」が
対象】します!

(4-12-212)関数「void
magnifyZoomInterpolateshort (
TypeArray* ps,TypeArray* pd,int h,int v,
int zhOffset,int zvOffset,
short tblX[],short tblY[],
float tblRX[],float tblRY[],
int dataSize);」

    void            magnifyZoomInterpolateShort(    // 拡大・縮小:補間:Short
        TypeArray   *ps,                            // S配列
        TypeArray   *pd,                            // D配列
        int         h,                              // 水平幅
        int         v,                              // 垂直幅
        int         zhOffset,                       // 拡大縮尺時オフセット水平方向
        int         zvOffset,                       // 拡大縮尺時オフセット垂直方向
        short       tblX[],                         // X座標TablePtr
        short       tblY[],                         // Y座標TablePtr
        float       tblRX[],                        // X座標存在率TablePtr
        float       tblRY[],                        // Y座標存在率TablePtr
        int         dataSize );                     // 画素サイズ

関数「MagnifyZoomInterpolate()」のサブルーチンです!
★詳細★は、後で説明:【ファイル「CopyClear300.cpp」が
対象】します!

(4-12-213)関数「void
magnifyZoomInterpolatelong (
TypeArray* ps,TypeArray* pd,int h,int v,
int zhOffset,int zvOffset,
short tblX[],short tblY[],
float tblRX[],float tblRY[],
int dataSize);」

    void            magnifyZoomInterpolateLong(     // 拡大・縮小:補間:Long
        TypeArray   *ps,                            // S配列
        TypeArray   *pd,                            // D配列
        int         h,                              // 水平幅
        int         v,                              // 垂直幅
        int         zhOffset,                       // 拡大縮尺時オフセット水平方向
        int         zvOffset,                       // 拡大縮尺時オフセット垂直方向
        short       tblX[],                         // X座標TablePtr
        short       tblY[],                         // Y座標TablePtr
        float       tblRX[],                        // X座標存在率TablePtr
        float       tblRY[],                        // Y座標存在率TablePtr
        int         dataSize );                     // 画素サイズ

関数「MagnifyZoomInterpolate()」のサブルーチンです!
★詳細★は、後で説明:【ファイル「CopyClear300.cpp」が
対象】します!

(4-12-214)関数「void
magnifyZoomInterpolateFloat(
TypeArray* ps,TypeArray* pd,int h,int v,
int zhOffset,int zvOffset,
short tblX[],short tblY[],
float tblRX[],float tblRY[],
int dataSize);」

    void            magnifyZoomInterpolateFloat(    // 拡大・縮小:補間:単精度
        TypeArray   *ps,                            // S配列
        TypeArray   *pd,                            // D配列
        int         h,                              // 水平幅
        int         v,                              // 垂直幅
        int         zhOffset,                       // 拡大縮尺時オフセット水平方向
        int         zvOffset,                       // 拡大縮尺時オフセット垂直方向
        short       tblX[],                         // X座標TablePtr
        short       tblY[],                         // Y座標TablePtr
        float       tblRX[],                        // X座標存在率TablePtr
        float       tblRY[],                        // Y座標存在率TablePtr
        int         dataSize );                     // 画素サイズ

関数「MagnifyZoomInterpolate()」のサブルーチンです!
★詳細★は、後で説明:【ファイル「CopyClear300.cpp」が
対象】します!

(4-12-215)関数「void magnifyAverageX(
TypeArray* ps,TypeArray* pd,int zh,int sw);」

    void            magnifyAverageX(                // 縮小:平均化:水平方向縮小
        TypeArray   *ps,                            // S配列
        TypeArray   *pd,                            // D配列
        int         zh,                             // 水平縮小率 1,2,3,4
        int         sw );                           // sw=偽→平均、真→合計

関数「MagnifyAverage()」のサブルーチンです!
★詳細★は、後で説明:【ファイル「CopyClear300.cpp」が
対象】します!

(4-12-216)関数「void mirrorbyte_1(
BYTE *ps,BYTE *pd,int h,int v,int sl,int dl);」

    void            mirrorByte_1(                   // 鏡像BYTE:左右
        BYTE        *ps,                            // S配列実Adr
        BYTE        *pd,                            // D配列実Adr
        int         h,                              // 水平幅
        int         v,                              // 垂直幅
        int         sl,                             // Sの増加幅
        int         dl );                           // Dの増加幅

関数「mirrorBYTE ()」のサブルーチンです!
関数「MirrorImage()」のサブルーチンです!
「_1」は、鏡像種類の1番目=左右反転です!
★詳細★は、後で説明:【ファイル「CopyClear310.cpp」が
対象】します!

(4-12-217)関数「void mirrorbyte_2(
BYTE *ps,BYTE *pd,int h,int v,int sl,int dl);」

    void            mirrorByte_2(                   // 鏡像BYTE:上下
        BYTE        *ps,                            // S配列実Adr
        BYTE        *pd,                            // D配列実Adr
        int         h,                              // 水平幅
        int         v,                              // 垂直幅
        int         sl,                             // Sの増加幅
        int         dl );                           // Dの増加幅

関数「mirrorBYTE ()」のサブルーチンです!
関数「MirrorImage()」のサブルーチンです!
「_2」は、鏡像種類の2番目=上下反転です!
★詳細★は、後で説明:【ファイル「CopyClear310.cpp」が
対象】します!

(4-12-218)関数「void mirrorBYTEColor_1(
BYTE *ps,BYTE *pd,int h,int v,int sl,int dl);」

    void            mirrorByteColor_1(              // 鏡像BYTE:左右
        BYTE        *ps,                            // S配列実Adr
        BYTE        *pd,                            // D配列実Adr
        int         h,                              // 水平幅
        int         v,                              // 垂直幅
        int         sl,                             // Sの増加幅
        int         dl );                           // Dの増加幅

関数「mirrorBYTE ()」のサブルーチンです!
関数「MirrorImage()」のサブルーチンです!
「_1」は、鏡像種類の1番目=左右反転です!
★詳細★は、後で説明:【ファイル「CopyClear310.cpp」が
対象】します!

(4-12-219)関数「void
mirrorBYTEExt_1(
BYTE *ps,BYTE *pd,int h,int v,int sl,int dl,int dataSize);」

    void            mirrorByteExt_1(                // 鏡像BYTE:左右
        BYTE        *ps,                            // S配列実Adr
        BYTE        *pd,                            // D配列実Adr
        int         h,                              // 水平幅
        int         v,                              // 垂直幅
        int         sl,                             // Sの増加幅
        int         dl,                             // Dの増加幅
        int         dataSize );                     // 画素サイズ

関数「mirrorBYTE ()」のサブルーチンです!
関数「MirrorImage()」のサブルーチンです!
「_1」は、鏡像種類の1番目=左右反転です!
★詳細★は、後で説明:【ファイル「CopyClear310.cpp」が
対象】します!

(4-12-220)関数「void mirrorBYTE (
BYTE *ps,BYTE *pd,int h,int v,
int sl,int dl,int k,int dataSize);」

    void            mirrorByte(                     // 鏡像BYTE単位
        BYTE        *ps,                            // S配列の実Adr
        BYTE        *pd,                            // D配列の実Adr
        int         h,                              // 水平幅
        int         v,                              // 垂直幅
        int         sl,                             // Sの増加幅
        int         dl,                             // Dの増加幅
        int         k,                              // 1:左右反転
                                                    // 2:上下反転
                                                    // 3:上下左右反転
        int         dataSize );                     // 画素サイズ

関数「MirrorImage()」のサブルーチンです!
★詳細★は、後で説明:【ファイル「CopyClear310.cpp」が
対象】します!

(4-12-221)関数「void mirrorShort_1(
short *ps,short *pd,int h,int v,int sl,int dl);」

    void            mirrorShort_1(                  // 鏡像:Short左右
        short       *ps,                            // S配列実Adr
        short       *pd,                            // D配列実Adr
        int         h,                              // 水平幅
        int         v,                              // 垂直幅
        int         sl,                             // Sの増加幅
        int         dl );                           // Dの増加幅

関数「mirrorShort ()」のサブルーチンです!
関数「MirrorImage()」のサブルーチンです!
「_1」は、鏡像種類の1番目=左右反転です!
★詳細★は、後で説明:【ファイル「CopyClear310.cpp」が
対象】します!

(4-12-221)関数「void mirrorShort_2(
short *ps,short *pd,int h,int v,int sl,int dl);」

    void            mirrorShort_2(                  // 鏡像:Short上下
        short       *ps,                            // S配列実Adr
        short       *pd,                            // D配列実Adr
        int         h,                              // 水平幅
        int         v,                              // 垂直幅
        int         sl,                             // Sの増加幅
        int         dl );                           // Dの増加幅

関数「mirrorShort ()」のサブルーチンです!
関数「MirrorImage()」のサブルーチンです!
「_2」は、鏡像種類の2番目=上下反転です!
★詳細★は、後で説明:【ファイル「CopyClear310.cpp」が
対象】します!

(4-12-222)関数「void
mirrorShort Color_1(
short *ps,short *pd,int h,int v,int sl,int dl);」

    void            mirrorShortColor_1(             // 鏡像:Short左右
        short       *ps,                            // S配列実Adr
        short       *pd,                            // D配列実Adr
        int         h,                              // 水平幅
        int         v,                              // 垂直幅
        int         sl,                             // Sの増加幅
        int         dl );                           // Dの増加幅

関数「mirrorShort ()」のサブルーチンです!
関数「MirrorImage()」のサブルーチンです!
「_1」は、鏡像種類の1番目=左右反転です!
★詳細★は、後で説明:【ファイル「CopyClear310.cpp」が
対象】します!

(4-12-223)関数「void
mirrorShort Ext_1(
short *ps,short *pd,int h,int v,int sl,int dl,
int dataSize);」

    void            mirrorShortExt_1(               // 鏡像:Short左右
        short       *ps,                            // S配列実Adr
        short       *pd,                            // D配列実Adr
        int         h,                              // 水平幅
        int         v,                              // 垂直幅
        int         sl,                             // Sの増加幅
        int         dl,                             // Dの増加幅
        int         dataSize );                     // 画素サイズ

関数「mirrorShort ()」のサブルーチンです!
関数「MirrorImage()」のサブルーチンです!
「_1」は、鏡像種類の1番目=左右反転です!
★詳細★は、後で説明:【ファイル「CopyClear310.cpp」が
対象】します!

(4-12-224)関数「void mirrorShort (
short *ps,short *pd,int h,int v,int sl,int dl,
int k,int dataSize);」

    void            mirrorShort(                    // 鏡像:Short単位
        short       *ps,                            // S配列の実Adr
        short       *pd,                            // D配列の実Adr
        int         h,                              // 水平幅
        int         v,                              // 垂直幅
        int         sl,                             // Sの増加幅
        int         dl,                             // Dの増加幅
        int         k,                              // 1:左右反転
                                                    // 2:上下反転
                                                    // 3:上下左右反転
        int         dataSize );                     // 画素サイズ

関数「MirrorImage()」のサブルーチンです!
★詳細★は、後で説明:【ファイル「CopyClear310.cpp」が
対象】します!

(4-12-225)関数「void mirrorLong _1(
long *ps,long *pd,int h,int v,int sl,int dl);」

    void            mirrorLong_1(                   // 鏡像:Long左右
        long        *ps,                            // S配列実Adr
        long        *pd,                            // D配列実Adr
        int         h,                              // 水平幅
        int         v,                              // 垂直幅
        int         sl,                             // Sの増加幅
        int         dl );                           // Dの増加幅

関数「mirrorLong ()」のサブルーチンです!
関数「MirrorImage()」のサブルーチンです!
「_1」は、鏡像種類の1番目=左右反転です!
★詳細★は、後で説明:【ファイル「CopyClear310.cpp」が
対象】します!

(4-12-226)関数「void mirrorLong_2(
long *ps,long *pd,int h,int v,int sl,int dl);」

    void            mirrorLong_2(                   // 鏡像:Long上下
        long        *ps,                            // S配列実Adr
        long        *pd,                            // D配列実Adr
        int         h,                              // 水平幅
        int         v,                              // 垂直幅
        int         sl,                             // Sの増加幅
        int         dl );                           // Dの増加幅

関数「mirrorLong ()」のサブルーチンです!
関数「MirrorImage()」のサブルーチンです!
「_2」は、鏡像種類の2番目=上下反転です!
★詳細★は、後で説明:【ファイル「CopyClear310.cpp」が
対象】します!

(4-12-227)関数「void
mirrorlong Color_1(
long *ps,long *pd,int h,int v,int sl,int dl);」

    void            mirrorLongColor_1(              // 鏡像:Long左右
        long        *ps,                            // S配列実Adr
        long        *pd,                            // D配列実Adr
        int         h,                              // 水平幅
        int         v,                              // 垂直幅
        int         sl,                             // Sの増加幅
        int         dl );                           // Dの増加幅

関数「mirrorLong ()」のサブルーチンです!
関数「MirrorImage()」のサブルーチンです!
「_1」は、鏡像種類の1番目=左右反転です!
★詳細★は、後で説明:【ファイル「CopyClear310.cpp」が
対象】します!

(4-12-228)関数「void
mirrorlong Ext_1(
long *ps,long *pd,int h,int v,int sl,int dl,
int dataSize);」

    void            mirrorLongExt_1(                // 鏡像:Long左右
        long        *ps,                            // S配列実Adr
        long        *pd,                            // D配列実Adr
        int         h,                              // 水平幅
        int         v,                              // 垂直幅
        int         sl,                             // Sの増加幅
        int         dl,                             // Dの増加幅
        int         dataSize );                     // 画素サイズ

関数「mirrorlong ()」のサブルーチンです!
関数「MirrorImage()」のサブルーチンです!
★詳細★は、後で説明:【ファイル「CopyClear310.cpp」が
対象】します!

(4-12-229)関数「void mirrorLong (
long *ps,long *pd,int h,int v,int sl,int dl,int k,
int dataSize);」

    void            mirrorLong(                     // 鏡像:Long単位
        long        *ps,                            // S配列の実Adr
        long        *pd,                            // D配列の実Adr
        int         h,                              // 水平幅
        int         v,                              // 垂直幅
        int         sl,                             // Sの増加幅
        int         dl,                             // Dの増加幅
        int         k,                              // 1:左右反転
                                                    // 2:上下反転
                                                    // 3:上下左右反転
        int         dataSize );                     // 画素サイズ

関数「MirrorImage()」のサブルーチンです!
★詳細★は、後で説明:【ファイル「CopyClear310.cpp」が
対象】します!

★備考★
解説『解説クラスTypeArray』でも記載したが、
noteエディタの変な特性でコピペした文章の半角「*」
が消されたり、空白「 」が消される事が多々あります!
注意して手作業で修正している筈ですが、必ず、code
機能で表示して居る物を正しいとして確認して下さい

ここで一旦、切れが良い「mirror×××」と鏡像サブルーチ
ン関数終了なので3月6日分迄の講義とします!
何故、変な所で打ち切るかは、続きの
解説クラスCopyClear(9ダッシュ)を見て
下さい!引き続き御贔屓して受講して下さい!

文末

この記事が気に入ったらサポートをしてみませんか?