""" Code to compute Gaussian probability

Context : SRP
Module  : SRPGaussProb.py
Version : 1.0.2
Author  : Stefano Covino
Date    : 31/08/2011
E-mail  : stefano.covino@brera.inaf.it
URL:    : http://www.merate.mi.astro.it/~covino
Purpose : Compute Gaussian probability

Usage   : SRPGaussProb -s -1/-2 [-v]
            -s Value in sigma units)
            -1 1-tail distribution
            -2 2-tail distribution
 

History : (26/02/2010) First version.
        : (20/02/2010) Minor improvement.
        : (31/08/2011) Better cosmetics.
"""

from optparse import OptionParser
import SRP.stats as stats
import math

parser = OptionParser(usage="usage: %prog -s -1/-2 [-v]", version="%prog 1.0.2")
parser.add_option("-s", "--sigma", action="store", nargs=1, type="float", dest="sigma", help="Value in sigma units)")
parser.add_option("-1", "--1tail", action="store_true", dest="tail1", help="1-tail distribution")
parser.add_option("-2", "--2tail", action="store_true", dest="tail2", help="2-tail distribution")
parser.add_option("-v", "--verbose", action="store_true", dest="verbose", help="Fully describe operations.")
(options, args) = parser.parse_args()


if options.sigma and (options.tail1 or options.tail2):
    if options.tail1 and options.tail2:
        parser.error("1-tail or 2-tail distribution!")

    if options.tail1:
        if options.sigma < 0.0:
            prob = stats.zprob(options.sigma)
        else:
            prob = 1.0-stats.zprob(options.sigma)
    elif options.tail2:
        prob = 2.0*(1.0-stats.zprob(math.fabs(options.sigma)))

    if options.verbose:
        if options.tail1:
            print "1-tail probability at %g sigma: %g" % (options.sigma, prob)
        elif options.tail2:
            print "2-tail probability at %g sigma: %g" % (options.sigma, prob)
    else:
        print "%g %g" % (options.sigma, prob)

else:
    parser.print_help()

