ITK 6.0.0
Insight Toolkit
 
Loading...
Searching...
No Matches
itk::NumericTraits< VariableLengthVector< T > > Class Template Reference

#include <itkNumericTraitsVariableLengthVectorPixel.h>

Detailed Description

template<typename T>
class itk::NumericTraits< VariableLengthVector< T > >

Define numeric traits for VariableLengthVector.

Template Parameters
TComponent type of VariableLengthVector

We provide here a generic implementation based on creating types of VariableLengthVector whose components are the types of the NumericTraits from the original VariableLengthVector components. This implementation require support for partial specializations, since it is based on the concept that: NumericTraits<VariableLengthVector< T > > is defined piecewise by VariableLengthVector< NumericTraits< T > >

Note
The Zero(), One(), min() and max() methods here take references to a pixel as input. This is due to the fact that the length of the VariableLengthVector is not known until run-time. Since the most common use of Zero and One is for comparison purposes or initialization of sums etc, this might just as easily be re-written with a pixel passed in as a reference and the length is inferred from this pixel.
See also
NumericTraits

Definition at line 54 of file itkNumericTraitsVariableLengthVectorPixel.h.

+ Inheritance diagram for itk::NumericTraits< VariableLengthVector< T > >:
+ Collaboration diagram for itk::NumericTraits< VariableLengthVector< T > >:

Public Types

using AbsType
 
using AbsType = VariableLengthVector<ElementAbsType>
 
using AccumulateType
 
using AccumulateType = VariableLengthVector<ElementAccumulateType>
 
using ElementAbsType = typename NumericTraits<T>::AbsType
 
using ElementAccumulateType = typename NumericTraits<T>::AccumulateType
 
using ElementFloatType = typename NumericTraits<T>::FloatType
 
using ElementPrintType = typename NumericTraits<T>::PrintType
 
using ElementRealType = typename NumericTraits<T>::RealType
 
using FloatType
 
using FloatType = VariableLengthVector<ElementFloatType>
 
using MeasurementVectorType
 
using MeasurementVectorType = Self
 
using PrintType
 
using PrintType = VariableLengthVector<ElementPrintType>
 
using RealType
 
using RealType = VariableLengthVector<ElementRealType>
 
using ScalarRealType
 
using ScalarRealType = ElementRealType
 
using Self = VariableLengthVector<T>
 
using TraitsType
 
using ValueType
 
using ValueType = T
 

Static Public Member Functions

static void AssignToArray (const Self &v, MeasurementVectorType &mv)
 
template<typename TArray>
static void AssignToArray (const Self &v, TArray &mv)
 
static void AssignToArray (const T &v, TArray &mv)
 
static unsigned int GetLength ()
 
static unsigned int GetLength (const T &)
 
static unsigned int GetLength (const VariableLengthVector< T > &m)
 
static bool IsNegative (const Self &a)
 
static bool IsNegative (T val)
 
static bool IsNonnegative (const Self &a)
 
static bool IsNonnegative (T val)
 
static bool IsNonpositive (const Self &a)
 
static bool IsNonpositive (T val)
 
static bool IsPositive (const Self &a)
 
static bool IsPositive (T val)
 
static const Self max (const Self &a)
 
static constexpr T max (const T &)
 
static const Self min (const Self &a)
 
static constexpr T min (const T &)
 
static constexpr T NonpositiveMin ()
 
static const Self NonpositiveMin (const Self &a)
 
static T NonpositiveMin (const T &)
 
static T OneValue ()
 
static const Self OneValue (const Self &a)
 
static T OneValue (const T &)
 
static void SetLength (T &m, const unsigned int s)
 
static T ZeroValue ()
 
static const Self ZeroValue (const Self &a)
 
static T ZeroValue (const T &)
 
static void SetLength (VariableLengthVector< T > &m, const unsigned int s)
 

Static Public Attributes

static constexpr bool IsComplex
 
static constexpr bool IsComplex = NumericTraits<ValueType>::IsComplex
 
static constexpr bool IsInteger
 
static constexpr bool IsInteger = std::is_integral_v<ValueType>
 
static constexpr bool IsSigned
 
static constexpr bool IsSigned = std::is_signed_v<ValueType>
 
static const T ITKCommon_EXPORT One
 
static const T ITKCommon_EXPORT Zero
 

Member Typedef Documentation

◆ AbsType [1/2]

using itk::NumericTraits< T >::AbsType

Return value of itk::Math::abs().

Definition at line 73 of file itkNumericTraits.h.

◆ AbsType [2/2]

template<typename T>
using itk::NumericTraits< VariableLengthVector< T > >::AbsType = VariableLengthVector<ElementAbsType>

Unsigned component type

Definition at line 69 of file itkNumericTraitsVariableLengthVectorPixel.h.

◆ AccumulateType [1/2]

using itk::NumericTraits< T >::AccumulateType

Accumulation of addition and multiplication.

Definition at line 76 of file itkNumericTraits.h.

◆ AccumulateType [2/2]

template<typename T>
using itk::NumericTraits< VariableLengthVector< T > >::AccumulateType = VariableLengthVector<ElementAccumulateType>

Accumulation of addition and multiplication.

Definition at line 72 of file itkNumericTraitsVariableLengthVectorPixel.h.

◆ ElementAbsType

template<typename T>
using itk::NumericTraits< VariableLengthVector< T > >::ElementAbsType = typename NumericTraits<T>::AbsType

Definition at line 57 of file itkNumericTraitsVariableLengthVectorPixel.h.

◆ ElementAccumulateType

template<typename T>
using itk::NumericTraits< VariableLengthVector< T > >::ElementAccumulateType = typename NumericTraits<T>::AccumulateType

Definition at line 58 of file itkNumericTraitsVariableLengthVectorPixel.h.

◆ ElementFloatType

template<typename T>
using itk::NumericTraits< VariableLengthVector< T > >::ElementFloatType = typename NumericTraits<T>::FloatType

Definition at line 59 of file itkNumericTraitsVariableLengthVectorPixel.h.

◆ ElementPrintType

template<typename T>
using itk::NumericTraits< VariableLengthVector< T > >::ElementPrintType = typename NumericTraits<T>::PrintType

Definition at line 60 of file itkNumericTraitsVariableLengthVectorPixel.h.

◆ ElementRealType

template<typename T>
using itk::NumericTraits< VariableLengthVector< T > >::ElementRealType = typename NumericTraits<T>::RealType

Definition at line 61 of file itkNumericTraitsVariableLengthVectorPixel.h.

◆ FloatType [1/2]

using itk::NumericTraits< T >::FloatType

Typedef for operations that use floating point instead of real precision to save memory

Definition at line 83 of file itkNumericTraits.h.

◆ FloatType [2/2]

template<typename T>
using itk::NumericTraits< VariableLengthVector< T > >::FloatType = VariableLengthVector<ElementFloatType>

Typedef for operations that use floating point instead of real precision

Definition at line 76 of file itkNumericTraitsVariableLengthVectorPixel.h.

◆ MeasurementVectorType [1/2]

using itk::NumericTraits< T >::MeasurementVectorType

Measurement vector type

Definition at line 79 of file itkNumericTraits.h.

◆ MeasurementVectorType [2/2]

template<typename T>
using itk::NumericTraits< VariableLengthVector< T > >::MeasurementVectorType = Self

Measurement vector type

Definition at line 88 of file itkNumericTraitsVariableLengthVectorPixel.h.

◆ PrintType [1/2]

using itk::NumericTraits< T >::PrintType

Return the type that can be printed.

Definition at line 70 of file itkNumericTraits.h.

◆ PrintType [2/2]

template<typename T>
using itk::NumericTraits< VariableLengthVector< T > >::PrintType = VariableLengthVector<ElementPrintType>

Return the type that can be printed.

Definition at line 79 of file itkNumericTraitsVariableLengthVectorPixel.h.

◆ RealType [1/2]

using itk::NumericTraits< T >::RealType

Type for real-valued scalar operations.

Definition at line 86 of file itkNumericTraits.h.

◆ RealType [2/2]

template<typename T>
using itk::NumericTraits< VariableLengthVector< T > >::RealType = VariableLengthVector<ElementRealType>

Type for real-valued scalar operations.

Definition at line 82 of file itkNumericTraitsVariableLengthVectorPixel.h.

◆ ScalarRealType [1/2]

using itk::NumericTraits< T >::ScalarRealType

Type for real-valued scalar operations.

Definition at line 89 of file itkNumericTraits.h.

◆ ScalarRealType [2/2]

template<typename T>
using itk::NumericTraits< VariableLengthVector< T > >::ScalarRealType = ElementRealType

Type for real-valued scalar operations.

Definition at line 85 of file itkNumericTraitsVariableLengthVectorPixel.h.

◆ Self

template<typename T>
using itk::NumericTraits< VariableLengthVector< T > >::Self = VariableLengthVector<T>

Definition at line 66 of file itkNumericTraitsVariableLengthVectorPixel.h.

◆ TraitsType

using itk::NumericTraits< T >::TraitsType

The type of this limits trait object.

Definition at line 64 of file itkNumericTraits.h.

◆ ValueType [1/2]

using itk::NumericTraits< T >::ValueType

Return the type of this native type.

Definition at line 67 of file itkNumericTraits.h.

◆ ValueType [2/2]

template<typename T>
using itk::NumericTraits< VariableLengthVector< T > >::ValueType = T

Return the type of the native component type.

Definition at line 64 of file itkNumericTraitsVariableLengthVectorPixel.h.

Member Function Documentation

◆ AssignToArray() [1/3]

template<typename T>
static void itk::NumericTraits< VariableLengthVector< T > >::AssignToArray ( const Self & v,
MeasurementVectorType & mv )
inlinestatic

Definition at line 217 of file itkNumericTraitsVariableLengthVectorPixel.h.

◆ AssignToArray() [2/3]

template<typename T>
template<typename TArray>
static void itk::NumericTraits< VariableLengthVector< T > >::AssignToArray ( const Self & v,
TArray & mv )
inlinestatic

◆ AssignToArray() [3/3]

static void itk::NumericTraits< T >::AssignToArray ( const T & v,
TArray & mv )
inlinestatic

assign the value to an array

Definition at line 245 of file itkNumericTraits.h.

◆ GetLength() [1/3]

static unsigned int itk::NumericTraits< T >::GetLength ( )
inlinestatic

Return the length of the scalar: 1. Array types can return a different value

Definition at line 210 of file itkNumericTraits.h.

◆ GetLength() [2/3]

static unsigned int itk::NumericTraits< T >::GetLength ( const T & )
inlinestatic

Return the length of the scalar. This API is needed for VariableLengthVector because its length is only known at run-time. Specializations of the VariableLengthVector will provide a different implementation where a vector of the correct size is built.

Definition at line 203 of file itkNumericTraits.h.

◆ GetLength() [3/3]

template<typename T>
static unsigned int itk::NumericTraits< VariableLengthVector< T > >::GetLength ( const VariableLengthVector< T > & m)
inlinestatic

Return the size of the vector.

Definition at line 211 of file itkNumericTraitsVariableLengthVectorPixel.h.

◆ IsNegative() [1/2]

template<typename T>
static bool itk::NumericTraits< VariableLengthVector< T > >::IsNegative ( const Self & a)
inlinestatic

◆ IsNegative() [2/2]

static bool itk::NumericTraits< T >::IsNegative ( T val)
inlinestatic

Is a given value negative?

Definition at line 120 of file itkNumericTraits.h.

◆ IsNonnegative() [1/2]

template<typename T>
static bool itk::NumericTraits< VariableLengthVector< T > >::IsNonnegative ( const Self & a)
inlinestatic

◆ IsNonnegative() [2/2]

static bool itk::NumericTraits< T >::IsNonnegative ( T val)
inlinestatic

Is a given value nonnegative?

Definition at line 127 of file itkNumericTraits.h.

◆ IsNonpositive() [1/2]

template<typename T>
static bool itk::NumericTraits< VariableLengthVector< T > >::IsNonpositive ( const Self & a)
inlinestatic

◆ IsNonpositive() [2/2]

static bool itk::NumericTraits< T >::IsNonpositive ( T val)
inlinestatic

Is a given value nonpositive?

Definition at line 113 of file itkNumericTraits.h.

◆ IsPositive() [1/2]

template<typename T>
static bool itk::NumericTraits< VariableLengthVector< T > >::IsPositive ( const Self & a)
inlinestatic

◆ IsPositive() [2/2]

static bool itk::NumericTraits< T >::IsPositive ( T val)
inlinestatic

Is a given value positive?

Definition at line 106 of file itkNumericTraits.h.

◆ max() [1/2]

template<typename T>
static const Self itk::NumericTraits< VariableLengthVector< T > >::max ( const Self & a)
inlinestatic

Component wise defined element

Note
minimum value for floating pointer types is defined as minimum positive normalize value.

Definition at line 96 of file itkNumericTraitsVariableLengthVectorPixel.h.

References itk::NumericTraits< T >::max().

◆ max() [2/2]

static constexpr T itk::NumericTraits< T >::max ( const T & )
inlinestaticconstexpr

Definition at line 169 of file itkNumericTraits.h.

◆ min() [1/2]

template<typename T>
static const Self itk::NumericTraits< VariableLengthVector< T > >::min ( const Self & a)
inlinestatic

◆ min() [2/2]

static constexpr T itk::NumericTraits< T >::min ( const T & )
inlinestaticconstexpr

Definition at line 174 of file itkNumericTraits.h.

◆ NonpositiveMin() [1/3]

static constexpr T itk::NumericTraits< T >::NonpositiveMin ( )
inlinestaticconstexpr

Smallest (most nonpositive) value

Definition at line 99 of file itkNumericTraits.h.

◆ NonpositiveMin() [2/3]

template<typename T>
static const Self itk::NumericTraits< VariableLengthVector< T > >::NonpositiveMin ( const Self & a)
inlinestatic

◆ NonpositiveMin() [3/3]

static T itk::NumericTraits< T >::NonpositiveMin ( const T & )
inlinestatic

Smallest (most nonpositive) value. This API is needed for VariableLengthVector because its length is only known at run-time.

Definition at line 219 of file itkNumericTraits.h.

◆ OneValue() [1/3]

static T itk::NumericTraits< T >::OneValue ( )
inlinestatic

Return one value. This function should be used to support RGBPixel type and standard types (not vectors)

Definition at line 158 of file itkNumericTraits.h.

◆ OneValue() [2/3]

template<typename T>
static const Self itk::NumericTraits< VariableLengthVector< T > >::OneValue ( const Self & a)
inlinestatic

◆ OneValue() [3/3]

static T itk::NumericTraits< T >::OneValue ( const T & )
inlinestatic

One value. This API is needed for VariableLengthVector because its length is only known at run-time.

Definition at line 237 of file itkNumericTraits.h.

◆ SetLength() [1/2]

static void itk::NumericTraits< T >::SetLength ( T & m,
const unsigned int s )
inlinestatic

Scalars cannot be resized, so an exception will be thrown if the input size is not 1. If the size is valid the will be zeros. This API is needed for VariableLengthVector because its length is only known at run-time. Specializations of the VariableLengthVector will provide a different implementation where a vector of the correct size is built.

Definition at line 187 of file itkNumericTraits.h.

◆ SetLength() [2/2]

template<typename T>
static void itk::NumericTraits< VariableLengthVector< T > >::SetLength ( VariableLengthVector< T > & m,
const unsigned int s )
inlinestatic

Resize the input vector to the specified size.

Definition at line 202 of file itkNumericTraitsVariableLengthVectorPixel.h.

◆ ZeroValue() [1/3]

static T itk::NumericTraits< T >::ZeroValue ( )
inlinestatic

Return zero value. This function should be used to support RGBPixel type and standard types (not vectors)

Definition at line 150 of file itkNumericTraits.h.

◆ ZeroValue() [2/3]

template<typename T>
static const Self itk::NumericTraits< VariableLengthVector< T > >::ZeroValue ( const Self & a)
inlinestatic

Definition at line 114 of file itkNumericTraitsVariableLengthVectorPixel.h.

◆ ZeroValue() [3/3]

static T itk::NumericTraits< T >::ZeroValue ( const T & )
inlinestatic

Zero value. This API is needed for VariableLengthVector because its length is only known at run-time.

Definition at line 228 of file itkNumericTraits.h.

Member Data Documentation

◆ IsComplex [1/2]

bool itk::NumericTraits< T >::IsComplex
staticconstexpr

Is a given type complex? – default is no. For uniform array data types in ITK, the value of IsComplex is determined by the component elements of the array.

Definition at line 145 of file itkNumericTraits.h.

◆ IsComplex [2/2]

template<typename T>
bool itk::NumericTraits< VariableLengthVector< T > >::IsComplex = NumericTraits<ValueType>::IsComplex
staticconstexpr

Definition at line 197 of file itkNumericTraitsVariableLengthVectorPixel.h.

◆ IsInteger [1/2]

bool itk::NumericTraits< T >::IsInteger
staticconstexpr

Is a given type an integer? – default is no. For uniform array data types in ITK, the value of IsInteger is determined by the component elements of the array.

Definition at line 140 of file itkNumericTraits.h.

◆ IsInteger [2/2]

template<typename T>
bool itk::NumericTraits< VariableLengthVector< T > >::IsInteger = std::is_integral_v<ValueType>
staticconstexpr

Definition at line 196 of file itkNumericTraitsVariableLengthVectorPixel.h.

◆ IsSigned [1/2]

bool itk::NumericTraits< T >::IsSigned
staticconstexpr

Is a given type signed? – default is no. For uniform array data types in ITK, the value of IsSigned is determined by the component elements of the array.

Definition at line 135 of file itkNumericTraits.h.

◆ IsSigned [2/2]

template<typename T>
bool itk::NumericTraits< VariableLengthVector< T > >::IsSigned = std::is_signed_v<ValueType>
staticconstexpr

Definition at line 195 of file itkNumericTraitsVariableLengthVectorPixel.h.

◆ One

const T ITKCommon_EXPORT itk::NumericTraits< T >::One
static

Multiplicative identity.

Definition at line 95 of file itkNumericTraits.h.

◆ Zero

const T ITKCommon_EXPORT itk::NumericTraits< T >::Zero
static

Additive identity.

Definition at line 92 of file itkNumericTraits.h.


The documentation for this class was generated from the following file: