18 #ifndef __otbSinclairToCoherencyMatrixFunctor_h
19 #define __otbSinclairToCoherencyMatrixFunctor_h
21 #include "vcl_complex.h"
58 template <
class TInput1,
class TInput2,
class TInput3,
59 class TInput4,
class TOutput>
67 inline TOutput
operator ()(
const TInput1& Shh,
const TInput2& Shv,
68 const TInput3& Svh,
const TInput4& Svv)
85 result[1] =
static_cast<OutputValueType>( HHPlusVV * vcl_conj(HHMinusVV) );
86 result[2] =
static_cast<OutputValueType>( HHPlusVV * vcl_conj(HVPlusVH) );
87 result[3] =
static_cast<OutputValueType>( HHPlusVV * vcl_conj(jHVMinusVH) );
89 result[5] =
static_cast<OutputValueType>( HHMinusVV * vcl_conj(HVPlusVH) );
90 result[6] =
static_cast<OutputValueType>( HHMinusVV * vcl_conj(jHVMinusVH) );
92 result[8] =
static_cast<OutputValueType>( HVPlusVH * vcl_conj(jHVMinusVH) );