-
Notifications
You must be signed in to change notification settings - Fork 0
Description
As can be observed, the current use of templates should be interpreted as a preliminary design choice aimed at future extensibility rather than as a strictly necessary tool for the current implementation.
In the Solver class, templating is currently used only to distinguish between different types of initial guesses, allowing the solver to store a uniquely typed starting value. However, this mechanism could be naturally extended in the future to support systems of equations or to further abstract the solver from the specific goal of non-linear root finding.
In the Stepper hierarchy, the classes are templated even though this is not yet required. This choice was made to enable future developments, such as extending the same algorithms to vector- or matrix-valued problems without changing the class interfaces.
Therefore, the presence of template classes should be understood as a design blueprint that anticipates future extensions of the codebase, rather than as an optimization or necessity for the current scope of the project.