# Solving a linear system with Gaussian Elimination

I decided to implement a solver for linear systems of equations based on the gaussian elimination and reduction to upper triangular form. The gaussian elimination is quite simple to implement but the function to go from a "gauss-eliminated" matrix (upper triangular form) to a solution is excessively complicated in my opinion (solve_given_augmented_gauss_eliminated), I am interested in both improving the readability of this function and in improving the performance that as of now is about 100x times slower than the np.linalg implementation. Probably trying to avoid pure python for loops and using vectorialized operations would improve performance but I am not sure how to proceed.

import numpy as np
import doctest
import time

def gauss_elimination(matrix):
"""
Performs gaussian elimination.
>>> gauss_elimination(np.array([[1,-3,1,4],\
[2,-8,8,-2],\
[-6,3,-15,9]], dtype=float))
array([[  1.,  -3.,   1.,   4.],
[  0.,  -2.,   6., -10.],
[  0.,   0., -54., 108.]])
"""
for i in range(len(matrix)):
for j in range(i):
weight_j = matrix[i][j] / matrix[j][j]
matrix[i] -= (matrix[j] * weight_j)
return matrix

def solve_given_augmented_gauss_eliminated(gauss_eliminated):
"""
The augmented matrix is the matrix of the coefficients of the system with
the known terms vector added to the right, for example:

1x + 0y = 1
1x + 1y = 3

is represented by:

>>> m = np.array([[1, 0, 1],\
[1, 1, 3]], dtype=float)

The gaussian eliminated form is upper triangular and is:

1x + 0y = 1
0x + 1y = 2

So

>>> m = np.array([[1, 0, 1],\
[0, 1, 2]], dtype=float)
>>> solve_given_augmented_gauss_eliminated(m.copy())
array([1., 2.])
"""
row_len = len(gauss_eliminated[0])
# start with ones, so unknown variables make no difference when multiplied
values = np.ones(len(gauss_eliminated))
for i in range(len(gauss_eliminated)-1, -1, -1):
# substitute the values of the known variables
gauss_eliminated[i][:len(values)] = gauss_eliminated[i][:len(values)] * values
# the numerator is the element on the left minus the sum of the elements on the right
numerator = gauss_eliminated[i][row_len-1] - sum(gauss_eliminated[i][i+1:row_len-1])
# determine the value of the i-th element of the solution vector
values[i] = numerator / gauss_eliminated[i][i]
return values

def check_solution(aug_gauss_eliminated, sol):
"""
>>> m = np.array([[1, 0, 1],\
[1, 1, 3]], dtype=float)
>>> check_solution(m, np.array([1,2]))
True
"""
return all( (sum(row[:len(sol)] * sol) == row[-1]) for row in aug_gauss_eliminated)

def solve(aug_matrix):
"""
Example from https://www.cliffsnotes.com/study-guides/algebra/linear-algebra/linear-systems/gaussian-elimination
examples 1 and 3

Be careful, the input matrix will be changed in a weird way, use .copy() to be safe.

>>> m1 = np.array([[1, 1, 3],\
[3, -2, 4]], dtype=float)
>>> solve(m1.copy())
array([2., 1.])
>>> check_solution(m1, _)
True

>>> m3 = np.array([[1, -2,  1,  0],\
[2,  1, -3,  5],\
[4, -7,  1, -1]], dtype=float)
>>> solve(m3.copy())
array([3., 2., 1.])
>>> check_solution(m3, _)
True
"""
gauss_eliminated = gauss_elimination(aug_matrix)
return solve_given_augmented_gauss_eliminated(gauss_eliminated)

if __name__ == "__main__":
doctest.testmod()
for size in [10, 100, 200, 500, 1000]:
coefficients =  np.random.rand(size, size)
known = np.random.rand(size)
random_system = np.hstack((coefficients,known.reshape(size,1)))

start = time.time()
sol1 = solve(random_system)
print("Size: ", size)
print(time.time() - start)

start = time.time()
sol2 = np.linalg.solve(coefficients, known)
print(time.time() - start)

# Final check, does my code give the same result as numpy?
print(np.allclose(sol1, sol2))
print()


I also run the cProfile utility on my code finding out that the gauss_elimination is taking the longest time because it is a quadratic algorithm while solve_given_augmented_gauss_eliminated is linear, if my big O analysis is correct.

\$>python -m cProfile -s tottime gauss_elim.py
Size:  10
0.0005228519439697266
0.0
True

Size:  100
0.012234210968017578
0.0023505687713623047
True

Size:  200
0.052938222885131836
0.003468036651611328
True

Size:  500
0.3867616653442383
0.00789952278137207
True

Size:  1000
1.7185072898864746
0.015315055847167969
True

127075 function calls (124279 primitive calls) in 2.382 seconds

Ordered by: internal time

ncalls  tottime  percall  cumtime  percall filename:lineno(function)
5    2.113    0.423    2.113    0.423 gauss_elim.py:5(gauss_elimination)
1810    0.051    0.000    0.051    0.000 {built-in method builtins.sum}
5    0.028    0.006    0.029    0.006 linalg.py:313(solve)
788    0.028    0.000    0.028    0.000 {built-in method nt.stat}
18    0.013    0.001    0.015    0.001 {built-in method _imp.create_dynamic}
316    0.013    0.000    0.013    0.000 {built-in method builtins.compile}
131    0.011    0.000    0.011    0.000 {built-in method marshal.loads}
10    0.009    0.001    0.009    0.001 {method 'rand' of 'numpy.random.mtrand.RandomState' objects}
2111    0.009    0.000    0.014    0.000 <frozen importlib._bootstrap_external>:91(_path_join)
181    0.007    0.000    0.007    0.000 {built-in method io.open_code}
5    0.006    0.001    0.057    0.011 gauss_elim.py:22(solve_given_augmented_gauss_eliminated)
1    0.004    0.004    0.004    0.004 {method 'read' of '_io.TextIOWrapper' objects}
318/315    0.004    0.000    0.008    0.000 {built-in method builtins.__build_class__}
57/22    0.003    0.000    0.032    0.001 {built-in method numpy.core._multiarray_umath.implement_array_function}
1    0.003    0.003    0.003    0.003 {built-in method _winapi.CreateProcess}
433    0.003    0.000    0.039    0.000 <frozen importlib._bootstrap_external>:1505(find_spec)
25    0.002    0.000    0.002    0.000 {built-in method builtins.print}
130/43    0.002    0.000    0.005    0.000 sre_parse.py:493(_parse)
18/13    0.001    0.000    0.012    0.001 {built-in method _imp.exec_dynamic}
182    0.001    0.000    0.001    0.000 {method '__exit__' of '_io._IOBase' objects}
131    0.001    0.000    0.035    0.000 <frozen importlib._bootstrap_external>:916(get_code)
13378/13119    0.001    0.000    0.001    0.000 {built-in method builtins.len}
4345    0.001    0.000    0.001    0.000 {built-in method builtins.getattr}
7061    0.001    0.000    0.001    0.000 {method 'endswith' of 'str' objects}
185/17    0.001    0.000    0.165    0.010 <frozen importlib._bootstrap>:1002(_find_and_load)
2111    0.001    0.000    0.001    0.000 <frozen importlib._bootstrap_external>:114(<listcomp>)
612    0.001    0.000    0.001    0.000 _inspect.py:65(getargs)
240/41    0.001    0.000    0.003    0.000 sre_compile.py:71(_compile)
500    0.001    0.000    0.002    0.000 <frozen importlib._bootstrap>:166(_get_module_lock)
5361    0.001    0.000    0.001    0.000 {method 'startswith' of 'str' objects}
8571    0.001    0.000    0.001    0.000 {built-in method builtins.isinstance}
182    0.001    0.000    0.044    0.000 <frozen importlib._bootstrap>:901(_find_spec)
169    0.001    0.000    0.042    0.000 <frozen importlib._bootstrap_external>:1374(_get_spec)
14    0.001    0.000    0.001    0.000 {built-in method nt.listdir}
334    0.001    0.000    0.001    0.000 functools.py:35(update_wrapper)
6614    0.001    0.000    0.001    0.000 {method 'append' of 'list' objects}
262    0.001    0.000    0.004    0.000 <frozen importlib._bootstrap_external>:361(cache_from_source)
286    0.001    0.000    0.003    0.000 overrides.py:89(verify_matching_signatures)
32    0.001    0.000    0.001    0.000 {built-in method io.open}
883    0.001    0.000    0.001    0.000 {method 'format' of 'str' objects}
500    0.001    0.000    0.001    0.000 <frozen importlib._bootstrap>:87(acquire)
6599    0.001    0.000    0.001    0.000 {method 'rstrip' of 'str' objects}
2570/2499    0.001    0.000    0.016    0.000 {method 'join' of 'str' objects}
316    0.001    0.000    0.020    0.000 overrides.py:183(decorator)
162/2    0.001    0.000    0.155    0.077 <frozen importlib._bootstrap>:659(_load_unlocked)
1026    0.001    0.000    0.001    0.000 {method 'match' of 're.Pattern' objects}
14    0.001    0.000    0.285    0.020 __init__.py:1(<module>)
500    0.001    0.000    0.001    0.000 <frozen importlib._bootstrap>:112(release)
448/1    0.001    0.000    2.383    2.383 {built-in method builtins.exec}
686    0.001    0.000    0.001    0.000 {built-in method __new__ of type object at 0x00007FFCBD32CC60}
616    0.001    0.000    0.002    0.000 _inspect.py:96(getargspec)
92    0.001    0.000    0.001    0.000 sre_compile.py:276(_optimize_charset)
2    0.001    0.000    0.001    0.000 {built-in method _ctypes.LoadLibrary}
2334    0.001    0.000    0.001    0.000 sre_parse.py:233(__next)
28    0.001    0.000    0.001    0.000 inspect.py:626(cleandoc)
162    0.001    0.000    0.004    0.000 <frozen importlib._bootstrap>:486(_init_module_attrs)
181    0.001    0.000    0.015    0.000 <frozen importlib._bootstrap_external>:1036(get_data)
185/17    0.000    0.000    0.165    0.010 <frozen importlib._bootstrap>:967(_find_and_load_unlocked)
50    0.000    0.000    0.000    0.000 {built-in method _imp.source_hash}
2253    0.000    0.000    0.000    0.000 <frozen importlib._bootstrap>:231(_verbose_message)
1729    0.000    0.000    0.001    0.000 sre_parse.py:164(__getitem__)
1925    0.000    0.000    0.000    0.000 {built-in method builtins.hasattr}
131/2    0.000    0.000    0.155    0.077 <frozen importlib._bootstrap_external>:844(exec_module)
1982    0.000    0.000    0.001    0.000 sre_parse.py:254(get)
1    0.000    0.000    0.000    0.000 {built-in method _winapi.WaitForSingleObject}
10    0.000    0.000    0.000    0.000 {built-in method builtins.eval}
290/98    0.000    0.000    0.000    0.000 sre_parse.py:174(getwidth)
1    0.000    0.000    2.383    2.383 gauss_elim.py:1(<module>)
769    0.000    0.000    0.028    0.000 <frozen importlib._bootstrap_external>:135(_path_stat)
371    0.000    0.000    0.000    0.000 {built-in method _thread.allocate_lock}
193/25    0.000    0.000    0.130    0.005 <frozen importlib._bootstrap>:1033(_handle_fromlist)
284    0.000    0.000    0.002    0.000 function_base.py:475(add_newdoc)
177    0.000    0.000    0.010    0.000 re.py:289(_compile)
13    0.000    0.000    0.000    0.000 {built-in method _imp.create_builtin}
1246    0.000    0.000    0.000    0.000 {method 'rpartition' of 'str' objects}
149    0.000    0.000    0.000    0.000 <frozen importlib._bootstrap_external>:696(spec_from_file_location)
10    0.000    0.000    0.001    0.000 __init__.py:345(namedtuple)
336/11    0.000    0.000    0.130    0.012 {built-in method builtins.__import__}
119/41    0.000    0.000    0.005    0.000 sre_parse.py:435(_parse_sub)
262    0.000    0.000    0.001    0.000 <frozen importlib._bootstrap_external>:127(_path_split)
1798    0.000    0.000    0.000    0.000 {built-in method builtins.setattr}
162/159    0.000    0.000    0.020    0.000 <frozen importlib._bootstrap>:558(module_from_spec)
433    0.000    0.000    0.000    0.000 <frozen importlib._bootstrap_external>:64(_relax_case)
315    0.000    0.000    0.001    0.000 <frozen importlib._bootstrap>:203(_lock_unlock_module)
279    0.000    0.000    0.001    0.000 {built-in method builtins.max}
131    0.000    0.000    0.011    0.000 <frozen importlib._bootstrap_external>:645(_compile_bytecode)
495    0.000    0.000    0.002    0.000 <frozen importlib._bootstrap_external>:1337(_path_importer_cache)
14    0.000    0.000    0.001    0.000 <frozen importlib._bootstrap_external>:1556(_fill_cache)
184    0.000    0.000    0.000    0.000 <frozen importlib._bootstrap>:185(cb)
131    0.000    0.000    0.000    0.000 <frozen importlib._bootstrap_external>:560(_classify_pyc)
786    0.000    0.000    0.000    0.000 <frozen importlib._bootstrap_external>:129(<genexpr>)
6    0.000    0.000    0.001    0.000 enum.py:179(__new__)
1    0.000    0.000    0.002    0.002 core.py:1(<module>)
191    0.000    0.000    0.007    0.000 <frozen importlib._bootstrap_external>:145(_path_is_mode_type)
1206    0.000    0.000    0.000    0.000 {built-in method builtins.min}
149    0.000    0.000    0.001    0.000 <frozen importlib._bootstrap_external>:1500(_get_spec)
378    0.000    0.000    0.000    0.000 <frozen importlib._bootstrap>:398(parent)
15    0.000    0.000    0.001    0.000 doctest.py:1074(_find_lineno)
293    0.000    0.000    0.000    0.000 <frozen importlib._bootstrap_external>:79(_unpack_uint32)
616    0.000    0.000    0.000    0.000 _inspect.py:13(ismethod)
149    0.000    0.000    0.003    0.000 <frozen importlib._bootstrap_external>:491(_get_cached)
184    0.000    0.000    0.001    0.000 <frozen importlib._bootstrap>:58(__init__)
41    0.000    0.000    0.009    0.000 sre_compile.py:759(compile)
280    0.000    0.000    0.003    0.000 <frozen importlib._bootstrap>:385(cached)
545    0.000    0.000    0.000    0.000 sre_parse.py:172(append)
343    0.000    0.000    0.000    0.000 {method 'strip' of 'str' objects}
52    0.000    0.000    0.000    0.000 core.py:889(__init__)
1204    0.000    0.000    0.000    0.000 {built-in method _imp.acquire_lock}
185    0.000    0.000    0.002    0.000 <frozen importlib._bootstrap>:156(__enter__)
23    0.000    0.000    0.000    0.000 {built-in method _abc._abc_init}
332    0.000    0.000    0.000    0.000 functools.py:65(wraps)
520    0.000    0.000    0.000    0.000 <frozen importlib._bootstrap>:878(__exit__)
41    0.000    0.000    0.001    0.000 sre_compile.py:536(_compile_info)
520    0.000    0.000    0.000    0.000 <frozen importlib._bootstrap>:874(__enter__)
245/2    0.000    0.000    0.154    0.077 <frozen importlib._bootstrap>:220(_call_with_frames_removed)
1002    0.000    0.000    0.000    0.000 {method '__exit__' of '_thread.lock' objects}
2    0.000    0.000    0.000    0.000 {built-in method sys.getwindowsversion}
1    0.000    0.000    0.008    0.008 numeric.py:1(<module>)
1204    0.000    0.000    0.000    0.000 {built-in method _imp.release_lock}
169    0.000    0.000    0.042    0.000 <frozen importlib._bootstrap_external>:1406(find_spec)
131    0.000    0.000    0.000    0.000 {built-in method _imp._fix_co_filename}
1    0.000    0.000    0.013    0.013 multiarray.py:1(<module>)
851    0.000    0.000    0.000    0.000 {method 'get' of 'dict' objects}
524    0.000    0.000    0.000    0.000 {method 'rfind' of 'str' objects}
612    0.000    0.000    0.000    0.000 _inspect.py:41(iscode)
616    0.000    0.000    0.000    0.000 _inspect.py:26(isfunction)
1016    0.000    0.000    0.000    0.000 {built-in method _thread.get_ident}
6    0.000    0.000    0.001    0.000 enum.py:545(<listcomp>)
15    0.000    0.000    0.010    0.001 pdb.py:142(__init__)
131    0.000    0.000    0.000    0.000 <frozen importlib._bootstrap_external>:523(_check_name_wrapper)
15    0.000    0.000    0.011    0.001 doctest.py:1423(run)
92    0.000    0.000    0.000    0.000 sre_compile.py:249(_compile_charset)
626    0.000    0.000    0.000    0.000 sre_parse.py:249(match)
106    0.000    0.000    0.000    0.000 {built-in method numpy.array}
131    0.000    0.000    0.005    0.000 <frozen importlib._bootstrap_external>:1077(path_stats)
41    0.000    0.000    0.005    0.000 sre_parse.py:937(parse)
284    0.000    0.000    0.000    0.000 function_base.py:443(_needs_add_docstring)
1    0.000    0.000    0.001    0.001 getlimits.py:94(_register_known_types)
522    0.000    0.000    0.000    0.000 sre_parse.py:160(__len__)
40    0.000    0.000    0.000    0.000 _inspect.py:140(formatargspec)
284    0.000    0.000    0.000    0.000 function_base.py:461(_add_docstring)
177    0.000    0.000    0.007    0.000 <frozen importlib._bootstrap_external>:154(_path_isfile)
381    0.000    0.000    0.000    0.000 sre_parse.py:286(tell)
63    0.000    0.000    0.000    0.000 sre_parse.py:432(_uniq)
182    0.000    0.000    0.000    0.000 <frozen importlib._bootstrap>:351(__init__)
309    0.000    0.000    0.000    0.000 {built-in method numpy.core._multiarray_umath.add_docstring}
2    0.000    0.000    0.003    0.001 function_base.py:1(<module>)
529    0.000    0.000    0.000    0.000 {method 'lower' of 'str' objects}
6    0.000    0.000    0.000    0.000 getlimits.py:35(__init__)
75    0.000    0.000    0.000    0.000 {built-in method _imp.is_builtin}
131    0.000    0.000    0.000    0.000 <frozen importlib._bootstrap>:35(_new_module)
364    0.000    0.000    0.000    0.000 {method 'update' of 'dict' objects}
53    0.000    0.000    0.000    0.000 enum.py:88(__setitem__)
316    0.000    0.000    0.000    0.000 overrides.py:141(array_function_dispatch)
879    0.000    0.000    0.000    0.000 {method 'lstrip' of 'str' objects}
6    0.000    0.000    0.000    0.000 enum.py:221(<setcomp>)
185    0.000    0.000    0.000    0.000 <frozen importlib._bootstrap>:160(__exit__)
83    0.000    0.000    0.000    0.000 enum.py:462(__setattr__)
1    0.000    0.000    0.002    0.002 _add_newdocs.py:1(<module>)
169    0.000    0.000    0.000    0.000 {built-in method _imp.is_frozen}
5    0.000    0.000    0.000    0.000 numeric.py:2257(isclose)
1    0.000    0.000    0.003    0.003 defchararray.py:1(<module>)
86    0.000    0.000    0.000    0.000 sre_parse.py:355(_escape)
5    0.000    0.000    0.000    0.000 numeric.py:2337(within_tol)
41    0.000    0.000    0.000    0.000 enum.py:977(__and__)
118    0.000    0.000    0.000    0.000 sre_compile.py:423(_simple)
15/1    0.000    0.000    0.002    0.002 doctest.py:975(_find)
1    0.000    0.000    0.000    0.000 core.py:2706(MaskedArray)
104    0.000    0.000    0.001    0.000 enum.py:358(__call__)
81    0.000    0.000    0.000    0.000 <frozen importlib._bootstrap_external>:593(_validate_timestamp_pyc)
294    0.000    0.000    0.000    0.000 {built-in method from_bytes}
52/36    0.000    0.000    0.000    0.000 sre_compile.py:461(_get_literal_prefix)
1    0.000    0.000    0.000    0.000 {function SeedSequence.generate_state at 0x0000019E2E6AFCA0}
256    0.000    0.000    0.000    0.000 sre_parse.py:111(__init__)
151    0.000    0.000    0.000    0.000 {built-in method builtins.issubclass}
1    0.000    0.000    0.000    0.000 threading.py:1(<module>)
43    0.000    0.000    0.000    0.000 {method 'expandtabs' of 'str' objects}
865    0.000    0.000    0.000    0.000 {method 'isupper' of 'str' objects}
1    0.000    0.000    0.005    0.005 socket.py:4(<module>)
63    0.000    0.000    0.000    0.000 {built-in method fromkeys}
2    0.000    0.000    0.002    0.001 polynomial.py:1(<module>)
15    0.000    0.000    0.000    0.000 {method 'reduce' of 'numpy.ufunc' objects}
1    0.000    0.000    0.000    0.000 decoder.py:254(JSONDecoder)
12    0.000    0.000    0.000    0.000 datetime.py:492(__new__)
1    0.000    0.000    0.003    0.003 fromnumeric.py:1(<module>)
2    0.000    0.000    0.000    0.000 {built-in method nt.putenv}
6    0.000    0.000    0.002    0.000 enum.py:528(_convert_)
42    0.000    0.000    0.000    0.000 {method 'split' of 'str' objects}
185    0.000    0.000    0.000    0.000 <frozen importlib._bootstrap>:152(__init__)
92    0.000    0.000    0.000    0.000 {method 'replace' of 'str' objects}
1    0.000    0.000    0.002    0.002 numerictypes.py:1(<module>)
14    0.000    0.000    0.000    0.000 {method 'split' of 're.Pattern' objects}
41    0.000    0.000    0.003    0.000 sre_compile.py:598(_code)
6    0.000    0.000    0.000    0.000 numeric.py:2514(extend_all)
268    0.000    0.000    0.000    0.000 {method 'find' of 'bytearray' objects}
106    0.000    0.000    0.000    0.000 {method 'extend' of 'list' objects}
209    0.000    0.000    0.000    0.000 socket.py:88(<lambda>)
450    0.000    0.000    0.000    0.000 {built-in method nt.fspath}
14    0.000    0.000    0.000    0.000 hashlib.py:126(__get_openssl_constructor)
18    0.000    0.000    0.000    0.000 sre_compile.py:413(<listcomp>)
57    0.000    0.000    0.000    0.000 sre_parse.py:84(opengroup)
30    0.000    0.000    0.000    0.000 getlimits.py:41(<lambda>)
2    0.000    0.000    0.005    0.003 shape_base.py:1(<module>)
182    0.000    0.000    0.000    0.000 <frozen importlib._bootstrap>:736(find_spec)
32    0.000    0.000    0.000    0.000 <frozen importlib._bootstrap_external>:167(_path_isabs)
14    0.000    0.000    0.000    0.000 <frozen importlib._bootstrap_external>:1585(<setcomp>)
169    0.000    0.000    0.000    0.000 <frozen importlib._bootstrap>:811(find_spec)
1    0.000    0.000    0.005    0.005 linalg.py:1(<module>)
1    0.000    0.000    0.002    0.002 scimath.py:1(<module>)
62    0.000    0.000    0.000    0.000 {built-in method nt.getcwd}
107    0.000    0.000    0.000    0.000 re.py:188(match)
14    0.000    0.000    0.001    0.000 <frozen zipimport>:63(__init__)
1    0.000    0.000    0.000    0.000 ctypeslib.py:365(<dictcomp>)
50    0.000    0.000    0.000    0.000 _internal.py:815(_ufunc_doc_signature_formatter)
14    0.000    0.000    0.000    0.000 <frozen importlib._bootstrap_external>:1466(__init__)
1    0.000    0.000    0.000    0.000 laguerre.py:1(<module>)
1    0.000    0.000    0.006    0.006 pdb.py:3(<module>)
20    0.000    0.000    0.000    0.000 {method 'findall' of 're.Pattern' objects}
15    0.000    0.000    0.000    0.000 ntpath.py:289(expanduser)
1    0.000    0.000    0.002    0.002 npyio.py:1(<module>)
14    0.000    0.000    0.000    0.000 mixins.py:26(_reflected_binary_method)
41    0.000    0.000    0.000    0.000 sre_parse.py:224(__init__)
15    0.000    0.000    0.000    0.000 doctest.py:183(_extract_future_flags)
1    0.000    0.000    0.000    0.000 {built-in method nt._add_dll_directory}
14    0.000    0.000    0.001    0.000 <frozen importlib._bootstrap_external>:1324(_path_hooks)
131    0.000    0.000    0.000    0.000 <frozen importlib._bootstrap_external>:1006(__init__)
210    0.000    0.000    0.000    0.000 socket.py:93(<lambda>)
1    0.000    0.000    0.001    0.001 nanfunctions.py:1(<module>)
15    0.000    0.000    0.000    0.000 doctest.py:1277(__run)
207    0.000    0.000    0.000    0.000 socket.py:78(<lambda>)
208    0.000    0.000    0.000    0.000 socket.py:83(<lambda>)
98    0.000    0.000    0.000    0.000 enum.py:670(__new__)
1    0.000    0.000    0.002    0.002 hmac.py:1(<module>)
1    0.000    0.000    0.000    0.000 stride_tricks.py:1(<module>)
18    0.000    0.000    0.015    0.001 <frozen importlib._bootstrap_external>:1171(create_module)
345    0.000    0.000    0.000    0.000 {method 'add' of 'set' objects}
1    0.000    0.000    0.001    0.001 datetime.py:1(<module>)
1    0.000    0.000    0.011    0.011 index_tricks.py:1(<module>)
18    0.000    0.000    0.000    0.000 _ufunc_config.py:32(seterr)
1    0.000    0.000    0.004    0.004 subprocess.py:10(<module>)
178    0.000    0.000    0.000    0.000 {method 'pop' of 'dict' objects}
1    0.000    0.000    0.000    0.000 subprocess.py:700(Popen)
41    0.000    0.000    0.000    0.000 {built-in method _sre.compile}
13    0.000    0.000    0.000    0.000 {built-in method _imp.exec_builtin}
37    0.000    0.000    0.000    0.000 os.py:674(__getitem__)
41    0.000    0.000    0.000    0.000 os.py:746(encodekey)
1    0.000    0.000    0.000    0.000 result.py:24(TestResult)
1    0.000    0.000    0.000    0.000 _compat_pickle.py:9(<module>)
1    0.000    0.000    0.001    0.001 _type_aliases.py:1(<module>)
32    0.000    0.000    0.000    0.000 {built-in method nt._path_splitroot}
14    0.000    0.000    0.001    0.000 core.py:116(doc_note)
197    0.000    0.000    0.000    0.000 sre_parse.py:81(groups)
18    0.000    0.000    0.000    0.000 sre_compile.py:411(_mk_bitmap)
6    0.000    0.000    0.001    0.000 enum.py:475(_create_)
1    0.000    0.000    0.001    0.001 extras.py:1(<module>)
449    0.000    0.000    0.000    0.000 {built-in method builtins.ord}
1    0.000    0.000    0.000    0.000 arrayprint.py:1(<module>)
15    0.000    0.000    0.000    0.000 arrayprint.py:1527(_guarded_repr_or_str)
265    0.000    0.000    0.000    0.000 {method 'partition' of 'str' objects}
15    0.000    0.000    0.001    0.000 linecache.py:52(checkcache)
1    0.000    0.000    0.004    0.004 subprocess.py:1334(_execute_child)
1    0.000    0.000    0.002    0.002 twodim_base.py:1(<module>)
15    0.000    0.000    0.000    0.000 doctest.py:627(parse)
44    0.000    0.000    0.000    0.000 core.py:132(get_object_signature)
1    0.000    0.000    0.000    0.000 _string_helpers.py:9(<listcomp>)
1    0.000    0.000    0.002    0.002 pickle.py:1(<module>)
15    0.000    0.000    0.000    0.000 fromnumeric.py:69(_wrapreduction)
3    0.000    0.000    0.000    0.000 enum.py:1017(_decompose)
1    0.000    0.000    0.004    0.004 subprocess.py:756(__init__)
1    0.000    0.000    0.018    0.018 doctest.py:9(<module>)
41    0.000    0.000    0.000    0.000 sre_parse.py:76(__init__)
1    0.000    0.000    0.001    0.001 random.py:1(<module>)
1    0.000    0.000    0.000    0.000 {built-in method winreg.OpenKeyEx}
40    0.000    0.000    0.000    0.000 sre_parse.py:295(_class_escape)
26    0.000    0.000    0.000    0.000 core.py:6755(getdoc)
15    0.000    0.000    0.001    0.000 bdb.py:54(reset)
18    0.000    0.000    0.000    0.000 _ufunc_config.py:131(geterr)
30    0.000    0.000    0.000    0.000 inspect.py:295(isroutine)
30    0.000    0.000    0.000    0.000 sre_compile.py:492(_get_charset_prefix)
1    0.000    0.000    0.000    0.000 {method 'readlines' of '_io._IOBase' objects}
1    0.000    0.000    0.000    0.000 subprocess.py:1207(_close_pipe_fds)
53    0.000    0.000    0.000    0.000 enum.py:44(_is_private)
1    0.000    0.000    0.001    0.001 parse.py:1(<module>)
10    0.000    0.000    0.000    0.000 {method 'sub' of 're.Pattern' objects}
1    0.000    0.000    0.002    0.002 pathlib.py:1(<module>)
18    0.000    0.000    0.000    0.000 enum.py:582(_find_data_type)
1    0.000    0.000    0.001    0.001 type_check.py:1(<module>)
1    0.000    0.000    0.000    0.000 umath.py:1(<module>)
22/12    0.000    0.000    0.000    0.000 {built-in method _abc._abc_subclasscheck}
60    0.000    0.000    0.000    0.000 {method 'copy' of 'numpy.ndarray' objects}
16    0.000    0.000    0.000    0.000 _type_aliases.py:58(bitname)
123    0.000    0.000    0.000    0.000 sre_parse.py:168(__setitem__)
41    0.000    0.000    0.000    0.000 sre_parse.py:921(fix_flags)
1    0.000    0.000    0.002    0.002 _pocketfft.py:1(<module>)
1    0.000    0.000    0.000    0.000 encoder.py:1(<module>)
18    0.000    0.000    0.000    0.000 sre_parse.py:267(getuntil)
13    0.000    0.000    0.000    0.000 <frozen importlib._bootstrap>:757(create_module)
39    0.000    0.000    0.015    0.000 _add_newdocs_scalars.py:62(<genexpr>)
23    0.000    0.000    0.000    0.000 abc.py:105(__new__)
82    0.000    0.000    0.000    0.000 sre_compile.py:595(isstring)
371    0.000    0.000    0.000    0.000 {built-in method builtins.globals}
106    0.000    0.000    0.000    0.000 {built-in method builtins.abs}
51    0.000    0.000    0.009    0.000 re.py:250(compile)
13    0.000    0.000    0.000    0.000 <frozen importlib._bootstrap>:415(spec_from_loader)
1    0.000    0.000    0.000    0.000 pickle.py:197(<listcomp>)
90    0.000    0.000    0.000    0.000 sre_compile.py:65(_combine_flags)
1    0.000    0.000    0.000    0.000 chebyshev.py:1(<module>)
57    0.000    0.000    0.000    0.000 sre_parse.py:96(closegroup)
1    0.000    0.000    0.000    0.000 {built-in method nt.scandir}
10    0.000    0.000    0.000    0.000 {method 'sort' of 'list' objects}
5    0.000    0.000    0.000    0.000 linalg.py:135(_commonType)
14    0.000    0.000    0.001    0.000 <frozen importlib._bootstrap_external>:1597(path_hook_for_FileFinder)
2    0.000    0.000    0.000    0.000 {built-in method builtins.dir}
43    0.000    0.000    0.000    0.000 os.py:740(check_str)
90    0.000    0.000    0.000    0.000 _inspect.py:131(strseq)
1    0.000    0.000    0.001    0.001 _methods.py:1(<module>)
1    0.000    0.000    0.000    0.000 _type_aliases.py:94(_add_aliases)
18/13    0.000    0.000    0.012    0.001 <frozen importlib._bootstrap_external>:1179(exec_module)
50    0.000    0.000    0.000    0.000 <frozen importlib._bootstrap_external>:621(_validate_hash_pyc)
1    0.000    0.000    0.000    0.000 getlimits.py:1(<module>)
5    0.000    0.000    0.029    0.006 <__array_function__ internals>:2(solve)
15    0.000    0.000    0.001    0.000 doctest.py:1036(_get_test)
46    0.000    0.000    0.000    0.000 types.py:171(__get__)
2    0.000    0.000    0.000    0.000 {built-in method nt.unsetenv}
15    0.000    0.000    0.000    0.000 arrayprint.py:468(wrapper)
162    0.000    0.000    0.000    0.000 <frozen importlib._bootstrap>:406(has_location)
1    0.000    0.000    0.024    0.024 _add_newdocs_scalars.py:1(<module>)
1    0.000    0.000    0.002    0.002 decoder.py:1(<module>)
1    0.000    0.000    0.005    0.005 subprocess.py:1090(communicate)
1    0.000    0.000    0.000    0.000 base64.py:3(<module>)
19    0.000    0.000    0.000    0.000 {built-in method numpy.seterrobj}
2    0.000    0.000    0.000    0.000 {built-in method _ctypes.POINTER}
4    0.000    0.000    0.000    0.000 contextlib.py:452(callback)
1    0.000    0.000    0.001    0.001 _internal.py:1(<module>)
257    0.000    0.000    0.000    0.000 hmac.py:18(<genexpr>)
1    0.000    0.000    0.000    0.000 {built-in method _socket.gethostname}
13    0.000    0.000    0.000    0.000 ntpath.py:124(splitdrive)
1    0.000    0.000    0.007    0.007 platform.py:3(<module>)
41    0.000    0.000    0.000    0.000 doctest.py:568(__lt__)
15    0.000    0.000    0.000    0.000 fromnumeric.py:2367(all)
1    0.000    0.000    0.015    0.015 _pickle.py:1(<module>)
1    0.000    0.000    0.013    0.013 doctest.py:1862(testmod)
26    0.000    0.000    0.000    0.000 core.py:916(__init__)
75    0.000    0.000    0.000    0.000 overrides.py:122(decorator)
13    0.000    0.000    0.000    0.000 _dtype_ctypes.py:100(dtype_from_ctypes_type)
53    0.000    0.000    0.000    0.000 enum.py:22(_is_dunder)
30    0.000    0.000    0.015    0.000 platform.py:825(uname)
15    0.000    0.000    0.010    0.001 doctest.py:359(__init__)
6    0.000    0.000    0.000    0.000 enum.py:443(__members__)
29    0.000    0.000    0.000    0.000 inspect.py:727(getmodule)
288    0.000    0.000    0.000    0.000 {built-in method builtins.chr}
257    0.000    0.000    0.000    0.000 hmac.py:19(<genexpr>)
2    0.000    0.000    0.000    0.000 glob.py:117(_iterdir)
53    0.000    0.000    0.000    0.000 enum.py:33(_is_sunder)
1    0.000    0.000    0.001    0.001 selectors.py:1(<module>)
1    0.000    0.000    0.007    0.007 py3k.py:1(<module>)
10    0.000    0.000    0.001    0.000 extras.py:239(getdoc)
23    0.000    0.000    0.001    0.000 overrides.py:223(decorator)
30    0.000    0.000    0.000    0.000 getlimits.py:25(_fr1)
1    0.000    0.000    0.000    0.000 threading.py:95(_RLock)
1    0.000    0.000    0.000    0.000 utils.py:1(<module>)
1    0.000    0.000    0.000    0.000 {built-in method _winapi.CreatePipe}
6    0.000    0.000    0.000    0.000 enum.py:618(_find_new_)
15    0.000    0.000    0.000    0.000 doctest.py:1402(__record_outcome)
1    0.000    0.000    0.000    0.000 version.py:1(<module>)
1    0.000    0.000    0.001    0.001 signal.py:1(<module>)
7    0.000    0.000    0.000    0.000 getlimits.py:514(__init__)
1    0.000    0.000    0.009    0.009 platform.py:360(win32_ver)
1    0.000    0.000    0.000    0.000 _polybase.py:18(ABCPolyBase)
5    0.000    0.000    0.000    0.000 textwrap.py:414(dedent)
13    0.000    0.000    0.000    0.000 <frozen importlib._bootstrap>:241(_requires_builtin_wrapper)
15    0.000    0.000    0.001    0.000 pdb.py:196(reset)
14    0.000    0.000    0.000    0.000 __init__.py:142(_check_size)
1    0.000    0.000    0.000    0.000 __init__.py:337(_sanity_check)
1    0.000    0.000    0.011    0.011 overrides.py:1(<module>)
1    0.000    0.000    0.000    0.000 _ufunc_config.py:1(<module>)
1    0.000    0.000    0.000    0.000 hermite.py:1(<module>)
75    0.000    0.000    0.000    0.000 overrides.py:111(set_module)
1    0.000    0.000    0.001    0.001 arraysetops.py:1(<module>)
59    0.000    0.000    0.000    0.000 _inspect.py:144(<lambda>)
6    0.000    0.000    0.000    0.000 numeric.py:149(ones)
30    0.000    0.000    0.000    0.000 getlimits.py:40(<lambda>)
131    0.000    0.000    0.000    0.000 <frozen importlib._bootstrap_external>:1031(get_filename)
8    0.000    0.000    0.000    0.000 enum.py:971(__or__)
82    0.000    0.000    0.000    0.000 sre_compile.py:453(_get_iscased)
13    0.000    0.000    0.000    0.000 {method 'setter' of 'property' objects}
5    0.000    0.000    0.003    0.001 shape_base.py:285(hstack)
3    0.000    0.000    0.000    0.000 enum.py:938(_create_pseudo_member_)
33    0.000    0.000    0.000    0.000 {method 'items' of 'mappingproxy' objects}
131    0.000    0.000    0.000    0.000 <frozen importlib._bootstrap_external>:841(create_module)
115    0.000    0.000    0.000    0.000 {method 'items' of 'dict' objects}
30    0.000    0.000    0.000    0.000 getlimits.py:17(_fr0)
3    0.000    0.000    0.000    0.000 decoder.py:343(raw_decode)
18    0.000    0.000    0.000    0.000 enum.py:571(_get_mixins_)
1    0.000    0.000    0.008    0.008 _distributor_init.py:2(<module>)
112    0.000    0.000    0.000    0.000 <frozen importlib._bootstrap_external>:1472(<genexpr>)
41    0.000    0.000    0.000    0.000 enum.py:12(_is_descriptor)
76    0.000    0.000    0.000    0.000 inspect.py:64(ismodule)
1    0.000    0.000    0.000    0.000 hashlib.py:5(<module>)
2    0.000    0.000    0.000    0.000 core.py:2974(__array_finalize__)
3    0.000    0.000    0.000    0.000 ntpath.py:180(split)
5    0.000    0.000    0.001    0.000 <__array_function__ internals>:2(allclose)
2    0.000    0.000    0.000    0.000 ntpath.py:450(normpath)
1    0.000    0.000    0.000    0.000 case.py:1(<module>)
1    0.000    0.000    0.000    0.000 _endian.py:1(<module>)
5    0.000    0.000    2.170    0.434 gauss_elim.py:68(solve)
1    0.000    0.000    0.000    0.000 records.py:1(<module>)
16    0.000    0.000    0.000    0.000 _type_aliases.py:44(_bits_of)
1    0.000    0.000    0.000    0.000 ctypeslib.py:1(<module>)
1    0.000    0.000    0.000    0.000 case.py:309(TestCase)
18    0.000    0.000    0.000    0.000 <frozen importlib._bootstrap_external>:1155(__init__)
61    0.000    0.000    0.000    0.000 {method 'translate' of 'str' objects}
17    0.000    0.000    0.000    0.000 inspect.py:494(unwrap)
78    0.000    0.000    0.000    0.000 _internal.py:826(<genexpr>)
1    0.000    0.000    0.000    0.000 pprint.py:103(PrettyPrinter)
15    0.000    0.000    0.000    0.000 arrayprint.py:1534(_array_str_implementation)
7    0.000    0.000    0.000    0.000 {method 'remove' of 'list' objects}
18    0.000    0.000    0.000    0.000 core.py:992(__init__)
6    0.000    0.000    0.000    0.000 {built-in method numpy.empty}
15    0.000    0.000    0.000    0.000 <__array_function__ internals>:2(all)
9    0.000    0.000    0.000    0.000 _ufunc_config.py:429(__enter__)
26    0.000    0.000    0.000    0.000 core.py:6750(__init__)
17    0.000    0.000    0.000    0.000 _collections_abc.py:767(__contains__)
6    0.000    0.000    0.000    0.000 <__array_function__ internals>:2(copyto)
17    0.000    0.000    0.000    0.000 inspect.py:91(ismethoddescriptor)
5    0.000    0.000    0.001    0.000 numeric.py:2179(allclose)
1    0.000    0.000    0.009    0.009 subprocess.py:464(run)
6    0.000    0.000    0.000    0.000 enum.py:164(__prepare__)
1    0.000    0.000    0.000    0.000 numerictypes.py:442(_construct_lookups)
8    0.000    0.000    0.000    0.000 core.py:8103(getdoc)
1    0.000    0.000    0.000    0.000 argparse.py:4(<module>)
15    0.000    0.000    0.000    0.000 doctest.py:776(_min_indent)
1    0.000    0.000    0.000    0.000 {built-in method _hashlib.openssl_sha512}
1    0.000    0.000    0.000    0.000 pickle.py:1136(_Unpickler)
15    0.000    0.000    0.000    0.000 doctest.py:666(get_doctest)
1    0.000    0.000    0.000    0.000 fnmatch.py:80(translate)
1    0.000    0.000    0.000    0.000 posixpath.py:1(<module>)
1    0.000    0.000    0.000    0.000 pathlib.py:653(PurePath)
15    0.000    0.000    0.000    0.000 doctest.py:528(__init__)
2    0.000    0.000    0.000    0.000 {method 'close' of '_io.TextIOWrapper' objects}
64    0.000    0.000    0.000    0.000 inspect.py:73(isclass)
15    0.000    0.000    0.000    0.000 pdb.py:200(forget)
1    0.000    0.000    0.000    0.000 _type_aliases.py:74(_add_types)
30    0.000    0.000    0.000    0.000 _type_aliases.py:203(_add_array_type)
1    0.000    0.000    0.005    0.005 secrets.py:1(<module>)
1    0.000    0.000    0.000    0.000 difflib.py:1(<module>)
52    0.000    0.000    0.000    0.000 _add_newdocs.py:6230(refer_to_array_attribute)
1    0.000    0.000    0.009    0.009 platform.py:261(_syscmd_ver)
144    0.000    0.000    0.000    0.000 {built-in method builtins.id}
31    0.000    0.000    0.000    0.000 signal.py:10(<lambda>)
1    0.000    0.000    0.000    0.000 mixins.py:59(NDArrayOperatorsMixin)
14    0.000    0.000    0.000    0.000 re.py:223(split)
1    0.000    0.000    0.000    0.000 hermite_e.py:1(<module>)
1    0.000    0.000    0.000    0.000 core.py:6439(__new__)
1    0.000    0.000    0.000    0.000 legendre.py:1(<module>)
83    0.000    0.000    0.000    0.000 {method 'get' of 'mappingproxy' objects}
4    0.000    0.000    0.000    0.000 ntpath.py:77(join)
50    0.000    0.000    0.000    0.000 {built-in method sys.intern}
1    0.000    0.000    0.000    0.000 __config__.py:3(<module>)
1    0.000    0.000    0.000    0.000 _globals.py:1(<module>)
59    0.000    0.000    0.000    0.000 {built-in method builtins.repr}
24    0.000    0.000    0.000    0.000 numerictypes.py:515(_scalar_type_key)
5    0.000    0.000    0.000    0.000 shape_base.py:23(atleast_1d)
1    0.000    0.000    0.006    0.006 defmatrix.py:1(<module>)
6    0.000    0.000    0.003    0.001 <__array_function__ internals>:2(concatenate)
1    0.000    0.000    0.000    0.000 histograms.py:1(<module>)
15    0.000    0.000    0.000    0.000 doctest.py:678(get_examples)
5    0.000    0.000    0.000    0.000 {method 'astype' of 'numpy.ndarray' objects}
61    0.000    0.000    0.000    0.000 inspect.py:159(isfunction)
49    0.000    0.000    0.000    0.000 _string_helpers.py:16(english_lower)
1    0.000    0.000    0.000    0.000 loader.py:1(<module>)
1    0.000    0.000    0.000    0.000 einsumfunc.py:1(<module>)
1    0.000    0.000    0.009    0.009 subprocess.py:377(check_output)
11    0.000    0.000    0.000    0.000 {built-in method _abc._abc_register}
4    0.000    0.000    0.000    0.000 warnings.py:181(_add_filter)
10    0.000    0.000    0.000    0.000 linalg.py:107(_makearray)
1    0.000    0.000    0.000    0.000 _iotools.py:451(StringConverter)
3    0.000    0.000    0.001    0.000 __init__.py:340(__init__)
1    0.000    0.000    0.000    0.000 os.py:48(<listcomp>)
50    0.000    0.000    0.000    0.000 __init__.py:419(<genexpr>)
15    0.000    0.000    0.000    0.000 bdb.py:273(_set_stopinfo)
2    0.000    0.000    0.000    0.000 {built-in method builtins.sorted}
1    0.000    0.000    0.000    0.000 tokenize.py:388(open)
7    0.000    0.000    0.000    0.000 core.py:2553(_arraymethod)
52    0.000    0.000    0.000    0.000 {method 'setdefault' of 'dict' objects}
91    0.000    0.000    0.000    0.000 {built-in method _sre.unicode_iscased}
1    0.000    0.000    0.000    0.000 _exceptions.py:1(<module>)
14    0.000    0.000    0.000    0.000 doctest.py:947(_from_module)
68    0.000    0.000    0.000    0.000 {method 'isidentifier' of 'str' objects}
36    0.000    0.000    0.000    0.000 getlimits.py:39(<lambda>)
1    0.000    0.000    0.000    0.000 {method 'dot' of 'numpy.ndarray' objects}
15    0.000    0.000    0.000    0.000 cmd.py:76(__init__)
1    0.000    0.000    0.001    0.001 scanner.py:1(<module>)
13    0.000    0.000    0.000    0.000 _dtype_ctypes.py:71(_from_ctypes_scalar)
1    0.000    0.000    0.000    0.000 helper.py:1(<module>)
3    0.000    0.000    0.000    0.000 decoder.py:332(decode)
32    0.000    0.000    0.000    0.000 _type_aliases.py:46(<genexpr>)
9    0.000    0.000    0.000    0.000 _ufunc_config.py:434(__exit__)
1    0.000    0.000    0.000    0.000 {built-in method _hashlib.openssl_md5}
3    0.000    0.000    0.000    0.000 warnings.py:130(filterwarnings)
1    0.000    0.000    0.000    0.000 _string_helpers.py:1(<module>)
1    0.000    0.000    0.000    0.000 _type_aliases.py:130(_add_integer_aliases)
1    0.000    0.000    0.001    0.001 runner.py:1(<module>)
5    0.000    0.000    0.003    0.001 <__array_function__ internals>:2(hstack)
1    0.000    0.000    0.000    0.000 memmap.py:1(<module>)
1    0.000    0.000    0.000    0.000 ufunclike.py:1(<module>)
38    0.000    0.000    0.000    0.000 {built-in method numpy.geterrobj}
48    0.000    0.000    0.000    0.000 inspect.py:81(ismethod)
1    0.000    0.000    0.000    0.000 {built-in method nt.open}
13    0.000    0.000    0.000    0.000 mixins.py:44(_numeric_methods)
1    0.000    0.000    0.000    0.000 defchararray.py:1805(chararray)
30    0.000    0.000    0.000    0.000 enum.py:438(<genexpr>)
2    0.000    0.000    0.000    0.000 subprocess.py:1462(_wait)
5    0.000    0.000    0.000    0.000 sre_parse.py:861(_parse_flags)
1    0.000    0.000    0.002    0.002 main.py:1(<module>)
1    0.000    0.000    0.000    0.000 pprint.py:11(<module>)
20    0.000    0.000    0.000    0.000 {built-in method time.time}
63    0.000    0.000    0.000    0.000 abc.py:7(abstractmethod)
1    0.000    0.000    0.000    0.000 polynomial.py:1068(poly1d)
1    0.000    0.000    0.000    0.000 arraypad.py:1(<module>)
1    0.000    0.000    0.000    0.000 pdb.py:138(Pdb)
33    0.000    0.000    0.000    0.000 {method 'clear' of 'dict' objects}
1    0.000    0.000    0.000    0.000 bdb.py:1(<module>)
14    0.000    0.000    0.000    0.000 <frozen importlib._bootstrap_external>:159(_path_isdir)
1    0.000    0.000    0.000    0.000 contextlib.py:489(__exit__)
6    0.000    0.000    0.000    0.000 sre_compile.py:432(_generate_overlap_table)
1    0.000    0.000    0.000    0.000 _datasource.py:1(<module>)
50    0.000    0.000    0.000    0.000 {method '__contains__' of 'frozenset' objects}
1    0.000    0.000    0.000    0.000 pathlib.py:120(_WindowsFlavour)
1    0.000    0.000    0.000    0.000 subprocess.py:1240(_get_handles)
1    0.000    0.000    0.000    0.000 format.py:1(<module>)
1    0.000    0.000    0.002    0.002 doctest.py:579(DocTestParser)
10    0.000    0.000    0.001    0.000 extras.py:235(__init__)
1    0.000    0.000    0.000    0.000 _globals.py:77(__new__)
1    0.000    0.000    0.001    0.001 fnmatch.py:1(<module>)
5    0.000    0.000    0.000    0.000 <__array_function__ internals>:2(result_type)
5    0.000    0.000    0.000    0.000 <__array_function__ internals>:2(isclose)
1    0.000    0.000    0.000    0.000 _iotools.py:1(<module>)
2    0.000    0.000    0.000    0.000 core.py:2948(_update_from)
1    0.000    0.000    0.001    0.001 string.py:1(<module>)
18    0.000    0.000    0.000    0.000 {method 'translate' of 'bytearray' objects}
2    0.000    0.000    0.000    0.000 genericpath.py:39(isdir)
46    0.000    0.000    0.000    0.000 enum.py:792(value)
1    0.000    0.000    0.000    0.000 numbers.py:32(Complex)
8    0.000    0.000    0.000    0.000 core.py:8098(__init__)
1    0.000    0.000    0.000    0.000 linalg.py:73(_determine_error_states)
4/3    0.000    0.000    0.000    0.000 {method 'view' of 'numpy.ndarray' objects}
25    0.000    0.000    0.000    0.000 {built-in method numpy.asanyarray}
16    0.000    0.000    0.000    0.000 {built-in method builtins.any}
86    0.000    0.000    0.000    0.000 _compat_pickle.py:167(<genexpr>)
1    0.000    0.000    0.000    0.000 random.py:101(Random)
1    0.000    0.000    0.000    0.000 traceback.py:1(<module>)
1    0.000    0.000    0.000    0.000 _asarray.py:1(<module>)
1    0.000    0.000    0.000    0.000 platform.py:233(_norm_version)
1    0.000    0.000    0.002    0.002 doctest.py:845(find)
1    0.000    0.000    0.000    0.000 util.py:1(<module>)
6    0.000    0.000    0.000    0.000 enum.py:561(_check_for_existing_members)
48    0.000    0.000    0.000    0.000 {method 'pop' of 'list' objects}
13    0.000    0.000    0.000    0.000 <frozen importlib._bootstrap>:765(exec_module)
16    0.000    0.000    0.000    0.000 {method 'copy' of 'dict' objects}
1    0.000    0.000    0.001    0.001 result.py:1(<module>)
1    0.000    0.000    0.000    0.000 suite.py:1(<module>)
15    0.000    0.000    0.000    0.000 {method 'finditer' of 're.Pattern' objects}
2    0.000    0.000    0.000    0.000 sre_compile.py:416(_bytes_to_codes)
1    0.000    0.000    0.000    0.000 datetime.py:1245(time)
1    0.000    0.000    0.000    0.000 _type_aliases.py:211(_set_array_types)
1    0.000    0.000    0.000    0.000 {function Random.seed at 0x0000019E2E70E280}
5    0.000    0.000    0.000    0.000 _collections_abc.py:760(get)
1    0.000    0.000    0.000    0.000 datetime.py:1594(datetime)
15    0.000    0.000    0.000    0.000 fromnumeric.py:70(<dictcomp>)
1    0.000    0.000    0.000    0.000 core.py:2817(__new__)
1    0.000    0.000    0.001    0.001 string.py:69(__init_subclass__)
1    0.000    0.000    0.000    0.000 threading.py:795(__init__)
20    0.000    0.000    0.000    0.000 mixins.py:16(_binary_method)
5    0.000    0.000    0.000    0.000 {method 'reshape' of 'numpy.ndarray' objects}
71    0.000    0.000    0.000    0.000 {built-in method _sre.unicode_tolower}
60    0.000    0.000    0.000    0.000 {built-in method builtins.divmod}
1    0.000    0.000    0.000    0.000 cp1252.py:22(decode)
1    0.000    0.000    0.000    0.000 contextlib.py:76(inner)
6    0.000    0.000    0.000    0.000 enum.py:81(__init__)
1    0.000    0.000    0.000    0.000 linecache.py:80(updatecache)
1    0.000    0.000    0.000    0.000 _type_aliases.py:158(_set_up_aliases)
1    0.000    0.000    0.001    0.001 code.py:1(<module>)
1    0.000    0.000    0.000    0.000 numbers.py:4(<module>)
17    0.000    0.000    0.000    0.000 <string>:1(<lambda>)
1    0.000    0.000    0.000    0.000 _polybase.py:1(<module>)
18    0.000    0.000    0.000    0.000 ntpath.py:34(_get_bothseps)
2    0.000    0.000    0.000    0.000 functools.py:478(lru_cache)
1    0.000    0.000    0.002    0.002 glob.py:1(<module>)
1    0.000    0.000    0.000    0.000 struct.py:1(<module>)
16    0.000    0.000    0.000    0.000 _add_newdocs_scalars.py:18(type_aliases_gen)
1    0.000    0.000    0.000    0.000 threading.py:1307(__init__)
6    0.000    0.000    0.000    0.000 enum.py:197(<dictcomp>)
41    0.000    0.000    0.000    0.000 enum.py:551(<lambda>)


I cut the output to stay within the characther limit.