/usr/include/InsightToolkit/Common/itkNumericTraitsDiffusionTensor3DPixel.h is in libinsighttoolkit3-dev 3.20.1-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 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 | /*=========================================================================
Program: Insight Segmentation & Registration Toolkit
Module: itkNumericTraitsDiffusionTensor3DPixel.h
Language: C++
Date: $Date$
Version: $Revision$
Copyright (c) Insight Software Consortium. All rights reserved.
See ITKCopyright.txt or http://www.itk.org/HTML/Copyright.htm for details.
This software is distributed WITHOUT ANY WARRANTY; without even
the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
PURPOSE. See the above copyright notices for more information.
=========================================================================*/
#ifndef __itkNumericTraitsDiffusionTensor3DPixel_h
#define __itkNumericTraitsDiffusionTensor3DPixel_h
#include "itkNumericTraitsFixedArrayPixel.h"
#include "itkDiffusionTensor3D.h"
// This file is meant to define numeric traits for tensor pixels types in itk
namespace itk
{
//
// First we define a macro that can be customized to be used for a sequence of
// specializations or for a generic template instantiation. This Macro covers
// the implementation for both partial specialization and total
// specializaion by defining certain macros.
//
#ifdef ITK_USE_NUMERIC_TRAITS_PARTIAL_SPECIALIZATION
#define itkNumericTraitsDiffusionTensor3DMacro(GENERIC_ARRAY, T) \
template < typename T > \
class NumericTraits<GENERIC_ARRAY< T > > \
{ \
private: \
\
typedef typename NumericTraits<T>::AbsType ElementAbsType; \
typedef typename NumericTraits<T>::AccumulateType ElementAccumulateType; \
typedef typename NumericTraits<T>::FloatType ElementFloatType; \
typedef typename NumericTraits<T>::PrintType ElementPrintType; \
typedef typename NumericTraits<T>::RealType ElementRealType; \
\
public: \
\
typedef T ValueType; \
typedef GENERIC_ARRAY<T> Self; \
\
typedef GENERIC_ARRAY<ElementAbsType> AbsType; \
typedef GENERIC_ARRAY<ElementAccumulateType> AccumulateType; \
typedef GENERIC_ARRAY<ElementFloatType> FloatType; \
typedef GENERIC_ARRAY<ElementPrintType> PrintType; \
typedef GENERIC_ARRAY<ElementRealType> RealType; \
\
typedef ElementRealType ScalarRealType; \
\
static const Self max() \
{ \
return Self( NumericTraits< T >::max() ); \
} \
static const Self min() \
{ \
return Self( NumericTraits< T >::min() ); \
} \
static const Self NonpositiveMin() \
{ \
return Self( NumericTraits< T >::NonpositiveMin() ); \
} \
static const Self ZeroValue() \
{ \
return Self( NumericTraits<T>::ZeroValue() ); \
} \
static const Self OneValue() \
{ \
return Self( NumericTraits<T>::OneValue() ); \
} \
static const Self ITKCommon_EXPORT Zero; \
static const Self ITKCommon_EXPORT One; \
};
itkNumericTraitsDiffusionTensor3DMacro(DiffusionTensor3D, T)
#else // ITK_USE_NUMERIC_TRAITS_PARTIAL_SPECIALIZATION
#define itkNumericTraitsDiffusionTensor3DMacro(GENERIC_ARRAY, T) \
template< > \
class NumericTraits<GENERIC_ARRAY< T > > \
{ \
private: \
\
typedef NumericTraits<T>::AbsType ElementAbsType; \
typedef NumericTraits<T>::AccumulateType ElementAccumulateType; \
typedef NumericTraits<T>::FloatType ElementFloatType; \
typedef NumericTraits<T>::PrintType ElementPrintType; \
typedef NumericTraits<T>::RealType ElementRealType; \
\
public: \
\
typedef T ValueType; \
typedef GENERIC_ARRAY<T> Self; \
\
typedef GENERIC_ARRAY<ElementAbsType> AbsType; \
typedef GENERIC_ARRAY<ElementAccumulateType> AccumulateType; \
typedef GENERIC_ARRAY<ElementFloatType> FloatType; \
typedef GENERIC_ARRAY<ElementPrintType> PrintType; \
typedef GENERIC_ARRAY<ElementRealType> RealType; \
\
typedef ElementRealType ScalarRealType; \
\
static const Self max() \
{ \
return Self( NumericTraits< T >::max() ); \
} \
static const Self min() \
{ \
return Self( NumericTraits< T >::min() ); \
} \
static const Self NonpositiveMin() \
{ \
return Self( NumericTraits< T >::NonpositiveMin() ); \
} \
static const Self ZeroValue() \
{ \
return Self( NumericTraits<T>::ZeroValue() ); \
} \
static const Self OneValue() \
{ \
return Self( NumericTraits<T>::OneValue() ); \
} \
static const Self ITKCommon_EXPORT Zero; \
static const Self ITKCommon_EXPORT One; \
};
itkNumericTraitsDiffusionTensor3DMacro( DiffusionTensor3D, char );
itkNumericTraitsDiffusionTensor3DMacro( DiffusionTensor3D, unsigned char );
itkNumericTraitsDiffusionTensor3DMacro( DiffusionTensor3D, signed char );
itkNumericTraitsDiffusionTensor3DMacro( DiffusionTensor3D, short );
itkNumericTraitsDiffusionTensor3DMacro( DiffusionTensor3D, unsigned short );
itkNumericTraitsDiffusionTensor3DMacro( DiffusionTensor3D, int );
itkNumericTraitsDiffusionTensor3DMacro( DiffusionTensor3D, unsigned int );
itkNumericTraitsDiffusionTensor3DMacro( DiffusionTensor3D, long );
itkNumericTraitsDiffusionTensor3DMacro( DiffusionTensor3D, unsigned long );
itkNumericTraitsDiffusionTensor3DMacro( DiffusionTensor3D, float );
itkNumericTraitsDiffusionTensor3DMacro( DiffusionTensor3D, double );
itkNumericTraitsDiffusionTensor3DMacro( DiffusionTensor3D, long double );
#ifdef ITK_TYPE_USE_LONG_LONG
itkNumericTraitsDiffusionTensor3DMacro( DiffusionTensor3D, long long );
itkNumericTraitsDiffusionTensor3DMacro( DiffusionTensor3D, unsigned long long );
#endif // ITK_TYPE_USE_LONG_LONG
#endif // ITK_USE_NUMERIC_TRAITS_PARTIAL_SPECIALIZATION
} // end namespace itk
#endif // __itkNumericTraitsTensorPixel_h
|