6#include <boost/numeric/ublas/matrix.hpp>  
    7#include <boost/numeric/ublas/vector.hpp> 
    8#include <boost/numeric/ublas/matrix_proxy.hpp> 
    9#include <boost/numeric/ublas/lu.hpp> 
   33        boost::numeric::ublas::vector<size_t> 
P;
 
 
   41        assert(A_.size1() == A_.size2());
 
   48        using namespace boost::numeric::ublas;
 
   50        std::iota(P.begin(), P.end(), 0);
 
   52        for (
size_t i = 0; i < N; ++i) {
 
   55            for (
size_t k = i; 
k < N; ++
k) {
 
   56                T absA = abs(A(
k, i));
 
   65                swap(row(A, i), row(A, imax)); 
 
   71            for (
size_t j = i + 1; j < N; ++j) {
 
   73                for (
size_t k = i + 1; 
k < N; ++
k)
 
   74                    A(j, 
k) -= A(j, i) * A(i, 
k);
 
 
   86        for (
size_t i = 0; i < N; ++i) {
 
   88            for (
size_t k = 0; 
k < i; ++
k)
 
   89                x(i) -= A(i, 
k) * x(
k);
 
   92        for (
size_t i = N; i > 0; --i) {
 
   93            for (
size_t k = i; 
k < N; ++
k)
 
   94                x(i - 1) -= A(i - 1, 
k) * x(
k);
 
   95            x(i - 1) = x(i - 1) / A(i - 1, i - 1);
 
 
 
bool gaussian_elimination_inplace(std::vector< std::vector< cadabra::multiplier_t > > &, std::vector< cadabra::multiplier_t > &)
 
int k
Definition passing.cc:4
 
boost::numeric::ublas::vector< size_t > P
Definition Linear.hh:33
 
boost::numeric::ublas::matrix< T > matrix_type
Definition Linear.hh:22
 
boost::numeric::ublas::vector< T > vector_type
Definition Linear.hh:23
 
matrix_type A
Definition Linear.hh:32
 
size_t N
Definition Linear.hh:35
 
bool factorize(const matrix_type &A_)
Definition Linear.hh:39
 
vector_type solve(const vector_type &y)
Definition Linear.hh:83
 
vector_type x
Definition Linear.hh:34