def step()

in lib/optim/omd.py [0:0]


    def step(self, closure=None):
        loss = None
        if closure is not None:
            loss = closure()

        for group in self.param_groups:
            for p in group['params']:
                if p.grad is None:
                    continue

                d_p = p.grad.data

                state = self.state[p]

                # State initialization
                if len(state) == 0:
                    state['previous_update'] = torch.zeros_like(d_p)

                p.data.add_(-2*group['lr'], d_p).add_(group['lr']*state['previous_update'])

                state['previous_update'] = d_p

        return loss