Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Dixon (dense) refacto #194

Merged
merged 23 commits into from
Jun 12, 2019
Merged

Dixon (dense) refacto #194

merged 23 commits into from
Jun 12, 2019

Conversation

Breush
Copy link
Contributor

@Breush Breush commented Apr 2, 2019

@Breush Breush changed the title [WIP] Dixon refacto Dixon refacto May 3, 2019
@Breush Breush changed the title Dixon refacto Dixon (dense) refacto May 3, 2019
tests/test-solve-full.C Outdated Show resolved Hide resolved
Copy link
Member

@jgdumas jgdumas left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

See comments.

@Breush Breush changed the base branch from benchmark-dense-solve to master May 22, 2019 08:01
@Breush
Copy link
Contributor Author

Breush commented May 22, 2019

@ClementPernet In the class TransposeAugmentedSystem, we extract permutations of the augmented system (A|b)t = PLUQ into indices srcRow, srcCol. Does FFLAS has something for this?

@jgdumas jgdumas merged commit 1687429 into master Jun 12, 2019
@jgdumas
Copy link
Member

jgdumas commented Jun 12, 2019

Pb

g++ -DHAVE_CONFIG_H -I. -I.. -DLinBoxTestOnly -O2 -Wall -g -DDEBUG -D_LB_DEBUG -g -DDEBUG -D_LB_DEBUG -I.. -fopenmp -fabi-version=6 -I/usr/local/soft/givaro-4.0/include -I/data/scratch/gmp-6.1.1//include -I/usr/local/soft/fflas-ffpack-2.3/include -I/data/scratch/ntl-11.3.2/include -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -MT test-det.o -MD -MP -MF .deps/test-det.Tpo -c -o test-det.o test-det.C
In file included from ../linbox/algorithms/hybrid-det.h:36,
from ../linbox/solutions/det.h:600,
from test-det.C:48:
../linbox/algorithms/last-invariant-factor.h: In instantiation of ‘LinBox::LastInvariantFactor<_Ring, _Solver>::Integer& LinBox::LastInvariantFactor<_Ring, _Solver>::lastInvariantFactor1(LinBox::LastInvariantFactor<_Ring, _Solver>::Integer&, Vector&, const IMatrix&, bool) const [with IMatrix = LinBox::SparseMatrixGivaro::IntegerDom; Vector = LinBox::BlasVectorGivaro::IntegerDom; _Ring = Givaro::IntegerDom; _Solver = LinBox::DixonSolver<Givaro::IntegerDom, Givaro::ModularBalanced, LinBox::PrimeIteratorLinBox::IteratorCategories::HeuristicTag, LinBox::Method::DenseElimination>; LinBox::LastInvariantFactor<_Ring, _Solver>::Integer = Givaro::Integer]’:
../linbox/algorithms/hybrid-det.h:267:47: required from ‘typename Blackbox::Field::Element& LinBox::lif_cra_det(typename Blackbox::Field::Element&, const Blackbox&, const LinBox::RingCategories::IntegerTag&, const MyMethod&) [with Blackbox = LinBox::SparseMatrixGivaro::IntegerDom; MyMethod = LinBox::Method::Wiedemann; typename Blackbox::Field::Element = Givaro::Integer]’
../linbox/solutions/det.h:620:26: required from ‘typename Blackbox::Field::Element& LinBox::det(typename Blackbox::Field::Element&, const Blackbox&, const LinBox::RingCategories::IntegerTag&, const MyMethod&) [with Blackbox = LinBox::SparseMatrixGivaro::IntegerDom; MyMethod = LinBox::Method::Wiedemann; typename Blackbox::Field::Element = Givaro::Integer]’
../linbox/solutions/det.h:107:13: required from ‘typename Blackbox::Field::Element& LinBox::det(typename Blackbox::Field::Element&, const Blackbox&, const MyMethod&) [with Blackbox = LinBox::SparseMatrixGivaro::IntegerDom; MyMethod = LinBox::Method::Wiedemann; typename Blackbox::Field::Element = Givaro::Integer]’
test-det.C:368:49: required from here
../linbox/algorithms/last-invariant-factor.h:293:8: error: passing ‘const Solver’ {aka ‘const LinBox::DixonSolver<Givaro::IntegerDom, Givaro::ModularBalanced, LinBox::PrimeIteratorLinBox::IteratorCategories::HeuristicTag, LinBox::Method::DenseElimination>’} as ‘this’ argument discards qualifiers [-fpermissive]
tmp = solver.solveNonsingular(r_num, r_den, A, b,oldMatrix);
In file included from ../linbox/algorithms/./dixon-solver/dixon-solver-dense.h:363,
from ../linbox/algorithms/rational-solver.h:583,
from ../linbox/algorithms/hybrid-det.h:35,
from ../linbox/solutions/det.h:600,
from test-det.C:48:
../linbox/algorithms/./dixon-solver/./dixon-solver-dense.inl:63:24: note: in call to ‘LinBox::SolverReturnStatus LinBox::DixonSolver<Ring, Field, RandomPrime, LinBox::Method::DenseElimination>::solveNonsingular(Vector1&, LinBox::DixonSolver<Ring, Field, RandomPrime, LinBox::Method::DenseElimination>::Integer&, const IMatrix&, const Vector2&, bool, int) [with IMatrix = LinBox::SparseMatrixGivaro::IntegerDom; Vector1 = LinBox::BlasVectorGivaro::IntegerDom; Vector2 = LinBox::BlasVectorGivaro::IntegerDom; Ring = Givaro::IntegerDom; Field = Givaro::ModularBalanced; RandomPrime = LinBox::PrimeIteratorLinBox::IteratorCategories::HeuristicTag; LinBox::DixonSolver<Ring, Field, RandomPrime, LinBox::Method::DenseElimination>::Integer = Givaro::Integer]’
SolverReturnStatus DixonSolver<Ring, Field, RandomPrime, Method::DenseElimination>::solveNonsingular(
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from ../linbox/algorithms/hybrid-det.h:36,
from ../linbox/solutions/det.h:600,
from test-det.C:48:
../linbox/algorithms/last-invariant-factor.h: In instantiation of ‘LinBox::LastInvariantFactor<_Ring, _Solver>::Integer& LinBox::LastInvariantFactor<_Ring, _Solver>::lastInvariantFactor1(LinBox::LastInvariantFactor<_Ring, _Solver>::Integer&, Vector&, const IMatrix&, bool) const [with IMatrix = LinBox::BlasMatrixGivaro::IntegerDom; Vector = LinBox::BlasVectorGivaro::IntegerDom; _Ring = Givaro::IntegerDom; _Solver = LinBox::DixonSolver<Givaro::IntegerDom, Givaro::Modular, LinBox::PrimeIteratorLinBox::IteratorCategories::HeuristicTag, LinBox::Method::DenseElimination>; LinBox::LastInvariantFactor<_Ring, _Solver>::Integer = Givaro::Integer]’:
../linbox/algorithms/det-rational.h:251:32: required from ‘typename Rationals::Element& LinBox::rational_det(typename Rationals::Element&, const LinBox::BlasMatrix<_Field>&, const MyMethod&) [with Rationals = Givaro::QFieldGivaro::Rational; MyMethod = LinBox::Method::Auto; typename Rationals::Element = Givaro::Rational; typename LinBox::Vector::Dense = std::vector<Givaro::Rational, std::allocatorGivaro::Rational >]’
../linbox/solutions/det.h:660:15: required from ‘typename Field::Element& LinBox::det(typename Field::Element&, const LinBox::BlasMatrix<_Field>&, const LinBox::RingCategories::RationalTag&, const MyMethod&) [with Field = Givaro::QFieldGivaro::Rational; MyMethod = LinBox::Method::Auto; typename Field::Element = Givaro::Rational; typename LinBox::Vector::Dense = std::vector<Givaro::Rational, std::allocatorGivaro::Rational >]’
../linbox/solutions/det.h:107:13: required from ‘typename Blackbox::Field::Element& LinBox::det(typename Blackbox::Field::Element&, const Blackbox&, const MyMethod&) [with Blackbox = LinBox::BlasMatrix<Givaro::QFieldGivaro::Rational, std::vector<Givaro::Rational, std::allocatorGivaro::Rational > >; MyMethod = LinBox::Method::Auto; typename Blackbox::Field::Element = Givaro::Rational]’
test-det.C:566:41: required from here
../linbox/algorithms/last-invariant-factor.h:293:8: error: passing ‘const Solver’ {aka ‘const LinBox::DixonSolver<Givaro::IntegerDom, Givaro::Modular, LinBox::PrimeIteratorLinBox::IteratorCategories::HeuristicTag, LinBox::Method::DenseElimination>’} as ‘this’ argument discards qualifiers [-fpermissive]
tmp = solver.solveNonsingular(r_num, r_den, A, b,oldMatrix);
In file included from ../linbox/algorithms/./dixon-solver/dixon-solver-dense.h:363,
from ../linbox/algorithms/rational-solver.h:583,
from ../linbox/algorithms/hybrid-det.h:35,
from ../linbox/solutions/det.h:600,
from test-det.C:48:
../linbox/algorithms/./dixon-solver/./dixon-solver-dense.inl:63:24: note: in call to ‘LinBox::SolverReturnStatus LinBox::DixonSolver<Ring, Field, RandomPrime, LinBox::Method::DenseElimination>::solveNonsingular(Vector1&, LinBox::DixonSolver<Ring, Field, RandomPrime, LinBox::Method::DenseElimination>::Integer&, const IMatrix&, const Vector2&, bool, int) [with IMatrix = LinBox::BlasMatrixGivaro::IntegerDom; Vector1 = LinBox::BlasVectorGivaro::IntegerDom; Vector2 = LinBox::BlasVectorGivaro::IntegerDom; Ring = Givaro::IntegerDom; Field = Givaro::Modular; RandomPrime = LinBox::PrimeIteratorLinBox::IteratorCategories::HeuristicTag; LinBox::DixonSolver<Ring, Field, RandomPrime, LinBox::Method::DenseElimination>::Integer = Givaro::Integer]’
SolverReturnStatus DixonSolver<Ring, Field, RandomPrime, Method::DenseElimination>::solveNonsingular(
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
make[4]: *** [Makefile:2583: test-det.o] Error 1

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants