Cholesky_decomposition_hdf5

C++ Function Reference

1 Signature

int BigDataStatMeth::Cholesky_decomposition_hdf5(BigDataStatMeth::hdf5Dataset *inDataset, BigDataStatMeth::hdf5Dataset *outDataset, int idim0, int idim1, long dElementsBlock, Rcpp::Nullable< int > threads)

2 Description

Performs Cholesky decomposition with automatic algorithm selection.

3 Parameters

  • inDataset (BigDataStatMeth::hdf5Dataset *): Input matrix dataset (must be symmetric positive-definite)
  • outDataset (BigDataStatMeth::hdf5Dataset *): Output dataset for the Cholesky factor L
  • idim0 (int): Number of rows
  • idim1 (int): Number of columns
  • dElementsBlock (long): Block size for processing
  • threads (Rcpp::Nullable< int >): Number of threads for parallel processing (optional)

4 Returns

int 0 on success, 1 if not positive definite, 2 on errors

5 Details

inDatasetInput matrix dataset (must be symmetric positive-definite) outDatasetOutput dataset for the Cholesky factor L idim0Number of rows idim1Number of columns dElementsBlockBlock size for processing threadsNumber of threads for parallel processing (optional) int 0 on success, 1 if not positive definite, 2 on errors Automatically selects appropriate algorithm based on matrix size:Matrices < CHOLESKY_OUTOFCORE_THRESHOLD: uses intermediate algorithmMatrices ≥ CHOLESKY_OUTOFCORE_THRESHOLD: uses out-of-core tiled algorithm

6 Call Graph

Function dependencies

7 Source Code

File: inst/include/hdf5Algebra/matrixInvCholesky.hppLines 320-332

inline int Cholesky_decomposition_hdf5(BigDataStatMeth::hdf5Dataset* inDataset,  
                                       BigDataStatMeth::hdf5Dataset* outDataset, 
                                       int idim0, int idim1, long dElementsBlock, 
                                       Rcpp::Nullable<int> threads = R_NilValue)
{
    // Detect matrix size and select algorithm
    if (idim0 >= CHOLESKY_OUTOFCORE_THRESHOLD) {
        Rcpp::Rcout << "\nUsing out-of-core Cholesky for large matrix (" << idim0 << "x" << idim1 << ")\n";
        return Cholesky_decomposition_outofcore_hdf5(inDataset, outDataset, idim0, idim1, dElementsBlock, threads);
    } else {
        return Cholesky_decomposition_intermediate_hdf5(inDataset, outDataset, idim0, idim1, dElementsBlock, threads);
    }
}

8 Usage Example

#include "BigDataStatMeth.hpp"

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