BeBOP Optimized Sparse Kernel Interface Library  1.0.1h
Data Structures | Defines | Functions
estfill.h File Reference

BCSR fill ratio estimator. More...

#include <oski/common.h>
#include <oski/mangle.h>
#include <oski/matrix.h>
#include <oski/CSR/format.h>
#include <oski/CSC/format.h>

Go to the source code of this file.

Data Structures

struct  oski_fillprofile_BCSR_t
 Stores a 'fill ratio estimate' profile. More...

Defines

#define INC_OSKI_HEUR_ESTFILL_H
 oski/heur/estfill.h included.
#define PROF_FILLBCSR_GET(P, r, c)   (P)->ratio[(r-1)*(P)->max_c + (c-1)]
 Returns the fill ratio at an r x c block size.
#define PROF_FILLBCSR_SET(P, r, c, rho)   (P)->ratio[(r-1)*(P)->max_c + (c-1)] = (rho)
 Sets the fill ratio at an r x c block size.
Name mangling.
#define oski_EstimateFillBCSR   MANGLE_(oski_EstimateFillBCSR)
#define oski_DestroyBCSRFillProfile   MANGLE_(oski_DestroyBCSRFillProfile)

Functions

oski_fillprofile_BCSR_toski_EstimateFillBCSR (const oski_matspecific_t *mat, const oski_matcommon_t *props, size_t max_r, size_t max_c, double prob_examine)
 Estimate the fill ratio at a variety of block sizes for BCSR storage.
void oski_DestroyBCSRFillProfile (oski_fillprofile_BCSR_t *fill)
 Free the memory associated with a fill profile.

Detailed Description

BCSR fill ratio estimator.


Define Documentation


Function Documentation

Free the memory associated with a fill profile.

Todo:
Does not need to be type-dependent.

References oski_Free, and oski_fillprofile_BCSR_t::ratio.

oski_fillprofile_BCSR_t* oski_EstimateFillBCSR ( const oski_matspecific_t mat,
const oski_matcommon_t props,
size_t  max_r,
size_t  max_c,
double  prob_examine 
)

Estimate the fill ratio at a variety of block sizes for BCSR storage.

Returns:
If a fill estimate cannot be computed for the given matrix or matrix type, returns NULL and calls the error handler. Otherwise, returns a new fill profile.

References CheckArgs(), ERR_BAD_MAT, EstimateFillFromCSC(), EstimateFillFromCSR(), MACRO_TO_STRING, oski_fillprofile_BCSR_t::max_c, oski_fillprofile_BCSR_t::max_r, oski_Free, OSKI_IND_ID, oski_LookupMatTypeId(), oski_Malloc, OSKI_VAL_ID, oski_fillprofile_BCSR_t::ratio, oski_matspecific_t::repr, and oski_matspecific_t::type_id.