blob: 52a2d40e87e4f071604a3d0bb3f26894c71baadd (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
|
-- File: GeneralExpression.cdl
-- Created: Thu Jan 10 11:57:22 1991
-- Author: Arnaud BOUZY
-- <adn@topsn3>
---Copyright: Matra Datavision 1991
deferred class GeneralExpression from Expr
inherits TShared from MMgt
---Purpose: Defines the general purposes of any expression.
uses NamedUnknown from Expr,
Array1OfNamedUnknown from Expr,
Array1OfReal from TColStd,
AsciiString from TCollection
raises OutOfRange from Standard,
NumericError from Standard,
NotEvaluable from Expr,
InvalidOperand from Expr
is
NbSubExpressions(me)
---Purpose: Returns the number of sub-expressions contained
-- in <me> ( >= 0)
---Level: Internal
returns Integer
is deferred;
SubExpression(me; I : Integer)
---Purpose: Returns the <I>-th sub-expression of <me>
-- raises OutOfRange if <I> > NbSubExpressions(me)
---C++: return const &
---Level: Internal
returns any GeneralExpression
raises OutOfRange
is deferred;
Simplified(me)
---Purpose: Returns a GeneralExpression after replacement of
-- NamedUnknowns by an associated expression and after
-- values computation.
---Level: Advanced
returns any GeneralExpression
raises NumericError
is deferred;
ShallowSimplified(me)
---Purpose: Returns a GeneralExpression after a simplification
-- of the arguments of <me>.
---Level: Internal
returns any GeneralExpression
raises NumericError
is deferred;
Copy(me)
---Purpose: Returns a copy of <me> having the same unknowns and
-- functions.
---Level: Advanced
returns mutable like me
is deferred;
ContainsUnknowns(me)
---Purpose: Tests if <me> contains NamedUnknowns.
---Level: Advanced
returns Boolean
is deferred;
Contains(me; exp : GeneralExpression)
---Purpose: Tests if <exp> is contained in <me>.
---Level: Advanced
returns Boolean
is deferred;
IsLinear(me)
---Purpose: Tests if <me> is linear on every NamedUnknown it
-- contains.
---Level: Internal
returns Boolean
is deferred;
IsShareable(me)
---Purpose: Tests if <me> can be shared by one or more expressions
-- or must be copied. This method returns False as a
-- default value. To be redefined ( especially for
-- NamedUnknown).
---Level: Internal
returns Boolean is virtual;
IsIdentical(me; Other : GeneralExpression)
---Purpose: Tests if <me> and <Other> define the same expression.
-- Warning: This method does not include any simplification before
-- testing. It could also be very slow; to be used
-- carefully.
---Level: Internal
returns Boolean
is deferred;
Derivative(me; X : NamedUnknown)
---Purpose: Returns the derivative on <X> unknown of <me>
---Level: Advanced
returns any GeneralExpression
is deferred;
NDerivative(me; X : NamedUnknown; N : Integer)
---Purpose: Returns the <N>-th derivative on <X> unknown of <me>.
-- Raise OutOfRange if N <= 0
---Level: Advanced
returns any GeneralExpression
raises OutOfRange is virtual;
Replace(me : mutable ; var : NamedUnknown ; with : GeneralExpression)
---Purpose: Replaces all occurences of <var> with copies of <with>
-- in <me>. Copies of <with> are made with the Copy() method.
-- Raises InvalidOperand if <with> contains <me>.
---Level: Internal
raises InvalidOperand
is deferred;
Evaluate(me; vars : Array1OfNamedUnknown; vals : Array1OfReal)
---Purpose: Returns the value of <me> (as a Real) by
-- replacement of <vars> by <vals>.
-- Raises NotEvaluable if <me> contains NamedUnknown not
-- in <vars> or NumericError if result cannot be computed.
---Level: Advanced
returns Real
raises NotEvaluable,NumericError
is deferred;
EvaluateNumeric(me)
---Purpose: Returns the value of <me> (as a Real) by
-- replacement of <vars> by <vals>.
-- Raises NotEvaluable if <me> contains NamedUnknown not
-- in <vars> or NumericError if result cannot be computed.
---Level: Internal
returns Real
raises NotEvaluable,NumericError;
String(me)
---Purpose: returns a string representing <me> in a readable way.
---Level: Public
returns AsciiString
is deferred;
end GeneralExpression;
|