###########################################################################
# program: pseudo_inverse_matrix.py
# author: Tom Irvine
# Email: tom@vibrationdata.com
# version: 1.1
# date: September 13, 2013
# description:  Calculate the pseudo inverse of a matrix
#
###########################################################################

from __future__ import print_function

from sys import stdin

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.pinv(A)

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

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

immf=GetInteger2()

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