blob: 7b0def84641ddf621cae4664660f35720e909c68 (
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
|
-- File: IntTools_Root.cdl
-- Created: Mon May 22 16:46:21 2000
-- Author: Peter KURNEV
-- <pkv@irinox>
---Copyright: Matra Datavision 2000
class Root from IntTools
---Purpose: The class is to describe the root of
-- function of one variable for Edge/Edge
-- and Edge/Surface algorithms.
uses
State from TopAbs
---raises
is
Create
returns Root from IntTools ;
---Purpose:
--- Empty constructor
---
Create(aRoot: Real from Standard;
aType: Integer from Standard)
returns Root from IntTools ;
---Purpose:
--- Initializes my by range of parameters
--- and type of root
---
SetRoot (me:out; aRoot: Real from Standard);
---Purpose:
--- Sets the Root's value
---
SetType (me:out; aType: Integer from Standard);
---Purpose:
--- Sets the Root's Type
---
SetStateBefore (me:out; aState: State from TopAbs);
---Purpose:
--- Set the value of the state before the root
--- (at t=Root-dt)
---
SetStateAfter (me:out; aState: State from TopAbs);
---Purpose:
--- Set the value of the state after the root
--- (at t=Root-dt)
---
SetLayerHeight (me:out; aHeight:Real from Standard);
---Purpose:
--- Not used in Edge/Edge algorithm
---
SetInterval (me:out; t1, t2, f1, f2:Real from Standard);
---Purpose:
--- Sets the interval from which the Root was
--- found [t1,t2] and the corresponding values
--- of the function on the bounds f(t1), f(t2).
---
Root (me)
returns Real from Standard;
---Purpose:
--- Returns the Root value
---
Type (me)
returns Integer from Standard;
---Purpose:
--- Returns the type of the root
--- =0 - Simple (was found by bisection method);
--- =2 - Smart when f1=0, f2!=0 or vice versa
--- (was found by Fibbonacci method);
--- =1 - Pure (pure zero for all t [t1,t2] );
StateBefore(me)
returns State from TopAbs;
---Purpose:
--- Returns the state before the root
---
StateAfter(me)
returns State from TopAbs;
---Purpose:
--- Returns the state after the root
---
LayerHeight (me)
returns Real from Standard;
---Purpose:
--- Not used in Edge/Edge algorithm
---
IsValid (me)
returns Boolean from Standard;
---Purpose:
--- Returns the validity flag for the root,
--- True if
--- myStateBefore==TopAbs_OUT && myStateAfter==TopAbs_IN or
--- myStateBefore==TopAbs_OUT && myStateAfter==TopAbs_ON or
--- myStateBefore==TopAbs_ON && myStateAfter==TopAbs_OUT or
--- myStateBefore==TopAbs_IN && myStateAfter==TopAbs_OUT .
--- For other cases it returns False.
---
Interval (me; t1:out Real from Standard;
t2:out Real from Standard;
f1:out Real from Standard;
f2:out Real from Standard);
---Purpose:
--- Returns the values of interval from which the Root was
--- found [t1,t2] and the corresponding values
--- of the function on the bounds f(t1), f(t2).
---
fields
myRoot: Real from Standard;
myType: Integer from Standard;
myLayerHeight: Real from Standard;
myStateBefore: State from TopAbs;
myStateAfter : State from TopAbs;
myt1: Real from Standard;
myt2: Real from Standard;
myf1: Real from Standard;
myf2: Real from Standard;
end Root;
|