node.icc
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 namespace Gecode { namespace Int { namespace Distinct {
00023
00024
00025
00026
00027
00028
00029 template <class View>
00030 forceinline
00031 Node<View>::Node(void)
00032 : pre(0), low(0), comp(0) {}
00033 template <class View>
00034 forceinline Edge<View>*
00035 Node<View>::edge_fst(void) const {
00036 return static_cast<Edge<View>*>(BiLink::next());
00037 }
00038 template <class View>
00039 forceinline Edge<View>*
00040 Node<View>::edge_lst(void) const {
00041 return static_cast<Edge<View>*>(static_cast<BiLink*>(const_cast<Node<View>*>(this)));
00042 }
00043 template <class View>
00044 forceinline void*
00045 Node<View>::operator new(size_t, void* p) {
00046 return p;
00047 }
00048
00049
00050
00051
00052
00053
00054
00055
00056
00057 template <class View>
00058 forceinline
00059 ValNode<View>::ValNode(int v)
00060 : _val(v), _matching(NULL) {}
00061 template <class View>
00062 forceinline int
00063 ValNode<View>::val(void) const {
00064 return _val;
00065 }
00066 template <class View>
00067 forceinline void
00068 ValNode<View>::matching(Edge<View>* e) {
00069 _matching = e;
00070 }
00071 template <class View>
00072 forceinline Edge<View>*
00073 ValNode<View>::matching(void) const {
00074 return _matching;
00075 }
00076
00077
00078
00079
00080
00081
00082
00083
00084 template <class View>
00085 forceinline
00086 ViewNode<View>::ViewNode(View x)
00087 : _view(x) {}
00088 template <class View>
00089 forceinline Edge<View>*
00090 ViewNode<View>::val_edges(void) const {
00091 return _val_edges;
00092 }
00093 template <class View>
00094 forceinline Edge<View>**
00095 ViewNode<View>::val_edges_ref(void) {
00096 return &_val_edges;
00097 }
00098 template <class View>
00099 forceinline View
00100 ViewNode<View>::view(void) const {
00101 return _view;
00102 }
00103
00104 }}}
00105
00106
00107