/* Subroutine */ int PASTEF77(z,rotg)(doublecomplex *ca, doublecomplex *cb, doublereal *c__, doublecomplex *s) { /* System generated locals */ doublereal d__1, d__2; doublecomplex z__1, z__2, z__3, z__4; /* Builtin functions */ double z_abs(doublecomplex *); void bla_z_div(doublecomplex *, doublecomplex *, doublecomplex *); double sqrt(doublereal); void bla_d_cnjg(doublecomplex *, doublecomplex *); /* Local variables */ doublereal norm; doublecomplex alpha; doublereal scale; if (z_abs(ca) != 0.) { goto L10; } *c__ = 0.; s->real = 1., s->imag = 0.; ca->real = cb->real, ca->imag = cb->imag; goto L20; L10: scale = z_abs(ca) + z_abs(cb); z__2.real = scale, z__2.imag = 0.; bla_z_div(&z__1, ca, &z__2); /* Computing 2nd power */ d__1 = z_abs(&z__1); z__4.real = scale, z__4.imag = 0.; bla_z_div(&z__3, cb, &z__4); /* Computing 2nd power */ d__2 = z_abs(&z__3); norm = scale * sqrt(d__1 * d__1 + d__2 * d__2); d__1 = z_abs(ca); z__1.real = ca->real / d__1, z__1.imag = ca->imag / d__1; alpha.real = z__1.real, alpha.imag = z__1.imag; *c__ = z_abs(ca) / norm; bla_d_cnjg(&z__3, cb); z__2.real = alpha.real * z__3.real - alpha.imag * z__3.imag, z__2.imag = alpha.real * z__3.imag + alpha.imag * z__3.real; z__1.real = z__2.real / norm, z__1.imag = z__2.imag / norm; s->real = z__1.real, s->imag = z__1.imag; z__1.real = norm * alpha.real, z__1.imag = norm * alpha.imag; ca->real = z__1.real, ca->imag = z__1.imag; L20: return 0; } /* zrotg_ */
/* Subroutine */ int PASTEF77(z,rotg)(doublecomplex *ca, doublecomplex *cb, doublereal *c__, doublecomplex *s) { /* System generated locals */ doublereal d__1, d__2; doublecomplex z__1, z__2, z__3, z__4; /* Builtin functions */ double bla_z_abs(doublecomplex *); void bla_z_div(doublecomplex *, doublecomplex *, doublecomplex *); double sqrt(doublereal); void bla_d_cnjg(doublecomplex *, doublecomplex *); /* Local variables */ doublereal norm; doublecomplex alpha; doublereal scale; if (bla_z_abs(ca) != 0.) { goto L10; } *c__ = 0.; bli_zsets( 1., 0., *s ); bli_zsets( bli_zreal(*cb), bli_zimag(*cb), *ca ); goto L20; L10: scale = bla_z_abs(ca) + bla_z_abs(cb); bli_zsets( (scale), (0.), z__2 ); bla_z_div(&z__1, ca, &z__2); /* Computing 2nd power */ d__1 = bla_z_abs(&z__1); bli_zsets( (scale), (0.), z__4 ); bla_z_div(&z__3, cb, &z__4); /* Computing 2nd power */ d__2 = bla_z_abs(&z__3); norm = scale * sqrt(d__1 * d__1 + d__2 * d__2); d__1 = bla_z_abs(ca); bli_zsets( (bli_zreal(*ca) / d__1), (bli_zimag(*ca) / d__1), z__1 ); bli_zsets( (bli_zreal(z__1)), (bli_zimag(z__1)), alpha ); *c__ = bla_z_abs(ca) / norm; bla_d_cnjg(&z__3, cb); bli_zsets( (bli_zreal(alpha) * bli_zreal(z__3) - bli_zimag(alpha) * bli_zimag(z__3)), (bli_zreal(alpha) * bli_zimag(z__3) + bli_zimag(alpha) * bli_zreal(z__3)), z__2 ); bli_zsets( (bli_zreal(z__2) / norm), (bli_zimag(z__2) / norm), z__1 ); bli_zsets( bli_zreal(z__1), bli_zimag(z__1), *s ); bli_zsets( (norm * bli_zreal(alpha)), (norm * bli_zimag(alpha)), z__1 ); bli_zsets( bli_zreal(z__1), bli_zimag(z__1), *ca ); L20: return 0; } /* zrotg_ */