def main():
    args = argparser().parse_args()
    src = read_data(args.source)
    if len(src) == 0:
        print('Error: No data, not numeric data or not expected data.');
        return False
    result = square_root(src)
    if result != None:
        write_data(args.output, result)
    else:
        print('Error: Not a positive definite matrix.')
        return False
    print('Success!')
	def __init__(self, keys, values, m):
		sys.path.insert(0, "..\sole")
		from sole import square_root
		if len(keys) == len(values):
			self.__m = m
			self.__n = len(keys)
			self.__keys = [x for x in keys]
			self.__values = [x for x in values]
		else:
			raise ValueError('Invalid mapping from keys to values.')
		a = [[0 for j in range(self.__m+1)] for i in range(self.__m+1)]
		b = [0 for i in range(self.__m+1)]
		#print(a, b)
		for i in range(self.__m+1):
			for j in range(i, self.__m+1):
				a[i][j] = sum([pow(self.__keys[k], i+j) for k in range(self.__n)])
				a[j][i] = a[i][j]
				b[i] = sum([pow(self.__keys[k], i)*self.__values[k] for k in range(self.__n)])
		a[0][0] = self.__n
		self.__coef = square_root(a, b)
		print(self.__coef)