Program Listing for File semisparse/scalar/algebra.h#

Return to documentation for file (oti/semisparse/scalar/algebra.h)

#ifndef OTI_SEMISPARSE_SCALAR_ALGEBRA_H
#define OTI_SEMISPARSE_SCALAR_ALGEBRA_H

/**************************************************************************************************/
semiotin_t ssoti_div_oo(semiotin_t* num, semiotin_t* den, dhelpl_t dhl);
semiotin_t ssoti_div_ro(   coeff_t num, semiotin_t* den, dhelpl_t dhl);
semiotin_t ssoti_div_or(semiotin_t* num,    coeff_t val, dhelpl_t dhl);

void      ssoti_div_oo_to(semiotin_t* num, semiotin_t* den, semiotin_t* res, dhelpl_t dhl);
void      ssoti_div_ro_to(coeff_t num, semiotin_t* den, semiotin_t* res, dhelpl_t dhl);
void      ssoti_div_or_to(semiotin_t* num, coeff_t val, semiotin_t* res, dhelpl_t dhl);
// ----------------------------------------------------------------------------------------------------

/**************************************************************************************************/
semiotin_t ssoti_mul_oo(   semiotin_t* num1, semiotin_t* num2,                 dhelpl_t dhl);
semiotin_t ssoti_mul_ro(      coeff_t num1, semiotin_t* num2,                 dhelpl_t dhl);
semiotin_t ssoti_mul_or(   semiotin_t* num1,    coeff_t num2,                 dhelpl_t dhl);

semiotin_t ssoti_base_mul( semiotin_t* num1, semiotin_t* num2,                 dhelpl_t dhl);
semiotin_t ssoti_base_trunc_mul(ord_t ord1, semiotin_t* num1, ord_t ord2, semiotin_t* num2, dhelpl_t dhl);

void      ssoti_mul_oo_to(semiotin_t* num1, semiotin_t* num2, semiotin_t* res, dhelpl_t dhl);
void      ssoti_mul_ro_to(   coeff_t num1, semiotin_t* num2, semiotin_t* res, dhelpl_t dhl);
void      ssoti_mul_or_to(semiotin_t* num1,    coeff_t num2, semiotin_t* res, dhelpl_t dhl);
// ----------------------------------------------------------------------------------------------------

/**************************************************************************************************/
void ssoti_gem_oo_to( semiotin_t* a, semiotin_t* b, semiotin_t* c, semiotin_t* res, dhelpl_t dhl);
void ssoti_gem_or_to( semiotin_t* a,    coeff_t b, semiotin_t* c, semiotin_t* res, dhelpl_t dhl);
void ssoti_gem_ro_to(    coeff_t a, semiotin_t* b, semiotin_t* c, semiotin_t* res, dhelpl_t dhl);

void ssoti_trunc_gem_oo_to(ord_t orda, semiotin_t* a, ord_t ordb, semiotin_t* b, semiotin_t* c, semiotin_t* res, dhelpl_t dhl);
// ----------------------------------------------------------------------------------------------------

/**************************************************************************************************/
semiotin_t ssoti_sub_oo(    semiotin_t* num1, semiotin_t* num2,                 dhelpl_t dhl);
semiotin_t ssoti_sub_ro(       coeff_t num1, semiotin_t* num2,                 dhelpl_t dhl);
semiotin_t ssoti_sub_or(    semiotin_t* num1,    coeff_t num2,                 dhelpl_t dhl);

semiotin_t ssoti_base_sub(semiotin_t* num1, semiotin_t* num2, dhelpl_t dhl);

void      ssoti_sub_oo_to( semiotin_t* num1, semiotin_t* num2, semiotin_t* res, dhelpl_t dhl);
void      ssoti_sub_ro_to(    coeff_t num1, semiotin_t* num2, semiotin_t* res, dhelpl_t dhl);
void      ssoti_sub_or_to( semiotin_t* num1,    coeff_t num2, semiotin_t* res, dhelpl_t dhl);

semiotin_t ssoti_base_trunc_sub(ord_t ord, semiotin_t* num1, semiotin_t* num2, dhelpl_t dhl);
void ssoti_trunc_sub_oo_to(ord_t ord, semiotin_t* num1, semiotin_t* num2, semiotin_t* res, dhelpl_t dhl);
// ----------------------------------------------------------------------------------------------------



/**************************************************************************************************/
semiotin_t ssoti_sum_oo(    semiotin_t* num1, semiotin_t* num2,                 dhelpl_t dhl);
semiotin_t ssoti_sum_ro(       coeff_t num1, semiotin_t* num2,                 dhelpl_t dhl);
semiotin_t ssoti_sum_or(    semiotin_t* num1,    coeff_t num2,                 dhelpl_t dhl);

semiotin_t ssoti_base_sum(  semiotin_t* num1, semiotin_t* num2, dhelpl_t dhl);

void      ssoti_sum_oo_to( semiotin_t* num1, semiotin_t* num2, semiotin_t* res, dhelpl_t dhl);
void      ssoti_sum_ro_to(    coeff_t num1, semiotin_t* num2, semiotin_t* res, dhelpl_t dhl);
void      ssoti_sum_or_to( semiotin_t* num1,    coeff_t num2, semiotin_t* res, dhelpl_t dhl);

semiotin_t ssoti_base_trunc_sum(ord_t ord, semiotin_t* num1, semiotin_t* num2, dhelpl_t dhl);
void ssoti_trunc_sum_oo_to(ord_t ord, semiotin_t* num1, semiotin_t* num2, semiotin_t* res, dhelpl_t dhl);
// ----------------------------------------------------------------------------------------------------

/**************************************************************************************************/
semiotin_t ssoti_neg(semiotin_t* num, dhelpl_t dhl);
void      ssoti_neg_to(semiotin_t* num, semiotin_t* res, dhelpl_t dhl);
// ----------------------------------------------------------------------------------------------------

/**************************************************************************************************/
semiotin_t ssoti_abs(   semiotin_t* num,                 dhelpl_t dhl);
void      ssoti_abs_to(semiotin_t* num, semiotin_t* res, dhelpl_t dhl);
// ----------------------------------------------------------------------------------------------------

#endif