14 #ifndef NMRSPECTRUMSOLVER_H_
15 #define NMRSPECTRUMSOLVER_H_
18 #include "spectrumsolver.h"
19 #include "xitemnode.h"
28 const shared_ptr<XComboNode> selector,
const shared_ptr<XComboNode> windowfunc,
29 const shared_ptr<XDoubleNode> windowlength,
bool leastsqureonly =
false);
36 m_wrapper.reset(x.m_wrapper->clone());
51 virtual Wrapper* clone() {
return new Wrapper(
new T( *m_solver)); }
52 virtual T &solver() {
return *m_solver; }
53 virtual const T &solver()
const {
return *m_solver; }
56 unique_ptr<T> m_solver;
58 shared_ptr<WrapperBase> m_wrapper;
61 static const char SPECTRUM_SOLVER_ZF_FFT[];
62 static const char SPECTRUM_SOLVER_MEM_STRICT[];
63 static const char SPECTRUM_SOLVER_MEM_STRICT_BURG[];
64 static const char SPECTRUM_SOLVER_MEM_BURG_AICc[];
65 static const char SPECTRUM_SOLVER_MEM_BURG_MDL[];
66 static const char SPECTRUM_SOLVER_AR_YW_AICc[];
67 static const char SPECTRUM_SOLVER_AR_YW_MDL[];
69 static const char SPECTRUM_SOLVER_MEM_STRICT_EV[];
70 static const char SPECTRUM_SOLVER_MUSIC_AIC[];
71 static const char SPECTRUM_SOLVER_MUSIC_MDL[];
72 static const char SPECTRUM_SOLVER_EV_AIC[];
73 static const char SPECTRUM_SOLVER_EV_MDL[];
74 static const char SPECTRUM_SOLVER_MVDL[];
76 static const char SPECTRUM_SOLVER_LS_HQ[];
77 static const char SPECTRUM_SOLVER_LS_AICc[];
78 static const char SPECTRUM_SOLVER_LS_MDL[];
80 static const char WINDOW_FUNC_DEFAULT[];
81 static const char WINDOW_FUNC_HANNING[];
82 static const char WINDOW_FUNC_HAMMING[];
83 static const char WINDOW_FUNC_FLATTOP[];
84 static const char WINDOW_FUNC_BLACKMAN[];
85 static const char WINDOW_FUNC_BLACKMAN_HARRIS[];
86 static const char WINDOW_FUNC_KAISER_1[];
87 static const char WINDOW_FUNC_KAISER_2[];
88 static const char WINDOW_FUNC_KAISER_3[];
90 FFT::twindowfunc windowFunc(
const Snapshot &shot)
const;
91 void windowFuncs(std::deque<FFT::twindowfunc> &funcs)
const;
93 const shared_ptr<XComboNode> m_selector, m_windowfunc;
94 const shared_ptr<XDoubleNode> m_windowlength;
95 shared_ptr<XListener> m_lsnOnChanged;