% +------------------------------------------------------------------------+ % | Reference manual page: Taucs_matrix.tex % +------------------------------------------------------------------------+ % | 21.09.2005 Laurent Saboret, Pierre Alliez % | Package: Parameterization % | \RCSdef{\RCSTaucsmatrixRev}{$Id$} \RCSdefDate{\RCSTaucsmatrixDate}{$Date$} % | %%RefPage: end of header, begin of main body % +------------------------------------------------------------------------+ \begin{ccRefClass}{Taucs_matrix} %% add template arg's if necessary %% \ccHtmlCrossLink{} %% add further rules for cross referencing links %% \ccHtmlIndexC[class]{} %% add further index entries \ccDefinition % The section below is automatically generated. Do not edit! %START-AUTO(\ccDefinition) The class Taucs\_matrix is a C++ wrapper around TAUCS' matrix type taucs\_ccs\_matrix. This kind of matrix can be either symmetric or not. Symmetric matrices store only the lower triangle. \begin{description} \item[Todo]Taucs\_matrix must reallocate the array of non null elements when it's full. Filling a Taucs\_matrix by lines is very slow. We must improve this code.\end{description} %END-AUTO(\ccDefinition) \ccInclude{CGAL/Taucs_matrix.h} \ccIsModel % The section below is automatically generated. Do not edit! %START-AUTO(\ccIsModel) Model of the SparseLinearAlgebraTraits\_d::Matrix concept. %END-AUTO(\ccIsModel) \ccParameters The full template declaration is: % The section below is automatically generated. Do not edit! %START-AUTO(\ccParameters) template$<$ \\ class T$>$ \\ struct Taucs\_matrix; %END-AUTO(\ccParameters) \ccTypes % The section below is automatically generated. Do not edit! %START-AUTO(\ccTypes) \ccNestedType{NT} { } \ccGlue %END-AUTO(\ccTypes) \ccCreation \ccCreationVariable{M} %% choose variable name for \ccMethod % The section below is automatically generated. Do not edit! %START-AUTO(\ccCreation) \ccConstructor{Taucs_matrix (int dim, bool is_symmetric = false, int nb_max_elements = 0);} { Create a square matrix initialized with zeros. } \ccGlue \begin{description} \item[Parameters: ] \begin{description} \item[dim]Matrix dimension. \item[is\_symmetric]Symmetric/hermitian? \item[nb\_max\_elements]Max number of non 0 elements in the matrix (automatically computed if 0). \end{description} \end{description} \ccGlue \ccConstructor{Taucs_matrix (int rows, int columns, bool is_symmetric = false, int nb_max_elements = 0);} { Create a rectangular matrix initialized with zeros. } \ccGlue \begin{description} \item[Parameters: ] \begin{description} \item[rows]Matrix dimensions. \item[is\_symmetric]Symmetric/hermitian? \item[nb\_max\_elements]Max number of non 0 elements in the matrix (automatically computed if 0). \end{description} \end{description} \ccGlue %END-AUTO(\ccCreation) \ccOperations % The section below is automatically generated. Do not edit! %START-AUTO(\ccOperations) \ccMethod{int row_dimension () const;} { Return the matrix' number of rows. } \ccGlue \ccMethod{int column_dimension () const;} { Return the matrix' number of columns. } \ccGlue \ccMethod{T get_coef (int i, int j) const;} { Read access to 1 matrix coefficient. Preconditions:\begin{itemize} \item 0 $<$= i $<$ row\_dimension().\item 0 $<$= j $<$ column\_dimension(). \end{itemize} } \ccGlue \ccMethod{void set_coef (int i, int j, T val);} { Write access to 1 matrix coefficient: a\_ij $<$- val. Optimization: For symmetric matrices, Taucs\_matrix stores only the lower triangle set\_coef() does nothing if (i,j) belongs to the upper triangle. Preconditions:\begin{itemize} \item 0 $<$= i $<$ row\_dimension().\item 0 $<$= j $<$ column\_dimension(). \end{itemize} } \ccGlue \ccMethod{void add_coef (int i, int j, T val);} { Write access to 1 matrix coefficient: a\_ij $<$- a\_ij + val. Optimization: For symmetric matrices, Taucs\_matrix stores only the lower triangle add\_coef() does nothing if (i,j) belongs to the upper triangle. Preconditions:\begin{itemize} \item 0 $<$= i $<$ row\_dimension().\item 0 $<$= j $<$ column\_dimension(). \end{itemize} } \ccGlue \ccMethod{const taucs_ccs_matrix* get_taucs_matrix () const;} { Get TAUCS matrix wrapped by this object. } \ccGlue \ccMethod{taucs_ccs_matrix* get_taucs_matrix ();} { } \ccGlue %END-AUTO(\ccOperations) \ccSeeAlso \ccRefIdfierPage{CGAL::Taucs_solver_traits} \\ \ccRefIdfierPage{CGAL::Taucs_symmetric_solver_traits} \\ \ccRefIdfierPage{CGAL::Taucs_symmetric_matrix} \\ \ccRefIdfierPage{CGAL::Taucs_vector} \\ \ccExample A Taucs\_matrix object can be used as a 2D array of floating points. Use get\_coef() and set\_coef() to access to the matrix elements. \begin{ccExampleCode} typedef CGAL::Taucs_matrix Matrix; int main() { Matrix m(100, 50); // 100 x 50 elements m.set_coef(0, 0, 4.3); double val = m.get_coef(0, 0); ... } \end{ccExampleCode} \end{ccRefClass} % +------------------------------------------------------------------------+ %%RefPage: end of main body, begin of footer % EOF % +------------------------------------------------------------------------+