| 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 |
|
|