File tree Expand file tree Collapse file tree 1 file changed +18
-5
lines changed Expand file tree Collapse file tree 1 file changed +18
-5
lines changed Original file line number Diff line number Diff line change @@ -1803,9 +1803,15 @@ cdef class RandomState:
1803
1803
f_imag *= sqrt (0.5 * f_v_imag )
1804
1804
1805
1805
return PyComplex_FromDoubles (f_real , f_imag )
1806
-
1807
- real = self .standard_normal (size = size , method = method )
1808
- imag = self .standard_normal (size = size , method = method )
1806
+
1807
+ if np .PyArray_IsAnyScalar (size ):
1808
+ size = (size ,)
1809
+ else :
1810
+ size = tuple (size )
1811
+
1812
+ norms = self .standard_normal (size = size + (2 ,), method = method )
1813
+ real = norms [...,0 ]
1814
+ imag = norms [...,1 ]
1809
1815
1810
1816
imag *= sqrt (1 - f_rho * f_rho )
1811
1817
imag += f_rho * real
@@ -1834,8 +1840,15 @@ cdef class RandomState:
1834
1840
1835
1841
if size is None :
1836
1842
size = np .broadcast (loc , gpc ).shape
1837
- real = self .standard_normal (size , method = method )
1838
- imag = self .standard_normal (size , method = method )
1843
+ elif np .PyArray_IsAnyScalar (size ):
1844
+ size = (size ,)
1845
+ else :
1846
+ size = tuple (size )
1847
+
1848
+ norms = self .standard_normal (size + (2 ,), method = method )
1849
+ real = norms [...,0 ]
1850
+ imag = norms [...,1 ]
1851
+
1839
1852
imag *= np .sqrt (1 - rho ** 2 )
1840
1853
imag += rho * real
1841
1854
real *= np .sqrt (v_real )
You can’t perform that action at this time.
0 commit comments