Commit d565ca6a authored by Davis King's avatar Davis King

Added a proper specification and minor cleanup.

--HG--
extra : convert_revision : svn%3Afdd8eb12-d10e-0410-9acb-85c331704f74/trunk%403592
parent 39290274
...@@ -41,6 +41,12 @@ namespace dlib ...@@ -41,6 +41,12 @@ namespace dlib
struct use_gaussian_weights struct use_gaussian_weights
{ {
use_gaussian_weights (
)
{
gamma = 0.1;
}
use_gaussian_weights ( use_gaussian_weights (
double g double g
) )
......
// Copyright (C) 2010 Davis E. King (davis@dlib.net)
// License: Boost Software License See LICENSE.txt for the full license.
#undef DLIB_MR_FUNCTION_ObJECTS_ABSTRACT_H__
#ifdef DLIB_MR_FUNCTION_ObJECTS_ABSTRACT_H__
#include "../matrix.h"
#include <cmath>
namespace dlib
{
// ----------------------------------------------------------------------------------------
struct squared_euclidean_distance
{
/*!
WHAT THIS OBJECT REPRESENTS
This is a simple function object that computes squared euclidean distance
between two dlib::matrix objects.
!*/
template <typename sample_type>
double operator() (
const sample_type& a,
const sample_type& b
) const;
/*!
requires
- sample_type should be a kind of dlib::matrix
ensures
- returns length_squared(a-b);
!*/
};
// ----------------------------------------------------------------------------------------
struct use_weights_of_one
{
/*!
WHAT THIS OBJECT REPRESENTS
This is a simple function object that takes a single argument
and always returns 1
!*/
template <typename edge_type>
double operator() (
const edge_type&
) const;
/*!
ensures
- returns 1
!*/
};
// ----------------------------------------------------------------------------------------
struct use_gaussian_weights
{
/*!
WHAT THIS OBJECT REPRESENTS
This is a simple function object that takes a single argument
which should be an object similar to dlib::sample_pair.
!*/
use_gaussian_weights (
);
/*!
ensures
- #gamma == 0.1
!*/
use_gaussian_weights (
double g
);
/*!
ensures
- #gamma == g
!*/
double gamma;
template <typename edge_type>
double operator() (
const edge_type& e
) const;
/*!
requires
- e.distance() must be a valid expression that returns a number
(e.g. edge_type might be dlib::sample_pair)
ensures
- returns std::exp(-gamma*e.distance());
!*/
};
// ----------------------------------------------------------------------------------------
}
#endif // DLIB_MR_FUNCTION_ObJECTS_ABSTRACT_H__
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment