Added SimilarityMethodsEnum

This commit is contained in:
2025-12-21 00:15:28 +01:00
parent ae2b9e9f41
commit 20fc309b07

View File

@@ -21,20 +21,28 @@ public class SimilarityMethod
} }
} }
public enum SimilarityMethodEnum
{
Cosine,
Euclidian,
Manhattan,
Pearson
}
public static class SimilarityMethods public static class SimilarityMethods
{ {
public delegate float similarityMethodProtoDelegate(float[] vector1, float[] vector2); public delegate float similarityMethodProtoDelegate(float[] vector1, float[] vector2);
public delegate float similarityMethodDelegate(float[] vector1, float[] vector2); public delegate float similarityMethodDelegate(float[] vector1, float[] vector2);
public static readonly Dictionary<string, similarityMethodProtoDelegate> probMethods; public static readonly Dictionary<SimilarityMethodEnum, similarityMethodProtoDelegate> probMethods;
static SimilarityMethods() static SimilarityMethods()
{ {
probMethods = new Dictionary<string, similarityMethodProtoDelegate> probMethods = new Dictionary<SimilarityMethodEnum, similarityMethodProtoDelegate>
{ {
["Cosine"] = CosineSimilarity, [SimilarityMethodEnum.Cosine] = CosineSimilarity,
["Euclidian"] = EuclidianDistance, [SimilarityMethodEnum.Euclidian] = EuclidianDistance,
["Manhattan"] = ManhattanDistance, [SimilarityMethodEnum.Manhattan] = ManhattanDistance,
["Pearson"] = PearsonCorrelation [SimilarityMethodEnum.Pearson] = PearsonCorrelation
}; };
} }
@@ -42,7 +50,12 @@ public static class SimilarityMethods
{ {
string methodName = name; string methodName = name;
if (!probMethods.TryGetValue(methodName, out similarityMethodProtoDelegate? method)) SimilarityMethodEnum probMethodEnum = (SimilarityMethodEnum)Enum.Parse(
typeof(SimilarityMethodEnum),
methodName
);
if (!probMethods.TryGetValue(probMethodEnum, out similarityMethodProtoDelegate? method))
{ {
return null; return null;
} }