ITK  4.0.0
Insight Segmentation and Registration Toolkit
Public Types | Public Member Functions | Static Public Member Functions | Static Public Attributes | Protected Member Functions | Private Member Functions | Private Attributes
itk::GaussianBlurImageFunction< TInputImage, TOutput > Class Template Reference

Compute the convolution of a neighborhood operator with the image at a specific location in space, i.e. point, index or continuous index. This class is templated over the input image type. More...

#include <itkGaussianBlurImageFunction.h>

Inheritance diagram for itk::GaussianBlurImageFunction< TInputImage, TOutput >:
Collaboration diagram for itk::GaussianBlurImageFunction< TInputImage, TOutput >:

List of all members.

Public Types

typedef SmartPointer< const SelfConstPointer
typedef
Superclass::ContinuousIndexType 
ContinuousIndexType
typedef itk::FixedArray
< double,
itkGetStaticConstMacro(ImageDimension) > 
ErrorArrayType
typedef itk::FixedArray
< double,
itkGetStaticConstMacro(ImageDimension) > 
ExtentArrayType
typedef
GaussianFunctionType::Pointer 
GaussianFunctionPointer
typedef
GaussianSpatialFunction
< TOutput, 1 > 
GaussianFunctionType
typedef GaussianOperator
< TOutput,
itkGetStaticConstMacro(ImageDimension) > 
GaussianOperatorType
typedef Superclass::IndexType IndexType
typedef TInputImage InputImageType
typedef NumericTraits
< InputPixelType >::RealType 
InputPixelRealType
typedef InputImageType::PixelType InputPixelType
typedef InternalImageType::Pointer InternalImagePointer
typedef itk::Image
< InputPixelRealType,
itkGetStaticConstMacro(ImageDimension) > 
InternalImageType
typedef Neighborhood< TOutput,
itkGetStaticConstMacro(ImageDimension) > 
NeighborhoodType
typedef FixedArray
< NeighborhoodType,
itkGetStaticConstMacro(ImageDimension) > 
OperatorArrayType
typedef
OperatorImageFunctionType::Pointer 
OperatorImageFunctionPointer
typedef
NeighborhoodOperatorImageFunction
< InputImageType, TOutput > 
OperatorImageFunctionType
typedef
OperatorInternalImageFunctionType::Pointer 
OperatorInternalImageFunctionPointer
typedef
NeighborhoodOperatorImageFunction
< InternalImageType, TOutput > 
OperatorInternalImageFunctionType
typedef SmartPointer< SelfPointer
typedef Superclass::PointType PointType
typedef GaussianBlurImageFunction Self
typedef itk::FixedArray
< double,
itkGetStaticConstMacro(ImageDimension) > 
SigmaArrayType
typedef ImageFunction
< TInputImage, TOutput > 
Superclass

Public Member Functions

virtual ::itk::LightObject::Pointer CreateAnother (void) const
virtual TOutput Evaluate (const PointType &point) const
virtual TOutput EvaluateAtContinuousIndex (const ContinuousIndexType &index) const
virtual TOutput EvaluateAtIndex (const IndexType &index) const
virtual const char * GetNameOfClass () const
virtual const SigmaArrayTypeGetSigma ()
void SetExtent (const double extent)
virtual void SetInputImage (const InputImageType *ptr)
virtual void SetSigma (SigmaArrayType _arg)
void SetSigma (const double sigma)
void SetSigma (const float *sigma)
void SetSigma (const double *sigma)
virtual void SetExtent (ExtentArrayType _arg)
virtual const ExtentArrayTypeGetExtent ()
void SetExtent (const double *extent)
virtual void SetMaximumError (ErrorArrayType _arg)
virtual const ErrorArrayTypeGetMaximumError ()
virtual void SetMaximumKernelWidth (int _arg)
virtual int GetMaximumKernelWidth () const

Static Public Member Functions

static Pointer New ()

Static Public Attributes

static const unsigned int ImageDimension = InputImageType::ImageDimension

Protected Member Functions

void operator= (const Self &)
void PrintSelf (std::ostream &os, Indent indent) const
void RecomputeContinuousGaussianKernel (const double *offset) const
void RecomputeGaussianKernel ()
 ~GaussianBlurImageFunction ()

Private Member Functions

virtual TOutput EvaluateAtIndex (const IndexType &index, const OperatorArrayType &operatorArray) const

Private Attributes

OperatorArrayType m_ContinuousOperatorArray
ExtentArrayType m_Extent
unsigned int m_FilterDimensionality
GaussianFunctionPointer m_GaussianFunction
InternalImagePointer m_InternalImage
ErrorArrayType m_MaximumError
int m_MaximumKernelWidth
OperatorArrayType m_OperatorArray
OperatorImageFunctionPointer m_OperatorImageFunction
OperatorInternalImageFunctionPointer m_OperatorInternalImageFunction
SigmaArrayType m_Sigma
bool m_UseImageSpacing
virtual void SetUseImageSpacing (bool _arg)
virtual bool GetUseImageSpacing () const
virtual void UseImageSpacingOn ()
virtual void UseImageSpacingOff ()
 GaussianBlurImageFunction ()
 GaussianBlurImageFunction (const Self &)

Detailed Description

template<class TInputImage, class TOutput = double>
class itk::GaussianBlurImageFunction< TInputImage, TOutput >

Compute the convolution of a neighborhood operator with the image at a specific location in space, i.e. point, index or continuous index. This class is templated over the input image type.

See also:
NeighborhoodOperator
ImageFunction
Wiki Examples:

Definition at line 43 of file itkGaussianBlurImageFunction.h.


Member Typedef Documentation

template<class TInputImage , class TOutput = double>
typedef SmartPointer< const Self > itk::GaussianBlurImageFunction< TInputImage, TOutput >::ConstPointer

Reimplemented from itk::ImageFunction< TInputImage, TOutput >.

Definition at line 56 of file itkGaussianBlurImageFunction.h.

template<class TInputImage , class TOutput = double>
typedef Superclass::ContinuousIndexType itk::GaussianBlurImageFunction< TInputImage, TOutput >::ContinuousIndexType
template<class TInputImage , class TOutput = double>
typedef itk::FixedArray< double, itkGetStaticConstMacro(ImageDimension) > itk::GaussianBlurImageFunction< TInputImage, TOutput >::ErrorArrayType

Definition at line 91 of file itkGaussianBlurImageFunction.h.

template<class TInputImage , class TOutput = double>
typedef itk::FixedArray< double, itkGetStaticConstMacro(ImageDimension) > itk::GaussianBlurImageFunction< TInputImage, TOutput >::ExtentArrayType

Definition at line 92 of file itkGaussianBlurImageFunction.h.

template<class TInputImage , class TOutput = double>
typedef GaussianFunctionType::Pointer itk::GaussianBlurImageFunction< TInputImage, TOutput >::GaussianFunctionPointer

Definition at line 79 of file itkGaussianBlurImageFunction.h.

template<class TInputImage , class TOutput = double>
typedef GaussianSpatialFunction< TOutput, 1 > itk::GaussianBlurImageFunction< TInputImage, TOutput >::GaussianFunctionType

Definition at line 78 of file itkGaussianBlurImageFunction.h.

template<class TInputImage , class TOutput = double>
typedef GaussianOperator< TOutput, itkGetStaticConstMacro(ImageDimension) > itk::GaussianBlurImageFunction< TInputImage, TOutput >::GaussianOperatorType

Definition at line 74 of file itkGaussianBlurImageFunction.h.

template<class TInputImage , class TOutput = double>
typedef Superclass::IndexType itk::GaussianBlurImageFunction< TInputImage, TOutput >::IndexType

Index Type.

Reimplemented from itk::ImageFunction< TInputImage, TOutput >.

Definition at line 67 of file itkGaussianBlurImageFunction.h.

template<class TInputImage , class TOutput = double>
typedef TInputImage itk::GaussianBlurImageFunction< TInputImage, TOutput >::InputImageType

InputImageType typedef support.

Reimplemented from itk::ImageFunction< TInputImage, TOutput >.

Definition at line 62 of file itkGaussianBlurImageFunction.h.

template<class TInputImage , class TOutput = double>
typedef NumericTraits< InputPixelType >::RealType itk::GaussianBlurImageFunction< TInputImage, TOutput >::InputPixelRealType

Definition at line 80 of file itkGaussianBlurImageFunction.h.

template<class TInputImage , class TOutput = double>
typedef InputImageType::PixelType itk::GaussianBlurImageFunction< TInputImage, TOutput >::InputPixelType

InputPixel typedef support

Reimplemented from itk::ImageFunction< TInputImage, TOutput >.

Definition at line 66 of file itkGaussianBlurImageFunction.h.

template<class TInputImage , class TOutput = double>
typedef InternalImageType::Pointer itk::GaussianBlurImageFunction< TInputImage, TOutput >::InternalImagePointer

Definition at line 83 of file itkGaussianBlurImageFunction.h.

template<class TInputImage , class TOutput = double>
typedef itk::Image< InputPixelRealType, itkGetStaticConstMacro(ImageDimension) > itk::GaussianBlurImageFunction< TInputImage, TOutput >::InternalImageType

Definition at line 82 of file itkGaussianBlurImageFunction.h.

template<class TInputImage , class TOutput = double>
typedef Neighborhood< TOutput, itkGetStaticConstMacro(ImageDimension) > itk::GaussianBlurImageFunction< TInputImage, TOutput >::NeighborhoodType

Definition at line 75 of file itkGaussianBlurImageFunction.h.

template<class TInputImage , class TOutput = double>
typedef FixedArray< NeighborhoodType, itkGetStaticConstMacro(ImageDimension) > itk::GaussianBlurImageFunction< TInputImage, TOutput >::OperatorArrayType

Definition at line 76 of file itkGaussianBlurImageFunction.h.

template<class TInputImage , class TOutput = double>
typedef OperatorImageFunctionType::Pointer itk::GaussianBlurImageFunction< TInputImage, TOutput >::OperatorImageFunctionPointer

Definition at line 86 of file itkGaussianBlurImageFunction.h.

template<class TInputImage , class TOutput = double>
typedef NeighborhoodOperatorImageFunction< InputImageType, TOutput > itk::GaussianBlurImageFunction< TInputImage, TOutput >::OperatorImageFunctionType

Definition at line 85 of file itkGaussianBlurImageFunction.h.

template<class TInputImage , class TOutput = double>
typedef OperatorInternalImageFunctionType::Pointer itk::GaussianBlurImageFunction< TInputImage, TOutput >::OperatorInternalImageFunctionPointer

Definition at line 89 of file itkGaussianBlurImageFunction.h.

template<class TInputImage , class TOutput = double>
typedef NeighborhoodOperatorImageFunction< InternalImageType, TOutput > itk::GaussianBlurImageFunction< TInputImage, TOutput >::OperatorInternalImageFunctionType

Definition at line 88 of file itkGaussianBlurImageFunction.h.

template<class TInputImage , class TOutput = double>
typedef SmartPointer< Self > itk::GaussianBlurImageFunction< TInputImage, TOutput >::Pointer

Smart pointer typedef support.

Reimplemented from itk::ImageFunction< TInputImage, TOutput >.

Definition at line 55 of file itkGaussianBlurImageFunction.h.

template<class TInputImage , class TOutput = double>
typedef Superclass::PointType itk::GaussianBlurImageFunction< TInputImage, TOutput >::PointType

Point typedef support.

Reimplemented from itk::ImageFunction< TInputImage, TOutput >.

Definition at line 96 of file itkGaussianBlurImageFunction.h.

template<class TInputImage , class TOutput = double>
typedef GaussianBlurImageFunction itk::GaussianBlurImageFunction< TInputImage, TOutput >::Self

Standard "Self" typedef

Reimplemented from itk::ImageFunction< TInputImage, TOutput >.

Definition at line 49 of file itkGaussianBlurImageFunction.h.

template<class TInputImage , class TOutput = double>
typedef itk::FixedArray< double, itkGetStaticConstMacro(ImageDimension) > itk::GaussianBlurImageFunction< TInputImage, TOutput >::SigmaArrayType

Definition at line 93 of file itkGaussianBlurImageFunction.h.

template<class TInputImage , class TOutput = double>
typedef ImageFunction< TInputImage, TOutput > itk::GaussianBlurImageFunction< TInputImage, TOutput >::Superclass

Standard "Superclass" typedef

Reimplemented from itk::ImageFunction< TInputImage, TOutput >.

Definition at line 52 of file itkGaussianBlurImageFunction.h.


Constructor & Destructor Documentation

template<class TInputImage , class TOutput = double>
itk::GaussianBlurImageFunction< TInputImage, TOutput >::GaussianBlurImageFunction ( ) [protected]

Set/GetUseImageSpacing() This flag is used by the underling GaussianOperator to decide if the image spacing should be used to scale the value of sigma or not. The methods UseImageSpacingOn() and UseImageSpacingOff() provide a similar functionality.

template<class TInputImage , class TOutput = double>
itk::GaussianBlurImageFunction< TInputImage, TOutput >::GaussianBlurImageFunction ( const Self ) [protected]

Set/GetUseImageSpacing() This flag is used by the underling GaussianOperator to decide if the image spacing should be used to scale the value of sigma or not. The methods UseImageSpacingOn() and UseImageSpacingOff() provide a similar functionality.

template<class TInputImage , class TOutput = double>
itk::GaussianBlurImageFunction< TInputImage, TOutput >::~GaussianBlurImageFunction ( ) [inline, protected]

Definition at line 167 of file itkGaussianBlurImageFunction.h.


Member Function Documentation

template<class TInputImage , class TOutput = double>
virtual::itk::LightObject::Pointer itk::GaussianBlurImageFunction< TInputImage, TOutput >::CreateAnother ( void  ) const [virtual]

Create an object from an instance, potentially deferring to a factory. This method allows you to create an instance of an object that is exactly the same type as the referring object. This is useful in cases where an object has been cast back to a base class.

Reimplemented from itk::Object.

template<class TInputImage , class TOutput = double>
virtual TOutput itk::GaussianBlurImageFunction< TInputImage, TOutput >::Evaluate ( const PointType point) const [virtual]

Evalutate the in the given dimension at specified point

template<class TInputImage , class TOutput = double>
virtual TOutput itk::GaussianBlurImageFunction< TInputImage, TOutput >::EvaluateAtContinuousIndex ( const ContinuousIndexType index) const [virtual]

Evaluate the function at specified ContinousIndex position.

template<class TInputImage , class TOutput = double>
virtual TOutput itk::GaussianBlurImageFunction< TInputImage, TOutput >::EvaluateAtIndex ( const IndexType index) const [virtual]

Evaluate the function at specified Index position

template<class TInputImage , class TOutput = double>
virtual TOutput itk::GaussianBlurImageFunction< TInputImage, TOutput >::EvaluateAtIndex ( const IndexType index,
const OperatorArrayType operatorArray 
) const [private, virtual]
template<class TInputImage , class TOutput = double>
virtual const ExtentArrayType& itk::GaussianBlurImageFunction< TInputImage, TOutput >::GetExtent ( ) [virtual]

Set/Get the Extent of the array holding the coefficients of the Gaussian kernel computed by the GaussianOperator.

template<class TInputImage , class TOutput = double>
virtual const ErrorArrayType& itk::GaussianBlurImageFunction< TInputImage, TOutput >::GetMaximumError ( ) [virtual]

Set/Get the maximum error acceptable for the approximation of the Gaussian kernel with the GaussianOperator.

template<class TInputImage , class TOutput = double>
virtual int itk::GaussianBlurImageFunction< TInputImage, TOutput >::GetMaximumKernelWidth ( ) const [virtual]

Set/GetMaximumKernelWidth() This value is used by the underling GaussianOperator for computing the number of coefficients to be used in the Gaussian kernel

template<class TInputImage , class TOutput = double>
virtual const char* itk::GaussianBlurImageFunction< TInputImage, TOutput >::GetNameOfClass ( ) const [virtual]

Run-time type information (and related methods).

Reimplemented from itk::ImageFunction< TInputImage, TOutput >.

template<class TInputImage , class TOutput = double>
virtual const SigmaArrayType& itk::GaussianBlurImageFunction< TInputImage, TOutput >::GetSigma ( ) [virtual]
template<class TInputImage , class TOutput = double>
virtual bool itk::GaussianBlurImageFunction< TInputImage, TOutput >::GetUseImageSpacing ( ) const [virtual]

Set/GetUseImageSpacing() This flag is used by the underling GaussianOperator to decide if the image spacing should be used to scale the value of sigma or not. The methods UseImageSpacingOn() and UseImageSpacingOff() provide a similar functionality.

template<class TInputImage , class TOutput = double>
static Pointer itk::GaussianBlurImageFunction< TInputImage, TOutput >::New ( ) [static]

Method for creation through the object factory.

Reimplemented from itk::Object.

template<class TInputImage , class TOutput = double>
void itk::GaussianBlurImageFunction< TInputImage, TOutput >::operator= ( const Self ) [protected]

Mutex lock to protect modification to the reference count

Reimplemented from itk::ImageFunction< TInputImage, TOutput >.

template<class TInputImage , class TOutput = double>
void itk::GaussianBlurImageFunction< TInputImage, TOutput >::PrintSelf ( std::ostream &  os,
Indent  indent 
) const [protected, virtual]

Methods invoked by Print() to print information about the object including superclasses. Typically not called by the user (use Print() instead) but used in the hierarchical print process to combine the output of several classes.

Reimplemented from itk::ImageFunction< TInputImage, TOutput >.

template<class TInputImage , class TOutput = double>
void itk::GaussianBlurImageFunction< TInputImage, TOutput >::RecomputeContinuousGaussianKernel ( const double *  offset) const [protected]
template<class TInputImage , class TOutput = double>
void itk::GaussianBlurImageFunction< TInputImage, TOutput >::RecomputeGaussianKernel ( ) [protected]
template<class TInputImage , class TOutput = double>
void itk::GaussianBlurImageFunction< TInputImage, TOutput >::SetExtent ( const double  extent)
template<class TInputImage , class TOutput = double>
virtual void itk::GaussianBlurImageFunction< TInputImage, TOutput >::SetExtent ( ExtentArrayType  _arg) [virtual]

Set/Get the Extent of the array holding the coefficients of the Gaussian kernel computed by the GaussianOperator.

template<class TInputImage , class TOutput = double>
void itk::GaussianBlurImageFunction< TInputImage, TOutput >::SetExtent ( const double *  extent)

Set/Get the Extent of the array holding the coefficients of the Gaussian kernel computed by the GaussianOperator.

template<class TInputImage , class TOutput = double>
virtual void itk::GaussianBlurImageFunction< TInputImage, TOutput >::SetInputImage ( const InputImageType ptr) [virtual]

Set the input image.

Warning:
this method caches BufferedRegion information. If the BufferedRegion has changed, user must call SetInputImage again to update cached values.

Reimplemented from itk::ImageFunction< TInputImage, TOutput >.

template<class TInputImage , class TOutput = double>
virtual void itk::GaussianBlurImageFunction< TInputImage, TOutput >::SetMaximumError ( ErrorArrayType  _arg) [virtual]

Set/Get the maximum error acceptable for the approximation of the Gaussian kernel with the GaussianOperator.

template<class TInputImage , class TOutput = double>
virtual void itk::GaussianBlurImageFunction< TInputImage, TOutput >::SetMaximumKernelWidth ( int  _arg) [virtual]

Set/GetMaximumKernelWidth() This value is used by the underling GaussianOperator for computing the number of coefficients to be used in the Gaussian kernel

template<class TInputImage , class TOutput = double>
void itk::GaussianBlurImageFunction< TInputImage, TOutput >::SetSigma ( const double *  sigma)

The standard deviation for the discrete Gaussian kernel. Sets the standard deviation independently for each dimension. The default is 1.0 in each dimension. If UseImageSpacing is true (default), the units are the physical units of your image. If UseImageSpacing is false then the units are pixels.

template<class TInputImage , class TOutput = double>
void itk::GaussianBlurImageFunction< TInputImage, TOutput >::SetSigma ( const float *  sigma)
template<class TInputImage , class TOutput = double>
virtual void itk::GaussianBlurImageFunction< TInputImage, TOutput >::SetSigma ( SigmaArrayType  _arg) [virtual]
template<class TInputImage , class TOutput = double>
void itk::GaussianBlurImageFunction< TInputImage, TOutput >::SetSigma ( const double  sigma)
template<class TInputImage , class TOutput = double>
virtual void itk::GaussianBlurImageFunction< TInputImage, TOutput >::SetUseImageSpacing ( bool  _arg) [virtual]

Set/GetUseImageSpacing() This flag is used by the underling GaussianOperator to decide if the image spacing should be used to scale the value of sigma or not. The methods UseImageSpacingOn() and UseImageSpacingOff() provide a similar functionality.

template<class TInputImage , class TOutput = double>
virtual void itk::GaussianBlurImageFunction< TInputImage, TOutput >::UseImageSpacingOff ( ) [virtual]

Set/GetUseImageSpacing() This flag is used by the underling GaussianOperator to decide if the image spacing should be used to scale the value of sigma or not. The methods UseImageSpacingOn() and UseImageSpacingOff() provide a similar functionality.

template<class TInputImage , class TOutput = double>
virtual void itk::GaussianBlurImageFunction< TInputImage, TOutput >::UseImageSpacingOn ( ) [virtual]

Set/GetUseImageSpacing() This flag is used by the underling GaussianOperator to decide if the image spacing should be used to scale the value of sigma or not. The methods UseImageSpacingOn() and UseImageSpacingOff() provide a similar functionality.


Member Data Documentation

template<class TInputImage , class TOutput = double>
const unsigned int itk::GaussianBlurImageFunction< TInputImage, TOutput >::ImageDimension = InputImageType::ImageDimension [static]

Dimension of the underlying image.

Reimplemented from itk::ImageFunction< TInputImage, TOutput >.

Definition at line 71 of file itkGaussianBlurImageFunction.h.

template<class TInputImage , class TOutput = double>
OperatorArrayType itk::GaussianBlurImageFunction< TInputImage, TOutput >::m_ContinuousOperatorArray [mutable, private]

Definition at line 186 of file itkGaussianBlurImageFunction.h.

template<class TInputImage , class TOutput = double>
ExtentArrayType itk::GaussianBlurImageFunction< TInputImage, TOutput >::m_Extent [private]

Definition at line 193 of file itkGaussianBlurImageFunction.h.

template<class TInputImage , class TOutput = double>
unsigned int itk::GaussianBlurImageFunction< TInputImage, TOutput >::m_FilterDimensionality [private]

Number of dimensions to process. Default is all dimensions

Definition at line 200 of file itkGaussianBlurImageFunction.h.

template<class TInputImage , class TOutput = double>
GaussianFunctionPointer itk::GaussianBlurImageFunction< TInputImage, TOutput >::m_GaussianFunction [private]
template<class TInputImage , class TOutput = double>
InternalImagePointer itk::GaussianBlurImageFunction< TInputImage, TOutput >::m_InternalImage [private]

Definition at line 187 of file itkGaussianBlurImageFunction.h.

template<class TInputImage , class TOutput = double>
ErrorArrayType itk::GaussianBlurImageFunction< TInputImage, TOutput >::m_MaximumError [private]

The maximum error of the gaussian blurring kernel in each dimensional direction. For definition of maximum error, see GaussianOperator.

See also:
GaussianOperator

Definition at line 192 of file itkGaussianBlurImageFunction.h.

template<class TInputImage , class TOutput = double>
int itk::GaussianBlurImageFunction< TInputImage, TOutput >::m_MaximumKernelWidth [private]

Maximum allowed kernel width for any dimension of the discrete Gaussian approximation

Definition at line 197 of file itkGaussianBlurImageFunction.h.

template<class TInputImage , class TOutput = double>
OperatorArrayType itk::GaussianBlurImageFunction< TInputImage, TOutput >::m_OperatorArray [mutable, private]

Definition at line 185 of file itkGaussianBlurImageFunction.h.

template<class TInputImage , class TOutput = double>
OperatorImageFunctionPointer itk::GaussianBlurImageFunction< TInputImage, TOutput >::m_OperatorImageFunction [private]

Definition at line 183 of file itkGaussianBlurImageFunction.h.

template<class TInputImage , class TOutput = double>
OperatorInternalImageFunctionPointer itk::GaussianBlurImageFunction< TInputImage, TOutput >::m_OperatorInternalImageFunction [private]

Definition at line 184 of file itkGaussianBlurImageFunction.h.

template<class TInputImage , class TOutput = double>
SigmaArrayType itk::GaussianBlurImageFunction< TInputImage, TOutput >::m_Sigma [private]

Definition at line 182 of file itkGaussianBlurImageFunction.h.

template<class TInputImage , class TOutput = double>
bool itk::GaussianBlurImageFunction< TInputImage, TOutput >::m_UseImageSpacing [private]

Flag to indicate whether to use image spacing

Definition at line 203 of file itkGaussianBlurImageFunction.h.


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