GNU Radio Manual and C++ API Reference 3.8.5.0
The Free & Open Software Radio Ecosystem
 
Loading...
Searching...
No Matches
py_feval.h
Go to the documentation of this file.
1/* -*- c++ -*- */
2/*
3 * Copyright 2006,2013 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#ifndef INCLUDED_GR_PY_FEVAL_H
24#define INCLUDED_GR_PY_FEVAL_H
25
26#include <gnuradio/feval.h>
27#include <Python.h>
28#include <pmt/pmt.h>
29
31{
32 PyGILState_STATE d_gstate;
33
34public:
35 ensure_py_gil_state() { d_gstate = PyGILState_Ensure(); }
36 ~ensure_py_gil_state() { PyGILState_Release(d_gstate); }
37};
38
39namespace gr {
40
42{
43public:
44 double calleval(double x)
45 {
47 return eval(x);
48 }
49 virtual ~py_feval_dd(){};
50};
51
53{
54public:
56 {
58 return eval(x);
59 }
60 virtual ~py_feval_cc(){};
61};
62
64{
65public:
66 long calleval(long x)
67 {
69 return eval(x);
70 }
71 virtual ~py_feval_ll(){};
72};
73
75{
76public:
77 void calleval()
78 {
80 eval();
81 }
82 virtual ~py_feval(){};
83};
84
86{
87public:
89 {
91 eval(x);
92 }
93 virtual ~py_feval_p(){};
94};
95
96} /* namespace gr */
97
98#endif /* INCLUDED_GR_PY_FEVAL_H */
Definition py_feval.h:31
~ensure_py_gil_state()
Definition py_feval.h:36
ensure_py_gil_state()
Definition py_feval.h:35
base class for evaluating a function: complex -> complex
Definition feval.h:76
base class for evaluating a function: double -> double
Definition feval.h:47
base class for evaluating a function: long -> long
Definition feval.h:105
base class for evaluating a function: pmt -> void
Definition feval.h:163
base class for evaluating a function: void -> void
Definition feval.h:134
Definition py_feval.h:53
gr_complex calleval(gr_complex x)
Definition py_feval.h:55
virtual ~py_feval_cc()
Definition py_feval.h:60
Definition py_feval.h:42
virtual ~py_feval_dd()
Definition py_feval.h:49
double calleval(double x)
Definition py_feval.h:44
Definition py_feval.h:64
virtual ~py_feval_ll()
Definition py_feval.h:71
long calleval(long x)
Definition py_feval.h:66
Definition py_feval.h:86
virtual ~py_feval_p()
Definition py_feval.h:93
void calleval(pmt::pmt_t x)
Definition py_feval.h:88
Definition py_feval.h:75
virtual ~py_feval()
Definition py_feval.h:82
void calleval()
Definition py_feval.h:77
#define GR_RUNTIME_API
Definition gnuradio-runtime/include/gnuradio/api.h:30
std::complex< float > gr_complex
Definition gr_complex.h:27
GNU Radio logging wrapper for log4cpp library (C++ port of log4j)
Definition basic_block.h:46
boost::shared_ptr< pmt_base > pmt_t
typedef for shared pointer (transparent reference counting). See http://www.boost....
Definition pmt.h:96