This file is indexed.

/usr/include/InsightToolkit/Common/itkScaleLogarithmicTransform.txx 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
/*=========================================================================

  Program:   Insight Segmentation & Registration Toolkit
  Module:    itkScaleLogarithmicTransform.txx
  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 __itkScaleLogarithmicTransform_txx
#define __itkScaleLogarithmicTransform_txx

#include "itkScaleLogarithmicTransform.h"


namespace itk
{

// Constructor with default arguments
template<class ScalarType, unsigned int NDimensions>
ScaleLogarithmicTransform<ScalarType, NDimensions>::
ScaleLogarithmicTransform()
{
  return;
}
    


// Destructor
template<class ScalarType, unsigned int NDimensions>
ScaleLogarithmicTransform<ScalarType, NDimensions>::
~ScaleLogarithmicTransform()
{
  return;
}


// Set the parameters
template <class ScalarType, unsigned int NDimensions>
void
ScaleLogarithmicTransform<ScalarType, NDimensions>
::SetParameters( const ParametersType & parameters )
{
  ScaleType scales;
  for( unsigned int i=0; i<SpaceDimension; i++ )
    {
    scales[i] = vcl_exp(parameters[i] );
    }
  this->m_Parameters = parameters;
  this->SetScale( scales );

  // Modified is always called since we just have a pointer to the
  // parameters and cannot know if the parameters have changed.
  this->Modified();

}


// Get Parameters
template <class TScalarType,unsigned int NDimensions>
const typename ScaleLogarithmicTransform<TScalarType,NDimensions>::ParametersType &
ScaleLogarithmicTransform<TScalarType,NDimensions>
::GetParameters( void ) const
{
  itkDebugMacro( << "Getting parameters ");

  const ScaleType & scales = this->GetScale(); 
  // Transfer the translation part
  for(unsigned int i=0; i < SpaceDimension; i++) 
    {
    this->m_Parameters[i] = vcl_log(scales[i] );
    }

  itkDebugMacro(<<"After getting parameters " << this->m_Parameters );

  return this->m_Parameters;
}

// Print self
template<class ScalarType, unsigned int NDimensions>
void
ScaleLogarithmicTransform<ScalarType, NDimensions>::
PrintSelf(std::ostream &os, Indent indent) const
{
  Superclass::PrintSelf(os, indent);
}


// Compute the Jacobian of the transformation
// It follows the same order of Parameters vector 
template<class ScalarType, unsigned int NDimensions>
const typename ScaleLogarithmicTransform<ScalarType, NDimensions>::JacobianType &
ScaleLogarithmicTransform<ScalarType, NDimensions>
::GetJacobian( const InputPointType & p ) const
{
  const ScaleType & scales = this->GetScale(); 
  this->m_Jacobian.Fill(0);
  for(unsigned int dim=0; dim<SpaceDimension; dim++)
    {
    // the derivative with respect to Log(scale) = scale * derivative with respect to scale.  
    this->m_Jacobian(dim,dim) = scales[dim] * p[dim];
    }
  return this->m_Jacobian;
}


} // namespace

#endif