public void solve() {
	Class<Double> type = Double.class;
	try {
	    if (A != null) {
		int size = A.getSize();
		createRandomVector(size);
		ArrayList<ArrayList<Double>> vAsRowMatrix = VectorBuildUtils.getRowMatrixFromArrayVector(v, type);
		ArrayList<ArrayList<Double>> vAsColMatrix = MatrixBuildUtils.getTranspose(vAsRowMatrix, type);
		ArrayList<ArrayList<Double>> w = MatrixOpUtils.mulSparseMatrixWithArrayMatrix(A, vAsColMatrix, type);
		ArrayList<ArrayList<Double>> wAsRow = MatrixBuildUtils.getTranspose(w, type);
		
		Double lambda = MatrixOpUtils.mul(w, vAsRowMatrix, type).get(0).get(0);
		int k = 0;
		
		boolean cond1, cond2;
		Double testNorm = 0.0;
		do {
		    Double norm = VectorOpUtils.getEuclidianNorm(MatrixBuildUtils.getTranspose(w, type).get(0), type);
		    vAsColMatrix = MatrixOpUtils.mulScalarWithMatrix(1.0 / norm, w, type);
		    
		    w = MatrixOpUtils.mulSparseMatrixWithArrayMatrix(A, vAsColMatrix, type);
		    wAsRow = MatrixBuildUtils.getTranspose(w, type);
		    
		    lambda = MatrixOpUtils.mul(wAsRow, vAsColMatrix, type).get(0).get(0);
		    k++;
		    
		    ArrayList<ArrayList<Double>> lambdaMulV = MatrixOpUtils.mulScalarWithMatrix(lambda, vAsColMatrix, type);
		    ArrayList<ArrayList<Double>> wSubsLambdaMulV = MatrixOpUtils.sub(w, lambdaMulV, type);
		    ArrayList<Double> substracted = MatrixBuildUtils.getTranspose(wSubsLambdaMulV, type).get(0);
		    testNorm = VectorOpUtils.getEuclidianNorm(substracted, type);
		    
		    cond1 = (testNorm > (size * eps));
		    cond2 = (k <= kMax);
		} while (cond1 && cond2);
		
		if (!cond1) {
		    Logger.getLogger(PowerMethod.class.getSimpleName()).info("eigenvector computed: \n" + vAsColMatrix + "\n" + lambda);
		} else if (!cond2) {
		    Logger.getLogger(PowerMethod.class.getSimpleName()).info(
			    "cannot compute value: \n" + testNorm + "\n" + lambda + "\n" + vAsColMatrix);
		}
	    } else {
		throw new NullPointerException();
	    }
	} catch (NullPointerException e) {
	    Logger.getLogger(PowerMethod.class.getSimpleName()).warning("matrix is null");
	}
    }