* \brief Recording actions for set variables * * \ingroup TaskModelSetBranch */
| 1188 | * \ingroup TaskModelSetBranch |
| 1189 | */ |
| 1190 | class SetAction : public Action { |
| 1191 | public: |
| 1192 | /** |
| 1193 | * \brief Construct as not yet initialized |
| 1194 | * |
| 1195 | * The only member functions that can be used on a constructed but not |
| 1196 | * yet initialized action storage is init or the assignment operator. |
| 1197 | * |
| 1198 | */ |
| 1199 | SetAction(void); |
| 1200 | /// Copy constructor |
| 1201 | SetAction(const SetAction& a); |
| 1202 | /// Assignment operator |
| 1203 | SetAction& operator =(const SetAction& a); |
| 1204 | /** |
| 1205 | * \brief Initialize for set variables \a x with decay factor \a d |
| 1206 | * |
| 1207 | * Counts propagation if \a p is true and failure if \a f is true. |
| 1208 | * |
| 1209 | * If the branch merit function \a bm is different from nullptr, the |
| 1210 | * action for each variable is initialized with the merit returned |
| 1211 | * by \a bm. |
| 1212 | * |
| 1213 | */ |
| 1214 | GECODE_SET_EXPORT |
| 1215 | SetAction(Home home, const SetVarArgs& x, double d=1.0, |
| 1216 | bool p=true, bool f=true, |
| 1217 | SetBranchMerit bm=nullptr); |
| 1218 | /** |
| 1219 | * \brief Initialize for set variables \a x with decay factor \a d |
| 1220 | * |
| 1221 | * Counts propagation if \a p is true and failure if \a f is true. |
| 1222 | * |
| 1223 | * If the branch merit function \a bm is different from nullptr, the |
| 1224 | * action for each variable is initialized with the merit returned |
| 1225 | * by \a bm. |
| 1226 | * |
| 1227 | * This member function can only be used once and only if the |
| 1228 | * action storage has been constructed with the default constructor. |
| 1229 | * |
| 1230 | */ |
| 1231 | GECODE_SET_EXPORT void |
| 1232 | init(Home home, const SetVarArgs& x, double d=1.0, |
| 1233 | bool p=true, bool f=true, |
| 1234 | SetBranchMerit bm=nullptr); |
| 1235 | }; |
| 1236 | |
| 1237 | } |
| 1238 |