###########################################################################
# program: inverse_matrix.py
# author: Tom Irvine
# Email: tom@vibrationdata.com
# version: 1.2
# date: September 12, 2013
# description:  Calculate the inverse of a square matrix
#
###########################################################################

from __future__ import print_function
    
import sys

if sys.version_info[0] == 2:
    print ("Python 2.x")
    import Tkinter as tk
    from tkFileDialog import asksaveasfilename

           
if sys.version_info[0] == 3:
    print ("Python 3.x")    
    import tkinter as tk 
    from tkinter.filedialog import asksaveasfilename    
    

from tompy import read_array,GetInteger2,WriteArray

from numpy import linalg
from numpy import set_printoptions


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

set_printoptions(precision=3)

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

Ainv=linalg.inv(A)

print (" ")
print ("inverse matrix")
print(Ainv)

print (" ")
print ("Write inverse matrix to file?  1=yes 2=no ")

immf=GetInteger2()

if immf==1:
    print (" ")
    root = tk.Tk() ; root.withdraw()
    output_file_path = asksaveasfilename(parent=root,title="Enter the inverse matrix filename:")           
    output_file = output_file_path.rstrip('\n')      
    WriteArray(Ainv,output_file_path)  