Function: _parforstep_init
Class: gp2c_internal
Help: Initializes parameters for parforstep.
Description:
 (parforstep, gen, ?gen, gen, gen):void    parforstep_init(&$1, $2, $3, $4, $5)

Function: _parforstep_next
Class: gp2c_internal
Help: Next value for parforstep
Description:
 (parforstep):gen    parforstep_next(&$1)

Function: _parforstep_stop
Class: gp2c_internal
Help: Stop function for parforstep.
Description:
 (parforstep):void    parforstep_stop(&$1)

Function: parforstep
Section: programming/parallel
C-Name: parforstep0
Prototype: vV=GDGGJDVDI
Iterator:
 (gen,?gen,gen,?gen,closure,?notype) (parforstep, _parforstep_init, _parforstep_next, _parforstep_stop)
Help: parforstep(i=a,{b},s,expr1,{r},{expr2}):
 evaluates the expression expr1 in parallel for i going from a to b
 in steps of s (can be a positive real number, an intmod for an arithmetic
 progression, or finally a vector of steps). If the formal variables r and expr2 are present, evaluates sequentially expr2, in which r has been replaced by the different results
 obtained for expr1 and i with the corresponding arguments.
Doc: evaluates in parallel the expression \kbd{expr1} in the formal
 argument $i$ running from $a$ to $b$  in steps of $s$
 (can be a positive real number, an intmod for an arithmetic
 progression, or finally a vector of steps, see \kbd{forstep}).
 If $r$ and \kbd{expr2} are present, the expression \kbd{expr2} in the
 formal variables $r$ and $i$ is evaluated with $r$ running through all
 the different results obtained for \kbd{expr1} and $i$ takes the
 corresponding argument.
  \bprog
 ? parforstep(i=3,8,2,2*i,x,print([i,x]))
 [3, 6]
 [5, 10]
 [7, 14]
 ? parforstep(i=3,8,Mod(1,3),2*i,x,print([i,x]))
 [4, 8]
 [7, 14]
 ? parforstep(i=3,10,[1,3],2*i,x,print([i,x]))
 [3, 6]
 [4, 8]
 [7, 14]
 [8, 16]
 @eprog
