// Independent offline LGPL-library caller; never part of a web Engine. #include #include #include #include "VBBinaryLensingLibrary.h" int main(int argc, char** argv) { const double tolerance = argc > 1 ? std::atof(argv[1]) : 1e-7; VBBinaryLensing calculator; calculator.Tol = tolerance; calculator.RelTol = 1e-8; double separation, massRatio, sourceX, sourceY, sourceRadius, limbGamma; std::cout << std::setprecision(17); while (std::cin >> separation >> massRatio >> sourceX >> sourceY >> sourceRadius >> limbGamma) { calculator.a1 = 3 * limbGamma / (2 + limbGamma); const double magnification = sourceRadius == 0 ? calculator.BinaryMag0(separation, massRatio, sourceX, sourceY) : limbGamma > 0 ? calculator.BinaryMagDark(separation, massRatio, sourceX, sourceY, sourceRadius, tolerance) : calculator.BinaryMag(separation, massRatio, sourceX, sourceY, sourceRadius, tolerance); std::cout << magnification << '\n'; } }