179 |
|
Real ad1, ad2, ad3; |
180 |
|
t = this->data_[0][0] + this->data_[1][1] + this->data_[2][2] + 1.0; |
181 |
|
|
182 |
< |
if( t > NumericConstant::epsilon ){ |
182 |
> |
if( t > 0.0 ){ |
183 |
|
|
184 |
|
s = 0.5 / sqrt( t ); |
185 |
|
q[0] = 0.25 / s; |
188 |
|
q[3] = (this->data_[0][1] - this->data_[1][0]) * s; |
189 |
|
} else { |
190 |
|
|
191 |
< |
ad1 = fabs( this->data_[0][0] ); |
192 |
< |
ad2 = fabs( this->data_[1][1] ); |
193 |
< |
ad3 = fabs( this->data_[2][2] ); |
191 |
> |
ad1 = this->data_[0][0]; |
192 |
> |
ad2 = this->data_[1][1]; |
193 |
> |
ad3 = this->data_[2][2]; |
194 |
|
|
195 |
|
if( ad1 >= ad2 && ad1 >= ad3 ){ |
196 |
|
|