80 #include "vnl/vnl_export.h" 82 # include <vcl_msvc_warnings.h> 96 vnl_decnum(
char s, std::string d,
long e) : sign_(s), data_(std::move(d)), exp_(e) {}
98 std::string
data()
const {
return data_; }
99 char sign()
const {
return sign_; }
100 long exp ()
const {
return exp_; }
118 : sign_(r<0 ?
'-' : r>0 ?
'+' :
' ')
123 : sign_(r>0 ?
'+' :
' ')
128 : sign_(r<0 ?
'-' : r>0 ?
'+' :
' ')
138 operator std::string()
const;
140 operator long()
const;
141 operator unsigned long()
const;
142 operator int()
const;
143 operator unsigned int()
const;
365 static vnl_decnum plus(std::string
const&, std::string
const&,
long);
370 static vnl_decnum minus(std::string
const&, std::string
const&,
long);
374 static bool comp(std::string
const&, std::string
const&);
376 inline static std::string
add_zeros(std::string
const& source,
unsigned long n)
377 { std::string d = source;
while (n--!=0) d.push_back(
'0');
return d; }
381 static std::string mult(std::string
const&,
char);
388 static std::string div(std::string
const&, std::string&);
394 {
return s << std::string(r); }
418 #endif // vnl_decnum_h_ bool operator<=(double r) const
vnl_decnum operator%(int r) const
vnl_decnum operator-(unsigned long r) const
bool operator<=(std::string const &r) const
vnl_decnum & operator++()
prefix increment (++b).
vnl_decnum operator+() const
Unary plus operator.
bool operator!=(char const *r) const
vnl_decnum & operator/=(long r)
bool operator>=(double r) const
bool operator>(long r1, vnl_bignum const &r2)
vnl_decnum & operator%=(std::string const &r)
vnl_decnum operator+(unsigned int r) const
vnl_decnum operator<<(int r) const
bool operator!=(unsigned int r) const
vnl_decnum operator+(int r) const
vnl_decnum & operator/=(unsigned int r)
bool operator!=(int r) const
vnl_decnum operator%(double r) const
vnl_decnum operator/(char const *r) const
vnl_decnum operator+(char const *r) const
vnl_decnum operator/(unsigned long r) const
vnl_decnum operator/(long r) const
vnl_decnum operator-(int r) const
bool operator!=(double r) const
vnl_decnum & operator/=(std::string const &r)
vnl_decnum operator-(std::string const &r) const
vnl_decnum operator+(double r) const
vnl_decnum & operator=(const vnl_decnum &r)
Assignment operator; no compactification or expansion occurs.
vnl_decnum & operator-=(double r)
vnl_decnum operator/(double r) const
vnl_decnum & operator%=(unsigned int r)
vnl_decnum & operator=(long r)
vnl_decnum operator>>(long int r) const
Right "bit" shift operator (actually: digit shift, or exponent translation).
bool operator>=(std::string const &r) const
bool operator>=(long r) const
vnl_decnum & operator%=(char const *r)
vnl_decnum & operator+=(unsigned int r)
bool operator==(unsigned long r) const
vnl_decnum & operator=(unsigned int r)
vnl_decnum operator--(int)
decrement.
vnl_decnum & operator<<=(long int r)
Left "bit" shift operator (actually: digit shift, or exponent translation).
vnl_decnum & operator-=(int r)
vnl_vector< T > operator *(vnl_matrix_inverse< T > const &i, vnl_vector< T > const &B)
vnl_decnum()
Default constructor - creates the number zero.
vnl_decnum & operator/=(vnl_decnum const &r)
vnl_decnum(unsigned int r)
Creates a vnl_decnum from an unsigned integer.
vnl_decnum & operator+=(char const *r)
bool operator>=(unsigned long r) const
vnl_decnum(char s, std::string d, long e)
vnl_decnum operator-() const
Unary minus operator.
real numerical constants.
vnl_decnum & operator=(std::string const &r)
vnl_decnum operator/(int r) const
bool operator!=(vnl_decnum const &r) const
vnl_decnum ceil(vnl_decnum const &x)
vnl_decnum & operator-=(long r)
vnl_decnum & operator%=(unsigned long r)
vnl_decnum & operator+=(vnl_decnum const &r)
vnl_bignum squared_magnitude(vnl_bignum const &x)
vnl_decnum & operator+=(unsigned long r)
std::ostream & operator<<(std::ostream &s, vnl_decnum const &r)
decimal output.
bool operator>=(char const *r) const
vnl_decnum & operator%=(vnl_decnum const &r)
vnl_decnum & operator=(double r)
vnl_decnum operator++(int)
postfix increment (b++).
bool operator<=(int r) const
bool isnan(vnl_bignum const &)
vnl_decnum & operator-=(unsigned long r)
vnl_decnum & operator>>=(int r)
vnl_decnum & operator>>=(long int r)
Right "bit" shift operator (actually: digit shift, or exponent translation).
bool operator==(char const *r) const
vnl_decnum(long r)
Creates a vnl_decnum from a long integer.
bool operator<=(char const *r) const
vnl_decnum operator>>(int r) const
vnl_decnum & operator%=(int r)
vnl_decnum & operator<<=(int r)
vnl_decnum & operator+=(double r)
vnl_bignum operator-(vnl_bignum const &r1, vnl_bignum const &r2)
Returns the difference of two bignum numbers.
vnl_decnum operator/(std::string const &r) const
vnl_decnum operator-(unsigned int r) const
vnl_decnum roundup() const
vnl_decnum & operator%=(double r)
vnl_decnum & operator-=(std::string const &r)
vnl_decnum & operator+=(long r)
bool isfinite(vnl_bignum const &x)
vnl_decnum pow(unsigned long p) const
bool operator==(double r) const
vnl_decnum(char const *r)
vnl_decnum operator-(char const *r) const
vnl_decnum cube(vnl_decnum const &x)
vnl_decnum max(vnl_decnum const &x, vnl_decnum const &y)
vnl_decnum operator%(unsigned long r) const
vnl_decnum operator-(long r) const
vnl_decnum operator%(char const *r) const
vnl_decnum pow(vnl_decnum const &x, unsigned long p)
vnl_decnum operator-(vnl_decnum const &r) const
Difference.
bool operator>=(int r) const
bool operator<=(unsigned int r) const
vnl_decnum operator%(long r) const
vnl_decnum & operator/=(unsigned long r)
vnl_decnum operator%(std::string const &r) const
vnl_decnum & operator-=(char const *r)
bool operator!=(std::string const &r) const
bool operator<=(long r) const
vnl_decnum & operator-=(unsigned int r)
vnl_bignum abs(vnl_bignum const &x)
vnl_bignum operator+(vnl_bignum const &r1, long r2)
Returns the sum of two bignum numbers.
static std::string add_zeros(std::string const &source, unsigned long n)
bool operator<=(unsigned long r) const
vnl_decnum operator+(long r) const
VNL_EXPORT std::istream & operator>>(std::istream &s, vnl_decnum &r)
decimal input.
bool operator==(const vnl_amoeba_SimplexCorner &a, const vnl_amoeba_SimplexCorner &b)
vnl_decnum min(vnl_decnum const &x, vnl_decnum const &y)
bool operator>=(vnl_decnum const &r) const
vnl_decnum & operator+=(std::string const &r)
bool operator==(int r) const
vnl_decnum & operator+=(int r)
bool operator==(std::string const &r) const
vnl_decnum operator/(unsigned int r) const
vnl_bignum operator/(vnl_bignum const &r1, vnl_bignum const &r2)
Returns the division of two bignum numbers.
bool operator<(long r1, vnl_bignum const &r2)
vnl_decnum & operator/=(double r)
vnl_decnum & operator=(int r)
vnl_decnum operator+(unsigned long r) const
vnl_decnum & operator-=(vnl_decnum const &r)
bool operator!=(unsigned long r) const
vnl_decnum & operator/=(int r)
vnl_decnum & operator=(char const *r)
bool operator>=(unsigned int r) const
vnl_decnum floor(vnl_decnum const &x)
vnl_decnum & operator/=(char const *r)
vnl_decnum operator%(unsigned int r) const
vnl_decnum operator<<(long int r) const
Left "bit" shift operator (actually: digit shift, or exponent translation).
vnl_bignum sqr(vnl_bignum const &x)
vnl_decnum & expand()
Expand integers to their non-compactified representation, i.e., without "e" notation.
bool operator!=(long r) const
vnl_decnum & operator=(unsigned long r)
vnl_decnum & operator--()
decrement.
vnl_bignum operator%(vnl_bignum const &r1, vnl_bignum const &r2)
Returns the remainder of r1 divided by r2.
vnl_decnum operator-(double r) const
vnl_decnum(int r)
Creates a vnl_decnum from an integer.
vnl_decnum operator+(std::string const &r) const
vnl_decnum & operator%=(long r)
bool operator<=(vnl_decnum const &r) const
bool operator==(unsigned int r) const
bool operator==(long r) const