@@ -1885,6 +1885,16 @@ def _apply_pivots_rows(A_dp, piv_dp):
1885
1885
rows = dpnp .asarray (rows )
1886
1886
return A_dp [rows ]
1887
1887
1888
+ @staticmethod
1889
+ def _make_nonsingular_np (shape , dtype , order ):
1890
+ A = generate_random_numpy_array (shape , dtype , order )
1891
+ m , n = shape
1892
+ k = min (m , n )
1893
+ for i in range (k ):
1894
+ off = numpy .sum (numpy .abs (A [i , :n ])) - numpy .abs (A [i , i ])
1895
+ A [i , i ] = A .dtype .type (off + 1.0 )
1896
+ return A
1897
+
1888
1898
@staticmethod
1889
1899
def _split_lu (lu , m , n ):
1890
1900
L = dpnp .tril (lu , k = - 1 )
@@ -1899,7 +1909,7 @@ def _split_lu(lu, m, n):
1899
1909
@pytest .mark .parametrize ("order" , ["C" , "F" ])
1900
1910
@pytest .mark .parametrize ("dtype" , get_all_dtypes (no_bool = True ))
1901
1911
def test_lu_factor (self , shape , order , dtype ):
1902
- a_np = generate_random_numpy_array (shape , dtype , order )
1912
+ a_np = self . _make_nonsingular_np (shape , dtype , order )
1903
1913
a_dp = dpnp .array (a_np , order = order )
1904
1914
1905
1915
lu , piv = dpnp .linalg .lu_factor (
@@ -2001,12 +2011,7 @@ def test_empty_inputs(self, shape):
2001
2011
],
2002
2012
)
2003
2013
def test_strided (self , sl ):
2004
- base = (
2005
- numpy .arange (7 * 7 , dtype = dpnp .default_float_type ()).reshape (
2006
- 7 , 7 , order = "F"
2007
- )
2008
- + 0.1
2009
- )
2014
+ base = self ._make_nonsingular_np ((7 , 7 ), dpnp .default_float_type (), "F" )
2010
2015
a_np = base [sl ]
2011
2016
a_dp = dpnp .array (a_np )
2012
2017
0 commit comments