mirror of
https://github.com/paboyle/Grid.git
synced 2025-04-27 22:25:56 +01:00
Namespace and formatting changes
This commit is contained in:
parent
fcf1ccf669
commit
21251f2e1b
@ -1,4 +1,4 @@
|
|||||||
/*************************************************************************************
|
/*************************************************************************************
|
||||||
|
|
||||||
Grid physics library, www.github.com/paboyle/Grid
|
Grid physics library, www.github.com/paboyle/Grid
|
||||||
|
|
||||||
@ -25,14 +25,14 @@ Author: Christoph Lehner <clehner@bnl.gov>
|
|||||||
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||||
|
|
||||||
See the full license in the file "LICENSE" in the top level distribution directory
|
See the full license in the file "LICENSE" in the top level distribution directory
|
||||||
*************************************************************************************/
|
*************************************************************************************/
|
||||||
/* END LEGAL */
|
/* END LEGAL */
|
||||||
#ifndef GRID_CHEBYSHEV_H
|
#ifndef GRID_CHEBYSHEV_H
|
||||||
#define GRID_CHEBYSHEV_H
|
#define GRID_CHEBYSHEV_H
|
||||||
|
|
||||||
#include <Grid/algorithms/LinearOperator.h>
|
#include <Grid/algorithms/LinearOperator.h>
|
||||||
|
|
||||||
namespace Grid {
|
NAMESPACE_BEGIN(Grid);
|
||||||
|
|
||||||
struct ChebyParams : Serializable {
|
struct ChebyParams : Serializable {
|
||||||
GRID_SERIALIZABLE_CLASS_MEMBERS(ChebyParams,
|
GRID_SERIALIZABLE_CLASS_MEMBERS(ChebyParams,
|
||||||
@ -41,18 +41,18 @@ struct ChebyParams : Serializable {
|
|||||||
int, Npoly);
|
int, Npoly);
|
||||||
};
|
};
|
||||||
|
|
||||||
////////////////////////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
// Generic Chebyshev approximations
|
// Generic Chebyshev approximations
|
||||||
////////////////////////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
template<class Field>
|
template<class Field>
|
||||||
class Chebyshev : public OperatorFunction<Field> {
|
class Chebyshev : public OperatorFunction<Field> {
|
||||||
private:
|
private:
|
||||||
std::vector<RealD> Coeffs;
|
std::vector<RealD> Coeffs;
|
||||||
int order;
|
int order;
|
||||||
RealD hi;
|
RealD hi;
|
||||||
RealD lo;
|
RealD lo;
|
||||||
|
|
||||||
public:
|
public:
|
||||||
void csv(std::ostream &out){
|
void csv(std::ostream &out){
|
||||||
RealD diff = hi-lo;
|
RealD diff = hi-lo;
|
||||||
RealD delta = (hi-lo)*1.0e-9;
|
RealD delta = (hi-lo)*1.0e-9;
|
||||||
@ -80,7 +80,7 @@ struct ChebyParams : Serializable {
|
|||||||
////////////////////////////////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
// c.f. numerical recipes "chebft"/"chebev". This is sec 5.8 "Chebyshev approximation".
|
// c.f. numerical recipes "chebft"/"chebev". This is sec 5.8 "Chebyshev approximation".
|
||||||
////////////////////////////////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
// CJ: the one we need for Lanczos
|
// CJ: the one we need for Lanczos
|
||||||
void Init(RealD _lo,RealD _hi,int _order)
|
void Init(RealD _lo,RealD _hi,int _order)
|
||||||
{
|
{
|
||||||
lo=_lo;
|
lo=_lo;
|
||||||
@ -254,19 +254,19 @@ struct ChebyParams : Serializable {
|
|||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
template<class Field>
|
template<class Field>
|
||||||
class ChebyshevLanczos : public Chebyshev<Field> {
|
class ChebyshevLanczos : public Chebyshev<Field> {
|
||||||
private:
|
private:
|
||||||
std::vector<RealD> Coeffs;
|
std::vector<RealD> Coeffs;
|
||||||
int order;
|
int order;
|
||||||
RealD alpha;
|
RealD alpha;
|
||||||
RealD beta;
|
RealD beta;
|
||||||
RealD mu;
|
RealD mu;
|
||||||
|
|
||||||
public:
|
public:
|
||||||
ChebyshevLanczos(RealD _alpha,RealD _beta,RealD _mu,int _order) :
|
ChebyshevLanczos(RealD _alpha,RealD _beta,RealD _mu,int _order) :
|
||||||
alpha(_alpha),
|
alpha(_alpha),
|
||||||
beta(_beta),
|
beta(_beta),
|
||||||
@ -372,6 +372,6 @@ struct ChebyParams : Serializable {
|
|||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
}
|
NAMESPACE_END(Grid);
|
||||||
#endif
|
#endif
|
||||||
|
@ -26,31 +26,31 @@ with this program; if not, write to the Free Software Foundation, Inc.,
|
|||||||
|
|
||||||
See the full license in the file "LICENSE" in the top level distribution directory
|
See the full license in the file "LICENSE" in the top level distribution directory
|
||||||
*************************************************************************************/
|
*************************************************************************************/
|
||||||
/* END LEGAL */
|
/* END LEGAL */
|
||||||
|
|
||||||
#ifndef INCLUDED_FORECAST_H
|
#ifndef INCLUDED_FORECAST_H
|
||||||
#define INCLUDED_FORECAST_H
|
#define INCLUDED_FORECAST_H
|
||||||
|
|
||||||
namespace Grid {
|
NAMESPACE_BEGIN(Grid);
|
||||||
|
|
||||||
// Abstract base class.
|
// Abstract base class.
|
||||||
// Takes a matrix (Mat), a source (phi), and a vector of Fields (chi)
|
// Takes a matrix (Mat), a source (phi), and a vector of Fields (chi)
|
||||||
// and returns a forecasted solution to the system D*psi = phi (psi).
|
// and returns a forecasted solution to the system D*psi = phi (psi).
|
||||||
template<class Matrix, class Field>
|
template<class Matrix, class Field>
|
||||||
class Forecast
|
class Forecast
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
virtual Field operator()(Matrix &Mat, const Field& phi, const std::vector<Field>& chi) = 0;
|
virtual Field operator()(Matrix &Mat, const Field& phi, const std::vector<Field>& chi) = 0;
|
||||||
};
|
};
|
||||||
|
|
||||||
// Implementation of Brower et al.'s chronological inverter (arXiv:hep-lat/9509012),
|
// Implementation of Brower et al.'s chronological inverter (arXiv:hep-lat/9509012),
|
||||||
// used to forecast solutions across poles of the EOFA heatbath.
|
// used to forecast solutions across poles of the EOFA heatbath.
|
||||||
//
|
//
|
||||||
// Modified from CPS (cps_pp/src/util/dirac_op/d_op_base/comsrc/minresext.C)
|
// Modified from CPS (cps_pp/src/util/dirac_op/d_op_base/comsrc/minresext.C)
|
||||||
template<class Matrix, class Field>
|
template<class Matrix, class Field>
|
||||||
class ChronoForecast : public Forecast<Matrix,Field>
|
class ChronoForecast : public Forecast<Matrix,Field>
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
Field operator()(Matrix &Mat, const Field& phi, const std::vector<Field>& prev_solns)
|
Field operator()(Matrix &Mat, const Field& phi, const std::vector<Field>& prev_solns)
|
||||||
{
|
{
|
||||||
int degree = prev_solns.size();
|
int degree = prev_solns.size();
|
||||||
@ -145,8 +145,8 @@ namespace Grid {
|
|||||||
|
|
||||||
return chi;
|
return chi;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
}
|
NAMESPACE_END(Grid);
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
@ -27,7 +27,8 @@ Author: Azusa Yamaguchi <ayamaguc@staffmail.ed.ac.uk>
|
|||||||
/* END LEGAL */
|
/* END LEGAL */
|
||||||
#include <Grid/GridCore.h>
|
#include <Grid/GridCore.h>
|
||||||
|
|
||||||
namespace Grid {
|
NAMESPACE_BEGIN(Grid);
|
||||||
|
|
||||||
double MultiShiftFunction::approx(double x)
|
double MultiShiftFunction::approx(double x)
|
||||||
{
|
{
|
||||||
double a = norm;
|
double a = norm;
|
||||||
@ -53,4 +54,4 @@ void MultiShiftFunction::csv(std::ostream &out)
|
|||||||
}
|
}
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
NAMESPACE_END(Grid);
|
||||||
|
@ -29,7 +29,7 @@ Author: Peter Boyle <paboyle@ph.ed.ac.uk>
|
|||||||
#ifndef MULTI_SHIFT_FUNCTION
|
#ifndef MULTI_SHIFT_FUNCTION
|
||||||
#define MULTI_SHIFT_FUNCTION
|
#define MULTI_SHIFT_FUNCTION
|
||||||
|
|
||||||
namespace Grid {
|
NAMESPACE_BEGIN(Grid);
|
||||||
|
|
||||||
class MultiShiftFunction {
|
class MultiShiftFunction {
|
||||||
public:
|
public:
|
||||||
@ -63,5 +63,5 @@ public:
|
|||||||
}
|
}
|
||||||
|
|
||||||
};
|
};
|
||||||
}
|
NAMESPACE_END(Grid);
|
||||||
#endif
|
#endif
|
||||||
|
@ -58,8 +58,8 @@
|
|||||||
|
|
||||||
/* Compute the partial fraction expansion coefficients (alpha) from the
|
/* Compute the partial fraction expansion coefficients (alpha) from the
|
||||||
* factored form */
|
* factored form */
|
||||||
namespace Grid {
|
NAMESPACE_BEGIN(Grid);
|
||||||
namespace Approx {
|
NAMESPACE_BEGIN(Approx);
|
||||||
|
|
||||||
static void construct_partfrac(izd *z) {
|
static void construct_partfrac(izd *z) {
|
||||||
int dn = z -> dn, dd = z -> dd, type = z -> type;
|
int dn = z -> dn, dd = z -> dd, type = z -> type;
|
||||||
@ -723,5 +723,6 @@ int main(int argc, char** argv) {
|
|||||||
return EXIT_SUCCESS;
|
return EXIT_SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
#endif /* TEST */
|
#endif /* TEST */
|
||||||
|
NAMESPACE_END(Approx);
|
||||||
|
NAMESPACE_END(Grid);
|
||||||
|
@ -1,13 +1,13 @@
|
|||||||
/* -*- Mode: C; comment-column: 22; fill-column: 79; -*- */
|
/* -*- Mode: C; comment-column: 22; fill-column: 79; -*- */
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
namespace Grid {
|
#include <Grid/Namespace.h>
|
||||||
namespace Approx {
|
NAMESPACE_BEGIN(Grid);
|
||||||
|
NAMESPACE_BEGIN(Approx);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#define HVERSION Header Time-stamp: <14-OCT-2004 09:26:51.00 adk@MISSCONTRARY>
|
#define HVERSION Header Time-stamp: <14-OCT-2004 09:26:51.00 adk@MISSCONTRARY>
|
||||||
|
|
||||||
|
|
||||||
#ifndef ZOLOTAREV_INTERNAL
|
#ifndef ZOLOTAREV_INTERNAL
|
||||||
#ifndef PRECISION
|
#ifndef PRECISION
|
||||||
#define PRECISION double
|
#define PRECISION double
|
||||||
@ -83,5 +83,6 @@ void zolotarev_free(zolotarev_data *zdata);
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
}}
|
NAMESPACE_END(Approx);
|
||||||
|
NAMESPACE_END(Grid);
|
||||||
#endif
|
#endif
|
||||||
|
Loading…
x
Reference in New Issue
Block a user