/* Copyright (C) 1999,2000,2001 Franz Josef Och (RWTH Aachen - Lehrstuhl fuer Informatik VI) This file is part of GIZA++ ( extension of GIZA ). This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 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 GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #ifndef collCounts_h_defined #define collCounts_h_defined #include "alignment.h" #include "transpair_model3.h" #include #include "MoveSwapMatrix.h" #include "D4Tables.h" #include "transpair_model4.h" class OneMoveSwap { public: short type; short a,b; OneMoveSwap(short _type,short _a,short _b) : type(_type),a(_a),b(_b) {} OneMoveSwap() : type(0) {} }; inline bool operator<(const OneMoveSwap&a,const OneMoveSwap&b) { if(a.type&s) { for(set::const_iterator i=s.begin(); i!=s.end(); ++i) cout << *i << ' '; return out; } bool makeOneMoveSwap(const alignment&a,const alignment&b,set&oms); template int collectCountsOverNeighborhood(const Vector*,LogProb> >&smsc, Vector&es, Vector&fs,tmodel&tTable, amodel&aCountTable,amodel&dCountTable, nmodel&nCountTable,double&p1count,double&p0count, LogProb&_total,float count,bool addCounts,MODEL*d4Table=0); #endif