Program Listing for File nan.h

Return to documentation for file (symengine/symengine/nan.h)

#ifndef SYMENGINE_NAN_H
#define SYMENGINE_NAN_H

#include <symengine/basic.h>
#include <symengine/number.h>

namespace SymEngine
{

class NaN : public Number
{
public:
    IMPLEMENT_TYPEID(SYMENGINE_NOT_A_NUMBER)
    NaN();

    hash_t __hash__() const;

    bool __eq__(const Basic &o) const;
    int compare(const Basic &o) const;

    inline bool is_zero() const
    {
        return false;
    }
    inline bool is_one() const
    {
        return false;
    }
    inline bool is_minus_one() const
    {
        return false;
    }

    inline bool is_positive() const
    {
        return false;
    }

    inline bool is_negative() const
    {
        return false;
    }

    inline bool is_complex() const
    {
        return false;
    }
    virtual RCP<const Basic> conjugate() const;
    inline bool is_exact() const
    {
        return false;
    }
    virtual Evaluate &get_eval() const;

    RCP<const Number> add(const Number &other) const;
    RCP<const Number> mul(const Number &other) const;
    RCP<const Number> div(const Number &other) const;
    RCP<const Number> pow(const Number &other) const;
    RCP<const Number> rpow(const Number &other) const;
};

} // SymEngine
#endif