3
interface //#################################################################### ■
7
//type //$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$【型】
9
//$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$【レコード】
11
//%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% {RECORD}
13
//$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$【クラス】
15
//%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% {CLASS}
17
//const //$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$【定数】
19
//var //$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$【変数】
21
//$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$【ルーチン】
23
function HypGeo21( const A_,B_,C_,X_:Single ) :Single; overload;
24
function HypGeo21( const A_,B_,C_,X_:Double ) :Double; overload;
25
function HypGeo21( const A_,B_,C_,X_:TdSingle ) :TdSingle; overload;
26
function HypGeo21( const A_,B_,C_,X_:TdDouble ) :TdDouble; overload;
28
///// HypGeo21A( B_, C_, X_ ) = HypGeo21( 1, B_, C_, X_ )
29
function HypGeo21A( const B_,C_,X_:Single ) :Single; overload;
30
function HypGeo21A( const B_,C_,X_:Double ) :Double; overload;
31
function HypGeo21A( const B_,C_,X_:TdSingle ) :TdSingle; overload;
32
function HypGeo21A( const B_,C_,X_:TdDouble ) :TdDouble; overload;
34
implementation //############################################################### ■
36
//$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$【レコード】
38
//%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% {RECORD}
40
//&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& private
42
//&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& public
44
//$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$【クラス】
46
//%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% {CLASS}
48
//&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& private
50
//&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& protected
52
//&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& public
54
//$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$【ルーチン】
56
function HypGeo21( const A_,B_,C_,X_:Single ) :Single;
65
for N := 0 to 10000 do
67
P1 := ( ( A_ + N ) * ( B_ + N ) )
68
/ ( ( C_ + N ) * ( 1 + N ) ) * X_ * P0;
70
Result := Result + P1;
72
if Abs( P1 ) < SINGLE_EPS3 then Break;
78
function HypGeo21( const A_,B_,C_,X_:Double ) :Double;
87
for N := 0 to 10000 do
89
P1 := ( ( A_ + N ) * ( B_ + N ) )
90
/ ( ( C_ + N ) * ( 1 + N ) ) * X_ * P0;
92
Result := Result + P1;
94
if Abs( P1 ) < DOUBLE_EPS3 then Break;
100
function HypGeo21( const A_,B_,C_,X_:TdSingle ) :TdSingle;
109
for N := 0 to 10000 do
111
P1 := ( ( A_ + N ) * ( B_ + N ) )
112
/ ( ( C_ + N ) * ( 1 + N ) ) * X_ * P0;
114
Result := Result + P1;
116
if Abs( P1.o ) < SINGLE_EPS3 then Break;
122
function HypGeo21( const A_,B_,C_,X_:TdDouble ) :TdDouble;
131
for N := 0 to 10000 do
133
P1 := ( ( A_ + N ) * ( B_ + N ) )
134
/ ( ( C_ + N ) * ( 1 + N ) ) * X_ * P0;
136
Result := Result + P1;
138
if Abs( P1.o ) < DOUBLE_EPS3 then Break;
144
//------------------------------------------------------------------------------
146
function HypGeo21A( const B_,C_,X_:Single ) :Single;
155
for N := 0 to 10000 do
157
P1 := ( B_ + N ) / ( C_ + N ) * X_ * P0;
159
Result := Result + P1;
161
if Abs( P1 ) < DOUBLE_EPS3 then Break;
167
function HypGeo21A( const B_,C_,X_:Double ) :Double;
176
for N := 0 to 10000 do
178
P1 := ( B_ + N ) / ( C_ + N ) * X_ * P0;
180
Result := Result + P1;
182
if Abs( P1 ) < DOUBLE_EPS3 then Break;
188
function HypGeo21A( const B_,C_,X_:TdSingle ) :TdSingle;
197
for N := 0 to 10000 do
199
P1 := ( B_ + N ) / ( C_ + N ) * X_ * P0;
201
Result := Result + P1;
203
if Abs( P1.o ) < DOUBLE_EPS3 then Break;
209
function HypGeo21A( const B_,C_,X_:TdDouble ) :TdDouble;
218
for N := 0 to 10000 do
220
P1 := ( B_ + N ) / ( C_ + N ) * X_ * P0;
222
Result := Result + P1;
224
if Abs( P1.o ) < DOUBLE_EPS3 then Break;
230
//############################################################################## □
232
initialization //$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ 初期化
234
finalization //$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ 最終化
236
end. //######################################################################### ■