Lines Matching refs:rhs

1304 add_scfx_rep( const scfx_rep& lhs, const scfx_rep& rhs, int max_wl )
1312 if( lhs.is_nan() || rhs.is_nan()
1313 || ( lhs.is_inf() && rhs.is_inf() && lhs.m_sign != rhs.m_sign ) )
1325 if( rhs.is_inf() )
1327 result.set_inf( rhs.m_sign );
1341 align( lhs, rhs, new_wp, len_mant, lhs_mant, rhs_mant );
1354 if( lhs.m_sign == rhs.m_sign )
1361 int cmp = compare_abs( lhs, rhs );
1371 result.m_sign = rhs.m_sign;
1433 sub_scfx_rep( const scfx_rep& lhs, const scfx_rep& rhs, int max_wl )
1441 if( lhs.is_nan() || rhs.is_nan()
1442 || ( lhs.is_inf() && rhs.is_inf() && lhs.m_sign == rhs.m_sign ) )
1454 if( rhs.is_inf() )
1456 result.set_inf( -1 * rhs.m_sign );
1470 align( lhs, rhs, new_wp, len_mant, lhs_mant, rhs_mant );
1483 if( lhs.m_sign != rhs.m_sign )
1490 int cmp = compare_abs( lhs, rhs );
1500 result.m_sign = -rhs.m_sign;
1542 multiply( scfx_rep& result, const scfx_rep& lhs, const scfx_rep& rhs,
1549 if( lhs.is_nan() || rhs.is_nan()
1550 || (lhs.is_inf() && rhs.is_zero())
1551 || (lhs.is_zero() && rhs.is_inf()) )
1557 if( lhs.is_inf() || rhs.is_inf() )
1559 result.set_inf( lhs.m_sign * rhs.m_sign );
1563 if( lhs.is_zero() || rhs.is_zero() ) {
1564 result.set_zero( lhs.m_sign * rhs.m_sign );
1573 int len_rhs = rhs.m_msw - rhs.m_lsw + 1;
1576 int new_wp = ( lhs.m_wp - lhs.m_lsw ) + ( rhs.m_wp - rhs.m_lsw );
1577 int new_sign = lhs.m_sign * rhs.m_sign;
1586 half_word *s2 = rhs.m_mant.half_addr( rhs.m_lsw );
1623 div_scfx_rep( const scfx_rep& lhs, const scfx_rep& rhs, int div_wl )
1631 if( lhs.is_nan() || rhs.is_nan() || (lhs.is_inf() && rhs.is_inf()) ||
1632 (lhs.is_zero() && rhs.is_zero()) )
1638 if( lhs.is_inf() || rhs.is_zero() )
1640 result.set_inf( lhs.m_sign * rhs.m_sign );
1644 if( lhs.is_zero() || rhs.is_inf() )
1646 result.set_zero( lhs.m_sign * rhs.m_sign );
1659 result.m_sign = lhs.m_sign * rhs.m_sign;
1663 int msb_rhs = scfx_find_msb( rhs.m_mant[rhs.m_msw] )
1664 + ( rhs.m_msw - rhs.m_wp ) * bits_in_word;
1677 // align msb from remainder to msb from rhs
1684 // make sure msw( remainder ) >= msw( rhs )!
1685 int msw_diff = rhs.m_msw - remainder.m_msw;
1693 if( compare_msw_ff( rhs, remainder ) <= 0 )
1697 rhs.m_mant, rhs.m_msw, rhs.m_lsw );
2258 align( const scfx_rep& lhs, const scfx_rep& rhs, int& new_wp,
2264 if( lhs.m_wp != rhs.m_wp || lhs.size() != rhs.size() )
2268 int lower_bound_rhs = rhs.m_lsw - rhs.m_wp;
2269 int upper_bound_rhs = rhs.m_msw - rhs.m_wp;
2283 if( new_wp != rhs.m_wp || len_mant != rhs.size() )
2285 rhs_mant = rhs.resize( len_mant, new_wp );
2297 rhs_mant = rhs.m_mant;
2307 compare_msw_ff( const scfx_rep& lhs, const scfx_rep& rhs )
2309 // special case: rhs.m_mant[rhs.m_msw + 1] == 1
2310 if( rhs.m_msw < rhs.size() - 1 && rhs.m_mant[rhs.m_msw + 1 ] != 0 )
2316 int rhs_size = rhs.m_msw - rhs.m_lsw + 1;
2321 int rhs_index = rhs.m_msw;
2326 i < size && lhs.m_mant[lhs_index] == rhs.m_mant[rhs_index];
2350 if( lhs.m_mant[lhs_index] < rhs.m_mant[rhs_index] )