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

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

#ifndef OTI_REAL_ARRAY_GAUSS_ALGEBRA_H
#define OTI_REAL_ARRAY_GAUSS_ALGEBRA_H






/**************************************************************************************************/
fedarr_t  fedarr_neg(    fedarr_t * arr                );
void      fedarr_neg_to( fedarr_t * arr, fedarr_t * res);
// ----------------------------------------------------------------------------------------------------




/**************************************************************************************************/
fedarr_t  fedarr_sum_FF(   fedarr_t * lhs, fedarr_t * rhs                );
void      fedarr_sum_FF_to(fedarr_t * lhs, fedarr_t * rhs, fedarr_t * res);

fedarr_t  fedarr_sum_fF(    fednum_t* lhs, fedarr_t * rhs                );
void      fedarr_sum_fF_to( fednum_t* lhs, fedarr_t * rhs, fedarr_t * res);

fedarr_t  fedarr_sum_RF(      darr_t* lhs, fedarr_t * rhs                );
void      fedarr_sum_RF_to(   darr_t* lhs, fedarr_t * rhs, fedarr_t * res);

fedarr_t  fedarr_sum_rF(     coeff_t  lhs, fedarr_t * rhs                );
void      fedarr_sum_rF_to(  coeff_t  lhs, fedarr_t * rhs, fedarr_t * res);
// ----------------------------------------------------------------------------------------------------






/**************************************************************************************************/
fedarr_t  fedarr_sub_FF(    fedarr_t * lhs, fedarr_t * rhs                );
void      fedarr_sub_FF_to( fedarr_t * lhs, fedarr_t * rhs, fedarr_t * res);

fedarr_t  fedarr_sub_fF(    fednum_t* lhs, fedarr_t * rhs                 );
void      fedarr_sub_fF_to( fednum_t* lhs, fedarr_t * rhs, fedarr_t * res );

fedarr_t  fedarr_sub_Ff(    fedarr_t * lhs, fednum_t* rhs                 );
void      fedarr_sub_Ff_to( fedarr_t * lhs, fednum_t* rhs, fedarr_t * res );

fedarr_t  fedarr_sub_RF(       darr_t* lhs, fedarr_t * rhs                );
void      fedarr_sub_RF_to(    darr_t* lhs, fedarr_t * rhs, fedarr_t * res);

fedarr_t  fedarr_sub_FR(    fedarr_t * lhs,    darr_t* rhs                );
void      fedarr_sub_FR_to( fedarr_t * lhs,    darr_t* rhs, fedarr_t * res);

fedarr_t  fedarr_sub_rF(      coeff_t  lhs, fedarr_t * rhs                );
void      fedarr_sub_rF_to(    coeff_t lhs, fedarr_t * rhs, fedarr_t * res);

fedarr_t  fedarr_sub_Fr(    fedarr_t * lhs,   coeff_t  rhs                );
void      fedarr_sub_Fr_to( fedarr_t * lhs,   coeff_t  rhs, fedarr_t * res);
// ----------------------------------------------------------------------------------------------------



/**************************************************************************************************/
fedarr_t  fedarr_mul_FF(   fedarr_t * lhs, fedarr_t * rhs                );
void      fedarr_mul_FF_to(fedarr_t * lhs, fedarr_t * rhs, fedarr_t * res);

fedarr_t  fedarr_mul_fF(    fednum_t* lhs, fedarr_t * rhs                );
void      fedarr_mul_fF_to( fednum_t* lhs, fedarr_t * rhs, fedarr_t * res);

fedarr_t  fedarr_mul_RF(      darr_t* lhs, fedarr_t * rhs                );
void      fedarr_mul_RF_to(   darr_t* lhs, fedarr_t * rhs, fedarr_t * res);

fedarr_t  fedarr_mul_rF(     coeff_t  lhs, fedarr_t * rhs                );
void      fedarr_mul_rF_to(  coeff_t  lhs, fedarr_t * rhs, fedarr_t * res);
// ----------------------------------------------------------------------------------------------------




/**************************************************************************************************/
fedarr_t  fedarr_div_FF(    fedarr_t * lhs, fedarr_t * rhs                );
void      fedarr_div_FF_to( fedarr_t * lhs, fedarr_t * rhs, fedarr_t * res);

fedarr_t  fedarr_div_fF(     fednum_t* lhs, fedarr_t * rhs                );
void      fedarr_div_fF_to(  fednum_t* lhs, fedarr_t * rhs, fedarr_t * res);

fedarr_t  fedarr_div_Ff(    fedarr_t* lhs,  fednum_t* rhs                );
void      fedarr_div_Ff_to( fedarr_t* lhs,  fednum_t* rhs, fedarr_t * res);

fedarr_t  fedarr_div_RF(       darr_t* lhs, fedarr_t * rhs                );
void      fedarr_div_RF_to(    darr_t* lhs, fedarr_t * rhs, fedarr_t * res);

fedarr_t  fedarr_div_FR(    fedarr_t* lhs,    darr_t* rhs                );
void      fedarr_div_FR_to( fedarr_t* lhs,    darr_t* rhs, fedarr_t * res);

fedarr_t  fedarr_div_rF(      coeff_t  lhs, fedarr_t * rhs                );
void      fedarr_div_rF_to(    coeff_t lhs, fedarr_t * rhs, fedarr_t * res);

fedarr_t  fedarr_div_Fr(    fedarr_t* lhs,   coeff_t  rhs                );
void      fedarr_div_Fr_to( fedarr_t* lhs,   coeff_t  rhs, fedarr_t * res);
// ----------------------------------------------------------------------------------------------------






/**************************************************************************************************/
darr_t fedarr_integrate(    fedarr_t* arr, fednum_t* w              );
void    fedarr_integrate_to( fedarr_t* arr, fednum_t* w, darr_t* res);
// ----------------------------------------------------------------------------------------------------











// VECTOR ALGEBRA

/**************************************************************************************************/
fednum_t fedarr_dotproduct_FF(    fedarr_t* lhs, fedarr_t * rhs               );
void     fedarr_dotproduct_FF_to( fedarr_t* lhs, fedarr_t * rhs, fednum_t* res);

fednum_t fedarr_dotproduct_RF(       darr_t* lhs, fedarr_t * rhs               );
void     fedarr_dotproduct_RF_to(    darr_t* lhs, fedarr_t * rhs, fednum_t* res);
// ----------------------------------------------------------------------------------------------------



// MATRIX ALGEBRA.

/**************************************************************************************************/
fedarr_t  fedarr_matmul_FF(    fedarr_t* lhs, fedarr_t * rhs                );
void      fedarr_matmul_FF_to( fedarr_t* lhs, fedarr_t * rhs, fedarr_t * res);

fedarr_t  fedarr_matmul_RF(    darr_t*    lhs, fedarr_t * rhs                );
void      fedarr_matmul_RF_to( darr_t*    lhs, fedarr_t * rhs, fedarr_t * res);

fedarr_t  fedarr_matmul_FR(    fedarr_t* lhs, darr_t*    rhs                );
void      fedarr_matmul_FR_to( fedarr_t* lhs, darr_t*    rhs, fedarr_t * res);
// ----------------------------------------------------------------------------------------------------

/**************************************************************************************************/
fednum_t fedarr_det(   fedarr_t* arr               );
void     fedarr_det_to(fedarr_t* arr, fednum_t* res);
// ----------------------------------------------------------------------------------------------------


/**************************************************************************************************/
fednum_t fedarr_norm(     fedarr_t* arr               );
void     fedarr_norm_to(  fedarr_t* arr, fednum_t* res);

fednum_t fedarr_pnorm(    fedarr_t* arr, coeff_t p               );
void     fedarr_pnorm_to( fedarr_t* arr, coeff_t p, fednum_t* res);
// ----------------------------------------------------------------------------------------------------

/**************************************************************************************************/
fedarr_t    fedarr_invert(    fedarr_t* arr                );
void        fedarr_invert_to( fedarr_t* arr, fedarr_t * res);
// ----------------------------------------------------------------------------------------------------

/**************************************************************************************************/
fedarr_t    fedarr_transpose(   fedarr_t* arr                );
void        fedarr_transpose_to(fedarr_t* arr, fedarr_t * res);
// ----------------------------------------------------------------------------------------------------









#endif