@@ -231,7 +231,7 @@ <h3>Arguments</h3>
231
231
< p > array which will hold all roots that had been found.
232
232
If the flag 'use_roots_as_starting_points' is set to
233
233
.true., then instead of point (0,0) we use value from
234
- this array as starting point for cmplx_laguerre</ p >
234
+ this array as starting point for < a > cmplx_laguerre</ a > </ p >
235
235
</ td >
236
236
</ tr >
237
237
< tr >
@@ -298,7 +298,7 @@ <h2><span class="anchor" id="src"></span>Source Code</h2>
298
298
< span class ="w "> </ span > < span class ="kt "> complex</ span > < span class ="p "> (</ span > < span class ="n "> wp</ span > < span class ="p "> ),</ span > < span class ="w "> </ span > < span class ="k "> dimension</ span > < span class ="p "> (</ span > < span class ="n "> degree</ span > < span class ="p "> ),</ span > < span class ="w "> </ span > < span class ="k "> intent</ span > < span class ="p "> (</ span > < span class ="n "> inout</ span > < span class ="p "> )</ span > < span class ="w "> </ span > < span class ="kd "> ::</ span > < span class ="w "> </ span > < span class ="n "> roots</ span > < span class ="w "> </ span > < span class ="c "> !! array which will hold all roots that had been found.</ span >
299
299
< span class ="w "> </ span > < span class ="c "> !! If the flag 'use_roots_as_starting_points' is set to</ span >
300
300
< span class ="w "> </ span > < span class ="c "> !! .true., then instead of point (0,0) we use value from</ span >
301
- < span class ="w "> </ span > < span class ="c "> !! this array as starting point for cmplx_laguerre</ span >
301
+ < span class ="w "> </ span > < span class ="c "> !! this array as starting point for [[ cmplx_laguerre]] </ span >
302
302
< span class ="w "> </ span > < span class ="kt "> logical</ span > < span class ="p "> ,</ span > < span class ="w "> </ span > < span class ="k "> intent</ span > < span class ="p "> (</ span > < span class ="n "> in</ span > < span class ="p "> ),</ span > < span class ="w "> </ span > < span class ="k "> optional</ span > < span class ="w "> </ span > < span class ="kd "> ::</ span > < span class ="w "> </ span > < span class ="n "> polish_roots_after</ span > < span class ="w "> </ span > < span class ="c "> !! after all roots have been found by dividing</ span >
303
303
< span class ="w "> </ span > < span class ="c "> !! original polynomial by each root found,</ span >
304
304
< span class ="w "> </ span > < span class ="c "> !! you can opt in to polish all roots using full</ span >
@@ -391,12 +391,12 @@ <h2><span class="anchor" id="src"></span>Source Code</h2>
391
391
392
392
< span class ="k "> recursive subroutine </ span > < span class ="n "> cmplx_laguerre</ span > < span class ="p "> (</ span > < span class ="n "> poly</ span > < span class ="p "> ,</ span > < span class ="w "> </ span > < span class ="n "> degree</ span > < span class ="p "> ,</ span > < span class ="w "> </ span > < span class ="n "> root</ span > < span class ="p "> ,</ span > < span class ="w "> </ span > < span class ="n "> iter</ span > < span class ="p "> ,</ span > < span class ="w "> </ span > < span class ="n "> success</ span > < span class ="p "> )</ span >
393
393
394
- < span class ="w "> </ span > < span class ="c "> ! Subroutine finds one root of a complex polynomial using</ span >
395
- < span class ="w "> </ span > < span class ="c "> ! Laguerre's method. In every loop it calculates simplified</ span >
396
- < span class ="w "> </ span > < span class ="c "> ! Adams' stopping criterion for the value of the polynomial.</ span >
397
- < span class ="w "> </ span > < span class ="c "> !</ span >
398
- < span class ="w "> </ span > < span class ="c "> ! For a summary of the method go to:</ span >
399
- < span class ="w "> </ span > < span class ="c "> ! http://en.wikipedia.org/wiki/Laguerre's_method</ span >
394
+ < span class ="w "> </ span > < span class ="c "> !! Subroutine finds one root of a complex polynomial using</ span >
395
+ < span class ="w "> </ span > < span class ="c "> !! Laguerre's method. In every loop it calculates simplified</ span >
396
+ < span class ="w "> </ span > < span class ="c "> !! Adams' stopping criterion for the value of the polynomial.</ span >
397
+ < span class ="w "> </ span > < span class ="c "> !! </ span >
398
+ < span class ="w "> </ span > < span class ="c "> !! For a summary of the method go to:</ span >
399
+ < span class ="w "> </ span > < span class ="c "> !! http://en.wikipedia.org/wiki/Laguerre's_method</ span >
400
400
401
401
< span class ="w "> </ span > < span class ="k "> implicit none</ span >
402
402
@@ -580,26 +580,26 @@ <h2><span class="anchor" id="src"></span>Source Code</h2>
580
580
581
581
< span class ="w "> </ span > < span class ="k "> recursive subroutine </ span > < span class ="n "> cmplx_laguerre2newton</ span > < span class ="p "> (</ span > < span class ="n "> poly</ span > < span class ="p "> ,</ span > < span class ="w "> </ span > < span class ="n "> degree</ span > < span class ="p "> ,</ span > < span class ="w "> </ span > < span class ="n "> root</ span > < span class ="p "> ,</ span > < span class ="w "> </ span > < span class ="n "> iter</ span > < span class ="p "> ,</ span > < span class ="w "> </ span > < span class ="n "> success</ span > < span class ="p "> ,</ span > < span class ="w "> </ span > < span class ="n "> starting_mode</ span > < span class ="p "> )</ span >
582
582
583
- < span class ="w "> </ span > < span class ="c "> ! Subroutine finds one root of a complex polynomial using</ span >
584
- < span class ="w "> </ span > < span class ="c "> ! Laguerre's method, Second-order General method and Newton's</ span >
585
- < span class ="w "> </ span > < span class ="c "> ! method - depending on the value of function F, which is a</ span >
586
- < span class ="w "> </ span > < span class ="c "> ! combination of second derivative, first derivative and</ span >
587
- < span class ="w "> </ span > < span class ="c "> ! value of polynomial [F=-(p"*p)/(p'p')].</ span >
588
- < span class ="w "> </ span > < span class ="c "> !</ span >
589
- < span class ="w "> </ span > < span class ="c "> ! Subroutine has 3 modes of operation. It starts with mode=2</ span >
590
- < span class ="w "> </ span > < span class ="c "> ! which is the Laguerre's method, and continues until F</ span >
591
- < span class ="w "> </ span > < span class ="c "> ! becames F<0.50, at which point, it switches to mode=1,</ span >
592
- < span class ="w "> </ span > < span class ="c "> ! i.e., SG method (see paper). While in the first two</ span >
593
- < span class ="w "> </ span > < span class ="c "> ! modes, routine calculates stopping criterion once per every</ span >
594
- < span class ="w "> </ span > < span class ="c "> ! iteration. Switch to the last mode, Newton's method, (mode=0)</ span >
595
- < span class ="w "> </ span > < span class ="c "> ! happens when becomes F<0.05. In this mode, routine calculates</ span >
596
- < span class ="w "> </ span > < span class ="c "> ! stopping criterion only once, at the beginning, under an</ span >
597
- < span class ="w "> </ span > < span class ="c "> ! assumption that we are already very close to the root.</ span >
598
- < span class ="w "> </ span > < span class ="c "> ! If there are more than 10 iterations in Newton's mode,</ span >
599
- < span class ="w "> </ span > < span class ="c "> ! it means that in fact we were far from the root, and</ span >
600
- < span class ="w "> </ span > < span class ="c "> ! routine goes back to Laguerre's method (mode=2).</ span >
601
- < span class ="w "> </ span > < span class ="c "> !</ span >
602
- < span class ="w "> </ span > < span class ="c "> ! For a summary of the method see the paper: Skowron & Gould (2012)</ span >
583
+ < span class ="w "> </ span > < span class ="c "> !! Subroutine finds one root of a complex polynomial using</ span >
584
+ < span class ="w "> </ span > < span class ="c "> !! Laguerre's method, Second-order General method and Newton's</ span >
585
+ < span class ="w "> </ span > < span class ="c "> !! method - depending on the value of function F, which is a</ span >
586
+ < span class ="w "> </ span > < span class ="c "> !! combination of second derivative, first derivative and</ span >
587
+ < span class ="w "> </ span > < span class ="c "> !! value of polynomial [F=-(p"*p)/(p'p')].</ span >
588
+ < span class ="w "> </ span > < span class ="c "> !! </ span >
589
+ < span class ="w "> </ span > < span class ="c "> !! Subroutine has 3 modes of operation. It starts with mode=2</ span >
590
+ < span class ="w "> </ span > < span class ="c "> !! which is the Laguerre's method, and continues until F</ span >
591
+ < span class ="w "> </ span > < span class ="c "> !! becames F<0.50, at which point, it switches to mode=1,</ span >
592
+ < span class ="w "> </ span > < span class ="c "> !! i.e., SG method (see paper). While in the first two</ span >
593
+ < span class ="w "> </ span > < span class ="c "> !! modes, routine calculates stopping criterion once per every</ span >
594
+ < span class ="w "> </ span > < span class ="c "> !! iteration. Switch to the last mode, Newton's method, (mode=0)</ span >
595
+ < span class ="w "> </ span > < span class ="c "> !! happens when becomes F<0.05. In this mode, routine calculates</ span >
596
+ < span class ="w "> </ span > < span class ="c "> !! stopping criterion only once, at the beginning, under an</ span >
597
+ < span class ="w "> </ span > < span class ="c "> !! assumption that we are already very close to the root.</ span >
598
+ < span class ="w "> </ span > < span class ="c "> !! If there are more than 10 iterations in Newton's mode,</ span >
599
+ < span class ="w "> </ span > < span class ="c "> !! it means that in fact we were far from the root, and</ span >
600
+ < span class ="w "> </ span > < span class ="c "> !! routine goes back to Laguerre's method (mode=2).</ span >
601
+ < span class ="w "> </ span > < span class ="c "> !! </ span >
602
+ < span class ="w "> </ span > < span class ="c "> !! For a summary of the method see the paper: Skowron & Gould (2012)</ span >
603
603
604
604
< span class ="w "> </ span > < span class ="k "> implicit none</ span >
605
605
0 commit comments