array.cpp
Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034 #include <gecode/int.hh>
00035
00036 namespace Gecode {
00037
00038 IntVarArray::IntVarArray(Space& home, int n, int min, int max)
00039 : VarArray<IntVar>(home,n) {
00040 Int::Limits::check(min,"IntVarArray::IntVarArray");
00041 Int::Limits::check(max,"IntVarArray::IntVarArray");
00042 if (min > max)
00043 throw Int::VariableEmptyDomain("IntVarArray::IntVarArray");
00044 for (int i=0; i<size(); i++)
00045 x[i]._init(home,min,max);
00046 }
00047
00048 IntVarArray::IntVarArray(Space& home, int n, const IntSet& s)
00049 : VarArray<IntVar>(home,n) {
00050 Int::Limits::check(s.min(),"IntVarArray::IntVarArray");
00051 Int::Limits::check(s.max(),"IntVarArray::IntVarArray");
00052 if (s.size() == 0)
00053 throw Int::VariableEmptyDomain("IntVarArray::IntVarArray");
00054 for (int i=0; i<size(); i++)
00055 x[i]._init(home,s);
00056 }
00057
00058 BoolVarArray::BoolVarArray(Space& home, int n, int min, int max)
00059 : VarArray<BoolVar>(home, n) {
00060 if ((min < 0) || (max > 1))
00061 throw Int::NotZeroOne("BoolVarArray::BoolVarArray");
00062 if (min > max)
00063 throw Int::VariableEmptyDomain("BoolVarArray::BoolVarArray");
00064 for (int i=0; i<size(); i++)
00065 x[i]._init(home,min,max);
00066 }
00067
00068 IntVarArgs::IntVarArgs(Space& home, int n, int min, int max)
00069 : VarArgArray<IntVar>(n) {
00070 Int::Limits::check(min,"IntVarArgs::IntVarArgs");
00071 Int::Limits::check(max,"IntVarArgs::IntVarArgs");
00072 if (min > max)
00073 throw Int::VariableEmptyDomain("IntVarArgs::IntVarArgs");
00074 for (int i=0; i<size(); i++)
00075 a[i]._init(home,min,max);
00076 }
00077
00078 IntVarArgs::IntVarArgs(Space& home, int n, const IntSet& s)
00079 : VarArgArray<IntVar>(n) {
00080 Int::Limits::check(s.min(),"IntVarArgs::IntVarArgs");
00081 Int::Limits::check(s.max(),"IntVarArgs::IntVarArgs");
00082 if (s.size() == 0)
00083 throw Int::VariableEmptyDomain("IntVarArgs::IntVarArgs");
00084 for (int i=0; i<size(); i++)
00085 a[i]._init(home,s);
00086 }
00087
00088 BoolVarArgs::BoolVarArgs(Space& home, int n, int min, int max)
00089 : VarArgArray<BoolVar>(n) {
00090 if ((min < 0) || (max > 1))
00091 throw Int::NotZeroOne("BoolVarArgs::BoolVarArgs");
00092 if (min > max)
00093 throw Int::VariableEmptyDomain("BoolVarArgs::BoolVarArgs");
00094 for (int i=0; i<size(); i++)
00095 a[i]._init(home,min,max);
00096 }
00097
00098 }
00099
00100