/* * 平方根 √a を計算する関数(ニュートン法) * 収束を速くするため、開始値として近い値をstartに与える * * ※varfloat型は、多倍長精度の浮動小数点を扱う型 */ varfloat sqrt( varfloat a, varfloat start ){ varfloat value = start; varfloat valueStock = -1.0vf; while( value != valueStock ){ valueStock = value; value = ( value + a / value ) * 0.5vf; } return value; }