My Project
0.0.16
QUCS Mapping
Main Page
Related Pages
Namespaces
Classes
Files
File List
File Members
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Friends
Macros
Pages
DownLoad
QUCS-src
qucs-0.0.16
qucs-core
src
differentiate.h
Go to the documentation of this file.
1
/*
2
* differentiate.h - definitions for Qucs equation derivatives
3
*
4
* Copyright (C) 2007, 2008 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: differentiate.h 1825 2011-03-11 20:42:14Z ela $
22
*
23
*/
24
25
#ifndef __DIFFERENTIATE_H__
26
#define __DIFFERENTIATE_H__
27
28
namespace
eqn
{
29
30
class
constant;
31
32
/* This class is merely a container for the derivatives which can be
33
applied to equations. */
34
class
differentiate
35
{
36
public
:
37
static
node
*
plus_binary
(
application
*,
char
*);
38
static
node
*
plus_unary
(
application
*,
char
*);
39
static
node
*
minus_binary
(
application
*,
char
*);
40
static
node
*
minus_unary
(
application
*,
char
*);
41
static
node
*
times
(
application
*,
char
*);
42
static
node
*
over
(
application
*,
char
*);
43
static
node
*
power
(
application
*,
char
*);
44
static
node
*
ln
(
application
*,
char
*);
45
static
node
*
log10
(
application
*,
char
*);
46
static
node
*
log2
(
application
*,
char
*);
47
static
node
*
sqrt
(
application
*,
char
*);
48
static
node
*
exp
(
application
*,
char
*);
49
static
node
*
sinc
(
application
*,
char
*);
50
static
node
*
norm
(
application
*,
char
*);
51
static
node
*
sin
(
application
*,
char
*);
52
static
node
*
cos
(
application
*,
char
*);
53
static
node
*
tan
(
application
*,
char
*);
54
static
node
*
sec
(
application
*,
char
*);
55
static
node
*
cot
(
application
*,
char
*);
56
static
node
*
cosec
(
application
*,
char
*);
57
static
node
*
arcsin
(
application
*,
char
*);
58
static
node
*
square
(
application
*,
char
*);
59
static
node
*
arccos
(
application
*,
char
*);
60
static
node
*
arctan
(
application
*,
char
*);
61
static
node
*
arccot
(
application
*,
char
*);
62
static
node
*
arcsec
(
application
*,
char
*);
63
static
node
*
arccosec
(
application
*,
char
*);
64
static
node
*
abs
(
application
*,
char
*);
65
static
node
*
step
(
application
*,
char
*);
66
static
node
*
sign
(
application
*,
char
*);
67
static
node
*
sinh
(
application
*,
char
*);
68
static
node
*
cosh
(
application
*,
char
*);
69
static
node
*
tanh
(
application
*,
char
*);
70
static
node
*
coth
(
application
*,
char
*);
71
static
node
*
arsinh
(
application
*,
char
*);
72
static
node
*
arcosh
(
application
*,
char
*);
73
static
node
*
artanh
(
application
*,
char
*);
74
static
node
*
arcoth
(
application
*,
char
*);
75
static
node
*
arsech
(
application
*,
char
*);
76
static
node
*
arcosech
(
application
*,
char
*);
77
static
node
*
ifthenelse
(
application
*,
char
*);
78
static
node
*
xhypot
(
application
*,
char
*);
79
static
node
*
limexp
(
application
*,
char
*);
80
static
node
*
vt
(
application
*,
char
*);
81
82
private
:
83
static
node
* plus_reduce (
node
*,
node
*);
84
static
node
* minus_reduce (
node
*,
node
*);
85
static
node
* minus_reduce (
node
*);
86
static
node
* times_reduce (
node
*,
node
*);
87
static
node
* over_reduce (
node
*,
node
*);
88
static
node
* power_reduce (
node
*,
node
*);
89
static
node
* ln_reduce (
node
*);
90
static
node
* sqrt_reduce (
node
*);
91
static
node
* sqr_reduce (
node
*);
92
static
node
* app_reduce (
const
char
*,
node
*,
node
*);
93
static
node
* hypot_reduce (
node
*,
node
*);
94
95
private
:
96
static
void
over_reduce_adv (
node
* &,
node
* &);
97
};
98
99
// Type of derivative function.
100
typedef
node
* (* differentiator_t) (
application
*,
char
*);
101
102
// Structure defining an differentiation.
103
struct
differentiation_t
104
{
105
const
char
*
application
;
/* the name of the application */
106
differentiator_t
derive
;
/* the actual differentiation function */
107
int
nargs
;
/* number of arguments */
108
};
109
110
extern
struct
differentiation_t
differentiations
[];
111
112
}
/* namespace */
113
114
#endif
/* __DIFFERENTIATE_H__ */
Generated on Tue Dec 25 2012 14:30:33 for My Project by
1.8.2