3
���h" � @ s�
d Z ddlZddlZddlZddlZddlZddlZddlZddlZ ddlm
Z
mZmZm
Z
mZmZmZmZ ddlmZmZmZmZ ddlmZ ddlmZmZmZmZmZ ddlmZ ddlm Z m!Z!m"Z"m#Z#m$Z$m%Z%m&Z&m'Z'm(Z( dd l)m*Z* d
d� Z+e$Z,d�dd�Z$dd� Z-dd� Z.dd� Z/ddddddhZ0G dd� d�Z1dd� Z2e j3j4d � g Z5e5e2de1d!e
d"d#gd$d%gged&�e
d#d"ged&��e1d'e
d"d#gd$d%gged&�e
d#d"ged&��e1d(e
d"d#gd$d%gged&�e
d#d"d%gd$d%d)gged&��e1d*e
d�d�gd�d�gge
d&�e
d�d�ge
d&��e1d3e
d�d�gd�d�gged&�e
d�d�ged&��e1d4e
d�d�gd�d�gged&�e
d�d�d�gd�d�d�gged&��e1d7e j6d�ed&�e j6d�ed&�dhd8�e1d9e j3j7d:d:�e j3j7d:��e1d;e j3j7d5d5�e j3j7d5��e1d<d5d,gd.d0ggd,d5g�g
�7 Z5e5e2de1d=e
d"d#d$gd$d%d)gged&�e
d#d"ged&��e1d>e
d"d#gd$d%gd?d)gged&�e
d#d"d$ged&��e1d@e
d"d#d$gd$d%d)gged&�e
d#d"ged&��e1dAe
d"d#gd$d%gd?d)gged&�e
d#d"d$ged&��e1dBe
d�d�d�gd��d �dgge
d&�e
�d�dge
d&��e1dDe
�d�dg�d�dg�d�d gge
d&�e
�d
�d�dge
d&��e1dFe
�d
�d�dg�d�d�dgged&�e
�d�dged&��e1dGe
�d�dg�d�dg�d�dgged&�e
�d�d�dged&��e1dHe
�d�d�d g�d!�d"�d#gged&�e
�d$�d%g�d&�d'gged&��e1dIe
�d(�d)g�d*�d+g�d,�d-gged&�e
�d.�d/g�d0�d1g�d2�d3gged&��e1dJe j3j7d:dK�e j3j7d:��e1dLe j3j7d5dM�e j3j7d5��e1dNe j3j7dMd5�e j3j7dM��e1dOe j3j7dd0�e j3j7d�dhd8�e1dPe j3j7d0d�e j3j7d0�dhd8�g�7 Z5e5e2de1dQe
d"d#gd#d"gged&�d�e1dRe
d"d#gd#d"gged&�d�e1dSe
d"�d4g�d5d5gge
d&�d�e1dTe
d"�d6g�d7d5gged&�d�e1dUe j6�d8ed&�ddhd8�e1dVd5d,gd,d5ggd�e1dWe
d"d#gd#d"gg�d�e1dXe j3j7d5d5�d�g�7 Z5dYdZ� Z8e5e8� 7 Z5d[d\� Z9d]d^� Z:e5e:� 7 Z5G d_d`� d`�Z;G dadb� dbe;�Z<G dcdd� dde;�Z=G dedf� dfe;�Z>G dgdh� dhe;�Z?G didj� dje;�Z@G dkdl� dle;�ZAdmdn� ZBdodp� ZCG dqdr� dre<e?�ZDG dsdt� dteD�ZEG dudv� dve<e?�ZFG dwdx� dxeF�ZGG dydz� dze<e?�ZHG d{d|� d|eH�ZIG d}d~� d~e<e?�ZJG dd�� d�eJ�ZKG d�d�� d��ZLG d�d�� d�e<e?�ZMG d�d�� d�eMeL�ZNG d�d�� d�e>eA�ZOG d�d�� d�eOeL�ZPG d�d�� d�e<e?�ZQG d�d�� d�eQ�ZRG d�d�� d�e<e=e?e@�ZSG d�d�� d�eS�ZTG d�d�� d�e>eA�ZUG d�d�� d�eU�ZVG d�d�� d�e<e?�ZWG d�d�� d�eW�ZXG d�d�� d�e<e=�ZYG d�d�� d�eY�ZZej[j\d�d�d�� d�D ��G d�d�� d���Z]G d�d�� d�e>eA�Z^G d�d�� d��Z_G d�d�� d�e>eA�Z`G d�d�� d��ZaG d�d�� d��ZbG d�d�� d�eb�ZcG d�d�� d�eb�ZdG d�d�� d�edec�ZeG d�d�� d��ZfG d�d�� d�eb�ZgG d�d�� d�eb�ZhG d�d�� d�eb�ZiG d�d�� d�eeeg�ZjG d�d�� d�eeeh�ZkG d�d d�eeei�ZlG d�dĄ dăZmd�dƄ ZnG d�dȄ dȃZoG d�dʄ dʃZpd�d̄ Zqd�d΄ Zrd�dЄ Zsej[jtd�d҄ �ZuG d�dԄ dԃZvG d�dք dփZwd�d Zxej[jtej[jye( d�d�dۍe*d�dݍd�d߄ ���Zzej[jye( d�d�d�d� �Z{dS (9 z# Test functions for linalg module
� N)�array�single�double�csingle�cdouble�dot�identity�matmul)�multiply�
atleast_2d�inf�asarray)�linalg)�matrix_power�norm�matrix_rank� multi_dot�LinAlgError)�_multi_dot_matrix_chain_order) �assert_�assert_equal�
assert_raises�assert_array_equal�assert_almost_equal�assert_allclose�suppress_warnings�assert_raises_regex�HAS_LAPACK64)�requires_memoryc C s" |