| 1843 | */ |
| 1844 | template<class ValueType> |
| 1845 | ValueType Sqrt(ValueType x, ErrorCode * err = 0) |
| 1846 | { |
| 1847 | if( x.IsNan() || x.IsSign() ) |
| 1848 | { |
| 1849 | if( err ) |
| 1850 | *err = err_improper_argument; |
| 1851 | |
| 1852 | x.SetNan(); |
| 1853 | |
| 1854 | return x; |
| 1855 | } |
| 1856 | |
| 1857 | uint c = x.Sqrt(); |
| 1858 | |
| 1859 | if( err ) |
| 1860 | *err = c ? err_overflow : err_ok; |
| 1861 | |
| 1862 | return x; |
| 1863 | } |
| 1864 | |
| 1865 | |
| 1866 |
no test coverage detected