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