LU-Zerlegung

Implementiert die ungeblockte LU-Zerlegung mit Hilfe der High-level BLAS-Wrapper.

Vorlage für die Signatur:

#ifndef HPC_ULMLAPACK_TF2_H
#define HPC_ULMLAPACK_TF2_H 1

#include <algorithm>
#include <hpc/matvec/r.h>
#include <hpc/matvec/iamax.h>
#include <hpc/matvec/scal.h>
#include <hpc/matvec/swap.h>

namespace hpc { namespace ulmlapack {

template <typename MA, typename VP>
typename std::enable_if<hpc::matvec::IsGeMatrix<MA>::value
                     && hpc::matvec::IsDenseVector<VP>::value,
         typename std::remove_reference<MA>::type::Index>::type
tf2(MA &&A, VP &&p)
{
    typedef typename std::remove_reference<MA>::type MatrixA;

    typedef typename MatrixA::ElementType    T;
    typedef typename MatrixA::Index          Index;

    using namespace hpc::matvec;

    Index m = A.numRows;
    Index n = A.numCols;

    /* ... */

}

} } // namespace ulmblas, hpc

#endif // HPC_ULMLAPACK_TF2_H

Am Ende können Sie auch gerne Ihre Lösung wieder zu einem tar-Archiv zusammenpacken und mit submit einreichen:

submit hpc session19 session19.tar