bdcrossproduct

C++ Function Reference

1 Signature

Eigen::MatrixXd BigDataStatMeth::bdcrossproduct(T X)

2 Description

Compute matrix cross-product X’X.

3 Parameters

  • X (T): Input matrix

4 Returns

Cross-product matrix X’X

5 Details

Efficiently computes the cross-product of a matrix with its transpose (X’X) using optimized matrix operations.

6 Call Graph

Function dependencies

7 Source Code

File: inst/include/memAlgebra/memOptimizedProducts.hppLines 162-176

inline Eigen::MatrixXd bdcrossproduct ( T X )
{
    
    static_assert(std::is_same<T, Eigen::MatrixXd >::value || 
                  std::is_same<T, Eigen::Map< Eigen::Matrix<double, Eigen::Dynamic, Eigen::Dynamic, Eigen::RowMajor>> >::value || 
                  std::is_same<T, Eigen::Map< Eigen::Matrix<double, Eigen::Dynamic, Eigen::Dynamic, Eigen::ColMajor>> >::value ||
                  std::is_same<T, Eigen::Transpose<Eigen::Map< Eigen::Matrix<double, Eigen::Dynamic, Eigen::Dynamic, Eigen::RowMajor>> > >::value ||
                  std::is_same<T, Eigen::Transpose<Eigen::Map< Eigen::Matrix<double, Eigen::Dynamic, Eigen::Dynamic, Eigen::ColMajor>> > >::value,
                  "Error - type not allowed");
    
    Eigen::MatrixXd Xem = X;
    size_t nc(Xem.cols());
    Eigen::MatrixXd XtX(Eigen::MatrixXd(nc, nc).setZero().selfadjointView<Eigen::Lower>().rankUpdate(Xem.adjoint()));
    return(XtX);
}

8 Usage Example

#include "BigDataStatMeth.hpp"

// Example usage
auto result = bdcrossproduct(...);