Program Listing for File real/array/gauss/base.h#

Return to documentation for file (oti/real/array/gauss/base.h)

#ifndef OTI_REAL_ARRAY_GAUSS_BASE_H
#define OTI_REAL_ARRAY_GAUSS_BASE_H



/**************************************************************************************************/
fedarr_t fedarr_copy(   fedarr_t* src               );
void     fedarr_copy_to(fedarr_t* src, fedarr_t* res);
// ----------------------------------------------------------------------------------------------------

/**************************************************************************************************/
darr_t   fedarr_get_item_k(  fedarr_t* arr, uint64_t k                         );
fednum_t fedarr_get_item_ij( fedarr_t* arr, uint64_t i, uint64_t j             );
coeff_t  fedarr_get_item_ijk(fedarr_t* arr, uint64_t i, uint64_t j, uint64_t k );

void fedarr_get_item_ij_to(  fedarr_t* arr, uint64_t i, uint64_t j, fednum_t* res);

void fedarr_get_item_k_to(   fedarr_t* arr, uint64_t k, darr_t* res);

void fedarr_get_item_ijk_to( fedarr_t* arr, uint64_t i, uint64_t j, uint64_t k, coeff_t* res);
// ----------------------------------------------------------------------------------------------------

/**************************************************************************************************/
fedarr_t fedarr_get_slice(fedarr_t* arr,
                          int64_t starti, int64_t stopi, int64_t stepi,
                          int64_t startj, int64_t stopj, int64_t stepj );

void     fedarr_get_slice_to(fedarr_t* arr,
                          int64_t starti, int64_t stopi, int64_t stepi,
                          int64_t startj, int64_t stopj, int64_t stepj,
                          fedarr_t* res);
// ----------------------------------------------------------------------------------------------------















/**************************************************************************************************/
void fedarr_set_item_ij_r(   coeff_t  elm, uint64_t i, uint64_t j, fedarr_t* res);
void fedarr_set_item_ij_f(  fednum_t* elm, uint64_t i, uint64_t j, fedarr_t* res);

void fedarr_set_item_k_r(    coeff_t  elm, uint64_t k, fedarr_t* res);
void fedarr_set_item_k_R(     darr_t* elm, uint64_t k, fedarr_t* res);

void fedarr_set_item_ijk_r(   coeff_t  elm, uint64_t i, uint64_t j, uint64_t k, fedarr_t* res);
// ----------------------------------------------------------------------------------------------------







/**************************************************************************************************/
void fedarr_set_slice_r( coeff_t val,
                         int64_t starti, int64_t stopi, int64_t stepi,
                         int64_t startj, int64_t stopj, int64_t stepj,
                          fedarr_t* res);
void fedarr_set_slice_f( fednum_t* val,
                         int64_t starti, int64_t stopi, int64_t stepi,
                         int64_t startj, int64_t stopj, int64_t stepj,
                          fedarr_t* res);
void fedarr_set_slice_R( darr_t* val,
                         int64_t starti, int64_t stopi, int64_t stepi,
                         int64_t startj, int64_t stopj, int64_t stepj,
                          fedarr_t* res);
void fedarr_set_slice_F( fedarr_t* val,
                         int64_t starti, int64_t stopi, int64_t stepi,
                         int64_t startj, int64_t stopj, int64_t stepj,
                          fedarr_t* res);
// ----------------------------------------------------------------------------------------------------




/**************************************************************************************************/
void fedarr_set_all_r(   coeff_t  num, fedarr_t* arr );
void fedarr_set_all_f(  fednum_t* num, fedarr_t* arr );

void fedarr_set_r(    coeff_t src, fedarr_t* res );
void fedarr_set_f(  fednum_t* src, fedarr_t* res );

void fedarr_set_R(    darr_t* src, fedarr_t* res );
void fedarr_set_F(  fedarr_t* src, fedarr_t* res );

// ----------------------------------------------------------------------------------------------------


/**************************************************************************************************/
fedarr_t fedarr_eye( uint64_t size, uint64_t nip );
// ----------------------------------------------------------------------------------------------------


/**************************************************************************************************/
fedarr_t fedarr_zeros( uint64_t nrows, uint64_t ncols, uint64_t nIntPts );
// ----------------------------------------------------------------------------------------------------

/**************************************************************************************************/
fedarr_t fedarr_ones( uint64_t nrows, uint64_t ncols, uint64_t nip );
// ----------------------------------------------------------------------------------------------------

/**************************************************************************************************/
fedarr_t fedarr_createEmpty( uint64_t nrows, uint64_t ncols, uint64_t nIntPts );
// ----------------------------------------------------------------------------------------------------

/**************************************************************************************************/
void fedarr_free(fedarr_t* arr);
// ----------------------------------------------------------------------------------------------------

/**************************************************************************************************/
fedarr_t fedarr_init(void);
// ----------------------------------------------------------------------------------------------------


#endif