Imported Upstream version 3.2.2
[debian/gnuradio] / gnuradio-core / src / lib / general / gr_feval.cc
1 /* -*- c++ -*- */
2 /*
3  * Copyright 2006 Free Software Foundation, Inc.
4  * 
5  * This file is part of GNU Radio
6  * 
7  * GNU Radio is free software; you can redistribute it and/or modify
8  * it under the terms of the GNU General Public License as published by
9  * the Free Software Foundation; either version 3, or (at your option)
10  * any later version.
11  * 
12  * GNU Radio is distributed in the hope that it will be useful,
13  * but WITHOUT ANY WARRANTY; without even the implied warranty of
14  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
15  * GNU General Public License for more details.
16  * 
17  * You should have received a copy of the GNU General Public License
18  * along with GNU Radio; see the file COPYING.  If not, write to
19  * the Free Software Foundation, Inc., 51 Franklin Street,
20  * Boston, MA 02110-1301, USA.
21  */
22
23 #ifdef HAVE_CONFIG_H
24 #include <config.h>
25 #endif
26
27 #include <gr_feval.h>
28
29 gr_feval_dd::~gr_feval_dd(){}
30
31 double 
32 gr_feval_dd::eval(double x)
33 {
34   return 0;
35 }
36
37 double
38 gr_feval_dd::calleval(double x)
39 {
40   return eval(x);
41 }
42
43 // ----------------------------------------------------------------
44
45 gr_feval_cc::~gr_feval_cc(){}
46
47 gr_complex
48 gr_feval_cc::eval(gr_complex x)
49 {
50   return 0;
51 }
52
53 gr_complex
54 gr_feval_cc::calleval(gr_complex x)
55 {
56   return eval(x);
57 }
58
59 // ----------------------------------------------------------------
60
61 gr_feval_ll::~gr_feval_ll(){}
62
63 long
64 gr_feval_ll::eval(long x)
65 {
66   return 0;
67 }
68
69 long
70 gr_feval_ll::calleval(long x)
71 {
72   return eval(x);
73 }
74
75 // ----------------------------------------------------------------
76
77 gr_feval::~gr_feval(){}
78
79 void
80 gr_feval::eval(void)
81 {
82   // nop
83 }
84
85 void
86 gr_feval::calleval(void)
87 {
88   eval();
89 }
90
91 /*
92  * Trivial examples showing C++ (transparently) calling Python
93  */
94 double
95 gr_feval_dd_example(gr_feval_dd *f, double x)
96 {
97   return f->calleval(x);
98 }
99
100 gr_complex
101 gr_feval_cc_example(gr_feval_cc *f, gr_complex x)
102 {
103   return f->calleval(x);
104 }
105
106 long
107 gr_feval_ll_example(gr_feval_ll *f, long x)
108 {
109   return f->calleval(x);
110 }
111
112 void
113 gr_feval_example(gr_feval *f)
114 {
115   f->calleval();
116 }