{"id":16499287,"url":"https://github.com/mschauer/idrssolver.jl","last_synced_at":"2025-06-20T13:36:38.887Z","repository":{"id":56390353,"uuid":"39214220","full_name":"mschauer/IDRsSolver.jl","owner":"mschauer","description":"++ incorporated into https://github.com/JuliaLang/IterativeSolvers.jl ++ Induced Dimension Reduction method IDR(s) for solving general non-symmetric linear equations using a Krylov method, for example ordinary linear equations or Sylvester and Stein equations.","archived":false,"fork":false,"pushed_at":"2020-11-10T17:25:30.000Z","size":18,"stargazers_count":7,"open_issues_count":0,"forks_count":3,"subscribers_count":5,"default_branch":"master","last_synced_at":"2025-01-12T09:21:37.805Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Julia","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/mschauer.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2015-07-16T18:44:29.000Z","updated_at":"2024-11-15T02:00:12.000Z","dependencies_parsed_at":"2022-08-15T17:50:36.903Z","dependency_job_id":null,"html_url":"https://github.com/mschauer/IDRsSolver.jl","commit_stats":null,"previous_names":[],"tags_count":4,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mschauer%2FIDRsSolver.jl","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mschauer%2FIDRsSolver.jl/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mschauer%2FIDRsSolver.jl/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mschauer%2FIDRsSolver.jl/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mschauer","download_url":"https://codeload.github.com/mschauer/IDRsSolver.jl/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":241404913,"owners_count":19957730,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-10-11T14:51:54.310Z","updated_at":"2025-03-01T18:20:17.835Z","avatar_url":"https://github.com/mschauer.png","language":"Julia","funding_links":[],"categories":[],"sub_categories":[],"readme":"IDRsSolver.jl\n============================\n\nThe Induced Dimension Reduction method is a family of simple and fast Krylov\nsubspace algorithms for solving large nonsymmetric linear systems. The idea\nbehind the IDR(s) variant is to generate residuals that are in the nested\nsubspaces of shrinking dimension s. \n\nThe function idrs() solves a general linear matrix equation\n\n                         0 = C - op(X, args...) \n \nwhere op is a linear operator in X, for example \n        \n        X -\u003e X + A*X*B (Stein equation)\n\nor\n\n        X -\u003e A*X + X*B (Sylvester equation).\n        \n                \n\nSyntax\n------\n\n        X, h::ConvergenceHistory = idrs_core{T}(op, args, C::T, X0 = zero(C); s = 8, tol = sqrt(eps(anorm(C))), maxiter = length(C)^2)\n\n\n        The right hand side C must support vecnorm, vecdot, copy!, rand! and axpy! or import and overload\n        the abstract functions adot, anorm, arand! and aaxpy! from module IDRsSolver used by the procedure.\n        .\n\nSynonyms\n--------\n        idrs(A, b, ...) = idrs_core((x,A) -\u003e A*x, (A,), b, ...) solves the linear equation equation Ax = b.\n        stein(A, B, C, ...) = idrs_core((X,A,B) -\u003e X + A*X*B, (A, B), C, ...) solves the Stein equation.\n        syl(A, B, C, ...) = idrs_core((X,A,B) -\u003e A*X + X*B, (A, B), C, ...) solves the Sylvester equation.\n\nArguments\n---------\n       \n       s -- dimension reduction number. Normally, a higher s gives faster convergence, \n            but also  makes the method more expensive.\n       tol -- tolerance of the method.  \n       maxiter -- maximum number of iterations\n\n       x0 -- Initial guess.\n       \nOutput\n------\n\n        X -- Approximated solution by IDR(s)\n        h -- Convergence history\n        \n\n        The [`ConvergenceHistory`](https://github.com/JuliaLang/IterativeSolvers.jl/issues/6) type provides information about the iteration history. \n            - `isconverged::Bool`, a flag for whether or not the algorithm is converged.\n            - `threshold`, the convergence threshold\n            - `residuals::Vector`, the value of the convergence criteria at each iteration        \n        \n        \n        If ||C-op(X)||_F \u003e tol, the function gives a warning.\n\n    \nReferences\n----------\n\n    [1] IDR(s): a family of simple and fast algorithms for solving large \n        nonsymmetric linear systems. P. Sonneveld and M. B. van Gijzen\n        SIAM J. Sci. Comput. Vol. 31, No. 2, pp. 1035--1062, 2008 \n    [2] Algorithm 913: An Elegant IDR(s) Variant that Efficiently Exploits \n        Bi-orthogonality Properties. M. B. van Gijzen and P. Sonneveld\n        ACM Trans. Math. Software,, Vol. 38, No. 1, pp. 5:1-5:19, 2011\n    [3] This file is a translation of the following MATLAB implementation:\n        http://ta.twi.tudelft.nl/nw/users/gijzen/idrs.m\n    [4] IDR(s)' webpage http://ta.twi.tudelft.nl/nw/users/gijzen/IDR.html\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmschauer%2Fidrssolver.jl","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmschauer%2Fidrssolver.jl","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmschauer%2Fidrssolver.jl/lists"}