00001 ÿþ/ * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * /
00002
00003 / * * /
00004
00005 / * F l o o d : A n O p e n S o u r c e N e u r a l N e t w o r k s C + + L i b r a r y * /
00006
00007 / * w w w . c i m n e . c o m / f l o o d * /
00008
00009 / * * /
00010
00011 / * N E W T O N M E T H O D C L A S S * /
00012
00013 / * * /
00014
00015 / * R o b e r t o L o p e z * /
00016
00017 / * I n t e r n a t i o n a l C e n t e r f o r N u m e r i c a l M e t h o d s i n E n g i n e e r i n g ( C I M N E ) * /
00018
00019 / * T e c h n i c a l U n i v e r s i t y o f C a t a l o n i a ( U P C ) * /
00020
00021 / * B a r c e l o n a , S p a i n * /
00022
00023 / * E - m a i l : r l o p e z @ c i m n e . u p c . e d u * /
00024
00025 / * * /
00026
00027 / * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * /
00028
00029
00030
00031 # i n c l u d e " N e w t o n M e t h o d . h "
00032
00033
00034
00035 # i n c l u d e < s t r i n g >
00036
00037 # i n c l u d e < s s t r e a m >
00038
00039 # i n c l u d e < i o s t r e a m >
00040
00041 # i n c l u d e < f s t r e a m >
00042
00043 # i n c l u d e < s t d l i b . h >
00044
00045 # i n c l u d e < m a t h . h >
00046
00047 # i n c l u d e < t i m e . h >
00048
00049
00050
00051 n a m e s p a c e F l o o d
00052
00053 {
00054
00055
00056
00057 / / G E N E R A L C O N S T R U C T O R
00058
00059 / /
00060
00061 / / / G e n e r a l c o n s t r u c t o r . I t c r e a t e s a N e w t o n m e t h o d t r a i n i n g a l g o r i t h m o b j e c t a s s o c i a t e d t o a n o b j e c t i v e
00062
00063 / / / f u n c t i o n a l o b j e c t .
00064
00065 / / / I t a l s o i n i t i a l i z e s t h e c l a s s m e m b e r s t o t h e i r d e f a u l t v a l u e s .
00066
00067 / / / @ p a r a m n e w _ o b j e c t i v e _ f u n c t i o n a l _ p o i n t e r P o i n t e r t o a n o b j e c t i v e f u n c t i o n a l o b j e c t .
00068
00069
00070
00071 N e w t o n M e t h o d : : N e w t o n M e t h o d ( O b j e c t i v e F u n c t i o n a l * n e w _ o b j e c t i v e _ f u n c t i o n a l _ p o i n t e r )
00072
00073 : T r a i n i n g A l g o r i t h m ( n e w _ o b j e c t i v e _ f u n c t i o n a l _ p o i n t e r )
00074
00075 {
00076
00077 }
00078
00079
00080
00081
00082
00083 / / D E F A U L T C O N S T R U C T O R
00084
00085 / /
00086
00087 / / / D e f a u l t c o n s t r u c t o r . I t c r e a t e s a N e w t o n m e t h o d t r a i n i n g a l g o r i t h m o b j e c t n o t a s s o c i a t e d t o a n y o b j e c t i v e
00088
00089 / / / f u n c t i o n a l o b j e c t .
00090
00091 / / / I t a l s o i n i t i a l i z e s t h e c l a s s m e m b e r s t o t h e i r d e f a u l t v a l u e s .
00092
00093
00094
00095 N e w t o n M e t h o d : : N e w t o n M e t h o d ( v o i d ) : T r a i n i n g A l g o r i t h m ( )
00096
00097 {
00098
00099 }
00100
00101
00102
00103
00104
00105 / / D E S T R U C T O R
00106
00107
00108
00109 / / / D e s t r u c t o r .
00110
00111
00112
00113 N e w t o n M e t h o d : : ~ N e w t o n M e t h o d ( v o i d )
00114
00115 {
00116
00117 }
00118
00119
00120
00121
00122
00123 / / M E T H O D S
00124
00125
00126
00127 / / V e c t o r < d o u b l e > c a l c u l a t e _ g r a d i e n t _ d e s c e n t _ t r a i n i n g _ d i r e c t i o n ( c o n s t V e c t o r < d o u b l e > & ) m e t h o d
00128
00129
00130
00131 V e c t o r < d o u b l e > N e w t o n M e t h o d : : c a l c u l a t e _ g r a d i e n t _ d e s c e n t _ t r a i n i n g _ d i r e c t i o n ( c o n s t V e c t o r < d o u b l e > & g r a d i e n t )
00132
00133 {
00134
00135 d o u b l e g r a d i e n t _ n o r m = g r a d i e n t . c a l c u l a t e _ n o r m ( ) ;
00136
00137
00138
00139 r e t u r n ( g r a d i e n t * ( - 1 . 0 ) / g r a d i e n t _ n o r m ) ;
00140
00141 }
00142
00143
00144
00145
00146
00147 / / V e c t o r < d o u b l e > c a l c u l a t e _ t r a i n i n g _ d i r e c t i o n ( c o n s t V e c t o r < d o u b l e > & , c o n s t M a t r i x < d o u b l e > & ) m e t h o d
00148
00149
00150
00151 V e c t o r < d o u b l e > N e w t o n M e t h o d : : c a l c u l a t e _ t r a i n i n g _ d i r e c t i o n ( c o n s t V e c t o r < d o u b l e > & g r a d i e n t , c o n s t M a t r i x < d o u b l e > & i n v e r s e _ H e s s i a n )
00152
00153 {
00154
00155 V e c t o r < d o u b l e > t r a i n i n g _ d i r e c t i o n = i n v e r s e _ H e s s i a n . d o t ( g r a d i e n t ) * ( - 1 . 0 ) ;
00156
00157
00158
00159 d o u b l e t r a i n i n g _ d i r e c t i o n _ n o r m = t r a i n i n g _ d i r e c t i o n . c a l c u l a t e _ n o r m ( ) ;
00160
00161
00162
00163 r e t u r n ( t r a i n i n g _ d i r e c t i o n / t r a i n i n g _ d i r e c t i o n _ n o r m ) ;
00164
00165 }
00166
00167
00168
00169
00170
00171 / / v o i d t r a i n ( v o i d ) m e t h o d
00172
00173
00174
00175 / / / T h i s m e t h o d t r a i n s a m u l t i l a y e r p e r c e p t r o n w i t h a n a s s o c i a t e d o b j e c t i v e f u n c t i o n a l a c c o r d i n g t o t h e N e w t o n
00176
00177 / / / m e t h o d a l g o r i t h m .
00178
00179 / / / T r a i n i n g o c c u r s a c c o r d i n g t o t h e t r a i n i n g o p e r a t o r s , t h e t r a i n i n g p a r a m e t e r s a n d t h e s t o p p i n g c r i t e r i a .
00180
00181
00182
00183 v o i d N e w t o n M e t h o d : : t r a i n ( v o i d )
00184
00185 {
00186
00187 / / C o n t r o l s e n t e n c e ( i f d e b u g )
00188
00189
00190
00191 # i f d e f _ D E B U G
00192
00193
00194
00195 i f ( o b j e c t i v e _ f u n c t i o n a l _ p o i n t e r = = N U L L )
00196
00197 {
00198
00199 s t d : : c e r r < < " F l o o d E r r o r : N e w t o n M e t h o d c l a s s . " < < s t d : : e n d l
00200
00201 < < " v o i d t r a i n ( v o i d ) m e t h o d . " < < s t d : : e n d l
00202
00203 < < " P o i n t e r t o o b j e c t i v e f u n c t i o n a l o b j e c t c a n n o t b e N U L L . " < < s t d : : e n d l
00204
00205 < < s t d : : e n d l ;
00206
00207
00208
00209 e x i t ( 1 ) ;
00210
00211 }
00212
00213
00214
00215 # e n d i f
00216
00217
00218
00219 / / S t a r t t r a i n i n g
00220
00221
00222
00223 i f ( d i s p l a y )
00224
00225 {
00226
00227 s t d : : c o u t < < " T r a i n i n g w i t h N e w t o n ' s m e t h o d . . . " < < s t d : : e n d l ;
00228
00229 }
00230
00231
00232
00233 / / E l a p s e d t i m e
00234
00235
00236
00237 t i m e _ t b e g i n n i n g _ t i m e , c u r r e n t _ t i m e ;
00238
00239 t i m e ( & b e g i n n i n g _ t i m e ) ;
00240
00241 d o u b l e e l a p s e d _ t i m e ;
00242
00243
00244
00245 / / M u l t i l a y e r p e r c e p t r o n s t u f f
00246
00247
00248
00249 M u l t i l a y e r P e r c e p t r o n * m u l t i l a y e r _ p e r c e p t r o n _ p o i n t e r = o b j e c t i v e _ f u n c t i o n a l _ p o i n t e r - > g e t _ m u l t i l a y e r _ p e r c e p t r o n _ p o i n t e r ( ) ;
00250
00251
00252
00253 i n t p a r a m e t e r s _ n u m b e r = m u l t i l a y e r _ p e r c e p t r o n _ p o i n t e r - > g e t _ p a r a m e t e r s _ n u m b e r ( ) ;
00254
00255
00256
00257 V e c t o r < d o u b l e > p a r a m e t e r s = m u l t i l a y e r _ p e r c e p t r o n _ p o i n t e r - > g e t _ p a r a m e t e r s ( ) ;
00258
00259 d o u b l e p a r a m e t e r s _ n o r m ;
00260
00261
00262
00263 V e c t o r < d o u b l e > p a r a m e t e r s _ i n c r e m e n t ( p a r a m e t e r s _ n u m b e r ) ;
00264
00265 d o u b l e p a r a m e t e r s _ i n c r e m e n t _ n o r m ;
00266
00267
00268
00269 / / O b j e c t i v e f u n c t i o n a l s t u f f
00270
00271
00272
00273 d o u b l e v a l i d a t i o n _ e r r o r = 0 . 0 ;
00274
00275 d o u b l e o l d _ v a l i d a t i o n _ e r r o r = 0 . 0 ;
00276
00277 d o u b l e v a l i d a t i o n _ e r r o r _ i n c r e m e n t = 0 . 0 ;
00278
00279
00280
00281 d o u b l e e v a l u a t i o n = 0 . 0 ;
00282
00283 d o u b l e o l d _ e v a l u a t i o n = 0 . 0 ;
00284
00285 d o u b l e e v a l u a t i o n _ i m p r o v e m e n t = 0 . 0 ;
00286
00287
00288
00289 V e c t o r < d o u b l e > g r a d i e n t ( p a r a m e t e r s _ n u m b e r ) ;
00290
00291 d o u b l e g r a d i e n t _ n o r m ;
00292
00293
00294
00295 M a t r i x < d o u b l e > i n v e r s e _ H e s s i a n ( p a r a m e t e r s _ n u m b e r , p a r a m e t e r s _ n u m b e r ) ;
00296
00297
00298
00299 / / T r a i n i n g a l g o r i t h m s t u f f
00300
00301
00302
00303 V e c t o r < d o u b l e > o l d _ g r a d i e n t ( p a r a m e t e r s _ n u m b e r ) ;
00304
00305 V e c t o r < d o u b l e > t r a i n i n g _ d i r e c t i o n ( p a r a m e t e r s _ n u m b e r ) ;
00306
00307 V e c t o r < d o u b l e > g r a d i e n t _ d e s c e n t _ t r a i n i n g _ d i r e c t i o n ( p a r a m e t e r s _ n u m b e r ) ;
00308
00309 V e c t o r < d o u b l e > o l d _ t r a i n i n g _ d i r e c t i o n ( p a r a m e t e r s _ n u m b e r ) ;
00310
00311
00312
00313 d o u b l e t r a i n i n g _ s l o p e ;
00314
00315
00316
00317 d o u b l e i n i t i a l _ t r a i n i n g _ r a t e = 0 . 0 ;
00318
00319 d o u b l e t r a i n i n g _ r a t e = 0 . 0 ;
00320
00321 d o u b l e o l d _ t r a i n i n g _ r a t e = 0 . 0 ;
00322
00323
00324
00325 V e c t o r < d o u b l e > t r a i n i n g _ r a t e _ e v a l u a t i o n ( 2 ) ;
00326
00327
00328
00329 b o o l s t o p _ t r a i n i n g = f a l s e ;
00330
00331
00332
00333 r e s i z e _ t r a i n i n g _ h i s t o r y ( m a x i m u m _ e p o c h s _ n u m b e r + 1 ) ;
00334
00335
00336
00337 / / M a i n l o o p
00338
00339
00340
00341 f o r ( i n t e p o c h = 0 ; e p o c h < = m a x i m u m _ e p o c h s _ n u m b e r ; e p o c h + + )
00342
00343 {
00344
00345 / / M u l t i l a y e r p e r c e p t r o n
00346
00347
00348
00349 p a r a m e t e r s = m u l t i l a y e r _ p e r c e p t r o n _ p o i n t e r - > g e t _ p a r a m e t e r s ( ) ;
00350
00351
00352
00353 p a r a m e t e r s _ n o r m = p a r a m e t e r s . c a l c u l a t e _ n o r m ( ) ;
00354
00355
00356
00357 i f ( d i s p l a y & & p a r a m e t e r s _ n o r m > = w a r n i n g _ p a r a m e t e r s _ n o r m )
00358
00359 {
00360
00361 s t d : : c o u t < < " F l o o d W a r n i n g : P a r a m e t e r s n o r m i s " < < p a r a m e t e r s _ n o r m < < " . " < < s t d : : e n d l ;
00362
00363 }
00364
00365
00366
00367 / / O b j e c t i v e f u n c t i o n a l s t u f f
00368
00369
00370
00371 i f ( e p o c h = = 0 )
00372
00373 {
00374
00375 e v a l u a t i o n = o b j e c t i v e _ f u n c t i o n a l _ p o i n t e r - > c a l c u l a t e _ e v a l u a t i o n ( ) ;
00376
00377 e v a l u a t i o n _ i m p r o v e m e n t = 0 . 0 ;
00378
00379 }
00380
00381 e l s e
00382
00383 {
00384
00385 e v a l u a t i o n = t r a i n i n g _ r a t e _ e v a l u a t i o n [ 1 ] ;
00386
00387 e v a l u a t i o n _ i m p r o v e m e n t = o l d _ e v a l u a t i o n - e v a l u a t i o n ;
00388
00389 }
00390
00391
00392
00393 v a l i d a t i o n _ e r r o r = o b j e c t i v e _ f u n c t i o n a l _ p o i n t e r - > c a l c u l a t e _ v a l i d a t i o n _ e r r o r ( ) ;
00394
00395
00396
00397 i f ( e p o c h = = 0 )
00398
00399 {
00400
00401 v a l i d a t i o n _ e r r o r _ i n c r e m e n t = 0 . 0 ;
00402
00403 }
00404
00405 e l s e
00406
00407 {
00408
00409 v a l i d a t i o n _ e r r o r _ i n c r e m e n t = v a l i d a t i o n _ e r r o r - o l d _ v a l i d a t i o n _ e r r o r ;
00410
00411 }
00412
00413
00414
00415 g r a d i e n t = o b j e c t i v e _ f u n c t i o n a l _ p o i n t e r - > c a l c u l a t e _ g r a d i e n t ( ) ;
00416
00417
00418
00419 g r a d i e n t _ n o r m = g r a d i e n t . c a l c u l a t e _ n o r m ( ) ;
00420
00421
00422
00423 i f ( d i s p l a y & & g r a d i e n t _ n o r m > = w a r n i n g _ g r a d i e n t _ n o r m )
00424
00425 {
00426
00427 s t d : : c o u t < < " F l o o d W a r n i n g : G r a d i e n t n o r m i s " < < g r a d i e n t _ n o r m < < " . " < < s t d : : e n d l ;
00428
00429 }
00430
00431
00432
00433 i n v e r s e _ H e s s i a n = o b j e c t i v e _ f u n c t i o n a l _ p o i n t e r - > c a l c u l a t e _ i n v e r s e _ H e s s i a n ( ) ;
00434
00435
00436
00437 / / T r a i n i n g a l g o r i t h m
00438
00439
00440
00441 t r a i n i n g _ d i r e c t i o n = c a l c u l a t e _ t r a i n i n g _ d i r e c t i o n ( g r a d i e n t , i n v e r s e _ H e s s i a n ) ;
00442
00443
00444
00445 / / C a l c u l a t e e v a l u a t i o n t r a i n i n g _ s l o p e
00446
00447
00448
00449 t r a i n i n g _ s l o p e = ( g r a d i e n t / g r a d i e n t _ n o r m ) . d o t ( t r a i n i n g _ d i r e c t i o n ) ;
00450
00451
00452
00453 / / C h e c k f o r a d e s c e n t d i r e c t i o n
00454
00455
00456
00457 i f ( t r a i n i n g _ s l o p e > = 0 . 0 )
00458
00459 {
00460
00461 i f ( d i s p l a y )
00462
00463 {
00464
00465 s t d : : c o u t < < " E p o c h " < < e p o c h < < " : T r a i n i n s l o p e i s g r e a t e r t h a n z e r o . R e s e t i n g t r a i n i n g d i r e c t i o n . " < < s t d : : e n d l ;
00466
00467 }
00468
00469
00470
00471 / / R e s e t t r a i n i n g d i r e c t i o n
00472
00473
00474
00475 t r a i n i n g _ d i r e c t i o n = c a l c u l a t e _ g r a d i e n t _ d e s c e n t _ t r a i n i n g _ d i r e c t i o n ( g r a d i e n t ) ;
00476
00477 }
00478
00479
00480
00481 i f ( e p o c h = = 0 )
00482
00483 {
00484
00485 i n i t i a l _ t r a i n i n g _ r a t e = f i r s t _ t r a i n i n g _ r a t e ;
00486
00487 }
00488
00489 e l s e
00490
00491 {
00492
00493 i n i t i a l _ t r a i n i n g _ r a t e = o l d _ t r a i n i n g _ r a t e ;
00494
00495 }
00496
00497
00498
00499 t r a i n i n g _ r a t e _ e v a l u a t i o n
00500
00501 = c a l c u l a t e _ t r a i n i n g _ r a t e _ e v a l u a t i o n ( e v a l u a t i o n , t r a i n i n g _ d i r e c t i o n , i n i t i a l _ t r a i n i n g _ r a t e ) ;
00502
00503
00504
00505 t r a i n i n g _ r a t e = t r a i n i n g _ r a t e _ e v a l u a t i o n [ 0 ] ;
00506
00507
00508
00509 p a r a m e t e r s _ i n c r e m e n t = t r a i n i n g _ d i r e c t i o n * t r a i n i n g _ r a t e ;
00510
00511 p a r a m e t e r s _ i n c r e m e n t _ n o r m = p a r a m e t e r s _ i n c r e m e n t . c a l c u l a t e _ n o r m ( ) ;
00512
00513
00514
00515 / / E l a p s e d t i m e
00516
00517
00518
00519 t i m e ( & c u r r e n t _ t i m e ) ;
00520
00521 e l a p s e d _ t i m e = d i f f t i m e ( c u r r e n t _ t i m e , b e g i n n i n g _ t i m e ) ;
00522
00523
00524
00525 / / T r a i n i n g h i s t o r y m u l t i l a y e r p e r c e p t r o n
00526
00527
00528
00529 i f ( r e s e r v e _ p a r a m e t e r s _ h i s t o r y )
00530
00531 {
00532
00533 p a r a m e t e r s _ h i s t o r y [ e p o c h ] = p a r a m e t e r s ;
00534
00535 }
00536
00537
00538
00539 i f ( r e s e r v e _ p a r a m e t e r s _ n o r m _ h i s t o r y )
00540
00541 {
00542
00543 p a r a m e t e r s _ n o r m _ h i s t o r y [ e p o c h ] = p a r a m e t e r s _ n o r m ;
00544
00545 }
00546
00547
00548
00549 / / T r a i n i n g h i s t o r y o b j e c t i v e f u n c t i o n a l
00550
00551
00552
00553 i f ( r e s e r v e _ e v a l u a t i o n _ h i s t o r y )
00554
00555 {
00556
00557 e v a l u a t i o n _ h i s t o r y [ e p o c h ] = e v a l u a t i o n ;
00558
00559 }
00560
00561
00562
00563 i f ( r e s e r v e _ v a l i d a t i o n _ e r r o r _ h i s t o r y )
00564
00565 {
00566
00567 v a l i d a t i o n _ e r r o r _ h i s t o r y [ e p o c h ] = v a l i d a t i o n _ e r r o r ;
00568
00569 }
00570
00571
00572
00573 i f ( r e s e r v e _ g r a d i e n t _ h i s t o r y )
00574
00575 {
00576
00577 g r a d i e n t _ h i s t o r y [ e p o c h ] = g r a d i e n t ;
00578
00579 }
00580
00581
00582
00583 i f ( r e s e r v e _ g r a d i e n t _ n o r m _ h i s t o r y )
00584
00585 {
00586
00587 g r a d i e n t _ n o r m _ h i s t o r y [ e p o c h ] = g r a d i e n t _ n o r m ;
00588
00589 }
00590
00591
00592
00593 i f ( r e s e r v e _ i n v e r s e _ H e s s i a n _ h i s t o r y )
00594
00595 {
00596
00597 i n v e r s e _ H e s s i a n _ h i s t o r y [ e p o c h ] = i n v e r s e _ H e s s i a n ;
00598
00599 }
00600
00601
00602
00603 / / T r a i n i n g h i s t o r y t r a i n i n g a l g o r i t h m
00604
00605
00606
00607 i f ( r e s e r v e _ t r a i n i n g _ d i r e c t i o n _ h i s t o r y )
00608
00609 {
00610
00611 t r a i n i n g _ d i r e c t i o n _ h i s t o r y [ e p o c h ] = t r a i n i n g _ d i r e c t i o n ;
00612
00613 }
00614
00615
00616
00617 i f ( r e s e r v e _ t r a i n i n g _ r a t e _ h i s t o r y )
00618
00619 {
00620
00621 t r a i n i n g _ r a t e _ h i s t o r y [ e p o c h ] = t r a i n i n g _ r a t e ;
00622
00623 }
00624
00625
00626
00627 i f ( r e s e r v e _ e l a p s e d _ t i m e _ h i s t o r y )
00628
00629 {
00630
00631 e l a p s e d _ t i m e _ h i s t o r y [ e p o c h ] = e l a p s e d _ t i m e ;
00632
00633 }
00634
00635
00636
00637 / / S t o p p i n g C r i t e r i a
00638
00639
00640
00641 i f ( p a r a m e t e r s _ i n c r e m e n t _ n o r m < = m i n i m u m _ p a r a m e t e r s _ i n c r e m e n t _ n o r m )
00642
00643 {
00644
00645 i f ( d i s p l a y )
00646
00647 {
00648
00649 s t d : : c o u t < < " E p o c h " < < e p o c h < < " : M i n i m u m p a r a m e t e r s i n c r e m e n t n o r m r e a c h e d . " < < s t d : : e n d l
00650
00651 < < " P a r a m e t e r s i n c r e m e n t n o r m : " < < p a r a m e t e r s _ i n c r e m e n t _ n o r m < < s t d : : e n d l ;
00652
00653 }
00654
00655
00656
00657 s t o p _ t r a i n i n g = t r u e ;
00658
00659 }
00660
00661
00662
00663 e l s e i f ( e v a l u a t i o n < = e v a l u a t i o n _ g o a l )
00664
00665 {
00666
00667 i f ( d i s p l a y )
00668
00669 {
00670
00671 s t d : : c o u t < < " E p o c h " < < e p o c h < < " : E v a l u a t i o n g o a l r e a c h e d . " < < s t d : : e n d l ;
00672
00673 }
00674
00675
00676
00677 s t o p _ t r a i n i n g = t r u e ;
00678
00679 }
00680
00681
00682
00683 e l s e i f ( e p o c h ! = 0 & & e v a l u a t i o n _ i m p r o v e m e n t < = m i n i m u m _ e v a l u a t i o n _ i m p r o v e m e n t )
00684
00685 {
00686
00687 i f ( d i s p l a y )
00688
00689 {
00690
00691 s t d : : c o u t < < " E p o c h " < < e p o c h < < " : M i n i m u m e v a l u a t i o n i m p r o v e m e n t r e a c h e d . " < < s t d : : e n d l
00692
00693 < < " E v a l u a t i o n i m p r o v e m e n t : " < < e v a l u a t i o n _ i m p r o v e m e n t < < s t d : : e n d l ;
00694
00695 }
00696
00697
00698
00699 s t o p _ t r a i n i n g = t r u e ;
00700
00701 }
00702
00703
00704
00705 e l s e i f ( e a r l y _ s t o p p i n g & & e p o c h ! = 0 & & v a l i d a t i o n _ e r r o r _ i n c r e m e n t < 0 . 0 )
00706
00707 {
00708
00709 i f ( d i s p l a y )
00710
00711 {
00712
00713 s t d : : c o u t < < " E p o c h " < < e p o c h < < " : V a l i d a t i o n e r r o r s t o p p e d i m p r o v i n g . " < < s t d : : e n d l ;
00714
00715 s t d : : c o u t < < " V a l i d a t i o n e r r o r i n c r e m e n t : " < < v a l i d a t i o n _ e r r o r _ i n c r e m e n t < < s t d : : e n d l ;
00716
00717 }
00718
00719
00720
00721 s t o p _ t r a i n i n g = t r u e ;
00722
00723 }
00724
00725
00726
00727 e l s e i f ( g r a d i e n t _ n o r m < = g r a d i e n t _ n o r m _ g o a l )
00728
00729 {
00730
00731 i f ( d i s p l a y )
00732
00733 {
00734
00735 s t d : : c o u t < < " E p o c h " < < e p o c h < < " : G r a d i e n t n o r m g o a l r e a c h e d . " < < s t d : : e n d l ;
00736
00737 }
00738
00739
00740
00741 s t o p _ t r a i n i n g = t r u e ;
00742
00743 }
00744
00745
00746
00747 i f ( e p o c h = = m a x i m u m _ e p o c h s _ n u m b e r )
00748
00749 {
00750
00751 i f ( d i s p l a y )
00752
00753 {
00754
00755 s t d : : c o u t < < " E p o c h " < < e p o c h < < " : M a x i m u m n u m b e r o f e p o c h s r e a c h e d . " < < s t d : : e n d l ;
00756
00757 }
00758
00759
00760
00761 s t o p _ t r a i n i n g = t r u e ;
00762
00763 }
00764
00765
00766
00767 e l s e i f ( e l a p s e d _ t i m e > = m a x i m u m _ t i m e )
00768
00769 {
00770
00771 i f ( d i s p l a y )
00772
00773 {
00774
00775 s t d : : c o u t < < " E p o c h " < < e p o c h < < " : M a x i m u m t r a i n i n g t i m e r e a c h e d . " < < s t d : : e n d l ;
00776
00777 }
00778
00779
00780
00781 s t o p _ t r a i n i n g = t r u e ;
00782
00783 }
00784
00785
00786
00787 i f ( s t o p _ t r a i n i n g )
00788
00789 {
00790
00791 i f ( d i s p l a y )
00792
00793 {
00794
00795 s t d : : c o u t < < " P a r a m e t e r s n o r m : " < < p a r a m e t e r s _ n o r m < < s t d : : e n d l ;
00796
00797
00798
00799 s t d : : c o u t < < " E v a l u a t i o n : " < < e v a l u a t i o n < < s t d : : e n d l ;
00800
00801
00802
00803 i f ( v a l i d a t i o n _ e r r o r ! = 0 )
00804
00805 {
00806
00807 s t d : : c o u t < < " V a l i d a t i o n e r r o r : " < < v a l i d a t i o n _ e r r o r < < s t d : : e n d l ;
00808
00809 }
00810
00811
00812
00813 s t d : : c o u t < < " G r a d i e n t n o r m : " < < g r a d i e n t _ n o r m < < s t d : : e n d l ;
00814
00815
00816
00817 o b j e c t i v e _ f u n c t i o n a l _ p o i n t e r - > p r i n t _ i n f o r m a t i o n ( ) ;
00818
00819
00820
00821 s t d : : c o u t < < " T r a i n i n g r a t e : " < < t r a i n i n g _ r a t e < < s t d : : e n d l
00822
00823 < < " E l a p s e d t i m e : " < < e l a p s e d _ t i m e < < s t d : : e n d l ;
00824
00825 }
00826
00827
00828
00829 r e s i z e _ t r a i n i n g _ h i s t o r y ( 1 + e p o c h ) ;
00830
00831
00832
00833 b r e a k ;
00834
00835 }
00836
00837 e l s e i f ( d i s p l a y & & e p o c h % d i s p l a y _ p e r i o d = = 0 )
00838
00839 {
00840
00841 s t d : : c o u t < < " E p o c h " < < e p o c h < < " ; " < < s t d : : e n d l ;
00842
00843
00844
00845 s t d : : c o u t < < " P a r a m e t e r s n o r m : " < < p a r a m e t e r s _ n o r m < < s t d : : e n d l ;
00846
00847
00848
00849 s t d : : c o u t < < " E v a l u a t i o n : " < < e v a l u a t i o n < < s t d : : e n d l ;
00850
00851
00852
00853 i f ( v a l i d a t i o n _ e r r o r ! = 0 )
00854
00855 {
00856
00857 s t d : : c o u t < < " V a l i d a t i o n e r r o r : " < < v a l i d a t i o n _ e r r o r < < s t d : : e n d l ;
00858
00859 }
00860
00861
00862
00863 s t d : : c o u t < < " G r a d i e n t n o r m : " < < g r a d i e n t _ n o r m < < s t d : : e n d l ;
00864
00865
00866
00867 o b j e c t i v e _ f u n c t i o n a l _ p o i n t e r - > p r i n t _ i n f o r m a t i o n ( ) ;
00868
00869
00870
00871 s t d : : c o u t < < " T r a i n i n g r a t e : " < < t r a i n i n g _ r a t e < < s t d : : e n d l
00872
00873 < < " E l a p s e d t i m e : " < < e l a p s e d _ t i m e < < s t d : : e n d l ;
00874
00875 }
00876
00877
00878
00879 / / S e t n e w p a r a m e t e r s
00880
00881
00882
00883 p a r a m e t e r s + = p a r a m e t e r s _ i n c r e m e n t ;
00884
00885
00886
00887 m u l t i l a y e r _ p e r c e p t r o n _ p o i n t e r - > s e t _ p a r a m e t e r s ( p a r a m e t e r s ) ;
00888
00889
00890
00891 / / U p d a t e s t u f f
00892
00893
00894
00895 o l d _ e v a l u a t i o n = e v a l u a t i o n ;
00896
00897 o l d _ v a l i d a t i o n _ e r r o r = v a l i d a t i o n _ e r r o r ;
00898
00899
00900
00901 o l d _ t r a i n i n g _ r a t e = t r a i n i n g _ r a t e ;
00902
00903 }
00904
00905 }
00906
00907
00908
00909
00910
00911 / / s t d : : s t r i n g t o _ X M L ( b o o l ) m e t h o d
00912
00913
00914
00915 / / / T h i s m e t h o d p r i n t s t o t h e s c r e e n t h e t r a i n i n g p a r a m e t e r s , t h e s t o p p i n g c r i t e r i a
00916
00917 / / / a n d o t h e r u s e r s t u f f c o n c e r n i n g t h e N e w t o n ' s m e t h o d o b j e c t :
00918
00919 / / /
00920
00921 / / / S t o p p i n g c r i t e r i a :
00922
00923 / / / < u l >
00924
00925 / / / < l i > E v a l u a t i o n g o a l .
00926
00927 / / / < l i > G r a d i e n t n o r m g o a l .
00928
00929 / / / < l i > M a x i m u m t r a i n i n g t i m e .
00930
00931 / / / < l i > M a x i m u m n u m b e r o f e p o c h s .
00932
00933 / / / < / u l >
00934
00935 / / /
00936
00937 / / / U s e r s t u f f :
00938
00939 / / / < u l >
00940
00941 / / / < l i > D i s p l a y .
00942
00943 / / / < l i > D i s p l a y p e r i o d .
00944
00945 / / / < / u l >
00946
00947
00948
00949 s t d : : s t r i n g N e w t o n M e t h o d : : t o _ X M L ( b o o l s h o w _ d e c l a r a t i o n )
00950
00951 {
00952
00953 s t d : : s t r i n g s t r e a m b u f f e r ; / / D e c l a r a t i o n
00954
00955
00956
00957 i f ( s h o w _ d e c l a r a t i o n )
00958
00959 {
00960
00961 b u f f e r < < " < F l o o d v e r s i o n = ' 3 . 0 ' c l a s s = ' N e w t o n M e t h o d ' > " < < s t d : : e n d l ;
00962
00963 }
00964
00965
00966
00967 / / T r a i n i n g o p e r a t o r s
00968
00969
00970
00971 b u f f e r < < " < T r a i n i n g R a t e M e t h o d > " < < s t d : : e n d l
00972
00973 < < g e t _ t r a i n i n g _ r a t e _ m e t h o d _ n a m e ( ) < < s t d : : e n d l
00974
00975 < < " < / T r a i n i n g R a t e M e t h o d > " < < s t d : : e n d l ;
00976
00977
00978
00979 / / T r a i n i n g p a r a m e t e r s
00980
00981
00982
00983 b u f f e r < < " < B r a c k e t i n g F a c t o r > " < < s t d : : e n d l
00984
00985 < < b r a c k e t i n g _ f a c t o r < < s t d : : e n d l
00986
00987 < < " < / B r a c k e t i n g F a c t o r > " < < s t d : : e n d l ;
00988
00989
00990
00991 b u f f e r < < " < F i r s t T r a i n i n g R a t e > " < < s t d : : e n d l
00992
00993 < < f i r s t _ t r a i n i n g _ r a t e < < s t d : : e n d l
00994
00995 < < " < / F i r s t T r a i n i n g R a t e > " < < s t d : : e n d l ;
00996
00997
00998
00999 b u f f e r < < " < T r a i n i n g R a t e T o l e r a n c e > " < < s t d : : e n d l
01000
01001 < < t r a i n i n g _ r a t e _ t o l e r a n c e < < s t d : : e n d l
01002
01003 < < " < / T r a i n i n g R a t e T o l e r a n c e > " < < s t d : : e n d l ;
01004
01005
01006
01007 b u f f e r < < " < W a r n i n g P a r a m e t e r s N o r m > " < < s t d : : e n d l
01008
01009 < < w a r n i n g _ p a r a m e t e r s _ n o r m < < s t d : : e n d l
01010
01011 < < " < / W a r n i n g P a r a m e t e r s N o r m > " < < s t d : : e n d l ;
01012
01013
01014
01015 b u f f e r < < " < W a r n i n g G r a d i e n t N o r m > " < < s t d : : e n d l
01016
01017 < < w a r n i n g _ g r a d i e n t _ n o r m < < s t d : : e n d l
01018
01019 < < " < / W a r n i n g G r a d i e n t N o r m > " < < s t d : : e n d l ;
01020
01021
01022
01023 b u f f e r < < " < W a r n i n g T r a i n i n g R a t e > " < < s t d : : e n d l
01024
01025 < < w a r n i n g _ t r a i n i n g _ r a t e < < s t d : : e n d l
01026
01027 < < " < / W a r n i n g T r a i n i n g R a t e > " < < s t d : : e n d l ;
01028
01029
01030
01031 b u f f e r < < " < E r r o r P a r a m e t e r s N o r m > " < < s t d : : e n d l
01032
01033 < < e r r o r _ p a r a m e t e r s _ n o r m < < s t d : : e n d l
01034
01035 < < " < / E r r o r P a r a m e t e r s N o r m > " < < s t d : : e n d l ;
01036
01037
01038
01039 b u f f e r < < " < E r r o r G r a d i e n t N o r m > " < < s t d : : e n d l
01040
01041 < < e r r o r _ g r a d i e n t _ n o r m < < s t d : : e n d l
01042
01043 < < " < / E r r o r G r a d i e n t N o r m > " < < s t d : : e n d l ;
01044
01045
01046
01047 b u f f e r < < " < E r r o r T r a i n i n g R a t e > " < < s t d : : e n d l
01048
01049 < < e r r o r _ t r a i n i n g _ r a t e < < s t d : : e n d l
01050
01051 < < " < / E r r o r T r a i n i n g R a t e > " < < s t d : : e n d l ;
01052
01053
01054
01055 / / S t o p p i n g c r i t e r i a
01056
01057
01058
01059 b u f f e r < < " < M i n i m u m P a r a m e t e r s I n c r e m e n t N o r m > " < < s t d : : e n d l
01060
01061 < < m i n i m u m _ p a r a m e t e r s _ i n c r e m e n t _ n o r m < < s t d : : e n d l
01062
01063 < < " < / M i n i m u m P a r a m e t e r s I n c r e m e n t N o r m > " < < s t d : : e n d l ;
01064
01065
01066
01067 b u f f e r < < " < M i n i m u m E v a l u a t i o n I m p r o v e m e n t > " < < s t d : : e n d l
01068
01069 < < m i n i m u m _ e v a l u a t i o n _ i m p r o v e m e n t < < s t d : : e n d l
01070
01071 < < " < / M i n i m u m E v a l u a t i o n I m p r o v e m e n t > " < < s t d : : e n d l ;
01072
01073
01074
01075 b u f f e r < < " < E v a l u a t i o n G o a l > " < < s t d : : e n d l
01076
01077 < < e v a l u a t i o n _ g o a l < < s t d : : e n d l
01078
01079 < < " < / E v a l u a t i o n G o a l > " < < s t d : : e n d l ;
01080
01081
01082
01083 b u f f e r < < " < E a r l y S t o p p i n g > " < < s t d : : e n d l
01084
01085 < < e a r l y _ s t o p p i n g < < s t d : : e n d l
01086
01087 < < " < / E a r l y S t o p p i n g > " < < s t d : : e n d l ;
01088
01089
01090
01091 b u f f e r < < " < G r a d i e n t N o r m G o a l > " < < s t d : : e n d l
01092
01093 < < g r a d i e n t _ n o r m _ g o a l < < s t d : : e n d l
01094
01095 < < " < / G r a d i e n t N o r m G o a l > " < < s t d : : e n d l ;
01096
01097
01098
01099 b u f f e r < < " < M a x i m u m E p o c h s N u m b e r > " < < s t d : : e n d l
01100
01101 < < m a x i m u m _ e p o c h s _ n u m b e r < < s t d : : e n d l
01102
01103 < < " < / M a x i m u m E p o c h s N u m b e r > " < < s t d : : e n d l ;
01104
01105
01106
01107 b u f f e r < < " < M a x i m u m T i m e > " < < s t d : : e n d l
01108
01109 < < m a x i m u m _ t i m e < < s t d : : e n d l
01110
01111 < < " < / M a x i m u m T i m e > " < < s t d : : e n d l ;
01112
01113
01114
01115 / / R e s e r v e t r a i n i n g h i s t o r y
01116
01117
01118
01119 b u f f e r < < " < R e s e r v e P a r a m e t e r s H i s t o r y > " < < s t d : : e n d l
01120
01121 < < r e s e r v e _ p a r a m e t e r s _ h i s t o r y < < s t d : : e n d l
01122
01123 < < " < / R e s e r v e P a r a m e t e r s H i s t o r y > " < < s t d : : e n d l ;
01124
01125
01126
01127 b u f f e r < < " < R e s e r v e P a r a m e t e r s N o r m H i s t o r y > " < < s t d : : e n d l
01128
01129 < < r e s e r v e _ p a r a m e t e r s _ n o r m _ h i s t o r y < < s t d : : e n d l
01130
01131 < < " < / R e s e r v e P a r a m e t e r s N o r m H i s t o r y > " < < s t d : : e n d l ;
01132
01133
01134
01135 b u f f e r < < " < R e s e r v e E v a l u a t i o n H i s t o r y > " < < s t d : : e n d l
01136
01137 < < r e s e r v e _ e v a l u a t i o n _ h i s t o r y < < s t d : : e n d l
01138
01139 < < " < / R e s e r v e E v a l u a t i o n H i s t o r y > " < < s t d : : e n d l ;
01140
01141
01142
01143 b u f f e r < < " < R e s e r v e V a l i d a t i o n E r r o r H i s t o r y > " < < s t d : : e n d l
01144
01145 < < r e s e r v e _ v a l i d a t i o n _ e r r o r _ h i s t o r y < < s t d : : e n d l
01146
01147 < < " < / R e s e r v e V a l i d a t i o n E r r o r H i s t o r y > " < < s t d : : e n d l ;
01148
01149
01150
01151 b u f f e r < < " < R e s e r v e G r a d i e n t H i s t o r y > " < < s t d : : e n d l
01152
01153 < < r e s e r v e _ g r a d i e n t _ h i s t o r y < < s t d : : e n d l
01154
01155 < < " < / R e s e r v e G r a d i e n t H i s t o r y > " < < s t d : : e n d l ;
01156
01157
01158
01159 b u f f e r < < " < R e s e r v e G r a d i e n t N o r m H i s t o r y > " < < s t d : : e n d l
01160
01161 < < r e s e r v e _ g r a d i e n t _ n o r m _ h i s t o r y < < s t d : : e n d l
01162
01163 < < " < / R e s e r v e G r a d i e n t N o r m H i s t o r y > " < < s t d : : e n d l ;
01164
01165
01166
01167 b u f f e r < < " < R e s e r v e I n v e r s e H e s s i a n H i s t o r y > " < < s t d : : e n d l
01168
01169 < < r e s e r v e _ i n v e r s e _ H e s s i a n _ h i s t o r y < < s t d : : e n d l
01170
01171 < < " < / R e s e r v e I n v e r s e H e s s i a n H i s t o r y > " < < s t d : : e n d l ;
01172
01173
01174
01175 b u f f e r < < " < R e s e r v e T r a i n i n g D i r e c t i o n H i s t o r y > " < < s t d : : e n d l
01176
01177 < < r e s e r v e _ t r a i n i n g _ d i r e c t i o n _ h i s t o r y < < s t d : : e n d l
01178
01179 < < " < / R e s e r v e T r a i n i n g D i r e c t i o n H i s t o r y > " < < s t d : : e n d l ;
01180
01181
01182
01183 b u f f e r < < " < R e s e r v e T r a i n i n g R a t e H i s t o r y > " < < s t d : : e n d l
01184
01185 < < r e s e r v e _ t r a i n i n g _ r a t e _ h i s t o r y < < s t d : : e n d l
01186
01187 < < " < / R e s e r v e T r a i n i n g R a t e H i s t o r y > " < < s t d : : e n d l ;
01188
01189
01190
01191 b u f f e r < < " < R e s e r v e E l a p s e d T i m e H i s t o r y > " < < s t d : : e n d l
01192
01193 < < r e s e r v e _ e l a p s e d _ t i m e _ h i s t o r y < < s t d : : e n d l
01194
01195 < < " < / R e s e r v e E l a p s e d T i m e H i s t o r y > " < < s t d : : e n d l ;
01196
01197
01198
01199 / / U s e r s t u f f
01200
01201
01202
01203 b u f f e r < < " < D i s p l a y > " < < s t d : : e n d l
01204
01205 < < d i s p l a y < < s t d : : e n d l
01206
01207 < < " < / D i s p l a y > " < < s t d : : e n d l ;
01208
01209
01210
01211 b u f f e r < < " < D i s p l a y P e r i o d > " < < s t d : : e n d l
01212
01213 < < d i s p l a y _ p e r i o d < < s t d : : e n d l
01214
01215 < < " < / D i s p l a y P e r i o d > " < < s t d : : e n d l ;
01216
01217
01218
01219 r e t u r n ( b u f f e r . s t r ( ) ) ;
01220
01221 }
01222
01223
01224
01225
01226
01227 / / v o i d l o a d ( c o n s t c h a r * ) m e t h o d
01228
01229
01230
01231 / / / T h i s m e t h o d l o a d s a N e w t o n ' s m e t h o d o b j e c t f r o m a d a t a f i l e .
01232
01233 / / / P l e a s e m i n d a b o u t t h e f i l e f o r m a t , w i c h i s s p e c i f i e d i n t h e U s e r ' s G u i d e .
01234
01235 / / /
01236
01237 / / / S t o p p i n g c r i t e r i a :
01238
01239 / / / < u l >
01240
01241 / / / < l i > E v a l u a t i o n g o a l .
01242
01243 / / / < l i > G r a d i e n t n o r m g o a l .
01244
01245 / / / < l i > M a x i m u m t i m e .
01246
01247 / / / < l i > M a x i m u m n u m b e r o f e p o c h s .
01248
01249 / / / < / u l >
01250
01251 / / /
01252
01253 / / / U s e r s t u f f :
01254
01255 / / / < u l >
01256
01257 / / / < l i > D i s p l a y .
01258
01259 / / / < l i > D i s p l a y p e r i o d .
01260
01261 / / / < / u l >
01262
01263 / / /
01264
01265 / / / @ p a r a m f i l e n a m e F i l e n a m e .
01266
01267
01268
01269 v o i d N e w t o n M e t h o d : : l o a d ( c o n s t c h a r * f i l e n a m e )
01270
01271 {
01272
01273 / / F i l e
01274
01275
01276
01277 s t d : : f s t r e a m f i l e ;
01278
01279
01280
01281 f i l e . o p e n ( f i l e n a m e , s t d : : i o s : : i n ) ;
01282
01283
01284
01285 i f ( ! f i l e . i s _ o p e n ( ) )
01286
01287 {
01288
01289 s t d : : c e r r < < " F l o o d E r r o r : N e w t o n M e t h o d c l a s s . " < < s t d : : e n d l
01290
01291 < < " v o i d l o a d ( c o n s t c h a r * ) m e t h o d . " < < s t d : : e n d l
01292
01293 < < " C a n n o t o p e n N e w t o n m e t h o d o b j e c t X M L - t y p e f i l e . " < < s t d : : e n d l ;
01294
01295
01296
01297 e x i t ( 1 ) ;
01298
01299 }
01300
01301
01302
01303 s t d : : s t r i n g w o r d ;
01304
01305 s t d : : s t r i n g l i n e ;
01306
01307
01308
01309 / / D e c l a r a t i o n
01310
01311
01312
01313 g e t l i n e ( f i l e , l i n e ) ;
01314
01315
01316
01317 i f ( l i n e ! = " < F l o o d v e r s i o n = ' 3 . 0 ' c l a s s = ' N e w t o n M e t h o d ' > " )
01318
01319 {
01320
01321 s t d : : c e r r < < " F l o o d E r r o r : N e w t o n M e t h o d c l a s s . " < < s t d : : e n d l
01322
01323 < < " v o i d l o a d ( c o n s t c h a r * ) m e t h o d . " < < s t d : : e n d l
01324
01325 < < " U n k n o w n f i l e d e c l a r a t i o n : " < < l i n e < < s t d : : e n d l ;
01326
01327
01328
01329 e x i t ( 1 ) ;
01330
01331 }
01332
01333
01334
01335 w h i l e ( ! f i l e . e o f ( ) )
01336
01337 {
01338
01339 f i l e > > w o r d ;
01340
01341
01342
01343 / / T r a i n i n g o p e r a t o r s
01344
01345
01346
01347 i f ( w o r d = = " < T r a i n i n g R a t e M e t h o d > " )
01348
01349 {
01350
01351 s t d : : s t r i n g n e w _ t r a i n i n g _ r a t e _ m e t h o d ;
01352
01353
01354
01355 f i l e > > n e w _ t r a i n i n g _ r a t e _ m e t h o d ;
01356
01357
01358
01359 f i l e > > w o r d ;
01360
01361
01362
01363 i f ( w o r d ! = " < / T r a i n i n g R a t e M e t h o d > " )
01364
01365 {
01366
01367 s t d : : c e r r < < " F l o o d E r r o r : N e w t o n M e t h o d c l a s s . " < < s t d : : e n d l
01368
01369 < < " v o i d l o a d ( c o n s t c h a r * ) m e t h o d . " < < s t d : : e n d l
01370
01371 < < " U n k n o w n t r a i n i n g r a t e m e t h o d e n d t a g : " < < w o r d < < s t d : : e n d l ;
01372
01373
01374
01375 e x i t ( 1 ) ;
01376
01377 }
01378
01379
01380
01381 s e t _ t r a i n i n g _ r a t e _ m e t h o d ( n e w _ t r a i n i n g _ r a t e _ m e t h o d ) ;
01382
01383 }
01384
01385
01386
01387 / / T r a i n i n g p a r a m e t e r s
01388
01389
01390
01391 e l s e i f ( w o r d = = " < B r a c k e t i n g F a c t o r > " )
01392
01393 {
01394
01395 d o u b l e n e w _ b a c k e t i n g _ f a c t o r ;
01396
01397
01398
01399 f i l e > > n e w _ b a c k e t i n g _ f a c t o r ;
01400
01401
01402
01403 f i l e > > w o r d ;
01404
01405
01406
01407 i f ( w o r d ! = " < / B r a c k e t i n g F a c t o r > " )
01408
01409 {
01410
01411 s t d : : c e r r < < " F l o o d E r r o r : N e w t o n M e t h o d c l a s s . " < < s t d : : e n d l
01412
01413 < < " v o i d l o a d ( c o n s t c h a r * ) m e t h o d . " < < s t d : : e n d l
01414
01415 < < " U n k n o w n b r a c k e t i n g f a c t o r e n d t a g : " < < w o r d < < s t d : : e n d l ;
01416
01417
01418
01419 e x i t ( 1 ) ;
01420
01421 }
01422
01423
01424
01425 s e t _ b r a c k e t i n g _ f a c t o r ( n e w _ b a c k e t i n g _ f a c t o r ) ;
01426
01427 }
01428
01429 e l s e i f ( w o r d = = " < F i r s t T r a i n i n g R a t e > " )
01430
01431 {
01432
01433 d o u b l e n e w _ f i r s t _ t r a i n i n g _ r a t e ;
01434
01435
01436
01437 f i l e > > n e w _ f i r s t _ t r a i n i n g _ r a t e ;
01438
01439
01440
01441 f i l e > > w o r d ;
01442
01443
01444
01445 i f ( w o r d ! = " < / F i r s t T r a i n i n g R a t e > " )
01446
01447 {
01448
01449 s t d : : c e r r < < " F l o o d E r r o r : N e w t o n M e t h o d c l a s s . " < < s t d : : e n d l
01450
01451 < < " v o i d l o a d ( c o n s t c h a r * ) m e t h o d . " < < s t d : : e n d l
01452
01453 < < " U n k n o w n f i r s t t r a i n i n g r a t e e n d t a g : " < < w o r d < < s t d : : e n d l ;
01454
01455
01456
01457 e x i t ( 1 ) ;
01458
01459 }
01460
01461
01462
01463 s e t _ f i r s t _ t r a i n i n g _ r a t e ( n e w _ f i r s t _ t r a i n i n g _ r a t e ) ;
01464
01465 }
01466
01467 e l s e i f ( w o r d = = " < T r a i n i n g R a t e T o l e r a n c e > " )
01468
01469 {
01470
01471 d o u b l e n e w _ t r a i n i n g _ r a t e _ t o l e r a n c e ;
01472
01473
01474
01475 f i l e > > n e w _ t r a i n i n g _ r a t e _ t o l e r a n c e ;
01476
01477
01478
01479 f i l e > > w o r d ;
01480
01481
01482
01483 i f ( w o r d ! = " < / T r a i n i n g R a t e T o l e r a n c e > " )
01484
01485 {
01486
01487 s t d : : c e r r < < " F l o o d E r r o r : N e w t o n M e t h o d c l a s s . " < < s t d : : e n d l
01488
01489 < < " v o i d l o a d ( c o n s t c h a r * ) m e t h o d . " < < s t d : : e n d l
01490
01491 < < " U n k n o w n t r a i n i n g r a t e t o l e r a n c e e n d t a g : " < < w o r d < < s t d : : e n d l ;
01492
01493
01494
01495 e x i t ( 1 ) ;
01496
01497 }
01498
01499
01500
01501 s e t _ t r a i n i n g _ r a t e _ t o l e r a n c e ( n e w _ t r a i n i n g _ r a t e _ t o l e r a n c e ) ;
01502
01503 }
01504
01505
01506
01507 e l s e i f ( w o r d = = " < W a r n i n g P a r a m e t e r s N o r m > " )
01508
01509 {
01510
01511 d o u b l e n e w _ w a r n i n g _ p a r a m e t e r s _ n o r m ;
01512
01513
01514
01515 f i l e > > n e w _ w a r n i n g _ p a r a m e t e r s _ n o r m ;
01516
01517
01518
01519 f i l e > > w o r d ;
01520
01521
01522
01523 i f ( w o r d ! = " < / W a r n i n g P a r a m e t e r s N o r m > " )
01524
01525 {
01526
01527 s t d : : c e r r < < " F l o o d E r r o r : N e w t o n M e t h o d c l a s s . " < < s t d : : e n d l
01528
01529 < < " v o i d l o a d ( c o n s t c h a r * ) m e t h o d . " < < s t d : : e n d l
01530
01531 < < " U n k n o w n w a r n i n g p a r a m e t e r s n o r m e n d t a g : " < < w o r d < < s t d : : e n d l ;
01532
01533
01534
01535 e x i t ( 1 ) ;
01536
01537 }
01538
01539
01540
01541 s e t _ w a r n i n g _ p a r a m e t e r s _ n o r m ( n e w _ w a r n i n g _ p a r a m e t e r s _ n o r m ) ;
01542
01543 }
01544
01545
01546
01547 e l s e i f ( w o r d = = " < W a r n i n g G r a d i e n t N o r m > " )
01548
01549 {
01550
01551 d o u b l e n e w _ w a r n i n g _ g r a d i e n t _ n o r m ;
01552
01553
01554
01555 f i l e > > n e w _ w a r n i n g _ g r a d i e n t _ n o r m ;
01556
01557
01558
01559 f i l e > > w o r d ;
01560
01561
01562
01563 i f ( w o r d ! = " < / W a r n i n g G r a d i e n t N o r m > " )
01564
01565 {
01566
01567 s t d : : c e r r < < " F l o o d E r r o r : N e w t o n M e t h o d c l a s s . " < < s t d : : e n d l
01568
01569 < < " v o i d l o a d ( c o n s t c h a r * ) m e t h o d . " < < s t d : : e n d l
01570
01571 < < " U n k n o w n w a r n i n g g r a d i e n t n o r m e n d t a g : " < < w o r d < < s t d : : e n d l ;
01572
01573
01574
01575 e x i t ( 1 ) ;
01576
01577 }
01578
01579
01580
01581 s e t _ w a r n i n g _ g r a d i e n t _ n o r m ( n e w _ w a r n i n g _ g r a d i e n t _ n o r m ) ;
01582
01583 }
01584
01585
01586
01587 e l s e i f ( w o r d = = " < W a r n i n g T r a i n i n g R a t e > " )
01588
01589 {
01590
01591 d o u b l e n e w _ w a r n i n g _ t r a i n i n g _ r a t e ;
01592
01593
01594
01595 f i l e > > n e w _ w a r n i n g _ t r a i n i n g _ r a t e ;
01596
01597
01598
01599 f i l e > > w o r d ;
01600
01601
01602
01603 i f ( w o r d ! = " < / W a r n i n g T r a i n i n g R a t e > " )
01604
01605 {
01606
01607 s t d : : c e r r < < " F l o o d E r r o r : N e w t o n M e t h o d c l a s s . " < < s t d : : e n d l
01608
01609 < < " v o i d l o a d ( c o n s t c h a r * ) m e t h o d . " < < s t d : : e n d l
01610
01611 < < " U n k n o w n w a r n i n g t r a i n i n g r a t e e n d t a g : " < < w o r d < < s t d : : e n d l ;
01612
01613
01614
01615 e x i t ( 1 ) ;
01616
01617 }
01618
01619
01620
01621 s e t _ w a r n i n g _ t r a i n i n g _ r a t e ( n e w _ w a r n i n g _ t r a i n i n g _ r a t e ) ;
01622
01623 }
01624
01625
01626
01627 e l s e i f ( w o r d = = " < E r r o r P a r a m e t e r s N o r m > " )
01628
01629 {
01630
01631 d o u b l e n e w _ e r r o r _ p a r a m e t e r s _ n o r m ;
01632
01633
01634
01635 f i l e > > n e w _ e r r o r _ p a r a m e t e r s _ n o r m ;
01636
01637
01638
01639 f i l e > > w o r d ;
01640
01641
01642
01643 i f ( w o r d ! = " < / E r r o r P a r a m e t e r s N o r m > " )
01644
01645 {
01646
01647 s t d : : c e r r < < " F l o o d E r r o r : N e w t o n M e t h o d c l a s s . " < < s t d : : e n d l
01648
01649 < < " v o i d l o a d ( c o n s t c h a r * ) m e t h o d . " < < s t d : : e n d l
01650
01651 < < " U n k n o w n e r r o r p a r a m e t e r s n o r m e n d t a g : " < < w o r d < < s t d : : e n d l ;
01652
01653
01654
01655 e x i t ( 1 ) ;
01656
01657 }
01658
01659
01660
01661 s e t _ e r r o r _ p a r a m e t e r s _ n o r m ( n e w _ e r r o r _ p a r a m e t e r s _ n o r m ) ;
01662
01663 }
01664
01665
01666
01667 e l s e i f ( w o r d = = " < E r r o r G r a d i e n t N o r m > " )
01668
01669 {
01670
01671 d o u b l e n e w _ e r r o r _ g r a d i e n t _ n o r m ;
01672
01673
01674
01675 f i l e > > n e w _ e r r o r _ g r a d i e n t _ n o r m ;
01676
01677
01678
01679 f i l e > > w o r d ;
01680
01681
01682
01683 i f ( w o r d ! = " < / E r r o r G r a d i e n t N o r m > " )
01684
01685 {
01686
01687 s t d : : c e r r < < " F l o o d E r r o r : N e w t o n M e t h o d c l a s s . " < < s t d : : e n d l
01688
01689 < < " v o i d l o a d ( c o n s t c h a r * ) m e t h o d . " < < s t d : : e n d l
01690
01691 < < " U n k n o w n e r r o r g r a d i e n t n o r m e n d t a g : " < < w o r d < < s t d : : e n d l ;
01692
01693
01694
01695 e x i t ( 1 ) ;
01696
01697 }
01698
01699
01700
01701 s e t _ e r r o r _ g r a d i e n t _ n o r m ( n e w _ e r r o r _ g r a d i e n t _ n o r m ) ;
01702
01703 }
01704
01705
01706
01707 e l s e i f ( w o r d = = " < E r r o r T r a i n i n g R a t e > " )
01708
01709 {
01710
01711 d o u b l e n e w _ e r r o r _ t r a i n i n g _ r a t e ;
01712
01713
01714
01715 f i l e > > n e w _ e r r o r _ t r a i n i n g _ r a t e ;
01716
01717
01718
01719 s e t _ e r r o r _ t r a i n i n g _ r a t e ( n e w _ e r r o r _ t r a i n i n g _ r a t e ) ;
01720
01721
01722
01723 f i l e > > w o r d ;
01724
01725
01726
01727 i f ( w o r d ! = " < / E r r o r T r a i n i n g R a t e > " )
01728
01729 {
01730
01731 s t d : : c e r r < < " F l o o d E r r o r : N e w t o n M e t h o d c l a s s . " < < s t d : : e n d l
01732
01733 < < " v o i d l o a d ( c o n s t c h a r * ) m e t h o d . " < < s t d : : e n d l
01734
01735 < < " U n k n o w n e r r o r t r a i n i n g r a t e e n d t a g : " < < w o r d < < s t d : : e n d l ;
01736
01737
01738
01739 e x i t ( 1 ) ;
01740
01741 }
01742
01743 }
01744
01745
01746
01747 / / S t o p p i n g c r i t e r i a
01748
01749
01750
01751 e l s e i f ( w o r d = = " < M i n i m u m P a r a m e t e r s I n c r e m e n t N o r m > " )
01752
01753 {
01754
01755 d o u b l e n e w _ m i n i m u m _ p a r a m e t e r s _ i n c r e m e n t _ n o r m ;
01756
01757
01758
01759 f i l e > > n e w _ m i n i m u m _ p a r a m e t e r s _ i n c r e m e n t _ n o r m ;
01760
01761
01762
01763 f i l e > > w o r d ;
01764
01765
01766
01767 i f ( w o r d ! = " < / M i n i m u m P a r a m e t e r s I n c r e m e n t N o r m > " )
01768
01769 {
01770
01771 s t d : : c e r r < < " F l o o d E r r o r : N e w t o n M e t h o d c l a s s . " < < s t d : : e n d l
01772
01773 < < " v o i d l o a d ( c o n s t c h a r * ) m e t h o d . " < < s t d : : e n d l
01774
01775 < < " U n k n o w n m i n i m u m p a r a m e t e r s i n c r e m e n t n o r m e n d t a g : " < < w o r d < < s t d : : e n d l ;
01776
01777
01778
01779 e x i t ( 1 ) ;
01780
01781 }
01782
01783
01784
01785 s e t _ m i n i m u m _ p a r a m e t e r s _ i n c r e m e n t _ n o r m ( n e w _ m i n i m u m _ p a r a m e t e r s _ i n c r e m e n t _ n o r m ) ;
01786
01787 }
01788
01789
01790
01791 e l s e i f ( w o r d = = " < M i n i m u m E v a l u a t i o n I m p r o v e m e n t > " )
01792
01793 {
01794
01795 d o u b l e n e w _ m i n i m u m _ e v a l u a t i o n _ i m p r o v e m e n t ;
01796
01797
01798
01799 f i l e > > n e w _ m i n i m u m _ e v a l u a t i o n _ i m p r o v e m e n t ;
01800
01801
01802
01803 f i l e > > w o r d ;
01804
01805
01806
01807 i f ( w o r d ! = " < / M i n i m u m E v a l u a t i o n I m p r o v e m e n t > " )
01808
01809 {
01810
01811 s t d : : c e r r < < " F l o o d E r r o r : N e w t o n M e t h o d c l a s s . " < < s t d : : e n d l
01812
01813 < < " v o i d l o a d ( c o n s t c h a r * ) m e t h o d . " < < s t d : : e n d l
01814
01815 < < " U n k n o w n m i n i m u m e v a l u a t i o n i m p r o v e m e n t e n d t a g : " < < w o r d < < s t d : : e n d l ;
01816
01817
01818
01819 e x i t ( 1 ) ;
01820
01821 }
01822
01823
01824
01825 s e t _ m i n i m u m _ e v a l u a t i o n _ i m p r o v e m e n t ( n e w _ m i n i m u m _ e v a l u a t i o n _ i m p r o v e m e n t ) ;
01826
01827 }
01828
01829
01830
01831 e l s e i f ( w o r d = = " < E v a l u a t i o n G o a l > " )
01832
01833 {
01834
01835 d o u b l e n e w _ e v a l u a t i o n _ g o a l ;
01836
01837
01838
01839 f i l e > > n e w _ e v a l u a t i o n _ g o a l ;
01840
01841
01842
01843 f i l e > > w o r d ;
01844
01845
01846
01847 i f ( w o r d ! = " < / E v a l u a t i o n G o a l > " )
01848
01849 {
01850
01851 s t d : : c e r r < < " F l o o d E r r o r : N e w t o n M e t h o d c l a s s . " < < s t d : : e n d l
01852
01853 < < " v o i d l o a d ( c o n s t c h a r * ) m e t h o d . " < < s t d : : e n d l
01854
01855 < < " U n k n o w n e v a l u a t i o n g o a l e n d t a g : " < < w o r d < < s t d : : e n d l ;
01856
01857
01858
01859 e x i t ( 1 ) ;
01860
01861 }
01862
01863
01864
01865 s e t _ e v a l u a t i o n _ g o a l ( n e w _ e v a l u a t i o n _ g o a l ) ;
01866
01867 }
01868
01869
01870
01871 e l s e i f ( w o r d = = " < E a r l y S t o p p i n g > " )
01872
01873 {
01874
01875 b o o l n e w _ e a r l y _ s t o p p i n g ;
01876
01877
01878
01879 f i l e > > n e w _ e a r l y _ s t o p p i n g ;
01880
01881
01882
01883 f i l e > > w o r d ;
01884
01885
01886
01887 i f ( w o r d ! = " < / E a r l y S t o p p i n g > " )
01888
01889 {
01890
01891 s t d : : c e r r < < " F l o o d E r r o r : N e w t o n M e t h o d c l a s s . " < < s t d : : e n d l
01892
01893 < < " v o i d l o a d ( c o n s t c h a r * ) m e t h o d . " < < s t d : : e n d l
01894
01895 < < " U n k n o w n e a r l y s t o p p i n g e n d t a g : " < < w o r d < < s t d : : e n d l ;
01896
01897
01898
01899 e x i t ( 1 ) ;
01900
01901 }
01902
01903
01904
01905 s e t _ e a r l y _ s t o p p i n g ( n e w _ e a r l y _ s t o p p i n g ) ;
01906
01907 }
01908
01909
01910
01911 e l s e i f ( w o r d = = " < G r a d i e n t N o r m G o a l > " )
01912
01913 {
01914
01915 d o u b l e n e w _ g r a d i e n t _ n o r m _ g o a l ;
01916
01917
01918
01919 f i l e > > n e w _ g r a d i e n t _ n o r m _ g o a l ;
01920
01921
01922
01923 f i l e > > w o r d ;
01924
01925
01926
01927 i f ( w o r d ! = " < / G r a d i e n t N o r m G o a l > " )
01928
01929 {
01930
01931 s t d : : c e r r < < " F l o o d E r r o r : N e w t o n M e t h o d c l a s s . " < < s t d : : e n d l
01932
01933 < < " v o i d l o a d ( c o n s t c h a r * ) m e t h o d . " < < s t d : : e n d l
01934
01935 < < " U n k n o w n g r a d i e n t n o r m g o a l e n d t a g : " < < w o r d < < s t d : : e n d l ;
01936
01937
01938
01939 e x i t ( 1 ) ;
01940
01941 }
01942
01943
01944
01945 s e t _ g r a d i e n t _ n o r m _ g o a l ( n e w _ g r a d i e n t _ n o r m _ g o a l ) ;
01946
01947 }
01948
01949
01950
01951 e l s e i f ( w o r d = = " < M a x i m u m E p o c h s N u m b e r > " )
01952
01953 {
01954
01955 i n t n e w _ m a x i m u m _ e p o c h s _ n u m b e r ;
01956
01957
01958
01959 f i l e > > n e w _ m a x i m u m _ e p o c h s _ n u m b e r ;
01960
01961
01962
01963 f i l e > > w o r d ;
01964
01965
01966
01967 i f ( w o r d ! = " < / M a x i m u m E p o c h s N u m b e r > " )
01968
01969 {
01970
01971 s t d : : c e r r < < " F l o o d E r r o r : N e w t o n M e t h o d c l a s s . " < < s t d : : e n d l
01972
01973 < < " v o i d l o a d ( c o n s t c h a r * ) m e t h o d . " < < s t d : : e n d l
01974
01975 < < " U n k n o w n m a x i m u m e p o c h s n u m b e r e n d t a g : " < < w o r d < < s t d : : e n d l ;
01976
01977
01978
01979 e x i t ( 1 ) ;
01980
01981 }
01982
01983
01984
01985 s e t _ m a x i m u m _ e p o c h s _ n u m b e r ( n e w _ m a x i m u m _ e p o c h s _ n u m b e r ) ;
01986
01987 }
01988
01989 e l s e i f ( w o r d = = " < M a x i m u m T i m e > " )
01990
01991 {
01992
01993 d o u b l e n e w _ m a x i m u m _ t i m e ;
01994
01995
01996
01997 f i l e > > n e w _ m a x i m u m _ t i m e ;
01998
01999
02000
02001 f i l e > > w o r d ;
02002
02003
02004
02005 i f ( w o r d ! = " < / M a x i m u m T i m e > " )
02006
02007 {
02008
02009 s t d : : c e r r < < " F l o o d E r r o r : N e w t o n M e t h o d c l a s s . " < < s t d : : e n d l
02010
02011 < < " v o i d l o a d ( c o n s t c h a r * ) m e t h o d . " < < s t d : : e n d l
02012
02013 < < " U n k n o w n m a x i m u m t i m e e n d t a g : " < < w o r d < < s t d : : e n d l ;
02014
02015
02016
02017 e x i t ( 1 ) ;
02018
02019 }
02020
02021
02022
02023 s e t _ m a x i m u m _ t i m e ( n e w _ m a x i m u m _ t i m e ) ;
02024
02025 }
02026
02027
02028
02029 / / T r a i n i n g h i s t o r y
02030
02031
02032
02033 e l s e i f ( w o r d = = " < R e s e r v e P a r a m e t e r s H i s t o r y > " )
02034
02035 {
02036
02037 b o o l n e w _ r e s e r v e _ p a r a m e t e r s _ h i s t o r y ;
02038
02039
02040
02041 f i l e > > n e w _ r e s e r v e _ p a r a m e t e r s _ h i s t o r y ;
02042
02043
02044
02045 f i l e > > w o r d ;
02046
02047
02048
02049 i f ( w o r d ! = " < / R e s e r v e P a r a m e t e r s H i s t o r y > " )
02050
02051 {
02052
02053 s t d : : c e r r < < " F l o o d E r r o r : N e w t o n M e t h o d c l a s s . " < < s t d : : e n d l
02054
02055 < < " v o i d l o a d ( c o n s t c h a r * ) m e t h o d . " < < s t d : : e n d l
02056
02057 < < " U n k n o w n r e s e r v e p a r a m e t e r s h i s t o r y e n d t a g : " < < w o r d < < s t d : : e n d l ;
02058
02059
02060
02061 e x i t ( 1 ) ;
02062
02063 }
02064
02065
02066
02067 s e t _ r e s e r v e _ p a r a m e t e r s _ h i s t o r y ( n e w _ r e s e r v e _ p a r a m e t e r s _ h i s t o r y ) ;
02068
02069 }
02070
02071
02072
02073 e l s e i f ( w o r d = = " < R e s e r v e P a r a m e t e r s N o r m H i s t o r y > " )
02074
02075 {
02076
02077 b o o l n e w _ r e s e r v e _ p a r a m e t e r s _ n o r m _ h i s t o r y ;
02078
02079
02080
02081 f i l e > > n e w _ r e s e r v e _ p a r a m e t e r s _ n o r m _ h i s t o r y ;
02082
02083
02084
02085 f i l e > > w o r d ;
02086
02087
02088
02089 i f ( w o r d ! = " < / R e s e r v e P a r a m e t e r s N o r m H i s t o r y > " )
02090
02091 {
02092
02093 s t d : : c e r r < < " F l o o d E r r o r : N e w t o n M e t h o d c l a s s . " < < s t d : : e n d l
02094
02095 < < " v o i d l o a d ( c o n s t c h a r * ) m e t h o d . " < < s t d : : e n d l
02096
02097 < < " U n k n o w n r e s e r v e p a r a m e t e r s n o r m h i s t o r y e n d t a g : " < < w o r d < < s t d : : e n d l ;
02098
02099
02100
02101 e x i t ( 1 ) ;
02102
02103 }
02104
02105
02106
02107 s e t _ r e s e r v e _ p a r a m e t e r s _ n o r m _ h i s t o r y ( n e w _ r e s e r v e _ p a r a m e t e r s _ n o r m _ h i s t o r y ) ;
02108
02109 }
02110
02111 e l s e i f ( w o r d = = " < R e s e r v e E v a l u a t i o n H i s t o r y > " )
02112
02113 {
02114
02115 b o o l n e w _ r e s e r v e _ e v a l u a t i o n _ h i s t o r y ;
02116
02117
02118
02119 f i l e > > n e w _ r e s e r v e _ e v a l u a t i o n _ h i s t o r y ;
02120
02121
02122
02123 f i l e > > w o r d ;
02124
02125
02126
02127 i f ( w o r d ! = " < / R e s e r v e E v a l u a t i o n H i s t o r y > " )
02128
02129 {
02130
02131 s t d : : c e r r < < " F l o o d E r r o r : N e w t o n M e t h o d c l a s s . " < < s t d : : e n d l
02132
02133 < < " v o i d l o a d ( c o n s t c h a r * ) m e t h o d . " < < s t d : : e n d l
02134
02135 < < " U n k n o w n r e s e r v e e v a l u a t i o n h i s t o r y e n d t a g : " < < w o r d < < s t d : : e n d l ;
02136
02137
02138
02139 e x i t ( 1 ) ;
02140
02141 }
02142
02143
02144
02145 s e t _ r e s e r v e _ e v a l u a t i o n _ h i s t o r y ( n e w _ r e s e r v e _ e v a l u a t i o n _ h i s t o r y ) ;
02146
02147 }
02148
02149
02150
02151 e l s e i f ( w o r d = = " < R e s e r v e V a l i d a t i o n E r r o r H i s t o r y > " )
02152
02153 {
02154
02155 b o o l n e w _ r e s e r v e _ v a l i d a t i o n _ e r r o r _ h i s t o r y ;
02156
02157
02158
02159 f i l e > > n e w _ r e s e r v e _ v a l i d a t i o n _ e r r o r _ h i s t o r y ;
02160
02161
02162
02163 f i l e > > w o r d ;
02164
02165
02166
02167 i f ( w o r d ! = " < / R e s e r v e V a l i d a t i o n E r r o r H i s t o r y > " )
02168
02169 {
02170
02171 s t d : : c e r r < < " F l o o d E r r o r : N e w t o n M e t h o d c l a s s . " < < s t d : : e n d l
02172
02173 < < " v o i d l o a d ( c o n s t c h a r * ) m e t h o d . " < < s t d : : e n d l
02174
02175 < < " U n k n o w n r e s e r v e v a l i d a t i o n e r r o r h i s t o r y e n d t a g : " < < w o r d < < s t d : : e n d l ;
02176
02177
02178
02179 e x i t ( 1 ) ;
02180
02181 }
02182
02183
02184
02185 s e t _ r e s e r v e _ v a l i d a t i o n _ e r r o r _ h i s t o r y ( n e w _ r e s e r v e _ v a l i d a t i o n _ e r r o r _ h i s t o r y ) ;
02186
02187 }
02188
02189
02190
02191 e l s e i f ( w o r d = = " < R e s e r v e G r a d i e n t H i s t o r y > " )
02192
02193 {
02194
02195 b o o l n e w _ r e s e r v e _ g r a d i e n t _ h i s t o r y ;
02196
02197
02198
02199 f i l e > > n e w _ r e s e r v e _ g r a d i e n t _ h i s t o r y ;
02200
02201
02202
02203 f i l e > > w o r d ;
02204
02205
02206
02207 i f ( w o r d ! = " < / R e s e r v e G r a d i e n t H i s t o r y > " )
02208
02209 {
02210
02211 s t d : : c e r r < < " F l o o d E r r o r : N e w t o n M e t h o d c l a s s . " < < s t d : : e n d l
02212
02213 < < " v o i d l o a d ( c o n s t c h a r * ) m e t h o d . " < < s t d : : e n d l
02214
02215 < < " U n k n o w n r e s e r v e g r a d i e n t h i s t o r y e n d t a g : " < < w o r d < < s t d : : e n d l ;
02216
02217
02218
02219 e x i t ( 1 ) ;
02220
02221 }
02222
02223
02224
02225 s e t _ r e s e r v e _ g r a d i e n t _ h i s t o r y ( n e w _ r e s e r v e _ g r a d i e n t _ h i s t o r y ) ;
02226
02227 }
02228
02229
02230
02231 e l s e i f ( w o r d = = " < R e s e r v e G r a d i e n t N o r m H i s t o r y > " )
02232
02233 {
02234
02235 b o o l n e w _ r e s e r v e _ g r a d i e n t _ n o r m _ h i s t o r y ;
02236
02237
02238
02239 f i l e > > n e w _ r e s e r v e _ g r a d i e n t _ n o r m _ h i s t o r y ;
02240
02241
02242
02243 f i l e > > w o r d ;
02244
02245
02246
02247 i f ( w o r d ! = " < / R e s e r v e G r a d i e n t N o r m H i s t o r y > " )
02248
02249 {
02250
02251 s t d : : c e r r < < " F l o o d E r r o r : N e w t o n M e t h o d c l a s s . " < < s t d : : e n d l
02252
02253 < < " v o i d l o a d ( c o n s t c h a r * ) m e t h o d . " < < s t d : : e n d l
02254
02255 < < " U n k n o w n r e s e r v e g r a d i e n t n o r m h i s t o r y e n d t a g : " < < w o r d < < s t d : : e n d l ;
02256
02257
02258
02259 e x i t ( 1 ) ;
02260
02261 }
02262
02263
02264
02265 s e t _ r e s e r v e _ g r a d i e n t _ n o r m _ h i s t o r y ( n e w _ r e s e r v e _ g r a d i e n t _ n o r m _ h i s t o r y ) ;
02266
02267 }
02268
02269
02270
02271 e l s e i f ( w o r d = = " < R e s e r v e I n v e r s e H e s s i a n H i s t o r y > " )
02272
02273 {
02274
02275 b o o l n e w _ r e s e r v e _ i n v e r s e _ H e s s i a n _ h i s t o r y ;
02276
02277
02278
02279 f i l e > > n e w _ r e s e r v e _ i n v e r s e _ H e s s i a n _ h i s t o r y ;
02280
02281
02282
02283 f i l e > > w o r d ;
02284
02285
02286
02287 i f ( w o r d ! = " < / R e s e r v e I n v e r s e H e s s i a n H i s t o r y > " )
02288
02289 {
02290
02291 s t d : : c e r r < < " F l o o d E r r o r : N e w t o n M e t h o d c l a s s . " < < s t d : : e n d l
02292
02293 < < " v o i d l o a d ( c o n s t c h a r * ) m e t h o d . " < < s t d : : e n d l
02294
02295 < < " U n k n o w n r e s e r v e i n v e r s e H e s s i a n h i s t o r y e n d t a g : " < < w o r d < < s t d : : e n d l ;
02296
02297
02298
02299 e x i t ( 1 ) ;
02300
02301 }
02302
02303
02304
02305 s e t _ r e s e r v e _ i n v e r s e _ H e s s i a n _ h i s t o r y ( n e w _ r e s e r v e _ i n v e r s e _ H e s s i a n _ h i s t o r y ) ;
02306
02307 }
02308
02309
02310
02311 e l s e i f ( w o r d = = " < R e s e r v e T r a i n i n g D i r e c t i o n H i s t o r y > " )
02312
02313 {
02314
02315 b o o l n e w _ r e s e r v e _ t r a i n i n g _ d i r e c t i o n _ h i s t o r y ;
02316
02317
02318
02319 f i l e > > n e w _ r e s e r v e _ t r a i n i n g _ d i r e c t i o n _ h i s t o r y ;
02320
02321
02322
02323 f i l e > > w o r d ;
02324
02325
02326
02327 i f ( w o r d ! = " < / R e s e r v e T r a i n i n g D i r e c t i o n H i s t o r y > " )
02328
02329 {
02330
02331 s t d : : c e r r < < " F l o o d E r r o r : N e w t o n M e t h o d c l a s s . " < < s t d : : e n d l
02332
02333 < < " v o i d l o a d ( c o n s t c h a r * ) m e t h o d . " < < s t d : : e n d l
02334
02335 < < " U n k n o w n r e s e r v e t r a i n i n g d i r e c t i o n h i s t o r y e n d t a g : " < < w o r d < < s t d : : e n d l ;
02336
02337
02338
02339 e x i t ( 1 ) ;
02340
02341 }
02342
02343
02344
02345 s e t _ r e s e r v e _ t r a i n i n g _ d i r e c t i o n _ h i s t o r y ( n e w _ r e s e r v e _ t r a i n i n g _ d i r e c t i o n _ h i s t o r y ) ;
02346
02347 }
02348
02349
02350
02351 e l s e i f ( w o r d = = " < R e s e r v e T r a i n i n g R a t e H i s t o r y > " )
02352
02353 {
02354
02355 b o o l n e w _ r e s e r v e _ t r a i n i n g _ r a t e _ h i s t o r y ;
02356
02357
02358
02359 f i l e > > n e w _ r e s e r v e _ t r a i n i n g _ r a t e _ h i s t o r y ;
02360
02361
02362
02363 f i l e > > w o r d ;
02364
02365
02366
02367 i f ( w o r d ! = " < / R e s e r v e T r a i n i n g R a t e H i s t o r y > " )
02368
02369 {
02370
02371 s t d : : c e r r < < " F l o o d E r r o r : N e w t o n M e t h o d c l a s s . " < < s t d : : e n d l
02372
02373 < < " v o i d l o a d ( c o n s t c h a r * ) m e t h o d . " < < s t d : : e n d l
02374
02375 < < " U n k n o w n r e s e r v e t r a i n i n g r a t e h i s t o r y e n d t a g : " < < w o r d < < s t d : : e n d l ;
02376
02377
02378
02379 e x i t ( 1 ) ;
02380
02381 }
02382
02383
02384
02385 s e t _ r e s e r v e _ t r a i n i n g _ r a t e _ h i s t o r y ( n e w _ r e s e r v e _ t r a i n i n g _ r a t e _ h i s t o r y ) ;
02386
02387 }
02388
02389
02390
02391 e l s e i f ( w o r d = = " < R e s e r v e E l a p s e d T i m e H i s t o r y > " )
02392
02393 {
02394
02395 b o o l n e w _ r e s e r v e _ e l a p s e d _ t i m e _ h i s t o r y ;
02396
02397
02398
02399 f i l e > > n e w _ r e s e r v e _ e l a p s e d _ t i m e _ h i s t o r y ;
02400
02401
02402
02403 f i l e > > w o r d ;
02404
02405
02406
02407 i f ( w o r d ! = " < / R e s e r v e E l a p s e d T i m e H i s t o r y > " )
02408
02409 {
02410
02411 s t d : : c e r r < < " F l o o d E r r o r : N e w t o n M e t h o d c l a s s . " < < s t d : : e n d l
02412
02413 < < " v o i d l o a d ( c o n s t c h a r * ) m e t h o d . " < < s t d : : e n d l
02414
02415 < < " U n k n o w n r e s e r v e e l a p s e d t i m e h i s t o r y e n d t a g : " < < w o r d < < s t d : : e n d l ;
02416
02417
02418
02419 e x i t ( 1 ) ;
02420
02421 }
02422
02423
02424
02425 s e t _ r e s e r v e _ e l a p s e d _ t i m e _ h i s t o r y ( n e w _ r e s e r v e _ e l a p s e d _ t i m e _ h i s t o r y ) ;
02426
02427 }
02428
02429
02430
02431 e l s e i f ( w o r d = = " < D i s p l a y > " )
02432
02433 {
02434
02435 b o o l n e w _ d i s p l a y ;
02436
02437
02438
02439 f i l e > > n e w _ d i s p l a y ;
02440
02441
02442
02443 f i l e > > w o r d ;
02444
02445
02446
02447 i f ( w o r d ! = " < / D i s p l a y > " )
02448
02449 {
02450
02451 s t d : : c e r r < < " F l o o d E r r o r : N e w t o n M e t h o d c l a s s . " < < s t d : : e n d l
02452
02453 < < " v o i d l o a d ( c o n s t c h a r * ) m e t h o d . " < < s t d : : e n d l
02454
02455 < < " U n k n o w n d i s p l a y e n d t a g : " < < w o r d < < s t d : : e n d l ;
02456
02457
02458
02459 e x i t ( 1 ) ;
02460
02461 }
02462
02463
02464
02465 s e t _ d i s p l a y ( n e w _ d i s p l a y ) ;
02466
02467 }
02468
02469
02470
02471 / / U s e r s t u f f
02472
02473
02474
02475 e l s e i f ( w o r d = = " < D i s p l a y P e r i o d > " )
02476
02477 {
02478
02479 i n t n e w _ d i s p l a y _ p e r i o d ;
02480
02481
02482
02483 f i l e > > n e w _ d i s p l a y _ p e r i o d ;
02484
02485
02486
02487 f i l e > > w o r d ;
02488
02489
02490
02491 i f ( w o r d ! = " < / D i s p l a y P e r i o d > " )
02492
02493 {
02494
02495 s t d : : c e r r < < " F l o o d E r r o r : N e w t o n M e t h o d c l a s s . " < < s t d : : e n d l
02496
02497 < < " v o i d l o a d ( c o n s t c h a r * ) m e t h o d . " < < s t d : : e n d l
02498
02499 < < " U n k n o w n d i s p l a y p e r i o d e n d t a g : " < < w o r d < < s t d : : e n d l ;
02500
02501
02502
02503 e x i t ( 1 ) ;
02504
02505 }
02506
02507
02508
02509 s e t _ d i s p l a y _ p e r i o d ( n e w _ d i s p l a y _ p e r i o d ) ;
02510
02511 }
02512
02513
02514
02515 }
02516
02517
02518
02519 f i l e . c l o s e ( ) ;
02520
02521 }
02522
02523
02524
02525
02526
02527 / / v o i d r e s i z e _ t r a i n i n g _ h i s t o r y ( i n t ) m e t h o d
02528
02529
02530
02531 / / / T h i s m e t h o d r e s i z e s t h e v e c t o r s o r m a t r i c e s c o n t a i n i n g t r a i n i n g h i s t o r y i n f o r m a t i o n
02532
02533 / / / t o a n e w s i z e :
02534
02535 / / /
02536
02537 / / / < u l >
02538
02539 / / / < l i > E l a p s e d t i m e h i s t o r y v e c t o r .
02540
02541 / / / < l i > F r e e p a r a m e t e r s h i s t o r y m a t r i x .
02542
02543 / / / < l i > F r e e p a r a m e t e r s n o r m h i s t o r y v e c t o r .
02544
02545 / / / < l i > E v a l u a t i o n h i s t o r y v e c t o r .
02546
02547 / / / < l i > G r a d i e n t h i s t o r y m a t r i x .
02548
02549 / / / < l i > G r a d i e n t n o r m h i s t o r y v e c t o r .
02550
02551 / / / < l i > T r a i n i n g d i r e c t i o n h i s t o r y m a t r i x .
02552
02553 / / / < l i > T r a i n i n g d i r e c t i o n n o r m h i s t o r y v e c t o r
02554
02555 / / / < l i > T r a i n i n g r a t e h i s t o r y v e c t o r .
02556
02557 / / / < / u l >
02558
02559 / / /
02560
02561 / / / @ p a r a m n e w _ s i z e S i z e o f t r a i n i n g h i s t o r y .
02562
02563
02564
02565 v o i d N e w t o n M e t h o d : : r e s i z e _ t r a i n i n g _ h i s t o r y ( i n t n e w _ s i z e )
02566
02567 {
02568
02569 / / M u l t i l a y e r p e r c e p t r o n
02570
02571
02572
02573 i f ( r e s e r v e _ p a r a m e t e r s _ h i s t o r y )
02574
02575 {
02576
02577 p a r a m e t e r s _ h i s t o r y . r e s i z e ( n e w _ s i z e ) ;
02578
02579 }
02580
02581
02582
02583 i f ( r e s e r v e _ p a r a m e t e r s _ n o r m _ h i s t o r y )
02584
02585 {
02586
02587 p a r a m e t e r s _ n o r m _ h i s t o r y . r e s i z e ( n e w _ s i z e ) ;
02588
02589 }
02590
02591
02592
02593 / / O b j e c t i v e f u n c t i o n a l
02594
02595
02596
02597 i f ( r e s e r v e _ e v a l u a t i o n _ h i s t o r y )
02598
02599 {
02600
02601 e v a l u a t i o n _ h i s t o r y . r e s i z e ( n e w _ s i z e ) ;
02602
02603 }
02604
02605
02606
02607 i f ( r e s e r v e _ g r a d i e n t _ h i s t o r y )
02608
02609 {
02610
02611 g r a d i e n t _ h i s t o r y . r e s i z e ( n e w _ s i z e ) ;
02612
02613 }
02614
02615
02616
02617 i f ( r e s e r v e _ g r a d i e n t _ n o r m _ h i s t o r y )
02618
02619 {
02620
02621 g r a d i e n t _ n o r m _ h i s t o r y . r e s i z e ( n e w _ s i z e ) ;
02622
02623 }
02624
02625
02626
02627 i f ( r e s e r v e _ i n v e r s e _ H e s s i a n _ h i s t o r y )
02628
02629 {
02630
02631 i n v e r s e _ H e s s i a n _ h i s t o r y . r e s i z e ( n e w _ s i z e ) ;
02632
02633 }
02634
02635
02636
02637 i f ( r e s e r v e _ v a l i d a t i o n _ e r r o r _ h i s t o r y )
02638
02639 {
02640
02641 v a l i d a t i o n _ e r r o r _ h i s t o r y . r e s i z e ( n e w _ s i z e ) ;
02642
02643 }
02644
02645
02646
02647 / / T r a i n i n g a l g o r i t h m
02648
02649
02650
02651 i f ( r e s e r v e _ t r a i n i n g _ d i r e c t i o n _ h i s t o r y )
02652
02653 {
02654
02655 t r a i n i n g _ d i r e c t i o n _ h i s t o r y . r e s i z e ( n e w _ s i z e ) ;
02656
02657 }
02658
02659
02660
02661 i f ( r e s e r v e _ t r a i n i n g _ r a t e _ h i s t o r y )
02662
02663 {
02664
02665 t r a i n i n g _ r a t e _ h i s t o r y . r e s i z e ( n e w _ s i z e ) ;
02666
02667 }
02668
02669
02670
02671 i f ( r e s e r v e _ e l a p s e d _ t i m e _ h i s t o r y )
02672
02673 {
02674
02675 e l a p s e d _ t i m e _ h i s t o r y . r e s i z e ( n e w _ s i z e ) ;
02676
02677 }
02678
02679 }
02680
02681
02682
02683
02684
02685 / / v o i d s e t _ r e s e r v e _ a l l _ t r a i n i n g _ h i s t o r y ( b o o l ) m e t h o d
02686
02687
02688
02689 v o i d N e w t o n M e t h o d : : s e t _ r e s e r v e _ a l l _ t r a i n i n g _ h i s t o r y ( b o o l n e w _ r e s e r v e _ a l l _ t r a i n i n g _ h i s t o r y )
02690
02691 {
02692
02693 r e s e r v e _ p a r a m e t e r s _ h i s t o r y = n e w _ r e s e r v e _ a l l _ t r a i n i n g _ h i s t o r y ;
02694
02695 r e s e r v e _ p a r a m e t e r s _ n o r m _ h i s t o r y = n e w _ r e s e r v e _ a l l _ t r a i n i n g _ h i s t o r y ;
02696
02697
02698
02699 r e s e r v e _ e v a l u a t i o n _ h i s t o r y = n e w _ r e s e r v e _ a l l _ t r a i n i n g _ h i s t o r y ;
02700
02701 r e s e r v e _ g r a d i e n t _ h i s t o r y = n e w _ r e s e r v e _ a l l _ t r a i n i n g _ h i s t o r y ;
02702
02703 r e s e r v e _ g r a d i e n t _ n o r m _ h i s t o r y = n e w _ r e s e r v e _ a l l _ t r a i n i n g _ h i s t o r y ;
02704
02705 r e s e r v e _ i n v e r s e _ H e s s i a n _ h i s t o r y = n e w _ r e s e r v e _ a l l _ t r a i n i n g _ h i s t o r y ;
02706
02707
02708
02709 r e s e r v e _ t r a i n i n g _ d i r e c t i o n _ h i s t o r y = n e w _ r e s e r v e _ a l l _ t r a i n i n g _ h i s t o r y ;
02710
02711 r e s e r v e _ t r a i n i n g _ r a t e _ h i s t o r y = n e w _ r e s e r v e _ a l l _ t r a i n i n g _ h i s t o r y ;
02712
02713 r e s e r v e _ e l a p s e d _ t i m e _ h i s t o r y = n e w _ r e s e r v e _ a l l _ t r a i n i n g _ h i s t o r y ;
02714
02715
02716
02717 r e s e r v e _ v a l i d a t i o n _ e r r o r _ h i s t o r y = n e w _ r e s e r v e _ a l l _ t r a i n i n g _ h i s t o r y ;
02718
02719 }
02720
02721
02722
02723
02724
02725 / / s t d : : s t r i n g g e t _ t r a i n i n g _ h i s t o r y _ X M L ( b o o l ) m e t h o d
02726
02727
02728
02729 s t d : : s t r i n g N e w t o n M e t h o d : : g e t _ t r a i n i n g _ h i s t o r y _ X M L ( b o o l s h o w _ d e c l a r a t i o n )
02730
02731 {
02732
02733 s t d : : s t r i n g s t r e a m b u f f e r ;
02734
02735 / / D e c l a r a t i o n
02736
02737
02738
02739 i f ( s h o w _ d e c l a r a t i o n )
02740
02741 {
02742
02743 b u f f e r < < " < F l o o d v e r s i o n = ' 3 . 0 ' c l a s s = ' N e w t o n M e t h o d ' c o n t e n t = ' T r a i n i n g H i s t o r y ' > " < < s t d : : e n d l ;
02744
02745 }
02746
02747
02748
02749 / / M u l t i l a y e r p e r c e p t r o n
02750
02751
02752
02753 i f ( r e s e r v e _ p a r a m e t e r s _ h i s t o r y )
02754
02755 {
02756
02757 b u f f e r < < " < P a r a m e t e r s H i s t o r y > " < < s t d : : e n d l ;
02758
02759
02760
02761 f o r ( i n t i = 0 ; i < p a r a m e t e r s _ h i s t o r y . g e t _ s i z e ( ) ; i + + )
02762
02763 {
02764
02765 b u f f e r < < p a r a m e t e r s _ h i s t o r y [ i ] < < s t d : : e n d l ;
02766
02767 }
02768
02769
02770
02771 b u f f e r < < " < / P a r a m e t e r s H i s t o r y > " < < s t d : : e n d l ;
02772
02773 }
02774
02775
02776
02777 i f ( r e s e r v e _ p a r a m e t e r s _ n o r m _ h i s t o r y )
02778
02779 {
02780
02781 b u f f e r < < " < P a r a m e t e r s N o r m H i s t o r y > " < < s t d : : e n d l
02782
02783 < < p a r a m e t e r s _ n o r m _ h i s t o r y < < s t d : : e n d l
02784
02785 < < " < / P a r a m e t e r s N o r m H i s t o r y > " < < s t d : : e n d l ;
02786
02787 }
02788
02789
02790
02791 / / O b j e c t i v e f u n c t i o n a l
02792
02793
02794
02795 i f ( r e s e r v e _ e v a l u a t i o n _ h i s t o r y )
02796
02797 {
02798
02799 b u f f e r < < " < E v a l u a t i o n H i s t o r y > " < < s t d : : e n d l
02800
02801 < < e v a l u a t i o n _ h i s t o r y < < s t d : : e n d l
02802
02803 < < " < / E v a l u a t i o n H i s t o r y > " < < s t d : : e n d l ;
02804
02805 }
02806
02807
02808
02809 i f ( r e s e r v e _ g r a d i e n t _ h i s t o r y )
02810
02811 {
02812
02813 b u f f e r < < " < G r a d i e n t H i s t o r y > " < < s t d : : e n d l ;
02814
02815
02816
02817 f o r ( i n t i = 0 ; i < g r a d i e n t _ h i s t o r y . g e t _ s i z e ( ) ; i + + )
02818
02819 {
02820
02821 b u f f e r < < g r a d i e n t _ h i s t o r y [ i ] < < s t d : : e n d l ;
02822
02823 }
02824
02825
02826
02827 b u f f e r < < " < / G r a d i e n t H i s t o r y > " < < s t d : : e n d l ;
02828
02829 }
02830
02831
02832
02833 i f ( r e s e r v e _ i n v e r s e _ H e s s i a n _ h i s t o r y )
02834
02835 {
02836
02837 b u f f e r < < " < I n v e r s e H e s s i a n H i s t o r y > " < < s t d : : e n d l ;
02838
02839
02840
02841 f o r ( i n t i = 0 ; i < i n v e r s e _ H e s s i a n _ h i s t o r y . g e t _ s i z e ( ) ; i + + )
02842
02843 {
02844
02845 b u f f e r < < " < I n v e r s e H e s s i a n > " < < s t d : : e n d l ;
02846
02847 b u f f e r < < i n v e r s e _ H e s s i a n _ h i s t o r y [ i ] ;
02848
02849 b u f f e r < < " < / I n v e r s e H e s s i a n > " < < s t d : : e n d l ;
02850
02851 }
02852
02853
02854
02855 b u f f e r < < " < / I n v e r s e H e s s i a n H i s t o r y > " < < s t d : : e n d l ;
02856
02857 }
02858
02859
02860
02861
02862
02863 i f ( r e s e r v e _ g r a d i e n t _ n o r m _ h i s t o r y )
02864
02865 {
02866
02867 b u f f e r < < " < G r a d i e n t N o r m H i s t o r y > " < < s t d : : e n d l
02868
02869 < < g r a d i e n t _ n o r m _ h i s t o r y < < s t d : : e n d l
02870
02871 < < " < / G r a d i e n t N o r m H i s t o r y > " < < s t d : : e n d l ;
02872
02873 }
02874
02875
02876
02877 i f ( r e s e r v e _ v a l i d a t i o n _ e r r o r _ h i s t o r y )
02878
02879 {
02880
02881 b u f f e r < < " < V a l i d a t i o n E r r o r H i s t o r y > " < < s t d : : e n d l
02882
02883 < < v a l i d a t i o n _ e r r o r _ h i s t o r y < < s t d : : e n d l
02884
02885 < < " < / V a l i d a t i o n E r r o r H i s t o r y > " < < s t d : : e n d l ;
02886
02887 }
02888
02889
02890
02891 / / T r a i n i n g a l g o r i t h m
02892
02893
02894
02895 i f ( r e s e r v e _ t r a i n i n g _ d i r e c t i o n _ h i s t o r y )
02896
02897 {
02898
02899 b u f f e r < < " < T r a i n i n g D i r e c t i o n H i s t o r y > " < < s t d : : e n d l ;
02900
02901 f o r ( i n t i = 0 ; i < t r a i n i n g _ d i r e c t i o n _ h i s t o r y . g e t _ s i z e ( ) ; i + + )
02902
02903 {
02904
02905 b u f f e r < < t r a i n i n g _ d i r e c t i o n _ h i s t o r y [ i ] < < s t d : : e n d l ;
02906
02907 }
02908
02909
02910
02911 b u f f e r < < " < / T r a i n i n g D i r e c t i o n H i s t o r y > " < < s t d : : e n d l ;
02912
02913 }
02914
02915
02916
02917 i f ( r e s e r v e _ t r a i n i n g _ r a t e _ h i s t o r y )
02918
02919 {
02920
02921 b u f f e r < < " < T r a i n i n g R a t e H i s t o r y > " < < s t d : : e n d l
02922
02923 < < t r a i n i n g _ r a t e _ h i s t o r y < < s t d : : e n d l
02924
02925 < < " < / T r a i n i n g R a t e H i s t o r y > " < < s t d : : e n d l ;
02926
02927 }
02928
02929
02930
02931 i f ( r e s e r v e _ e l a p s e d _ t i m e _ h i s t o r y )
02932
02933 {
02934
02935 b u f f e r < < " < E l a p s e d T i m e H i s t o r y > " < < s t d : : e n d l
02936
02937 < < e l a p s e d _ t i m e _ h i s t o r y < < s t d : : e n d l
02938
02939 < < " < / E l a p s e d T i m e H i s t o r y > " < < s t d : : e n d l ;
02940
02941 }
02942
02943
02944
02945 r e t u r n ( b u f f e r . s t r ( ) ) ;
02946
02947 }
02948
02949
02950
02951 }
02952
02953
02954
02955
02956
02957 / / F l o o d : A n O p e n S o u r c e N e u r a l N e t w o r k s C + + L i b r a r y .
02958
02959 / / C o p y r i g h t ( C ) 2 0 0 5 - 2 0 1 0 R o b e r t o L o p e z
02960
02961 / /
02962
02963 / / T h i s l i b r a r y i s f r e e s o f t w a r e ; y o u c a n r e d i s t r i b u t e i t a n d / o r
02964
02965 / / m o d i f y i t u n d e r t h e s o f t h e G N U L e s s e r G e n e r a l P u b l i c
02966
02967 / / L i c e n s e a s p u b l i s h e d b y t h e F r e e S o f t w a r e F o u n d a t i o n ; e i t h e r
02968
02969 / / v e r s i o n 2 . 1 o f t h e L i c e n s e , o r a n y l a t e r v e r s i o n .
02970
02971 / /
02972
02973 / / T h i s l i b r a r y i s d i s t r i b u t e d i n t h e h o p e t h a t i t w i l l b e u s e f u l ,
02974
02975 / / b u t W I T H O U T A N Y W A R R A N T Y ; w i t h o u t e v e n t h e i m p l i e d w a r r a n t y o f
02976
02977 / / M E R C H A N T A B I L I T Y o r F I T N E S S F O R A P A R T I C U L A R P U R P O S E . S e e t h e G N U
02978
02979 / / L e s s e r G e n e r a l P u b l i c L i c e n s e f o r m o r e d e t a i l s .
02980
02981
02982
02983 / / Y o u s h o u l d h a v e r e c e i v e d a c o p y o f t h e G N U L e s s e r G e n e r a l P u b l i c
02984
02985 / / L i c e n s e a l o n g w i t h t h i s l i b r a r y ; i f n o t , w r i t e t o t h e F r e e S o f t w a r e
02986
02987 / / F o u n d a t i o n , I n c . , 5 1 F r a n k l i n S t , F i f t h F l o o r , B o s t o n , M A 0 2 1 1 0 - 1 3 0 1 U S A
02988
02989