Class xlifepp::ARInterfaceGen#

template<class K_, class MA_, class MB_>
class ARInterfaceGen : public xlifepp::ARInterface<K_, MA_>#

Inheritence diagram for xlifepp::ARInterfaceGen:

digraph { graph [bgcolor="#00000000"] node [shape=rectangle style=filled fillcolor="#FFFFFF" font=Helvetica padding=2] edge [color="#1414CE"] "5" [label="xlifepp::ARInterfaceGen< real_t, MAB_, MAB_ >" tooltip="xlifepp::ARInterfaceGen< real_t, MAB_, MAB_ >"] "2" [label="xlifepp::ARInterface< K_, MA_ >" tooltip="xlifepp::ARInterface< K_, MA_ >"] "1" [label="xlifepp::ARInterfaceGen< K_, MA_, MB_ >" tooltip="xlifepp::ARInterfaceGen< K_, MA_, MB_ >" fillcolor="#BFBFBF"] "6" [label="xlifepp::ARInterfaceGenBuc< MAB_ >" tooltip="xlifepp::ARInterfaceGenBuc< MAB_ >"] "7" [label="xlifepp::ARInterfaceGenCay< MAB_ >" tooltip="xlifepp::ARInterfaceGenCay< MAB_ >"] "8" [label="xlifepp::ARInterfaceGenCsh< MAB_, MAsB_ >" tooltip="xlifepp::ARInterfaceGenCsh< MAB_, MAsB_ >"] "3" [label="xlifepp::ARInterfaceGenReg< K_, MA_, MB_ >" tooltip="xlifepp::ARInterfaceGenReg< K_, MA_, MB_ >"] "4" [label="xlifepp::ARInterfaceGenShf< K_, MA_, MB_ >" tooltip="xlifepp::ARInterfaceGenShf< K_, MA_, MB_ >"] "9" [label="xlifepp::ARInterfaceGenSymReg< MAB_ >" tooltip="xlifepp::ARInterfaceGenSymReg< MAB_ >"] "5" -> "1" [dir=forward tooltip="template-instance"] "1" -> "2" [dir=forward tooltip="public-inheritance"] "6" -> "5" [dir=forward tooltip="public-inheritance"] "7" -> "5" [dir=forward tooltip="public-inheritance"] "8" -> "5" [dir=forward tooltip="public-inheritance"] "3" -> "1" [dir=forward tooltip="public-inheritance"] "4" -> "1" [dir=forward tooltip="public-inheritance"] "9" -> "5" [dir=forward tooltip="public-inheritance"] }

Collaboration diagram for xlifepp::ARInterfaceGen:

digraph { graph [bgcolor="#00000000"] node [shape=rectangle style=filled fillcolor="#FFFFFF" font=Helvetica padding=2] edge [color="#1414CE"] "4" [label="std::basic_string< char >" tooltip="std::basic_string< char >"] "5" [label="std::basic_string< Char >" tooltip="std::basic_string< Char >"] "3" [label="std::string" tooltip="std::string"] "7" [label="std::vector< T >" tooltip="std::vector< T >"] "6" [label="std::vector< K_ >" tooltip="std::vector< K_ >"] "2" [label="xlifepp::ARInterface< K_, MA_ >" tooltip="xlifepp::ARInterface< K_, MA_ >"] "1" [label="xlifepp::ARInterfaceGen< K_, MA_, MB_ >" tooltip="xlifepp::ARInterfaceGen< K_, MA_, MB_ >" fillcolor="#BFBFBF"] "4" -> "5" [dir=forward tooltip="template-instance"] "3" -> "4" [dir=forward tooltip="public-inheritance"] "6" -> "7" [dir=forward tooltip="template-instance"] "2" -> "3" [dir=forward tooltip="usage"] "2" -> "6" [dir=forward tooltip="usage"] "1" -> "2" [dir=forward tooltip="public-inheritance"] }

Abstract class for generalized eigenvalue problem Matrix-vector product provided: y <- B * x.

Subclassed by xlifepp::ARInterfaceGenReg< K_, MA_, MB_ >, xlifepp::ARInterfaceGenShf< K_, MA_, MB_ >

Public Functions

ARInterfaceGen(const MA_ &matA, const MB_ &matB)#

A_B constructor.

ARInterfaceGen(const MB_ &matB)#

B constructor (matrix A is not directly used)

virtual void MultBx(K_ *x, K_ *y)#

matrix-vector product y <- B * x required for all derived classes except for ARInterfaceGenBuc which needs y <- A * x.

This is why this function is declared virtual. When the problem is complex, x and y are complex but B is real.