void m_apm_lcm(M_APM r, M_APM u, M_APM v) { M_APM tmpN, tmpG; tmpN = M_get_stack_var(); tmpG = M_get_stack_var(); m_apm_multiply(tmpN, u, v); m_apm_gcd(tmpG, u, v); m_apm_integer_divide(r, tmpN, tmpG); M_restore_stack(2); }
void m_apm_lcm(M_APM r, M_APM u, M_APM v) { M_APM tmpN, tmpG; if (u->m_apm_error || v->m_apm_error) { M_set_to_error(r); return; } tmpN = M_get_stack_var(); tmpG = M_get_stack_var(); m_apm_multiply(tmpN, u, v); m_apm_gcd(tmpG, u, v); m_apm_integer_divide(r, tmpN, tmpG); M_restore_stack(2); }
void m_apm_gcd_mt(M_APM r, M_APM u, M_APM v) { m_apm_enter(); m_apm_gcd(r,u,v); m_apm_leave(); }