<s> from __future__ import division , print_function , absolute_import <EOL> from scipy import * <EOL> from iterative import * <EOL> def test_fun ( alpha , x , beta , y , A , n ) : <EOL> xx = x [ : n ] <EOL> yy = y [ : n ] <EOL> w = dot ( A , xx ) <EOL> z = alpha * w + beta * yy <EOL> y [ : n ] = z <EOL> return <EOL> def test_fun_t ( alpha , x , beta , y , A , n ) : <EOL> xx = x [ : n ] <EOL> yy = y [ : n ] <EOL> AA = conj ( transpose ( A ) ) <EOL> w = dot ( AA , xx ) <EOL> z = alpha * w + beta * yy <EOL> y [ : n ] = z <EOL> return <EOL> def test_psolve ( x , b , n ) : <EOL> x [ : n ] = b [ : n ] <EOL> return <EOL> def test_psolve_t ( x , b , n ) : <EOL> x [ : n ] = b [ : n ] <EOL> return <EOL> def test_psolveq ( x , b , which , n ) : <EOL> x [ : n ] = b [ : n ] <EOL> return <EOL> def test_psolveq_t ( x , b , which , n ) : <EOL> x [ : n ] = b [ : n ] <EOL> return <EOL> n = <NUM_LIT:5> <EOL> dA = <NUM_LIT:1.0> * array ( [ [ <NUM_LIT:2> , - <NUM_LIT:1> , <NUM_LIT:0> , <NUM_LIT:0> , <NUM_LIT:0> ] , <EOL> [ - <NUM_LIT:1> , <NUM_LIT:2> , - <NUM_LIT:1> , <NUM_LIT:0> , <NUM_LIT:0> ] , <EOL> [ <NUM_LIT:0> , - <NUM_LIT:1> , <NUM_LIT:2> , - <NUM_LIT:1> , <NUM_LIT:0> ] , <EOL> [ <NUM_LIT:0> , <NUM_LIT:0> , - <NUM_LIT:1> , <NUM_LIT:2> , - <NUM_LIT:1> ] , <EOL> [ <NUM_LIT:0> , <NUM_LIT:0> , <NUM_LIT:0> , <NUM_LIT:1> , <NUM_LIT:2> ] ] ) <EOL> db = <NUM_LIT:1.0> * array ( [ <NUM_LIT:0> , <NUM_LIT:1> , <NUM_LIT:1> , <NUM_LIT:0> , <NUM_LIT:0> ] ) <EOL> zA = ( <NUM_LIT:1.0> + <NUM_LIT> ) * array ( [ [ <NUM_LIT:2> , - <NUM_LIT:1> + <NUM_LIT> , <NUM_LIT:0> , <NUM_LIT:0> , <NUM_LIT:0> ] , <EOL> [ - <NUM_LIT:1> + <NUM_LIT> , <NUM_LIT:2> , - <NUM_LIT:1> - <NUM_LIT> , <NUM_LIT:0> , <NUM_LIT:0> ] , <EOL> [ <NUM_LIT:0> , - <NUM_LIT:1> - <NUM_LIT> , <NUM_LIT:2> , - <NUM_LIT:1> + <NUM_LIT> , <NUM_LIT:0> ] , <EOL> [ <NUM_LIT:0> , <NUM_LIT:0> , - <NUM_LIT:1> + <NUM_LIT> , <NUM_LIT:2> , - <NUM_LIT:1> - <NUM_LIT> ] , <EOL> [ <NUM_LIT:0> , <NUM_LIT:0> , <NUM_LIT:0> , - <NUM_LIT:1> , <NUM_LIT:2> - <NUM_LIT> ] ] ) <EOL> zb = ( <NUM_LIT:1.0> + <NUM_LIT> ) * array ( [ <NUM_LIT:0> , <NUM_LIT:1> , <NUM_LIT:1> , <NUM_LIT:0> , <NUM_LIT:0> ] ) <EOL> dx = <NUM_LIT:0> * db . copy ( ) <EOL> zx = <NUM_LIT:0> * zb . copy ( ) <EOL> diter = <NUM_LIT:1000> <EOL> dresid = <NUM_LIT> <EOL> ziter = <NUM_LIT:1000> <EOL> zresid = <NUM_LIT> <EOL> drestrt = n <EOL> zrestrt = n <EOL> dx , diter , dresid , dinfor = dbicg ( db , dx , diter , dresid , test_fun , test_fun_t , test_psolve , test_psolve_t , ( dA , n ) , ( dA , n ) , ( n , ) , ( n , ) ) <EOL> zx , ziter , zresid , zinfor = zbicg ( zb , zx , ziter , zresid , test_fun , test_fun_t , test_psolve , test_psolve_t , ( zA , n ) , ( zA , n ) , ( n , ) , ( n , ) ) <EOL> print ( ) <EOL> print ( '<STR_LIT>' ) <EOL> print ( '<STR_LIT>' , diter , '<STR_LIT>' , dresid , '<STR_LIT>' , dinfor ) <EOL> print ( '<STR_LIT>' , dx ) <EOL> print ( '<STR_LIT>' ) <EOL> print ( ) <EOL> print ( ) <EOL> print ( '<STR_LIT>' ) <EOL> print ( '<STR_LIT>' , ziter , '<STR_LIT>' , zresid , '<STR_LIT>' , zinfor ) <EOL> print ( '<STR_LIT>' , zx ) <EOL> print ( '<STR_LIT>' ) <EOL> print ( ) </s>
