Program Listing for File EccentricityExpansionCoefficients.h¶
↰ Return to documentation for file (/home/kpenev/projects/git/poet/poet_src/Evolve/EccentricityExpansionCoefficients.h)
#ifndef __ECCENTRICITY_EXPANSION_COEFFICIENTS_H
#define __ECCENTRICITY_EXPANSION_COEFFICIENTS_H
#include "../Core/SharedLibraryExportMacros.h"
#include "../Core/Error.h"
#include <vector>
#include <fstream>
#include <iomanip>
#include <cmath>
#include <iostream>
#include <sstream>
#include <cassert>
#include <algorithm>
namespace Evolve {
class LIB_PUBLIC EccentricityExpansionCoefficients {
private:
unsigned __max_e_power;
std::vector< std::vector<double> >
__alpha,
__gamma_plus,
__gamma_minus;
bool __useable;
//corresponding to the given term.
int inner_index(
int msign,
int s,
int epower) const;
std::pair<double, double> p_m2s(
double e,
int s,
unsigned max_e_power,
bool deriv
) const;
std::pair<double, double> p_0s(
double e,
int s,
unsigned max_e_power,
bool deriv
) const;
std::pair<double, double> p_p2s(
double e,
int s,
unsigned max_e_power,
bool deriv
) const;
public:
EccentricityExpansionCoefficients() : __useable(false) {}
void read(
const std::string &tabulated_pms_fname="",
int max_e_power=-1);
unsigned max_e_power() const {return __max_e_power;}
std::pair<double, double> operator()(
int m,
int s,
double e,
unsigned max_e_power,
bool deriv) const;
}; //End EccentricityExpansionCoefficients class.
} //End Evolve namespace.
#endif