Kaydet (Commit) 0348341f authored tarafından Kohei Yoshida's avatar Kohei Yoshida Kaydeden (comit) Kohei Yoshida

Make these methods non-inline.

Change-Id: I0b24e34dec6c452659b224b45a6849dafe708c3b
üst 07a086fe
...@@ -58,112 +58,29 @@ public: ...@@ -58,112 +58,29 @@ public:
void ReduceInaccurate( unsigned nSignificantBits ); void ReduceInaccurate( unsigned nSignificantBits );
friend inline Fraction operator+( const Fraction& rVal1, const Fraction& rVal2 ); TOOLS_DLLPUBLIC friend Fraction operator+( const Fraction& rVal1, const Fraction& rVal2 );
friend inline Fraction operator-( const Fraction& rVal1, const Fraction& rVal2 ); TOOLS_DLLPUBLIC friend Fraction operator-( const Fraction& rVal1, const Fraction& rVal2 );
friend inline Fraction operator*( const Fraction& rVal1, const Fraction& rVal2 ); TOOLS_DLLPUBLIC friend Fraction operator*( const Fraction& rVal1, const Fraction& rVal2 );
friend inline Fraction operator/( const Fraction& rVal1, const Fraction& rVal2 ); TOOLS_DLLPUBLIC friend Fraction operator/( const Fraction& rVal1, const Fraction& rVal2 );
TOOLS_DLLPUBLIC friend bool operator==( const Fraction& rVal1, const Fraction& rVal2 ); TOOLS_DLLPUBLIC friend bool operator==( const Fraction& rVal1, const Fraction& rVal2 );
friend inline bool operator!=( const Fraction& rVal1, const Fraction& rVal2 ); TOOLS_DLLPUBLIC friend bool operator!=( const Fraction& rVal1, const Fraction& rVal2 );
TOOLS_DLLPUBLIC friend bool operator< ( const Fraction& rVal1, const Fraction& rVal2 ); TOOLS_DLLPUBLIC friend bool operator< ( const Fraction& rVal1, const Fraction& rVal2 );
TOOLS_DLLPUBLIC friend bool operator> ( const Fraction& rVal1, const Fraction& rVal2 ); TOOLS_DLLPUBLIC friend bool operator> ( const Fraction& rVal1, const Fraction& rVal2 );
friend inline bool operator<=( const Fraction& rVal1, const Fraction& rVal2 ); TOOLS_DLLPUBLIC friend bool operator<=( const Fraction& rVal1, const Fraction& rVal2 );
friend inline bool operator>=( const Fraction& rVal1, const Fraction& rVal2 ); TOOLS_DLLPUBLIC friend bool operator>=( const Fraction& rVal1, const Fraction& rVal2 );
TOOLS_DLLPUBLIC friend SvStream& ReadFraction( SvStream& rIStream, Fraction& rFract ); TOOLS_DLLPUBLIC friend SvStream& ReadFraction( SvStream& rIStream, Fraction& rFract );
TOOLS_DLLPUBLIC friend SvStream& WriteFraction( SvStream& rOStream, const Fraction& rFract ); TOOLS_DLLPUBLIC friend SvStream& WriteFraction( SvStream& rOStream, const Fraction& rFract );
}; };
inline Fraction::Fraction( const Fraction& rFrac ) TOOLS_DLLPUBLIC Fraction operator+( const Fraction& rVal1, const Fraction& rVal2 );
{ TOOLS_DLLPUBLIC Fraction operator-( const Fraction& rVal1, const Fraction& rVal2 );
valid = rFrac.valid; TOOLS_DLLPUBLIC Fraction operator*( const Fraction& rVal1, const Fraction& rVal2 );
if ( valid ) TOOLS_DLLPUBLIC Fraction operator/( const Fraction& rVal1, const Fraction& rVal2 );
value.assign( rFrac.value.numerator(), rFrac.value.denominator() ); TOOLS_DLLPUBLIC bool operator !=( const Fraction& rVal1, const Fraction& rVal2 );
} TOOLS_DLLPUBLIC bool operator <=( const Fraction& rVal1, const Fraction& rVal2 );
TOOLS_DLLPUBLIC bool operator >=( const Fraction& rVal1, const Fraction& rVal2 );
inline long Fraction::GetNumerator() const
{
if ( !valid ) {
SAL_WARN( "tools.fraction", "'GetNumerator()' on invalid fraction" );
return 0;
}
return value.numerator();
}
inline long Fraction::GetDenominator() const {
if ( !valid ) {
SAL_WARN( "tools.fraction", "'GetDenominator()' on invalid fraction" );
return -1;
}
return value.denominator();
}
inline Fraction& Fraction::operator=( const Fraction& rFrac )
{
if ( this != &rFrac ) {
valid = rFrac.valid;
if ( valid )
value.assign( rFrac.value.numerator(), rFrac.value.denominator() );
}
return *this;
}
inline bool Fraction::IsValid() const
{
return valid;
}
inline Fraction::operator long() const
{
if ( !valid ) {
SAL_WARN( "tools.fraction", "'operator long()' on invalid fraction" );
return 0;
}
return boost::rational_cast<long>(value);
}
inline Fraction operator+( const Fraction& rVal1, const Fraction& rVal2 )
{
Fraction aErg( rVal1 );
aErg += rVal2;
return aErg;
}
inline Fraction operator-( const Fraction& rVal1, const Fraction& rVal2 )
{
Fraction aErg( rVal1 );
aErg -= rVal2;
return aErg;
}
inline Fraction operator*( const Fraction& rVal1, const Fraction& rVal2 )
{
Fraction aErg( rVal1 );
aErg *= rVal2;
return aErg;
}
inline Fraction operator/( const Fraction& rVal1, const Fraction& rVal2 )
{
Fraction aErg( rVal1 );
aErg /= rVal2;
return aErg;
}
inline bool operator !=( const Fraction& rVal1, const Fraction& rVal2 )
{
return !(rVal1 == rVal2);
}
inline bool operator <=( const Fraction& rVal1, const Fraction& rVal2 )
{
return !(rVal1 > rVal2);
}
inline bool operator >=( const Fraction& rVal1, const Fraction& rVal2 )
{
return !(rVal1 < rVal2);
}
#endif #endif
......
...@@ -191,6 +191,97 @@ void Fraction::ReduceInaccurate( unsigned nSignificantBits ) ...@@ -191,6 +191,97 @@ void Fraction::ReduceInaccurate( unsigned nSignificantBits )
rational_ReduceInaccurate(value, nSignificantBits); rational_ReduceInaccurate(value, nSignificantBits);
} }
Fraction::Fraction( const Fraction& rFrac )
{
valid = rFrac.valid;
if ( valid )
value.assign( rFrac.value.numerator(), rFrac.value.denominator() );
}
long Fraction::GetNumerator() const
{
if ( !valid ) {
SAL_WARN( "tools.fraction", "'GetNumerator()' on invalid fraction" );
return 0;
}
return value.numerator();
}
long Fraction::GetDenominator() const {
if ( !valid ) {
SAL_WARN( "tools.fraction", "'GetDenominator()' on invalid fraction" );
return -1;
}
return value.denominator();
}
Fraction& Fraction::operator=( const Fraction& rFrac )
{
if ( this != &rFrac ) {
valid = rFrac.valid;
if ( valid )
value.assign( rFrac.value.numerator(), rFrac.value.denominator() );
}
return *this;
}
bool Fraction::IsValid() const
{
return valid;
}
Fraction::operator long() const
{
if ( !valid ) {
SAL_WARN( "tools.fraction", "'operator long()' on invalid fraction" );
return 0;
}
return boost::rational_cast<long>(value);
}
Fraction operator+( const Fraction& rVal1, const Fraction& rVal2 )
{
Fraction aErg( rVal1 );
aErg += rVal2;
return aErg;
}
Fraction operator-( const Fraction& rVal1, const Fraction& rVal2 )
{
Fraction aErg( rVal1 );
aErg -= rVal2;
return aErg;
}
Fraction operator*( const Fraction& rVal1, const Fraction& rVal2 )
{
Fraction aErg( rVal1 );
aErg *= rVal2;
return aErg;
}
Fraction operator/( const Fraction& rVal1, const Fraction& rVal2 )
{
Fraction aErg( rVal1 );
aErg /= rVal2;
return aErg;
}
bool operator !=( const Fraction& rVal1, const Fraction& rVal2 )
{
return !(rVal1 == rVal2);
}
bool operator <=( const Fraction& rVal1, const Fraction& rVal2 )
{
return !(rVal1 > rVal2);
}
bool operator >=( const Fraction& rVal1, const Fraction& rVal2 )
{
return !(rVal1 < rVal2);
}
bool operator == ( const Fraction& rVal1, const Fraction& rVal2 ) bool operator == ( const Fraction& rVal1, const Fraction& rVal2 )
{ {
if ( !rVal1.valid || !rVal2.valid ) { if ( !rVal1.valid || !rVal2.valid ) {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment