zoukankan      html  css  js  c++  java
  • Spectrum Analyzer test.cpp Example File

    Spectrum Analyzer test.cpp Example File

    https://doc.qt.io/archives/qt-4.8/qt-demos-spectrum-3rdparty-fftreal-test-cpp.html

    /*****************************************************************************
    
            test.cpp
            Copyright (c) 2005 Laurent de Soras
    
    --- Legal stuff ---
    
    This library is free software; you can redistribute it and/or
    modify it under the terms of the GNU Lesser General Public
    License as published by the Free Software Foundation; either
    version 2.1 of the License, or (at your option) any later version.
    
    This library is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
    Lesser General Public License for more details.
    
    You should have received a copy of the GNU Lesser General Public
    License along with this library; if not, write to the Free Software
    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
    
    *Tab=3***********************************************************************/
    
    #if defined (_MSC_VER)
            #pragma warning (4 : 4786) // "identifier was truncated to '255' characters in the debug information"
            #pragma warning (4 : 4800) // "forcing value to bool 'true' or 'false' (performance warning)"
    #endif
    
    /*\ INCLUDE FILES \\\\\\\\\\\\\\\\\\\\\\\\\\\\*/
    
    #include        "test_settings.h"
    #include        "TestHelperFixLen.h"
    #include        "TestHelperNormal.h"
    
    #if defined (_MSC_VER)
    #include        <crtdbg.h>
    #include        <new.h>
    #endif  // _MSC_VER
    
    #include        <new>
    
    #include        <cassert>
    #include        <cstdio>
    
    #define TEST_
    
    /*\ FUNCTIONS \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\*/
    
    static int      TEST_perform_test_accuracy_all ();
    static int      TEST_perform_test_speed_all ();
    
    static void     TEST_prog_init ();
    static void     TEST_prog_end ();
    
    int main (int argc, char *argv [])
    {
            using namespace std;
    
            int                             ret_val = 0;
    
            TEST_prog_init ();
    
            try
            {
                    if (ret_val == 0)
                    {
                            ret_val = TEST_perform_test_accuracy_all ();
                    }
    
                    if (ret_val == 0)
                    {
                            ret_val = TEST_perform_test_speed_all ();
                    }
            }
    
            catch (std::exception &e)
            {
                    printf ("
    *** main(): Exception (std::exception) : %s
    ", e.what ());
                    ret_val = -1;
            }
    
            catch (...)
            {
                    printf ("
    *** main(): Undefined exception
    ");
                    ret_val = -1;
            }
    
            TEST_prog_end ();
    
            return (ret_val);
    }
    
    int     TEST_perform_test_accuracy_all ()
    {
       int            ret_val = 0;
    
            TestHelperNormal <float >::perform_test_accuracy (ret_val);
            TestHelperNormal <double>::perform_test_accuracy (ret_val);
    
       TestHelperFixLen < 1>::perform_test_accuracy (ret_val);
       TestHelperFixLen < 2>::perform_test_accuracy (ret_val);
       TestHelperFixLen < 3>::perform_test_accuracy (ret_val);
       TestHelperFixLen < 4>::perform_test_accuracy (ret_val);
       TestHelperFixLen < 7>::perform_test_accuracy (ret_val);
       TestHelperFixLen < 8>::perform_test_accuracy (ret_val);
       TestHelperFixLen <10>::perform_test_accuracy (ret_val);
       TestHelperFixLen <12>::perform_test_accuracy (ret_val);
       TestHelperFixLen <13>::perform_test_accuracy (ret_val);
    
            return (ret_val);
    }
    
    int     TEST_perform_test_speed_all ()
    {
       int            ret_val = 0;
    
    #if defined (test_settings_SPEED_TEST_ENABLED)
    
            TestHelperNormal <float >::perform_test_speed (ret_val);
            TestHelperNormal <double>::perform_test_speed (ret_val);
    
       TestHelperFixLen < 1>::perform_test_speed (ret_val);
       TestHelperFixLen < 2>::perform_test_speed (ret_val);
       TestHelperFixLen < 3>::perform_test_speed (ret_val);
       TestHelperFixLen < 4>::perform_test_speed (ret_val);
       TestHelperFixLen < 7>::perform_test_speed (ret_val);
       TestHelperFixLen < 8>::perform_test_speed (ret_val);
       TestHelperFixLen <10>::perform_test_speed (ret_val);
       TestHelperFixLen <12>::perform_test_speed (ret_val);
       TestHelperFixLen <14>::perform_test_speed (ret_val);
       TestHelperFixLen <16>::perform_test_speed (ret_val);
       TestHelperFixLen <20>::perform_test_speed (ret_val);
    
    #endif
    
       return (ret_val);
    }
    
    #if defined (_MSC_VER)
    static int __cdecl      TEST_new_handler_cb (size_t dummy)
    {
            throw std::bad_alloc ();
            return (0);
    }
    #endif  // _MSC_VER
    
    #if defined (_MSC_VER) && ! defined (NDEBUG)
    static int      __cdecl TEST_debug_alloc_hook_cb (int alloc_type, void *user_data_ptr, size_t size, int block_type, long request_nbr, const unsigned char *filename_0, int line_nbr)
    {
            if (block_type != _CRT_BLOCK)   // Ignore CRT blocks to prevent infinite recursion
            {
                    switch (alloc_type)
                    {
                    case    _HOOK_ALLOC:
                    case    _HOOK_REALLOC:
                    case    _HOOK_FREE:
    
                            // Put some debug code here
    
                            break;
    
                    default:
                            assert (false); // Undefined allocation type
                            break;
                    }
            }
    
            return (1);
    }
    #endif
    
    #if defined (_MSC_VER) && ! defined (NDEBUG)
    static int      __cdecl TEST_debug_report_hook_cb (int report_type, char *user_msg_0, int *ret_val_ptr)
    {
            *ret_val_ptr = 0;       // 1 to override the CRT default reporting mode
    
            switch (report_type)
            {
            case    _CRT_WARN:
            case    _CRT_ERROR:
            case    _CRT_ASSERT:
    
    // Put some debug code here
    
                    break;
            }
    
            return (*ret_val_ptr);
    }
    #endif
    
    static void     TEST_prog_init ()
    {
    #if defined (_MSC_VER)
            ::_set_new_handler (::TEST_new_handler_cb);
    #endif  // _MSC_VER
    
    #if defined (_MSC_VER) && ! defined (NDEBUG)
            {
                    const int       mode =   (1 * _CRTDBG_MODE_DEBUG)
                                                           | (1 * _CRTDBG_MODE_WNDW);
                    ::_CrtSetReportMode (_CRT_WARN, mode);
                    ::_CrtSetReportMode (_CRT_ERROR, mode);
                    ::_CrtSetReportMode (_CRT_ASSERT, mode);
    
                    const int       old_flags = ::_CrtSetDbgFlag (_CRTDBG_REPORT_FLAG);
                    ::_CrtSetDbgFlag (  old_flags
                                      | (1 * _CRTDBG_LEAK_CHECK_DF)
                                      | (1 * _CRTDBG_CHECK_ALWAYS_DF));
                    ::_CrtSetBreakAlloc (-1);       // Specify here a memory bloc number
                    ::_CrtSetAllocHook (TEST_debug_alloc_hook_cb);
                    ::_CrtSetReportHook (TEST_debug_report_hook_cb);
    
                    // Speed up I/O but breaks C stdio compatibility
    //              std::cout.sync_with_stdio (false);
    //              std::cin.sync_with_stdio (false);
    //              std::cerr.sync_with_stdio (false);
    //              std::clog.sync_with_stdio (false);
            }
    #endif  // _MSC_VER, NDEBUG
    }
    
    static void     TEST_prog_end ()
    {
    #if defined (_MSC_VER) && ! defined (NDEBUG)
            {
                    const int       mode =   (1 * _CRTDBG_MODE_DEBUG)
                                                           | (0 * _CRTDBG_MODE_WNDW);
                    ::_CrtSetReportMode (_CRT_WARN, mode);
                    ::_CrtSetReportMode (_CRT_ERROR, mode);
                    ::_CrtSetReportMode (_CRT_ASSERT, mode);
    
                    ::_CrtMemState  mem_state;
                    ::_CrtMemCheckpoint (&mem_state);
                    ::_CrtMemDumpStatistics (&mem_state);
            }
    #endif  // _MSC_VER, NDEBUG
    }
    
    /*\ EOF \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\*/

    ============= End

  • 相关阅读:
    Django基础二之URL路由系统
    Django基础一之web框架的本质
    HTTP协议超级详解
    动态规划-背包问题
    java 中对象比较大小
    排序算法
    泛型
    打jar包和使用jar包
    Mongodb中Sharding集群
    linux时间同步,ntpd、ntpdate
  • 原文地址:https://www.cnblogs.com/lsgxeva/p/12841228.html
Copyright © 2011-2022 走看看