Actual source code: ipimpl.h

  1: /*
  2:    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
  3:    SLEPc - Scalable Library for Eigenvalue Problem Computations
  4:    Copyright (c) 2002-2010, Universidad Politecnica de Valencia, Spain

  6:    This file is part of SLEPc.
  7:       
  8:    SLEPc is free software: you can redistribute it and/or modify it under  the
  9:    terms of version 3 of the GNU Lesser General Public License as published by
 10:    the Free Software Foundation.

 12:    SLEPc  is  distributed in the hope that it will be useful, but WITHOUT  ANY 
 13:    WARRANTY;  without even the implied warranty of MERCHANTABILITY or  FITNESS 
 14:    FOR  A  PARTICULAR PURPOSE. See the GNU Lesser General Public  License  for 
 15:    more details.

 17:    You  should have received a copy of the GNU Lesser General  Public  License
 18:    along with SLEPc. If not, see <http://www.gnu.org/licenses/>.
 19:    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 20: */

 22: #ifndef _IPIMPL
 23: #define _IPIMPL

 25:  #include slepcip.h


 30: struct _p_IP {
 31:   PETSCHEADER(int);
 32:   IPOrthogonalizationType orthog_type; /* which orthogonalization to use */
 33:   IPOrthogonalizationRefinementType orthog_ref;   /* refinement method */
 34:   PetscReal orthog_eta;
 35:   IPBilinearForm bilinear_form;
 36:   Mat matrix;
 37:   PetscInt innerproducts;

 39:   /*------------------------- Cache Bx product -------------------*/
 40:   PetscInt       xid;
 41:   PetscInt       xstate;
 42:   Vec            Bx;
 43: };

 45: EXTERN PetscErrorCode IPApplyMatrix_Private(IP,Vec);
 46: EXTERN PetscErrorCode IPOrthogonalizeCGS1(IP,PetscInt,Vec*,PetscInt,PetscTruth*,Vec*,Vec,PetscScalar*,PetscReal*,PetscReal*);

 48: #endif