1 /** 2 * 3 * Copyright (c) 2005-2021 by Pierre-Henri WUILLEMIN(_at_LIP6) & Christophe GONZALES(_at_AMU) 4 * info_at_agrum_dot_org 5 * 6 * This library is free software: you can redistribute it and/or modify 7 * it under the terms of the GNU Lesser General Public License as published by 8 * the Free Software Foundation, either version 3 of the License, or 9 * (at your option) any later version. 10 * 11 * This library is distributed in the hope that it will be useful, 12 * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 * GNU Lesser General Public License for more details. 15 * 16 * You should have received a copy of the GNU Lesser General Public License 17 * along with this library. If not, see <http://www.gnu.org/licenses/>. 18 * 19 */ 20 21 22 /** 23 * @file 24 * @brief Implementation of gumRangeVariable. 25 * 26 * @author Pierre-Henri WUILLEMIN(_at_LIP6) & Christophe GONZALES(_at_AMU) 27 */ 28 29 #include <agrum/tools/variables/rangeVariable.h> 30 31 #ifdef GUM_NO_INLINE 32 # include <agrum/tools/variables/rangeVariable_inl.h> 33 #endif /* GUM_NO_INLINE */ 34 35 namespace gum { 36 37 // ========================================================================== 38 // constructors 39 // ========================================================================== RangeVariable(const std::string & aName,const std::string & aDesc,long minVal,long maxVal)40 RangeVariable::RangeVariable(const std::string& aName, 41 const std::string& aDesc, 42 long minVal, 43 long maxVal) : 44 DiscreteVariable(aName, aDesc), 45 _minBound_(minVal), _maxBound_(maxVal) { 46 GUM_CONSTRUCTOR(RangeVariable); 47 } 48 RangeVariable(const std::string & aName,const std::string & aDesc)49 RangeVariable::RangeVariable(const std::string& aName, const std::string& aDesc) : 50 DiscreteVariable(aName, aDesc), _minBound_(0), _maxBound_(1) { 51 GUM_CONSTRUCTOR(RangeVariable); 52 } 53 54 // ========================================================================== 55 // Copy Constructor. 56 // If aDRV haves any listener, it will not be copied. 57 // @param aDRV the variable we copy 58 // ========================================================================== RangeVariable(const RangeVariable & aDRV)59 RangeVariable::RangeVariable(const RangeVariable& aDRV) : 60 DiscreteVariable(aDRV), _minBound_(aDRV._minBound_), _maxBound_(aDRV._maxBound_) { 61 GUM_CONS_CPY(RangeVariable); 62 } 63 64 // ========================================================================== 65 // destructor 66 // ========================================================================== ~RangeVariable()67 RangeVariable::~RangeVariable() { 68 GUM_DESTRUCTOR(RangeVariable); 69 ; 70 } 71 domain() const72 const std::string RangeVariable::domain() const { 73 std::stringstream s; 74 s << "[" << minVal() << "," << maxVal() << "]"; 75 return s.str(); 76 } 77 } /* namespace gum */ 78