Main Page | Namespace List | Class Hierarchy | Class List | Directories | File List | Namespace Members | Class Members | File Members | Related Pages

gr_fir_util.h

Go to the documentation of this file.
00001 /* -*- c++ -*- */
00002 /*
00003  * Copyright 2003 Free Software Foundation, Inc.
00004  * 
00005  * This file is part of GNU Radio
00006  * 
00007  * GNU Radio is free software; you can redistribute it and/or modify
00008  * it under the terms of the GNU General Public License as published by
00009  * the Free Software Foundation; either version 2, or (at your option)
00010  * any later version.
00011  * 
00012  * GNU Radio is distributed in the hope that it will be useful,
00013  * but WITHOUT ANY WARRANTY; without even the implied warranty of
00014  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
00015  * GNU General Public License for more details.
00016  * 
00017  * You should have received a copy of the GNU General Public License
00018  * along with GNU Radio; see the file COPYING.  If not, write to
00019  * the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
00020  * Boston, MA 02111-1307, USA.
00021  */
00022 
00023 /*
00024  * WARNING: This file is automatically generated by
00025  * generate_gr_fir_util.py.
00026  *
00027  * Any changes made to this file will be overwritten.
00028  */
00029 
00030 #ifndef _GR_FIR_UTIL_H_
00031 #define _GR_FIR_UTIL_H_
00032 
00047 #include <VrComplex.h>
00048 #include <vector>
00049 
00050 class gr_fir_CCF;
00051 class gr_fir_FCC;
00052 class gr_fir_CCC;
00053 class gr_fir_FFF;
00054 class gr_fir_SCC;
00055 class gr_fir_SIS;
00056 class gr_fir_FSF;
00057 
00058 // structures returned by get_gr_fir_XXX_info methods
00059 
00060 
00061 struct gr_fir_CCF_info {
00062   const char    *name;             // implementation name, e.g., "generic", "SSE", "3DNow!"
00063   gr_fir_CCF    *(*create)(const std::vector<float> &taps);
00064 };
00065 
00066 struct gr_fir_FCC_info {
00067   const char    *name;             // implementation name, e.g., "generic", "SSE", "3DNow!"
00068   gr_fir_FCC    *(*create)(const std::vector<VrComplex> &taps);
00069 };
00070 
00071 struct gr_fir_CCC_info {
00072   const char    *name;             // implementation name, e.g., "generic", "SSE", "3DNow!"
00073   gr_fir_CCC    *(*create)(const std::vector<VrComplex> &taps);
00074 };
00075 
00076 struct gr_fir_FFF_info {
00077   const char    *name;             // implementation name, e.g., "generic", "SSE", "3DNow!"
00078   gr_fir_FFF    *(*create)(const std::vector<float> &taps);
00079 };
00080 
00081 struct gr_fir_SCC_info {
00082   const char    *name;             // implementation name, e.g., "generic", "SSE", "3DNow!"
00083   gr_fir_SCC    *(*create)(const std::vector<VrComplex> &taps);
00084 };
00085 
00086 struct gr_fir_SIS_info {
00087   const char    *name;             // implementation name, e.g., "generic", "SSE", "3DNow!"
00088   gr_fir_SIS    *(*create)(const std::vector<short> &taps);
00089 };
00090 
00091 struct gr_fir_FSF_info {
00092   const char    *name;             // implementation name, e.g., "generic", "SSE", "3DNow!"
00093   gr_fir_FSF    *(*create)(const std::vector<float> &taps);
00094 };
00095 
00096 struct gr_fir_util {
00097 
00098   // create a fast version of gr_fir_XXX.
00099 
00100   static gr_fir_CCF *create_gr_fir_CCF (const std::vector<float> &taps);
00101   static gr_fir_FCC *create_gr_fir_FCC (const std::vector<VrComplex> &taps);
00102   static gr_fir_CCC *create_gr_fir_CCC (const std::vector<VrComplex> &taps);
00103   static gr_fir_FFF *create_gr_fir_FFF (const std::vector<float> &taps);
00104   static gr_fir_SCC *create_gr_fir_SCC (const std::vector<VrComplex> &taps);
00105   static gr_fir_SIS *create_gr_fir_SIS (const std::vector<short> &taps);
00106   static gr_fir_FSF *create_gr_fir_FSF (const std::vector<float> &taps);
00107 
00108   // Get information about all gr_fir_XXX implementations.
00109   // This is useful for benchmarking, testing, etc without having to
00110   // know a priori what's linked into this image
00111   //
00112   // The caller must pass in a valid pointer to a vector.
00113   // The vector will be filled with structs describing the
00114   // available implementations.
00115 
00116   static void get_gr_fir_CCF_info (std::vector<gr_fir_CCF_info> *info);
00117   static void get_gr_fir_FCC_info (std::vector<gr_fir_FCC_info> *info);
00118   static void get_gr_fir_CCC_info (std::vector<gr_fir_CCC_info> *info);
00119   static void get_gr_fir_FFF_info (std::vector<gr_fir_FFF_info> *info);
00120   static void get_gr_fir_SCC_info (std::vector<gr_fir_SCC_info> *info);
00121   static void get_gr_fir_SIS_info (std::vector<gr_fir_SIS_info> *info);
00122   static void get_gr_fir_FSF_info (std::vector<gr_fir_FSF_info> *info);
00123 
00124 };
00125 
00126 #endif /* _GR_FIR_UTIL_H_ */

Generated on Tue Mar 15 23:47:07 2005 for GNU Radio by  doxygen 1.4.0