21#ifndef VOTCA_XTP_SYMMETRIC_TILES_H
22#define VOTCA_XTP_SYMMETRIC_TILES_H
73 Eigen::MatrixXd
Multiply(
const Eigen::MatrixXd& X,
double factor = 1.0)
const;
80 Eigen::Matrix<double, Eigen::Dynamic, Eigen::Dynamic, Eigen::RowMajor>>;
82 Eigen::Map<
const Eigen::Matrix<double, Eigen::Dynamic, Eigen::Dynamic,
97 std::unique_ptr<double[]>
data_;
std::vector< std::size_t > offset_
static constexpr Index DefaultTile
void Allocate(Index n, Index kind, Index tile=DefaultTile)
Eigen::Map< const Eigen::Matrix< double, Eigen::Dynamic, Eigen::Dynamic, Eigen::RowMajor > > ConstRowMajorMap
Eigen::Map< Eigen::Matrix< double, Eigen::Dynamic, Eigen::Dynamic, Eigen::RowMajor > > RowMajorMap
double operator()(Index i, Index j) const
Element (i, j), for tests.
std::unique_ptr< double[]> data_
void FinishBuild()
Fills the upper halves of the diagonal tiles; marks the matrix built.
double * TileData(Index I, Index J) const
static double Bytes(Index n, Index tile=DefaultTile)
Bytes the tiles of an n x n matrix need.
Eigen::MatrixXd Multiply(const Eigen::MatrixXd &X, double factor=1.0) const
factor * S * X
void SetRowLower(Index r, const double *values)
Row r, columns 0..r (values[0..r]); rows may be set in parallel.
Index TileStart(Index I) const
Index TileSize(Index I) const
Provides a means for comparing floating point numbers.