Skip to content

Instantly share code, notes, and snippets.

@lambday
Last active December 19, 2015 16:39
Show Gist options
  • Select an option

  • Save lambday/5985535 to your computer and use it in GitHub Desktop.

Select an option

Save lambday/5985535 to your computer and use it in GitHub Desktop.
r_0 = b
p_0 = b
||r0||_2 = r.r
x_0 = 0
for i = 1 to N
{
// upate alpha
alpha_i = ||r_(i-1)||_2 / p_(i-1).(A * p_(i-1))
// update vectors
x_i = x_(i-1) + alpha_i * p_(i-1)
r_i = r_(i-1) - alpha_i * (A * p_(i-1))
// update beta
beta_i = ||r_i||_2 / ||r_(i-1)||_2
// update vector
p_i = r_i + beta_i * p_(i-1)
}
r_0 = b
p_0 = b
||r0||_2 = r.r
x_0 = 0
//extra
z_0 = M * r_0
r_0.z_0
for i = 1 to N
{
// upate alpha
alpha_i = ||r_(i-1)||_2 / p_(i-1).(A * p_(i-1))
// update vectors
x_i = x_(i-1) + alpha_i * p_(i-1)
r_i = r_(i-1) - alpha_i * (A * p_(i-1))
// preconditioning
z_i = M * r_(i-1)
// update beta
beta_i = r_i.z_i / r_(i-1).z_(i-1)
// update vector
p_i = z_i + beta_i * p_(i-1)
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment