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
|
-- File: BracketMinimum.cdl
-- Created: Tue May 14 14:55:21 1991
-- Author: Laurent PAINNOT
-- <lpa@topsn3>
---Copyright: Matra Datavision 1991, 1992
class BracketMinimum from math
---Purpose:Given two distinct initial points, BracketMinimum
-- implements the computation of three points (a, b, c) which
-- bracket the minimum of the function and verify A less than
-- B, B less than C and F(A) less than F(B), F(B) less than (C).
uses Vector from math,
Matrix from math,
Function from math,
OStream from Standard
raises NotDone from StdFail
is
Create(F: in out Function; A, B: Real)
---Purpose:
-- Given two initial values this class computes a
-- bracketing triplet of abscissae Ax, Bx, Cx
-- (such that Bx is between Ax and Cx, F(Bx) is
-- less than both F(Bx) and F(Cx)) the Brent minimization is done
-- on the function F.
returns BracketMinimum;
Create(F: in out Function; A, B, FA: Real)
---Purpose:
-- Given two initial values this class computes a
-- bracketing triplet of abscissae Ax, Bx, Cx
-- (such that Bx is between Ax and Cx, F(Bx) is
-- less than both F(Bx) and F(Cx)) the Brent minimization is done
-- on the function F.
-- This constructor has to be used if F(A) is known.
returns BracketMinimum;
Create(F: in out Function; A, B, FA, FB: Real)
---Purpose:
-- Given two initial values this class computes a
-- bracketing triplet of abscissae Ax, Bx, Cx
-- (such that Bx is between Ax and Cx, F(Bx) is
-- less than both F(Bx) and F(Cx)) the Brent minimization is done
-- on the function F.
-- This constructor has to be used if F(A) and F(B) are known.
returns BracketMinimum;
Perform(me: in out; F: in out Function; A, B: Real)
---Purpose: Is used internally by the constructors.
is static protected;
IsDone(me)
---Purpose: Returns true if the computations are successful, otherwise returns false.
---C++: inline
returns Boolean
is static;
Values(me; A, B, C: out Real)
---Purpose: Returns the bracketed triplet of abscissae.
-- Exceptions
-- StdFail_NotDone if the algorithm fails (and IsDone returns false).
raises NotDone
is static;
FunctionValues(me; FA, FB, FC: out Real)
---Purpose: returns the bracketed triplet function values.
-- Exceptions
-- StdFail_NotDone if the algorithm fails (and IsDone returns false).
raises NotDone
is static;
Dump(me; o: in out OStream)
---Purpose: Prints on the stream o information on the current state
-- of the object.
-- Is used to redefine the operator <<.
is static;
fields
Done: Boolean;
Ax: Real;
Bx: Real;
Cx: Real;
FAx: Real;
FBx: Real;
FCx: Real;
myFA: Boolean;
myFB: Boolean;
end BracketMinimum;
|