| 1461 | def get_forward(self,nfwd,name,inames,onames,opts): |
| 1462 | assert(nfwd==1) |
| 1463 | class ForwardFun(Callback): |
| 1464 | # sin(x+3*y) |
| 1465 | |
| 1466 | def __init__(self): |
| 1467 | Callback.__init__(self) |
| 1468 | self.construct(name, {"verbose":True}) |
| 1469 | def get_n_in(self): return 2+1+2 |
| 1470 | def get_n_out(self): return 1 |
| 1471 | |
| 1472 | def eval(self,arg): |
| 1473 | x,y = arg[0],arg[1] |
| 1474 | z = arg[2] |
| 1475 | seeds = arg[3:] |
| 1476 | |
| 1477 | z0 = 3*y |
| 1478 | z1 = x+z0 |
| 1479 | z2 = sin(z1) |
| 1480 | |
| 1481 | ret = [] |
| 1482 | |
| 1483 | for i in range(3,len(arg),2): |
| 1484 | dx = arg[i] |
| 1485 | dy = arg[i+1] |
| 1486 | dz0 = 3*dy |
| 1487 | dz1 = dx+dz0 |
| 1488 | dz2 = cos(z1)*dz1 |
| 1489 | ret.append(dz2) |
| 1490 | |
| 1491 | return ret |
| 1492 | |
| 1493 | self.cb_fwd = ForwardFun() |
| 1494 | return self.cb_fwd |