![]()  | 
  
    mptensor
    v0.3.0
    
   Parallel Library for Tensor Network Methods 
   | 
 
| template<template< typename > class Matrix, typename C > | |
| int | mptensor::solve (const Tensor< Matrix, C > &a, const std::vector< C > &b, std::vector< C > &x) | 
| Solve linear equation \( A\vec{x}=\vec{b}\).  More... | |
| template<template< typename > class Matrix, typename C > | |
| int | mptensor::solve (const Tensor< Matrix, C > &a, const Tensor< Matrix, C > &b, Tensor< Matrix, C > &x) | 
| Solve linear equation \( AX=B\).  More... | |
| template<template< typename > class Matrix, typename C > | |
| int | mptensor::solve (const Tensor< Matrix, C > &a, const Tensor< Matrix, C > &b, Tensor< Matrix, C > &x, const Axes &axes_row_a, const Axes &axes_col_a, const Axes &axes_row_b, const Axes &axes_col_b) | 
| Solve linear equation \( AX=B\).  More... | |
Functions to solve a linear equation.
| int mptensor::solve | ( | const Tensor< Matrix, C > & | a, | 
| const std::vector< C > & | b, | ||
| std::vector< C > & | x | ||
| ) | 
Solve linear equation \( A\vec{x}=\vec{b}\).
| [in] | a | The coefficient square matrix A. | 
| [in] | b | (global) The right hand side vector \( \vec{b}\). | 
| [out] | x | (global) The solution \( \vec{x}\). | 
| int mptensor::solve | ( | const Tensor< Matrix, C > & | a, | 
| const Tensor< Matrix, C > & | b, | ||
| Tensor< Matrix, C > & | x, | ||
| const Axes & | axes_row_a, | ||
| const Axes & | axes_col_a, | ||
| const Axes & | axes_row_b, | ||
| const Axes & | axes_col_b | ||
| ) | 
Solve linear equation \( AX=B\).
| [in] | a | The coefficient tensor A, which is a square matrix after matricization. | 
| [in] | b | The right hand side tensor B. | 
| [out] | x | The solution X. | 
| [in] | axes_row_a | Axes in A to reorder to the left. | 
| [in] | axes_col_a | Axes in A to reorder to the right. | 
| [in] | axes_row_b | Axes in B to reorder to the left. | 
| [in] | axes_col_b | Axes in B to reorder to the right. | 
The last four arguments define the way of matricization of tensors, A and B. The order of axes in solution X is deterimined by axes_col_a and axes_col_b.
An equation \( \sum_{ik} A_{ijkl}X_{ikm} = B_{mlj} \) can be solved by
where the equation after reordering is written as \(\sum_{ik} A'_{(jl),(ik)}X_{(ik),(m)} = B'_{(jl),(m)} \).
The length of axes_col_b may be zero. For example, 
solves \( \sum_{kl} A_{ijkl} X_{kl} = B_{ij} \).