def sketch_solver()

in ridge_sketch.py [0:0]


    def sketch_solver(self, A, b):
        """Solver using a subsample sketching matrix"""
        if self.solver == "direct":
            return self.direct_solver(A.get_matrix(), b)
        elif self.solver == "cg":
            return self.cg_solver(A, b)

        m = A.shape[0]

        # Initialize sketching object
        sketch_class_name = self.solver.title().replace(" ", "") + "Sketch"
        SketchClass = getattr(sketching, sketch_class_name)
        sketch_method = SketchClass(A, b, self.sketch_size)

        # Initialize weights to 0
        w = np.zeros((m, 1))

        # Run the iterations of sketch project method until relative residual norm below tol
        if self.algo_mode == "accel":  # Accelerated option
            w = self.iterations_accel_sketch_proj(b, w, sketch_method, m)
        elif self.algo_mode == "mom":  # Momentum option
            w = self.iterations_mom_sketch_proj(b, w, sketch_method, m)
        elif self.algo_mode == "auto":  # Non-accelerated option, no momentum
            w = self.iterations_sketch_proj(b, w, sketch_method, m)
        else:
            raise ValueError(
                "Unsupported algo_mode. It should be 'auto', 'accel' or 'mom'."
            )

        if self.verbose:
            current_residual = self.residual_norms[-1]
            if self.iterations != (self.max_iter - 1):
                print(
                    f"Tolerance ({self.tol:.2e}) in {self.iterations:d}"
                    f" iterations, relative residual norm = {current_residual:.2e}"
                )
            else:
                print(
                    f"Max iteration ({self.max_iter:d}) reached, "
                    f"relative residual norm = {current_residual:.2e}"
                )
        return w