void run(void) { uint16_t r0, r10; sub_dc(0x18c, 0x1b); sub_54(0x1000, 0x17c, 0xf); sub_9c(0x1000, 0x1b2, 0x29); sub_e0(0x1100); r10 = sub_228(0x1100); r0 = sub_f8(0x1b2, '$'); sub_148(r0, r10); sub_dc(0x1b2, 0x29); sub_dc(0x1a8, 9); }
/* * This routine solves a quadratic equation: * 0 = a0 + a1.x + a2.x^2 * placing the (complex) roots in r1 and r2. */ void quad_complex( dcomplex a0, dcomplex a1, dcomplex a2, dcomplex *r1, dcomplex *r2 ) { double sign; dcomplex d, q; d = sub_dc( mul_dc( a1, a1 ), rmul_dc( 4.0, mul_dc( a2, a0) ) ); sign = mul_dc( conj_dc(a1), d ).r > 0.0 ? +1.0 : -1.0; q = rmul_dc( -0.5, add_dc( a1, rmul_dc( sign, sqrt_dc( d ) ) ) ); *r1 = div_dc( q, a2); *r2 = div_dc( a0, q); return; }