mirror of
https://github.com/TREX-CoE/Sherman-Morrison.git
synced 2024-07-23 03:07:46 +02:00
27 lines
802 B
C++
27 lines
802 B
C++
![]() |
#pragma once
|
||
|
|
||
|
#include <iostream>
|
||
|
|
||
|
#include "UpdatePlanner.hpp"
|
||
|
|
||
|
namespace randomgen {
|
||
|
|
||
|
/**
|
||
|
* @brief Generates an update plan using chained updates
|
||
|
*
|
||
|
* Updates are generated left-to-right, where each splitting update targets the column on its right.
|
||
|
* By ensuring that the last update is non-splitting, we can guarantee that the matrix remains invertible.
|
||
|
*/
|
||
|
class ChainedUpdatePlanBuilder : public UpdatePlanner {
|
||
|
public:
|
||
|
/**
|
||
|
* @brief Produce a chain-update plan
|
||
|
* @param update_count The total number of updates in the plan
|
||
|
* @param split_count The number of splitting updates in the plan
|
||
|
* @return A new plan with the given parameters
|
||
|
*/
|
||
|
UpdatePlan make(uint32_t update_count, uint32_t split_count) const override;
|
||
|
};
|
||
|
|
||
|
}// namespace randomgen
|