Cosmic Microwave Background Anisotropy numerical solution (CMBAns) I: An
  introduction to $C_l$ calculation
  Cosmological Boltzmann codes are often used by researchers for calculating
the CMB angular power spectra from different theoretical models, for
cosmological parameter estimation, etc. Therefore, the accuracy of a Boltzmann
code is of utmost importance. Different Markov Chain Monte Carlo based
parameter estimation algorithms typically require 10^3 - 10^4 iterations of
Boltzmann code. This makes the time complexity of such codes another critical
factor. In the last two decades, several Boltzmann packages, such as CMBFAST,
CAMB, CMBEasy, CLASS etc., have been developed. In this paper, we present a new
cosmological Boltzmann code, CMBAns, that can be used for accurate calculation
of the CMB power spectrum. At present, CMBAns is developed for a flat
background matrix. It is mostly written in the C language. However, we borrowed
the concept of class from C++. This gives researchers the flexibility to
develop their own independent package based on CMBAns, without an in-depth
understanding of the source code. We also develop multiple stand-alone
facilities which can be directly compiled and run on a given parameter set. In
this paper, we discuss all the mathematical formulation, approximation schemes,
integration methods etc., that are used in CMBAns. The package will be made
available through github for public use in the near future.
