Equation Solution
High Performance by Design
 neuLoop   '- - Basic Concept '- - Limitations & Status '- - Do Subroutine '- - Functions |     '- - nlp\$use |     '- - nlp\$done |     '- - nlp\$staysoftcore |     '- - nlp\$loop |     '- - nlp\$syncloop |     '- - nlp\$barrier |     '- - Parallel Locks |     '- - nlp\$getce |     '- - User Times '- - Where To Download '- - Manual Tool!

Function nlp\$loop

SYNTAX

call nlp\$loop_?(sub,start,stop,step,a_1,a_2,...)

where
sub -- the do-subroutine
start -- the initial value of do variable
stop -- the terminating bound of do variable
step -- the increment or the decrement of do variable.
a_1, a_2,... -- remaining arguments to subroutine sub
the symbol ? -- number of arguments

For example, to dispatch the following loop

do i = start, stop, step
call sub(i,a,b)
end do

The arguments, passed to neuLoop, can be illustrated in the following:
``` sub(       i,            a,   b)
|         |             |    |
↓         ↓             ↓    ↓
sub   start,stop,step    a    b
```
In the above, the first row is the subroutine sub with three arguments (i,a,b); the second row is the arguments passed to neuLoop. One point that should be emphasized is the do variable (e.g., i) in subroutine sub should be replaced with values of do variable, e.g., start, stop, step, when passed to nlp\$loop. It can be seen arguments passed to neuLoop includes the subroutine name (e.g., sub), three parameters of do variable (e.g., start, stop, step), and remaining arguments (e.g., a,b), and a total of 6 arguments. Syntax to dispatch the above loop is

call nlp\$loop_6(sub,start,stop,step,a,b)

PURPOSE

This function dispatches a loop to soft cores, and returns immediately. The caller can continue executing the next statement. neuLoop provides the following 52 nlp\$loop functions to dispatch loops:
```      nlp\$loop_4
nlp\$loop_5
... ... ...
nlp\$loop_54
nlp\$loop_55
```
Number of arguments is appended in the subroutine name.