###########################################################################
# program: linear_system.py
# author: Tom Irvine
# Email: tomirvine@aol.com
# version: 1.1
# date: September 12, 2013
# description:  Solve a system of linear equations
#               Ax=b
#
###########################################################################

from __future__ import print_function
    


from sys import stdin

from tompy import read_array,GetInteger2,WriteArray

from tompy import read_one_column_from_dialog

from scipy import linalg
from numpy import set_printoptions

###########################################################################

set_printoptions(precision=3)

A=read_array("A") 
print (" ")
print ("input matrix")
print(A)  

print (" ")


b,n=read_one_column_from_dialog("input vector b")


print (" Matrix A ")
print (A)

print (" ")
print (" Vector b ")

for i in range(0,n):
    print ("%8.3g" %(b[i]))


x = linalg.solve(A, b)

print (" ")
print (" Solution vector x")
for i in range(0,n):
    print ("%8.3g" %(x[i]))

print (" ")
print ("Write solution vector to file?  1=yes 2=no ")

immf=GetInteger2()

if immf==1:
    print (" ")
    print ("Enter the output filename: ")
    output_file_path = stdin.readline()
    WriteArray(x,output_file_path)  