Quantum++  v1.0
A modern C++11 quantum computing library
qpp::internal Namespace Reference

Internal utility functions, do not use them directly or modify them. More...

Classes

struct  Display_Impl_
 
class  IOManipEigen
 
class  IOManipPointer
 
class  IOManipRange
 
class  Singleton
 Singleton policy class, used internally to implement the singleton pattern via CRTP (Curiously recurring template pattern) More...
 

Functions

void n2multiidx (idx n, idx numdims, const idx *const dims, idx *result) noexcept
 
idx multiidx2n (const idx *const midx, idx numdims, const idx *const dims) noexcept
 
template<typename Derived >
bool check_square_mat (const Eigen::MatrixBase< Derived > &A)
 
template<typename Derived >
bool check_vector (const Eigen::MatrixBase< Derived > &A)
 
template<typename Derived >
bool check_rvector (const Eigen::MatrixBase< Derived > &A)
 
template<typename Derived >
bool check_cvector (const Eigen::MatrixBase< Derived > &A)
 
template<typename T >
bool check_nonzero_size (const T &x) noexcept
 
template<typename T1 , typename T2 >
bool check_matching_sizes (const T1 &lhs, const T2 &rhs) noexcept
 
bool check_dims (const std::vector< idx > &dims)
 
template<typename Derived >
bool check_dims_match_mat (const std::vector< idx > &dims, const Eigen::MatrixBase< Derived > &A)
 
template<typename Derived >
bool check_dims_match_cvect (const std::vector< idx > &dims, const Eigen::MatrixBase< Derived > &A)
 
template<typename Derived >
bool check_dims_match_rvect (const std::vector< idx > &dims, const Eigen::MatrixBase< Derived > &A)
 
bool check_eq_dims (const std::vector< idx > &dims, idx dim) noexcept
 
bool check_subsys_match_dims (const std::vector< idx > &subsys, const std::vector< idx > &dims)
 
template<typename Derived >
bool check_qubit_matrix (const Eigen::MatrixBase< Derived > &A) noexcept
 
template<typename Derived >
bool check_qubit_cvector (const Eigen::MatrixBase< Derived > &A) noexcept
 
template<typename Derived >
bool check_qubit_rvector (const Eigen::MatrixBase< Derived > &A) noexcept
 
template<typename Derived >
bool check_qubit_vector (const Eigen::MatrixBase< Derived > &A) noexcept
 
bool check_perm (const std::vector< idx > &perm)
 
template<typename Derived1 , typename Derived2 >
dyn_mat< typename Derived1::Scalar > kron2 (const Eigen::MatrixBase< Derived1 > &A, const Eigen::MatrixBase< Derived2 > &B)
 
template<typename Derived1 , typename Derived2 >
dyn_mat< typename Derived1::Scalar > dirsum2 (const Eigen::MatrixBase< Derived1 > &A, const Eigen::MatrixBase< Derived2 > &B)
 
template<typename T >
void variadic_vector_emplace (std::vector< T > &)
 
template<typename T , typename First , typename... Args>
void variadic_vector_emplace (std::vector< T > &v, First &&first, Args &&... args)
 
idx get_num_subsys (idx sz, idx d)
 
idx get_dim_subsys (idx sz, idx N)
 

Detailed Description

Internal utility functions, do not use them directly or modify them.

Function Documentation

◆ check_cvector()

template<typename Derived >
bool qpp::internal::check_cvector ( const Eigen::MatrixBase< Derived > &  A)

◆ check_dims()

bool qpp::internal::check_dims ( const std::vector< idx > &  dims)
inline

◆ check_dims_match_cvect()

template<typename Derived >
bool qpp::internal::check_dims_match_cvect ( const std::vector< idx > &  dims,
const Eigen::MatrixBase< Derived > &  A 
)

◆ check_dims_match_mat()

template<typename Derived >
bool qpp::internal::check_dims_match_mat ( const std::vector< idx > &  dims,
const Eigen::MatrixBase< Derived > &  A 
)

◆ check_dims_match_rvect()

template<typename Derived >
bool qpp::internal::check_dims_match_rvect ( const std::vector< idx > &  dims,
const Eigen::MatrixBase< Derived > &  A 
)

◆ check_eq_dims()

bool qpp::internal::check_eq_dims ( const std::vector< idx > &  dims,
idx  dim 
)
inlinenoexcept

◆ check_matching_sizes()

template<typename T1 , typename T2 >
bool qpp::internal::check_matching_sizes ( const T1 &  lhs,
const T2 &  rhs 
)
noexcept

◆ check_nonzero_size()

template<typename T >
bool qpp::internal::check_nonzero_size ( const T &  x)
noexcept

◆ check_perm()

bool qpp::internal::check_perm ( const std::vector< idx > &  perm)
inline

◆ check_qubit_cvector()

template<typename Derived >
bool qpp::internal::check_qubit_cvector ( const Eigen::MatrixBase< Derived > &  A)
noexcept

◆ check_qubit_matrix()

template<typename Derived >
bool qpp::internal::check_qubit_matrix ( const Eigen::MatrixBase< Derived > &  A)
noexcept

◆ check_qubit_rvector()

template<typename Derived >
bool qpp::internal::check_qubit_rvector ( const Eigen::MatrixBase< Derived > &  A)
noexcept

◆ check_qubit_vector()

template<typename Derived >
bool qpp::internal::check_qubit_vector ( const Eigen::MatrixBase< Derived > &  A)
noexcept

◆ check_rvector()

template<typename Derived >
bool qpp::internal::check_rvector ( const Eigen::MatrixBase< Derived > &  A)

◆ check_square_mat()

template<typename Derived >
bool qpp::internal::check_square_mat ( const Eigen::MatrixBase< Derived > &  A)

◆ check_subsys_match_dims()

bool qpp::internal::check_subsys_match_dims ( const std::vector< idx > &  subsys,
const std::vector< idx > &  dims 
)
inline

◆ check_vector()

template<typename Derived >
bool qpp::internal::check_vector ( const Eigen::MatrixBase< Derived > &  A)

◆ dirsum2()

template<typename Derived1 , typename Derived2 >
dyn_mat<typename Derived1::Scalar> qpp::internal::dirsum2 ( const Eigen::MatrixBase< Derived1 > &  A,
const Eigen::MatrixBase< Derived2 > &  B 
)

◆ get_dim_subsys()

idx qpp::internal::get_dim_subsys ( idx  sz,
idx  N 
)
inline

◆ get_num_subsys()

idx qpp::internal::get_num_subsys ( idx  sz,
idx  d 
)
inline

◆ kron2()

template<typename Derived1 , typename Derived2 >
dyn_mat<typename Derived1::Scalar> qpp::internal::kron2 ( const Eigen::MatrixBase< Derived1 > &  A,
const Eigen::MatrixBase< Derived2 > &  B 
)

◆ multiidx2n()

idx qpp::internal::multiidx2n ( const idx *const  midx,
idx  numdims,
const idx *const  dims 
)
inlinenoexcept

◆ n2multiidx()

void qpp::internal::n2multiidx ( idx  n,
idx  numdims,
const idx *const  dims,
idx result 
)
inlinenoexcept

◆ variadic_vector_emplace() [1/2]

template<typename T >
void qpp::internal::variadic_vector_emplace ( std::vector< T > &  )

◆ variadic_vector_emplace() [2/2]

template<typename T , typename First , typename... Args>
void qpp::internal::variadic_vector_emplace ( std::vector< T > &  v,
First &&  first,
Args &&...  args 
)