SlowDown Algorithmic Regularization (SDAR)
Algorithmic Regularization with slowdown method for integrating few-body motions
|
Go to the documentation of this file.
18 template <
class Ttype>
57 data_=
new Ttype[_nmax];
58 adr_=
new Ttype*[_nmax];
62 data_=
new Ttype[_nmax];
166 return data_[_index];
191 return data_[_index];
201 ASSERT(_index<
nmax_);
298 static void createRemoveTable(
const int* _index,
const int _n_index,
const int _n_member,
int* _remove_table) {
300 ASSERT(_n_member>=_n_index);
303 int ilast = _n_member-1;
304 const int n_new = _n_member - _n_index;
306 for (
int i=0; i<_n_member; i++) _remove_table[i] = -1;
308 for (
int i=0; i<_n_index; i++) {
314 ilast = std::max(ilast, idel);
317 if(_remove_table[k]>=0) {
318 idel=_remove_table[k];
319 _remove_table[k]=_n_member;
323 ASSERT(idel<_n_member);
331 while(_remove_table[ilast]>=0 && (_remove_table[ilast]<n_new || _remove_table[ilast]==_n_member) && ilast>idel) ilast--;
334 if(_remove_table[ilast]<0||(idel<_remove_table[ilast]&&_remove_table[ilast]<_n_member)) {
335 itrlast=_remove_table[ilast];
336 _remove_table[ilast]=idel;
339 _remove_table[idel]=_n_member;
350 void removeMember(
const int _index,
const bool _shift_last_only_flag) {
356 if (_shift_last_only_flag) {
362 for (
int j=_index; j<ilast; j++) {
368 for (
int j=_index; j<ilast; j++)
data_[j] =
data_[j+1];
382 const int num_org =
num_;
384 for (
int i=0; i<num_org; i++) {
385 ASSERT(remove_table[i]<=num_org);
387 if(remove_table[i]<0)
continue;
389 else if(remove_table[i]<num_org) {
390 const int inew = remove_table[i];
399 for (
int i=0; i<num_org; i++) {
400 ASSERT(remove_table[i]<=num_org);
402 if(remove_table[i]<0)
continue;
404 else if(remove_table[i]<num_org) {
405 const int inew = remove_table[i];
421 ASSERT(_n_index<=
num_);
422 const int num_org =
num_;
423 int remove_table[
num_];
426 ASSERT(
num_+_n_index==num_org);
436 for (
int i=0; i<
num_; i++) {
450 for (
int i=0; i<_n; i++) {
Ttype * getDataAddress() const
return member data array address
Definition: list.h:170
Definition: binary_tree.h:8
bool isModified() const
Get modified status.
Definition: list.h:457
void removeMemberList(const int *_index, const int _n_index)
remove a list of member based on an index list
Definition: list.h:420
Ttype * data_
member array to store the data, or a link to existed member array (not allocated)
Definition: list.h:23
List & operator=(const List &_list)
operator = is copy
Definition: list.h:116
Ttype ** getOriginAddressArray() const
return member original address array
Definition: list.h:175
void removeMemberTable(const int *remove_table)
remove a list of member based on remove table
Definition: list.h:381
Ttype * getMemberOriginAddress(const int _index) const
return one member original address
Definition: list.h:198
int nmax_
maximum number of members allocated in memory
Definition: list.h:22
Ttype & operator[](const int _index) const
return one member data reference operator
Definition: list.h:188
ListMode
list mode identification
Definition: list.h:13
~List()
destructor
Definition: list.h:144
ListMode getMode() const
Definition: list.h:155
void clear()
Clear function.
Definition: list.h:76
List()
Constructor.
Definition: list.h:34
void addMember(const T &_member)
copy one member and its address
Definition: list.h:234
ListMode mode_
mode indicator
Definition: list.h:25
void linkMemberArray(Ttype _member[], const int _n_member)
link a member array
Definition: list.h:280
Ttype & getMember(const int _index)
return one member data reference
Definition: list.h:163
void increaseSizeNoInitialize(const int _n)
increase size without initialization
Definition: list.h:246
void setModifiedFalse()
Reset modified status to false.
Definition: list.h:462
int getSize() const
get current member number
Definition: list.h:151
static void createRemoveTable(const int *_index, const int _n_index, const int _n_member, int *_remove_table)
create remove table for removing a list of members
Definition: list.h:298
int num_
number of current members in the list
Definition: list.h:21
list class to store and manage a group of member
Definition: list.h:19
void resizeNoInitialize(const int _n)
increase size without initialization
Definition: list.h:268
bool modified_flag_
true: member list is modified; used for safety checking
Definition: list.h:28
void removeMember(const int _index, const bool _shift_last_only_flag)
remove one member
Definition: list.h:350
void setMode(const ListMode _mode)
set mode
Definition: list.h:39
void writeBackMemberList(const int *_index, const int _n)
copy a list of member data back to original address
Definition: list.h:447
int getSizeMax() const
Get maximum member number allow to store.
Definition: list.h:209
void addMemberAndAddress(T &_member)
copy one member and its address
Definition: list.h:219
Ttype & getLastMember()
return last member
Definition: list.h:180
void decreaseSizeNoInitialize(const int _n)
increase size without initialization
Definition: list.h:257
void writeBackMemberAll()
copy all member data back to original address
Definition: list.h:433
void reserveMem(const int _nmax)
Memory allocation for storing members.
Definition: list.h:48
Ttype ** adr_
original member address of member members
Definition: list.h:24