-
Notifications
You must be signed in to change notification settings - Fork 31
[ODK] Code clean up summary
A. Breust edited this page Nov 7, 2018
·
1 revision
NOTE: This page is meant to be updated according to the identification notes from the project board.
template<class Vector, class Blackbox, class SolveMethod, class DomainCategory>
Vector& solve(Vector& x,
const Blackbox& A,
const Vector& b,
const DomainCategory& tag,
const SolveMethod& M);-
Blackboxmight not be a BB per se; -
DomainCategoryis reached throughFieldTraits<typename Blackbox::Field>::categoryTag()which points tostruct ClassifyRing<Field>::categoryTagwhich goes down to things likeRingCategories::RationalTag(orIntegerTag,ModularTag); -
SolveMethodis something likeMethod::Hybrid,Method::Elimination,Method::CRA.
- Determine what this is (by bboyer in 61f986733ef5f66d02a81c449892b1daf91bca24):
//x @todo temporary - fix this
//#define inBlasRange(p) true-
solve.hThere are some definitions ofsolvein, but they still take(Vector& x, Matrix& A, const Vector& b). They modify the Matrix in place, but they are not defined from everything. We should discuss about making the in-place method by default? Whatever, I would expect thesolveinto be in-place for the vector, not the matrix. - Choosing between
Method::EliminationandMethod::CRAfeels strange. InCRA, what method does it uses underlying? Fact is, it is done viaMethod::CRAwhich is aCRATraitswhich holds aniterationMethod.- @ClementPernet says that this concept works fine, we could make Method::MPI -> Method::CRA or Method::DixonLifting -> iterationMathod.
- Why is there a specific
solveCRA? - We currently have no way to say go through MPI, it just uses it if
__LINBOX_HAVE_MPIis defined. We should think about how to keep this behavior by default, but allow user switch.
- Dimension checking could be done once? Should not be done in both algorithms and solutions at least.
-
rational-solver.handrational-solver2.h(-_-') -
rational-reconstruction.handrational-reconstruction2.h
- Should write a test that try all combinaisons of SolveMethod/Matrix.