diff options
Diffstat (limited to 'kaldi_io/src/kaldi/itf/clusterable-itf.h')
-rw-r--r-- | kaldi_io/src/kaldi/itf/clusterable-itf.h | 97 |
1 files changed, 0 insertions, 97 deletions
diff --git a/kaldi_io/src/kaldi/itf/clusterable-itf.h b/kaldi_io/src/kaldi/itf/clusterable-itf.h deleted file mode 100644 index 7ef9ae0..0000000 --- a/kaldi_io/src/kaldi/itf/clusterable-itf.h +++ /dev/null @@ -1,97 +0,0 @@ -// itf/clusterable-itf.h - -// Copyright 2009-2011 Microsoft Corporation; Go Vivace Inc. - -// See ../../COPYING for clarification regarding multiple authors -// -// 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 -// -// THIS CODE IS PROVIDED *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -// KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED -// WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE, -// MERCHANTABLITY OR NON-INFRINGEMENT. -// See the Apache 2 License for the specific language governing permissions and -// limitations under the License. - - -#ifndef KALDI_ITF_CLUSTERABLE_ITF_H_ -#define KALDI_ITF_CLUSTERABLE_ITF_H_ 1 - -#include <string> -#include "base/kaldi-common.h" - -namespace kaldi { - - -/** \addtogroup clustering_group - @{ - A virtual class for clusterable objects; see \ref clustering for an - explanation if its function. -*/ - - - -class Clusterable { - public: - /// \name Functions that must be overridden - /// @{ - - /// Return a copy of this object. - virtual Clusterable *Copy() const = 0; - /// Return the objective function associated with the stats - /// [assuming ML estimation] - virtual BaseFloat Objf() const = 0; - /// Return the normalizer (typically, count) associated with the stats - virtual BaseFloat Normalizer() const = 0; - /// Set stats to empty. - virtual void SetZero() = 0; - /// Add other stats. - virtual void Add(const Clusterable &other) = 0; - /// Subtract other stats. - virtual void Sub(const Clusterable &other) = 0; - /// Scale the stats by a positive number f [not mandatory to supply this]. - virtual void Scale(BaseFloat f) { - KALDI_ERR << "This Clusterable object does not implement Scale()."; - } - - /// Return a string that describes the inherited type. - virtual std::string Type() const = 0; - - /// Write data to stream. - virtual void Write(std::ostream &os, bool binary) const = 0; - - /// Read data from a stream and return the corresponding object (const - /// function; it's a class member because we need access to the vtable - /// so generic code can read derived types). - virtual Clusterable* ReadNew(std::istream &os, bool binary) const = 0; - - virtual ~Clusterable() {} - - /// @} - - /// \name Functions that have default implementations - /// @{ - - // These functions have default implementations (but may be overridden for - // speed). Implementatons in tree/clusterable-classes.cc - - /// Return the objective function of the combined object this + other. - virtual BaseFloat ObjfPlus(const Clusterable &other) const; - /// Return the objective function of the subtracted object this - other. - virtual BaseFloat ObjfMinus(const Clusterable &other) const; - /// Return the objective function decrease from merging the two - /// clusters, negated to be a positive number (or zero). - virtual BaseFloat Distance(const Clusterable &other) const; - /// @} - -}; -/// @} end of "ingroup clustering_group" - -} // end namespace kaldi - -#endif // KALDI_ITF_CLUSTERABLE_ITF_H_ - |