Restored audio simimarity based classifier

This commit is contained in:
emeric
2020-02-18 13:11:00 +01:00
parent 53b3429c74
commit efbec56d26
32 changed files with 813 additions and 985 deletions
+2
View File
@@ -16,3 +16,5 @@ target_link_libraries(lmssom PUBLIC
lmsutils
)
set_property(TARGET lmssom PROPERTY POSITION_INDEPENDENT_CODE ON)
+2 -2
View File
@@ -201,9 +201,9 @@ Network::getClosestRefVectorPosition(const InputVector& data, InputVector::Dista
}
std::optional<Position>
Network::getClosestRefVectorPosition(const std::set<Position>& refVectorsPosition, InputVector::Distance maxDistance) const
Network::getClosestRefVectorPosition(const std::unordered_set<Position>& refVectorsPosition, InputVector::Distance maxDistance) const
{
std::set<Position> neighboursPosition;
std::unordered_set<Position> neighboursPosition;
for (const Position& refVectorPosition : refVectorsPosition)
{
if (refVectorPosition.y > 0)
+1 -1
View File
@@ -31,7 +31,7 @@ namespace SOM
class Exception : public LmsException
{
public:
Exception(const std::string& msg) : LmsException(msg) {}
using LmsException::LmsException;
};
class InputVector
+18 -1
View File
@@ -21,7 +21,7 @@
#include <algorithm>
#include <cassert>
#include <sstream>
#include <functional>
#include <vector>
namespace SOM
@@ -116,3 +116,20 @@ class Matrix
};
} // ns SOM
namespace std {
template<>
class hash<SOM::Position>
{
public:
size_t operator()(const SOM::Position& s) const
{
size_t h1 = std::hash<SOM::Coordinate>()(s.x);
size_t h2 = std::hash<SOM::Coordinate>()(s.y);
return h1 ^ (h2 << 1);
}
};
} // ns std
+2 -2
View File
@@ -20,7 +20,7 @@
#pragma once
#include <vector>
#include <set>
#include <unordered_set>
#include <optional>
#include <ostream>
#include <functional>
@@ -70,7 +70,7 @@ class Network
Position getClosestRefVectorPosition(const InputVector& data) const;
std::optional<Position> getClosestRefVectorPosition(const InputVector& data, InputVector::Distance maxDistance) const;
std::optional<Position> getClosestRefVectorPosition(const std::set<Position>& refVectorsPosition, InputVector::Distance maxDistance) const;
std::optional<Position> getClosestRefVectorPosition(const std::unordered_set<Position>& refVectorsPosition, InputVector::Distance maxDistance) const;
InputVector::Distance getRefVectorsDistance(const Position& position1, const Position& position2) const;