| Program pkdfet1(, , , ) |
| Input: |
| : data record of scalar quantities; |
| : embedding delay; |
| : minimal embedding dimension; |
| : fixed evolution time; |
| Output: |
| : maximal Lyapunov exponent estimation; |
| : prediction horizon; |
| (1) in parallel do: |
| / A process is treated as MASTER and other processes are treated as slaves. |
| The number of processes is . / |
| (2) begin |
| / Initialization. / |
| (3) Set as the useful size of ; |
| (4) Set as the number of replacement steps; |
| (5) Compute and as local bounds, where ; |
| (6) Build using (2); |
| (7) Call newkdtree(); |
| (8) Compute as the standard deviation of ; |
| (9) Set as the noise scale; |
| (10) Set as an estimation of the useful length scale; |
| (11) Set ; |
| / Computing maximal Lyapunox exponent. / |
| (12) Call frnn(); |
| (13) Compute the local nearest neighbor from ; |
| (14) synchronization Gather all the local nearest neighbor ; |
| (15) if = MASTER then Compute the global nearest neighbor from the candidates; |
| (16) synchronization Broadcast the global nearest neighbor ; |
| (17) for to do |
| (18) if = MASTER then |
| (19) Set as the initial separation; |
| (20) Set as the final separation; |
| (21) Set ; |
| (22) repeat |
| (23) Call frnn(); |
| (24) Compute the local replacement point from ; |
| (25) synchronization Gather all the local replacement point ; |
| (26) if = MASTER then Compute the global replacement point from the candidates; |
| (27) synchronization Broadcast the global replacement point ; |
| (28) until was a minimum; |
| (29) if a replacement point was found then else ; |
| (30) Set ; |
| (31) if = MASTER then Print , ; |
| (32) end |