Public Member Functions | Static Public Member Functions | Public Attributes | Protected Member Functions | Protected Attributes | List of all members
ML::ARIMAMemory< T, ALIGN > Struct Template Reference

#include <arima_common.h>

Collaboration diagram for ML::ARIMAMemory< T, ALIGN >:
Collaboration graph

Public Member Functions

 ARIMAMemory (const ARIMAOrder &order, int batch_size, int n_obs, char *in_buf)
 

Static Public Member Functions

static size_t compute_size (const ARIMAOrder &order, int batch_size, int n_obs)
 

Public Attributes

T * params_mu
 
T * params_beta
 
T * params_ar
 
T * params_ma
 
T * params_sar
 
T * params_sma
 
T * params_sigma2
 
T * Tparams_ar
 
T * Tparams_ma
 
T * Tparams_sar
 
T * Tparams_sma
 
T * Tparams_sigma2
 
T * d_params
 
T * d_Tparams
 
T * Z_dense
 
T * R_dense
 
T * T_dense
 
T * RQR_dense
 
T * RQ_dense
 
T * P_dense
 
T * alpha_dense
 
T * ImT_dense
 
T * ImT_inv_dense
 
T * v_tmp_dense
 
T * m_tmp_dense
 
T * K_dense
 
T * TP_dense
 
T * pred
 
T * y_diff
 
T * exog_diff
 
T * loglike
 
T * loglike_base
 
T * loglike_pert
 
T * x_pert
 
T * I_m_AxA_dense
 
T * I_m_AxA_inv_dense
 
T * Ts_dense
 
T * RQRs_dense
 
T * Ps_dense
 
T ** Z_batches
 
T ** R_batches
 
T ** T_batches
 
T ** RQR_batches
 
T ** RQ_batches
 
T ** P_batches
 
T ** alpha_batches
 
T ** ImT_batches
 
T ** ImT_inv_batches
 
T ** v_tmp_batches
 
T ** m_tmp_batches
 
T ** K_batches
 
T ** TP_batches
 
T ** I_m_AxA_batches
 
T ** I_m_AxA_inv_batches
 
T ** Ts_batches
 
T ** RQRs_batches
 
T ** Ps_batches
 
int * ImT_inv_P
 
int * ImT_inv_info
 
int * I_m_AxA_P
 
int * I_m_AxA_info
 
size_t size
 

Protected Member Functions

template<bool assign, typename ValType >
void append_buffer (ValType *&ptr, size_t n_elem)
 
template<bool assign>
void buf_offsets (const ARIMAOrder &order, int batch_size, int n_obs, char *in_buf=nullptr)
 
 ARIMAMemory (const ARIMAOrder &order, int batch_size, int n_obs)
 

Protected Attributes

char * buf
 

Detailed Description

template<typename T, int ALIGN = 256>
struct ML::ARIMAMemory< T, ALIGN >

Structure to manage ARIMA temporary memory allocations

Note
The user is expected to give a preallocated buffer to the constructor, and ownership is not transferred to this struct! The buffer must be allocated as long as the object lives, and deallocated afterwards.

Constructor & Destructor Documentation

◆ ARIMAMemory() [1/2]

template<typename T , int ALIGN = 256>
ML::ARIMAMemory< T, ALIGN >::ARIMAMemory ( const ARIMAOrder order,
int  batch_size,
int  n_obs 
)
inlineprotected

Protected constructor to estimate max size

◆ ARIMAMemory() [2/2]

template<typename T , int ALIGN = 256>
ML::ARIMAMemory< T, ALIGN >::ARIMAMemory ( const ARIMAOrder order,
int  batch_size,
int  n_obs,
char *  in_buf 
)
inline

Constructor to create pointers from buffer

Parameters
[in]orderARIMA order
[in]batch_sizeNumber of series in the batch
[in]n_obsLength of the series
[in]in_bufPointer to the temporary memory buffer. Ownership is retained by the caller

Member Function Documentation

◆ append_buffer()

template<typename T , int ALIGN = 256>
template<bool assign, typename ValType >
void ML::ARIMAMemory< T, ALIGN >::append_buffer ( ValType *&  ptr,
size_t  n_elem 
)
inlineprotected

◆ buf_offsets()

template<typename T , int ALIGN = 256>
template<bool assign>
void ML::ARIMAMemory< T, ALIGN >::buf_offsets ( const ARIMAOrder order,
int  batch_size,
int  n_obs,
char *  in_buf = nullptr 
)
inlineprotected

◆ compute_size()

template<typename T , int ALIGN = 256>
static size_t ML::ARIMAMemory< T, ALIGN >::compute_size ( const ARIMAOrder order,
int  batch_size,
int  n_obs 
)
inlinestatic

Static method to get the size of the required buffer allocation

Parameters
[in]orderARIMA order
[in]batch_sizeNumber of series in the batch
[in]n_obsLength of the series
Returns
Buffer size in bytes

Member Data Documentation

◆ alpha_batches

template<typename T , int ALIGN = 256>
T ** ML::ARIMAMemory< T, ALIGN >::alpha_batches

◆ alpha_dense

template<typename T , int ALIGN = 256>
T * ML::ARIMAMemory< T, ALIGN >::alpha_dense

◆ buf

template<typename T , int ALIGN = 256>
char* ML::ARIMAMemory< T, ALIGN >::buf
protected

◆ d_params

template<typename T , int ALIGN = 256>
T * ML::ARIMAMemory< T, ALIGN >::d_params

◆ d_Tparams

template<typename T , int ALIGN = 256>
T * ML::ARIMAMemory< T, ALIGN >::d_Tparams

◆ exog_diff

template<typename T , int ALIGN = 256>
T * ML::ARIMAMemory< T, ALIGN >::exog_diff

◆ I_m_AxA_batches

template<typename T , int ALIGN = 256>
T ** ML::ARIMAMemory< T, ALIGN >::I_m_AxA_batches

◆ I_m_AxA_dense

template<typename T , int ALIGN = 256>
T * ML::ARIMAMemory< T, ALIGN >::I_m_AxA_dense

◆ I_m_AxA_info

template<typename T , int ALIGN = 256>
int * ML::ARIMAMemory< T, ALIGN >::I_m_AxA_info

◆ I_m_AxA_inv_batches

template<typename T , int ALIGN = 256>
T ** ML::ARIMAMemory< T, ALIGN >::I_m_AxA_inv_batches

◆ I_m_AxA_inv_dense

template<typename T , int ALIGN = 256>
T * ML::ARIMAMemory< T, ALIGN >::I_m_AxA_inv_dense

◆ I_m_AxA_P

template<typename T , int ALIGN = 256>
int * ML::ARIMAMemory< T, ALIGN >::I_m_AxA_P

◆ ImT_batches

template<typename T , int ALIGN = 256>
T ** ML::ARIMAMemory< T, ALIGN >::ImT_batches

◆ ImT_dense

template<typename T , int ALIGN = 256>
T * ML::ARIMAMemory< T, ALIGN >::ImT_dense

◆ ImT_inv_batches

template<typename T , int ALIGN = 256>
T ** ML::ARIMAMemory< T, ALIGN >::ImT_inv_batches

◆ ImT_inv_dense

template<typename T , int ALIGN = 256>
T * ML::ARIMAMemory< T, ALIGN >::ImT_inv_dense

◆ ImT_inv_info

template<typename T , int ALIGN = 256>
int * ML::ARIMAMemory< T, ALIGN >::ImT_inv_info

◆ ImT_inv_P

template<typename T , int ALIGN = 256>
int* ML::ARIMAMemory< T, ALIGN >::ImT_inv_P

◆ K_batches

template<typename T , int ALIGN = 256>
T ** ML::ARIMAMemory< T, ALIGN >::K_batches

◆ K_dense

template<typename T , int ALIGN = 256>
T * ML::ARIMAMemory< T, ALIGN >::K_dense

◆ loglike

template<typename T , int ALIGN = 256>
T * ML::ARIMAMemory< T, ALIGN >::loglike

◆ loglike_base

template<typename T , int ALIGN = 256>
T * ML::ARIMAMemory< T, ALIGN >::loglike_base

◆ loglike_pert

template<typename T , int ALIGN = 256>
T * ML::ARIMAMemory< T, ALIGN >::loglike_pert

◆ m_tmp_batches

template<typename T , int ALIGN = 256>
T ** ML::ARIMAMemory< T, ALIGN >::m_tmp_batches

◆ m_tmp_dense

template<typename T , int ALIGN = 256>
T * ML::ARIMAMemory< T, ALIGN >::m_tmp_dense

◆ P_batches

template<typename T , int ALIGN = 256>
T ** ML::ARIMAMemory< T, ALIGN >::P_batches

◆ P_dense

template<typename T , int ALIGN = 256>
T * ML::ARIMAMemory< T, ALIGN >::P_dense

◆ params_ar

template<typename T , int ALIGN = 256>
T * ML::ARIMAMemory< T, ALIGN >::params_ar

◆ params_beta

template<typename T , int ALIGN = 256>
T * ML::ARIMAMemory< T, ALIGN >::params_beta

◆ params_ma

template<typename T , int ALIGN = 256>
T * ML::ARIMAMemory< T, ALIGN >::params_ma

◆ params_mu

template<typename T , int ALIGN = 256>
T* ML::ARIMAMemory< T, ALIGN >::params_mu

◆ params_sar

template<typename T , int ALIGN = 256>
T * ML::ARIMAMemory< T, ALIGN >::params_sar

◆ params_sigma2

template<typename T , int ALIGN = 256>
T * ML::ARIMAMemory< T, ALIGN >::params_sigma2

◆ params_sma

template<typename T , int ALIGN = 256>
T * ML::ARIMAMemory< T, ALIGN >::params_sma

◆ pred

template<typename T , int ALIGN = 256>
T * ML::ARIMAMemory< T, ALIGN >::pred

◆ Ps_batches

template<typename T , int ALIGN = 256>
T ** ML::ARIMAMemory< T, ALIGN >::Ps_batches

◆ Ps_dense

template<typename T , int ALIGN = 256>
T * ML::ARIMAMemory< T, ALIGN >::Ps_dense

◆ R_batches

template<typename T , int ALIGN = 256>
T ** ML::ARIMAMemory< T, ALIGN >::R_batches

◆ R_dense

template<typename T , int ALIGN = 256>
T * ML::ARIMAMemory< T, ALIGN >::R_dense

◆ RQ_batches

template<typename T , int ALIGN = 256>
T ** ML::ARIMAMemory< T, ALIGN >::RQ_batches

◆ RQ_dense

template<typename T , int ALIGN = 256>
T * ML::ARIMAMemory< T, ALIGN >::RQ_dense

◆ RQR_batches

template<typename T , int ALIGN = 256>
T ** ML::ARIMAMemory< T, ALIGN >::RQR_batches

◆ RQR_dense

template<typename T , int ALIGN = 256>
T * ML::ARIMAMemory< T, ALIGN >::RQR_dense

◆ RQRs_batches

template<typename T , int ALIGN = 256>
T ** ML::ARIMAMemory< T, ALIGN >::RQRs_batches

◆ RQRs_dense

template<typename T , int ALIGN = 256>
T * ML::ARIMAMemory< T, ALIGN >::RQRs_dense

◆ size

template<typename T , int ALIGN = 256>
size_t ML::ARIMAMemory< T, ALIGN >::size

◆ T_batches

template<typename T , int ALIGN = 256>
T ** ML::ARIMAMemory< T, ALIGN >::T_batches

◆ T_dense

template<typename T , int ALIGN = 256>
T * ML::ARIMAMemory< T, ALIGN >::T_dense

◆ TP_batches

template<typename T , int ALIGN = 256>
T ** ML::ARIMAMemory< T, ALIGN >::TP_batches

◆ TP_dense

template<typename T , int ALIGN = 256>
T * ML::ARIMAMemory< T, ALIGN >::TP_dense

◆ Tparams_ar

template<typename T , int ALIGN = 256>
T * ML::ARIMAMemory< T, ALIGN >::Tparams_ar

◆ Tparams_ma

template<typename T , int ALIGN = 256>
T * ML::ARIMAMemory< T, ALIGN >::Tparams_ma

◆ Tparams_sar

template<typename T , int ALIGN = 256>
T * ML::ARIMAMemory< T, ALIGN >::Tparams_sar

◆ Tparams_sigma2

template<typename T , int ALIGN = 256>
T * ML::ARIMAMemory< T, ALIGN >::Tparams_sigma2

◆ Tparams_sma

template<typename T , int ALIGN = 256>
T * ML::ARIMAMemory< T, ALIGN >::Tparams_sma

◆ Ts_batches

template<typename T , int ALIGN = 256>
T ** ML::ARIMAMemory< T, ALIGN >::Ts_batches

◆ Ts_dense

template<typename T , int ALIGN = 256>
T * ML::ARIMAMemory< T, ALIGN >::Ts_dense

◆ v_tmp_batches

template<typename T , int ALIGN = 256>
T ** ML::ARIMAMemory< T, ALIGN >::v_tmp_batches

◆ v_tmp_dense

template<typename T , int ALIGN = 256>
T * ML::ARIMAMemory< T, ALIGN >::v_tmp_dense

◆ x_pert

template<typename T , int ALIGN = 256>
T * ML::ARIMAMemory< T, ALIGN >::x_pert

◆ y_diff

template<typename T , int ALIGN = 256>
T * ML::ARIMAMemory< T, ALIGN >::y_diff

◆ Z_batches

template<typename T , int ALIGN = 256>
T** ML::ARIMAMemory< T, ALIGN >::Z_batches

◆ Z_dense

template<typename T , int ALIGN = 256>
T * ML::ARIMAMemory< T, ALIGN >::Z_dense

The documentation for this struct was generated from the following file: