Macaulay2 Engine
Loading...
Searching...
No Matches

◆ rankUsingDenseMatrixFlint()

template<typename Gen>
int SchreyerFrame::rankUsingDenseMatrixFlint ( Gen & D,
bool transposed = true )

Definition at line 673 of file res-f4-m2-interface.cpp.

674{
675 unsigned int charac =
676 static_cast<unsigned int>(vectorArithmetic().ring()->characteristic());
677 M2::ARingZZpFlint R(charac);
678 DMat<M2::ARingZZpFlint> M(R, 0, 0);
679 if (!transposed)
681 else
683 auto a = DMatLinAlg<M2::ARingZZpFlint>(M);
684 // std::cout << "---- dense matrix ----" << std::endl;
685 // displayMat(M);
686 // std::cout << "----------------------" << std::endl;
687 auto timeA = timer();
688 int rk = static_cast<int>(a.rank());
689 auto timeB = timer();
690 double nsecs = seconds(timeB - timeA);
691
692 timeComputeRanks += nsecs;
693
694 if (M2_gbTrace >= 2)
695 {
696 if (M.numRows() > 0 and M.numColumns() > 0)
697 std::cout << " dense rank = " << rk
698 << " time = " << nsecs << " sec"
699 << std::endl;
700 }
701
702 return rk;
703}
long characteristic() const
Definition ring.hpp:159
const VectorArithmetic & vectorArithmetic() const
const Ring * ring() const
int M2_gbTrace
Definition m2-types.cpp:52
void setDMatFromSparseMatrixGeneratorTransposed(Gen &G, DMat< RingType > &M)
void setDMatFromSparseMatrixGenerator(Gen &G, DMat< RingType > &M)
std::chrono::steady_clock::time_point timer()
Definition timing.hpp:35
double seconds(DurationType time_diff)
Definition timing.hpp:59

References Ring::characteristic(), M2_gbTrace, DMat< ACoeffRing >::numColumns(), DMat< ACoeffRing >::numRows(), VectorArithmetic::ring(), seconds(), setDMatFromSparseMatrixGenerator(), setDMatFromSparseMatrixGeneratorTransposed(), timeComputeRanks, timer(), and vectorArithmetic().