From 02318b8eafa623cc1aa7833c91a62d5d9efbfa45 Mon Sep 17 00:00:00 2001
From: Alexis Montoison <alexis.montoison@polymtl.ca>
Date: Sun, 5 Feb 2023 23:12:57 +0100
Subject: [PATCH 1/3] Add more details about the number of Krylov methods

---
 paper/paper.md | 8 +++++---
 1 file changed, 5 insertions(+), 3 deletions(-)

diff --git a/paper/paper.md b/paper/paper.md
index 759e3ca53..3b5ef0ce7 100644
--- a/paper/paper.md
+++ b/paper/paper.md
@@ -16,7 +16,7 @@ authors:
 affiliations:
  - name: GERAD and Department of Mathematics and Industrial Engineering, Polytechnique Montréal, QC, Canada.
    index: 1
-date: 29 January 2023
+date: 5 February 2023
 bibliography: paper.bib
 header-includes: |
   \usepackage{booktabs}
@@ -59,8 +59,10 @@ Krylov.jl aims to provide a unified interface for the largest collection of Kryl
 - \textbf{Krylov processes}: \textsc{Arnoldi}, \textsc{Golub-Kahan}, \textsc{Hermitian Lanczos}, \textsc{Montoison-Orban}, \textsc{Non-Hermitian Lanczos},  \textsc{Saunders-Simon-Yip};
 - \textbf{Krylov methods}: \textsc{Bicgstab}, \textsc{Bilq}, \textsc{Bilqr}, \textsc{Cg}, \textsc{Cg-lanczos}, \textsc{Cg-lanczos-shift}, \textsc{Cgls}, \textsc{Cgne}, \textsc{Cgs}, \textsc{Cr}, \textsc{Craig}, \textsc{Craigmr}, \textsc{Crls}, \textsc{Crmr}, \textsc{Diom}, \textsc{Dqgmres}, \textsc{Fgmres}, \textsc{Fom}, \textsc{Gmres}, \textsc{Gpmr}, \textsc{Lnlq}, \textsc{Lslq}, \textsc{Lsmr}, \textsc{Lsqr}, \textsc{Minres}, \textsc{Minres-qlp}, \textsc{Qmr}, \textsc{Symmlq}, \textsc{Tricg}, \textsc{Trilqr}, \textsc{Trimr}, \textsc{Usymlq}, \textsc{Usymqr}.
 
-MATLAB [@MATLAB] and PETSc [@petsc] have nineteen and eighteen distinct Krylov methods, respectively.
-Note that we only consider the number of Krylov methods that generate different iterates.
+MATLAB [@MATLAB] and PETSc [@petsc] have eleven and eighteen distinct Krylov methods, respectively.
+Note that we only consider the number of Krylov methods that generate different iterates without preconditioning.
+Variants with preconditioning are not counted except it is a flexible one such as \textsc{Fgmres}.
+
 Some processes and methods are not available elsewhere and are the product of our own research.
 References for each process and method are available in the extensive [documentation](https://juliasmoothoptimizers.github.io/Krylov.jl/stable/).
 

From d4582a9ae26286a10758ab62b58cc84f830c8cc6 Mon Sep 17 00:00:00 2001
From: Alexis Montoison <alexis.montoison@polymtl.ca>
Date: Wed, 15 Feb 2023 16:51:28 -0500
Subject: [PATCH 2/3] Update example with Nvidia IC0 preconditioner

---
 paper/paper.md | 12 +++++++-----
 1 file changed, 7 insertions(+), 5 deletions(-)

diff --git a/paper/paper.md b/paper/paper.md
index 3b5ef0ce7..9ac2e1e65 100644
--- a/paper/paper.md
+++ b/paper/paper.md
@@ -187,11 +187,13 @@ b_gpu = CuVector(b_cpu)
 # Incomplete Cholesky decomposition LLᴴ ≈ A with zero fill-in
 P = ic02(A_gpu, 'O')
 
+# Additional vector required for solving triangular systems
+z = similar(CuVector{ComplexF64}, n)
+
 # Solve Py = x
-function ldiv_ic0!(y, P, x)
-  copyto!(y, x)
-  ldiv!(LowerTriangular(P), y)   # Forward substitution with L
-  ldiv!(LowerTriangular(P)', y)  # Backward substitution with Lᴴ
+function ldiv_ic0!(P, x, y, z)
+  ldiv!(z, LowerTriangular(P), x)   # Forward substitution with L
+  ldiv!(y, LowerTriangular(P)', z)  # Backward substitution with Lᴴ
   return y
 end
 
@@ -199,7 +201,7 @@ end
 T = ComplexF64
 symmetric = false
 hermitian = true
-P⁻¹ = LinearOperator(T, m, n, symmetric, hermitian, (y, x) -> ldiv_ic0!(y, P, x))
+P⁻¹ = LinearOperator(T, m, n, symmetric, hermitian, (y, x) -> ldiv_ic0!(P, x, y, z))
 
 # Solve a Hermitian positive definite system with an incomplete Cholesky factorization preconditioner
 x, stats = cg(A_gpu, b_gpu, M=P⁻¹)

From 8af9f3a7b3e125ece5e5824ac3e70e4bd556e3c4 Mon Sep 17 00:00:00 2001
From: Alexis Montoison <35051714+amontoison@users.noreply.github.com>
Date: Wed, 15 Feb 2023 17:20:14 -0500
Subject: [PATCH 3/3] Update the date

---
 paper/paper.md | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/paper/paper.md b/paper/paper.md
index 9ac2e1e65..986e51ed0 100644
--- a/paper/paper.md
+++ b/paper/paper.md
@@ -16,7 +16,7 @@ authors:
 affiliations:
  - name: GERAD and Department of Mathematics and Industrial Engineering, Polytechnique Montréal, QC, Canada.
    index: 1
-date: 5 February 2023
+date: 15 February 2023
 bibliography: paper.bib
 header-includes: |
   \usepackage{booktabs}