diff --git a/nifty4/minimization/quadratic_energy.py b/nifty4/minimization/quadratic_energy.py index 203db0ec37f3a5601f7565ca34daa238ae8d2631..fc3d4191fef8070120fb60de539bb1a08446633f 100644 --- a/nifty4/minimization/quadratic_energy.py +++ b/nifty4/minimization/quadratic_energy.py @@ -31,12 +31,14 @@ class QuadraticEnergy(Energy): self._b = b if _grad is not None: self._grad = _grad - Ax = _grad + self._b + Ax = _grad if b is None else _grad + b else: Ax = self._A(self.position) - self._grad = Ax - self._b + self._grad = Ax if b is None else Ax - b self._grad.lock() - self._value = 0.5*self.position.vdot(Ax) - b.vdot(self.position) + self._value = 0.5*self.position.vdot(Ax) + if b is not None: + self._value -= b.vdot(self.position) def at(self, position): return QuadraticEnergy(position=position, A=self._A, b=self._b)