// Copyright (c) 2013-2020, SIB - Swiss Institute of Bioinformatics and
//                          Biozentrum - University of Basel
// 
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
// 
//   http://www.apache.org/licenses/LICENSE-2.0
// 
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.


#ifndef PROMOD_LOOP_CLUSTER_HH
#define PROMOD_LOOP_CLUSTER_HH

#include <vector>
#include <limits>
#include <ost/base.hh>
#include <ost/tri_matrix.hh>

namespace promod3 { namespace core {

enum DistanceMetric {
  AVG_DIST_METRIC,
  MAX_DIST_METRIC,
  MIN_DIST_METRIC
};
  

void DoClustering(const ost::TriMatrix<Real>& dist_matrix, 
                  DistanceMetric metric, Real thresh, char direction, 
                  std::vector<std::vector<uint> >& output);

}} //ns

#endif
