         static int Ht_dcphaseLookback( void );

#if defined( _MANAGED ) && defined( USE_SUBARRAY )
         static enum class RetCode Ht_dcphase( int    startIdx,
                                               int    endIdx,
                                               SubArray<double>^ inReal,
                                               [Out]int%    outBegIdx,
                                               [Out]int%    outNBElement,
                                               SubArray<double>^  outReal );

         static enum class RetCode Ht_dcphase( int    startIdx,
                                               int    endIdx,
                                               SubArray<float>^ inReal,
                                               [Out]int%    outBegIdx,
                                               [Out]int%    outNBElement,
                                               SubArray<double>^  outReal );

         static enum class RetCode Ht_dcphase( int    startIdx,
                                               int    endIdx,
                                               cli::array<double>^ inReal,
                                               [Out]int%    outBegIdx,
                                               [Out]int%    outNBElement,
                                               cli::array<double>^  outReal )
         { return Ht_dcphase( startIdx, endIdx,
                         gcnew SubArrayFrom1D<double>(inReal,0),
             outBegIdx,
             outNBElement,
               gcnew SubArrayFrom1D<double>(outReal,0) );
         }
         static enum class RetCode Ht_dcphase( int    startIdx,
                                               int    endIdx,
                                               cli::array<float>^ inReal,
                                               [Out]int%    outBegIdx,
                                               [Out]int%    outNBElement,
                                               cli::array<double>^  outReal )
         { return Ht_dcphase( startIdx, endIdx,
                         gcnew SubArrayFrom1D<float>(inReal,0),
             outBegIdx,
             outNBElement,
               gcnew SubArrayFrom1D<double>(outReal,0) );
         }
#elif defined( _MANAGED )
         static enum class RetCode Ht_dcphase( int    startIdx,
                                               int    endIdx,
                                               cli::array<double>^ inReal,
                                               [Out]int%    outBegIdx,
                                               [Out]int%    outNBElement,
                                               cli::array<double>^  outReal );
         static enum class RetCode Ht_dcphase( int    startIdx,
                                               int    endIdx,
                                               cli::array<float>^ inReal,
                                               [Out]int%    outBegIdx,
                                               [Out]int%    outNBElement,
                                               cli::array<double>^  outReal );
#endif

#if defined( _MANAGED ) && defined( USE_SUBARRAY )
         static enum class RetCode Ht_dcphaseLogic( int    startIdx,
                                                    int    endIdx,
                                                    SubArray<double>^ inReal,
                                                    [Out]int%    outBegIdx,
                                                    [Out]int%    outNBElement,
                                                    SubArray<double>^  outReal );

         static enum class RetCode Ht_dcphaseLogic( int    startIdx,
                                                    int    endIdx,
                                                    SubArray<float>^ inReal,
                                                    [Out]int%    outBegIdx,
                                                    [Out]int%    outNBElement,
                                                    SubArray<double>^  outReal );

         static enum class RetCode Ht_dcphaseLogic( int    startIdx,
                                                    int    endIdx,
                                                    cli::array<double>^ inReal,
                                                    [Out]int%    outBegIdx,
                                                    [Out]int%    outNBElement,
                                                    cli::array<double>^  outReal )
         { return Ht_dcphaseLogic( startIdx, endIdx,
                         gcnew SubArrayFrom1D<double>(inReal,0),
             outBegIdx,
             outNBElement,
               gcnew SubArrayFrom1D<double>(outReal,0) );
         }
         static enum class RetCode Ht_dcphaseLogic( int    startIdx,
                                                    int    endIdx,
                                                    cli::array<float>^ inReal,
                                                    [Out]int%    outBegIdx,
                                                    [Out]int%    outNBElement,
                                                    cli::array<double>^  outReal )
         { return Ht_dcphaseLogic( startIdx, endIdx,
                         gcnew SubArrayFrom1D<float>(inReal,0),
             outBegIdx,
             outNBElement,
               gcnew SubArrayFrom1D<double>(outReal,0) );
         }
#elif defined( _MANAGED )
         static enum class RetCode Ht_dcphaseLogic( int    startIdx,
                                                    int    endIdx,
                                                    cli::array<double>^ inReal,
                                                    [Out]int%    outBegIdx,
                                                    [Out]int%    outNBElement,
                                                    cli::array<double>^  outReal );
         static enum class RetCode Ht_dcphaseLogic( int    startIdx,
                                                    int    endIdx,
                                                    cli::array<float>^ inReal,
                                                    [Out]int%    outBegIdx,
                                                    [Out]int%    outNBElement,
                                                    cli::array<double>^  outReal );
#endif

         #define TA_HT_DCPHASE Core::Ht_dcphase
         #define TA_HT_DCPHASE_Lookback Core::Ht_dcphaseLookback
         #define TA_HT_DCPHASE_Logic Core::Ht_dcphaseLogic
