Changeset 872b51 for molecuilder/src/molecule_template.hpp
- Timestamp:
- Oct 18, 2009, 2:51:38 PM (16 years ago)
- Children:
- 77894f
- Parents:
- b0ee98
- git-author:
- Frederik Heber <heber@…> (10/18/09 14:15:37)
- git-committer:
- Frederik Heber <heber@…> (10/18/09 14:51:38)
- File:
-
- 1 edited
-
molecuilder/src/molecule_template.hpp (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
molecuilder/src/molecule_template.hpp
rb0ee98 r872b51 153 153 }; 154 154 155 // ========================= Summing over each Atoms =================================== // 156 157 // zero arguments 158 template <typename res> res molecule::SumPerAtom(res (atom::*f)() ) 159 { 160 res result = 0; 161 atom *Walker = start; 162 while (Walker->next != end) { 163 Walker = Walker->next; 164 result += (Walker->*f)(); 165 } 166 return result; 167 }; 168 template <typename res> res molecule::SumPerAtom(res (atom::*f)() const ) 169 { 170 res result = 0; 171 atom *Walker = start; 172 while (Walker->next != end) { 173 Walker = Walker->next; 174 result += (Walker->*f)(); 175 } 176 return result; 177 }; 178 template <typename res> res molecule::SumPerAtom(res (atom::*f)() ) const 179 { 180 res result = 0; 181 atom *Walker = start; 182 while (Walker->next != end) { 183 Walker = Walker->next; 184 result += (Walker->*f)(); 185 } 186 return result; 187 }; 188 template <typename res> res molecule::SumPerAtom(res (atom::*f)() const ) const 189 { 190 res result = 0; 191 atom *Walker = start; 192 while (Walker->next != end) { 193 Walker = Walker->next; 194 result += (Walker->*f)(); 195 } 196 return result; 197 }; 198 // one argument 199 template <typename T, typename res> res molecule::SumPerAtom(res (atom::*f)(T), T t ) 200 { 201 res result = 0; 202 atom *Walker = start; 203 while (Walker->next != end) { 204 Walker = Walker->next; 205 result += (Walker->*f)(t); 206 } 207 return result; 208 }; 209 template <typename T, typename res> res molecule::SumPerAtom(res (atom::*f)(T) const, T t ) 210 { 211 res result = 0; 212 atom *Walker = start; 213 while (Walker->next != end) { 214 Walker = Walker->next; 215 result += (Walker->*f)(t); 216 } 217 return result; 218 }; 219 template <typename T, typename res> res molecule::SumPerAtom(res (atom::*f)(T), T t ) const 220 { 221 res result = 0; 222 atom *Walker = start; 223 while (Walker->next != end) { 224 Walker = Walker->next; 225 result += (Walker->*f)(t); 226 } 227 return result; 228 }; 229 template <typename T, typename res> res molecule::SumPerAtom(res (atom::*f)(T) const, T t ) const 230 { 231 res result = 0; 232 atom *Walker = start; 233 while (Walker->next != end) { 234 Walker = Walker->next; 235 result += (Walker->*f)(t); 236 } 237 return result; 238 }; 239 240 155 241 // ================== Acting with each Atoms on same molecule ========================== // 156 242
Note:
See TracChangeset
for help on using the changeset viewer.
