Requirements
Fortran 90 with ifort or gfortran. GNUPLOT is the default figure renderer but is optional.
Open scientific software · Fortran 90
BI-spectra and
Non-Gaussianity Operator
Numerically evaluate the primordial scalar bispectrum and fNL in canonical single-field inflation—away from slow roll and for arbitrary triangular configurations.
Scope
BINGO computes all contributions to the scalar bispectrum and fNL for any triangle of wavenumbers.
The code follows the Maldacena formalism and numerical procedures developed for departures from slow roll. Given an inflationary potential, it evolves the background on the attractor for roughly 60–70 e-folds. Perturbation modes begin well inside the Hubble radius with Bunch–Davies initial conditions and evolve until their super-Hubble amplitudes freeze.
Bispectrum integrals begin when the largest relevant mode is well inside the Hubble radius and end when the smallest is sufficiently outside. Since those perturbations are already evolved, BINGO also returns the scalar power spectrum.
Download & use
Fortran 90 with ifort or gfortran. GNUPLOT is the default figure renderer but is optional.
Set kmin, kmax and the number of power-spectrum and bispectrum points in fnlparams.ini. Values are evaluated directly; the release does not interpolate.
Runtime depends on the k-grid, selected bispectrum terms, model features, machine and requested accuracy.
If you use BINGO, please cite references 6 and 7 in the list below.
Sample case
For model parameters that best fit the WMAP seven-year data, the supplied outputs trace the scalar field, slow-roll parameter and Hubble rate before returning the primordial spectrum and bispectrum.
phi.eps — evolution of φepsilon.eps — slow-roll parameter εhubble.eps — Hubble parameter Hpowerspectra.eps — primordial power spectrumfnl-qp-stp.eps — fNLWorking questions
BINGO numerically evaluates the scalar power spectrum and bispectrum without a slow-roll approximation for canonical single-field models. It can even follow punctuated inflation, where the first slow-roll parameter briefly exceeds unity before inflation resumes.
Create a folder under models; copy fnlparams.ini, parameters.f90, potential.f90 and theory_param.f90 from an existing model; replace V(φ), dV/dφ and d²V/dφ² and set the parameters and initial conditions; then point the Makefile’s model variable at the new folder, compile and run.
Define the extra parameter in theory_param.f90, assign it in fnlparams.ini, and map it in driver.f90—for example PARAM_5 from param5—before compiling.
No. All numerical results are written to the plots directory and may be drawn with any plotting software. The make figs command uses GNUPLOT; two included Python scripts produce 2D density and 3D contour plots.
Yes. The Term setting in fnlparams.ini selects contributions 1, 2, 3, 47, 5 or 6. Set Term = 0 for the total fNL.
Yes, with care. The supplied configuration covers roughly five decades. Features at k larger than kmax demand tighter accuracy and integration intervals that fully include every departure from slow roll.
Release history
Formalism & code paper
BINGO uses Netlib integration routines d1mach.f, dqagse.f, dqelg.f, dqk21.f and dqpsrt.f; Antony Lewis’s inifile.f90; and Netlib’s rksuite.f90 ODE routines. These were not written by the BINGO authors.