sqrt$m (2) --- calculate square root 04/27/83 | _C_a_l_l_i_n_g _I_n_f_o_r_m_a_t_i_o_n | longreal function sqrt$m (x) | real x | Library: vswtmath (Subsystem mathematical library) | _F_u_n_c_t_i_o_n | This function calculates the square root of a floating point | value. Attempts to take the square root of negative values | will result in an error. The default return in this case | will be the square root of the absolute value of the | argument. All other arguments are in range and return valid | results. 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. | This function is intended to serve as a single precision | function although it returns a double precision result. The | function has been coded so that any value returned will not | overflow or underflow a single precision floating point | value. The double precision register overlaps the single | precision register so it is possible to declare and use this | function as simply a "real" function. | _I_m_p_l_e_m_e_n_t_a_t_i_o_n | The algorithm involved is based on Newton's approximation | method with an initial multiplicative approximation. The | argument is scaled to within the range [0.5, 2.0) and then | the algorithm is iterated to a solution. 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 | dsqt$m (2), 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 sqrt$m (2) - 1 - sqrt$m (2)