00001 //=========================================================================== 00002 // SINTEF LSMG library - version 1.1 00003 // 00004 // Copyright (C) 2000-2005 SINTEF ICT, Applied Mathematics, Norway. 00005 // 00006 // This program is free software; you can redistribute it and/or 00007 // modify it under the terms of the GNU General Public License 00008 // as published by the Free Software Foundation version 2 of the License. 00009 // 00010 // This program is distributed in the hope that it will be useful, 00011 // but WITHOUT ANY WARRANTY; without even the implied warranty of 00012 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 00013 // GNU General Public License for more details. 00014 // 00015 // You should have received a copy of the GNU General Public License 00016 // along with this program; if not, write to the Free Software 00017 // Foundation, Inc., 00018 // 59 Temple Place - Suite 330, 00019 // Boston, MA 02111-1307, USA. 00020 // 00021 // Contact information: e-mail: tor.dokken@sintef.no 00022 // SINTEF ICT, Department of Applied Mathematics, 00023 // P.O. Box 124 Blindern, 00024 // 0314 Oslo, Norway. 00025 // 00026 // Other licenses are also available for this software, notably licenses 00027 // for: 00028 // - Building commercial software. 00029 // - Building software whose source code you wish to keep private. 00030 //=========================================================================== 00031 #ifndef _FILTERRESTRICT2D_H 00032 #define _FILTERRESTRICT2D_H 00033 00034 #include "UCBtypedef.h" 00035 00036 void filterRestrict2D(int m, // width and height of filter (2m+1) 00037 const UCBspl_real* F, // complete 2D filter F(i,j) = F[j * (2m+1) + i] 00038 bool left, // true = left boundary (index i) 00039 bool lower, // true = lower boundary, (index j) 00040 int k, // number of depassing coefficients in i direction 00041 int l, // number of depassing coefficients in j direction 00042 UCBspl_real* result); // pointer to memory area where the result is written 00043 00044 // NB: k and l must both be in [0, m]. If both are equal to 0, then the unrestricted operator 00045 // is returned. In general, the result operator will have the resolution (2m+1-k, 2m+1-l). 00046 // The original filter and the result are both stored row-wise (i has lowest stride). 00047 00048 #endif // _FILTERRESTRICT2D_H 00049