Qucs-core  0.0.18
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
integrator.h
Go to the documentation of this file.
1 /*
2  * integrator.h - integrator class definitions
3  *
4  * Copyright (C) 2004, 2005, 2006 Stefan Jahn <stefan@lkcc.org>
5  *
6  * This is free software; you can redistribute it and/or modify
7  * it under the terms of the GNU General Public License as published by
8  * the Free Software Foundation; either version 2, or (at your option)
9  * any later version.
10  *
11  * This software is distributed in the hope that it will be useful,
12  * but WITHOUT ANY WARRANTY; without even the implied warranty of
13  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14  * GNU General Public License for more details.
15  *
16  * You should have received a copy of the GNU General Public License
17  * along with this package; see the file COPYING. If not, write to
18  * the Free Software Foundation, Inc., 51 Franklin Street - Fifth Floor,
19  * Boston, MA 02110-1301, USA.
20  *
21  * $Id$
22  *
23  */
24 
25 #ifndef __INTEGRATOR_H__
26 #define __INTEGRATOR_H__
27 
28 #include "states.h"
29 
30 #define MODE_NONE 0
31 #define MODE_INIT 1
32 
33 namespace qucs {
34 
35 class integrator : public states<nr_double_t>
36 {
37  public:
38  // constructor and destructor set
39  integrator ();
40  integrator (const integrator &);
41  ~integrator ();
42 
43  // integration specific
44  typedef void (* integrate_func_t)
45  (integrator *, int, nr_double_t, nr_double_t&, nr_double_t&);
47  typedef void (* conductor_func_t)
48  (integrator *, nr_double_t, nr_double_t&);
50  void integrate (int, nr_double_t, nr_double_t&, nr_double_t&);
51  void conductor (nr_double_t, nr_double_t&);
52  void setOrder (int o) { order = o; }
53  int getOrder (void) { return order; }
54  void setMode (int s) { state = s; }
55  int getMode (void) { return state; }
56  void setCoefficients (nr_double_t * c) { coefficients = c; }
57  nr_double_t * getCoefficients (void) { return coefficients; }
58 
59  private:
60  int order;
61  int state;
62  nr_double_t * coefficients;
65 };
66 
67 } // namespace qucs
68 
69 #endif /* __INTEGRATOR_H__ */
conductor_func_t conductor_func
Definition: integrator.h:64
void integrate(int, nr_double_t, nr_double_t &, nr_double_t &)
Definition: integrator.cpp:67
void setIntegration(integrate_func_t f)
Definition: integrator.h:46
void conductor(nr_double_t, nr_double_t &)
Definition: integrator.cpp:76
int getMode(void)
Definition: integrator.h:55
void(* conductor_func_t)(integrator *, nr_double_t, nr_double_t &)
Definition: integrator.h:48
void(* integrate_func_t)(integrator *, int, nr_double_t, nr_double_t &, nr_double_t &)
Definition: integrator.h:45
template class for storing state variables.
Definition: states.h:38
nr_double_t * getCoefficients(void)
Definition: integrator.h:57
integrate_func_t integrate_func
Definition: integrator.h:63
void setOrder(int o)
Definition: integrator.h:52
nr_double_t * coefficients
Definition: integrator.h:62
void setConductance(conductor_func_t f)
Definition: integrator.h:49
void setCoefficients(nr_double_t *c)
Definition: integrator.h:56
List int
Definition: parse_citi.y:183
void setMode(int s)
Definition: integrator.h:54
int getOrder(void)
Definition: integrator.h:53