Mentions légales du service

Skip to content
Snippets Groups Projects
Commit 816b4f73 authored by Adrien Leman's avatar Adrien Leman Committed by hhakim
Browse files

doc latex

parent 8eadf280
No related branches found
No related tags found
No related merge requests found
......@@ -20,6 +20,17 @@ For more information on the FAuST project, please visit the website of the proje
\paragraph{License:}Copyright (2016) Luc Le Magoarou, Remi Gribonval INRIA Rennes, FRANCE \\
The FAuST Toolbox is distributed under the terms of the GNU Affero General Public License. This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more details. You should have received a copy of the GNU Affero General Public License along with this program. If not, see \url{http://www.gnu.org/licenses/}.
\paragraph{FA$\mu$ST Structure:}
The Figure \ref{fig:faustStructure} presents an brief structure of the FA$\mu$ST toolbox. The principal C++ library called "libfaust" includes the "Factorization algorithms" used to generate a FA$\mu$ST core, the solvers and the FA$\mu$ST matrix multiplication. It can be employ using different types of wrappers. In the second version of FA$\mu$ST package (Version 2.0), only Matlab wrapper is proposed.
\begin{figure}[H] %%[!htbp]
\centering
\includegraphics[scale=0.4,trim = 0cm 5cm 0cm 4cm, clip]{images/FaustStructure.pdf}
\caption{FAuST Structure}
\label{fig:faustStructure}
\end{figure}
\paragraph{Valid Installation: Platforms, Compiler and IDE}
The Figure \ref{fig:recapInstall} summarizes the tested configurations of the installation of the FA$\mu$ST toolbox following the type of platform (Linux, Mac or Windows), compiler, version of Matlab and the type of Integrate Development Environment (IDE).\\
Choose among this Figure \ref{fig:recapInstall} the adapted platform and IDE following your system and refer to the corresponding Install Chapter.
......
......@@ -59,34 +59,34 @@
namespace Faust
{
template<typename FPP,Device DEVICE> class LinearOperator;
template<typename FPP,Device DEVICE> class LinearOperator;
template<typename FPP,Device DEVICE> class Transform;
template<typename FPP,Device DEVICE> class Vect;
template<typename FPP,Device DEVICE> class MatDense;
template<typename FPP,Device DEVICE> class MatSparse;
template<Device DEVICE> class BlasHandle;
template<Device DEVICE> class SpBlasHandle;
template<typename FPP,Device DEVICE> class Transform;
template<typename FPP,Device DEVICE> class Vect;
template<typename FPP,Device DEVICE> class MatDense;
template<typename FPP,Device DEVICE> class MatSparse;
template<Device DEVICE> class BlasHandle;
template<Device DEVICE> class SpBlasHandle;
// forward definition of friend function
template<typename FPP>
Faust::Vect<FPP,Cpu> operator*(const Transform<FPP,Cpu>& f, const Faust::Vect<FPP,Cpu>& v);
template<typename FPP>
Faust::MatDense<FPP,Cpu> operator*(const Transform<FPP,Cpu>& f, const Faust::MatDense<FPP,Cpu>& M);
// forward definition of friend function
template<typename FPP>
Faust::Vect<FPP,Cpu> operator*(const Transform<FPP,Cpu>& f, const Faust::Vect<FPP,Cpu>& v);
template<typename FPP>
Faust::MatDense<FPP,Cpu> operator*(const Transform<FPP,Cpu>& f, const Faust::MatDense<FPP,Cpu>& M);
template<typename FPP>
class Transform<FPP,Cpu> : public Faust::LinearOperator<FPP,Cpu>
{
template<typename FPP>
class Transform<FPP,Cpu> : public Faust::LinearOperator<FPP,Cpu>
{
public:
void faust_gemm(const Faust::MatDense<FPP,Cpu> & B, Faust::MatDense<FPP,Cpu> & C,const FPP & alpha, const FPP & beta, char typeA, char typeB)const;
public:
void faust_gemm(const Faust::MatDense<FPP,Cpu> & B, Faust::MatDense<FPP,Cpu> & C,const FPP & alpha, const FPP & beta, char typeA, char typeB)const;
/** \brief Constructor
* \param data : Vector including sparse matrix
* \param totalNonZeros : Number of nonzeros Value in the data (all factorized matrix) */
Transform();
Transform();
/** \brief Constructor
* \param data : Vector including sparse matrix
......@@ -95,16 +95,15 @@ namespace Faust
Transform(const Transform<FPP,Cpu> & A);
/** \brief
/** \brief
* check the factors validity of the faust, if the list of factors represents a valid matrix
* */
void check_factors_validity() const;
void check_factors_validity() const;
/** \brief Constructor
* \param facts : Vector including dense matrix*/
Transform(const std::vector<Faust::MatDense<FPP,Cpu> >&facts);
void get_facts(std::vector<Faust::MatSparse<FPP,Cpu> >& sparse_facts)const{sparse_facts = data;}
void get_facts(std::vector<Faust::MatDense<FPP,Cpu> >& facts)const;
faust_unsigned_int size()const{return data.size();}
......@@ -135,7 +134,7 @@ namespace Faust
void Display()const;
void transpose();
void updateNonZeros();
void setOp(const char op, faust_unsigned_int& nbRowOp, faust_unsigned_int& nbColOp)const;
void setOp(const char op, faust_unsigned_int& nbRowOp, faust_unsigned_int& nbColOp)const;
///(*this) = (*this) * A
void multiply(const Transform<FPP,Cpu> & A);
///(*this) = A * (*this)
......@@ -144,17 +143,17 @@ namespace Faust
FPP spectralNorm(const int nbr_iter_max, FPP threshold, int &flag) const;
~Transform(){}
// if measure of time is down Faust::Transform<FPP,Cpu> is no longer constant during multiplication because a measure of time is an attribute to the faust::Transform
#ifdef __COMPILE_TIMERS__
Faust::Vect<FPP,Cpu> multiply(const Faust::Vect<FPP,Cpu> x,const char opThis='N');
#else
Faust::Vect<FPP,Cpu> multiply(const Faust::Vect<FPP,Cpu> x,const char opThis='N') const;
#endif
// if measure of time is down Faust::Transform<FPP,Cpu> is no longer constant during multiplication because a measure of time is an attribute to the faust::Transform
#ifdef __COMPILE_TIMERS__
Faust::Vect<FPP,Cpu> multiply(const Faust::Vect<FPP,Cpu> x,const char opThis='N');
#else
Faust::Vect<FPP,Cpu> multiply(const Faust::Vect<FPP,Cpu> x,const char opThis='N') const;
#endif
Faust::MatDense<FPP,Cpu> multiply(const Faust::MatDense<FPP,Cpu> A,const char opThis='N') const;
Faust::MatDense<FPP,Cpu> multiply(const Faust::MatDense<FPP,Cpu> A,const char opThis='N') const;
void operator=(const Transform<FPP,Cpu>& f){data=f.data;totalNonZeros=f.totalNonZeros;}
void operator=(const Transform<FPP,Cpu>& f){data=f.data;totalNonZeros=f.totalNonZeros;}
/// add all of the sparse matrices from f.data to this->data
void operator*=(const FPP scalar){scalarMultiply(scalar);};
void operator*=(const Transform<FPP,Cpu>& f){multiply(f);};
......@@ -168,9 +167,9 @@ namespace Faust
private:
long long int totalNonZeros;
static const char * m_className;
private:
long long int totalNonZeros;
static const char * m_className;
std::vector<Faust::MatSparse<FPP,Cpu> > data;
#ifdef __COMPILE_TIMERS__
......@@ -178,8 +177,6 @@ namespace Faust
#endif
// friend function
friend Faust::Vect<FPP,Cpu> Faust::operator*<>(const Transform<FPP,Cpu>& f, const Faust::Vect<FPP,Cpu>& v);
friend Faust::MatDense<FPP,Cpu> Faust::operator*<>(const Transform<FPP,Cpu>& f, const Faust::MatDense<FPP,Cpu>& M);
......@@ -189,9 +186,6 @@ namespace Faust
#include "faust_Transform.hpp"
......
......@@ -60,7 +60,7 @@ namespace Faust
template<typename FPP>
void add(const Faust::MatDense<FPP,Cpu> & A, const Faust::MatDense<FPP,Cpu> & B, Faust::MatDense<FPP,Cpu> & C);
//! \fn Faust::spgemm
//! \brief performs ??
//! \brief performs Sparse matrices multiplication
template<typename FPP>
void spgemm(const Faust::MatSparse<FPP,Cpu> & A,const Faust::MatDense<FPP,Cpu> & B, Faust::MatDense<FPP,Cpu> & C,const FPP & alpha, const FPP & beta, char typeA, char typeB);
......
......@@ -71,7 +71,7 @@ namespace Faust
virtual faust_unsigned_int getNbRow() const=0;
virtual faust_unsigned_int getNbCol() const=0;
virtual void setOp(const char op, faust_unsigned_int& nbRowOp, faust_unsigned_int& nbColOp)const=0;
virtual void setOp(const char op, faust_unsigned_int& nbRowOp, faust_unsigned_int& nbColOp)const=0;
/*!
* \brief Transpose the Faust::MatDense
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment