#!/bin/sh
#BHEADER**********************************************************************
# Copyright (c) 2006   The Regents of the University of California.
# Produced at the Lawrence Livermore National Laboratory.
# Written by the HYPRE team. UCRL-CODE-222953.
# All rights reserved.
#
# This file is part of HYPRE (see http://www.llnl.gov/CASC/hypre/).
# Please see the COPYRIGHT_and_LICENSE file for the copyright notice, 
# disclaimer, contact information and the GNU Lesser General Public License.
#
# HYPRE is free software; you can redistribute it and/or modify it under the
# terms of the GNU General Public License (as published by the Free Software 
# Foundation) version 2.1 dated February 1999.
#
# HYPRE 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 terms and conditions of the GNU General
# Public License for more details.
#
# You should have received a copy of the GNU Lesser General Public License
# along with this program; if not, write to the Free Software Foundation,
# Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
#
# $Revision: 2.4 $
#EHEADER**********************************************************************

INTERNAL_HEADER=krylov.h

#===========================================================================
# Include guards and other includes
#===========================================================================

cat ../tools/BHEAD_code_template > $INTERNAL_HEADER
cat >> $INTERNAL_HEADER <<@

#include "HYPRE_krylov.h"

#ifndef hypre_KRYLOV_HEADER
#define hypre_KRYLOV_HEADER

#include <stdlib.h>
#include <stdio.h>
#include <math.h>

#include "_hypre_utilities.h"

#define hypre_CTAllocF(type, count, funcs) \
( (type *)(*(funcs->CAlloc))\
((unsigned int)(count), (unsigned int)sizeof(type)) )

#define hypre_TFreeF( ptr, funcs ) \
( (*(funcs->Free))((char *)ptr), ptr = NULL )

#ifdef __cplusplus
extern "C" {
#endif

@

#===========================================================================
# Structures and prototypes
#===========================================================================

cat bicgstab.h   >> $INTERNAL_HEADER
cat cgnr.h       >> $INTERNAL_HEADER
cat gmres.h      >> $INTERNAL_HEADER
cat pcg.h        >> $INTERNAL_HEADER

../utilities/protos bicgstab.c            >> $INTERNAL_HEADER
../utilities/protos cgnr.c                >> $INTERNAL_HEADER
../utilities/protos gmres.c               >> $INTERNAL_HEADER
../utilities/protos HYPRE_bicgstab.c      >> $INTERNAL_HEADER
../utilities/protos HYPRE_cgnr.c          >> $INTERNAL_HEADER
../utilities/protos HYPRE_gmres.c         >> $INTERNAL_HEADER
../utilities/protos HYPRE_pcg.c           >> $INTERNAL_HEADER
../utilities/protos pcg.c                 >> $INTERNAL_HEADER

#===========================================================================
# Include guards
#===========================================================================

cat >> $INTERNAL_HEADER <<@

#ifdef __cplusplus
}
#endif

#endif

@

