Ejemplo n.º 1
0
def solve_rdft_givens_both(a,b,x):
  (size,_) = a.shape
  f   = rdft.generate_f(size)
  r   = rdft.generate_r(size)
  g1  = givens.givens_generation(size)
  g2  = givens.givens_generation(size)
  fr  = f.dot(r)
  frg = fr.dot(g1)
  frgb = frg.dot(b)
  ag  = a.dot(g2)
  frgag = frg.dot(ag)
  (l,u) = lu.lu(frgag)
  y     = lu.l_step(l,frgb)
  z     = lu.u_step(u,y)
  x1    = g2.dot(z)
  x2  = np.array(x1)
  x2  = iteration.iteration_another(a, l, u, frg, b, x2, linalg.cond(frgag), g2)
  x2  = iteration.remove_imag(x2)
  return (x2, x1)
Ejemplo n.º 2
0
def solve_rdft_givens_both(a, b, x):
    (size, _) = a.shape
    f = rdft.generate_f(size)
    r = rdft.generate_r(size)
    g1 = givens.givens_generation(size)
    g2 = givens.givens_generation(size)
    fr = f.dot(r)
    frg = fr.dot(g1)
    frgb = frg.dot(b)
    ag = a.dot(g2)
    frgag = frg.dot(ag)
    (l, u) = lu.lu(frgag)
    y = lu.l_step(l, frgb)
    z = lu.u_step(u, y)
    x1 = g2.dot(z)
    x2 = np.array(x1)
    x2 = iteration.iteration_another(a, l, u, frg, b, x2, linalg.cond(frgag),
                                     g2)
    x2 = iteration.remove_imag(x2)
    return (x2, x1)
Ejemplo n.º 3
0
def solve_rdft_givens(a, b, x):
    (size, _) = a.shape
    f = rdft.generate_f(size)
    r = rdft.generate_r(size)  ## === care === ##
    g = givens.givens_generation(size)
    fr = f.dot(r)
    frg = fr.dot(g)
    rg = r.dot(g)
    (x1, l, u, fra, frb, _) = rdft.rdft_lu_solver_with_lu(a, b, rg)
    x2 = np.array(x1)
    x2 = iteration.iteration_another(a, l, u, frg, b, x2, linalg.cond(fra))
    x2 = iteration.remove_imag(x2)
    return (x2, x1)
Ejemplo n.º 4
0
def solve_rdft_givens(a,b,x):
  (size,_) = a.shape
  f   = rdft.generate_f(size)
  r   = rdft.generate_r(size) ## === care === ##
  g   = givens.givens_generation(size)
  fr  = f.dot(r)
  frg = fr.dot(g)
  rg  = r.dot(g)
  (x1, l, u, fra, frb, _) = rdft.rdft_lu_solver_with_lu(a,b,rg)
  x2 = np.array(x1)
  x2  = iteration.iteration_another(a, l, u, frg, b, x2, linalg.cond(fra))
  x2  = iteration.remove_imag(x2)
  return (x2, x1)