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