@@ -0,0 +1,973 @@
+package net.imagej.ops.fopd.solver;%0A%0Aimport net.imagej.ops.fopd.DualVariables;%0Aimport net.imglib2.RandomAccessibleInterval;%0Aimport net.imglib2.type.numeric.RealType;%0A%0A/**%0A * Holds all variables needed by %7B@link Solver%7D.%0A * %0A * @author Tim-Oliver Buchholz, University of Konstanz%0A *%0A * @param %3CT%3E%0A */%0Apublic interface SolverState%3CT extends RealType%3CT%3E%3E %7B%0A%09/**%0A%09 * %0A%09 * @return number of iterations%0A%09 */%0A%09int getNumIterations();%0A%0A%09/**%0A%09 * %0A%09 * @return smoothness weight%0A%09 */%0A%09double getLambda();%0A%0A%09/**%0A%09 * %0A%09 * @return the observed image%0A%09 */%0A%09RandomAccessibleInterval%3CT%3E getImage();%0A%0A%09/**%0A%09 * %0A%09 * @return the regularizer dual variables%0A%09 */%0A%09DualVariables%3CT%3E getRegularizerDV();%0A%0A%09/**%0A%09 * %0A%09 * @return the cost function dual variables%0A%09 */%0A%09DualVariables%3CT%3E getCostFunctionDV();%0A%0A%09/**%0A%09 * %0A%09 * @return an instance of the image type%0A%09 */%0A%09T getType();%0A%0A%09/**%0A%09 * %0A%09 * @return the intermediate result of the solver%0A%09 */%0A%09RandomAccessibleInterval%3CT%3E getIntermediateResult();%0A%7D%0A

Introduce SolverState which holds all variables.