SlowDown Algorithmic Regularization (SDAR)
Algorithmic Regularization with slowdown method for integrating few-body motions
|
list class to store and manage a group of member More...
#include <list.h>
Public Member Functions | |
List () | |
Constructor. More... | |
void | setMode (const ListMode _mode) |
set mode More... | |
void | reserveMem (const int _nmax) |
Memory allocation for storing members. More... | |
void | clear () |
Clear function. More... | |
List & | operator= (const List &_list) |
operator = is copy More... | |
~List () | |
destructor More... | |
int | getSize () const |
get current member number More... | |
ListMode | getMode () const |
Ttype & | getMember (const int _index) |
return one member data reference More... | |
Ttype * | getDataAddress () const |
return member data array address More... | |
Ttype ** | getOriginAddressArray () const |
return member original address array More... | |
Ttype & | getLastMember () |
return last member More... | |
Ttype & | operator[] (const int _index) const |
return one member data reference operator More... | |
Ttype * | getMemberOriginAddress (const int _index) const |
return one member original address More... | |
int | getSizeMax () const |
Get maximum member number allow to store. More... | |
template<class T > | |
void | addMemberAndAddress (T &_member) |
copy one member and its address More... | |
template<class T > | |
void | addMember (const T &_member) |
copy one member and its address More... | |
void | increaseSizeNoInitialize (const int _n) |
increase size without initialization More... | |
void | decreaseSizeNoInitialize (const int _n) |
increase size without initialization More... | |
void | resizeNoInitialize (const int _n) |
increase size without initialization More... | |
void | linkMemberArray (Ttype _member[], const int _n_member) |
link a member array More... | |
void | removeMember (const int _index, const bool _shift_last_only_flag) |
remove one member More... | |
void | removeMemberTable (const int *remove_table) |
remove a list of member based on remove table More... | |
void | removeMemberList (const int *_index, const int _n_index) |
remove a list of member based on an index list More... | |
template<class T > | |
void | writeBackMemberAll () |
copy all member data back to original address More... | |
template<class T > | |
void | writeBackMemberList (const int *_index, const int _n) |
copy a list of member data back to original address More... | |
bool | isModified () const |
Get modified status. More... | |
void | setModifiedFalse () |
Reset modified status to false. More... | |
Static Public Member Functions | |
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 More... | |
Protected Attributes | |
int | num_ |
number of current members in the list More... | |
int | nmax_ |
maximum number of members allocated in memory More... | |
Ttype * | data_ |
member array to store the data, or a link to existed member array (not allocated) More... | |
Ttype ** | adr_ |
original member address of member members More... | |
ListMode | mode_ |
mode indicator More... | |
bool | modified_flag_ |
true: member list is modified; used for safety checking More... | |
list class to store and manage a group of member
A list that storing member memory addresses and their copy (based on template class Ttype)
|
inline |
Constructor.
Set member number to zero, clear pointers
|
inline |
destructor
|
inline |
copy one member and its address
add a member by copying it into local allocated memory. Only work for ListMode::local
[in] | _member | a member to store (push back at the end of local array) |
|
inline |
copy one member and its address
add a member by copying member into local allocated memory and storing the original memory address of it. Only work for ListMode::copy
[in] | _member | a member to store (push back at the end of local array) |
|
inline |
Clear function.
Free dynamical memory space allocated
|
inlinestatic |
create remove table for removing a list of members
[in] | _index | member index list for remove |
[in] | _n_index | number of removing member indice |
[in] | _n_member | number of total members in the table |
[out] | _remove_table | remove_table generated, the size should be at least number of members to avoid overflow. for index i in table, value <0: no remove; <_number_member: new position; = _number_member: delete |
|
inline |
increase size without initialization
Work for ListMode::local and link case. Require the memory size is big enough to contain the new number of members.
|
inline |
return member data array address
|
inline |
return last member
|
inline |
return one member data reference
[in] | _index | index of member in group |
|
inline |
return one member original address
Only work when mode is ListMode::copy
|
inline |
|
inline |
return member original address array
|
inline |
get current member number
|
inline |
Get maximum member number allow to store.
|
inline |
increase size without initialization
Work for ListMode::local case. Require the memory size is big enough to contain the new number of members.
|
inline |
Get modified status.
|
inline |
link a member array
point the local member data to the begining of the input _member, no data copy, any modification later will be directly on original member array. Work for ListMode::link
[in] | _member | array of members |
[in] | _n_member | number of members |
|
inline |
operator = is copy
|
inline |
return one member data reference operator
overload []
[in] | _index | index of member in group |
|
inline |
remove one member
remove one member from local member array
[in] | _index | member index to be removed |
[in] | _shift_last_only_flag | true: shift last member to current position (defaulted); false: shift all right member to left by one |
|
inline |
remove a list of member based on an index list
[in] | _index | member index list for remove |
[in] | _n_index | number of removing member indices |
|
inline |
remove a list of member based on remove table
[in] | remove_table | table map the member new position and deleted ones, generated from createRemoveTable |
|
inline |
Memory allocation for storing members.
allocate memory for storing members and their original addresses.
[in] | _nmax | maximum number of members for memory allocation |
|
inline |
increase size without initialization
Work for ListMode::local case. Require the memory size is big enough to contain the new number of members.
|
inline |
set mode
Only set once, to set new mode, clear must be done first
|
inline |
Reset modified status to false.
copy all member data back to original address
work for ListMode::copy
|
inline |
copy a list of member data back to original address
work for ListMode::copy
[in] | _index | list of member index |
[in] | _n | number of members |
|
protected |
original member address of member members
|
protected |
member array to store the data, or a link to existed member array (not allocated)
|
protected |
mode indicator
|
protected |
true: member list is modified; used for safety checking
|
protected |
maximum number of members allocated in memory
|
protected |
number of current members in the list