func (m *CDense) Copy(a CMatrix) (r, c int) {
	r, c = a.Dims()
	if a == m {
		return r, c
	}
	r = min(r, m.mat.Rows)
	c = min(c, m.mat.Cols)
	if r == 0 || c == 0 {
		return 0, 0
	}
	// TODO(btracey): Check for overlap when complex version exists.
	// TODO(btracey): Add fast-paths.
	for i := 0; i < r; i++ {
		for j := 0; j < c; j++ {
			m.set(i, j, a.At(i, j))
		}
	}
	return r, c
}
// Copy makes a copy of elements of a into the receiver. It is similar to the
// built-in copy; it copies as much as the overlap between the two matrices and
// returns the number of rows and columns it copied. If a aliases the receiver
// and is a transposed Dense or VecDense, with a non-unitary increment, Copy will
// panic.
//
// See the Copier interface for more information.
Copy makes a copy of elements of a into the receiver. It is similar to the
built-in copy; it copies as much as the overlap between the two matrices and
returns the number of rows and columns it copied. If a aliases the receiver
and is a transposed Dense or VecDense, with a non-unitary increment, Copy will
panic.

See the Copier interface for more information.
// Copy makes a copy of elements of a into the receiver . It is similar to the // built - in copy ; it copies as much as the overlap between the two matrices and // returns the number of rows and columns it copied . If a aliases the receiver // and is a transposed Dense or VecDense with a non - unitary increment Copy will // panic . // // See the Copier interface for more information .
func (m *CDense) Copy(a CMatrix) (r, c int) {
	r, c = a.Dims()
	if a == m {
		return r, c
	}
	r = min(r, m.mat.Rows)
	c = min(c, m.mat.Cols)
	if r == 0 || c == 0 {
		return 0, 0
	}
	for i := 0; i < r; i++ {
		for j := 0; j < c; j++ {
			m.set(i, j, a.At(i, j))
		}
	}
	return r, c
}
func ( m * CDense ) Copy ( a CMatrix ) ( r , c int ) { r , c = a . Dims ( ) if a == m { return r , c } r = min ( r , m . mat . Rows ) c = min ( c , m . mat . Cols ) if r == 0 || c == 0 { return 0 , 0 } for i := 0 ; i < r ; i ++ { for j := 0 ; j < c ; j ++ { m . set ( i , j , a . At ( i , j ) ) } } return r , c }
Copy makes a copy of elements of a into the receiver.
Copy makes a copy of elements of a into the receiver .
// TODO(btracey): Check for overlap when complex version exists. // TODO(btracey): Add fast-paths.