powr$m (2) --- calculate a longreal raised to a longreal power 04/27/83 | _C_a_l_l_i_n_g _I_n_f_o_r_m_a_t_i_o_n | longreal function powr$m (x, y) | longreal x, y | Library: vswtmath (Subsystem mathematical library) | _F_u_n_c_t_i_o_n | The 'powr$m' function raises a double precision real value | to a double precision real power. The function return is | also double precision. It is the same as the Fortran | statement "x**y". | The function is coded so as to adhere to ANSI Fortran stan- | dards which do not allow raising negative values to a float- | ing point power, and which do not allow zero to be raised to | a zero or negative power. Other inputs may trigger an error | if the result of the calculation would result in overflow. | The condition SWT_MATH_ERROR$ is signalled if there is an | argument error. An on-unit can be established to deal with | this error; the SWT Math Library contains a default handler | named 'err$m' which the user may utilize. | There are four cases where this function may signal | SWT_MATH_ERROR$. If an attempt is made to raise a negative | value to a non-zero power, then the default return value | will be the absolute value of that quantity raised to the | given power. If an attempt is made to raise zero to a zero | or negative power, the default return is zero. If the | result would overflow then the default return value is the | largest double precision quantity that can be represented. | If the result would cause underflow, the default return is | the smallest positive value which can be represented on the | machine. | _I_m_p_l_e_m_e_n_t_a_t_i_o_n | Adapted from the algorithm given in the book _S_o_f_t_w_a_r_e _M_a_n_u_a_l | _f_o_r _t_h_e _E_l_e_m_e_n_t_a_r_y _F_u_n_c_t_i_o_n_s by William Waite and William | Cody, Jr. (Prentice-Hall, 1980). | _C_a_l_l_s | Primos signl$ | _S_e_e _A_l_s_o | err$m (2), | _S_W_T _M_a_t_h _L_i_b_r_a_r_y _U_s_e_r_'_s _G_u_i_d_e powr$m (2) - 1 - powr$m (2)