|
NOX
Development
|
Utility class for NOX::Direction::Broyden method to manage the information stored in "limited" memory. More...
#include <NOX_Direction_Broyden.H>
Public Member Functions | |
| BroydenMemory () | |
| Constructor. More... | |
| ~BroydenMemory () | |
| Destructor. More... | |
| void | reset (int m) |
| Reset the memory. More... | |
| void | reset () |
| Reset the memory. More... | |
| void | push (const NOX::Abstract::Vector &d) |
| Add new information to the memory. More... | |
| bool | empty () const |
| Returns true if the memory is empty. | |
| int | size () const |
| Number of items in memory. | |
| BroydenMemoryUnit & | operator[] (int i) |
| Return the ith MemoryUnit (unchecked access) More... | |
Utility class for NOX::Direction::Broyden method to manage the information stored in "limited" memory.
Store up to
MemoryUnit objects where
is passed to reset(). Every time push() is called, a new MemoryUnit is added. If there are already
MemoryUnit's, the oldest is bumped off the list. The zero-th entry is always the oldest.
| NOX::Direction::Broyden::BroydenMemory::BroydenMemory | ( | ) |
Constructor.
Does nothing.
| NOX::Direction::Broyden::BroydenMemory::~BroydenMemory | ( | ) |
Destructor.
Does nothing.
| NOX::Direction::Broyden::BroydenMemoryUnit & NOX::Direction::Broyden::BroydenMemory::operator[] | ( | int | i | ) |
Return the ith MemoryUnit (unchecked access)
The zero entry is the oldest memory. The m-1 entry is the newest entry (where m denotes the memory size).
| void NOX::Direction::Broyden::BroydenMemory::push | ( | const NOX::Abstract::Vector & | d | ) |
Add new information to the memory.
We need to calculate where the new udpate should be stored in #memory and update the information in #index.
Let k denote the index of where the new update should be stored. If there are current m items stored in memory and m < mMax, then we set k = m. Otherwise, we set k equal to the location of the oldest update. The oldest update is deleted to make room for the new update. In both cases, #index must be updated appropriately so that the first (zero) entry points to the oldest update and the last entry points to the newest update.
References reset().
| void NOX::Direction::Broyden::BroydenMemory::reset | ( | int | m | ) |
| void NOX::Direction::Broyden::BroydenMemory::reset | ( | ) |
Reset the memory.
Sets the size of the #index vector to be zero.
1.8.5