/** * \author Norihiro Watanabe * \date 2013-08-13 * * \copyright * Copyright (c) 2013, OpenGeoSys Community (http://www.opengeosys.org) * Distributed under a Modified BSD License. * See accompanying file LICENSE.txt or * http://www.opengeosys.org/project/license * */ #include "GaussLegendre.h" namespace MathLib { std::pair<double, double> GaussLegendre::getPoint(unsigned n_sample_points, unsigned point_id) { switch (n_sample_points) { case 1: return std::make_pair(0.0, 2.0); case 2: switch (point_id) { case 0: return std::make_pair(0.577350269189626, 1.0); case 1: return std::make_pair(-0.577350269189626, 1.0); } break; case 3: switch (point_id) { case 0: return std::make_pair(0.774596669241483, 0.555555555555556); case 1: return std::make_pair(0.0, 0.888888888888889); case 2: return std::make_pair(-0.774596669241483, 0.555555555555556); } break; case 4: switch (point_id) { case 0: return std::make_pair(0.861136311594053, 0.347854845137454); case 1: return std::make_pair(0.339981043584856, 0.652145154862546); case 2: return std::make_pair(-0.339981043584856, 0.652145154862546); case 3: return std::make_pair(-0.861136311594053, 0.347854845137454); } break; } return std::make_pair(0.0, 0.0); } } //namespace