parameters: (self, m)
return_statement: return m
docstring: Given a psd matrix m, rotate to put one's on the diagonal, turning it
          into a correlation matrix.  This also requires the trace equal the
          dimensionality. Note: modifies input matrix
docstring_summary: Given a psd matrix m, rotate to put one's on the diagonal, turning it
          into a correlation matrix.  This also requires the trace equal the
          dimensionality. Note: modifies input matrix
docstring_tokens: Given a psd matrix m rotate to put one s on the diagonal turning it into a correlation matrix . This also requires the trace equal the dimensionality . Note : modifies input matrix
function: def _to_corr(self, m):
          """
          Given a psd matrix m, rotate to put one's on the diagonal, turning it
          into a correlation matrix.  This also requires the trace equal the
          dimensionality. Note: modifies input matrix
          """
          # Check requirements for in-place Givens
          if not (m.flags.c_contiguous and m.dtype == np.float64 and m.shape[0] == m.shape[1]):
              raise ValueError()
  
          d = m.shape[0]
          for i in range(d-1):
              if m[i,i] == 1:
                  continue
              elif m[i, i] > 1:
                  for j in range(i+1, d):
                      if m[j, j] < 1:
                          break
              else:
                  for j in range(i+1, d):
                      if m[j, j] > 1:
                          break
  
              c, s = self._givens_to_1(m[i,i], m[j,j], m[i,j])
  
              # Use BLAS to apply Givens rotations in-place. Equivalent to:
              # g = np.eye(d)
              # g[i, i] = g[j,j] = c
              # g[j, i] = -s; g[i, j] = s
              # m = np.dot(g.T, np.dot(m, g))
              mv = m.ravel()
              drot(mv, mv, c, -s, n=d,
                   offx=i*d, incx=1, offy=j*d, incy=1,
                   overwrite_x=True, overwrite_y=True)
              drot(mv, mv, c, -s, n=d,
                   offx=i, incx=d, offy=j, incy=d,
                   overwrite_x=True, overwrite_y=True)
  
          return m
function_tokens: def _to_corr ( self , m ) : # Check requirements for in-place Givens if not ( m . flags . c_contiguous and m . dtype == np . float64 and m . shape [ 0 ] == m . shape [ 1 ] ) : raise ValueError ( ) d = m . shape [ 0 ] for i in range ( d - 1 ) : if m [ i , i ] == 1 : continue elif m [ i , i ] > 1 : for j in range ( i + 1 , d ) : if m [ j , j ] < 1 : break else : for j in range ( i + 1 , d ) : if m [ j , j ] > 1 : break c , s = self . _givens_to_1 ( m [ i , i ] , m [ j , j ] , m [ i , j ] ) # Use BLAS to apply Givens rotations in-place. Equivalent to: # g = np.eye(d) # g[i, i] = g[j,j] = c # g[j, i] = -s; g[i, j] = s # m = np.dot(g.T, np.dot(m, g)) mv = m . ravel ( ) drot ( mv , mv , c , - s , n = d , offx = i * d , incx = 1 , offy = j * d , incy = 1 , overwrite_x = True , overwrite_y = True ) drot ( mv , mv , c , - s , n = d , offx = i , incx = d , offy = j , incy = d , overwrite_x = True , overwrite_y = True ) return m