This file is indexed.

/usr/include/mia-2.4/mia/2d/cstkernel.hh is in libmia-2.4-dev 2.4.6-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
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
/* -*- mia-c++  -*-
 *
 * This file is part of MIA - a toolbox for medical image analysis 
 * Copyright (c) Leipzig, Madrid 1999-2017 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 TFactory<CCST2DImageKernel> CCST2DImgKernelPlugin;

typedef THandlerSingleton<TFactoryPluginHandler<CCST2DVectorKernelPlugin> > CCST2DVectorKernelPluginHandler;
typedef THandlerSingleton<TFactoryPluginHandler<CCST2DImgKernelPlugin> > CCST2DImgKernelPluginHandler;

template <> const char *  const 
TPluginHandler<TFactory<CCST2DImageKernel>>::m_help;

template <> const char *  const 
TPluginHandler<TFactory<CCST2DVectorKernel>>::m_help;


extern template class EXPORT_2D TCST2DKernel<C2DFVectorfield>; 
extern template class EXPORT_2D TFactory<CCST2DVectorKernel>; 
extern template class EXPORT_2D TFactoryPluginHandler<CCST2DVectorKernelPlugin>; 
extern template class EXPORT_2D THandlerSingleton<TFactoryPluginHandler<CCST2DVectorKernelPlugin> >; 


extern template class EXPORT_2D TCST2DKernel<C2DFImage>;
extern template class EXPORT_2D TFactory<CCST2DImageKernel>; 
extern template class EXPORT_2D TFactoryPluginHandler<CCST2DImgKernelPlugin>; 
extern template class EXPORT_2D THandlerSingleton<TFactoryPluginHandler<CCST2DImgKernelPlugin> >; 

/// \endcond 

NS_MIA_END

#endif