.. _program_listing_file_oti_sparse_array_base.h: Program Listing for File sparse/array/base.h ============================================ |exhale_lsh| :ref:`Return to documentation for file ` (``oti/sparse/array/base.h``) .. |exhale_lsh| unicode:: U+021B0 .. UPWARDS ARROW WITH TIP LEFTWARDS .. code-block:: cpp #ifndef OTI_SPARSE_ARRAY_BASE_H #define OTI_SPARSE_ARRAY_BASE_H /**************************************************************************************************/ void arrso_taylor_integrate_to( coeff_t* deltas, arrso_t* arr, arrso_t* res, dhelpl_t dhl); arrso_t arrso_taylor_integrate( coeff_t* deltas, arrso_t* arr, dhelpl_t dhl); // ---------------------------------------------------------------------------------------------------- /**************************************************************************************************/ void arrso_get_order_im_to( ord_t order, arrso_t* arr, arrso_t* res, dhelpl_t dhl); arrso_t arrso_get_order_im( ord_t order, arrso_t* arr, dhelpl_t dhl); // ---------------------------------------------------------------------------------------------------- /**************************************************************************************************/ void arrso_set_slice_r( coeff_t val, int64_t starti, int64_t stopi, int64_t stepi, int64_t startj, int64_t stopj, int64_t stepj, arrso_t* res, dhelpl_t dhl); void arrso_set_slice_O( arrso_t* val, int64_t starti, int64_t stopi, int64_t stepi, int64_t startj, int64_t stopj, int64_t stepj, arrso_t* res, dhelpl_t dhl); void arrso_set_slice_o( sotinum_t* val, int64_t starti, int64_t stopi, int64_t stepi, int64_t startj, int64_t stopj, int64_t stepj, arrso_t* res, dhelpl_t dhl); // ---------------------------------------------------------------------------------------------------- /**************************************************************************************************/ arrso_t arrso_get_slice( arrso_t* arr, int64_t starti, int64_t stopi, int64_t stepi, int64_t startj, int64_t stopj, int64_t stepj, dhelpl_t dhl); void arrso_get_slice_to( arrso_t* arr, int64_t starti, int64_t stopi, int64_t stepi, int64_t startj, int64_t stopj, int64_t stepj, arrso_t* res, dhelpl_t dhl); // ---------------------------------------------------------------------------------------------------- /**************************************************************************************************/ arrso_t arrso_truncate_im( imdir_t idx, ord_t order, arrso_t* arr, dhelpl_t dhl); void arrso_truncate_im_to( imdir_t idx, ord_t order, arrso_t* arr, arrso_t* res, dhelpl_t dhl); // ---------------------------------------------------------------------------------------------------- /**************************************************************************************************/ void arrso_truncate_order_to( ord_t ord, arrso_t* arr, arrso_t* res, dhelpl_t dhl); arrso_t arrso_truncate_order( ord_t ord, arrso_t* arr, dhelpl_t dhl); // ---------------------------------------------------------------------------------------------------- /**************************************************************************************************/ arrso_t arrso_extract_im( imdir_t idx, ord_t order, arrso_t* arr, dhelpl_t dhl); void arrso_extract_im_to(imdir_t idx, ord_t order, arrso_t* arr, arrso_t* res, dhelpl_t dhl); // ---------------------------------------------------------------------------------------------------- /**************************************************************************************************/ darr_t arrso_get_deriv( imdir_t idx, ord_t order, arrso_t* arr, dhelpl_t dhl); void arrso_get_deriv_to( imdir_t idx, ord_t order, arrso_t* arr, arrso_t* res, dhelpl_t dhl); arrso_t arrso_get_deriv_o( imdir_t idx, ord_t order, arrso_t* arr, dhelpl_t dhl); // ---------------------------------------------------------------------------------------------------- /**************************************************************************************************/ arrso_t arrso_extract_deriv( imdir_t idx, ord_t order, arrso_t* arr, dhelpl_t dhl); void arrso_extract_deriv_to( imdir_t idx, ord_t order, arrso_t* arr, arrso_t* res, dhelpl_t dhl); // ---------------------------------------------------------------------------------------------------- /**************************************************************************************************/ darr_t arrso_get_im( imdir_t idx, ord_t order, arrso_t* arr, dhelpl_t dhl); arrso_t arrso_get_im_o( imdir_t idx, ord_t order, arrso_t* arr, dhelpl_t dhl); void arrso_get_im_to(imdir_t idx, ord_t order, arrso_t* arr, arrso_t* res, dhelpl_t dhl); // ---------------------------------------------------------------------------------------------------- /**************************************************************************************************/ void arrso_copy_to(arrso_t* arr, arrso_t* res, dhelpl_t dhl); arrso_t arrso_copy(arrso_t* arr, dhelpl_t dhl); // ---------------------------------------------------------------------------------------------------- /**************************************************************************************************/ void arrso_set_all_r( coeff_t num, arrso_t* arr, dhelpl_t dhl); void arrso_set_item_i_r( coeff_t num, uint64_t i, arrso_t* arr, dhelpl_t dhl); void arrso_set_item_ij_r( coeff_t num, uint64_t i, uint64_t j, arrso_t* arr, dhelpl_t dhl); // ---------------------------------------------------------------------------------------------------- void arrso_set_r( coeff_t num, arrso_t* arr, dhelpl_t dhl); void arrso_set_o( sotinum_t* num, arrso_t* arr, dhelpl_t dhl); void arrso_set_O( arrso_t* arrin, arrso_t* arr, dhelpl_t dhl); /**************************************************************************************************/ void arrso_set_all_o( sotinum_t* src, arrso_t* arr, dhelpl_t dhl); void arrso_set_item_i_o( sotinum_t* num, uint64_t i, arrso_t* arr, dhelpl_t dhl); void arrso_set_item_ij_o( sotinum_t* num, uint64_t i, uint64_t j, arrso_t* arr, dhelpl_t dhl); // ---------------------------------------------------------------------------------------------------- /**************************************************************************************************/ sotinum_t arrso_get_item_i( arrso_t* arr, uint64_t i, dhelpl_t dhl); void arrso_get_item_i_to( arrso_t* arr, uint64_t i, sotinum_t* res, dhelpl_t dhl); sotinum_t arrso_get_item_ij( arrso_t* arr, uint64_t i, uint64_t j, dhelpl_t dhl); void arrso_get_item_ij_to(arrso_t* arr, uint64_t i, uint64_t j, sotinum_t* res, dhelpl_t dhl); // ---------------------------------------------------------------------------------------------------- /**************************************************************************************************/ arrso_t arrso_init(void); // ---------------------------------------------------------------------------------------------------- /**************************************************************************************************/ void arrso_free(arrso_t* arr); // ---------------------------------------------------------------------------------------------------- /**************************************************************************************************/ arrso_t arrso_empty_like(arrso_t* arr, dhelpl_t dhl); // ---------------------------------------------------------------------------------------------------- /**************************************************************************************************/ arrso_t arrso_eye(uint64_t nrows, ndir_t* p_nnz, ord_t order, dhelpl_t dhl); arrso_t arrso_eye_bases(uint64_t nrows, bases_t nbases, ord_t order, dhelpl_t dhl); // ---------------------------------------------------------------------------------------------------- /**************************************************************************************************/ arrso_t arrso_ones(uint64_t nrows, uint64_t ncols, ndir_t* p_nnz, ord_t order, dhelpl_t dhl); arrso_t arrso_ones_bases(uint64_t nrows, uint64_t ncols, bases_t nbases, ord_t order, dhelpl_t dhl); // ---------------------------------------------------------------------------------------------------- /**************************************************************************************************/ arrso_t arrso_zeros(uint64_t nrows, uint64_t ncols, ndir_t* p_nnz, ord_t order, dhelpl_t dhl); arrso_t arrso_zeros_bases(uint64_t nrows, uint64_t ncols, bases_t nbases, ord_t order, dhelpl_t dhl); // ---------------------------------------------------------------------------------------------------- /**************************************************************************************************/ arrso_t arrso_createEmpty_predef(uint64_t nrows, uint64_t ncols, ndir_t* p_nnz, ord_t order, dhelpl_t dhl); arrso_t arrso_createEmpty_bases(uint64_t nrows, uint64_t ncols, bases_t nbases, ord_t order, dhelpl_t dhl); // ---------------------------------------------------------------------------------------------------- /**************************************************************************************************/ size_t arrso_memory_size( uint64_t size, ndir_t* p_nnz, ord_t order); // ---------------------------------------------------------------------------------------------------- /**************************************************************************************************/ void arrso_distribute_memory(void* mem, uint64_t nrows, uint64_t ncols, ndir_t* p_nnz, ord_t order, flag_t flag, arrso_t* res); // ---------------------------------------------------------------------------------------------------- void arrso_save(char* filename, arrso_t* arr, dhelpl_t dhl); arrso_t arrso_read(char* filename, dhelpl_t dhl); #endif