Program Listing for File complex/array/algebra.h#

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

#ifndef OTI_COMPLEX_ALGEBRA_H
#define OTI_COMPLEX_ALGEBRA_H



/**************************************************************************************************/
carr_t carr_neg(    carr_t* arr              );

void   carr_neg_to( carr_t* arr, carr_t* res );
// ----------------------------------------------------------------------------------------------------


/**************************************************************************************************/
carr_t carr_div_RR(    carr_t* lhs, carr_t* rhs              );
carr_t carr_div_Rr(    carr_t* lhs, ccoeff_t rhs              );
carr_t carr_div_rR(    ccoeff_t lhs, carr_t* rhs              );

void   carr_div_RR_to( carr_t* lhs, carr_t* rhs, carr_t* res );
void   carr_div_Rr_to( carr_t* lhs, ccoeff_t rhs, carr_t* res );
void   carr_div_rR_to( ccoeff_t lhs, carr_t* rhs, carr_t* res );
// ----------------------------------------------------------------------------------------------------

/**************************************************************************************************/
carr_t carr_mul_RR(    carr_t* lhs, carr_t* rhs              );
void   carr_mul_RR_to( carr_t* lhs, carr_t* rhs, carr_t* res );

carr_t carr_mul_rR(    ccoeff_t lhs, carr_t* rhs              );
void   carr_mul_rR_to( ccoeff_t lhs, carr_t* rhs, carr_t* res );

carr_t carr_mul_Rr(    carr_t* lhs, ccoeff_t rhs              );
void   carr_mul_Rr_to( carr_t* lhs, ccoeff_t rhs, carr_t* res );

void carr_mul_and_selfsum_RR_to( carr_t* lhs, carr_t* rhs, carr_t* res);
void carr_mul_and_selfsum_rR_to( ccoeff_t lhs, carr_t* rhs, carr_t* res);
void carr_mul_and_selfsum_Rr_to( carr_t* lhs, ccoeff_t rhs, carr_t* res);
// ----------------------------------------------------------------------------------------------------

/**************************************************************************************************/
carr_t carr_sub_RR(    carr_t* lhs, carr_t* rhs             );
void   carr_sub_RR_to( carr_t* lhs, carr_t* rhs, carr_t* res);

carr_t carr_sub_Rr(carr_t* lhs, ccoeff_t rhs);
carr_t carr_sub_rR(ccoeff_t lhs, carr_t* rhs);

void carr_sub_Rr_to(carr_t* lhs, ccoeff_t rhs, carr_t* res);
void carr_sub_rR_to(ccoeff_t lhs, carr_t* rhs, carr_t* res);
// ----------------------------------------------------------------------------------------------------

/**************************************************************************************************/
carr_t carr_sum_RR(    carr_t* lhs, carr_t* rhs              );
void   carr_sum_RR_to( carr_t* lhs, carr_t* rhs, carr_t* res );

carr_t carr_sum_rR(    ccoeff_t lhs, carr_t* rhs              );
void   carr_sum_rR_to( ccoeff_t lhs, carr_t* rhs, carr_t* res );

carr_t carr_sum_Rr(    carr_t* lhs, ccoeff_t rhs              );
void   carr_sum_Rr_to( carr_t* lhs, ccoeff_t rhs, carr_t* res );
// ----------------------------------------------------------------------------------------------------




/**************************************************************************************************/
ccoeff_t carr_dotproduct_RR(    carr_t* lhs, carr_t* rh              );
void    carr_dotproduct_RR_to( carr_t* lhs, carr_t* rh, ccoeff_t* res);
// ----------------------------------------------------------------------------------------------------


/**************************************************************************************************/
void carr_matmul_and_selfsum_RR_to(carr_t* lhs, carr_t* rhs, carr_t* res );
// ----------------------------------------------------------------------------------------------------

/**************************************************************************************************/
carr_t carr_matmul(    carr_t* lhs, carr_t* rhs               );
void   carr_matmul_to( carr_t* lhs, carr_t* rhs, carr_t* res );

carr_t carr_matmul_RR(    carr_t* lhs, carr_t* rhs               );
void   carr_matmul_RR_to( carr_t* lhs, carr_t* rhs, carr_t* res );

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


/**************************************************************************************************/
carr_t carr_transpose(    carr_t* arr             );
void   carr_transpose_to( carr_t* arr, carr_t* res);
// ----------------------------------------------------------------------------------------------------


/**************************************************************************************************/
carr_t carr_invert(    carr_t* arr             );
void   carr_invert_to( carr_t* arr, carr_t* res);
// ----------------------------------------------------------------------------------------------------


/**************************************************************************************************/
ccoeff_t carr_det( carr_t* arr );
// ----------------------------------------------------------------------------------------------------


/**************************************************************************************************/
ccoeff_t carr_pnorm( carr_t* arr, ccoeff_t p );
ccoeff_t carr_norm(  carr_t* arr );

void carr_pnorm_to( carr_t* arr1, ccoeff_t p, ccoeff_t* res );
void carr_norm_to( carr_t* arr1, ccoeff_t* res );
// ----------------------------------------------------------------------------------------------------


/**************************************************************************************************/
void carr_self_neg(  carr_t* res);
// ----------------------------------------------------------------------------------------------------


/**************************************************************************************************/
void carr_self_sum_R( carr_t* rhs, carr_t* res );
void carr_self_sum_r( ccoeff_t rhs, carr_t* res );
// ----------------------------------------------------------------------------------------------------


/**************************************************************************************************/
void carr_self_sub_R(carr_t* rhs, carr_t* res);
void carr_self_sub_r(ccoeff_t rhs, carr_t* res);
// ----------------------------------------------------------------------------------------------------

/**************************************************************************************************/
void carr_self_mul_R( carr_t* rhs, carr_t* res );
void carr_self_mul_r( ccoeff_t rhs, carr_t* res );
// ----------------------------------------------------------------------------------------------------

/**************************************************************************************************/
carr_t carr_gem_RR(   carr_t* arr1, carr_t* arr2, carr_t* arr3             );
carr_t carr_gem_rR(   ccoeff_t arr1, carr_t* arr2, carr_t* arr3             );

void   carr_gem_RR_to(carr_t* arr1, carr_t* arr2, carr_t* arr3, carr_t* res);
void   carr_gem_rR_to(ccoeff_t arr1, carr_t* arr2, carr_t* arr3, carr_t* res);
// ----------------------------------------------------------------------------------------------------




#endif