File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change 55import numpy
66
77
8- def vvsort (val , vec , size , xp ):
8+ def vvsort (val , vec , size , xp ):
99 for i in range (size ):
1010 imax = i
1111 for j in range (i + 1 , size ):
12- if xp .abs (val [imax ]) < xp .abs (val [j ]):
12+ unravel_imax = numpy .unravel_index (imax , val .shape )
13+ unravel_j = numpy .unravel_index (j , val .shape )
14+ if xp .abs (val [unravel_imax ]) < xp .abs (val [unravel_j ]):
1315 imax = j
1416
15- temp = val [i ]
16- val [i ] = val [imax ]
17- val [imax ] = temp
17+ unravel_i = numpy .unravel_index (i , val .shape )
18+ unravel_imax = numpy .unravel_index (imax , val .shape )
1819
20+ temp = xp .empty (tuple (), dtype = vec .dtype )
21+ temp [()] = val [unravel_i ] # make a copy
22+ val [unravel_i ] = val [unravel_imax ]
23+ val [unravel_imax ] = temp
24+
1925 for k in range (size ):
20- temp = vec [k , i ]
26+ temp = xp .empty (tuple (), dtype = val .dtype )
27+ temp [()] = vec [k , i ] # make a copy
2128 vec [k , i ] = vec [k , imax ]
2229 vec [k , imax ] = temp
2330
You can’t perform that action at this time.
0 commit comments