Commit f4315f51 authored by PIACIBELLO Cyrille's avatar PIACIBELLO Cyrille

Documentation updated

parent 4e4c50f2
/**
\mainpage Ib-BGMRes-Dr : Inexact Breakdown - Block GMRes - Deflated Restarting.
\mainpage Ib-BGMRes-Dr : Inexact Breakdown - BlockGMRes - Deflated Restarting.
This library is an implementation of the Multi Right Hand Side GMRes,
with <b>Inexact Breakdown</b> and <b>Deflated Restarting</b>.
*/
\ No newline at end of file
This work is mainly based on <i> BlockGMRes with Inexact breakdowns
and Deflated restarting</i>, from E. Agullo, L. Giraud and Y-F Jing.
\section extLink External links
<a href="http://dx.doi.org/10.1137/140961912">Article from SIAM</a>
<a href="https://gforge.inria.fr/projects/ib-bgmres-dr">Download</a>
\section prerequisite Prerequisites
Required :
-# git.
-# cmake.
-# c/c++ compiler supporting c++11 standard.
-# Lapacke and cblas implementation.
\section qstart Quick Start
How to build the library :
-# Create a build directory : <i> mkdir Build</i>
-# cd inside directory <i> cd Build</i>
-# Run cmake <i> cmake .. </i>
-# Run ccmake to configure if needed <i> ccmake .. </i>
-# Compile <i> make && make install </i>
*/
......@@ -4,7 +4,10 @@
#include "Block.hpp"
#include "LapackInterface.hpp"
/**
* @brief This class store the base of the krylov space spawned.
*
*/
template<class Scalar,typename Primary=Scalar>
class Base{
private:
......@@ -25,6 +28,15 @@ private:
public:
/**
* @brief ctor
*
* @param sizeBlock Size of first Block
* @param MaxKSize : maximum size of search space allowed (so number
* of colomn allocated)
* @param sizeVector : number of elements insidee a vector (so
* number of lines allocated)
*/
Base(int sizeBlock, int MaxKSize, int sizeVector) : SizeBlock(sizeBlock),
totalSize(0),
ldBase(sizeVector),
......@@ -100,6 +112,10 @@ public:
return ptr;
}
/**
*
*/
void addBlockDatas(Block<Scalar,Primary>& inBlock){
//Check
if(inBlock.getLeadingDim() != ldBase){std::cout<<"Problem in addBlockDatas\n";}
......
......@@ -5,8 +5,8 @@
#include "LapackInterface.hpp"
/**
* This class will store what correspond to the Hessenberg in
* classical Ib-BGMRes.
* @brief This class will store what correspond to the Hessenberg in
* Ib-BGMRes version.
*
*/
template<typename Scalar>
......@@ -35,6 +35,10 @@ class HessExtended{
Scalar * data;
public:
/**
* @param inMaxKSize : Maximum size of Krylov search space
* @param inP : initial size of block
*/
HessExtended(int inMaxKSize,int inP) : p(inP),
MaxKSize(inMaxKSize),
ldHess(inMaxKSize+inP),
......
......@@ -9,8 +9,10 @@
#include "../ext_inc/lapacke.h"
//Tool : in order to choose from 'T' or 'C' in case we are on
//Complex or not, we used a static struct
/**
* @brief This static struct is used in order to choose from 'N' or
* 'C' which one is needed by blas or lapack.
*/
template<class T>
struct Trans;
......@@ -169,7 +171,7 @@ void call_gemm(int m, int n, int k,
/**
* Compute EigenValues (not used yet, will be for inexact breakdown)
* Compute EigenValues for real matrices
*
*/
template<typename Scalar>
......@@ -194,7 +196,6 @@ int callLapack_syev<float>(int nbCol, float * matrice,
nbCol, matrice, nbLine, outputVector );
return info;
}
//Version for Complex not specified yet
/**
......@@ -309,13 +310,19 @@ int callLapack_geqrf<std::complex<double> >(int m,int n,
* The only Q part generated is the orthogonal part (spanning of
* Im(A))
*
* @param m Order of matrix Q ?
* @param m Order of matrix Q
* @param p Nb vector needed
* @param mat ptr to matrice
* @param ldMat : leading dim of matrice
* @param tau array returned by lapacke_?qrf
* @param full : boolean signaling if all or parts of Q needs to be
* generated
*
* doc : https://software.intel.com/en-us/node/521010
*/
template<typename Scalar>
int callLapack_orgqr(int , int , Scalar * ,int , Scalar *,bool=false){
int callLapack_orgqr(int /*m*/, int /*p*/, Scalar * /*mat*/,int /*lda*/,
Scalar * /*tau*/,bool/*full*/=false){
std::cout<<"Only Float or Double supported (orgqr)"<< std::endl;
exit(0);
return 1;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment