#include #include using namespace triqs; double frobenius_norm(arrays::matrix const& a) { auto l = [](double r, double x) { auto ab = std::abs(x); return r + ab * ab; }; return std::sqrt(arrays::fold(l)(a, 0)); } int main() { // declare and init a matrix clef::placeholder<0> i_; clef::placeholder<1> j_; arrays::matrix A(2, 2); A(i_, j_) << i_ + j_ / 2.0; std::cout << "A = " << A << std::endl; std::cout << "||A|| = " << frobenius_norm(A) << std::endl; }