complexip.cpp 2.63 KB

#include <algorithm>
#include <iostream>

#include <boost/format.hpp>

#include "complexip.h"


ComplexeIP::ComplexeIP(const std::vector < std::vector < double > > &vars, const std::vector < std::vector < double > > &vari, double score) :
    vars_(vars), vari_(vari), score_(score)
{
}

ComplexeIP::ComplexeIP()
{
}

ComplexeIP::~ComplexeIP()
{
}

std::vector< std::vector < double > > ComplexeIP::get_vars_() const
{
    return vars_;
}

std::vector< std::vector < double > > ComplexeIP::get_vari_() const
{
    return vari_;
}

double ComplexeIP::get_score_() const
{
    return score_;
}

void ComplexeIP::set_vars_(const std::vector < std::vector < double > > &vars)
{
    vars_ = vars;
}

void ComplexeIP::set_vari_(const std::vector < std::vector < double > > &vari)
{
    vari_ = vari;
}

void ComplexeIP::set_score_(double score)
{
    score_ = score;
}

bool ComplexeIP::operator<(const ComplexeIP& c)
{
    return score_ < c.score_;
}

bool ComplexeIP::operator>(const ComplexeIP& c)
{
    return score_ > c.score_;
}

bool ComplexeIP::operator<=(const ComplexeIP& c)
{
    return score_ <= c.score_;
}

bool ComplexeIP::operator>=(const ComplexeIP& c)
{
    return score_ >= c.score_;
}

bool ComplexeIP::operator==(const ComplexeIP& c)
{
    bool res = true;
    if( ! ( int(vars_.size()) == int(c.vars_.size()) and int(vari_.size()) == int(c.vari_.size()) and score_ == c.score_ ) )
    {
        res = false;
    }
    else
    {
        for( int i = 0; i < int(vari_.size()); i++)
        {
            if (c.vari_[i] != vari_[i])
            {
                res = false;
                break;
            }
        }
        for( int i = 0; i < int(vars_.size()); i++)
        {
            if (c.vars_[i] != vars_[i])
            {
                res = false;
                break;
            }
        }
    }
    return res;
}

bool ComplexeIP::operator==(const ComplexeIP& c) const
{
    bool res = true;
    if( ! ( int(vars_.size()) == int(c.vars_.size()) and int(vari_.size()) == int(c.vari_.size()) and score_ == c.score_ ) )
    {
        res = false;
    }
    else
    {
        for( int i = 0; i < int(vari_.size()); i++)
        {
            if (c.vari_[i] != vari_[i])
            {
                res = false;
                break;
            }
        }
        for( int i = 0; i < int(vars_.size()); i++)
        {
            if (c.vars_[i] != vars_[i])
            {
                res = false;
                break;
            }
        }
    }
    return res;

}

bool ComplexeIP::operator!=(const ComplexeIP& c)
{
    return ! ( *(this) == c );
}

bool ComplexeIP::operator!=(const ComplexeIP& c) const
{
    return ! ( *(this) == c );
}