classify_matrix_type

C++ Function Reference

1 Signature

MatrixType BigDataStatMeth::classify_matrix_type(hsize_t N, hsize_t M, hsize_t K)

2 Description

Classify matrix type based on dimensional characteristics.

3 Parameters

  • N (hsize_t): Number of rows in result matrix
  • M (hsize_t): Number of columns in result matrix
  • K (hsize_t): Inner dimension for matrix multiplication

4 Returns

MatrixType Classification result for optimization strategy selection

5 Details

Analyzes matrix dimensions to determine the optimal computational strategy. Classification considers both absolute size and aspect ratios to identify rectangular vs. square-like matrices and their relative sizes.

6 Caller Graph

Function dependencies

7 Source Code

File: inst/include/Utilities/Utilities.hppLines 580-596

inline MatrixType classify_matrix_type(hsize_t N, hsize_t M, hsize_t K) {
        hsize_t min_dim = std::min({N, M, K});
        hsize_t max_dim = std::max({N, M, K});
        double ratio = (double)max_dim / min_dim;
        
        if (min_dim < 1000 && ratio > 100) {
            return RECTANGULAR_EXTREME;
        } else if (max_dim < 10000 && ratio < 5) {
            return SQUARE_SMALL;
        } else if (max_dim < 100000 && ratio < 5) {
            return SQUARE_LARGE;  
        } else if (ratio < 5) {
            return SQUARE_EXTREME;
        } else {
            return RECTANGULAR_EXTREME;  // Default for other rectangular cases
        }
    }

8 Usage Example

#include "BigDataStatMeth.hpp"

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