VF_sqrtVD_sqrtVE_sqrt
VFu_sqrtVDu_sqrtVEu_sqrt
VCF_sqrtVCD_sqrtVCE_sqrt
VFx_sqrtVDx_sqrtVEx_sqrt
VFux_sqrtVDux_sqrtVEux_sqrt
VCFx_sqrtVCDx_sqrtVCEx_sqrt
VPF_sqrtVPD_sqrtVPE_sqrt
FunctionSquare root
Syntax C/C++#include <VFmath.h>
int VF_sqrt( fVector Y, fVector X, ui size );
int VFx_sqrt( fVector Y, fVector X, ui size, float A, float B, float C );
C++ VecObj#include <OptiVec.h>
int vector<T>::sqrt( const vector<T>& X );
int vector<T>::x_sqrt( const vector<T>& X, const T& A, const T& B, const T& C );
Pascal/Delphiuses VFmath;
function VF_sqrt( Y, X:fVector; size:UIntSize ): IntBool;
function VFx_sqrt( Y, X:fVector; size:UIntSize; A, B, C:Single ): IntBool;
Descriptionnormal versions: Yi = sqrt( Xi )
expanded versions: Yi = C * sqrt( A*Xi+B )

The "unprotected" versions (prefix VFu_,   VFux_, etc.) do not perform any error handling, which makes them much faster (up to 350% for VFux_sqrt on Pentium III or IV) than the standard versions. On the other hand, any negative input number may lead to an uncontrolled programme crash. Input numbers near the underflow limit may lead to a result of 0. Apart from allowing no negative input numbers, the "unprotected" expanded version (prefix VFux_) also requires that neither the product A*Xi nor the sum A*Xi+B may overflow.

Error handlingDOMAIN errors occur if, in the real-number versions, the square root of a negative numbers is requested; NAN ("not-a-number") is the default result in this case.
Return valueFALSE (0), if no error occurred, otherwise TRUE (non-zero)
See alsoVF_square,   VF_pow,   VF_ipow,   VF_poly

VectorLib Table of Contents  OptiVec home