/*
    Copyright (C) 2012 Bartosz Broda, Jacek Bochenek, Łukasz Biłeńkij, 
    Damian Jaworski, Wojciech Mazur, Dominik Piasecki, Maciej Piasecki, 
    Radosław Ramocki
    
    This program is free software; you can redistribute it and/or modify it
under the terms of the GNU Lesser General Public License as published by the Free
Software Foundation; either version 3 of the License, or (at your option)
any later version.

    This program is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
or FITNESS FOR A PARTICULAR PURPOSE. 

    See the LICENSE and COPYING files for more details.
*/

#include "UnigramSubtuples.h"

namespace smartcomparator
{
	namespace weights
	{
		UnigramSubtuples::UnigramSubtuples(
			Matrices::SuperMatrixPtr 	pMtx,
			double 						pThreshold)
		:
			CTBasedWeight(pMtx, pThreshold)
		{
		}


		double UnigramSubtuples::countValue(
			double pFxy,
			double pFx_,
			double pF_y,
			double pF__,
			double pN)
		{
			double p1 = log((pFxy + pF__) / (pFx_ + pF_y));
			double p2 = 3.29 * sqrt((1 / pFxy) + (1 / pFx_) + (1 / pF_y)+ (1 / pF__));
			return p1 - p2;
		}


	}// namespace weights
}// namespace smartcomparator

