This file is indexed.

/usr/include/mia-2.0/mia/2d/cstkernel.hh is in libmia-2.0-dev 2.0.13-1.

This file is owned by root:root, with mode 0o644.

The actual contents of the file can be viewed below.

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
/* -*- mia-c++  -*-
 *
 * This file is part of MIA - a toolbox for medical image analysis 
 * Copyright (c) Leipzig, Madrid 1999-2013 Gert Wollny
 *
 * MIA is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation; either version 3 of the License, or
 * (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with MIA; if not, see <http://www.gnu.org/licenses/>.
 *
 */

#ifndef mia_2d_cstkernel_hh
#define mia_2d_cstkernel_hh

#include <complex>
#include <fftw3.h>

#include <mia/core/defines.hh>
#include <mia/core/factory.hh>
#include <mia/core/spacial_kernel.hh>
#include <mia/core/cstplan.hh>
#include <mia/2d/datafield.hh>
#include <mia/2d/image.hh>

NS_MIA_BEGIN

/// plugin-helper structure 
struct EXPORT_2D cst2d_kernel {
	/// plugin path helper value 
	static const char *type_descr;
};

/**
   @ingroup filtering
   @brief Base class for cos/sin transformation filters 

   This class defines the interface for filter that uses cosinus and sinus transforms to move 
   the data into a dual space, runs some filter there and then transforms the data back. 
   This class may be used for gray scale image data and vector data. 
   
   @tparam The actual data type to run the filter on 
   @remark why is this called a kernel? 
*/

template <typename T>
class EXPORT_2D TCST2DKernel :public CProductBase {
public:
	/// some helper typedef for the plug-in handler 
	typedef typename plugin_data_type<T>::type plugin_data; 

	/// define the plugin-type helper to get the search path 
	typedef cst2d_kernel plugin_type; 

	/// define the type of the FFTW plan used 
	typedef TCSTPlan<T> CPlan;
	
	/**
	   Consruct the filter as either forward or backward 
	   @remark why is this? 
	 */
	TCST2DKernel(fftwf_r2r_kind forward);
	
	virtual ~TCST2DKernel();

	/**
	   Apply the transform 
	   @param[in] in 
	   @param[out] out 
	 */
	void apply(const T& in, T& out) const;

	/**
	   Prepare the transform based on the size of the data field to be transformed 
	   @param size 
	 */
	void prepare(const C2DBounds& size);

private:
        virtual CPlan *do_prepare(fftwf_r2r_kind fw_kind, const std::vector<int>& size) = 0;

	fftwf_r2r_kind m_forward;
	std::unique_ptr<CPlan> m_plan;
};

/**
  \cond NEEDS_REHAUL 
*/

typedef TCST2DKernel<C2DFVectorfield> CCST2DVectorKernel;
typedef TCST2DKernel<C2DFImage>       CCST2DImageKernel;

typedef  std::shared_ptr<CCST2DImageKernel > PCST2DImageKernel;
typedef  std::shared_ptr<CCST2DVectorKernel > PCST2DVectorKernel;

typedef TFactory<CCST2DVectorKernel> CCST2DVectorKernelPlugin;
typedef THandlerSingleton<TFactoryPluginHandler<CCST2DVectorKernelPlugin> > CCST2DVectorKernelPluginHandler;

typedef TFactory<CCST2DImageKernel> CCST2DImgKernelPlugin;
typedef THandlerSingleton<TFactoryPluginHandler<CCST2DImgKernelPlugin> > CCST2DImgKernelPluginHandler;
/// \endcond 

NS_MIA_END

#endif