/*
 * Copyright (c) 1999 Johnny C. Lam.
 * All rights reserved.
 *
 * Permission to use, copy, modify, distribute and sell this software
 * and its documentation for any purpose is hereby granted without fee,
 * provided that the above copyright notice appear in all copies and
 * that both that copyright notice and this permission notice appear
 * in supporting documentation.  The author makes no representations
 * about the suitability of this software for any purpose.  It is
 * provided "as is" without express or implied warranty.
 */

// -*- C++ -*-

#ifndef NO_LATENTS_H_INCLUDED
#define NO_LATENTS_H_INCLUDED

#ifndef PATH_STRATEGY_H_INCLUDED
#include "path_strategy.h"
#endif

///////////////////////////////////////////////////////////////////////////
//
// NoLatentsPathStrategy
//
// Concrete class for generating maximum probability paths.
//
// This strategy doesn't use any latents at all.  It will connect two
// haplotypes together by a single recombination, or with a minimum log
// probability edge.
//
///////////////////////////////////////////////////////////////////////////

class NoLatentsPathStrategy : public PathStrategy {
public:
    ~NoLatentsPathStrategy();
    NoLatentsPathStrategy(unsigned int, bool = false);
    
    Path MakePath(const Haplotype&, const Haplotype&, size_type,
		  Probability*) const;
};

#include "no_latents_inline.h"

#endif	// NO_LATENTS_H_INCLUDED
