Leptonica 1.68
C Image Processing Library

dwacomblow.2.c

Go to the documentation of this file.
00001 /*====================================================================*
00002  -  Copyright (C) 2001 Leptonica.  All rights reserved.
00003  -  This software is distributed in the hope that it will be
00004  -  useful, but with NO WARRANTY OF ANY KIND.
00005  -  No author or distributor accepts responsibility to anyone for the
00006  -  consequences of using this software, or for whether it serves any
00007  -  particular purpose or works at all, unless he or she says so in
00008  -  writing.  Everyone is granted permission to copy, modify and
00009  -  redistribute this source code, for commercial or non-commercial
00010  -  purposes, with the following restrictions: (1) the origin of this
00011  -  source code must not be misrepresented; (2) modified versions must
00012  -  be plainly marked as such; and (3) this notice may not be removed
00013  -  or altered from any source or modified source distribution.
00014  *====================================================================*/
00015 
00016 /*!
00017  *     Low-level fast binary morphology with auto-generated sels
00018  *
00019  *      Dispatcher:
00020  *             l_int32    fmorphopgen_low_2()
00021  *
00022  *      Static Low-level:
00023  *             void       fdilate_2_*()
00024  *             void       ferode_2_*()
00025  */
00026 
00027 #include "allheaders.h"
00028 
00029 static void  fdilate_2_0(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32);
00030 static void  ferode_2_0(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32);
00031 static void  fdilate_2_1(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32);
00032 static void  ferode_2_1(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32);
00033 static void  fdilate_2_2(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32);
00034 static void  ferode_2_2(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32);
00035 static void  fdilate_2_3(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32);
00036 static void  ferode_2_3(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32);
00037 static void  fdilate_2_4(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32);
00038 static void  ferode_2_4(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32);
00039 static void  fdilate_2_5(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32);
00040 static void  ferode_2_5(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32);
00041 static void  fdilate_2_6(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32);
00042 static void  ferode_2_6(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32);
00043 static void  fdilate_2_7(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32);
00044 static void  ferode_2_7(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32);
00045 static void  fdilate_2_8(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32);
00046 static void  ferode_2_8(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32);
00047 static void  fdilate_2_9(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32);
00048 static void  ferode_2_9(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32);
00049 static void  fdilate_2_10(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32);
00050 static void  ferode_2_10(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32);
00051 static void  fdilate_2_11(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32);
00052 static void  ferode_2_11(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32);
00053 static void  fdilate_2_12(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32);
00054 static void  ferode_2_12(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32);
00055 static void  fdilate_2_13(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32);
00056 static void  ferode_2_13(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32);
00057 static void  fdilate_2_14(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32);
00058 static void  ferode_2_14(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32);
00059 static void  fdilate_2_15(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32);
00060 static void  ferode_2_15(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32);
00061 static void  fdilate_2_16(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32);
00062 static void  ferode_2_16(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32);
00063 static void  fdilate_2_17(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32);
00064 static void  ferode_2_17(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32);
00065 static void  fdilate_2_18(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32);
00066 static void  ferode_2_18(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32);
00067 static void  fdilate_2_19(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32);
00068 static void  ferode_2_19(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32);
00069 static void  fdilate_2_20(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32);
00070 static void  ferode_2_20(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32);
00071 static void  fdilate_2_21(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32);
00072 static void  ferode_2_21(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32);
00073 static void  fdilate_2_22(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32);
00074 static void  ferode_2_22(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32);
00075 static void  fdilate_2_23(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32);
00076 static void  ferode_2_23(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32);
00077 static void  fdilate_2_24(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32);
00078 static void  ferode_2_24(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32);
00079 static void  fdilate_2_25(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32);
00080 static void  ferode_2_25(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32);
00081 static void  fdilate_2_26(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32);
00082 static void  ferode_2_26(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32);
00083 static void  fdilate_2_27(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32);
00084 static void  ferode_2_27(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32);
00085 static void  fdilate_2_28(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32);
00086 static void  ferode_2_28(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32);
00087 static void  fdilate_2_29(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32);
00088 static void  ferode_2_29(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32);
00089 static void  fdilate_2_30(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32);
00090 static void  ferode_2_30(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32);
00091 static void  fdilate_2_31(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32);
00092 static void  ferode_2_31(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32);
00093 static void  fdilate_2_32(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32);
00094 static void  ferode_2_32(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32);
00095 static void  fdilate_2_33(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32);
00096 static void  ferode_2_33(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32);
00097 static void  fdilate_2_34(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32);
00098 static void  ferode_2_34(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32);
00099 static void  fdilate_2_35(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32);
00100 static void  ferode_2_35(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32);
00101 static void  fdilate_2_36(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32);
00102 static void  ferode_2_36(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32);
00103 static void  fdilate_2_37(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32);
00104 static void  ferode_2_37(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32);
00105 static void  fdilate_2_38(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32);
00106 static void  ferode_2_38(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32);
00107 static void  fdilate_2_39(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32);
00108 static void  ferode_2_39(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32);
00109 static void  fdilate_2_40(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32);
00110 static void  ferode_2_40(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32);
00111 static void  fdilate_2_41(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32);
00112 static void  ferode_2_41(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32);
00113 static void  fdilate_2_42(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32);
00114 static void  ferode_2_42(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32);
00115 static void  fdilate_2_43(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32);
00116 static void  ferode_2_43(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32);
00117 static void  fdilate_2_44(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32);
00118 static void  ferode_2_44(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32);
00119 static void  fdilate_2_45(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32);
00120 static void  ferode_2_45(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32);
00121 static void  fdilate_2_46(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32);
00122 static void  ferode_2_46(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32);
00123 static void  fdilate_2_47(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32);
00124 static void  ferode_2_47(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32);
00125 static void  fdilate_2_48(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32);
00126 static void  ferode_2_48(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32);
00127 static void  fdilate_2_49(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32);
00128 static void  ferode_2_49(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32);
00129 static void  fdilate_2_50(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32);
00130 static void  ferode_2_50(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32);
00131 static void  fdilate_2_51(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32);
00132 static void  ferode_2_51(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32);
00133 static void  fdilate_2_52(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32);
00134 static void  ferode_2_52(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32);
00135 static void  fdilate_2_53(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32);
00136 static void  ferode_2_53(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32);
00137 static void  fdilate_2_54(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32);
00138 static void  ferode_2_54(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32);
00139 static void  fdilate_2_55(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32);
00140 static void  ferode_2_55(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32);
00141 static void  fdilate_2_56(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32);
00142 static void  ferode_2_56(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32);
00143 static void  fdilate_2_57(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32);
00144 static void  ferode_2_57(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32);
00145 static void  fdilate_2_58(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32);
00146 static void  ferode_2_58(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32);
00147 static void  fdilate_2_59(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32);
00148 static void  ferode_2_59(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32);
00149 static void  fdilate_2_60(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32);
00150 static void  ferode_2_60(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32);
00151 static void  fdilate_2_61(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32);
00152 static void  ferode_2_61(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32);
00153 static void  fdilate_2_62(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32);
00154 static void  ferode_2_62(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32);
00155 static void  fdilate_2_63(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32);
00156 static void  ferode_2_63(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32);
00157 static void  fdilate_2_64(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32);
00158 static void  ferode_2_64(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32);
00159 static void  fdilate_2_65(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32);
00160 static void  ferode_2_65(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32);
00161 static void  fdilate_2_66(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32);
00162 static void  ferode_2_66(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32);
00163 static void  fdilate_2_67(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32);
00164 static void  ferode_2_67(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32);
00165 static void  fdilate_2_68(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32);
00166 static void  ferode_2_68(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32);
00167 static void  fdilate_2_69(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32);
00168 static void  ferode_2_69(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32);
00169 static void  fdilate_2_70(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32);
00170 static void  ferode_2_70(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32);
00171 static void  fdilate_2_71(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32);
00172 static void  ferode_2_71(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32);
00173 static void  fdilate_2_72(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32);
00174 static void  ferode_2_72(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32);
00175 static void  fdilate_2_73(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32);
00176 static void  ferode_2_73(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32);
00177 static void  fdilate_2_74(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32);
00178 static void  ferode_2_74(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32);
00179 static void  fdilate_2_75(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32);
00180 static void  ferode_2_75(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32);
00181 
00182 
00183 /*---------------------------------------------------------------------*
00184  *                          Fast morph dispatcher                      *
00185  *---------------------------------------------------------------------*/
00186 /*!
00187  *  fmorphopgen_low_2()
00188  *
00189  *       a dispatcher to appropriate low-level code
00190  */
00191 l_int32
00192 fmorphopgen_low_2(l_uint32  *datad,
00193                   l_int32    w,
00194                   l_int32    h,
00195                   l_int32    wpld,
00196                   l_uint32  *datas,
00197                   l_int32    wpls,
00198                   l_int32    index)
00199 {
00200 
00201     switch (index)
00202     {
00203     case 0:
00204         fdilate_2_0(datad, w, h, wpld, datas, wpls);
00205         break;
00206     case 1:
00207         ferode_2_0(datad, w, h, wpld, datas, wpls);
00208         break;
00209     case 2:
00210         fdilate_2_1(datad, w, h, wpld, datas, wpls);
00211         break;
00212     case 3:
00213         ferode_2_1(datad, w, h, wpld, datas, wpls);
00214         break;
00215     case 4:
00216         fdilate_2_2(datad, w, h, wpld, datas, wpls);
00217         break;
00218     case 5:
00219         ferode_2_2(datad, w, h, wpld, datas, wpls);
00220         break;
00221     case 6:
00222         fdilate_2_3(datad, w, h, wpld, datas, wpls);
00223         break;
00224     case 7:
00225         ferode_2_3(datad, w, h, wpld, datas, wpls);
00226         break;
00227     case 8:
00228         fdilate_2_4(datad, w, h, wpld, datas, wpls);
00229         break;
00230     case 9:
00231         ferode_2_4(datad, w, h, wpld, datas, wpls);
00232         break;
00233     case 10:
00234         fdilate_2_5(datad, w, h, wpld, datas, wpls);
00235         break;
00236     case 11:
00237         ferode_2_5(datad, w, h, wpld, datas, wpls);
00238         break;
00239     case 12:
00240         fdilate_2_6(datad, w, h, wpld, datas, wpls);
00241         break;
00242     case 13:
00243         ferode_2_6(datad, w, h, wpld, datas, wpls);
00244         break;
00245     case 14:
00246         fdilate_2_7(datad, w, h, wpld, datas, wpls);
00247         break;
00248     case 15:
00249         ferode_2_7(datad, w, h, wpld, datas, wpls);
00250         break;
00251     case 16:
00252         fdilate_2_8(datad, w, h, wpld, datas, wpls);
00253         break;
00254     case 17:
00255         ferode_2_8(datad, w, h, wpld, datas, wpls);
00256         break;
00257     case 18:
00258         fdilate_2_9(datad, w, h, wpld, datas, wpls);
00259         break;
00260     case 19:
00261         ferode_2_9(datad, w, h, wpld, datas, wpls);
00262         break;
00263     case 20:
00264         fdilate_2_10(datad, w, h, wpld, datas, wpls);
00265         break;
00266     case 21:
00267         ferode_2_10(datad, w, h, wpld, datas, wpls);
00268         break;
00269     case 22:
00270         fdilate_2_11(datad, w, h, wpld, datas, wpls);
00271         break;
00272     case 23:
00273         ferode_2_11(datad, w, h, wpld, datas, wpls);
00274         break;
00275     case 24:
00276         fdilate_2_12(datad, w, h, wpld, datas, wpls);
00277         break;
00278     case 25:
00279         ferode_2_12(datad, w, h, wpld, datas, wpls);
00280         break;
00281     case 26:
00282         fdilate_2_13(datad, w, h, wpld, datas, wpls);
00283         break;
00284     case 27:
00285         ferode_2_13(datad, w, h, wpld, datas, wpls);
00286         break;
00287     case 28:
00288         fdilate_2_14(datad, w, h, wpld, datas, wpls);
00289         break;
00290     case 29:
00291         ferode_2_14(datad, w, h, wpld, datas, wpls);
00292         break;
00293     case 30:
00294         fdilate_2_15(datad, w, h, wpld, datas, wpls);
00295         break;
00296     case 31:
00297         ferode_2_15(datad, w, h, wpld, datas, wpls);
00298         break;
00299     case 32:
00300         fdilate_2_16(datad, w, h, wpld, datas, wpls);
00301         break;
00302     case 33:
00303         ferode_2_16(datad, w, h, wpld, datas, wpls);
00304         break;
00305     case 34:
00306         fdilate_2_17(datad, w, h, wpld, datas, wpls);
00307         break;
00308     case 35:
00309         ferode_2_17(datad, w, h, wpld, datas, wpls);
00310         break;
00311     case 36:
00312         fdilate_2_18(datad, w, h, wpld, datas, wpls);
00313         break;
00314     case 37:
00315         ferode_2_18(datad, w, h, wpld, datas, wpls);
00316         break;
00317     case 38:
00318         fdilate_2_19(datad, w, h, wpld, datas, wpls);
00319         break;
00320     case 39:
00321         ferode_2_19(datad, w, h, wpld, datas, wpls);
00322         break;
00323     case 40:
00324         fdilate_2_20(datad, w, h, wpld, datas, wpls);
00325         break;
00326     case 41:
00327         ferode_2_20(datad, w, h, wpld, datas, wpls);
00328         break;
00329     case 42:
00330         fdilate_2_21(datad, w, h, wpld, datas, wpls);
00331         break;
00332     case 43:
00333         ferode_2_21(datad, w, h, wpld, datas, wpls);
00334         break;
00335     case 44:
00336         fdilate_2_22(datad, w, h, wpld, datas, wpls);
00337         break;
00338     case 45:
00339         ferode_2_22(datad, w, h, wpld, datas, wpls);
00340         break;
00341     case 46:
00342         fdilate_2_23(datad, w, h, wpld, datas, wpls);
00343         break;
00344     case 47:
00345         ferode_2_23(datad, w, h, wpld, datas, wpls);
00346         break;
00347     case 48:
00348         fdilate_2_24(datad, w, h, wpld, datas, wpls);
00349         break;
00350     case 49:
00351         ferode_2_24(datad, w, h, wpld, datas, wpls);
00352         break;
00353     case 50:
00354         fdilate_2_25(datad, w, h, wpld, datas, wpls);
00355         break;
00356     case 51:
00357         ferode_2_25(datad, w, h, wpld, datas, wpls);
00358         break;
00359     case 52:
00360         fdilate_2_26(datad, w, h, wpld, datas, wpls);
00361         break;
00362     case 53:
00363         ferode_2_26(datad, w, h, wpld, datas, wpls);
00364         break;
00365     case 54:
00366         fdilate_2_27(datad, w, h, wpld, datas, wpls);
00367         break;
00368     case 55:
00369         ferode_2_27(datad, w, h, wpld, datas, wpls);
00370         break;
00371     case 56:
00372         fdilate_2_28(datad, w, h, wpld, datas, wpls);
00373         break;
00374     case 57:
00375         ferode_2_28(datad, w, h, wpld, datas, wpls);
00376         break;
00377     case 58:
00378         fdilate_2_29(datad, w, h, wpld, datas, wpls);
00379         break;
00380     case 59:
00381         ferode_2_29(datad, w, h, wpld, datas, wpls);
00382         break;
00383     case 60:
00384         fdilate_2_30(datad, w, h, wpld, datas, wpls);
00385         break;
00386     case 61:
00387         ferode_2_30(datad, w, h, wpld, datas, wpls);
00388         break;
00389     case 62:
00390         fdilate_2_31(datad, w, h, wpld, datas, wpls);
00391         break;
00392     case 63:
00393         ferode_2_31(datad, w, h, wpld, datas, wpls);
00394         break;
00395     case 64:
00396         fdilate_2_32(datad, w, h, wpld, datas, wpls);
00397         break;
00398     case 65:
00399         ferode_2_32(datad, w, h, wpld, datas, wpls);
00400         break;
00401     case 66:
00402         fdilate_2_33(datad, w, h, wpld, datas, wpls);
00403         break;
00404     case 67:
00405         ferode_2_33(datad, w, h, wpld, datas, wpls);
00406         break;
00407     case 68:
00408         fdilate_2_34(datad, w, h, wpld, datas, wpls);
00409         break;
00410     case 69:
00411         ferode_2_34(datad, w, h, wpld, datas, wpls);
00412         break;
00413     case 70:
00414         fdilate_2_35(datad, w, h, wpld, datas, wpls);
00415         break;
00416     case 71:
00417         ferode_2_35(datad, w, h, wpld, datas, wpls);
00418         break;
00419     case 72:
00420         fdilate_2_36(datad, w, h, wpld, datas, wpls);
00421         break;
00422     case 73:
00423         ferode_2_36(datad, w, h, wpld, datas, wpls);
00424         break;
00425     case 74:
00426         fdilate_2_37(datad, w, h, wpld, datas, wpls);
00427         break;
00428     case 75:
00429         ferode_2_37(datad, w, h, wpld, datas, wpls);
00430         break;
00431     case 76:
00432         fdilate_2_38(datad, w, h, wpld, datas, wpls);
00433         break;
00434     case 77:
00435         ferode_2_38(datad, w, h, wpld, datas, wpls);
00436         break;
00437     case 78:
00438         fdilate_2_39(datad, w, h, wpld, datas, wpls);
00439         break;
00440     case 79:
00441         ferode_2_39(datad, w, h, wpld, datas, wpls);
00442         break;
00443     case 80:
00444         fdilate_2_40(datad, w, h, wpld, datas, wpls);
00445         break;
00446     case 81:
00447         ferode_2_40(datad, w, h, wpld, datas, wpls);
00448         break;
00449     case 82:
00450         fdilate_2_41(datad, w, h, wpld, datas, wpls);
00451         break;
00452     case 83:
00453         ferode_2_41(datad, w, h, wpld, datas, wpls);
00454         break;
00455     case 84:
00456         fdilate_2_42(datad, w, h, wpld, datas, wpls);
00457         break;
00458     case 85:
00459         ferode_2_42(datad, w, h, wpld, datas, wpls);
00460         break;
00461     case 86:
00462         fdilate_2_43(datad, w, h, wpld, datas, wpls);
00463         break;
00464     case 87:
00465         ferode_2_43(datad, w, h, wpld, datas, wpls);
00466         break;
00467     case 88:
00468         fdilate_2_44(datad, w, h, wpld, datas, wpls);
00469         break;
00470     case 89:
00471         ferode_2_44(datad, w, h, wpld, datas, wpls);
00472         break;
00473     case 90:
00474         fdilate_2_45(datad, w, h, wpld, datas, wpls);
00475         break;
00476     case 91:
00477         ferode_2_45(datad, w, h, wpld, datas, wpls);
00478         break;
00479     case 92:
00480         fdilate_2_46(datad, w, h, wpld, datas, wpls);
00481         break;
00482     case 93:
00483         ferode_2_46(datad, w, h, wpld, datas, wpls);
00484         break;
00485     case 94:
00486         fdilate_2_47(datad, w, h, wpld, datas, wpls);
00487         break;
00488     case 95:
00489         ferode_2_47(datad, w, h, wpld, datas, wpls);
00490         break;
00491     case 96:
00492         fdilate_2_48(datad, w, h, wpld, datas, wpls);
00493         break;
00494     case 97:
00495         ferode_2_48(datad, w, h, wpld, datas, wpls);
00496         break;
00497     case 98:
00498         fdilate_2_49(datad, w, h, wpld, datas, wpls);
00499         break;
00500     case 99:
00501         ferode_2_49(datad, w, h, wpld, datas, wpls);
00502         break;
00503     case 100:
00504         fdilate_2_50(datad, w, h, wpld, datas, wpls);
00505         break;
00506     case 101:
00507         ferode_2_50(datad, w, h, wpld, datas, wpls);
00508         break;
00509     case 102:
00510         fdilate_2_51(datad, w, h, wpld, datas, wpls);
00511         break;
00512     case 103:
00513         ferode_2_51(datad, w, h, wpld, datas, wpls);
00514         break;
00515     case 104:
00516         fdilate_2_52(datad, w, h, wpld, datas, wpls);
00517         break;
00518     case 105:
00519         ferode_2_52(datad, w, h, wpld, datas, wpls);
00520         break;
00521     case 106:
00522         fdilate_2_53(datad, w, h, wpld, datas, wpls);
00523         break;
00524     case 107:
00525         ferode_2_53(datad, w, h, wpld, datas, wpls);
00526         break;
00527     case 108:
00528         fdilate_2_54(datad, w, h, wpld, datas, wpls);
00529         break;
00530     case 109:
00531         ferode_2_54(datad, w, h, wpld, datas, wpls);
00532         break;
00533     case 110:
00534         fdilate_2_55(datad, w, h, wpld, datas, wpls);
00535         break;
00536     case 111:
00537         ferode_2_55(datad, w, h, wpld, datas, wpls);
00538         break;
00539     case 112:
00540         fdilate_2_56(datad, w, h, wpld, datas, wpls);
00541         break;
00542     case 113:
00543         ferode_2_56(datad, w, h, wpld, datas, wpls);
00544         break;
00545     case 114:
00546         fdilate_2_57(datad, w, h, wpld, datas, wpls);
00547         break;
00548     case 115:
00549         ferode_2_57(datad, w, h, wpld, datas, wpls);
00550         break;
00551     case 116:
00552         fdilate_2_58(datad, w, h, wpld, datas, wpls);
00553         break;
00554     case 117:
00555         ferode_2_58(datad, w, h, wpld, datas, wpls);
00556         break;
00557     case 118:
00558         fdilate_2_59(datad, w, h, wpld, datas, wpls);
00559         break;
00560     case 119:
00561         ferode_2_59(datad, w, h, wpld, datas, wpls);
00562         break;
00563     case 120:
00564         fdilate_2_60(datad, w, h, wpld, datas, wpls);
00565         break;
00566     case 121:
00567         ferode_2_60(datad, w, h, wpld, datas, wpls);
00568         break;
00569     case 122:
00570         fdilate_2_61(datad, w, h, wpld, datas, wpls);
00571         break;
00572     case 123:
00573         ferode_2_61(datad, w, h, wpld, datas, wpls);
00574         break;
00575     case 124:
00576         fdilate_2_62(datad, w, h, wpld, datas, wpls);
00577         break;
00578     case 125:
00579         ferode_2_62(datad, w, h, wpld, datas, wpls);
00580         break;
00581     case 126:
00582         fdilate_2_63(datad, w, h, wpld, datas, wpls);
00583         break;
00584     case 127:
00585         ferode_2_63(datad, w, h, wpld, datas, wpls);
00586         break;
00587     case 128:
00588         fdilate_2_64(datad, w, h, wpld, datas, wpls);
00589         break;
00590     case 129:
00591         ferode_2_64(datad, w, h, wpld, datas, wpls);
00592         break;
00593     case 130:
00594         fdilate_2_65(datad, w, h, wpld, datas, wpls);
00595         break;
00596     case 131:
00597         ferode_2_65(datad, w, h, wpld, datas, wpls);
00598         break;
00599     case 132:
00600         fdilate_2_66(datad, w, h, wpld, datas, wpls);
00601         break;
00602     case 133:
00603         ferode_2_66(datad, w, h, wpld, datas, wpls);
00604         break;
00605     case 134:
00606         fdilate_2_67(datad, w, h, wpld, datas, wpls);
00607         break;
00608     case 135:
00609         ferode_2_67(datad, w, h, wpld, datas, wpls);
00610         break;
00611     case 136:
00612         fdilate_2_68(datad, w, h, wpld, datas, wpls);
00613         break;
00614     case 137:
00615         ferode_2_68(datad, w, h, wpld, datas, wpls);
00616         break;
00617     case 138:
00618         fdilate_2_69(datad, w, h, wpld, datas, wpls);
00619         break;
00620     case 139:
00621         ferode_2_69(datad, w, h, wpld, datas, wpls);
00622         break;
00623     case 140:
00624         fdilate_2_70(datad, w, h, wpld, datas, wpls);
00625         break;
00626     case 141:
00627         ferode_2_70(datad, w, h, wpld, datas, wpls);
00628         break;
00629     case 142:
00630         fdilate_2_71(datad, w, h, wpld, datas, wpls);
00631         break;
00632     case 143:
00633         ferode_2_71(datad, w, h, wpld, datas, wpls);
00634         break;
00635     case 144:
00636         fdilate_2_72(datad, w, h, wpld, datas, wpls);
00637         break;
00638     case 145:
00639         ferode_2_72(datad, w, h, wpld, datas, wpls);
00640         break;
00641     case 146:
00642         fdilate_2_73(datad, w, h, wpld, datas, wpls);
00643         break;
00644     case 147:
00645         ferode_2_73(datad, w, h, wpld, datas, wpls);
00646         break;
00647     case 148:
00648         fdilate_2_74(datad, w, h, wpld, datas, wpls);
00649         break;
00650     case 149:
00651         ferode_2_74(datad, w, h, wpld, datas, wpls);
00652         break;
00653     case 150:
00654         fdilate_2_75(datad, w, h, wpld, datas, wpls);
00655         break;
00656     case 151:
00657         ferode_2_75(datad, w, h, wpld, datas, wpls);
00658         break;
00659     }
00660 
00661     return 0;
00662 }
00663 
00664 
00665 /*--------------------------------------------------------------------------*
00666  *                 Low-level auto-generated static routines                 *
00667  *--------------------------------------------------------------------------*/
00668 /*
00669  *  N.B.  In all the low-level routines, the part of the image
00670  *        that is accessed has been clipped by 32 pixels on
00671  *        all four sides.  This is done in the higher level
00672  *        code by redefining w and h smaller and by moving the
00673  *        start-of-image pointers up to the beginning of this
00674  *        interior rectangle.
00675  */
00676 static void
00677 fdilate_2_0(l_uint32  *datad,
00678             l_int32    w,
00679             l_int32    h,
00680             l_int32    wpld,
00681             l_uint32  *datas,
00682             l_int32    wpls)
00683 {
00684 l_int32             i;
00685 register l_int32    j, pwpls;
00686 register l_uint32  *sptr, *dptr;
00687     
00688     pwpls = (l_uint32)(w + 31) / 32;  /* proper wpl of src */
00689 
00690     for (i = 0; i < h; i++) {
00691         sptr = datas + i * wpls;
00692         dptr = datad + i * wpld;
00693         for (j = 0; j < pwpls; j++, sptr++, dptr++) {
00694             *dptr = ((*(sptr) << 1) | (*(sptr + 1) >> 31)) |
00695                     ((*(sptr) >> 1) | (*(sptr - 1) << 31));
00696         }
00697     }
00698 }
00699 
00700 static void
00701 ferode_2_0(l_uint32  *datad,
00702             l_int32    w,
00703             l_int32    h,
00704             l_int32    wpld,
00705             l_uint32  *datas,
00706             l_int32    wpls)
00707 {
00708 l_int32             i;
00709 register l_int32    j, pwpls;
00710 register l_uint32  *sptr, *dptr;
00711     
00712     pwpls = (l_uint32)(w + 31) / 32;  /* proper wpl of src */
00713 
00714     for (i = 0; i < h; i++) {
00715         sptr = datas + i * wpls;
00716         dptr = datad + i * wpld;
00717         for (j = 0; j < pwpls; j++, sptr++, dptr++) {
00718             *dptr = ((*(sptr) >> 1) | (*(sptr - 1) << 31)) &
00719                     ((*(sptr) << 1) | (*(sptr + 1) >> 31));
00720         }
00721     }
00722 }
00723 
00724 static void
00725 fdilate_2_1(l_uint32  *datad,
00726             l_int32    w,
00727             l_int32    h,
00728             l_int32    wpld,
00729             l_uint32  *datas,
00730             l_int32    wpls)
00731 {
00732 l_int32             i;
00733 register l_int32    j, pwpls;
00734 register l_uint32  *sptr, *dptr;
00735     
00736     pwpls = (l_uint32)(w + 31) / 32;  /* proper wpl of src */
00737 
00738     for (i = 0; i < h; i++) {
00739         sptr = datas + i * wpls;
00740         dptr = datad + i * wpld;
00741         for (j = 0; j < pwpls; j++, sptr++, dptr++) {
00742             *dptr = (*(sptr + wpls)) |
00743                     (*(sptr - wpls));
00744         }
00745     }
00746 }
00747 
00748 static void
00749 ferode_2_1(l_uint32  *datad,
00750             l_int32    w,
00751             l_int32    h,
00752             l_int32    wpld,
00753             l_uint32  *datas,
00754             l_int32    wpls)
00755 {
00756 l_int32             i;
00757 register l_int32    j, pwpls;
00758 register l_uint32  *sptr, *dptr;
00759     
00760     pwpls = (l_uint32)(w + 31) / 32;  /* proper wpl of src */
00761 
00762     for (i = 0; i < h; i++) {
00763         sptr = datas + i * wpls;
00764         dptr = datad + i * wpld;
00765         for (j = 0; j < pwpls; j++, sptr++, dptr++) {
00766             *dptr = (*(sptr - wpls)) &
00767                     (*(sptr + wpls));
00768         }
00769     }
00770 }
00771 
00772 static void
00773 fdilate_2_2(l_uint32  *datad,
00774             l_int32    w,
00775             l_int32    h,
00776             l_int32    wpld,
00777             l_uint32  *datas,
00778             l_int32    wpls)
00779 {
00780 l_int32             i;
00781 register l_int32    j, pwpls;
00782 register l_uint32  *sptr, *dptr;
00783     
00784     pwpls = (l_uint32)(w + 31) / 32;  /* proper wpl of src */
00785 
00786     for (i = 0; i < h; i++) {
00787         sptr = datas + i * wpls;
00788         dptr = datad + i * wpld;
00789         for (j = 0; j < pwpls; j++, sptr++, dptr++) {
00790             *dptr = (*sptr);
00791         }
00792     }
00793 }
00794 
00795 static void
00796 ferode_2_2(l_uint32  *datad,
00797             l_int32    w,
00798             l_int32    h,
00799             l_int32    wpld,
00800             l_uint32  *datas,
00801             l_int32    wpls)
00802 {
00803 l_int32             i;
00804 register l_int32    j, pwpls;
00805 register l_uint32  *sptr, *dptr;
00806     
00807     pwpls = (l_uint32)(w + 31) / 32;  /* proper wpl of src */
00808 
00809     for (i = 0; i < h; i++) {
00810         sptr = datas + i * wpls;
00811         dptr = datad + i * wpld;
00812         for (j = 0; j < pwpls; j++, sptr++, dptr++) {
00813             *dptr = (*sptr);
00814         }
00815     }
00816 }
00817 
00818 static void
00819 fdilate_2_3(l_uint32  *datad,
00820             l_int32    w,
00821             l_int32    h,
00822             l_int32    wpld,
00823             l_uint32  *datas,
00824             l_int32    wpls)
00825 {
00826 l_int32             i;
00827 register l_int32    j, pwpls;
00828 register l_uint32  *sptr, *dptr;
00829     
00830     pwpls = (l_uint32)(w + 31) / 32;  /* proper wpl of src */
00831 
00832     for (i = 0; i < h; i++) {
00833         sptr = datas + i * wpls;
00834         dptr = datad + i * wpld;
00835         for (j = 0; j < pwpls; j++, sptr++, dptr++) {
00836             *dptr = (*sptr);
00837         }
00838     }
00839 }
00840 
00841 static void
00842 ferode_2_3(l_uint32  *datad,
00843             l_int32    w,
00844             l_int32    h,
00845             l_int32    wpld,
00846             l_uint32  *datas,
00847             l_int32    wpls)
00848 {
00849 l_int32             i;
00850 register l_int32    j, pwpls;
00851 register l_uint32  *sptr, *dptr;
00852     
00853     pwpls = (l_uint32)(w + 31) / 32;  /* proper wpl of src */
00854 
00855     for (i = 0; i < h; i++) {
00856         sptr = datas + i * wpls;
00857         dptr = datad + i * wpld;
00858         for (j = 0; j < pwpls; j++, sptr++, dptr++) {
00859             *dptr = (*sptr);
00860         }
00861     }
00862 }
00863 
00864 static void
00865 fdilate_2_4(l_uint32  *datad,
00866             l_int32    w,
00867             l_int32    h,
00868             l_int32    wpld,
00869             l_uint32  *datas,
00870             l_int32    wpls)
00871 {
00872 l_int32             i;
00873 register l_int32    j, pwpls;
00874 register l_uint32  *sptr, *dptr;
00875     
00876     pwpls = (l_uint32)(w + 31) / 32;  /* proper wpl of src */
00877 
00878     for (i = 0; i < h; i++) {
00879         sptr = datas + i * wpls;
00880         dptr = datad + i * wpld;
00881         for (j = 0; j < pwpls; j++, sptr++, dptr++) {
00882             *dptr = ((*(sptr) << 2) | (*(sptr + 1) >> 30)) |
00883                     ((*(sptr) >> 1) | (*(sptr - 1) << 31));
00884         }
00885     }
00886 }
00887 
00888 static void
00889 ferode_2_4(l_uint32  *datad,
00890             l_int32    w,
00891             l_int32    h,
00892             l_int32    wpld,
00893             l_uint32  *datas,
00894             l_int32    wpls)
00895 {
00896 l_int32             i;
00897 register l_int32    j, pwpls;
00898 register l_uint32  *sptr, *dptr;
00899     
00900     pwpls = (l_uint32)(w + 31) / 32;  /* proper wpl of src */
00901 
00902     for (i = 0; i < h; i++) {
00903         sptr = datas + i * wpls;
00904         dptr = datad + i * wpld;
00905         for (j = 0; j < pwpls; j++, sptr++, dptr++) {
00906             *dptr = ((*(sptr) >> 2) | (*(sptr - 1) << 30)) &
00907                     ((*(sptr) << 1) | (*(sptr + 1) >> 31));
00908         }
00909     }
00910 }
00911 
00912 static void
00913 fdilate_2_5(l_uint32  *datad,
00914             l_int32    w,
00915             l_int32    h,
00916             l_int32    wpld,
00917             l_uint32  *datas,
00918             l_int32    wpls)
00919 {
00920 l_int32             i;
00921 register l_int32    j, pwpls;
00922 register l_uint32  *sptr, *dptr;
00923 l_int32             wpls2;
00924     
00925     wpls2 = 2 * wpls;
00926     pwpls = (l_uint32)(w + 31) / 32;  /* proper wpl of src */
00927 
00928     for (i = 0; i < h; i++) {
00929         sptr = datas + i * wpls;
00930         dptr = datad + i * wpld;
00931         for (j = 0; j < pwpls; j++, sptr++, dptr++) {
00932             *dptr = (*(sptr + wpls2)) |
00933                     (*(sptr - wpls));
00934         }
00935     }
00936 }
00937 
00938 static void
00939 ferode_2_5(l_uint32  *datad,
00940             l_int32    w,
00941             l_int32    h,
00942             l_int32    wpld,
00943             l_uint32  *datas,
00944             l_int32    wpls)
00945 {
00946 l_int32             i;
00947 register l_int32    j, pwpls;
00948 register l_uint32  *sptr, *dptr;
00949 l_int32             wpls2;
00950     
00951     wpls2 = 2 * wpls;
00952     pwpls = (l_uint32)(w + 31) / 32;  /* proper wpl of src */
00953 
00954     for (i = 0; i < h; i++) {
00955         sptr = datas + i * wpls;
00956         dptr = datad + i * wpld;
00957         for (j = 0; j < pwpls; j++, sptr++, dptr++) {
00958             *dptr = (*(sptr - wpls2)) &
00959                     (*(sptr + wpls));
00960         }
00961     }
00962 }
00963 
00964 static void
00965 fdilate_2_6(l_uint32  *datad,
00966             l_int32    w,
00967             l_int32    h,
00968             l_int32    wpld,
00969             l_uint32  *datas,
00970             l_int32    wpls)
00971 {
00972 l_int32             i;
00973 register l_int32    j, pwpls;
00974 register l_uint32  *sptr, *dptr;
00975     
00976     pwpls = (l_uint32)(w + 31) / 32;  /* proper wpl of src */
00977 
00978     for (i = 0; i < h; i++) {
00979         sptr = datas + i * wpls;
00980         dptr = datad + i * wpld;
00981         for (j = 0; j < pwpls; j++, sptr++, dptr++) {
00982             *dptr = (*sptr);
00983         }
00984     }
00985 }
00986 
00987 static void
00988 ferode_2_6(l_uint32  *datad,
00989             l_int32    w,
00990             l_int32    h,
00991             l_int32    wpld,
00992             l_uint32  *datas,
00993             l_int32    wpls)
00994 {
00995 l_int32             i;
00996 register l_int32    j, pwpls;
00997 register l_uint32  *sptr, *dptr;
00998     
00999     pwpls = (l_uint32)(w + 31) / 32;  /* proper wpl of src */
01000 
01001     for (i = 0; i < h; i++) {
01002         sptr = datas + i * wpls;
01003         dptr = datad + i * wpld;
01004         for (j = 0; j < pwpls; j++, sptr++, dptr++) {
01005             *dptr = (*sptr);
01006         }
01007     }
01008 }
01009 
01010 static void
01011 fdilate_2_7(l_uint32  *datad,
01012             l_int32    w,
01013             l_int32    h,
01014             l_int32    wpld,
01015             l_uint32  *datas,
01016             l_int32    wpls)
01017 {
01018 l_int32             i;
01019 register l_int32    j, pwpls;
01020 register l_uint32  *sptr, *dptr;
01021     
01022     pwpls = (l_uint32)(w + 31) / 32;  /* proper wpl of src */
01023 
01024     for (i = 0; i < h; i++) {
01025         sptr = datas + i * wpls;
01026         dptr = datad + i * wpld;
01027         for (j = 0; j < pwpls; j++, sptr++, dptr++) {
01028             *dptr = (*sptr);
01029         }
01030     }
01031 }
01032 
01033 static void
01034 ferode_2_7(l_uint32  *datad,
01035             l_int32    w,
01036             l_int32    h,
01037             l_int32    wpld,
01038             l_uint32  *datas,
01039             l_int32    wpls)
01040 {
01041 l_int32             i;
01042 register l_int32    j, pwpls;
01043 register l_uint32  *sptr, *dptr;
01044     
01045     pwpls = (l_uint32)(w + 31) / 32;  /* proper wpl of src */
01046 
01047     for (i = 0; i < h; i++) {
01048         sptr = datas + i * wpls;
01049         dptr = datad + i * wpld;
01050         for (j = 0; j < pwpls; j++, sptr++, dptr++) {
01051             *dptr = (*sptr);
01052         }
01053     }
01054 }
01055 
01056 static void
01057 fdilate_2_8(l_uint32  *datad,
01058             l_int32    w,
01059             l_int32    h,
01060             l_int32    wpld,
01061             l_uint32  *datas,
01062             l_int32    wpls)
01063 {
01064 l_int32             i;
01065 register l_int32    j, pwpls;
01066 register l_uint32  *sptr, *dptr;
01067     
01068     pwpls = (l_uint32)(w + 31) / 32;  /* proper wpl of src */
01069 
01070     for (i = 0; i < h; i++) {
01071         sptr = datas + i * wpls;
01072         dptr = datad + i * wpld;
01073         for (j = 0; j < pwpls; j++, sptr++, dptr++) {
01074             *dptr = ((*(sptr) << 2) | (*(sptr + 1) >> 30)) |
01075                     ((*(sptr) >> 2) | (*(sptr - 1) << 30));
01076         }
01077     }
01078 }
01079 
01080 static void
01081 ferode_2_8(l_uint32  *datad,
01082             l_int32    w,
01083             l_int32    h,
01084             l_int32    wpld,
01085             l_uint32  *datas,
01086             l_int32    wpls)
01087 {
01088 l_int32             i;
01089 register l_int32    j, pwpls;
01090 register l_uint32  *sptr, *dptr;
01091     
01092     pwpls = (l_uint32)(w + 31) / 32;  /* proper wpl of src */
01093 
01094     for (i = 0; i < h; i++) {
01095         sptr = datas + i * wpls;
01096         dptr = datad + i * wpld;
01097         for (j = 0; j < pwpls; j++, sptr++, dptr++) {
01098             *dptr = ((*(sptr) >> 2) | (*(sptr - 1) << 30)) &
01099                     ((*(sptr) << 2) | (*(sptr + 1) >> 30));
01100         }
01101     }
01102 }
01103 
01104 static void
01105 fdilate_2_9(l_uint32  *datad,
01106             l_int32    w,
01107             l_int32    h,
01108             l_int32    wpld,
01109             l_uint32  *datas,
01110             l_int32    wpls)
01111 {
01112 l_int32             i;
01113 register l_int32    j, pwpls;
01114 register l_uint32  *sptr, *dptr;
01115 l_int32             wpls2;
01116     
01117     wpls2 = 2 * wpls;
01118     pwpls = (l_uint32)(w + 31) / 32;  /* proper wpl of src */
01119 
01120     for (i = 0; i < h; i++) {
01121         sptr = datas + i * wpls;
01122         dptr = datad + i * wpld;
01123         for (j = 0; j < pwpls; j++, sptr++, dptr++) {
01124             *dptr = (*(sptr + wpls2)) |
01125                     (*(sptr - wpls2));
01126         }
01127     }
01128 }
01129 
01130 static void
01131 ferode_2_9(l_uint32  *datad,
01132             l_int32    w,
01133             l_int32    h,
01134             l_int32    wpld,
01135             l_uint32  *datas,
01136             l_int32    wpls)
01137 {
01138 l_int32             i;
01139 register l_int32    j, pwpls;
01140 register l_uint32  *sptr, *dptr;
01141 l_int32             wpls2;
01142     
01143     wpls2 = 2 * wpls;
01144     pwpls = (l_uint32)(w + 31) / 32;  /* proper wpl of src */
01145 
01146     for (i = 0; i < h; i++) {
01147         sptr = datas + i * wpls;
01148         dptr = datad + i * wpld;
01149         for (j = 0; j < pwpls; j++, sptr++, dptr++) {
01150             *dptr = (*(sptr - wpls2)) &
01151                     (*(sptr + wpls2));
01152         }
01153     }
01154 }
01155 
01156 static void
01157 fdilate_2_10(l_uint32  *datad,
01158             l_int32    w,
01159             l_int32    h,
01160             l_int32    wpld,
01161             l_uint32  *datas,
01162             l_int32    wpls)
01163 {
01164 l_int32             i;
01165 register l_int32    j, pwpls;
01166 register l_uint32  *sptr, *dptr;
01167     
01168     pwpls = (l_uint32)(w + 31) / 32;  /* proper wpl of src */
01169 
01170     for (i = 0; i < h; i++) {
01171         sptr = datas + i * wpls;
01172         dptr = datad + i * wpld;
01173         for (j = 0; j < pwpls; j++, sptr++, dptr++) {
01174             *dptr = ((*(sptr) << 3) | (*(sptr + 1) >> 29)) |
01175                     (*sptr) |
01176                     ((*(sptr) >> 3) | (*(sptr - 1) << 29));
01177         }
01178     }
01179 }
01180 
01181 static void
01182 ferode_2_10(l_uint32  *datad,
01183             l_int32    w,
01184             l_int32    h,
01185             l_int32    wpld,
01186             l_uint32  *datas,
01187             l_int32    wpls)
01188 {
01189 l_int32             i;
01190 register l_int32    j, pwpls;
01191 register l_uint32  *sptr, *dptr;
01192     
01193     pwpls = (l_uint32)(w + 31) / 32;  /* proper wpl of src */
01194 
01195     for (i = 0; i < h; i++) {
01196         sptr = datas + i * wpls;
01197         dptr = datad + i * wpld;
01198         for (j = 0; j < pwpls; j++, sptr++, dptr++) {
01199             *dptr = ((*(sptr) >> 3) | (*(sptr - 1) << 29)) &
01200                     (*sptr) &
01201                     ((*(sptr) << 3) | (*(sptr + 1) >> 29));
01202         }
01203     }
01204 }
01205 
01206 static void
01207 fdilate_2_11(l_uint32  *datad,
01208             l_int32    w,
01209             l_int32    h,
01210             l_int32    wpld,
01211             l_uint32  *datas,
01212             l_int32    wpls)
01213 {
01214 l_int32             i;
01215 register l_int32    j, pwpls;
01216 register l_uint32  *sptr, *dptr;
01217 l_int32             wpls3;
01218     
01219     wpls3 = 3 * wpls;
01220     pwpls = (l_uint32)(w + 31) / 32;  /* proper wpl of src */
01221 
01222     for (i = 0; i < h; i++) {
01223         sptr = datas + i * wpls;
01224         dptr = datad + i * wpld;
01225         for (j = 0; j < pwpls; j++, sptr++, dptr++) {
01226             *dptr = (*(sptr + wpls3)) |
01227                     (*sptr) |
01228                     (*(sptr - wpls3));
01229         }
01230     }
01231 }
01232 
01233 static void
01234 ferode_2_11(l_uint32  *datad,
01235             l_int32    w,
01236             l_int32    h,
01237             l_int32    wpld,
01238             l_uint32  *datas,
01239             l_int32    wpls)
01240 {
01241 l_int32             i;
01242 register l_int32    j, pwpls;
01243 register l_uint32  *sptr, *dptr;
01244 l_int32             wpls3;
01245     
01246     wpls3 = 3 * wpls;
01247     pwpls = (l_uint32)(w + 31) / 32;  /* proper wpl of src */
01248 
01249     for (i = 0; i < h; i++) {
01250         sptr = datas + i * wpls;
01251         dptr = datad + i * wpld;
01252         for (j = 0; j < pwpls; j++, sptr++, dptr++) {
01253             *dptr = (*(sptr - wpls3)) &
01254                     (*sptr) &
01255                     (*(sptr + wpls3));
01256         }
01257     }
01258 }
01259 
01260 static void
01261 fdilate_2_12(l_uint32  *datad,
01262             l_int32    w,
01263             l_int32    h,
01264             l_int32    wpld,
01265             l_uint32  *datas,
01266             l_int32    wpls)
01267 {
01268 l_int32             i;
01269 register l_int32    j, pwpls;
01270 register l_uint32  *sptr, *dptr;
01271     
01272     pwpls = (l_uint32)(w + 31) / 32;  /* proper wpl of src */
01273 
01274     for (i = 0; i < h; i++) {
01275         sptr = datas + i * wpls;
01276         dptr = datad + i * wpld;
01277         for (j = 0; j < pwpls; j++, sptr++, dptr++) {
01278             *dptr = ((*(sptr) << 3) | (*(sptr + 1) >> 29)) |
01279                     ((*(sptr) >> 2) | (*(sptr - 1) << 30));
01280         }
01281     }
01282 }
01283 
01284 static void
01285 ferode_2_12(l_uint32  *datad,
01286             l_int32    w,
01287             l_int32    h,
01288             l_int32    wpld,
01289             l_uint32  *datas,
01290             l_int32    wpls)
01291 {
01292 l_int32             i;
01293 register l_int32    j, pwpls;
01294 register l_uint32  *sptr, *dptr;
01295     
01296     pwpls = (l_uint32)(w + 31) / 32;  /* proper wpl of src */
01297 
01298     for (i = 0; i < h; i++) {
01299         sptr = datas + i * wpls;
01300         dptr = datad + i * wpld;
01301         for (j = 0; j < pwpls; j++, sptr++, dptr++) {
01302             *dptr = ((*(sptr) >> 3) | (*(sptr - 1) << 29)) &
01303                     ((*(sptr) << 2) | (*(sptr + 1) >> 30));
01304         }
01305     }
01306 }
01307 
01308 static void
01309 fdilate_2_13(l_uint32  *datad,
01310             l_int32    w,
01311             l_int32    h,
01312             l_int32    wpld,
01313             l_uint32  *datas,
01314             l_int32    wpls)
01315 {
01316 l_int32             i;
01317 register l_int32    j, pwpls;
01318 register l_uint32  *sptr, *dptr;
01319 l_int32             wpls2;
01320 l_int32             wpls3;
01321     
01322     wpls2 = 2 * wpls;
01323     wpls3 = 3 * wpls;
01324     pwpls = (l_uint32)(w + 31) / 32;  /* proper wpl of src */
01325 
01326     for (i = 0; i < h; i++) {
01327         sptr = datas + i * wpls;
01328         dptr = datad + i * wpld;
01329         for (j = 0; j < pwpls; j++, sptr++, dptr++) {
01330             *dptr = (*(sptr + wpls3)) |
01331                     (*(sptr - wpls2));
01332         }
01333     }
01334 }
01335 
01336 static void
01337 ferode_2_13(l_uint32  *datad,
01338             l_int32    w,
01339             l_int32    h,
01340             l_int32    wpld,
01341             l_uint32  *datas,
01342             l_int32    wpls)
01343 {
01344 l_int32             i;
01345 register l_int32    j, pwpls;
01346 register l_uint32  *sptr, *dptr;
01347 l_int32             wpls2;
01348 l_int32             wpls3;
01349     
01350     wpls2 = 2 * wpls;
01351     wpls3 = 3 * wpls;
01352     pwpls = (l_uint32)(w + 31) / 32;  /* proper wpl of src */
01353 
01354     for (i = 0; i < h; i++) {
01355         sptr = datas + i * wpls;
01356         dptr = datad + i * wpld;
01357         for (j = 0; j < pwpls; j++, sptr++, dptr++) {
01358             *dptr = (*(sptr - wpls3)) &
01359                     (*(sptr + wpls2));
01360         }
01361     }
01362 }
01363 
01364 static void
01365 fdilate_2_14(l_uint32  *datad,
01366             l_int32    w,
01367             l_int32    h,
01368             l_int32    wpld,
01369             l_uint32  *datas,
01370             l_int32    wpls)
01371 {
01372 l_int32             i;
01373 register l_int32    j, pwpls;
01374 register l_uint32  *sptr, *dptr;
01375     
01376     pwpls = (l_uint32)(w + 31) / 32;  /* proper wpl of src */
01377 
01378     for (i = 0; i < h; i++) {
01379         sptr = datas + i * wpls;
01380         dptr = datad + i * wpld;
01381         for (j = 0; j < pwpls; j++, sptr++, dptr++) {
01382             *dptr = ((*(sptr) << 4) | (*(sptr + 1) >> 28)) |
01383                     (*sptr) |
01384                     ((*(sptr) >> 4) | (*(sptr - 1) << 28));
01385         }
01386     }
01387 }
01388 
01389 static void
01390 ferode_2_14(l_uint32  *datad,
01391             l_int32    w,
01392             l_int32    h,
01393             l_int32    wpld,
01394             l_uint32  *datas,
01395             l_int32    wpls)
01396 {
01397 l_int32             i;
01398 register l_int32    j, pwpls;
01399 register l_uint32  *sptr, *dptr;
01400     
01401     pwpls = (l_uint32)(w + 31) / 32;  /* proper wpl of src */
01402 
01403     for (i = 0; i < h; i++) {
01404         sptr = datas + i * wpls;
01405         dptr = datad + i * wpld;
01406         for (j = 0; j < pwpls; j++, sptr++, dptr++) {
01407             *dptr = ((*(sptr) >> 4) | (*(sptr - 1) << 28)) &
01408                     (*sptr) &
01409                     ((*(sptr) << 4) | (*(sptr + 1) >> 28));
01410         }
01411     }
01412 }
01413 
01414 static void
01415 fdilate_2_15(l_uint32  *datad,
01416             l_int32    w,
01417             l_int32    h,
01418             l_int32    wpld,
01419             l_uint32  *datas,
01420             l_int32    wpls)
01421 {
01422 l_int32             i;
01423 register l_int32    j, pwpls;
01424 register l_uint32  *sptr, *dptr;
01425 l_int32             wpls4;
01426     
01427     wpls4 = 4 * wpls;
01428     pwpls = (l_uint32)(w + 31) / 32;  /* proper wpl of src */
01429 
01430     for (i = 0; i < h; i++) {
01431         sptr = datas + i * wpls;
01432         dptr = datad + i * wpld;
01433         for (j = 0; j < pwpls; j++, sptr++, dptr++) {
01434             *dptr = (*(sptr + wpls4)) |
01435                     (*sptr) |
01436                     (*(sptr - wpls4));
01437         }
01438     }
01439 }
01440 
01441 static void
01442 ferode_2_15(l_uint32  *datad,
01443             l_int32    w,
01444             l_int32    h,
01445             l_int32    wpld,
01446             l_uint32  *datas,
01447             l_int32    wpls)
01448 {
01449 l_int32             i;
01450 register l_int32    j, pwpls;
01451 register l_uint32  *sptr, *dptr;
01452 l_int32             wpls4;
01453     
01454     wpls4 = 4 * wpls;
01455     pwpls = (l_uint32)(w + 31) / 32;  /* proper wpl of src */
01456 
01457     for (i = 0; i < h; i++) {
01458         sptr = datas + i * wpls;
01459         dptr = datad + i * wpld;
01460         for (j = 0; j < pwpls; j++, sptr++, dptr++) {
01461             *dptr = (*(sptr - wpls4)) &
01462                     (*sptr) &
01463                     (*(sptr + wpls4));
01464         }
01465     }
01466 }
01467 
01468 static void
01469 fdilate_2_16(l_uint32  *datad,
01470             l_int32    w,
01471             l_int32    h,
01472             l_int32    wpld,
01473             l_uint32  *datas,
01474             l_int32    wpls)
01475 {
01476 l_int32             i;
01477 register l_int32    j, pwpls;
01478 register l_uint32  *sptr, *dptr;
01479     
01480     pwpls = (l_uint32)(w + 31) / 32;  /* proper wpl of src */
01481 
01482     for (i = 0; i < h; i++) {
01483         sptr = datas + i * wpls;
01484         dptr = datad + i * wpld;
01485         for (j = 0; j < pwpls; j++, sptr++, dptr++) {
01486             *dptr = ((*(sptr) << 4) | (*(sptr + 1) >> 28)) |
01487                     ((*(sptr) >> 3) | (*(sptr - 1) << 29));
01488         }
01489     }
01490 }
01491 
01492 static void
01493 ferode_2_16(l_uint32  *datad,
01494             l_int32    w,
01495             l_int32    h,
01496             l_int32    wpld,
01497             l_uint32  *datas,
01498             l_int32    wpls)
01499 {
01500 l_int32             i;
01501 register l_int32    j, pwpls;
01502 register l_uint32  *sptr, *dptr;
01503     
01504     pwpls = (l_uint32)(w + 31) / 32;  /* proper wpl of src */
01505 
01506     for (i = 0; i < h; i++) {
01507         sptr = datas + i * wpls;
01508         dptr = datad + i * wpld;
01509         for (j = 0; j < pwpls; j++, sptr++, dptr++) {
01510             *dptr = ((*(sptr) >> 4) | (*(sptr - 1) << 28)) &
01511                     ((*(sptr) << 3) | (*(sptr + 1) >> 29));
01512         }
01513     }
01514 }
01515 
01516 static void
01517 fdilate_2_17(l_uint32  *datad,
01518             l_int32    w,
01519             l_int32    h,
01520             l_int32    wpld,
01521             l_uint32  *datas,
01522             l_int32    wpls)
01523 {
01524 l_int32             i;
01525 register l_int32    j, pwpls;
01526 register l_uint32  *sptr, *dptr;
01527 l_int32             wpls3;
01528 l_int32             wpls4;
01529     
01530     wpls3 = 3 * wpls;
01531     wpls4 = 4 * wpls;
01532     pwpls = (l_uint32)(w + 31) / 32;  /* proper wpl of src */
01533 
01534     for (i = 0; i < h; i++) {
01535         sptr = datas + i * wpls;
01536         dptr = datad + i * wpld;
01537         for (j = 0; j < pwpls; j++, sptr++, dptr++) {
01538             *dptr = (*(sptr + wpls4)) |
01539                     (*(sptr - wpls3));
01540         }
01541     }
01542 }
01543 
01544 static void
01545 ferode_2_17(l_uint32  *datad,
01546             l_int32    w,
01547             l_int32    h,
01548             l_int32    wpld,
01549             l_uint32  *datas,
01550             l_int32    wpls)
01551 {
01552 l_int32             i;
01553 register l_int32    j, pwpls;
01554 register l_uint32  *sptr, *dptr;
01555 l_int32             wpls3;
01556 l_int32             wpls4;
01557     
01558     wpls3 = 3 * wpls;
01559     wpls4 = 4 * wpls;
01560     pwpls = (l_uint32)(w + 31) / 32;  /* proper wpl of src */
01561 
01562     for (i = 0; i < h; i++) {
01563         sptr = datas + i * wpls;
01564         dptr = datad + i * wpld;
01565         for (j = 0; j < pwpls; j++, sptr++, dptr++) {
01566             *dptr = (*(sptr - wpls4)) &
01567                     (*(sptr + wpls3));
01568         }
01569     }
01570 }
01571 
01572 static void
01573 fdilate_2_18(l_uint32  *datad,
01574             l_int32    w,
01575             l_int32    h,
01576             l_int32    wpld,
01577             l_uint32  *datas,
01578             l_int32    wpls)
01579 {
01580 l_int32             i;
01581 register l_int32    j, pwpls;
01582 register l_uint32  *sptr, *dptr;
01583     
01584     pwpls = (l_uint32)(w + 31) / 32;  /* proper wpl of src */
01585 
01586     for (i = 0; i < h; i++) {
01587         sptr = datas + i * wpls;
01588         dptr = datad + i * wpld;
01589         for (j = 0; j < pwpls; j++, sptr++, dptr++) {
01590             *dptr = ((*(sptr) << 5) | (*(sptr + 1) >> 27)) |
01591                     (*sptr) |
01592                     ((*(sptr) >> 5) | (*(sptr - 1) << 27));
01593         }
01594     }
01595 }
01596 
01597 static void
01598 ferode_2_18(l_uint32  *datad,
01599             l_int32    w,
01600             l_int32    h,
01601             l_int32    wpld,
01602             l_uint32  *datas,
01603             l_int32    wpls)
01604 {
01605 l_int32             i;
01606 register l_int32    j, pwpls;
01607 register l_uint32  *sptr, *dptr;
01608     
01609     pwpls = (l_uint32)(w + 31) / 32;  /* proper wpl of src */
01610 
01611     for (i = 0; i < h; i++) {
01612         sptr = datas + i * wpls;
01613         dptr = datad + i * wpld;
01614         for (j = 0; j < pwpls; j++, sptr++, dptr++) {
01615             *dptr = ((*(sptr) >> 5) | (*(sptr - 1) << 27)) &
01616                     (*sptr) &
01617                     ((*(sptr) << 5) | (*(sptr + 1) >> 27));
01618         }
01619     }
01620 }
01621 
01622 static void
01623 fdilate_2_19(l_uint32  *datad,
01624             l_int32    w,
01625             l_int32    h,
01626             l_int32    wpld,
01627             l_uint32  *datas,
01628             l_int32    wpls)
01629 {
01630 l_int32             i;
01631 register l_int32    j, pwpls;
01632 register l_uint32  *sptr, *dptr;
01633 l_int32             wpls5;
01634     
01635     wpls5 = 5 * wpls;
01636     pwpls = (l_uint32)(w + 31) / 32;  /* proper wpl of src */
01637 
01638     for (i = 0; i < h; i++) {
01639         sptr = datas + i * wpls;
01640         dptr = datad + i * wpld;
01641         for (j = 0; j < pwpls; j++, sptr++, dptr++) {
01642             *dptr = (*(sptr + wpls5)) |
01643                     (*sptr) |
01644                     (*(sptr - wpls5));
01645         }
01646     }
01647 }
01648 
01649 static void
01650 ferode_2_19(l_uint32  *datad,
01651             l_int32    w,
01652             l_int32    h,
01653             l_int32    wpld,
01654             l_uint32  *datas,
01655             l_int32    wpls)
01656 {
01657 l_int32             i;
01658 register l_int32    j, pwpls;
01659 register l_uint32  *sptr, *dptr;
01660 l_int32             wpls5;
01661     
01662     wpls5 = 5 * wpls;
01663     pwpls = (l_uint32)(w + 31) / 32;  /* proper wpl of src */
01664 
01665     for (i = 0; i < h; i++) {
01666         sptr = datas + i * wpls;
01667         dptr = datad + i * wpld;
01668         for (j = 0; j < pwpls; j++, sptr++, dptr++) {
01669             *dptr = (*(sptr - wpls5)) &
01670                     (*sptr) &
01671                     (*(sptr + wpls5));
01672         }
01673     }
01674 }
01675 
01676 static void
01677 fdilate_2_20(l_uint32  *datad,
01678             l_int32    w,
01679             l_int32    h,
01680             l_int32    wpld,
01681             l_uint32  *datas,
01682             l_int32    wpls)
01683 {
01684 l_int32             i;
01685 register l_int32    j, pwpls;
01686 register l_uint32  *sptr, *dptr;
01687     
01688     pwpls = (l_uint32)(w + 31) / 32;  /* proper wpl of src */
01689 
01690     for (i = 0; i < h; i++) {
01691         sptr = datas + i * wpls;
01692         dptr = datad + i * wpld;
01693         for (j = 0; j < pwpls; j++, sptr++, dptr++) {
01694             *dptr = ((*(sptr) << 6) | (*(sptr + 1) >> 26)) |
01695                     ((*(sptr) << 2) | (*(sptr + 1) >> 30)) |
01696                     ((*(sptr) >> 2) | (*(sptr - 1) << 30)) |
01697                     ((*(sptr) >> 6) | (*(sptr - 1) << 26));
01698         }
01699     }
01700 }
01701 
01702 static void
01703 ferode_2_20(l_uint32  *datad,
01704             l_int32    w,
01705             l_int32    h,
01706             l_int32    wpld,
01707             l_uint32  *datas,
01708             l_int32    wpls)
01709 {
01710 l_int32             i;
01711 register l_int32    j, pwpls;
01712 register l_uint32  *sptr, *dptr;
01713     
01714     pwpls = (l_uint32)(w + 31) / 32;  /* proper wpl of src */
01715 
01716     for (i = 0; i < h; i++) {
01717         sptr = datas + i * wpls;
01718         dptr = datad + i * wpld;
01719         for (j = 0; j < pwpls; j++, sptr++, dptr++) {
01720             *dptr = ((*(sptr) >> 6) | (*(sptr - 1) << 26)) &
01721                     ((*(sptr) >> 2) | (*(sptr - 1) << 30)) &
01722                     ((*(sptr) << 2) | (*(sptr + 1) >> 30)) &
01723                     ((*(sptr) << 6) | (*(sptr + 1) >> 26));
01724         }
01725     }
01726 }
01727 
01728 static void
01729 fdilate_2_21(l_uint32  *datad,
01730             l_int32    w,
01731             l_int32    h,
01732             l_int32    wpld,
01733             l_uint32  *datas,
01734             l_int32    wpls)
01735 {
01736 l_int32             i;
01737 register l_int32    j, pwpls;
01738 register l_uint32  *sptr, *dptr;
01739 l_int32             wpls2;
01740 l_int32             wpls6;
01741     
01742     wpls2 = 2 * wpls;
01743     wpls6 = 6 * wpls;
01744     pwpls = (l_uint32)(w + 31) / 32;  /* proper wpl of src */
01745 
01746     for (i = 0; i < h; i++) {
01747         sptr = datas + i * wpls;
01748         dptr = datad + i * wpld;
01749         for (j = 0; j < pwpls; j++, sptr++, dptr++) {
01750             *dptr = (*(sptr + wpls6)) |
01751                     (*(sptr + wpls2)) |
01752                     (*(sptr - wpls2)) |
01753                     (*(sptr - wpls6));
01754         }
01755     }
01756 }
01757 
01758 static void
01759 ferode_2_21(l_uint32  *datad,
01760             l_int32    w,
01761             l_int32    h,
01762             l_int32    wpld,
01763             l_uint32  *datas,
01764             l_int32    wpls)
01765 {
01766 l_int32             i;
01767 register l_int32    j, pwpls;
01768 register l_uint32  *sptr, *dptr;
01769 l_int32             wpls2;
01770 l_int32             wpls6;
01771     
01772     wpls2 = 2 * wpls;
01773     wpls6 = 6 * wpls;
01774     pwpls = (l_uint32)(w + 31) / 32;  /* proper wpl of src */
01775 
01776     for (i = 0; i < h; i++) {
01777         sptr = datas + i * wpls;
01778         dptr = datad + i * wpld;
01779         for (j = 0; j < pwpls; j++, sptr++, dptr++) {
01780             *dptr = (*(sptr - wpls6)) &
01781                     (*(sptr - wpls2)) &
01782                     (*(sptr + wpls2)) &
01783                     (*(sptr + wpls6));
01784         }
01785     }
01786 }
01787 
01788 static void
01789 fdilate_2_22(l_uint32  *datad,
01790             l_int32    w,
01791             l_int32    h,
01792             l_int32    wpld,
01793             l_uint32  *datas,
01794             l_int32    wpls)
01795 {
01796 l_int32             i;
01797 register l_int32    j, pwpls;
01798 register l_uint32  *sptr, *dptr;
01799     
01800     pwpls = (l_uint32)(w + 31) / 32;  /* proper wpl of src */
01801 
01802     for (i = 0; i < h; i++) {
01803         sptr = datas + i * wpls;
01804         dptr = datad + i * wpld;
01805         for (j = 0; j < pwpls; j++, sptr++, dptr++) {
01806             *dptr = ((*(sptr) << 6) | (*(sptr + 1) >> 26)) |
01807                     (*sptr) |
01808                     ((*(sptr) >> 6) | (*(sptr - 1) << 26));
01809         }
01810     }
01811 }
01812 
01813 static void
01814 ferode_2_22(l_uint32  *datad,
01815             l_int32    w,
01816             l_int32    h,
01817             l_int32    wpld,
01818             l_uint32  *datas,
01819             l_int32    wpls)
01820 {
01821 l_int32             i;
01822 register l_int32    j, pwpls;
01823 register l_uint32  *sptr, *dptr;
01824     
01825     pwpls = (l_uint32)(w + 31) / 32;  /* proper wpl of src */
01826 
01827     for (i = 0; i < h; i++) {
01828         sptr = datas + i * wpls;
01829         dptr = datad + i * wpld;
01830         for (j = 0; j < pwpls; j++, sptr++, dptr++) {
01831             *dptr = ((*(sptr) >> 6) | (*(sptr - 1) << 26)) &
01832                     (*sptr) &
01833                     ((*(sptr) << 6) | (*(sptr + 1) >> 26));
01834         }
01835     }
01836 }
01837 
01838 static void
01839 fdilate_2_23(l_uint32  *datad,
01840             l_int32    w,
01841             l_int32    h,
01842             l_int32    wpld,
01843             l_uint32  *datas,
01844             l_int32    wpls)
01845 {
01846 l_int32             i;
01847 register l_int32    j, pwpls;
01848 register l_uint32  *sptr, *dptr;
01849 l_int32             wpls6;
01850     
01851     wpls6 = 6 * wpls;
01852     pwpls = (l_uint32)(w + 31) / 32;  /* proper wpl of src */
01853 
01854     for (i = 0; i < h; i++) {
01855         sptr = datas + i * wpls;
01856         dptr = datad + i * wpld;
01857         for (j = 0; j < pwpls; j++, sptr++, dptr++) {
01858             *dptr = (*(sptr + wpls6)) |
01859                     (*sptr) |
01860                     (*(sptr - wpls6));
01861         }
01862     }
01863 }
01864 
01865 static void
01866 ferode_2_23(l_uint32  *datad,
01867             l_int32    w,
01868             l_int32    h,
01869             l_int32    wpld,
01870             l_uint32  *datas,
01871             l_int32    wpls)
01872 {
01873 l_int32             i;
01874 register l_int32    j, pwpls;
01875 register l_uint32  *sptr, *dptr;
01876 l_int32             wpls6;
01877     
01878     wpls6 = 6 * wpls;
01879     pwpls = (l_uint32)(w + 31) / 32;  /* proper wpl of src */
01880 
01881     for (i = 0; i < h; i++) {
01882         sptr = datas + i * wpls;
01883         dptr = datad + i * wpld;
01884         for (j = 0; j < pwpls; j++, sptr++, dptr++) {
01885             *dptr = (*(sptr - wpls6)) &
01886                     (*sptr) &
01887                     (*(sptr + wpls6));
01888         }
01889     }
01890 }
01891 
01892 static void
01893 fdilate_2_24(l_uint32  *datad,
01894             l_int32    w,
01895             l_int32    h,
01896             l_int32    wpld,
01897             l_uint32  *datas,
01898             l_int32    wpls)
01899 {
01900 l_int32             i;
01901 register l_int32    j, pwpls;
01902 register l_uint32  *sptr, *dptr;
01903     
01904     pwpls = (l_uint32)(w + 31) / 32;  /* proper wpl of src */
01905 
01906     for (i = 0; i < h; i++) {
01907         sptr = datas + i * wpls;
01908         dptr = datad + i * wpld;
01909         for (j = 0; j < pwpls; j++, sptr++, dptr++) {
01910             *dptr = ((*(sptr) << 8) | (*(sptr + 1) >> 24)) |
01911                     ((*(sptr) << 3) | (*(sptr + 1) >> 29)) |
01912                     ((*(sptr) >> 2) | (*(sptr - 1) << 30)) |
01913                     ((*(sptr) >> 7) | (*(sptr - 1) << 25));
01914         }
01915     }
01916 }
01917 
01918 static void
01919 ferode_2_24(l_uint32  *datad,
01920             l_int32    w,
01921             l_int32    h,
01922             l_int32    wpld,
01923             l_uint32  *datas,
01924             l_int32    wpls)
01925 {
01926 l_int32             i;
01927 register l_int32    j, pwpls;
01928 register l_uint32  *sptr, *dptr;
01929     
01930     pwpls = (l_uint32)(w + 31) / 32;  /* proper wpl of src */
01931 
01932     for (i = 0; i < h; i++) {
01933         sptr = datas + i * wpls;
01934         dptr = datad + i * wpld;
01935         for (j = 0; j < pwpls; j++, sptr++, dptr++) {
01936             *dptr = ((*(sptr) >> 8) | (*(sptr - 1) << 24)) &
01937                     ((*(sptr) >> 3) | (*(sptr - 1) << 29)) &
01938                     ((*(sptr) << 2) | (*(sptr + 1) >> 30)) &
01939                     ((*(sptr) << 7) | (*(sptr + 1) >> 25));
01940         }
01941     }
01942 }
01943 
01944 static void
01945 fdilate_2_25(l_uint32  *datad,
01946             l_int32    w,
01947             l_int32    h,
01948             l_int32    wpld,
01949             l_uint32  *datas,
01950             l_int32    wpls)
01951 {
01952 l_int32             i;
01953 register l_int32    j, pwpls;
01954 register l_uint32  *sptr, *dptr;
01955 l_int32             wpls2;
01956 l_int32             wpls3;
01957 l_int32             wpls7;
01958 l_int32             wpls8;
01959     
01960     wpls2 = 2 * wpls;
01961     wpls3 = 3 * wpls;
01962     wpls7 = 7 * wpls;
01963     wpls8 = 8 * wpls;
01964     pwpls = (l_uint32)(w + 31) / 32;  /* proper wpl of src */
01965 
01966     for (i = 0; i < h; i++) {
01967         sptr = datas + i * wpls;
01968         dptr = datad + i * wpld;
01969         for (j = 0; j < pwpls; j++, sptr++, dptr++) {
01970             *dptr = (*(sptr + wpls8)) |
01971                     (*(sptr + wpls3)) |
01972                     (*(sptr - wpls2)) |
01973                     (*(sptr - wpls7));
01974         }
01975     }
01976 }
01977 
01978 static void
01979 ferode_2_25(l_uint32  *datad,
01980             l_int32    w,
01981             l_int32    h,
01982             l_int32    wpld,
01983             l_uint32  *datas,
01984             l_int32    wpls)
01985 {
01986 l_int32             i;
01987 register l_int32    j, pwpls;
01988 register l_uint32  *sptr, *dptr;
01989 l_int32             wpls2;
01990 l_int32             wpls3;
01991 l_int32             wpls7;
01992 l_int32             wpls8;
01993     
01994     wpls2 = 2 * wpls;
01995     wpls3 = 3 * wpls;
01996     wpls7 = 7 * wpls;
01997     wpls8 = 8 * wpls;
01998     pwpls = (l_uint32)(w + 31) / 32;  /* proper wpl of src */
01999 
02000     for (i = 0; i < h; i++) {
02001         sptr = datas + i * wpls;
02002         dptr = datad + i * wpld;
02003         for (j = 0; j < pwpls; j++, sptr++, dptr++) {
02004             *dptr = (*(sptr - wpls8)) &
02005                     (*(sptr - wpls3)) &
02006                     (*(sptr + wpls2)) &
02007                     (*(sptr + wpls7));
02008         }
02009     }
02010 }
02011 
02012 static void
02013 fdilate_2_26(l_uint32  *datad,
02014             l_int32    w,
02015             l_int32    h,
02016             l_int32    wpld,
02017             l_uint32  *datas,
02018             l_int32    wpls)
02019 {
02020 l_int32             i;
02021 register l_int32    j, pwpls;
02022 register l_uint32  *sptr, *dptr;
02023     
02024     pwpls = (l_uint32)(w + 31) / 32;  /* proper wpl of src */
02025 
02026     for (i = 0; i < h; i++) {
02027         sptr = datas + i * wpls;
02028         dptr = datad + i * wpld;
02029         for (j = 0; j < pwpls; j++, sptr++, dptr++) {
02030             *dptr = ((*(sptr) << 7) | (*(sptr + 1) >> 25)) |
02031                     (*sptr) |
02032                     ((*(sptr) >> 7) | (*(sptr - 1) << 25));
02033         }
02034     }
02035 }
02036 
02037 static void
02038 ferode_2_26(l_uint32  *datad,
02039             l_int32    w,
02040             l_int32    h,
02041             l_int32    wpld,
02042             l_uint32  *datas,
02043             l_int32    wpls)
02044 {
02045 l_int32             i;
02046 register l_int32    j, pwpls;
02047 register l_uint32  *sptr, *dptr;
02048     
02049     pwpls = (l_uint32)(w + 31) / 32;  /* proper wpl of src */
02050 
02051     for (i = 0; i < h; i++) {
02052         sptr = datas + i * wpls;
02053         dptr = datad + i * wpld;
02054         for (j = 0; j < pwpls; j++, sptr++, dptr++) {
02055             *dptr = ((*(sptr) >> 7) | (*(sptr - 1) << 25)) &
02056                     (*sptr) &
02057                     ((*(sptr) << 7) | (*(sptr + 1) >> 25));
02058         }
02059     }
02060 }
02061 
02062 static void
02063 fdilate_2_27(l_uint32  *datad,
02064             l_int32    w,
02065             l_int32    h,
02066             l_int32    wpld,
02067             l_uint32  *datas,
02068             l_int32    wpls)
02069 {
02070 l_int32             i;
02071 register l_int32    j, pwpls;
02072 register l_uint32  *sptr, *dptr;
02073 l_int32             wpls7;
02074     
02075     wpls7 = 7 * wpls;
02076     pwpls = (l_uint32)(w + 31) / 32;  /* proper wpl of src */
02077 
02078     for (i = 0; i < h; i++) {
02079         sptr = datas + i * wpls;
02080         dptr = datad + i * wpld;
02081         for (j = 0; j < pwpls; j++, sptr++, dptr++) {
02082             *dptr = (*(sptr + wpls7)) |
02083                     (*sptr) |
02084                     (*(sptr - wpls7));
02085         }
02086     }
02087 }
02088 
02089 static void
02090 ferode_2_27(l_uint32  *datad,
02091             l_int32    w,
02092             l_int32    h,
02093             l_int32    wpld,
02094             l_uint32  *datas,
02095             l_int32    wpls)
02096 {
02097 l_int32             i;
02098 register l_int32    j, pwpls;
02099 register l_uint32  *sptr, *dptr;
02100 l_int32             wpls7;
02101     
02102     wpls7 = 7 * wpls;
02103     pwpls = (l_uint32)(w + 31) / 32;  /* proper wpl of src */
02104 
02105     for (i = 0; i < h; i++) {
02106         sptr = datas + i * wpls;
02107         dptr = datad + i * wpld;
02108         for (j = 0; j < pwpls; j++, sptr++, dptr++) {
02109             *dptr = (*(sptr - wpls7)) &
02110                     (*sptr) &
02111                     (*(sptr + wpls7));
02112         }
02113     }
02114 }
02115 
02116 static void
02117 fdilate_2_28(l_uint32  *datad,
02118             l_int32    w,
02119             l_int32    h,
02120             l_int32    wpld,
02121             l_uint32  *datas,
02122             l_int32    wpls)
02123 {
02124 l_int32             i;
02125 register l_int32    j, pwpls;
02126 register l_uint32  *sptr, *dptr;
02127     
02128     pwpls = (l_uint32)(w + 31) / 32;  /* proper wpl of src */
02129 
02130     for (i = 0; i < h; i++) {
02131         sptr = datas + i * wpls;
02132         dptr = datad + i * wpld;
02133         for (j = 0; j < pwpls; j++, sptr++, dptr++) {
02134             *dptr = ((*(sptr) << 6) | (*(sptr + 1) >> 26)) |
02135                     ((*(sptr) >> 5) | (*(sptr - 1) << 27));
02136         }
02137     }
02138 }
02139 
02140 static void
02141 ferode_2_28(l_uint32  *datad,
02142             l_int32    w,
02143             l_int32    h,
02144             l_int32    wpld,
02145             l_uint32  *datas,
02146             l_int32    wpls)
02147 {
02148 l_int32             i;
02149 register l_int32    j, pwpls;
02150 register l_uint32  *sptr, *dptr;
02151     
02152     pwpls = (l_uint32)(w + 31) / 32;  /* proper wpl of src */
02153 
02154     for (i = 0; i < h; i++) {
02155         sptr = datas + i * wpls;
02156         dptr = datad + i * wpld;
02157         for (j = 0; j < pwpls; j++, sptr++, dptr++) {
02158             *dptr = ((*(sptr) >> 6) | (*(sptr - 1) << 26)) &
02159                     ((*(sptr) << 5) | (*(sptr + 1) >> 27));
02160         }
02161     }
02162 }
02163 
02164 static void
02165 fdilate_2_29(l_uint32  *datad,
02166             l_int32    w,
02167             l_int32    h,
02168             l_int32    wpld,
02169             l_uint32  *datas,
02170             l_int32    wpls)
02171 {
02172 l_int32             i;
02173 register l_int32    j, pwpls;
02174 register l_uint32  *sptr, *dptr;
02175 l_int32             wpls5;
02176 l_int32             wpls6;
02177     
02178     wpls5 = 5 * wpls;
02179     wpls6 = 6 * wpls;
02180     pwpls = (l_uint32)(w + 31) / 32;  /* proper wpl of src */
02181 
02182     for (i = 0; i < h; i++) {
02183         sptr = datas + i * wpls;
02184         dptr = datad + i * wpld;
02185         for (j = 0; j < pwpls; j++, sptr++, dptr++) {
02186             *dptr = (*(sptr + wpls6)) |
02187                     (*(sptr - wpls5));
02188         }
02189     }
02190 }
02191 
02192 static void
02193 ferode_2_29(l_uint32  *datad,
02194             l_int32    w,
02195             l_int32    h,
02196             l_int32    wpld,
02197             l_uint32  *datas,
02198             l_int32    wpls)
02199 {
02200 l_int32             i;
02201 register l_int32    j, pwpls;
02202 register l_uint32  *sptr, *dptr;
02203 l_int32             wpls5;
02204 l_int32             wpls6;
02205     
02206     wpls5 = 5 * wpls;
02207     wpls6 = 6 * wpls;
02208     pwpls = (l_uint32)(w + 31) / 32;  /* proper wpl of src */
02209 
02210     for (i = 0; i < h; i++) {
02211         sptr = datas + i * wpls;
02212         dptr = datad + i * wpld;
02213         for (j = 0; j < pwpls; j++, sptr++, dptr++) {
02214             *dptr = (*(sptr - wpls6)) &
02215                     (*(sptr + wpls5));
02216         }
02217     }
02218 }
02219 
02220 static void
02221 fdilate_2_30(l_uint32  *datad,
02222             l_int32    w,
02223             l_int32    h,
02224             l_int32    wpld,
02225             l_uint32  *datas,
02226             l_int32    wpls)
02227 {
02228 l_int32             i;
02229 register l_int32    j, pwpls;
02230 register l_uint32  *sptr, *dptr;
02231     
02232     pwpls = (l_uint32)(w + 31) / 32;  /* proper wpl of src */
02233 
02234     for (i = 0; i < h; i++) {
02235         sptr = datas + i * wpls;
02236         dptr = datad + i * wpld;
02237         for (j = 0; j < pwpls; j++, sptr++, dptr++) {
02238             *dptr = ((*(sptr) << 9) | (*(sptr + 1) >> 23)) |
02239                     ((*(sptr) << 3) | (*(sptr + 1) >> 29)) |
02240                     ((*(sptr) >> 3) | (*(sptr - 1) << 29)) |
02241                     ((*(sptr) >> 9) | (*(sptr - 1) << 23));
02242         }
02243     }
02244 }
02245 
02246 static void
02247 ferode_2_30(l_uint32  *datad,
02248             l_int32    w,
02249             l_int32    h,
02250             l_int32    wpld,
02251             l_uint32  *datas,
02252             l_int32    wpls)
02253 {
02254 l_int32             i;
02255 register l_int32    j, pwpls;
02256 register l_uint32  *sptr, *dptr;
02257     
02258     pwpls = (l_uint32)(w + 31) / 32;  /* proper wpl of src */
02259 
02260     for (i = 0; i < h; i++) {
02261         sptr = datas + i * wpls;
02262         dptr = datad + i * wpld;
02263         for (j = 0; j < pwpls; j++, sptr++, dptr++) {
02264             *dptr = ((*(sptr) >> 9) | (*(sptr - 1) << 23)) &
02265                     ((*(sptr) >> 3) | (*(sptr - 1) << 29)) &
02266                     ((*(sptr) << 3) | (*(sptr + 1) >> 29)) &
02267                     ((*(sptr) << 9) | (*(sptr + 1) >> 23));
02268         }
02269     }
02270 }
02271 
02272 static void
02273 fdilate_2_31(l_uint32  *datad,
02274             l_int32    w,
02275             l_int32    h,
02276             l_int32    wpld,
02277             l_uint32  *datas,
02278             l_int32    wpls)
02279 {
02280 l_int32             i;
02281 register l_int32    j, pwpls;
02282 register l_uint32  *sptr, *dptr;
02283 l_int32             wpls3;
02284 l_int32             wpls9;
02285     
02286     wpls3 = 3 * wpls;
02287     wpls9 = 9 * wpls;
02288     pwpls = (l_uint32)(w + 31) / 32;  /* proper wpl of src */
02289 
02290     for (i = 0; i < h; i++) {
02291         sptr = datas + i * wpls;
02292         dptr = datad + i * wpld;
02293         for (j = 0; j < pwpls; j++, sptr++, dptr++) {
02294             *dptr = (*(sptr + wpls9)) |
02295                     (*(sptr + wpls3)) |
02296                     (*(sptr - wpls3)) |
02297                     (*(sptr - wpls9));
02298         }
02299     }
02300 }
02301 
02302 static void
02303 ferode_2_31(l_uint32  *datad,
02304             l_int32    w,
02305             l_int32    h,
02306             l_int32    wpld,
02307             l_uint32  *datas,
02308             l_int32    wpls)
02309 {
02310 l_int32             i;
02311 register l_int32    j, pwpls;
02312 register l_uint32  *sptr, *dptr;
02313 l_int32             wpls3;
02314 l_int32             wpls9;
02315     
02316     wpls3 = 3 * wpls;
02317     wpls9 = 9 * wpls;
02318     pwpls = (l_uint32)(w + 31) / 32;  /* proper wpl of src */
02319 
02320     for (i = 0; i < h; i++) {
02321         sptr = datas + i * wpls;
02322         dptr = datad + i * wpld;
02323         for (j = 0; j < pwpls; j++, sptr++, dptr++) {
02324             *dptr = (*(sptr - wpls9)) &
02325                     (*(sptr - wpls3)) &
02326                     (*(sptr + wpls3)) &
02327                     (*(sptr + wpls9));
02328         }
02329     }
02330 }
02331 
02332 static void
02333 fdilate_2_32(l_uint32  *datad,
02334             l_int32    w,
02335             l_int32    h,
02336             l_int32    wpld,
02337             l_uint32  *datas,
02338             l_int32    wpls)
02339 {
02340 l_int32             i;
02341 register l_int32    j, pwpls;
02342 register l_uint32  *sptr, *dptr;
02343     
02344     pwpls = (l_uint32)(w + 31) / 32;  /* proper wpl of src */
02345 
02346     for (i = 0; i < h; i++) {
02347         sptr = datas + i * wpls;
02348         dptr = datad + i * wpld;
02349         for (j = 0; j < pwpls; j++, sptr++, dptr++) {
02350             *dptr = ((*(sptr) << 10) | (*(sptr + 1) >> 22)) |
02351                     ((*(sptr) << 5) | (*(sptr + 1) >> 27)) |
02352                     (*sptr) |
02353                     ((*(sptr) >> 5) | (*(sptr - 1) << 27)) |
02354                     ((*(sptr) >> 10) | (*(sptr - 1) << 22));
02355         }
02356     }
02357 }
02358 
02359 static void
02360 ferode_2_32(l_uint32  *datad,
02361             l_int32    w,
02362             l_int32    h,
02363             l_int32    wpld,
02364             l_uint32  *datas,
02365             l_int32    wpls)
02366 {
02367 l_int32             i;
02368 register l_int32    j, pwpls;
02369 register l_uint32  *sptr, *dptr;
02370     
02371     pwpls = (l_uint32)(w + 31) / 32;  /* proper wpl of src */
02372 
02373     for (i = 0; i < h; i++) {
02374         sptr = datas + i * wpls;
02375         dptr = datad + i * wpld;
02376         for (j = 0; j < pwpls; j++, sptr++, dptr++) {
02377             *dptr = ((*(sptr) >> 10) | (*(sptr - 1) << 22)) &
02378                     ((*(sptr) >> 5) | (*(sptr - 1) << 27)) &
02379                     (*sptr) &
02380                     ((*(sptr) << 5) | (*(sptr + 1) >> 27)) &
02381                     ((*(sptr) << 10) | (*(sptr + 1) >> 22));
02382         }
02383     }
02384 }
02385 
02386 static void
02387 fdilate_2_33(l_uint32  *datad,
02388             l_int32    w,
02389             l_int32    h,
02390             l_int32    wpld,
02391             l_uint32  *datas,
02392             l_int32    wpls)
02393 {
02394 l_int32             i;
02395 register l_int32    j, pwpls;
02396 register l_uint32  *sptr, *dptr;
02397 l_int32             wpls5;
02398 l_int32             wpls10;
02399     
02400     wpls5 = 5 * wpls;
02401     wpls10 = 10 * wpls;
02402     pwpls = (l_uint32)(w + 31) / 32;  /* proper wpl of src */
02403 
02404     for (i = 0; i < h; i++) {
02405         sptr = datas + i * wpls;
02406         dptr = datad + i * wpld;
02407         for (j = 0; j < pwpls; j++, sptr++, dptr++) {
02408             *dptr = (*(sptr + wpls10)) |
02409                     (*(sptr + wpls5)) |
02410                     (*sptr) |
02411                     (*(sptr - wpls5)) |
02412                     (*(sptr - wpls10));
02413         }
02414     }
02415 }
02416 
02417 static void
02418 ferode_2_33(l_uint32  *datad,
02419             l_int32    w,
02420             l_int32    h,
02421             l_int32    wpld,
02422             l_uint32  *datas,
02423             l_int32    wpls)
02424 {
02425 l_int32             i;
02426 register l_int32    j, pwpls;
02427 register l_uint32  *sptr, *dptr;
02428 l_int32             wpls5;
02429 l_int32             wpls10;
02430     
02431     wpls5 = 5 * wpls;
02432     wpls10 = 10 * wpls;
02433     pwpls = (l_uint32)(w + 31) / 32;  /* proper wpl of src */
02434 
02435     for (i = 0; i < h; i++) {
02436         sptr = datas + i * wpls;
02437         dptr = datad + i * wpld;
02438         for (j = 0; j < pwpls; j++, sptr++, dptr++) {
02439             *dptr = (*(sptr - wpls10)) &
02440                     (*(sptr - wpls5)) &
02441                     (*sptr) &
02442                     (*(sptr + wpls5)) &
02443                     (*(sptr + wpls10));
02444         }
02445     }
02446 }
02447 
02448 static void
02449 fdilate_2_34(l_uint32  *datad,
02450             l_int32    w,
02451             l_int32    h,
02452             l_int32    wpld,
02453             l_uint32  *datas,
02454             l_int32    wpls)
02455 {
02456 l_int32             i;
02457 register l_int32    j, pwpls;
02458 register l_uint32  *sptr, *dptr;
02459     
02460     pwpls = (l_uint32)(w + 31) / 32;  /* proper wpl of src */
02461 
02462     for (i = 0; i < h; i++) {
02463         sptr = datas + i * wpls;
02464         dptr = datad + i * wpld;
02465         for (j = 0; j < pwpls; j++, sptr++, dptr++) {
02466             *dptr = ((*(sptr) << 9) | (*(sptr + 1) >> 23)) |
02467                     (*sptr) |
02468                     ((*(sptr) >> 9) | (*(sptr - 1) << 23));
02469         }
02470     }
02471 }
02472 
02473 static void
02474 ferode_2_34(l_uint32  *datad,
02475             l_int32    w,
02476             l_int32    h,
02477             l_int32    wpld,
02478             l_uint32  *datas,
02479             l_int32    wpls)
02480 {
02481 l_int32             i;
02482 register l_int32    j, pwpls;
02483 register l_uint32  *sptr, *dptr;
02484     
02485     pwpls = (l_uint32)(w + 31) / 32;  /* proper wpl of src */
02486 
02487     for (i = 0; i < h; i++) {
02488         sptr = datas + i * wpls;
02489         dptr = datad + i * wpld;
02490         for (j = 0; j < pwpls; j++, sptr++, dptr++) {
02491             *dptr = ((*(sptr) >> 9) | (*(sptr - 1) << 23)) &
02492                     (*sptr) &
02493                     ((*(sptr) << 9) | (*(sptr + 1) >> 23));
02494         }
02495     }
02496 }
02497 
02498 static void
02499 fdilate_2_35(l_uint32  *datad,
02500             l_int32    w,
02501             l_int32    h,
02502             l_int32    wpld,
02503             l_uint32  *datas,
02504             l_int32    wpls)
02505 {
02506 l_int32             i;
02507 register l_int32    j, pwpls;
02508 register l_uint32  *sptr, *dptr;
02509 l_int32             wpls9;
02510     
02511     wpls9 = 9 * wpls;
02512     pwpls = (l_uint32)(w + 31) / 32;  /* proper wpl of src */
02513 
02514     for (i = 0; i < h; i++) {
02515         sptr = datas + i * wpls;
02516         dptr = datad + i * wpld;
02517         for (j = 0; j < pwpls; j++, sptr++, dptr++) {
02518             *dptr = (*(sptr + wpls9)) |
02519                     (*sptr) |
02520                     (*(sptr - wpls9));
02521         }
02522     }
02523 }
02524 
02525 static void
02526 ferode_2_35(l_uint32  *datad,
02527             l_int32    w,
02528             l_int32    h,
02529             l_int32    wpld,
02530             l_uint32  *datas,
02531             l_int32    wpls)
02532 {
02533 l_int32             i;
02534 register l_int32    j, pwpls;
02535 register l_uint32  *sptr, *dptr;
02536 l_int32             wpls9;
02537     
02538     wpls9 = 9 * wpls;
02539     pwpls = (l_uint32)(w + 31) / 32;  /* proper wpl of src */
02540 
02541     for (i = 0; i < h; i++) {
02542         sptr = datas + i * wpls;
02543         dptr = datad + i * wpld;
02544         for (j = 0; j < pwpls; j++, sptr++, dptr++) {
02545             *dptr = (*(sptr - wpls9)) &
02546                     (*sptr) &
02547                     (*(sptr + wpls9));
02548         }
02549     }
02550 }
02551 
02552 static void
02553 fdilate_2_36(l_uint32  *datad,
02554             l_int32    w,
02555             l_int32    h,
02556             l_int32    wpld,
02557             l_uint32  *datas,
02558             l_int32    wpls)
02559 {
02560 l_int32             i;
02561 register l_int32    j, pwpls;
02562 register l_uint32  *sptr, *dptr;
02563     
02564     pwpls = (l_uint32)(w + 31) / 32;  /* proper wpl of src */
02565 
02566     for (i = 0; i < h; i++) {
02567         sptr = datas + i * wpls;
02568         dptr = datad + i * wpld;
02569         for (j = 0; j < pwpls; j++, sptr++, dptr++) {
02570             *dptr = ((*(sptr) << 11) | (*(sptr + 1) >> 21)) |
02571                     ((*(sptr) << 4) | (*(sptr + 1) >> 28)) |
02572                     ((*(sptr) >> 3) | (*(sptr - 1) << 29)) |
02573                     ((*(sptr) >> 10) | (*(sptr - 1) << 22));
02574         }
02575     }
02576 }
02577 
02578 static void
02579 ferode_2_36(l_uint32  *datad,
02580             l_int32    w,
02581             l_int32    h,
02582             l_int32    wpld,
02583             l_uint32  *datas,
02584             l_int32    wpls)
02585 {
02586 l_int32             i;
02587 register l_int32    j, pwpls;
02588 register l_uint32  *sptr, *dptr;
02589     
02590     pwpls = (l_uint32)(w + 31) / 32;  /* proper wpl of src */
02591 
02592     for (i = 0; i < h; i++) {
02593         sptr = datas + i * wpls;
02594         dptr = datad + i * wpld;
02595         for (j = 0; j < pwpls; j++, sptr++, dptr++) {
02596             *dptr = ((*(sptr) >> 11) | (*(sptr - 1) << 21)) &
02597                     ((*(sptr) >> 4) | (*(sptr - 1) << 28)) &
02598                     ((*(sptr) << 3) | (*(sptr + 1) >> 29)) &
02599                     ((*(sptr) << 10) | (*(sptr + 1) >> 22));
02600         }
02601     }
02602 }
02603 
02604 static void
02605 fdilate_2_37(l_uint32  *datad,
02606             l_int32    w,
02607             l_int32    h,
02608             l_int32    wpld,
02609             l_uint32  *datas,
02610             l_int32    wpls)
02611 {
02612 l_int32             i;
02613 register l_int32    j, pwpls;
02614 register l_uint32  *sptr, *dptr;
02615 l_int32             wpls3;
02616 l_int32             wpls4;
02617 l_int32             wpls10;
02618 l_int32             wpls11;
02619     
02620     wpls3 = 3 * wpls;
02621     wpls4 = 4 * wpls;
02622     wpls10 = 10 * wpls;
02623     wpls11 = 11 * wpls;
02624     pwpls = (l_uint32)(w + 31) / 32;  /* proper wpl of src */
02625 
02626     for (i = 0; i < h; i++) {
02627         sptr = datas + i * wpls;
02628         dptr = datad + i * wpld;
02629         for (j = 0; j < pwpls; j++, sptr++, dptr++) {
02630             *dptr = (*(sptr + wpls11)) |
02631                     (*(sptr + wpls4)) |
02632                     (*(sptr - wpls3)) |
02633                     (*(sptr - wpls10));
02634         }
02635     }
02636 }
02637 
02638 static void
02639 ferode_2_37(l_uint32  *datad,
02640             l_int32    w,
02641             l_int32    h,
02642             l_int32    wpld,
02643             l_uint32  *datas,
02644             l_int32    wpls)
02645 {
02646 l_int32             i;
02647 register l_int32    j, pwpls;
02648 register l_uint32  *sptr, *dptr;
02649 l_int32             wpls3;
02650 l_int32             wpls4;
02651 l_int32             wpls10;
02652 l_int32             wpls11;
02653     
02654     wpls3 = 3 * wpls;
02655     wpls4 = 4 * wpls;
02656     wpls10 = 10 * wpls;
02657     wpls11 = 11 * wpls;
02658     pwpls = (l_uint32)(w + 31) / 32;  /* proper wpl of src */
02659 
02660     for (i = 0; i < h; i++) {
02661         sptr = datas + i * wpls;
02662         dptr = datad + i * wpld;
02663         for (j = 0; j < pwpls; j++, sptr++, dptr++) {
02664             *dptr = (*(sptr - wpls11)) &
02665                     (*(sptr - wpls4)) &
02666                     (*(sptr + wpls3)) &
02667                     (*(sptr + wpls10));
02668         }
02669     }
02670 }
02671 
02672 static void
02673 fdilate_2_38(l_uint32  *datad,
02674             l_int32    w,
02675             l_int32    h,
02676             l_int32    wpld,
02677             l_uint32  *datas,
02678             l_int32    wpls)
02679 {
02680 l_int32             i;
02681 register l_int32    j, pwpls;
02682 register l_uint32  *sptr, *dptr;
02683     
02684     pwpls = (l_uint32)(w + 31) / 32;  /* proper wpl of src */
02685 
02686     for (i = 0; i < h; i++) {
02687         sptr = datas + i * wpls;
02688         dptr = datad + i * wpld;
02689         for (j = 0; j < pwpls; j++, sptr++, dptr++) {
02690             *dptr = ((*(sptr) << 12) | (*(sptr + 1) >> 20)) |
02691                     ((*(sptr) << 6) | (*(sptr + 1) >> 26)) |
02692                     (*sptr) |
02693                     ((*(sptr) >> 6) | (*(sptr - 1) << 26)) |
02694                     ((*(sptr) >> 12) | (*(sptr - 1) << 20));
02695         }
02696     }
02697 }
02698 
02699 static void
02700 ferode_2_38(l_uint32  *datad,
02701             l_int32    w,
02702             l_int32    h,
02703             l_int32    wpld,
02704             l_uint32  *datas,
02705             l_int32    wpls)
02706 {
02707 l_int32             i;
02708 register l_int32    j, pwpls;
02709 register l_uint32  *sptr, *dptr;
02710     
02711     pwpls = (l_uint32)(w + 31) / 32;  /* proper wpl of src */
02712 
02713     for (i = 0; i < h; i++) {
02714         sptr = datas + i * wpls;
02715         dptr = datad + i * wpld;
02716         for (j = 0; j < pwpls; j++, sptr++, dptr++) {
02717             *dptr = ((*(sptr) >> 12) | (*(sptr - 1) << 20)) &
02718                     ((*(sptr) >> 6) | (*(sptr - 1) << 26)) &
02719                     (*sptr) &
02720                     ((*(sptr) << 6) | (*(sptr + 1) >> 26)) &
02721                     ((*(sptr) << 12) | (*(sptr + 1) >> 20));
02722         }
02723     }
02724 }
02725 
02726 static void
02727 fdilate_2_39(l_uint32  *datad,
02728             l_int32    w,
02729             l_int32    h,
02730             l_int32    wpld,
02731             l_uint32  *datas,
02732             l_int32    wpls)
02733 {
02734 l_int32             i;
02735 register l_int32    j, pwpls;
02736 register l_uint32  *sptr, *dptr;
02737 l_int32             wpls6;
02738 l_int32             wpls12;
02739     
02740     wpls6 = 6 * wpls;
02741     wpls12 = 12 * wpls;
02742     pwpls = (l_uint32)(w + 31) / 32;  /* proper wpl of src */
02743 
02744     for (i = 0; i < h; i++) {
02745         sptr = datas + i * wpls;
02746         dptr = datad + i * wpld;
02747         for (j = 0; j < pwpls; j++, sptr++, dptr++) {
02748             *dptr = (*(sptr + wpls12)) |
02749                     (*(sptr + wpls6)) |
02750                     (*sptr) |
02751                     (*(sptr - wpls6)) |
02752                     (*(sptr - wpls12));
02753         }
02754     }
02755 }
02756 
02757 static void
02758 ferode_2_39(l_uint32  *datad,
02759             l_int32    w,
02760             l_int32    h,
02761             l_int32    wpld,
02762             l_uint32  *datas,
02763             l_int32    wpls)
02764 {
02765 l_int32             i;
02766 register l_int32    j, pwpls;
02767 register l_uint32  *sptr, *dptr;
02768 l_int32             wpls6;
02769 l_int32             wpls12;
02770     
02771     wpls6 = 6 * wpls;
02772     wpls12 = 12 * wpls;
02773     pwpls = (l_uint32)(w + 31) / 32;  /* proper wpl of src */
02774 
02775     for (i = 0; i < h; i++) {
02776         sptr = datas + i * wpls;
02777         dptr = datad + i * wpld;
02778         for (j = 0; j < pwpls; j++, sptr++, dptr++) {
02779             *dptr = (*(sptr - wpls12)) &
02780                     (*(sptr - wpls6)) &
02781                     (*sptr) &
02782                     (*(sptr + wpls6)) &
02783                     (*(sptr + wpls12));
02784         }
02785     }
02786 }
02787 
02788 static void
02789 fdilate_2_40(l_uint32  *datad,
02790             l_int32    w,
02791             l_int32    h,
02792             l_int32    wpld,
02793             l_uint32  *datas,
02794             l_int32    wpls)
02795 {
02796 l_int32             i;
02797 register l_int32    j, pwpls;
02798 register l_uint32  *sptr, *dptr;
02799     
02800     pwpls = (l_uint32)(w + 31) / 32;  /* proper wpl of src */
02801 
02802     for (i = 0; i < h; i++) {
02803         sptr = datas + i * wpls;
02804         dptr = datad + i * wpld;
02805         for (j = 0; j < pwpls; j++, sptr++, dptr++) {
02806             *dptr = ((*(sptr) << 12) | (*(sptr + 1) >> 20)) |
02807                     ((*(sptr) << 4) | (*(sptr + 1) >> 28)) |
02808                     ((*(sptr) >> 4) | (*(sptr - 1) << 28)) |
02809                     ((*(sptr) >> 12) | (*(sptr - 1) << 20));
02810         }
02811     }
02812 }
02813 
02814 static void
02815 ferode_2_40(l_uint32  *datad,
02816             l_int32    w,
02817             l_int32    h,
02818             l_int32    wpld,
02819             l_uint32  *datas,
02820             l_int32    wpls)
02821 {
02822 l_int32             i;
02823 register l_int32    j, pwpls;
02824 register l_uint32  *sptr, *dptr;
02825     
02826     pwpls = (l_uint32)(w + 31) / 32;  /* proper wpl of src */
02827 
02828     for (i = 0; i < h; i++) {
02829         sptr = datas + i * wpls;
02830         dptr = datad + i * wpld;
02831         for (j = 0; j < pwpls; j++, sptr++, dptr++) {
02832             *dptr = ((*(sptr) >> 12) | (*(sptr - 1) << 20)) &
02833                     ((*(sptr) >> 4) | (*(sptr - 1) << 28)) &
02834                     ((*(sptr) << 4) | (*(sptr + 1) >> 28)) &
02835                     ((*(sptr) << 12) | (*(sptr + 1) >> 20));
02836         }
02837     }
02838 }
02839 
02840 static void
02841 fdilate_2_41(l_uint32  *datad,
02842             l_int32    w,
02843             l_int32    h,
02844             l_int32    wpld,
02845             l_uint32  *datas,
02846             l_int32    wpls)
02847 {
02848 l_int32             i;
02849 register l_int32    j, pwpls;
02850 register l_uint32  *sptr, *dptr;
02851 l_int32             wpls4;
02852 l_int32             wpls12;
02853     
02854     wpls4 = 4 * wpls;
02855     wpls12 = 12 * wpls;
02856     pwpls = (l_uint32)(w + 31) / 32;  /* proper wpl of src */
02857 
02858     for (i = 0; i < h; i++) {
02859         sptr = datas + i * wpls;
02860         dptr = datad + i * wpld;
02861         for (j = 0; j < pwpls; j++, sptr++, dptr++) {
02862             *dptr = (*(sptr + wpls12)) |
02863                     (*(sptr + wpls4)) |
02864                     (*(sptr - wpls4)) |
02865                     (*(sptr - wpls12));
02866         }
02867     }
02868 }
02869 
02870 static void
02871 ferode_2_41(l_uint32  *datad,
02872             l_int32    w,
02873             l_int32    h,
02874             l_int32    wpld,
02875             l_uint32  *datas,
02876             l_int32    wpls)
02877 {
02878 l_int32             i;
02879 register l_int32    j, pwpls;
02880 register l_uint32  *sptr, *dptr;
02881 l_int32             wpls4;
02882 l_int32             wpls12;
02883     
02884     wpls4 = 4 * wpls;
02885     wpls12 = 12 * wpls;
02886     pwpls = (l_uint32)(w + 31) / 32;  /* proper wpl of src */
02887 
02888     for (i = 0; i < h; i++) {
02889         sptr = datas + i * wpls;
02890         dptr = datad + i * wpld;
02891         for (j = 0; j < pwpls; j++, sptr++, dptr++) {
02892             *dptr = (*(sptr - wpls12)) &
02893                     (*(sptr - wpls4)) &
02894                     (*(sptr + wpls4)) &
02895                     (*(sptr + wpls12));
02896         }
02897     }
02898 }
02899 
02900 static void
02901 fdilate_2_42(l_uint32  *datad,
02902             l_int32    w,
02903             l_int32    h,
02904             l_int32    wpld,
02905             l_uint32  *datas,
02906             l_int32    wpls)
02907 {
02908 l_int32             i;
02909 register l_int32    j, pwpls;
02910 register l_uint32  *sptr, *dptr;
02911     
02912     pwpls = (l_uint32)(w + 31) / 32;  /* proper wpl of src */
02913 
02914     for (i = 0; i < h; i++) {
02915         sptr = datas + i * wpls;
02916         dptr = datad + i * wpld;
02917         for (j = 0; j < pwpls; j++, sptr++, dptr++) {
02918             *dptr = ((*(sptr) << 11) | (*(sptr + 1) >> 21)) |
02919                     (*sptr) |
02920                     ((*(sptr) >> 11) | (*(sptr - 1) << 21));
02921         }
02922     }
02923 }
02924 
02925 static void
02926 ferode_2_42(l_uint32  *datad,
02927             l_int32    w,
02928             l_int32    h,
02929             l_int32    wpld,
02930             l_uint32  *datas,
02931             l_int32    wpls)
02932 {
02933 l_int32             i;
02934 register l_int32    j, pwpls;
02935 register l_uint32  *sptr, *dptr;
02936     
02937     pwpls = (l_uint32)(w + 31) / 32;  /* proper wpl of src */
02938 
02939     for (i = 0; i < h; i++) {
02940         sptr = datas + i * wpls;
02941         dptr = datad + i * wpld;
02942         for (j = 0; j < pwpls; j++, sptr++, dptr++) {
02943             *dptr = ((*(sptr) >> 11) | (*(sptr - 1) << 21)) &
02944                     (*sptr) &
02945                     ((*(sptr) << 11) | (*(sptr + 1) >> 21));
02946         }
02947     }
02948 }
02949 
02950 static void
02951 fdilate_2_43(l_uint32  *datad,
02952             l_int32    w,
02953             l_int32    h,
02954             l_int32    wpld,
02955             l_uint32  *datas,
02956             l_int32    wpls)
02957 {
02958 l_int32             i;
02959 register l_int32    j, pwpls;
02960 register l_uint32  *sptr, *dptr;
02961 l_int32             wpls11;
02962     
02963     wpls11 = 11 * wpls;
02964     pwpls = (l_uint32)(w + 31) / 32;  /* proper wpl of src */
02965 
02966     for (i = 0; i < h; i++) {
02967         sptr = datas + i * wpls;
02968         dptr = datad + i * wpld;
02969         for (j = 0; j < pwpls; j++, sptr++, dptr++) {
02970             *dptr = (*(sptr + wpls11)) |
02971                     (*sptr) |
02972                     (*(sptr - wpls11));
02973         }
02974     }
02975 }
02976 
02977 static void
02978 ferode_2_43(l_uint32  *datad,
02979             l_int32    w,
02980             l_int32    h,
02981             l_int32    wpld,
02982             l_uint32  *datas,
02983             l_int32    wpls)
02984 {
02985 l_int32             i;
02986 register l_int32    j, pwpls;
02987 register l_uint32  *sptr, *dptr;
02988 l_int32             wpls11;
02989     
02990     wpls11 = 11 * wpls;
02991     pwpls = (l_uint32)(w + 31) / 32;  /* proper wpl of src */
02992 
02993     for (i = 0; i < h; i++) {
02994         sptr = datas + i * wpls;
02995         dptr = datad + i * wpld;
02996         for (j = 0; j < pwpls; j++, sptr++, dptr++) {
02997             *dptr = (*(sptr - wpls11)) &
02998                     (*sptr) &
02999                     (*(sptr + wpls11));
03000         }
03001     }
03002 }
03003 
03004 static void
03005 fdilate_2_44(l_uint32  *datad,
03006             l_int32    w,
03007             l_int32    h,
03008             l_int32    wpld,
03009             l_uint32  *datas,
03010             l_int32    wpls)
03011 {
03012 l_int32             i;
03013 register l_int32    j, pwpls;
03014 register l_uint32  *sptr, *dptr;
03015     
03016     pwpls = (l_uint32)(w + 31) / 32;  /* proper wpl of src */
03017 
03018     for (i = 0; i < h; i++) {
03019         sptr = datas + i * wpls;
03020         dptr = datad + i * wpld;
03021         for (j = 0; j < pwpls; j++, sptr++, dptr++) {
03022             *dptr = ((*(sptr) << 14) | (*(sptr + 1) >> 18)) |
03023                     ((*(sptr) << 7) | (*(sptr + 1) >> 25)) |
03024                     (*sptr) |
03025                     ((*(sptr) >> 7) | (*(sptr - 1) << 25)) |
03026                     ((*(sptr) >> 14) | (*(sptr - 1) << 18));
03027         }
03028     }
03029 }
03030 
03031 static void
03032 ferode_2_44(l_uint32  *datad,
03033             l_int32    w,
03034             l_int32    h,
03035             l_int32    wpld,
03036             l_uint32  *datas,
03037             l_int32    wpls)
03038 {
03039 l_int32             i;
03040 register l_int32    j, pwpls;
03041 register l_uint32  *sptr, *dptr;
03042     
03043     pwpls = (l_uint32)(w + 31) / 32;  /* proper wpl of src */
03044 
03045     for (i = 0; i < h; i++) {
03046         sptr = datas + i * wpls;
03047         dptr = datad + i * wpld;
03048         for (j = 0; j < pwpls; j++, sptr++, dptr++) {
03049             *dptr = ((*(sptr) >> 14) | (*(sptr - 1) << 18)) &
03050                     ((*(sptr) >> 7) | (*(sptr - 1) << 25)) &
03051                     (*sptr) &
03052                     ((*(sptr) << 7) | (*(sptr + 1) >> 25)) &
03053                     ((*(sptr) << 14) | (*(sptr + 1) >> 18));
03054         }
03055     }
03056 }
03057 
03058 static void
03059 fdilate_2_45(l_uint32  *datad,
03060             l_int32    w,
03061             l_int32    h,
03062             l_int32    wpld,
03063             l_uint32  *datas,
03064             l_int32    wpls)
03065 {
03066 l_int32             i;
03067 register l_int32    j, pwpls;
03068 register l_uint32  *sptr, *dptr;
03069 l_int32             wpls7;
03070 l_int32             wpls14;
03071     
03072     wpls7 = 7 * wpls;
03073     wpls14 = 14 * wpls;
03074     pwpls = (l_uint32)(w + 31) / 32;  /* proper wpl of src */
03075 
03076     for (i = 0; i < h; i++) {
03077         sptr = datas + i * wpls;
03078         dptr = datad + i * wpld;
03079         for (j = 0; j < pwpls; j++, sptr++, dptr++) {
03080             *dptr = (*(sptr + wpls14)) |
03081                     (*(sptr + wpls7)) |
03082                     (*sptr) |
03083                     (*(sptr - wpls7)) |
03084                     (*(sptr - wpls14));
03085         }
03086     }
03087 }
03088 
03089 static void
03090 ferode_2_45(l_uint32  *datad,
03091             l_int32    w,
03092             l_int32    h,
03093             l_int32    wpld,
03094             l_uint32  *datas,
03095             l_int32    wpls)
03096 {
03097 l_int32             i;
03098 register l_int32    j, pwpls;
03099 register l_uint32  *sptr, *dptr;
03100 l_int32             wpls7;
03101 l_int32             wpls14;
03102     
03103     wpls7 = 7 * wpls;
03104     wpls14 = 14 * wpls;
03105     pwpls = (l_uint32)(w + 31) / 32;  /* proper wpl of src */
03106 
03107     for (i = 0; i < h; i++) {
03108         sptr = datas + i * wpls;
03109         dptr = datad + i * wpld;
03110         for (j = 0; j < pwpls; j++, sptr++, dptr++) {
03111             *dptr = (*(sptr - wpls14)) &
03112                     (*(sptr - wpls7)) &
03113                     (*sptr) &
03114                     (*(sptr + wpls7)) &
03115                     (*(sptr + wpls14));
03116         }
03117     }
03118 }
03119 
03120 static void
03121 fdilate_2_46(l_uint32  *datad,
03122             l_int32    w,
03123             l_int32    h,
03124             l_int32    wpld,
03125             l_uint32  *datas,
03126             l_int32    wpls)
03127 {
03128 l_int32             i;
03129 register l_int32    j, pwpls;
03130 register l_uint32  *sptr, *dptr;
03131     
03132     pwpls = (l_uint32)(w + 31) / 32;  /* proper wpl of src */
03133 
03134     for (i = 0; i < h; i++) {
03135         sptr = datas + i * wpls;
03136         dptr = datad + i * wpld;
03137         for (j = 0; j < pwpls; j++, sptr++, dptr++) {
03138             *dptr = ((*(sptr) << 15) | (*(sptr + 1) >> 17)) |
03139                     ((*(sptr) << 9) | (*(sptr + 1) >> 23)) |
03140                     ((*(sptr) << 3) | (*(sptr + 1) >> 29)) |
03141                     ((*(sptr) >> 3) | (*(sptr - 1) << 29)) |
03142                     ((*(sptr) >> 9) | (*(sptr - 1) << 23)) |
03143                     ((*(sptr) >> 15) | (*(sptr - 1) << 17));
03144         }
03145     }
03146 }
03147 
03148 static void
03149 ferode_2_46(l_uint32  *datad,
03150             l_int32    w,
03151             l_int32    h,
03152             l_int32    wpld,
03153             l_uint32  *datas,
03154             l_int32    wpls)
03155 {
03156 l_int32             i;
03157 register l_int32    j, pwpls;
03158 register l_uint32  *sptr, *dptr;
03159     
03160     pwpls = (l_uint32)(w + 31) / 32;  /* proper wpl of src */
03161 
03162     for (i = 0; i < h; i++) {
03163         sptr = datas + i * wpls;
03164         dptr = datad + i * wpld;
03165         for (j = 0; j < pwpls; j++, sptr++, dptr++) {
03166             *dptr = ((*(sptr) >> 15) | (*(sptr - 1) << 17)) &
03167                     ((*(sptr) >> 9) | (*(sptr - 1) << 23)) &
03168                     ((*(sptr) >> 3) | (*(sptr - 1) << 29)) &
03169                     ((*(sptr) << 3) | (*(sptr + 1) >> 29)) &
03170                     ((*(sptr) << 9) | (*(sptr + 1) >> 23)) &
03171                     ((*(sptr) << 15) | (*(sptr + 1) >> 17));
03172         }
03173     }
03174 }
03175 
03176 static void
03177 fdilate_2_47(l_uint32  *datad,
03178             l_int32    w,
03179             l_int32    h,
03180             l_int32    wpld,
03181             l_uint32  *datas,
03182             l_int32    wpls)
03183 {
03184 l_int32             i;
03185 register l_int32    j, pwpls;
03186 register l_uint32  *sptr, *dptr;
03187 l_int32             wpls3;
03188 l_int32             wpls9;
03189 l_int32             wpls15;
03190     
03191     wpls3 = 3 * wpls;
03192     wpls9 = 9 * wpls;
03193     wpls15 = 15 * wpls;
03194     pwpls = (l_uint32)(w + 31) / 32;  /* proper wpl of src */
03195 
03196     for (i = 0; i < h; i++) {
03197         sptr = datas + i * wpls;
03198         dptr = datad + i * wpld;
03199         for (j = 0; j < pwpls; j++, sptr++, dptr++) {
03200             *dptr = (*(sptr + wpls15)) |
03201                     (*(sptr + wpls9)) |
03202                     (*(sptr + wpls3)) |
03203                     (*(sptr - wpls3)) |
03204                     (*(sptr - wpls9)) |
03205                     (*(sptr - wpls15));
03206         }
03207     }
03208 }
03209 
03210 static void
03211 ferode_2_47(l_uint32  *datad,
03212             l_int32    w,
03213             l_int32    h,
03214             l_int32    wpld,
03215             l_uint32  *datas,
03216             l_int32    wpls)
03217 {
03218 l_int32             i;
03219 register l_int32    j, pwpls;
03220 register l_uint32  *sptr, *dptr;
03221 l_int32             wpls3;
03222 l_int32             wpls9;
03223 l_int32             wpls15;
03224     
03225     wpls3 = 3 * wpls;
03226     wpls9 = 9 * wpls;
03227     wpls15 = 15 * wpls;
03228     pwpls = (l_uint32)(w + 31) / 32;  /* proper wpl of src */
03229 
03230     for (i = 0; i < h; i++) {
03231         sptr = datas + i * wpls;
03232         dptr = datad + i * wpld;
03233         for (j = 0; j < pwpls; j++, sptr++, dptr++) {
03234             *dptr = (*(sptr - wpls15)) &
03235                     (*(sptr - wpls9)) &
03236                     (*(sptr - wpls3)) &
03237                     (*(sptr + wpls3)) &
03238                     (*(sptr + wpls9)) &
03239                     (*(sptr + wpls15));
03240         }
03241     }
03242 }
03243 
03244 static void
03245 fdilate_2_48(l_uint32  *datad,
03246             l_int32    w,
03247             l_int32    h,
03248             l_int32    wpld,
03249             l_uint32  *datas,
03250             l_int32    wpls)
03251 {
03252 l_int32             i;
03253 register l_int32    j, pwpls;
03254 register l_uint32  *sptr, *dptr;
03255     
03256     pwpls = (l_uint32)(w + 31) / 32;  /* proper wpl of src */
03257 
03258     for (i = 0; i < h; i++) {
03259         sptr = datas + i * wpls;
03260         dptr = datad + i * wpld;
03261         for (j = 0; j < pwpls; j++, sptr++, dptr++) {
03262             *dptr = ((*(sptr) << 13) | (*(sptr + 1) >> 19)) |
03263                     (*sptr) |
03264                     ((*(sptr) >> 13) | (*(sptr - 1) << 19));
03265         }
03266     }
03267 }
03268 
03269 static void
03270 ferode_2_48(l_uint32  *datad,
03271             l_int32    w,
03272             l_int32    h,
03273             l_int32    wpld,
03274             l_uint32  *datas,
03275             l_int32    wpls)
03276 {
03277 l_int32             i;
03278 register l_int32    j, pwpls;
03279 register l_uint32  *sptr, *dptr;
03280     
03281     pwpls = (l_uint32)(w + 31) / 32;  /* proper wpl of src */
03282 
03283     for (i = 0; i < h; i++) {
03284         sptr = datas + i * wpls;
03285         dptr = datad + i * wpld;
03286         for (j = 0; j < pwpls; j++, sptr++, dptr++) {
03287             *dptr = ((*(sptr) >> 13) | (*(sptr - 1) << 19)) &
03288                     (*sptr) &
03289                     ((*(sptr) << 13) | (*(sptr + 1) >> 19));
03290         }
03291     }
03292 }
03293 
03294 static void
03295 fdilate_2_49(l_uint32  *datad,
03296             l_int32    w,
03297             l_int32    h,
03298             l_int32    wpld,
03299             l_uint32  *datas,
03300             l_int32    wpls)
03301 {
03302 l_int32             i;
03303 register l_int32    j, pwpls;
03304 register l_uint32  *sptr, *dptr;
03305 l_int32             wpls13;
03306     
03307     wpls13 = 13 * wpls;
03308     pwpls = (l_uint32)(w + 31) / 32;  /* proper wpl of src */
03309 
03310     for (i = 0; i < h; i++) {
03311         sptr = datas + i * wpls;
03312         dptr = datad + i * wpld;
03313         for (j = 0; j < pwpls; j++, sptr++, dptr++) {
03314             *dptr = (*(sptr + wpls13)) |
03315                     (*sptr) |
03316                     (*(sptr - wpls13));
03317         }
03318     }
03319 }
03320 
03321 static void
03322 ferode_2_49(l_uint32  *datad,
03323             l_int32    w,
03324             l_int32    h,
03325             l_int32    wpld,
03326             l_uint32  *datas,
03327             l_int32    wpls)
03328 {
03329 l_int32             i;
03330 register l_int32    j, pwpls;
03331 register l_uint32  *sptr, *dptr;
03332 l_int32             wpls13;
03333     
03334     wpls13 = 13 * wpls;
03335     pwpls = (l_uint32)(w + 31) / 32;  /* proper wpl of src */
03336 
03337     for (i = 0; i < h; i++) {
03338         sptr = datas + i * wpls;
03339         dptr = datad + i * wpld;
03340         for (j = 0; j < pwpls; j++, sptr++, dptr++) {
03341             *dptr = (*(sptr - wpls13)) &
03342                     (*sptr) &
03343                     (*(sptr + wpls13));
03344         }
03345     }
03346 }
03347 
03348 static void
03349 fdilate_2_50(l_uint32  *datad,
03350             l_int32    w,
03351             l_int32    h,
03352             l_int32    wpld,
03353             l_uint32  *datas,
03354             l_int32    wpls)
03355 {
03356 l_int32             i;
03357 register l_int32    j, pwpls;
03358 register l_uint32  *sptr, *dptr;
03359     
03360     pwpls = (l_uint32)(w + 31) / 32;  /* proper wpl of src */
03361 
03362     for (i = 0; i < h; i++) {
03363         sptr = datas + i * wpls;
03364         dptr = datad + i * wpld;
03365         for (j = 0; j < pwpls; j++, sptr++, dptr++) {
03366             *dptr = ((*(sptr) << 16) | (*(sptr + 1) >> 16)) |
03367                     ((*(sptr) << 8) | (*(sptr + 1) >> 24)) |
03368                     (*sptr) |
03369                     ((*(sptr) >> 8) | (*(sptr - 1) << 24)) |
03370                     ((*(sptr) >> 16) | (*(sptr - 1) << 16));
03371         }
03372     }
03373 }
03374 
03375 static void
03376 ferode_2_50(l_uint32  *datad,
03377             l_int32    w,
03378             l_int32    h,
03379             l_int32    wpld,
03380             l_uint32  *datas,
03381             l_int32    wpls)
03382 {
03383 l_int32             i;
03384 register l_int32    j, pwpls;
03385 register l_uint32  *sptr, *dptr;
03386     
03387     pwpls = (l_uint32)(w + 31) / 32;  /* proper wpl of src */
03388 
03389     for (i = 0; i < h; i++) {
03390         sptr = datas + i * wpls;
03391         dptr = datad + i * wpld;
03392         for (j = 0; j < pwpls; j++, sptr++, dptr++) {
03393             *dptr = ((*(sptr) >> 16) | (*(sptr - 1) << 16)) &
03394                     ((*(sptr) >> 8) | (*(sptr - 1) << 24)) &
03395                     (*sptr) &
03396                     ((*(sptr) << 8) | (*(sptr + 1) >> 24)) &
03397                     ((*(sptr) << 16) | (*(sptr + 1) >> 16));
03398         }
03399     }
03400 }
03401 
03402 static void
03403 fdilate_2_51(l_uint32  *datad,
03404             l_int32    w,
03405             l_int32    h,
03406             l_int32    wpld,
03407             l_uint32  *datas,
03408             l_int32    wpls)
03409 {
03410 l_int32             i;
03411 register l_int32    j, pwpls;
03412 register l_uint32  *sptr, *dptr;
03413 l_int32             wpls8;
03414 l_int32             wpls16;
03415     
03416     wpls8 = 8 * wpls;
03417     wpls16 = 16 * wpls;
03418     pwpls = (l_uint32)(w + 31) / 32;  /* proper wpl of src */
03419 
03420     for (i = 0; i < h; i++) {
03421         sptr = datas + i * wpls;
03422         dptr = datad + i * wpld;
03423         for (j = 0; j < pwpls; j++, sptr++, dptr++) {
03424             *dptr = (*(sptr + wpls16)) |
03425                     (*(sptr + wpls8)) |
03426                     (*sptr) |
03427                     (*(sptr - wpls8)) |
03428                     (*(sptr - wpls16));
03429         }
03430     }
03431 }
03432 
03433 static void
03434 ferode_2_51(l_uint32  *datad,
03435             l_int32    w,
03436             l_int32    h,
03437             l_int32    wpld,
03438             l_uint32  *datas,
03439             l_int32    wpls)
03440 {
03441 l_int32             i;
03442 register l_int32    j, pwpls;
03443 register l_uint32  *sptr, *dptr;
03444 l_int32             wpls8;
03445 l_int32             wpls16;
03446     
03447     wpls8 = 8 * wpls;
03448     wpls16 = 16 * wpls;
03449     pwpls = (l_uint32)(w + 31) / 32;  /* proper wpl of src */
03450 
03451     for (i = 0; i < h; i++) {
03452         sptr = datas + i * wpls;
03453         dptr = datad + i * wpld;
03454         for (j = 0; j < pwpls; j++, sptr++, dptr++) {
03455             *dptr = (*(sptr - wpls16)) &
03456                     (*(sptr - wpls8)) &
03457                     (*sptr) &
03458                     (*(sptr + wpls8)) &
03459                     (*(sptr + wpls16));
03460         }
03461     }
03462 }
03463 
03464 static void
03465 fdilate_2_52(l_uint32  *datad,
03466             l_int32    w,
03467             l_int32    h,
03468             l_int32    wpld,
03469             l_uint32  *datas,
03470             l_int32    wpls)
03471 {
03472 l_int32             i;
03473 register l_int32    j, pwpls;
03474 register l_uint32  *sptr, *dptr;
03475     
03476     pwpls = (l_uint32)(w + 31) / 32;  /* proper wpl of src */
03477 
03478     for (i = 0; i < h; i++) {
03479         sptr = datas + i * wpls;
03480         dptr = datad + i * wpld;
03481         for (j = 0; j < pwpls; j++, sptr++, dptr++) {
03482             *dptr = ((*(sptr) << 18) | (*(sptr + 1) >> 14)) |
03483                     ((*(sptr) << 11) | (*(sptr + 1) >> 21)) |
03484                     ((*(sptr) << 4) | (*(sptr + 1) >> 28)) |
03485                     ((*(sptr) >> 3) | (*(sptr - 1) << 29)) |
03486                     ((*(sptr) >> 10) | (*(sptr - 1) << 22)) |
03487                     ((*(sptr) >> 17) | (*(sptr - 1) << 15));
03488         }
03489     }
03490 }
03491 
03492 static void
03493 ferode_2_52(l_uint32  *datad,
03494             l_int32    w,
03495             l_int32    h,
03496             l_int32    wpld,
03497             l_uint32  *datas,
03498             l_int32    wpls)
03499 {
03500 l_int32             i;
03501 register l_int32    j, pwpls;
03502 register l_uint32  *sptr, *dptr;
03503     
03504     pwpls = (l_uint32)(w + 31) / 32;  /* proper wpl of src */
03505 
03506     for (i = 0; i < h; i++) {
03507         sptr = datas + i * wpls;
03508         dptr = datad + i * wpld;
03509         for (j = 0; j < pwpls; j++, sptr++, dptr++) {
03510             *dptr = ((*(sptr) >> 18) | (*(sptr - 1) << 14)) &
03511                     ((*(sptr) >> 11) | (*(sptr - 1) << 21)) &
03512                     ((*(sptr) >> 4) | (*(sptr - 1) << 28)) &
03513                     ((*(sptr) << 3) | (*(sptr + 1) >> 29)) &
03514                     ((*(sptr) << 10) | (*(sptr + 1) >> 22)) &
03515                     ((*(sptr) << 17) | (*(sptr + 1) >> 15));
03516         }
03517     }
03518 }
03519 
03520 static void
03521 fdilate_2_53(l_uint32  *datad,
03522             l_int32    w,
03523             l_int32    h,
03524             l_int32    wpld,
03525             l_uint32  *datas,
03526             l_int32    wpls)
03527 {
03528 l_int32             i;
03529 register l_int32    j, pwpls;
03530 register l_uint32  *sptr, *dptr;
03531 l_int32             wpls3;
03532 l_int32             wpls4;
03533 l_int32             wpls10;
03534 l_int32             wpls11;
03535 l_int32             wpls17;
03536 l_int32             wpls18;
03537     
03538     wpls3 = 3 * wpls;
03539     wpls4 = 4 * wpls;
03540     wpls10 = 10 * wpls;
03541     wpls11 = 11 * wpls;
03542     wpls17 = 17 * wpls;
03543     wpls18 = 18 * wpls;
03544     pwpls = (l_uint32)(w + 31) / 32;  /* proper wpl of src */
03545 
03546     for (i = 0; i < h; i++) {
03547         sptr = datas + i * wpls;
03548         dptr = datad + i * wpld;
03549         for (j = 0; j < pwpls; j++, sptr++, dptr++) {
03550             *dptr = (*(sptr + wpls18)) |
03551                     (*(sptr + wpls11)) |
03552                     (*(sptr + wpls4)) |
03553                     (*(sptr - wpls3)) |
03554                     (*(sptr - wpls10)) |
03555                     (*(sptr - wpls17));
03556         }
03557     }
03558 }
03559 
03560 static void
03561 ferode_2_53(l_uint32  *datad,
03562             l_int32    w,
03563             l_int32    h,
03564             l_int32    wpld,
03565             l_uint32  *datas,
03566             l_int32    wpls)
03567 {
03568 l_int32             i;
03569 register l_int32    j, pwpls;
03570 register l_uint32  *sptr, *dptr;
03571 l_int32             wpls3;
03572 l_int32             wpls4;
03573 l_int32             wpls10;
03574 l_int32             wpls11;
03575 l_int32             wpls17;
03576 l_int32             wpls18;
03577     
03578     wpls3 = 3 * wpls;
03579     wpls4 = 4 * wpls;
03580     wpls10 = 10 * wpls;
03581     wpls11 = 11 * wpls;
03582     wpls17 = 17 * wpls;
03583     wpls18 = 18 * wpls;
03584     pwpls = (l_uint32)(w + 31) / 32;  /* proper wpl of src */
03585 
03586     for (i = 0; i < h; i++) {
03587         sptr = datas + i * wpls;
03588         dptr = datad + i * wpld;
03589         for (j = 0; j < pwpls; j++, sptr++, dptr++) {
03590             *dptr = (*(sptr - wpls18)) &
03591                     (*(sptr - wpls11)) &
03592                     (*(sptr - wpls4)) &
03593                     (*(sptr + wpls3)) &
03594                     (*(sptr + wpls10)) &
03595                     (*(sptr + wpls17));
03596         }
03597     }
03598 }
03599 
03600 static void
03601 fdilate_2_54(l_uint32  *datad,
03602             l_int32    w,
03603             l_int32    h,
03604             l_int32    wpld,
03605             l_uint32  *datas,
03606             l_int32    wpls)
03607 {
03608 l_int32             i;
03609 register l_int32    j, pwpls;
03610 register l_uint32  *sptr, *dptr;
03611     
03612     pwpls = (l_uint32)(w + 31) / 32;  /* proper wpl of src */
03613 
03614     for (i = 0; i < h; i++) {
03615         sptr = datas + i * wpls;
03616         dptr = datad + i * wpld;
03617         for (j = 0; j < pwpls; j++, sptr++, dptr++) {
03618             *dptr = ((*(sptr) << 17) | (*(sptr + 1) >> 15)) |
03619                     ((*(sptr) << 6) | (*(sptr + 1) >> 26)) |
03620                     ((*(sptr) >> 5) | (*(sptr - 1) << 27)) |
03621                     ((*(sptr) >> 16) | (*(sptr - 1) << 16));
03622         }
03623     }
03624 }
03625 
03626 static void
03627 ferode_2_54(l_uint32  *datad,
03628             l_int32    w,
03629             l_int32    h,
03630             l_int32    wpld,
03631             l_uint32  *datas,
03632             l_int32    wpls)
03633 {
03634 l_int32             i;
03635 register l_int32    j, pwpls;
03636 register l_uint32  *sptr, *dptr;
03637     
03638     pwpls = (l_uint32)(w + 31) / 32;  /* proper wpl of src */
03639 
03640     for (i = 0; i < h; i++) {
03641         sptr = datas + i * wpls;
03642         dptr = datad + i * wpld;
03643         for (j = 0; j < pwpls; j++, sptr++, dptr++) {
03644             *dptr = ((*(sptr) >> 17) | (*(sptr - 1) << 15)) &
03645                     ((*(sptr) >> 6) | (*(sptr - 1) << 26)) &
03646                     ((*(sptr) << 5) | (*(sptr + 1) >> 27)) &
03647                     ((*(sptr) << 16) | (*(sptr + 1) >> 16));
03648         }
03649     }
03650 }
03651 
03652 static void
03653 fdilate_2_55(l_uint32  *datad,
03654             l_int32    w,
03655             l_int32    h,
03656             l_int32    wpld,
03657             l_uint32  *datas,
03658             l_int32    wpls)
03659 {
03660 l_int32             i;
03661 register l_int32    j, pwpls;
03662 register l_uint32  *sptr, *dptr;
03663 l_int32             wpls5;
03664 l_int32             wpls6;
03665 l_int32             wpls16;
03666 l_int32             wpls17;
03667     
03668     wpls5 = 5 * wpls;
03669     wpls6 = 6 * wpls;
03670     wpls16 = 16 * wpls;
03671     wpls17 = 17 * wpls;
03672     pwpls = (l_uint32)(w + 31) / 32;  /* proper wpl of src */
03673 
03674     for (i = 0; i < h; i++) {
03675         sptr = datas + i * wpls;
03676         dptr = datad + i * wpld;
03677         for (j = 0; j < pwpls; j++, sptr++, dptr++) {
03678             *dptr = (*(sptr + wpls17)) |
03679                     (*(sptr + wpls6)) |
03680                     (*(sptr - wpls5)) |
03681                     (*(sptr - wpls16));
03682         }
03683     }
03684 }
03685 
03686 static void
03687 ferode_2_55(l_uint32  *datad,
03688             l_int32    w,
03689             l_int32    h,
03690             l_int32    wpld,
03691             l_uint32  *datas,
03692             l_int32    wpls)
03693 {
03694 l_int32             i;
03695 register l_int32    j, pwpls;
03696 register l_uint32  *sptr, *dptr;
03697 l_int32             wpls5;
03698 l_int32             wpls6;
03699 l_int32             wpls16;
03700 l_int32             wpls17;
03701     
03702     wpls5 = 5 * wpls;
03703     wpls6 = 6 * wpls;
03704     wpls16 = 16 * wpls;
03705     wpls17 = 17 * wpls;
03706     pwpls = (l_uint32)(w + 31) / 32;  /* proper wpl of src */
03707 
03708     for (i = 0; i < h; i++) {
03709         sptr = datas + i * wpls;
03710         dptr = datad + i * wpld;
03711         for (j = 0; j < pwpls; j++, sptr++, dptr++) {
03712             *dptr = (*(sptr - wpls17)) &
03713                     (*(sptr - wpls6)) &
03714                     (*(sptr + wpls5)) &
03715                     (*(sptr + wpls16));
03716         }
03717     }
03718 }
03719 
03720 static void
03721 fdilate_2_56(l_uint32  *datad,
03722             l_int32    w,
03723             l_int32    h,
03724             l_int32    wpld,
03725             l_uint32  *datas,
03726             l_int32    wpls)
03727 {
03728 l_int32             i;
03729 register l_int32    j, pwpls;
03730 register l_uint32  *sptr, *dptr;
03731     
03732     pwpls = (l_uint32)(w + 31) / 32;  /* proper wpl of src */
03733 
03734     for (i = 0; i < h; i++) {
03735         sptr = datas + i * wpls;
03736         dptr = datad + i * wpld;
03737         for (j = 0; j < pwpls; j++, sptr++, dptr++) {
03738             *dptr = ((*(sptr) << 18) | (*(sptr + 1) >> 14)) |
03739                     ((*(sptr) << 9) | (*(sptr + 1) >> 23)) |
03740                     (*sptr) |
03741                     ((*(sptr) >> 9) | (*(sptr - 1) << 23)) |
03742                     ((*(sptr) >> 18) | (*(sptr - 1) << 14));
03743         }
03744     }
03745 }
03746 
03747 static void
03748 ferode_2_56(l_uint32  *datad,
03749             l_int32    w,
03750             l_int32    h,
03751             l_int32    wpld,
03752             l_uint32  *datas,
03753             l_int32    wpls)
03754 {
03755 l_int32             i;
03756 register l_int32    j, pwpls;
03757 register l_uint32  *sptr, *dptr;
03758     
03759     pwpls = (l_uint32)(w + 31) / 32;  /* proper wpl of src */
03760 
03761     for (i = 0; i < h; i++) {
03762         sptr = datas + i * wpls;
03763         dptr = datad + i * wpld;
03764         for (j = 0; j < pwpls; j++, sptr++, dptr++) {
03765             *dptr = ((*(sptr) >> 18) | (*(sptr - 1) << 14)) &
03766                     ((*(sptr) >> 9) | (*(sptr - 1) << 23)) &
03767                     (*sptr) &
03768                     ((*(sptr) << 9) | (*(sptr + 1) >> 23)) &
03769                     ((*(sptr) << 18) | (*(sptr + 1) >> 14));
03770         }
03771     }
03772 }
03773 
03774 static void
03775 fdilate_2_57(l_uint32  *datad,
03776             l_int32    w,
03777             l_int32    h,
03778             l_int32    wpld,
03779             l_uint32  *datas,
03780             l_int32    wpls)
03781 {
03782 l_int32             i;
03783 register l_int32    j, pwpls;
03784 register l_uint32  *sptr, *dptr;
03785 l_int32             wpls9;
03786 l_int32             wpls18;
03787     
03788     wpls9 = 9 * wpls;
03789     wpls18 = 18 * wpls;
03790     pwpls = (l_uint32)(w + 31) / 32;  /* proper wpl of src */
03791 
03792     for (i = 0; i < h; i++) {
03793         sptr = datas + i * wpls;
03794         dptr = datad + i * wpld;
03795         for (j = 0; j < pwpls; j++, sptr++, dptr++) {
03796             *dptr = (*(sptr + wpls18)) |
03797                     (*(sptr + wpls9)) |
03798                     (*sptr) |
03799                     (*(sptr - wpls9)) |
03800                     (*(sptr - wpls18));
03801         }
03802     }
03803 }
03804 
03805 static void
03806 ferode_2_57(l_uint32  *datad,
03807             l_int32    w,
03808             l_int32    h,
03809             l_int32    wpld,
03810             l_uint32  *datas,
03811             l_int32    wpls)
03812 {
03813 l_int32             i;
03814 register l_int32    j, pwpls;
03815 register l_uint32  *sptr, *dptr;
03816 l_int32             wpls9;
03817 l_int32             wpls18;
03818     
03819     wpls9 = 9 * wpls;
03820     wpls18 = 18 * wpls;
03821     pwpls = (l_uint32)(w + 31) / 32;  /* proper wpl of src */
03822 
03823     for (i = 0; i < h; i++) {
03824         sptr = datas + i * wpls;
03825         dptr = datad + i * wpld;
03826         for (j = 0; j < pwpls; j++, sptr++, dptr++) {
03827             *dptr = (*(sptr - wpls18)) &
03828                     (*(sptr - wpls9)) &
03829                     (*sptr) &
03830                     (*(sptr + wpls9)) &
03831                     (*(sptr + wpls18));
03832         }
03833     }
03834 }
03835 
03836 static void
03837 fdilate_2_58(l_uint32  *datad,
03838             l_int32    w,
03839             l_int32    h,
03840             l_int32    wpld,
03841             l_uint32  *datas,
03842             l_int32    wpls)
03843 {
03844 l_int32             i;
03845 register l_int32    j, pwpls;
03846 register l_uint32  *sptr, *dptr;
03847     
03848     pwpls = (l_uint32)(w + 31) / 32;  /* proper wpl of src */
03849 
03850     for (i = 0; i < h; i++) {
03851         sptr = datas + i * wpls;
03852         dptr = datad + i * wpld;
03853         for (j = 0; j < pwpls; j++, sptr++, dptr++) {
03854             *dptr = ((*(sptr) << 20) | (*(sptr + 1) >> 12)) |
03855                     ((*(sptr) << 12) | (*(sptr + 1) >> 20)) |
03856                     ((*(sptr) << 4) | (*(sptr + 1) >> 28)) |
03857                     ((*(sptr) >> 4) | (*(sptr - 1) << 28)) |
03858                     ((*(sptr) >> 12) | (*(sptr - 1) << 20)) |
03859                     ((*(sptr) >> 20) | (*(sptr - 1) << 12));
03860         }
03861     }
03862 }
03863 
03864 static void
03865 ferode_2_58(l_uint32  *datad,
03866             l_int32    w,
03867             l_int32    h,
03868             l_int32    wpld,
03869             l_uint32  *datas,
03870             l_int32    wpls)
03871 {
03872 l_int32             i;
03873 register l_int32    j, pwpls;
03874 register l_uint32  *sptr, *dptr;
03875     
03876     pwpls = (l_uint32)(w + 31) / 32;  /* proper wpl of src */
03877 
03878     for (i = 0; i < h; i++) {
03879         sptr = datas + i * wpls;
03880         dptr = datad + i * wpld;
03881         for (j = 0; j < pwpls; j++, sptr++, dptr++) {
03882             *dptr = ((*(sptr) >> 20) | (*(sptr - 1) << 12)) &
03883                     ((*(sptr) >> 12) | (*(sptr - 1) << 20)) &
03884                     ((*(sptr) >> 4) | (*(sptr - 1) << 28)) &
03885                     ((*(sptr) << 4) | (*(sptr + 1) >> 28)) &
03886                     ((*(sptr) << 12) | (*(sptr + 1) >> 20)) &
03887                     ((*(sptr) << 20) | (*(sptr + 1) >> 12));
03888         }
03889     }
03890 }
03891 
03892 static void
03893 fdilate_2_59(l_uint32  *datad,
03894             l_int32    w,
03895             l_int32    h,
03896             l_int32    wpld,
03897             l_uint32  *datas,
03898             l_int32    wpls)
03899 {
03900 l_int32             i;
03901 register l_int32    j, pwpls;
03902 register l_uint32  *sptr, *dptr;
03903 l_int32             wpls4;
03904 l_int32             wpls12;
03905 l_int32             wpls20;
03906     
03907     wpls4 = 4 * wpls;
03908     wpls12 = 12 * wpls;
03909     wpls20 = 20 * wpls;
03910     pwpls = (l_uint32)(w + 31) / 32;  /* proper wpl of src */
03911 
03912     for (i = 0; i < h; i++) {
03913         sptr = datas + i * wpls;
03914         dptr = datad + i * wpld;
03915         for (j = 0; j < pwpls; j++, sptr++, dptr++) {
03916             *dptr = (*(sptr + wpls20)) |
03917                     (*(sptr + wpls12)) |
03918                     (*(sptr + wpls4)) |
03919                     (*(sptr - wpls4)) |
03920                     (*(sptr - wpls12)) |
03921                     (*(sptr - wpls20));
03922         }
03923     }
03924 }
03925 
03926 static void
03927 ferode_2_59(l_uint32  *datad,
03928             l_int32    w,
03929             l_int32    h,
03930             l_int32    wpld,
03931             l_uint32  *datas,
03932             l_int32    wpls)
03933 {
03934 l_int32             i;
03935 register l_int32    j, pwpls;
03936 register l_uint32  *sptr, *dptr;
03937 l_int32             wpls4;
03938 l_int32             wpls12;
03939 l_int32             wpls20;
03940     
03941     wpls4 = 4 * wpls;
03942     wpls12 = 12 * wpls;
03943     wpls20 = 20 * wpls;
03944     pwpls = (l_uint32)(w + 31) / 32;  /* proper wpl of src */
03945 
03946     for (i = 0; i < h; i++) {
03947         sptr = datas + i * wpls;
03948         dptr = datad + i * wpld;
03949         for (j = 0; j < pwpls; j++, sptr++, dptr++) {
03950             *dptr = (*(sptr - wpls20)) &
03951                     (*(sptr - wpls12)) &
03952                     (*(sptr - wpls4)) &
03953                     (*(sptr + wpls4)) &
03954                     (*(sptr + wpls12)) &
03955                     (*(sptr + wpls20));
03956         }
03957     }
03958 }
03959 
03960 static void
03961 fdilate_2_60(l_uint32  *datad,
03962             l_int32    w,
03963             l_int32    h,
03964             l_int32    wpld,
03965             l_uint32  *datas,
03966             l_int32    wpls)
03967 {
03968 l_int32             i;
03969 register l_int32    j, pwpls;
03970 register l_uint32  *sptr, *dptr;
03971     
03972     pwpls = (l_uint32)(w + 31) / 32;  /* proper wpl of src */
03973 
03974     for (i = 0; i < h; i++) {
03975         sptr = datas + i * wpls;
03976         dptr = datad + i * wpld;
03977         for (j = 0; j < pwpls; j++, sptr++, dptr++) {
03978             *dptr = ((*(sptr) << 21) | (*(sptr + 1) >> 11)) |
03979                     ((*(sptr) << 14) | (*(sptr + 1) >> 18)) |
03980                     ((*(sptr) << 7) | (*(sptr + 1) >> 25)) |
03981                     (*sptr) |
03982                     ((*(sptr) >> 7) | (*(sptr - 1) << 25)) |
03983                     ((*(sptr) >> 14) | (*(sptr - 1) << 18)) |
03984                     ((*(sptr) >> 21) | (*(sptr - 1) << 11));
03985         }
03986     }
03987 }
03988 
03989 static void
03990 ferode_2_60(l_uint32  *datad,
03991             l_int32    w,
03992             l_int32    h,
03993             l_int32    wpld,
03994             l_uint32  *datas,
03995             l_int32    wpls)
03996 {
03997 l_int32             i;
03998 register l_int32    j, pwpls;
03999 register l_uint32  *sptr, *dptr;
04000     
04001     pwpls = (l_uint32)(w + 31) / 32;  /* proper wpl of src */
04002 
04003     for (i = 0; i < h; i++) {
04004         sptr = datas + i * wpls;
04005         dptr = datad + i * wpld;
04006         for (j = 0; j < pwpls; j++, sptr++, dptr++) {
04007             *dptr = ((*(sptr) >> 21) | (*(sptr - 1) << 11)) &
04008                     ((*(sptr) >> 14) | (*(sptr - 1) << 18)) &
04009                     ((*(sptr) >> 7) | (*(sptr - 1) << 25)) &
04010                     (*sptr) &
04011                     ((*(sptr) << 7) | (*(sptr + 1) >> 25)) &
04012                     ((*(sptr) << 14) | (*(sptr + 1) >> 18)) &
04013                     ((*(sptr) << 21) | (*(sptr + 1) >> 11));
04014         }
04015     }
04016 }
04017 
04018 static void
04019 fdilate_2_61(l_uint32  *datad,
04020             l_int32    w,
04021             l_int32    h,
04022             l_int32    wpld,
04023             l_uint32  *datas,
04024             l_int32    wpls)
04025 {
04026 l_int32             i;
04027 register l_int32    j, pwpls;
04028 register l_uint32  *sptr, *dptr;
04029 l_int32             wpls7;
04030 l_int32             wpls14;
04031 l_int32             wpls21;
04032     
04033     wpls7 = 7 * wpls;
04034     wpls14 = 14 * wpls;
04035     wpls21 = 21 * wpls;
04036     pwpls = (l_uint32)(w + 31) / 32;  /* proper wpl of src */
04037 
04038     for (i = 0; i < h; i++) {
04039         sptr = datas + i * wpls;
04040         dptr = datad + i * wpld;
04041         for (j = 0; j < pwpls; j++, sptr++, dptr++) {
04042             *dptr = (*(sptr + wpls21)) |
04043                     (*(sptr + wpls14)) |
04044                     (*(sptr + wpls7)) |
04045                     (*sptr) |
04046                     (*(sptr - wpls7)) |
04047                     (*(sptr - wpls14)) |
04048                     (*(sptr - wpls21));
04049         }
04050     }
04051 }
04052 
04053 static void
04054 ferode_2_61(l_uint32  *datad,
04055             l_int32    w,
04056             l_int32    h,
04057             l_int32    wpld,
04058             l_uint32  *datas,
04059             l_int32    wpls)
04060 {
04061 l_int32             i;
04062 register l_int32    j, pwpls;
04063 register l_uint32  *sptr, *dptr;
04064 l_int32             wpls7;
04065 l_int32             wpls14;
04066 l_int32             wpls21;
04067     
04068     wpls7 = 7 * wpls;
04069     wpls14 = 14 * wpls;
04070     wpls21 = 21 * wpls;
04071     pwpls = (l_uint32)(w + 31) / 32;  /* proper wpl of src */
04072 
04073     for (i = 0; i < h; i++) {
04074         sptr = datas + i * wpls;
04075         dptr = datad + i * wpld;
04076         for (j = 0; j < pwpls; j++, sptr++, dptr++) {
04077             *dptr = (*(sptr - wpls21)) &
04078                     (*(sptr - wpls14)) &
04079                     (*(sptr - wpls7)) &
04080                     (*sptr) &
04081                     (*(sptr + wpls7)) &
04082                     (*(sptr + wpls14)) &
04083                     (*(sptr + wpls21));
04084         }
04085     }
04086 }
04087 
04088 static void
04089 fdilate_2_62(l_uint32  *datad,
04090             l_int32    w,
04091             l_int32    h,
04092             l_int32    wpld,
04093             l_uint32  *datas,
04094             l_int32    wpls)
04095 {
04096 l_int32             i;
04097 register l_int32    j, pwpls;
04098 register l_uint32  *sptr, *dptr;
04099     
04100     pwpls = (l_uint32)(w + 31) / 32;  /* proper wpl of src */
04101 
04102     for (i = 0; i < h; i++) {
04103         sptr = datas + i * wpls;
04104         dptr = datad + i * wpld;
04105         for (j = 0; j < pwpls; j++, sptr++, dptr++) {
04106             *dptr = ((*(sptr) << 20) | (*(sptr + 1) >> 12)) |
04107                     ((*(sptr) << 10) | (*(sptr + 1) >> 22)) |
04108                     (*sptr) |
04109                     ((*(sptr) >> 10) | (*(sptr - 1) << 22)) |
04110                     ((*(sptr) >> 20) | (*(sptr - 1) << 12));
04111         }
04112     }
04113 }
04114 
04115 static void
04116 ferode_2_62(l_uint32  *datad,
04117             l_int32    w,
04118             l_int32    h,
04119             l_int32    wpld,
04120             l_uint32  *datas,
04121             l_int32    wpls)
04122 {
04123 l_int32             i;
04124 register l_int32    j, pwpls;
04125 register l_uint32  *sptr, *dptr;
04126     
04127     pwpls = (l_uint32)(w + 31) / 32;  /* proper wpl of src */
04128 
04129     for (i = 0; i < h; i++) {
04130         sptr = datas + i * wpls;
04131         dptr = datad + i * wpld;
04132         for (j = 0; j < pwpls; j++, sptr++, dptr++) {
04133             *dptr = ((*(sptr) >> 20) | (*(sptr - 1) << 12)) &
04134                     ((*(sptr) >> 10) | (*(sptr - 1) << 22)) &
04135                     (*sptr) &
04136                     ((*(sptr) << 10) | (*(sptr + 1) >> 22)) &
04137                     ((*(sptr) << 20) | (*(sptr + 1) >> 12));
04138         }
04139     }
04140 }
04141 
04142 static void
04143 fdilate_2_63(l_uint32  *datad,
04144             l_int32    w,
04145             l_int32    h,
04146             l_int32    wpld,
04147             l_uint32  *datas,
04148             l_int32    wpls)
04149 {
04150 l_int32             i;
04151 register l_int32    j, pwpls;
04152 register l_uint32  *sptr, *dptr;
04153 l_int32             wpls10;
04154 l_int32             wpls20;
04155     
04156     wpls10 = 10 * wpls;
04157     wpls20 = 20 * wpls;
04158     pwpls = (l_uint32)(w + 31) / 32;  /* proper wpl of src */
04159 
04160     for (i = 0; i < h; i++) {
04161         sptr = datas + i * wpls;
04162         dptr = datad + i * wpld;
04163         for (j = 0; j < pwpls; j++, sptr++, dptr++) {
04164             *dptr = (*(sptr + wpls20)) |
04165                     (*(sptr + wpls10)) |
04166                     (*sptr) |
04167                     (*(sptr - wpls10)) |
04168                     (*(sptr - wpls20));
04169         }
04170     }
04171 }
04172 
04173 static void
04174 ferode_2_63(l_uint32  *datad,
04175             l_int32    w,
04176             l_int32    h,
04177             l_int32    wpld,
04178             l_uint32  *datas,
04179             l_int32    wpls)
04180 {
04181 l_int32             i;
04182 register l_int32    j, pwpls;
04183 register l_uint32  *sptr, *dptr;
04184 l_int32             wpls10;
04185 l_int32             wpls20;
04186     
04187     wpls10 = 10 * wpls;
04188     wpls20 = 20 * wpls;
04189     pwpls = (l_uint32)(w + 31) / 32;  /* proper wpl of src */
04190 
04191     for (i = 0; i < h; i++) {
04192         sptr = datas + i * wpls;
04193         dptr = datad + i * wpld;
04194         for (j = 0; j < pwpls; j++, sptr++, dptr++) {
04195             *dptr = (*(sptr - wpls20)) &
04196                     (*(sptr - wpls10)) &
04197                     (*sptr) &
04198                     (*(sptr + wpls10)) &
04199                     (*(sptr + wpls20));
04200         }
04201     }
04202 }
04203 
04204 static void
04205 fdilate_2_64(l_uint32  *datad,
04206             l_int32    w,
04207             l_int32    h,
04208             l_int32    wpld,
04209             l_uint32  *datas,
04210             l_int32    wpls)
04211 {
04212 l_int32             i;
04213 register l_int32    j, pwpls;
04214 register l_uint32  *sptr, *dptr;
04215     
04216     pwpls = (l_uint32)(w + 31) / 32;  /* proper wpl of src */
04217 
04218     for (i = 0; i < h; i++) {
04219         sptr = datas + i * wpls;
04220         dptr = datad + i * wpld;
04221         for (j = 0; j < pwpls; j++, sptr++, dptr++) {
04222             *dptr = ((*(sptr) << 20) | (*(sptr + 1) >> 12)) |
04223                     ((*(sptr) << 7) | (*(sptr + 1) >> 25)) |
04224                     ((*(sptr) >> 6) | (*(sptr - 1) << 26)) |
04225                     ((*(sptr) >> 19) | (*(sptr - 1) << 13));
04226         }
04227     }
04228 }
04229 
04230 static void
04231 ferode_2_64(l_uint32  *datad,
04232             l_int32    w,
04233             l_int32    h,
04234             l_int32    wpld,
04235             l_uint32  *datas,
04236             l_int32    wpls)
04237 {
04238 l_int32             i;
04239 register l_int32    j, pwpls;
04240 register l_uint32  *sptr, *dptr;
04241     
04242     pwpls = (l_uint32)(w + 31) / 32;  /* proper wpl of src */
04243 
04244     for (i = 0; i < h; i++) {
04245         sptr = datas + i * wpls;
04246         dptr = datad + i * wpld;
04247         for (j = 0; j < pwpls; j++, sptr++, dptr++) {
04248             *dptr = ((*(sptr) >> 20) | (*(sptr - 1) << 12)) &
04249                     ((*(sptr) >> 7) | (*(sptr - 1) << 25)) &
04250                     ((*(sptr) << 6) | (*(sptr + 1) >> 26)) &
04251                     ((*(sptr) << 19) | (*(sptr + 1) >> 13));
04252         }
04253     }
04254 }
04255 
04256 static void
04257 fdilate_2_65(l_uint32  *datad,
04258             l_int32    w,
04259             l_int32    h,
04260             l_int32    wpld,
04261             l_uint32  *datas,
04262             l_int32    wpls)
04263 {
04264 l_int32             i;
04265 register l_int32    j, pwpls;
04266 register l_uint32  *sptr, *dptr;
04267 l_int32             wpls6;
04268 l_int32             wpls7;
04269 l_int32             wpls19;
04270 l_int32             wpls20;
04271     
04272     wpls6 = 6 * wpls;
04273     wpls7 = 7 * wpls;
04274     wpls19 = 19 * wpls;
04275     wpls20 = 20 * wpls;
04276     pwpls = (l_uint32)(w + 31) / 32;  /* proper wpl of src */
04277 
04278     for (i = 0; i < h; i++) {
04279         sptr = datas + i * wpls;
04280         dptr = datad + i * wpld;
04281         for (j = 0; j < pwpls; j++, sptr++, dptr++) {
04282             *dptr = (*(sptr + wpls20)) |
04283                     (*(sptr + wpls7)) |
04284                     (*(sptr - wpls6)) |
04285                     (*(sptr - wpls19));
04286         }
04287     }
04288 }
04289 
04290 static void
04291 ferode_2_65(l_uint32  *datad,
04292             l_int32    w,
04293             l_int32    h,
04294             l_int32    wpld,
04295             l_uint32  *datas,
04296             l_int32    wpls)
04297 {
04298 l_int32             i;
04299 register l_int32    j, pwpls;
04300 register l_uint32  *sptr, *dptr;
04301 l_int32             wpls6;
04302 l_int32             wpls7;
04303 l_int32             wpls19;
04304 l_int32             wpls20;
04305     
04306     wpls6 = 6 * wpls;
04307     wpls7 = 7 * wpls;
04308     wpls19 = 19 * wpls;
04309     wpls20 = 20 * wpls;
04310     pwpls = (l_uint32)(w + 31) / 32;  /* proper wpl of src */
04311 
04312     for (i = 0; i < h; i++) {
04313         sptr = datas + i * wpls;
04314         dptr = datad + i * wpld;
04315         for (j = 0; j < pwpls; j++, sptr++, dptr++) {
04316             *dptr = (*(sptr - wpls20)) &
04317                     (*(sptr - wpls7)) &
04318                     (*(sptr + wpls6)) &
04319                     (*(sptr + wpls19));
04320         }
04321     }
04322 }
04323 
04324 static void
04325 fdilate_2_66(l_uint32  *datad,
04326             l_int32    w,
04327             l_int32    h,
04328             l_int32    wpld,
04329             l_uint32  *datas,
04330             l_int32    wpls)
04331 {
04332 l_int32             i;
04333 register l_int32    j, pwpls;
04334 register l_uint32  *sptr, *dptr;
04335     
04336     pwpls = (l_uint32)(w + 31) / 32;  /* proper wpl of src */
04337 
04338     for (i = 0; i < h; i++) {
04339         sptr = datas + i * wpls;
04340         dptr = datad + i * wpld;
04341         for (j = 0; j < pwpls; j++, sptr++, dptr++) {
04342             *dptr = ((*(sptr) << 23) | (*(sptr + 1) >> 9)) |
04343                     ((*(sptr) << 14) | (*(sptr + 1) >> 18)) |
04344                     ((*(sptr) << 5) | (*(sptr + 1) >> 27)) |
04345                     ((*(sptr) >> 4) | (*(sptr - 1) << 28)) |
04346                     ((*(sptr) >> 13) | (*(sptr - 1) << 19)) |
04347                     ((*(sptr) >> 22) | (*(sptr - 1) << 10));
04348         }
04349     }
04350 }
04351 
04352 static void
04353 ferode_2_66(l_uint32  *datad,
04354             l_int32    w,
04355             l_int32    h,
04356             l_int32    wpld,
04357             l_uint32  *datas,
04358             l_int32    wpls)
04359 {
04360 l_int32             i;
04361 register l_int32    j, pwpls;
04362 register l_uint32  *sptr, *dptr;
04363     
04364     pwpls = (l_uint32)(w + 31) / 32;  /* proper wpl of src */
04365 
04366     for (i = 0; i < h; i++) {
04367         sptr = datas + i * wpls;
04368         dptr = datad + i * wpld;
04369         for (j = 0; j < pwpls; j++, sptr++, dptr++) {
04370             *dptr = ((*(sptr) >> 23) | (*(sptr - 1) << 9)) &
04371                     ((*(sptr) >> 14) | (*(sptr - 1) << 18)) &
04372                     ((*(sptr) >> 5) | (*(sptr - 1) << 27)) &
04373                     ((*(sptr) << 4) | (*(sptr + 1) >> 28)) &
04374                     ((*(sptr) << 13) | (*(sptr + 1) >> 19)) &
04375                     ((*(sptr) << 22) | (*(sptr + 1) >> 10));
04376         }
04377     }
04378 }
04379 
04380 static void
04381 fdilate_2_67(l_uint32  *datad,
04382             l_int32    w,
04383             l_int32    h,
04384             l_int32    wpld,
04385             l_uint32  *datas,
04386             l_int32    wpls)
04387 {
04388 l_int32             i;
04389 register l_int32    j, pwpls;
04390 register l_uint32  *sptr, *dptr;
04391 l_int32             wpls4;
04392 l_int32             wpls5;
04393 l_int32             wpls13;
04394 l_int32             wpls14;
04395 l_int32             wpls22;
04396 l_int32             wpls23;
04397     
04398     wpls4 = 4 * wpls;
04399     wpls5 = 5 * wpls;
04400     wpls13 = 13 * wpls;
04401     wpls14 = 14 * wpls;
04402     wpls22 = 22 * wpls;
04403     wpls23 = 23 * wpls;
04404     pwpls = (l_uint32)(w + 31) / 32;  /* proper wpl of src */
04405 
04406     for (i = 0; i < h; i++) {
04407         sptr = datas + i * wpls;
04408         dptr = datad + i * wpld;
04409         for (j = 0; j < pwpls; j++, sptr++, dptr++) {
04410             *dptr = (*(sptr + wpls23)) |
04411                     (*(sptr + wpls14)) |
04412                     (*(sptr + wpls5)) |
04413                     (*(sptr - wpls4)) |
04414                     (*(sptr - wpls13)) |
04415                     (*(sptr - wpls22));
04416         }
04417     }
04418 }
04419 
04420 static void
04421 ferode_2_67(l_uint32  *datad,
04422             l_int32    w,
04423             l_int32    h,
04424             l_int32    wpld,
04425             l_uint32  *datas,
04426             l_int32    wpls)
04427 {
04428 l_int32             i;
04429 register l_int32    j, pwpls;
04430 register l_uint32  *sptr, *dptr;
04431 l_int32             wpls4;
04432 l_int32             wpls5;
04433 l_int32             wpls13;
04434 l_int32             wpls14;
04435 l_int32             wpls22;
04436 l_int32             wpls23;
04437     
04438     wpls4 = 4 * wpls;
04439     wpls5 = 5 * wpls;
04440     wpls13 = 13 * wpls;
04441     wpls14 = 14 * wpls;
04442     wpls22 = 22 * wpls;
04443     wpls23 = 23 * wpls;
04444     pwpls = (l_uint32)(w + 31) / 32;  /* proper wpl of src */
04445 
04446     for (i = 0; i < h; i++) {
04447         sptr = datas + i * wpls;
04448         dptr = datad + i * wpld;
04449         for (j = 0; j < pwpls; j++, sptr++, dptr++) {
04450             *dptr = (*(sptr - wpls23)) &
04451                     (*(sptr - wpls14)) &
04452                     (*(sptr - wpls5)) &
04453                     (*(sptr + wpls4)) &
04454                     (*(sptr + wpls13)) &
04455                     (*(sptr + wpls22));
04456         }
04457     }
04458 }
04459 
04460 static void
04461 fdilate_2_68(l_uint32  *datad,
04462             l_int32    w,
04463             l_int32    h,
04464             l_int32    wpld,
04465             l_uint32  *datas,
04466             l_int32    wpls)
04467 {
04468 l_int32             i;
04469 register l_int32    j, pwpls;
04470 register l_uint32  *sptr, *dptr;
04471     
04472     pwpls = (l_uint32)(w + 31) / 32;  /* proper wpl of src */
04473 
04474     for (i = 0; i < h; i++) {
04475         sptr = datas + i * wpls;
04476         dptr = datad + i * wpld;
04477         for (j = 0; j < pwpls; j++, sptr++, dptr++) {
04478             *dptr = ((*(sptr) << 22) | (*(sptr + 1) >> 10)) |
04479                     ((*(sptr) << 11) | (*(sptr + 1) >> 21)) |
04480                     (*sptr) |
04481                     ((*(sptr) >> 11) | (*(sptr - 1) << 21)) |
04482                     ((*(sptr) >> 22) | (*(sptr - 1) << 10));
04483         }
04484     }
04485 }
04486 
04487 static void
04488 ferode_2_68(l_uint32  *datad,
04489             l_int32    w,
04490             l_int32    h,
04491             l_int32    wpld,
04492             l_uint32  *datas,
04493             l_int32    wpls)
04494 {
04495 l_int32             i;
04496 register l_int32    j, pwpls;
04497 register l_uint32  *sptr, *dptr;
04498     
04499     pwpls = (l_uint32)(w + 31) / 32;  /* proper wpl of src */
04500 
04501     for (i = 0; i < h; i++) {
04502         sptr = datas + i * wpls;
04503         dptr = datad + i * wpld;
04504         for (j = 0; j < pwpls; j++, sptr++, dptr++) {
04505             *dptr = ((*(sptr) >> 22) | (*(sptr - 1) << 10)) &
04506                     ((*(sptr) >> 11) | (*(sptr - 1) << 21)) &
04507                     (*sptr) &
04508                     ((*(sptr) << 11) | (*(sptr + 1) >> 21)) &
04509                     ((*(sptr) << 22) | (*(sptr + 1) >> 10));
04510         }
04511     }
04512 }
04513 
04514 static void
04515 fdilate_2_69(l_uint32  *datad,
04516             l_int32    w,
04517             l_int32    h,
04518             l_int32    wpld,
04519             l_uint32  *datas,
04520             l_int32    wpls)
04521 {
04522 l_int32             i;
04523 register l_int32    j, pwpls;
04524 register l_uint32  *sptr, *dptr;
04525 l_int32             wpls11;
04526 l_int32             wpls22;
04527     
04528     wpls11 = 11 * wpls;
04529     wpls22 = 22 * wpls;
04530     pwpls = (l_uint32)(w + 31) / 32;  /* proper wpl of src */
04531 
04532     for (i = 0; i < h; i++) {
04533         sptr = datas + i * wpls;
04534         dptr = datad + i * wpld;
04535         for (j = 0; j < pwpls; j++, sptr++, dptr++) {
04536             *dptr = (*(sptr + wpls22)) |
04537                     (*(sptr + wpls11)) |
04538                     (*sptr) |
04539                     (*(sptr - wpls11)) |
04540                     (*(sptr - wpls22));
04541         }
04542     }
04543 }
04544 
04545 static void
04546 ferode_2_69(l_uint32  *datad,
04547             l_int32    w,
04548             l_int32    h,
04549             l_int32    wpld,
04550             l_uint32  *datas,
04551             l_int32    wpls)
04552 {
04553 l_int32             i;
04554 register l_int32    j, pwpls;
04555 register l_uint32  *sptr, *dptr;
04556 l_int32             wpls11;
04557 l_int32             wpls22;
04558     
04559     wpls11 = 11 * wpls;
04560     wpls22 = 22 * wpls;
04561     pwpls = (l_uint32)(w + 31) / 32;  /* proper wpl of src */
04562 
04563     for (i = 0; i < h; i++) {
04564         sptr = datas + i * wpls;
04565         dptr = datad + i * wpld;
04566         for (j = 0; j < pwpls; j++, sptr++, dptr++) {
04567             *dptr = (*(sptr - wpls22)) &
04568                     (*(sptr - wpls11)) &
04569                     (*sptr) &
04570                     (*(sptr + wpls11)) &
04571                     (*(sptr + wpls22));
04572         }
04573     }
04574 }
04575 
04576 static void
04577 fdilate_2_70(l_uint32  *datad,
04578             l_int32    w,
04579             l_int32    h,
04580             l_int32    wpld,
04581             l_uint32  *datas,
04582             l_int32    wpls)
04583 {
04584 l_int32             i;
04585 register l_int32    j, pwpls;
04586 register l_uint32  *sptr, *dptr;
04587     
04588     pwpls = (l_uint32)(w + 31) / 32;  /* proper wpl of src */
04589 
04590     for (i = 0; i < h; i++) {
04591         sptr = datas + i * wpls;
04592         dptr = datad + i * wpld;
04593         for (j = 0; j < pwpls; j++, sptr++, dptr++) {
04594             *dptr = ((*(sptr) << 24) | (*(sptr + 1) >> 8)) |
04595                     ((*(sptr) << 16) | (*(sptr + 1) >> 16)) |
04596                     ((*(sptr) << 8) | (*(sptr + 1) >> 24)) |
04597                     (*sptr) |
04598                     ((*(sptr) >> 8) | (*(sptr - 1) << 24)) |
04599                     ((*(sptr) >> 16) | (*(sptr - 1) << 16)) |
04600                     ((*(sptr) >> 24) | (*(sptr - 1) << 8));
04601         }
04602     }
04603 }
04604 
04605 static void
04606 ferode_2_70(l_uint32  *datad,
04607             l_int32    w,
04608             l_int32    h,
04609             l_int32    wpld,
04610             l_uint32  *datas,
04611             l_int32    wpls)
04612 {
04613 l_int32             i;
04614 register l_int32    j, pwpls;
04615 register l_uint32  *sptr, *dptr;
04616     
04617     pwpls = (l_uint32)(w + 31) / 32;  /* proper wpl of src */
04618 
04619     for (i = 0; i < h; i++) {
04620         sptr = datas + i * wpls;
04621         dptr = datad + i * wpld;
04622         for (j = 0; j < pwpls; j++, sptr++, dptr++) {
04623             *dptr = ((*(sptr) >> 24) | (*(sptr - 1) << 8)) &
04624                     ((*(sptr) >> 16) | (*(sptr - 1) << 16)) &
04625                     ((*(sptr) >> 8) | (*(sptr - 1) << 24)) &
04626                     (*sptr) &
04627                     ((*(sptr) << 8) | (*(sptr + 1) >> 24)) &
04628                     ((*(sptr) << 16) | (*(sptr + 1) >> 16)) &
04629                     ((*(sptr) << 24) | (*(sptr + 1) >> 8));
04630         }
04631     }
04632 }
04633 
04634 static void
04635 fdilate_2_71(l_uint32  *datad,
04636             l_int32    w,
04637             l_int32    h,
04638             l_int32    wpld,
04639             l_uint32  *datas,
04640             l_int32    wpls)
04641 {
04642 l_int32             i;
04643 register l_int32    j, pwpls;
04644 register l_uint32  *sptr, *dptr;
04645 l_int32             wpls8;
04646 l_int32             wpls16;
04647 l_int32             wpls24;
04648     
04649     wpls8 = 8 * wpls;
04650     wpls16 = 16 * wpls;
04651     wpls24 = 24 * wpls;
04652     pwpls = (l_uint32)(w + 31) / 32;  /* proper wpl of src */
04653 
04654     for (i = 0; i < h; i++) {
04655         sptr = datas + i * wpls;
04656         dptr = datad + i * wpld;
04657         for (j = 0; j < pwpls; j++, sptr++, dptr++) {
04658             *dptr = (*(sptr + wpls24)) |
04659                     (*(sptr + wpls16)) |
04660                     (*(sptr + wpls8)) |
04661                     (*sptr) |
04662                     (*(sptr - wpls8)) |
04663                     (*(sptr - wpls16)) |
04664                     (*(sptr - wpls24));
04665         }
04666     }
04667 }
04668 
04669 static void
04670 ferode_2_71(l_uint32  *datad,
04671             l_int32    w,
04672             l_int32    h,
04673             l_int32    wpld,
04674             l_uint32  *datas,
04675             l_int32    wpls)
04676 {
04677 l_int32             i;
04678 register l_int32    j, pwpls;
04679 register l_uint32  *sptr, *dptr;
04680 l_int32             wpls8;
04681 l_int32             wpls16;
04682 l_int32             wpls24;
04683     
04684     wpls8 = 8 * wpls;
04685     wpls16 = 16 * wpls;
04686     wpls24 = 24 * wpls;
04687     pwpls = (l_uint32)(w + 31) / 32;  /* proper wpl of src */
04688 
04689     for (i = 0; i < h; i++) {
04690         sptr = datas + i * wpls;
04691         dptr = datad + i * wpld;
04692         for (j = 0; j < pwpls; j++, sptr++, dptr++) {
04693             *dptr = (*(sptr - wpls24)) &
04694                     (*(sptr - wpls16)) &
04695                     (*(sptr - wpls8)) &
04696                     (*sptr) &
04697                     (*(sptr + wpls8)) &
04698                     (*(sptr + wpls16)) &
04699                     (*(sptr + wpls24));
04700         }
04701     }
04702 }
04703 
04704 static void
04705 fdilate_2_72(l_uint32  *datad,
04706             l_int32    w,
04707             l_int32    h,
04708             l_int32    wpld,
04709             l_uint32  *datas,
04710             l_int32    wpls)
04711 {
04712 l_int32             i;
04713 register l_int32    j, pwpls;
04714 register l_uint32  *sptr, *dptr;
04715     
04716     pwpls = (l_uint32)(w + 31) / 32;  /* proper wpl of src */
04717 
04718     for (i = 0; i < h; i++) {
04719         sptr = datas + i * wpls;
04720         dptr = datad + i * wpld;
04721         for (j = 0; j < pwpls; j++, sptr++, dptr++) {
04722             *dptr = ((*(sptr) << 25) | (*(sptr + 1) >> 7)) |
04723                     ((*(sptr) << 15) | (*(sptr + 1) >> 17)) |
04724                     ((*(sptr) << 5) | (*(sptr + 1) >> 27)) |
04725                     ((*(sptr) >> 5) | (*(sptr - 1) << 27)) |
04726                     ((*(sptr) >> 15) | (*(sptr - 1) << 17)) |
04727                     ((*(sptr) >> 25) | (*(sptr - 1) << 7));
04728         }
04729     }
04730 }
04731 
04732 static void
04733 ferode_2_72(l_uint32  *datad,
04734             l_int32    w,
04735             l_int32    h,
04736             l_int32    wpld,
04737             l_uint32  *datas,
04738             l_int32    wpls)
04739 {
04740 l_int32             i;
04741 register l_int32    j, pwpls;
04742 register l_uint32  *sptr, *dptr;
04743     
04744     pwpls = (l_uint32)(w + 31) / 32;  /* proper wpl of src */
04745 
04746     for (i = 0; i < h; i++) {
04747         sptr = datas + i * wpls;
04748         dptr = datad + i * wpld;
04749         for (j = 0; j < pwpls; j++, sptr++, dptr++) {
04750             *dptr = ((*(sptr) >> 25) | (*(sptr - 1) << 7)) &
04751                     ((*(sptr) >> 15) | (*(sptr - 1) << 17)) &
04752                     ((*(sptr) >> 5) | (*(sptr - 1) << 27)) &
04753                     ((*(sptr) << 5) | (*(sptr + 1) >> 27)) &
04754                     ((*(sptr) << 15) | (*(sptr + 1) >> 17)) &
04755                     ((*(sptr) << 25) | (*(sptr + 1) >> 7));
04756         }
04757     }
04758 }
04759 
04760 static void
04761 fdilate_2_73(l_uint32  *datad,
04762             l_int32    w,
04763             l_int32    h,
04764             l_int32    wpld,
04765             l_uint32  *datas,
04766             l_int32    wpls)
04767 {
04768 l_int32             i;
04769 register l_int32    j, pwpls;
04770 register l_uint32  *sptr, *dptr;
04771 l_int32             wpls5;
04772 l_int32             wpls15;
04773 l_int32             wpls25;
04774     
04775     wpls5 = 5 * wpls;
04776     wpls15 = 15 * wpls;
04777     wpls25 = 25 * wpls;
04778     pwpls = (l_uint32)(w + 31) / 32;  /* proper wpl of src */
04779 
04780     for (i = 0; i < h; i++) {
04781         sptr = datas + i * wpls;
04782         dptr = datad + i * wpld;
04783         for (j = 0; j < pwpls; j++, sptr++, dptr++) {
04784             *dptr = (*(sptr + wpls25)) |
04785                     (*(sptr + wpls15)) |
04786                     (*(sptr + wpls5)) |
04787                     (*(sptr - wpls5)) |
04788                     (*(sptr - wpls15)) |
04789                     (*(sptr - wpls25));
04790         }
04791     }
04792 }
04793 
04794 static void
04795 ferode_2_73(l_uint32  *datad,
04796             l_int32    w,
04797             l_int32    h,
04798             l_int32    wpld,
04799             l_uint32  *datas,
04800             l_int32    wpls)
04801 {
04802 l_int32             i;
04803 register l_int32    j, pwpls;
04804 register l_uint32  *sptr, *dptr;
04805 l_int32             wpls5;
04806 l_int32             wpls15;
04807 l_int32             wpls25;
04808     
04809     wpls5 = 5 * wpls;
04810     wpls15 = 15 * wpls;
04811     wpls25 = 25 * wpls;
04812     pwpls = (l_uint32)(w + 31) / 32;  /* proper wpl of src */
04813 
04814     for (i = 0; i < h; i++) {
04815         sptr = datas + i * wpls;
04816         dptr = datad + i * wpld;
04817         for (j = 0; j < pwpls; j++, sptr++, dptr++) {
04818             *dptr = (*(sptr - wpls25)) &
04819                     (*(sptr - wpls15)) &
04820                     (*(sptr - wpls5)) &
04821                     (*(sptr + wpls5)) &
04822                     (*(sptr + wpls15)) &
04823                     (*(sptr + wpls25));
04824         }
04825     }
04826 }
04827 
04828 static void
04829 fdilate_2_74(l_uint32  *datad,
04830             l_int32    w,
04831             l_int32    h,
04832             l_int32    wpld,
04833             l_uint32  *datas,
04834             l_int32    wpls)
04835 {
04836 l_int32             i;
04837 register l_int32    j, pwpls;
04838 register l_uint32  *sptr, *dptr;
04839     
04840     pwpls = (l_uint32)(w + 31) / 32;  /* proper wpl of src */
04841 
04842     for (i = 0; i < h; i++) {
04843         sptr = datas + i * wpls;
04844         dptr = datad + i * wpld;
04845         for (j = 0; j < pwpls; j++, sptr++, dptr++) {
04846             *dptr = ((*(sptr) << 27) | (*(sptr + 1) >> 5)) |
04847                     ((*(sptr) << 18) | (*(sptr + 1) >> 14)) |
04848                     ((*(sptr) << 9) | (*(sptr + 1) >> 23)) |
04849                     (*sptr) |
04850                     ((*(sptr) >> 9) | (*(sptr - 1) << 23)) |
04851                     ((*(sptr) >> 18) | (*(sptr - 1) << 14)) |
04852                     ((*(sptr) >> 27) | (*(sptr - 1) << 5));
04853         }
04854     }
04855 }
04856 
04857 static void
04858 ferode_2_74(l_uint32  *datad,
04859             l_int32    w,
04860             l_int32    h,
04861             l_int32    wpld,
04862             l_uint32  *datas,
04863             l_int32    wpls)
04864 {
04865 l_int32             i;
04866 register l_int32    j, pwpls;
04867 register l_uint32  *sptr, *dptr;
04868     
04869     pwpls = (l_uint32)(w + 31) / 32;  /* proper wpl of src */
04870 
04871     for (i = 0; i < h; i++) {
04872         sptr = datas + i * wpls;
04873         dptr = datad + i * wpld;
04874         for (j = 0; j < pwpls; j++, sptr++, dptr++) {
04875             *dptr = ((*(sptr) >> 27) | (*(sptr - 1) << 5)) &
04876                     ((*(sptr) >> 18) | (*(sptr - 1) << 14)) &
04877                     ((*(sptr) >> 9) | (*(sptr - 1) << 23)) &
04878                     (*sptr) &
04879                     ((*(sptr) << 9) | (*(sptr + 1) >> 23)) &
04880                     ((*(sptr) << 18) | (*(sptr + 1) >> 14)) &
04881                     ((*(sptr) << 27) | (*(sptr + 1) >> 5));
04882         }
04883     }
04884 }
04885 
04886 static void
04887 fdilate_2_75(l_uint32  *datad,
04888             l_int32    w,
04889             l_int32    h,
04890             l_int32    wpld,
04891             l_uint32  *datas,
04892             l_int32    wpls)
04893 {
04894 l_int32             i;
04895 register l_int32    j, pwpls;
04896 register l_uint32  *sptr, *dptr;
04897 l_int32             wpls9;
04898 l_int32             wpls18;
04899 l_int32             wpls27;
04900     
04901     wpls9 = 9 * wpls;
04902     wpls18 = 18 * wpls;
04903     wpls27 = 27 * wpls;
04904     pwpls = (l_uint32)(w + 31) / 32;  /* proper wpl of src */
04905 
04906     for (i = 0; i < h; i++) {
04907         sptr = datas + i * wpls;
04908         dptr = datad + i * wpld;
04909         for (j = 0; j < pwpls; j++, sptr++, dptr++) {
04910             *dptr = (*(sptr + wpls27)) |
04911                     (*(sptr + wpls18)) |
04912                     (*(sptr + wpls9)) |
04913                     (*sptr) |
04914                     (*(sptr - wpls9)) |
04915                     (*(sptr - wpls18)) |
04916                     (*(sptr - wpls27));
04917         }
04918     }
04919 }
04920 
04921 static void
04922 ferode_2_75(l_uint32  *datad,
04923             l_int32    w,
04924             l_int32    h,
04925             l_int32    wpld,
04926             l_uint32  *datas,
04927             l_int32    wpls)
04928 {
04929 l_int32             i;
04930 register l_int32    j, pwpls;
04931 register l_uint32  *sptr, *dptr;
04932 l_int32             wpls9;
04933 l_int32             wpls18;
04934 l_int32             wpls27;
04935     
04936     wpls9 = 9 * wpls;
04937     wpls18 = 18 * wpls;
04938     wpls27 = 27 * wpls;
04939     pwpls = (l_uint32)(w + 31) / 32;  /* proper wpl of src */
04940 
04941     for (i = 0; i < h; i++) {
04942         sptr = datas + i * wpls;
04943         dptr = datad + i * wpld;
04944         for (j = 0; j < pwpls; j++, sptr++, dptr++) {
04945             *dptr = (*(sptr - wpls27)) &
04946                     (*(sptr - wpls18)) &
04947                     (*(sptr - wpls9)) &
04948                     (*sptr) &
04949                     (*(sptr + wpls9)) &
04950                     (*(sptr + wpls18)) &
04951                     (*(sptr + wpls27));
04952         }
04953     }
04954 }
04955 
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Defines