#ifndef __PROJECT__LPP__FILE__UTILITY_HH__INCLUDED
#define __PROJECT__LPP__FILE__UTILITY_HH__INCLUDED
////////////////////////////////////////////////////////////////////////////////
// Copyright (c) 2007 for LASMEA UMR 6602 du CNRS.
// All rights reserved.
//
// This file is part of the NT2 C++ Library. This library is
// free software; you can redistribute it and/or modify it under
// the terms of the GNU Lesser General Public License as published
// by the Free Software Foundation; either version 2.1, or (at
// your option) any later version.
//
// This library 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 Lesser General Public License for more details.
//
// You should have received a copy of the GNU Lesser General
// Public License along with this library; see the file COPYING.
// If not, send mail to the developers of NT2
//
// As a special exception, you may use this file as part of a free
// software library without restriction. Specifically, if other
// files instantiate templates or use macros or inline functions
// from this file, or you compile this file and link it with other
// files to produce an executable, this file does not by itself
// cause the resulting executable to be covered by the GNU Lesser
// General Public License. This exception does not however
// invalidate any other reasons why the executable file might be
// covered by the GNU Lesser General Public License.
//
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
// what : utility.hh
// who : contributed by Joel FALCOU and Jean-Thierry LAPRESTE
// when : Thu May 31 13:38:37 2007
// where :
// from :
// to :
// description :
// modified :
////////////////////////////////////////////////////////////////////////////////
// /////////////////////////////////////////////////////////////////////////////
// Beginning of lpp namespace
// /////////////////////////////////////////////////////////////////////////////
namespace lpp
{
////////////////////////////////////////////////////////////////////////////
// utility
////////////////////////////////////////////////////////////////////////////
inline int EnvBlockSize(int ispec,
const std::string & fname,
const std::string & opts,
int n1 = -1,
int n2 = -1,
int n3 = -1,
int n4 = -1)
{
int i = ispec;
int N1 = n1;
int N2 = n2;
int N3 = n3;
int N4 = n4;
return F77NAME(ilaenv)(&i, fname.c_str(), opts.c_str(), &N1, &N2, &N3, &N4,
fname.size(), opts.size());
}
}
#include "lapackworkspace.hh"
////////////////////////////////////////////////////////////////
// csrot rotation plane à deux vecteurs complexes ??
// zdrot rotation plane à deux vecteurs complexes ??
// csrscl multiplication vecteur 1/a, inutile
// zdrscl multiplication vecteur 1/a, inutile
// xerbla gestion d'erreurs
// second temps en seconde, inutile
// ladiv à faire
////////////////////////////////////////////////////////////////
// interfacer lamch avec les constantes
////////////////////////////////////////////////////////////////
namespace lpp
{
inline char lower(const char c){
return (c >= 'A' && c <= 'Z') ? c +('a'-'A') : c;
}
inline char upper(const char c){
return (c >= 'a' && c <= 'z') ? c -('a'-'A') : c;
}
}
// /////////////////////////////////////////////////////////////////////////////
// End of lpp namespace
// /////////////////////////////////////////////////////////////////////////////
#endif
// /////////////////////////////////////////////////////////////////////////////
// End of utility.hh
// /////////////////////////////////////////////////////////////////////////////