CLA3P v0.3.1
Compact Linear Algebra Parallel Portable Package
Loading...
Searching...
No Matches
ex06l_sparse_matrix_algebra_add.cpp
#include <iostream>
#include <cla3p/sparse.hpp>
#include <cla3p/algebra.hpp>
int main()
{
Acoo.insert(0,0,1.0);
Acoo.insert(1,1,2.0);
Acoo.insert(2,1,3.0);
Acoo.insert(1,3,4.0);
Acoo.insert(0,0,5.0);
Bcoo.insert(0,0,-1.3);
Bcoo.insert(1,2, 2.2);
Bcoo.insert(2,1,-3.1);
Bcoo.insert(2,4, 4.6);
Bcoo.insert(1,1,-5.7);
std::cout << A.info("A") << A << "\n";
std::cout << B.info("B") << B << "\n";
/*
* Perform the operation (A + 2 * B) using operators and the add function respectively
*/
cla3p::csc::RdMatrix C1 = 3. * A + 2. * B;
std::cout << "C1:\n" << C1 << "\n";
std::cout << "C2:\n" << C2 << "\n";
/*
* Perform the operation (Cx += 3 * A) using operators and the update function respectively
*/
C1 += 3. * A;
std::cout << "C1:\n" << C1 << "\n";
cla3p::ops::update(3., B, C2);
std::cout << "C2:\n" << C2 << "\n";
return 0;
}
csc::XxMatrix< T_Int, T_Scalar > toCsc(dup_t duplicatePolicy=dup_t::Sum) const
Convert to compressed sparse column (CSC) format.
void insert(const Tuple< T_Int, T_Scalar > &tuple)
Insert a non-zero element using a tuple.
std::string info(const std::string &header="") const
Get information about the sparse matrix.
void update(T_Scalar alpha, const dns::XxVector< T_Scalar > &x, dns::XxVector< T_Scalar > &y)
Update a dense vector with a compatible scaled dense vector.
dns::XxVector< T_Scalar > add(T_Scalar alpha, const dns::XxVector< T_Scalar > &x, T_Scalar beta, const dns::XxVector< T_Scalar > &y)
Adds two compatible scaled dense vectors.
XxMatrix< int_t, real_t > RdMatrix
Double precision real COO (Coordinate) matrix.
Definition sparse.hpp:111
XxMatrix< int_t, real_t > RdMatrix
Double precision real CSC (Compressed Sparse Column) matrix.
Definition sparse.hpp:73