/usr/include/ITK-4.12/vnl/vnl_imag.h is in libinsighttoolkit4-dev 4.12.2-dfsg1-1ubuntu1.
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 | // This is core/vnl/vnl_imag.h
#ifndef vnl_imag_h_
#define vnl_imag_h_
//:
// \file
// \brief Functions to return the imaginary parts of complex arrays, vectors, matrices
//
// \verbatim
// Modifications
// Peter Vanroose - 2 July 2002 - part of vnl_complex_ops.h moved here
// \endverbatim
#include <complex>
#include <vcl_compiler.h>
#include <vnl/vnl_vector.h>
#include <vnl/vnl_vector_fixed.h>
#include <vnl/vnl_matrix.h>
#include <vnl/vnl_matrix_fixed.h>
#include <vnl/vnl_diag_matrix.h>
#include <vnl/vnl_diag_matrix_fixed.h>
#include <vnl/vnl_sym_matrix.h>
#include "vnl/vnl_export.h"
//: Return array I of imaginary parts of complex array C.
template <class T> VNL_TEMPLATE_EXPORT
void
vnl_imag(std::complex<T> const* C, T* I, unsigned int n);
// - vnl_vector
// - vnl_vector_fixed
// - vnl_matrix
// - vnl_matrix_fixed
// - vnl_diag_matrix
// - vnl_diag_matrix_fixed
// - vnl_sym_matrix
//: Vector of imaginary parts of vnl_vector<std::complex<T> >.
// \relatesalso vnl_vector
template <class T> VNL_TEMPLATE_EXPORT
vnl_vector<T>
vnl_imag(vnl_vector<std::complex<T> > const& C);
//: Vector of imaginary parts of vnl_vector_fixed<std::complex<T>, N >.
// \relatesalso vnl_vector_fixed
template <class T, unsigned int N> VNL_TEMPLATE_EXPORT
vnl_vector_fixed<T,N>
vnl_imag(vnl_vector_fixed<std::complex<T>, N > const& C)
{
vnl_vector_fixed<T,N> R;
typename vnl_vector_fixed<std::complex<T>,N >::const_iterator cIt = C.begin();
typename vnl_vector_fixed<T,N>::iterator rIt = R.begin();
for (; cIt != C.end(); ++cIt, ++rIt)
*rIt = std::imag(*cIt);
return R;
}
//: Matrix of imaginary parts of vnl_matrix<std::complex<T> >.
// \relatesalso vnl_matrix
template <class T> VNL_TEMPLATE_EXPORT
vnl_matrix<T>
vnl_imag(vnl_matrix<std::complex<T> > const& C);
//: Matrix of imaginary parts of vnl_matrix_fixed<std::complex<T>,NRow,NCol >.
// \relatesalso vnl_matrix_fixed
template <class T, unsigned int NRow, unsigned int NCol> VNL_TEMPLATE_EXPORT
vnl_matrix_fixed<T,NRow,NCol>
vnl_imag(vnl_matrix_fixed<std::complex<T>,NRow,NCol > const& C)
{
vnl_matrix_fixed<T,NRow,NCol> R;
typename vnl_matrix_fixed<std::complex<T>,NRow,NCol >::const_iterator cIt = C.begin();
typename vnl_matrix_fixed<T,NRow,NCol>::iterator rIt = R.begin();
for (; cIt != C.end(); ++cIt, ++rIt)
*rIt = std::imag(*cIt);
return R;
}
//: Matrix of imaginary parts of vnl_diag_matrix<std::complex<T> >.
// \relatesalso vnl_diag_matrix
template <class T> VNL_TEMPLATE_EXPORT
vnl_diag_matrix<T>
vnl_imag(vnl_diag_matrix<std::complex<T> > const& C);
//: Matrix of imaginary parts of vnl_diag_matrix_fixed<std::complex<T> >.
// \relatesalso vnl_diag_matrix_fixed
template <class T, unsigned int N> VNL_TEMPLATE_EXPORT
vnl_diag_matrix_fixed<T,N>
vnl_imag(vnl_diag_matrix_fixed<std::complex<T>,N > const& C)
{
vnl_diag_matrix_fixed<T,N> R;
typename vnl_diag_matrix_fixed<std::complex<T>,N >::const_iterator cIt = C.begin();
typename vnl_diag_matrix_fixed<T,N>::iterator rIt = R.begin();
for (; cIt != C.end(); ++cIt, ++rIt)
*rIt = std::imag(*cIt);
return R;
}
//: Matrix of imaginary parts of vnl_sym_matrix<std::complex<T> >.
// \relatesalso vnl_sym_matrix
template <class T> VNL_TEMPLATE_EXPORT
vnl_sym_matrix<T>
vnl_imag(vnl_sym_matrix<std::complex<T> > const& C);
#endif // vnl_imag_h_
|