Macaulay2 Engine
Loading...
Searching...
No Matches

◆ divide() [1/2]

void M2::ARingCC::divide ( ElementType & res,
const ElementType & a,
const ElementType & b ) const
inline

Definition at line 327 of file aring-CC.hpp.

330 {
331 RealElementType p, denom; // double
332
334 if (fabs(b.re) >= fabs(b.im))
335 {
336 p = b.im / b.re;
337 denom = b.re + p * b.im;
338 result.re = (a.re + p * a.im) / denom;
339 result.im = (a.im - p * a.re) / denom;
340 }
341 else
342 {
343 p = b.re / b.im;
344 denom = b.im + p * b.re;
345 result.re = (a.im + p * a.re) / denom;
346 result.im = (p * a.im - a.re) / denom;
347 }
348 set(res, result);
349 }
RealRingType::ElementType RealElementType
Definition aring-CC.hpp:83
void set(ElementType &result, const ElementType &a) const
Definition aring-CC.hpp:157
elem ElementType
Definition aring-CC.hpp:81
int p
VALGRIND_MAKE_MEM_DEFINED & result(result)
const mpreal fabs(const mpreal &x, mp_rnd_t r=mpreal::get_default_rnd())
Definition mpreal.h:2293

References cc_doubles_struct::im, p, cc_doubles_struct::re, result(), and set().